[Numpy-discussion] Do not understand what f2py is reporting
Samuel Dupree
sdupree at speakeasy.net
Sat Oct 31 21:03:23 EDT 2020
I'm attempting to build wrappers around two Fortran routines. One is a
Fortran 77 subroutine (see file gravity_derivs.f) that calls a Fortran
90 package that performs automatic differentiation (see file
auto_deriv.f90).
I'm running he Anaconda distribution for Python 3.7.6 on a Mac Pro
(2019) under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm
running is 1.18.3. The commands I used to attempt the build are
contained in the file auto_deriv_build. The messages output by f2py are
captured in the file auto_derivs_build_report.txt.
I don't understand the cause behind the error messages I got, so any
advice would be welcomed.
Sam Dupree.
-------------- next part --------------
(base) user at Samuels-Mac-Pro auto_deriv % ./auto_deriv_build
f2py build for auto_deriv
deleting previous build
rm: *.so: No such file or directory
building Python wrappers
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "gravity_derivs" sources
f2py options: []
f2py:> /var/folders/2r/4bw6nw0x58z0_ybx632_h14m0000gq/T/tmpada983e0/src.macosx-10.9-x86_64-3.7/gravity_derivsmodule.c
creating /var/folders/2r/4bw6nw0x58z0_ybx632_h14m0000gq/T/tmpada983e0/src.macosx-10.9-x86_64-3.7
Reading fortran codes...
Reading file 'gravity_derivs.f' (format:fix,strict)
{'before': '', 'this': 'use', 'after': 'deriv_class ! make the module accessible'}
Line #111 in gravity_derivs.f:" USE deriv_class ! make the module accessible"
analyzeline: Could not crack the use statement.
Line #119 in gravity_derivs.f:" integer * 4 degree"
updatevars: no name pattern found for entity='*4degree'. Skipping.
Line #121 in gravity_derivs.f:" integer * 4 order"
updatevars: no name pattern found for entity='*4order'. Skipping.
Line #122 in gravity_derivs.f:" integer * 4 Ndim"
updatevars: no name pattern found for entity='*4ndim'. Skipping.
Line #124 in gravity_derivs.f:" integer * 4 Mdim"
updatevars: no name pattern found for entity='*4mdim'. Skipping.
Line #127 in gravity_derivs.f:" integer * 4 iret"
updatevars: no name pattern found for entity='*4iret'. Skipping.
Line #145 in gravity_derivs.f:" integer * 4 deriv"
updatevars: no name pattern found for entity='*4deriv'. Skipping.
Line #148 in gravity_derivs.f:" integer * 4 i"
updatevars: no name pattern found for entity='*4i'. Skipping.
Line #149 in gravity_derivs.f:" integer * 4 j"
updatevars: no name pattern found for entity='*4j'. Skipping.
Line #150 in gravity_derivs.f:" integer * 4 k"
updatevars: no name pattern found for entity='*4k'. Skipping.
Line #151 in gravity_derivs.f:" integer * 4 n"
updatevars: no name pattern found for entity='*4n'. Skipping.
Line #153 in gravity_derivs.f:" integer * 4 m"
updatevars: no name pattern found for entity='*4m'. Skipping.
Post-processing...
Block: gravity_derivs
{'attrspec': ['intent(in)']}
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
vars2fortran: No typespec for argument "ndim".
{'attrspec': ['intent(in)']}
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
vars2fortran: No typespec for argument "mdim".
{'attrspec': ['intent(in)']}
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
vars2fortran: No typespec for argument "degree".
{'attrspec': ['intent(in)']}
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
vars2fortran: No typespec for argument "order".
{'attrspec': ['intent(out)']}
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
vars2fortran: No typespec for argument "iret".
Block: gravity_derivs
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
analyzevars: typespec of variable 'ndim' is not defined in routine gravity_derivs.
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
analyzevars: typespec of variable 'mdim' is not defined in routine gravity_derivs.
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
analyzevars: typespec of variable 'degree' is not defined in routine gravity_derivs.
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
analyzevars: typespec of variable 'order' is not defined in routine gravity_derivs.
In: :gravity_derivs:gravity_derivs.f:gravity_derivs
analyzevars: typespec of variable 'iret' is not defined in routine gravity_derivs.
Post-processing (stage 2)...
Building modules...
Building module "gravity_derivs"...
Constructing wrapper function "gravity_derivs"...
getctype: No C-type found in "{'attrspec': [], 'intent': ['in']}", assuming void.
getctype: No C-type found in "{'attrspec': [], 'intent': ['in']}", assuming void.
getctype: No C-type found in "{'attrspec': [], 'intent': ['in']}", assuming void.
getctype: No C-type found in "{'attrspec': [], 'intent': ['in']}", assuming void.
getctype: No C-type found in "{'attrspec': [], 'intent': ['out']}", assuming void.
getctype: No C-type found in "{'attrspec': [], 'intent': ['in']}", assuming void.
getctype: No C-type found in "{'attrspec': [], 'intent': ['in']}", assuming void.
Traceback (most recent call last):
File "/Users/user/opt/anaconda3/bin/f2py3", line 33, in <module>
sys.exit(load_entry_point('numpy==1.19.0', 'console_scripts', 'f2py3')())
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 694, in main
run_compile()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 661, in run_compile
setup(ext_modules=[ext])
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/core.py", line 171, in setup
return old_setup(**new_attr)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build.py", line 42, in run
old_build.run(self)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 146, in run
self.build_sources()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 163, in build_sources
self.build_extension_sources(ext)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 323, in build_extension_sources
sources = self.f2py_sources(sources, ext)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 566, in f2py_sources
['-m', ext_name]+f_sources)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 468, in run_main
ret = buildmodules(postlist)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 394, in buildmodules
dict_append(ret[mnames[i]], rules.buildmodule(modules[i], um))
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/rules.py", line 1214, in buildmodule
api, wrap = buildapi(nb)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/rules.py", line 1383, in buildapi
vrd = capi_maps.sign2map(a, var[a])
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/capi_maps.py", line 615, in sign2map
ret['pydocsign'], ret['pydocsignout'] = getpydocsign(a, var)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/capi_maps.py", line 424, in getpydocsign
sig = '%s : %s %s%s' % (a, opt, c2py_map[ctype], init)
KeyError: 'void'
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building extension "auto_deriv" sources
f2py options: []
f2py:> /var/folders/2r/4bw6nw0x58z0_ybx632_h14m0000gq/T/tmp3iuof2ym/src.macosx-10.9-x86_64-3.7/auto_derivmodule.c
creating /var/folders/2r/4bw6nw0x58z0_ybx632_h14m0000gq/T/tmp3iuof2ym/src.macosx-10.9-x86_64-3.7
Reading fortran codes...
Reading file 'auto_deriv.f90' (format:free)
rmbadname1: Replacing "int" with "int_bn".
rmbadname1: Replacing "max" with "max_bn".
rmbadname1: Replacing "min" with "min_bn".
rmbadname1: Replacing "int" with "int_bn".
rmbadname1: Replacing "max" with "max_bn".
rmbadname1: Replacing "min" with "min_bn".
crackline: groupcounter=3 groupname={0: '', 1: 'module', 2: 'interface', 3: 'module', 4: 'module', 5: 'function'}
crackline: Mismatch of blocks encountered. Trying to fix it by assuming "end" statement.
crackline: groupcounter=2 groupname={0: '', 1: 'module', 2: 'interface', 3: 'module', 4: 'module', 5: 'function'}
crackline: Mismatch of blocks encountered. Trying to fix it by assuming "end" statement.
crackline: groupcounter=1 groupname={0: '', 1: 'module', 2: 'interface', 3: 'module', 4: 'module', 5: 'function'}
crackline: Mismatch of blocks encountered. Trying to fix it by assuming "end" statement.
Post-processing...
Block: auto_deriv
Block: ieeex_exceptions
Block: ieee_set_flag
Block: ad_types
Block: func
In: :auto_deriv:auto_deriv.f90:ad_types:func
getarrlen:variable "n" undefined
In: :auto_deriv:auto_deriv.f90:ad_types:func
getarrlen:variable "nhes" undefined
Block: ad_utilities
Block: independent
Block: derivative
Block: indep_scalar
Block: indep_vector
Block: extract
Block: ad_auxiliary
In: :auto_deriv:auto_deriv.f90:ad_auxiliary
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_auxiliary
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: tensor
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_auxiliary:tensor
analyzevars: prefix ('pure') were not used
Block: is_small
In: :auto_deriv:auto_deriv.f90:ad_auxiliary:is_small
analyzevars: prefix ('elemental') were not used
Block: ad_assign
Block: assignment
In: :auto_deriv:auto_deriv.f90:ad_assign:assignment
determineexprtype: could not determine expressions ('=') type.
Block: ad_relational
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:operator
determineexprtype: could not determine expressions ('<') type.
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:operator
determineexprtype: could not determine expressions ('<=') type.
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:operator
determineexprtype: could not determine expressions ('>') type.
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:operator
determineexprtype: could not determine expressions ('>=') type.
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:operator
determineexprtype: could not determine expressions ('==') type.
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:operator
determineexprtype: could not determine expressions ('/=') type.
Block: less_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_fr
analyzevars: prefix ('elemental') were not used
Block: less_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_fs
analyzevars: prefix ('elemental') were not used
Block: less_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_fi
analyzevars: prefix ('elemental') were not used
Block: less_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_rf
analyzevars: prefix ('elemental') were not used
Block: less_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_sf
analyzevars: prefix ('elemental') were not used
Block: less_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_if
analyzevars: prefix ('elemental') were not used
Block: less_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_ff
analyzevars: prefix ('elemental') were not used
Block: less_equal_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_fr
analyzevars: prefix ('elemental') were not used
Block: less_equal_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_fs
analyzevars: prefix ('elemental') were not used
Block: less_equal_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_fi
analyzevars: prefix ('elemental') were not used
Block: less_equal_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_rf
analyzevars: prefix ('elemental') were not used
Block: less_equal_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_sf
analyzevars: prefix ('elemental') were not used
Block: less_equal_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_if
analyzevars: prefix ('elemental') were not used
Block: less_equal_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:less_equal_ff
analyzevars: prefix ('elemental') were not used
Block: greater_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_fr
analyzevars: prefix ('elemental') were not used
Block: greater_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_fs
analyzevars: prefix ('elemental') were not used
Block: greater_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_fi
analyzevars: prefix ('elemental') were not used
Block: greater_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_rf
analyzevars: prefix ('elemental') were not used
Block: greater_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_sf
analyzevars: prefix ('elemental') were not used
Block: greater_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_if
analyzevars: prefix ('elemental') were not used
Block: greater_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_ff
analyzevars: prefix ('elemental') were not used
Block: greater_equal_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_fr
analyzevars: prefix ('elemental') were not used
Block: greater_equal_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_fs
analyzevars: prefix ('elemental') were not used
Block: greater_equal_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_fi
analyzevars: prefix ('elemental') were not used
Block: greater_equal_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_rf
analyzevars: prefix ('elemental') were not used
Block: greater_equal_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_sf
analyzevars: prefix ('elemental') were not used
Block: greater_equal_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_if
analyzevars: prefix ('elemental') were not used
Block: greater_equal_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:greater_equal_ff
analyzevars: prefix ('elemental') were not used
Block: equal_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_fr
analyzevars: prefix ('elemental') were not used
Block: equal_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_fs
analyzevars: prefix ('elemental') were not used
Block: equal_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_fi
analyzevars: prefix ('elemental') were not used
Block: equal_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_rf
analyzevars: prefix ('elemental') were not used
Block: equal_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_sf
analyzevars: prefix ('elemental') were not used
Block: equal_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_if
analyzevars: prefix ('elemental') were not used
Block: equal_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:equal_ff
analyzevars: prefix ('elemental') were not used
Block: not_equal_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_fr
analyzevars: prefix ('elemental') were not used
Block: not_equal_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_fs
analyzevars: prefix ('elemental') were not used
Block: not_equal_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_fi
analyzevars: prefix ('elemental') were not used
Block: not_equal_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_rf
analyzevars: prefix ('elemental') were not used
Block: not_equal_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_sf
analyzevars: prefix ('elemental') were not used
Block: not_equal_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_if
analyzevars: prefix ('elemental') were not used
Block: not_equal_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_relational:not_equal_ff
analyzevars: prefix ('elemental') were not used
Block: ad_operator_plus
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:operator
determineexprtype: could not determine expressions ('+') type.
Block: unary_plus
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:unary_plus
analyzevars: prefix ('elemental') were not used
Block: add_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_rf
analyzevars: prefix ('elemental') were not used
Block: add_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_sf
analyzevars: prefix ('elemental') were not used
Block: add_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_if
analyzevars: prefix ('elemental') were not used
Block: add_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_fr
analyzevars: prefix ('elemental') were not used
Block: add_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_fs
analyzevars: prefix ('elemental') were not used
Block: add_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_fi
analyzevars: prefix ('elemental') were not used
Block: add_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_plus:add_ff
analyzevars: prefix ('elemental') were not used
Block: ad_operator_minus
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:operator
determineexprtype: could not determine expressions ('-') type.
Block: negate
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:negate
analyzevars: prefix ('elemental') were not used
Block: sub_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_rf
analyzevars: prefix ('elemental') were not used
Block: sub_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_sf
analyzevars: prefix ('elemental') were not used
Block: sub_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_if
analyzevars: prefix ('elemental') were not used
Block: sub_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_fr
analyzevars: prefix ('elemental') were not used
Block: sub_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_fs
analyzevars: prefix ('elemental') were not used
Block: sub_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_fi
analyzevars: prefix ('elemental') were not used
Block: sub_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_minus:sub_ff
analyzevars: prefix ('elemental') were not used
Block: ad_operator_star
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:operator
determineexprtype: could not determine expressions ('*') type.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:operator
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:operator
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: mul_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_rf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_rf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_rf
analyzevars: prefix ('elemental') were not used
Block: mul_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_sf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_sf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_sf
analyzevars: prefix ('elemental') were not used
Block: mul_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_if
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_if
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_if
analyzevars: prefix ('elemental') were not used
Block: mul_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fr
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fr
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fr
analyzevars: prefix ('elemental') were not used
Block: mul_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fs
analyzevars: prefix ('elemental') were not used
Block: mul_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fi
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fi
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_fi
analyzevars: prefix ('elemental') were not used
Block: mul_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_ff
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_ff
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_star:mul_ff
analyzevars: prefix ('elemental') were not used
Block: ad_operator_slash
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:operator
determineexprtype: could not determine expressions ('/') type.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:operator
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:operator
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: div_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fr
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fr
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fr
analyzevars: prefix ('elemental') were not used
Block: div_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fs
analyzevars: prefix ('elemental') were not used
Block: div_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fi
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fi
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_fi
analyzevars: prefix ('elemental') were not used
Block: div_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_rf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_rf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_rf
analyzevars: prefix ('elemental') were not used
Block: div_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_sf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_sf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_sf
analyzevars: prefix ('elemental') were not used
Block: div_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_if
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_if
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_if
analyzevars: prefix ('elemental') were not used
Block: div_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_ff
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_ff
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_slash:div_ff
analyzevars: prefix ('elemental') were not used
Block: ad_fortran_library
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library
get_useparameters: no module ad_assign info used by ad_fortran_library
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: abs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs
get_useparameters: no module ad_assign info used by abs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: acos
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos
get_useparameters: no module ad_assign info used by acos
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: aint
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint
get_useparameters: no module ad_assign info used by aint
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: anint
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint
get_useparameters: no module ad_assign info used by anint
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: asin
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin
get_useparameters: no module ad_assign info used by asin
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: atan
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan
get_useparameters: no module ad_assign info used by atan
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: atan2
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2
get_useparameters: no module ad_assign info used by atan2
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: ceiling
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling
get_useparameters: no module ad_assign info used by ceiling
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: cos
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos
get_useparameters: no module ad_assign info used by cos
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: cosh
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh
get_useparameters: no module ad_assign info used by cosh
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: digits
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits
get_useparameters: no module ad_assign info used by digits
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: dim
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim
get_useparameters: no module ad_assign info used by dim
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: dot_product
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product
get_useparameters: no module ad_assign info used by dot_product
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: epsilon
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon
get_useparameters: no module ad_assign info used by epsilon
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: exp
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp
get_useparameters: no module ad_assign info used by exp
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: exponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent
get_useparameters: no module ad_assign info used by exponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: floor
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor
get_useparameters: no module ad_assign info used by floor
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: fraction
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction
get_useparameters: no module ad_assign info used by fraction
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: huge
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge
get_useparameters: no module ad_assign info used by huge
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: int_bn
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_bn
get_useparameters: no module ad_assign info used by int_bn
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_bn
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_bn
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: kind
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind
get_useparameters: no module ad_assign info used by kind
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: log
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log
get_useparameters: no module ad_assign info used by log
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: log10
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10
get_useparameters: no module ad_assign info used by log10
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: matmul
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul
get_useparameters: no module ad_assign info used by matmul
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: max_bn
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max_bn
get_useparameters: no module ad_assign info used by max_bn
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max_bn
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max_bn
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: maxexponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent
get_useparameters: no module ad_assign info used by maxexponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: maxloc
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc
get_useparameters: no module ad_assign info used by maxloc
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: maxval
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval
get_useparameters: no module ad_assign info used by maxval
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: min_bn
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min_bn
get_useparameters: no module ad_assign info used by min_bn
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min_bn
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min_bn
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: minexponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent
get_useparameters: no module ad_assign info used by minexponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: minloc
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc
get_useparameters: no module ad_assign info used by minloc
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: minval
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval
get_useparameters: no module ad_assign info used by minval
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: mod
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod
get_useparameters: no module ad_assign info used by mod
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: modulo
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo
get_useparameters: no module ad_assign info used by modulo
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: nearest
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest
get_useparameters: no module ad_assign info used by nearest
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: nint
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint
get_useparameters: no module ad_assign info used by nint
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: precision
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision
get_useparameters: no module ad_assign info used by precision
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: product
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product
get_useparameters: no module ad_assign info used by product
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: radix
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix
get_useparameters: no module ad_assign info used by radix
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: range
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range
get_useparameters: no module ad_assign info used by range
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: rrspacing
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing
get_useparameters: no module ad_assign info used by rrspacing
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: scale
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale
get_useparameters: no module ad_assign info used by scale
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: set_exponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent
get_useparameters: no module ad_assign info used by set_exponent
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: sign
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign
get_useparameters: no module ad_assign info used by sign
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: sin
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin
get_useparameters: no module ad_assign info used by sin
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: sinh
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh
get_useparameters: no module ad_assign info used by sinh
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: spacing
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing
get_useparameters: no module ad_assign info used by spacing
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: sqrt
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt
get_useparameters: no module ad_assign info used by sqrt
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: sum
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum
get_useparameters: no module ad_assign info used by sum
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: tan
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan
get_useparameters: no module ad_assign info used by tan
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: tanh
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh
get_useparameters: no module ad_assign info used by tanh
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: tiny
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny
get_useparameters: no module ad_assign info used by tiny
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
Block: abs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs_
get_useparameters: no module ad_assign info used by abs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:abs_
analyzevars: prefix ('elemental') were not used
Block: acos_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos_
get_useparameters: no module ad_assign info used by acos_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:acos_
analyzevars: prefix ('elemental') were not used
Block: aint_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint_
get_useparameters: no module ad_assign info used by aint_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:aint_
analyzevars: prefix ('elemental') were not used
Block: anint_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint_
get_useparameters: no module ad_assign info used by anint_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:anint_
analyzevars: prefix ('elemental') were not used
Block: asin_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin_
get_useparameters: no module ad_assign info used by asin_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:asin_
analyzevars: prefix ('elemental') were not used
Block: atan_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan_
get_useparameters: no module ad_assign info used by atan_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan_
analyzevars: prefix ('elemental') were not used
Block: atan2_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_ff_
get_useparameters: no module ad_assign info used by atan2_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_ff_
analyzevars: prefix ('elemental') were not used
Block: atan2_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_rf_
get_useparameters: no module ad_assign info used by atan2_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_rf_
analyzevars: prefix ('elemental') were not used
Block: atan2_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fr_
get_useparameters: no module ad_assign info used by atan2_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fr_
analyzevars: prefix ('elemental') were not used
Block: atan2_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_sf_
get_useparameters: no module ad_assign info used by atan2_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_sf_
analyzevars: prefix ('elemental') were not used
Block: atan2_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fs_
get_useparameters: no module ad_assign info used by atan2_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:atan2_fs_
analyzevars: prefix ('elemental') were not used
Block: ceiling_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling_
get_useparameters: no module ad_assign info used by ceiling_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:ceiling_
analyzevars: prefix ('elemental') were not used
Block: cos_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos_
get_useparameters: no module ad_assign info used by cos_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cos_
analyzevars: prefix ('elemental') were not used
Block: cosh_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh_
get_useparameters: no module ad_assign info used by cosh_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:cosh_
analyzevars: prefix ('elemental') were not used
Block: digits_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits_
get_useparameters: no module ad_assign info used by digits_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:digits_
analyzevars: prefix ('elemental') were not used
Block: dim_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim_
get_useparameters: no module ad_assign info used by dim_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dim_
analyzevars: prefix ('elemental') were not used
Block: dot_product_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_ff_
get_useparameters: no module ad_assign info used by dot_product_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_ff_
analyzevars: prefix ('pure') were not used
Block: dot_product_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_rf_
get_useparameters: no module ad_assign info used by dot_product_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_rf_
analyzevars: prefix ('pure') were not used
Block: dot_product_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_sf_
get_useparameters: no module ad_assign info used by dot_product_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_sf_
analyzevars: prefix ('pure') were not used
Block: dot_product_if_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_if_
get_useparameters: no module ad_assign info used by dot_product_if_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_if_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_if_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_if_
analyzevars: prefix ('pure') were not used
Block: dot_product_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fr_
get_useparameters: no module ad_assign info used by dot_product_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fr_
analyzevars: prefix ('pure') were not used
Block: dot_product_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fs_
get_useparameters: no module ad_assign info used by dot_product_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fs_
analyzevars: prefix ('pure') were not used
Block: dot_product_fi_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fi_
get_useparameters: no module ad_assign info used by dot_product_fi_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fi_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fi_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:dot_product_fi_
analyzevars: prefix ('pure') were not used
Block: epsilon_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon_
get_useparameters: no module ad_assign info used by epsilon_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:epsilon_
analyzevars: prefix ('elemental') were not used
Block: exp_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp_
get_useparameters: no module ad_assign info used by exp_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exp_
analyzevars: prefix ('elemental') were not used
Block: exponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent_
get_useparameters: no module ad_assign info used by exponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:exponent_
analyzevars: prefix ('elemental') were not used
Block: floor_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor_
get_useparameters: no module ad_assign info used by floor_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:floor_
analyzevars: prefix ('elemental') were not used
Block: fraction_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction_
get_useparameters: no module ad_assign info used by fraction_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:fraction_
analyzevars: prefix ('elemental') were not used
Block: huge_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge_
get_useparameters: no module ad_assign info used by huge_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:huge_
analyzevars: prefix ('elemental') were not used
Block: int_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_
get_useparameters: no module ad_assign info used by int_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:int_
analyzevars: prefix ('elemental') were not used
Block: kind_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind_
get_useparameters: no module ad_assign info used by kind_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:kind_
analyzevars: prefix ('elemental') were not used
Block: log_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log_
get_useparameters: no module ad_assign info used by log_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log_
analyzevars: prefix ('elemental') were not used
Block: log10_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10_
get_useparameters: no module ad_assign info used by log10_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:log10_
analyzevars: prefix ('elemental') were not used
Block: matmul_ff_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_12_
get_useparameters: no module ad_assign info used by matmul_ff_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_12_
analyzevars: prefix ('pure') were not used
Block: matmul_rf_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_12_
get_useparameters: no module ad_assign info used by matmul_rf_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_12_
analyzevars: prefix ('pure') were not used
Block: matmul_sf_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_12_
get_useparameters: no module ad_assign info used by matmul_sf_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_12_
analyzevars: prefix ('pure') were not used
Block: matmul_if_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_12_
get_useparameters: no module ad_assign info used by matmul_if_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_12_
analyzevars: prefix ('pure') were not used
Block: matmul_fr_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_12_
get_useparameters: no module ad_assign info used by matmul_fr_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_12_
analyzevars: prefix ('pure') were not used
Block: matmul_fs_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_12_
get_useparameters: no module ad_assign info used by matmul_fs_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_12_
analyzevars: prefix ('pure') were not used
Block: matmul_fi_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_12_
get_useparameters: no module ad_assign info used by matmul_fi_12_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_12_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_12_
analyzevars: prefix ('pure') were not used
Block: matmul_ff_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_21_
get_useparameters: no module ad_assign info used by matmul_ff_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_21_
analyzevars: prefix ('pure') were not used
Block: matmul_rf_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_21_
get_useparameters: no module ad_assign info used by matmul_rf_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_21_
analyzevars: prefix ('pure') were not used
Block: matmul_sf_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_21_
get_useparameters: no module ad_assign info used by matmul_sf_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_21_
analyzevars: prefix ('pure') were not used
Block: matmul_if_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_21_
get_useparameters: no module ad_assign info used by matmul_if_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_21_
analyzevars: prefix ('pure') were not used
Block: matmul_fr_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_21_
get_useparameters: no module ad_assign info used by matmul_fr_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_21_
analyzevars: prefix ('pure') were not used
Block: matmul_fs_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_21_
get_useparameters: no module ad_assign info used by matmul_fs_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_21_
analyzevars: prefix ('pure') were not used
Block: matmul_fi_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_21_
get_useparameters: no module ad_assign info used by matmul_fi_21_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_21_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_21_
analyzevars: prefix ('pure') were not used
Block: matmul_ff_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_22_
get_useparameters: no module ad_assign info used by matmul_ff_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_ff_22_
analyzevars: prefix ('pure') were not used
Block: matmul_rf_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_22_
get_useparameters: no module ad_assign info used by matmul_rf_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_rf_22_
analyzevars: prefix ('pure') were not used
Block: matmul_sf_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_22_
get_useparameters: no module ad_assign info used by matmul_sf_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_sf_22_
analyzevars: prefix ('pure') were not used
Block: matmul_if_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_22_
get_useparameters: no module ad_assign info used by matmul_if_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_if_22_
analyzevars: prefix ('pure') were not used
Block: matmul_fr_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_22_
get_useparameters: no module ad_assign info used by matmul_fr_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fr_22_
analyzevars: prefix ('pure') were not used
Block: matmul_fs_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_22_
get_useparameters: no module ad_assign info used by matmul_fs_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fs_22_
analyzevars: prefix ('pure') were not used
Block: matmul_fi_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_22_
get_useparameters: no module ad_assign info used by matmul_fi_22_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_22_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:matmul_fi_22_
analyzevars: prefix ('pure') were not used
Block: max2_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_ff_
get_useparameters: no module ad_assign info used by max2_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_ff_
analyzevars: prefix ('elemental') were not used
Block: max2_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fr_
get_useparameters: no module ad_assign info used by max2_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fr_
analyzevars: prefix ('elemental') were not used
Block: max2_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_rf_
get_useparameters: no module ad_assign info used by max2_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_rf_
analyzevars: prefix ('elemental') were not used
Block: max2_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fs_
get_useparameters: no module ad_assign info used by max2_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_fs_
analyzevars: prefix ('elemental') were not used
Block: max2_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_sf_
get_useparameters: no module ad_assign info used by max2_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max2_sf_
analyzevars: prefix ('elemental') were not used
Block: max3_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max3_
get_useparameters: no module ad_assign info used by max3_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max3_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max3_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:max3_
analyzevars: prefix ('elemental') were not used
Block: maxexponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent_
get_useparameters: no module ad_assign info used by maxexponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxexponent_
analyzevars: prefix ('elemental') were not used
Block: maxloc_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc_1
get_useparameters: no module ad_assign info used by maxloc_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc_1
analyzevars: prefix ('pure') were not used
Block: maxloc__dim_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_1
get_useparameters: no module ad_assign info used by maxloc__dim_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_1
analyzevars: prefix ('pure') were not used
Block: maxloc__mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__mask_1
get_useparameters: no module ad_assign info used by maxloc__mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__mask_1
analyzevars: prefix ('pure') were not used
Block: maxloc__dim_mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_mask_1
get_useparameters: no module ad_assign info used by maxloc__dim_mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxloc__dim_mask_1
analyzevars: prefix ('pure') were not used
Block: maxval_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval_1
get_useparameters: no module ad_assign info used by maxval_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:maxval_1
analyzevars: prefix ('pure') were not used
Block: min2_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_ff_
get_useparameters: no module ad_assign info used by min2_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_ff_
analyzevars: prefix ('elemental') were not used
Block: min2_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fr_
get_useparameters: no module ad_assign info used by min2_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fr_
analyzevars: prefix ('elemental') were not used
Block: min2_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_rf_
get_useparameters: no module ad_assign info used by min2_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_rf_
analyzevars: prefix ('elemental') were not used
Block: min2_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fs_
get_useparameters: no module ad_assign info used by min2_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_fs_
analyzevars: prefix ('elemental') were not used
Block: min2_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_sf_
get_useparameters: no module ad_assign info used by min2_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min2_sf_
analyzevars: prefix ('elemental') were not used
Block: min3_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min3_
get_useparameters: no module ad_assign info used by min3_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min3_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min3_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:min3_
analyzevars: prefix ('elemental') were not used
Block: minexponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent_
get_useparameters: no module ad_assign info used by minexponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minexponent_
analyzevars: prefix ('elemental') were not used
Block: minloc_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc_1
get_useparameters: no module ad_assign info used by minloc_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc_1
analyzevars: prefix ('pure') were not used
Block: minloc__dim_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_1
get_useparameters: no module ad_assign info used by minloc__dim_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_1
analyzevars: prefix ('pure') were not used
Block: minloc__mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__mask_1
get_useparameters: no module ad_assign info used by minloc__mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__mask_1
analyzevars: prefix ('pure') were not used
Block: minloc__dim_mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_mask_1
get_useparameters: no module ad_assign info used by minloc__dim_mask_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_mask_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
appenddecl: "dimension" not implemented.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minloc__dim_mask_1
analyzevars: prefix ('pure') were not used
Block: minval_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval_1
get_useparameters: no module ad_assign info used by minval_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:minval_1
analyzevars: prefix ('pure') were not used
Block: mod_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_ff_
get_useparameters: no module ad_assign info used by mod_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_ff_
analyzevars: prefix ('elemental') were not used
Block: mod_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_fr_
get_useparameters: no module ad_assign info used by mod_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_fr_
analyzevars: prefix ('elemental') were not used
Block: mod_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_rf_
get_useparameters: no module ad_assign info used by mod_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:mod_rf_
analyzevars: prefix ('elemental') were not used
Block: modulo_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_ff_
get_useparameters: no module ad_assign info used by modulo_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_ff_
analyzevars: prefix ('elemental') were not used
Block: modulo_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_fr_
get_useparameters: no module ad_assign info used by modulo_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_fr_
analyzevars: prefix ('elemental') were not used
Block: modulo_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_rf_
get_useparameters: no module ad_assign info used by modulo_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:modulo_rf_
analyzevars: prefix ('elemental') were not used
Block: nearest_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_ff_
get_useparameters: no module ad_assign info used by nearest_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_ff_
analyzevars: prefix ('elemental') were not used
Block: nearest_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_rf_
get_useparameters: no module ad_assign info used by nearest_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_rf_
analyzevars: prefix ('elemental') were not used
Block: nearest_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fr_
get_useparameters: no module ad_assign info used by nearest_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fr_
analyzevars: prefix ('elemental') were not used
Block: nearest_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_sf_
get_useparameters: no module ad_assign info used by nearest_sf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_sf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_sf_
analyzevars: prefix ('elemental') were not used
Block: nearest_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fs_
get_useparameters: no module ad_assign info used by nearest_fs_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fs_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nearest_fs_
analyzevars: prefix ('elemental') were not used
Block: nint_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint_
get_useparameters: no module ad_assign info used by nint_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:nint_
analyzevars: prefix ('elemental') were not used
Block: precision_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision_
get_useparameters: no module ad_assign info used by precision_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:precision_
analyzevars: prefix ('elemental') were not used
Block: product_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product_1
get_useparameters: no module ad_assign info used by product_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:product_1
analyzevars: prefix ('pure') were not used
Block: radix_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix_
get_useparameters: no module ad_assign info used by radix_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:radix_
analyzevars: prefix ('elemental') were not used
Block: range_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range_
get_useparameters: no module ad_assign info used by range_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:range_
analyzevars: prefix ('elemental') were not used
Block: rrspacing_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing_
get_useparameters: no module ad_assign info used by rrspacing_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:rrspacing_
analyzevars: prefix ('elemental') were not used
Block: scale_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale_
get_useparameters: no module ad_assign info used by scale_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:scale_
analyzevars: prefix ('elemental') were not used
Block: set_exponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent_
get_useparameters: no module ad_assign info used by set_exponent_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:set_exponent_
analyzevars: prefix ('elemental') were not used
Block: sign_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_ff_
get_useparameters: no module ad_assign info used by sign_ff_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_ff_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_ff_
analyzevars: prefix ('elemental') were not used
Block: sign_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_rf_
get_useparameters: no module ad_assign info used by sign_rf_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_rf_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_rf_
analyzevars: prefix ('elemental') were not used
Block: sign_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_fr_
get_useparameters: no module ad_assign info used by sign_fr_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_fr_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sign_fr_
analyzevars: prefix ('elemental') were not used
Block: sin_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin_
get_useparameters: no module ad_assign info used by sin_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sin_
analyzevars: prefix ('elemental') were not used
Block: sinh_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh_
get_useparameters: no module ad_assign info used by sinh_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sinh_
analyzevars: prefix ('elemental') were not used
Block: spacing_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing_
get_useparameters: no module ad_assign info used by spacing_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:spacing_
analyzevars: prefix ('elemental') were not used
Block: sqrt_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt_
get_useparameters: no module ad_assign info used by sqrt_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sqrt_
analyzevars: prefix ('elemental') were not used
Block: sum_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum_1
get_useparameters: no module ad_assign info used by sum_1
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum_1
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:sum_1
analyzevars: prefix ('pure') were not used
Block: tan_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan_
get_useparameters: no module ad_assign info used by tan_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tan_
analyzevars: prefix ('elemental') were not used
Block: tanh_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh_
get_useparameters: no module ad_assign info used by tanh_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tanh_
analyzevars: prefix ('elemental') were not used
Block: tiny_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny_
get_useparameters: no module ad_assign info used by tiny_
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny_
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_fortran_library:tiny_
analyzevars: prefix ('elemental') were not used
Block: ad_operator_power
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power
get_useparameters: no module ad_assign info used by ad_operator_power
Block: operator
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:operator
determineexprtype: could not determine expressions ('**') type.
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:operator
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:operator
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:operator
get_useparameters: no module ad_assign info used by operator
Block: power_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fr
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fr
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fr
get_useparameters: no module ad_assign info used by power_fr
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fr
analyzevars: prefix ('elemental') were not used
Block: power_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fs
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fs
get_useparameters: no module ad_assign info used by power_fs
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fs
analyzevars: prefix ('elemental') were not used
Block: power_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fi
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fi
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fi
get_useparameters: no module ad_assign info used by power_fi
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_fi
analyzevars: prefix ('elemental') were not used
Block: power_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_rf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_rf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_rf
get_useparameters: no module ad_assign info used by power_rf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_rf
analyzevars: prefix ('elemental') were not used
Block: power_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_sf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_sf
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_sf
get_useparameters: no module ad_assign info used by power_sf
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_sf
analyzevars: prefix ('elemental') were not used
Block: power_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_if
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_if
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_if
get_useparameters: no module ad_assign info used by power_if
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_if
analyzevars: prefix ('elemental') were not used
Block: power_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_ff
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((i, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_ff
get_parameters: got "invalid syntax (<string>, line 1)" on '(/((j, i=j,n), j=1,n)/)'
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_ff
get_useparameters: no module ad_assign info used by power_ff
In: :auto_deriv:auto_deriv.f90:ad_assign:ad_operator_power:power_ff
analyzevars: prefix ('elemental') were not used
Block: deriv_class
In: :auto_deriv:auto_deriv.f90:ad_assign:deriv_class
get_useparameters: no module ad_assign info used by deriv_class
Post-processing (stage 2)...
Block: auto_deriv
Block: unknown_interface
Block: ieeex_exceptions
Block: ieee_set_flag
Block: ad_types
Block: func
Block: ad_utilities
Block: derivative
Block: indep_scalar
Block: indep_vector
Block: extract
Block: ad_auxiliary
Block: tensor
Block: is_small
Block: ad_assign
Block: ad_relational
Block: less_fr
Block: less_fs
Block: less_fi
Block: less_rf
Block: less_sf
Block: less_if
Block: less_ff
Block: less_equal_fr
Block: less_equal_fs
Block: less_equal_fi
Block: less_equal_rf
Block: less_equal_sf
Block: less_equal_if
Block: less_equal_ff
Block: greater_fr
Block: greater_fs
Block: greater_fi
Block: greater_rf
Block: greater_sf
Block: greater_if
Block: greater_ff
Block: greater_equal_fr
Block: greater_equal_fs
Block: greater_equal_fi
Block: greater_equal_rf
Block: greater_equal_sf
Block: greater_equal_if
Block: greater_equal_ff
Block: equal_fr
Block: equal_fs
Block: equal_fi
Block: equal_rf
Block: equal_sf
Block: equal_if
Block: equal_ff
Block: not_equal_fr
Block: not_equal_fs
Block: not_equal_fi
Block: not_equal_rf
Block: not_equal_sf
Block: not_equal_if
Block: not_equal_ff
Block: ad_operator_plus
Block: unary_plus
Block: add_rf
Block: add_sf
Block: add_if
Block: add_fr
Block: add_fs
Block: add_fi
Block: add_ff
Block: ad_operator_minus
Block: negate
Block: sub_rf
Block: sub_sf
Block: sub_if
Block: sub_fr
Block: sub_fs
Block: sub_fi
Block: sub_ff
Block: ad_operator_star
Block: mul_rf
Block: mul_sf
Block: mul_if
Block: mul_fr
Block: mul_fs
Block: mul_fi
Block: mul_ff
Block: ad_operator_slash
Block: div_fr
Block: div_fs
Block: div_fi
Block: div_rf
Block: div_sf
Block: div_if
Block: div_ff
Block: ad_fortran_library
Block: abs_
Block: acos_
Block: aint_
Block: anint_
Block: asin_
Block: atan_
Block: atan2_ff_
Block: atan2_rf_
Block: atan2_fr_
Block: atan2_sf_
Block: atan2_fs_
Block: ceiling_
Block: cos_
Block: cosh_
Block: digits_
Block: dim_
Block: dot_product_ff_
Block: dot_product_rf_
Block: dot_product_sf_
Block: dot_product_if_
Block: dot_product_fr_
Block: dot_product_fs_
Block: dot_product_fi_
Block: epsilon_
Block: exp_
Block: exponent_
Block: floor_
Block: fraction_
Block: huge_
Block: int_
Block: kind_
Block: log_
Block: log10_
Block: matmul_ff_12_
Block: matmul_rf_12_
Block: matmul_sf_12_
Block: matmul_if_12_
Block: matmul_fr_12_
Block: matmul_fs_12_
Block: matmul_fi_12_
Block: matmul_ff_21_
Block: matmul_rf_21_
Block: matmul_sf_21_
Block: matmul_if_21_
Block: matmul_fr_21_
Block: matmul_fs_21_
Block: matmul_fi_21_
Block: matmul_ff_22_
Block: matmul_rf_22_
Block: matmul_sf_22_
Block: matmul_if_22_
Block: matmul_fr_22_
Block: matmul_fs_22_
Block: matmul_fi_22_
Block: max2_ff_
Block: max2_fr_
Block: max2_rf_
Block: max2_fs_
Block: max2_sf_
Block: max3_
Block: maxexponent_
Block: maxloc_1
Block: maxloc__dim_1
Block: maxloc__mask_1
Block: maxloc__dim_mask_1
Block: maxval_1
Block: min2_ff_
Block: min2_fr_
Block: min2_rf_
Block: min2_fs_
Block: min2_sf_
Block: min3_
Block: minexponent_
Block: minloc_1
Block: minloc__dim_1
Block: minloc__mask_1
Block: minloc__dim_mask_1
Block: minval_1
Block: mod_ff_
Block: mod_fr_
Block: mod_rf_
Block: modulo_ff_
Block: modulo_fr_
Block: modulo_rf_
Block: nearest_ff_
Block: nearest_rf_
Block: nearest_fr_
Block: nearest_sf_
Block: nearest_fs_
Block: nint_
Block: precision_
Block: product_1
Block: radix_
Block: range_
Block: rrspacing_
Block: scale_
Block: set_exponent_
Block: sign_ff_
Block: sign_rf_
Block: sign_fr_
Block: sin_
Block: sinh_
Block: spacing_
Block: sqrt_
Block: sum_1
Block: tan_
Block: tanh_
Block: tiny_
Block: ad_operator_power
Block: power_fr
Block: power_fs
Block: power_fi
Block: power_rf
Block: power_sf
Block: power_if
Block: power_ff
Block: deriv_class
Building modules...
Building module "auto_deriv"...
Constructing F90 module support for "ieeex_exceptions"...
Variables: ieee_overflow ieee_divide_by_zero ieee_invalid ieee_underflow ieee_inexact
Constructing wrapper function "ieeex_exceptions.ieee_set_flag"...
ieee_set_flag(flag,flag_value)
Constructing F90 module support for "ad_types"...
Variables: n dpk spk ik nhes order_is_1or2 order_is_2
Skipping type func
Constructing F90 module support for "ad_utilities"...
Constructing wrapper function "ad_utilities.derivative"...
derivative(order)
Constructing wrapper function "ad_utilities.indep_scalar"...
getctype: No C-type found in "{'typespec': 'type', 'typename': 'func', 'attrspec': [], 'intent': ['out']}", assuming void.
getctype: No C-type found in "{'typespec': 'type', 'typename': 'func', 'attrspec': [], 'intent': ['out']}", assuming void.
getctype: No C-type found in "{'typespec': 'type', 'typename': 'func', 'attrspec': [], 'intent': ['out']}", assuming void.
Traceback (most recent call last):
File "/Users/user/opt/anaconda3/bin/f2py3", line 33, in <module>
sys.exit(load_entry_point('numpy==1.19.0', 'console_scripts', 'f2py3')())
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 694, in main
run_compile()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 661, in run_compile
setup(ext_modules=[ext])
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/core.py", line 171, in setup
return old_setup(**new_attr)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build.py", line 42, in run
old_build.run(self)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/Users/user/opt/anaconda3/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 146, in run
self.build_sources()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 163, in build_sources
self.build_extension_sources(ext)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 323, in build_extension_sources
sources = self.f2py_sources(sources, ext)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 566, in f2py_sources
['-m', ext_name]+f_sources)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 468, in run_main
ret = buildmodules(postlist)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 394, in buildmodules
dict_append(ret[mnames[i]], rules.buildmodule(modules[i], um))
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/rules.py", line 1231, in buildmodule
mr, wrap = f90mod_rules.buildhooks(m)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/f90mod_rules.py", line 202, in buildhooks
api, wrap = rules.buildapi(b)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/rules.py", line 1383, in buildapi
vrd = capi_maps.sign2map(a, var[a])
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/capi_maps.py", line 615, in sign2map
ret['pydocsign'], ret['pydocsignout'] = getpydocsign(a, var)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/numpy/f2py/capi_maps.py", line 424, in getpydocsign
sig = '%s : %s %s%s' % (a, opt, c2py_map[ctype], init)
KeyError: 'void'
done.
(base) user at Samuels-Mac-Pro auto_deriv %
-------------- next part --------------
subroutine gravity_derivs( Ndim, Mdim, degree, order, Ae, GM,
1 C, S, state_bdyf, acc_bdyf,
2 acc_partials_bdyf, iret )
! ----------------------------------------------------------------------
!
! Purpose: Compute geopotential acceleration and its Hessian Matrix
! -------
!
! Variable
! Name Type I/O Units Description
! -------- ---- --- ------- ----------------------------------
! Ndim I*4 I None Declared row dimension for
! spherical harmonics matrices
!
! Mdim I*4 I None Declared column dimension for
! spherical harmonics matrices
!
! degree I*4 I None Degree of the gravity model
! to be used
!
! order I*4 I None Order of the gravity model
! to be used
!
! Ae R*8 I C.U. Body equatorial radius in
! canonical units (C.U.)
!
! GM R*8 I C.U. Body gravitational parameter in
! canonical units (C.U.)
!
! C R*8 I None Matrix dimensioned containing:
! (Ndim,Ndim) 1. unnormalized
! 2. normalized
!
! S R*8 I None Matrix dimensioned containing:
! (Ndim,Ndim) 1. unnormalized
! 2. normalized
!
! state_bdyf R*8 I C.U. Vector containing the vehicle's
! (6) position and velocity in body
! fixed centered frame in
! canonical units
!
! acc_bdyf R*8 O C.U. Vector containing the vehicle's
! (3) acceleration in body fixed
! centered frame in canonical units
! acc_partials_bdyf
! (6,6) R*8 O C.U. Matrix containing Hessian Matrix
! for the acceleration in canonical
! units
!
! iret I*4 I None Return code where:
! iret = 0 - no errors
! iret = 1 - error encountered
!
!
!
! Author: HKK - INPE - May 2012 - Version 1.0
! ------
!
!
!
! Background
! ----------
! This subroutine is an adaptation of Subroutine Leg_ForCol_Ac
! developed by Kuga and Carrara to return both the body fixed
! acceleration and the acceleration Hessian Matrix.
!
! The acceleration Hessian matrix is computed using the Auto_Deriv
! code developed by Stamatiadis and Farantos that uses Automatic
! Differentiation (AD) to compute the derivatives.
!
!
!
! Restrictions and Limitations
! ----------------------------
! 1. This implementation requires that the full size gravity model
! be input, whether the coefficients be normalized or
! unnormalized.
!
! 2. The degree and order of the gravity model to be used must
! be equal, otherwise the return iret is set to one (1) and
! an error return is executed.
!
! 3. The order of the partial derivatives returned in the Hessian
! Matrix reflects an order used by the differential equation
! solver DIVA (Math77) applied to systems of second order
! variational equations.
!
!
!
! References
! ----------
! 1. Kuga, H.K.; Carrara, V. "Fortran- and C-codes for higher order
! and degree geopotential computation."
! URL: http://www.dem.inpe.br/~hkk/software/high_geopot.htm
! Date Last Accessed: 26-Jan-2020
!
! 2. S. Stamatiadis, S.C. Farantos, "Auto_Deriv: Tool for automatic
! differentiation of a Fortran code," Computer Physics
! Communications, Vol. 181, pp. 1818-1819, 2010,
! URL:
! https://www.sciencedirect.com/science/article/pii/S0010465510002444,
! Date Last Accessed: 26-Jan-2020
!
! 3. [TBD]
!
!-----------------------------------------------------------------------
USE deriv_class ! make the module accessible
implicit none
c ----------------------------------------------------------------------
c Argument List Variables
c ----------------------------------------------------------------------
integer * 4 degree
integer * 4 order
integer * 4 Ndim
integer * 4 Mdim
integer * 4 iret
double precision Ae
double precision GM
double precision C(0:Ndim,0:Mdim)
double precision S(0:Ndim,0:Mdim)
double precision state_bdyf(6)
double precision acc_bdyf(3)
double precision acc_partials_bdyf(6,6)
! Locals
! ------
c ----------------------------------------------------------------------
c Local Variables
c ----------------------------------------------------------------------
integer * 4 deriv
parameter ( deriv = 2 )
integer * 4 i
integer * 4 j
integer * 4 k
integer * 4 n
integer * 4 m
double precision grav_pot
double precision mu
double precision pos_bdyf(3)
double precision vel_bdyf(3)
double precision Dacc(6)
double precision gradV(6)
double precision DDacc(21)
double precision anm, bnm, am, an
c ----------------------------------------------------------------------
c variables containing the independent variable used for the
c differentiation
c ----------------------------------------------------------------------
TYPE (func) :: var_(6),
1 acc_(3),
2 RxovR_, RyovR_, RzovR_, Rmag_, q,
3 t, u, tf,
4 al, sl, cl,
5 GMr,
6 Vl, Vf, Vr,
7 pn(0:degree), qn(0:degree),
8 Pnm, dPnm,
9 Pnm1m, Pnm2m, sm, cm, sml, cml,
A qC, qS, Xc, Xs, Xcf, Xsf, Xcr, Xsr,
B Omega, V
C
Cf2py intent(in) Ndim, Mdim, degree, order, Ae, GM, C, S
Cf2py intent(in) state_bdyf
Cf2py intent(out) acc_bdyf, acc_partials_bdyf, iret
Cf2py depend(Ndim,Mdim) C, S
Cf2py depend(degree) pn, qn
C
c ----------------------------------------------------------------------
c ----------------------------------------------------------------------
iret = 0
c ----------------------------------------------------------------------
c load the input position and velocity vectors to local variables
c ----------------------------------------------------------------------
pos_bdyf(1:3) = state_bdyf(1:3)
vel_bdyf(1:3) = state_bdyf(4:6)
c ----------------------------------------------------------------------
c copy the body's gravitational parameter to a local variable
c ----------------------------------------------------------------------
mu = GM
c ----------------------------------------------------------------------
c call derivative() to declare the order of the derivatives
c ----------------------------------------------------------------------
CALL derivative( deriv )
c ----------------------------------------------------------------------
c declare as independent variables the (x, y, z) and assign them
c them their values (x_, y_, z_)
c ----------------------------------------------------------------------
CALL independent( 1, var_(1), pos_bdyf(1) )
CALL independent( 3, var_(2), pos_bdyf(2) )
CALL independent( 5, var_(3), pos_bdyf(3) )
CALL independent( 2, var_(4), vel_bdyf(1) )
CALL independent( 4, var_(5), vel_bdyf(2) )
CALL independent( 6, var_(6), vel_bdyf(3) )
c ----------------------------------------------------------------------
c define variables for use by Automatic Differentiation code
c ----------------------------------------------------------------------
Rmag_ = sqrt( var_(1)**2 + var_(2)**2 + var_(3)**2 )
RxovR_ = var_(1) / Rmag_
RyovR_ = var_(2) / Rmag_
RzovR_ = var_(3) / Rmag_
q = Ae / Rmag_
t = RzovR_ ! sin (lat)
u = sqrt( 1.d0 - RzovR_ * RzovR_ )
tf = RzovR_ / sqrt( 1.d0 - RzovR_ * RzovR_ ) ! tan (lat)
al = atan2( RyovR_, RxovR_ )
sl = sin( al ) ! sin (long)
cl = cos( al ) ! cos (long)
GMr = mu / Rmag_
c ----------------------------------------------------------------------
c Summation initialization
c ----------------------------------------------------------------------
Vl = 0.d0
Vf = 0.d0
Vr = 0.d0
Omega = 0.d0
c ----------------------------------------------------------------------
c ----------------------------------------------------------------------
if( degree .gt. 0 .and. order .ge. 0 ) then
c ----------------------------------------------------------------------
c pre-store sectoral polynomials and q(m) = (Ae/r)**m
c ----------------------------------------------------------------------
pn(0) = 1.d0
pn(1) = 1.7320508075688773D0 * u ! sqrt(3) * cos (lat)
qn(0) = 1.d0
qn(1) = q
!do m = 2, Nm
do m = 2, degree
am = dble(m)
pn(m) = u * dsqrt(1.d0+0.5d0/am) * pn(m-1)
qn(m) = q * qn(m-1)
end do
! Initialize sin and cos recursions
sm = 0.d0
cm = 1.d0
! Outer loop
!do m=0,Nm
do m=0,order
! init
am = dble(m)
! For m = n
Pnm = pn(m) ! m=n sectoral
Pnm1m = Pnm
Pnm2m = 0.d0
! Init Xc, Xs sums
Xc = qn(m) * C(m,m) * Pnm
Xs = qn(m) * S(m,m) * Pnm
! Inner Loop
!do n=m+1,Nm
do n=m+1,degree
an = dble(n)
anm = dsqrt( ((an+an-1.d0)*(an+an+1.d0))
& / ((an-am)*(an+am)) )
bnm = dsqrt( ((an+an+1.d0)*(an+am-1.d0)*(an-am-1.d0))
& / ((an-am)*(an+am)*(an+an-3.d0)) )
! Pnm recursion
Pnm = anm * t * Pnm1m - bnm * Pnm2m
! Store
Pnm2m = Pnm1m
Pnm1m = Pnm
! Inner sum
if (n .lt. 2) cycle
Xc = Xc + qn(n) * C(n,m) * Pnm
Xs = Xs + qn(n) * S(n,m) * Pnm
end do
! Outer sum
Omega = Omega + (Xc*cm + Xs*sm)
! sin and cos recursions to next m
cml = cl*cm - sm*sl
sml = cl*sm + cm*sl
cm = cml ! save to next m
sm = sml ! save to next m
end do
end if
! Finalization, include n=0 (P00=1),
! for n=1 all terms are zero: C,S(1,1), C,S(1,0) = 0
V = -GMr * (1.d0+Omega)
c ----------------------------------------------------------------------
c CALL extract() to compute the acceleration and its partials
c store the acceleration and its partials in output variables
c ----------------------------------------------------------------------
CALL extract( V, grav_pot, Dacc, DDacc )
acc_bdyf(1) = -Dacc(1)
acc_bdyf(2) = -Dacc(3)
acc_bdyf(3) = -Dacc(5)
gradV(1:6) = Dacc(1:6)
k = 0
DO i = 1, 6
DO j = i, 6
write( *, * ) 'i, j, k, k+j = ', i, j, k, k+j
acc_partials_bdyf(i,j) = DDacc(k+j)
acc_partials_bdyf(j,i) = DDacc(k+j)
END DO
k = k + 6 - i
END DO
WRITE( *, * )
WRITE( *, * )
WRITE( *, * )
WRITE( *, * ) ' in gravity_derivs'
WRITE( *, * ) ' -----------------'
WRITE( *, * )
WRITE( *, 1040 ) ' grav potential = ', grav_pot
WRITE( *, * )
WRITE( *, 1040 ) ' grav_acc = ', acc_bdyf
WRITE( *, * )
WRITE( *, 1050 ) ' gradient (NxM) = ', gradV
WRITE( *, * )
WRITE( *, 1050 ) ' partials (NxM) = ',
1 ( acc_partials_bdyf(1,j), j = 1, 6 ),
2 ( acc_partials_bdyf(2,j), j = 1, 6 ),
3 ( acc_partials_bdyf(3,j), j = 1, 6 ),
4 ( acc_partials_bdyf(4,j), j = 1, 6 ),
5 ( acc_partials_bdyf(5,j), j = 1, 6 ),
6 ( acc_partials_bdyf(6,j), j = 1, 6 )
c ----------------------------------------------------------------------
c return to the calling routine
c ----------------------------------------------------------------------
RETURN
c ----------------------------------------------------------------------
c format statements
c ---------------------------------------------------------------------
1040 FORMAT( a27, 1p, e27.16, 3x, e27.16, 3x, e27.16, 0p, /,
1 ( 1p, t28, e27.16, 3x, e27.16, 3x, e27.16, 0p ) )
1050 FORMAT( a27, 1p, e27.16, 3x, e27.16, 3x, e27.16, 3x, e27.16, 3x,
1 e27.16,3x, e27.16, 0p, /,
2 ( t28, 1p, e27.16, 3x, e27.16, 3x, e27.16, 3x, e27.16, 3x,
3 e27.16,3x, e27.16, 0p ) )
c ----------------------------------------------------------------------
c end of subroutine gravity_derivs
c ----------------------------------------------------------------------
END
-------------- next part --------------
!! Source conforms to
!! Fortran 95 (ISO/IEC 1539-1:1997) "Base language" +
!! TR-15580: Floating-point exception handling
!! If your f95 compiler does not support "TR-15580: Floating-point exception
!! handling", i.e. warns about (the lack of) the IEEEx_EXCEPTIONS module,
!! please uncomment the following module
MODULE IEEEx_EXCEPTIONS
IMPLICIT NONE
INTEGER, PARAMETER :: IEEE_OVERFLOW = 1
INTEGER, PARAMETER :: IEEE_DIVIDE_BY_ZERO = 2
INTEGER, PARAMETER :: IEEE_INVALID = 3
INTEGER, PARAMETER :: IEEE_UNDERFLOW = 4
INTEGER, PARAMETER :: IEEE_INEXACT = 5
CONTAINS
ELEMENTAL SUBROUTINE IEEE_SET_FLAG(flag, flag_value)
IMPLICIT NONE
INTEGER, INTENT (in) :: flag
LOGICAL, INTENT (in) :: flag_value
REAL :: x, y
IF (flag_value .EQV. .FALSE.) RETURN
SELECT CASE (flag)
CASE (IEEE_INVALID)
x = -1.0
y = SQRT(x)
CASE (IEEE_DIVIDE_BY_ZERO)
x = 0.0
y = 1.0/x
END SELECT
END SUBROUTINE IEEE_SET_FLAG
END MODULE IEEEx_EXCEPTIONS
MODULE ad_types
IMPLICIT NONE
! INTEGER, PARAMETER :: n = 3 ! number of independent variables
INTEGER, PARAMETER :: n = 6 ! number of independent variables
! INTEGER, PARAMETER :: n = 8 ! number of independent variables
!----------------------------------------------------------------------------
! You SHOULD NOT NEED to change anything below.
!----------------------------------------------------------------------------
! ***************** WARNING: dpk, spk MUST BE NOT EQUAL. ******************
INTEGER, PARAMETER :: dpk = KIND(1.d0)
! kind for real for dependent and independent variables
INTEGER, PARAMETER :: spk = KIND(1.0)
! other kind for real variables in mixed-mode arithmetic
INTEGER, PARAMETER :: ik = KIND(1)
! kind for integer variables in mixed-mode arithmetic
! the above to support expressions like: f = 2 * x + 3.0 * y + 4.d0
!----------------------------------------------------------------------------
! You MUST NOT change anything below.
!----------------------------------------------------------------------------
INTEGER, PARAMETER :: nhes = (n * (n + 1)) / 2 ! dimension of the Hessian pack
LOGICAL :: order_is_1or2, order_is_2
TYPE func
SEQUENCE ! for use with common and equivalence blocks
REAL (dpk) :: value = 0.0_dpk
REAL (dpk) :: x(n) = 0.0_dpk
REAL (dpk) :: xx(nhes) = 0.0_dpk
END TYPE func
END MODULE ad_types
MODULE ad_utilities
USE ad_types
IMPLICIT NONE
INTERFACE independent
MODULE PROCEDURE indep_scalar, indep_vector
END INTERFACE independent
CONTAINS
SUBROUTINE derivative(order)
IMPLICIT NONE
INTEGER, INTENT (in) :: order
order_is_2 = order == 2
order_is_1or2 = (order == 1) .OR. (order_is_2)
END SUBROUTINE derivative
SUBROUTINE indep_scalar(i, x, val)
IMPLICIT NONE
INTEGER, INTENT (in) :: i
TYPE (func), INTENT (out) :: x
REAL (dpk), INTENT (in) :: val
IF ((i < 1) .OR. (i > n)) STOP "error in auto_deriv: indep_scalar"
x%value = val
IF (order_is_1or2) THEN
x%x = 0.0_dpk
x%x(i) = 1.0_dpk
ENDIF
IF (order_is_2) x%xx = 0.0_dpk
END SUBROUTINE indep_scalar
SUBROUTINE indep_vector(x, val)
IMPLICIT NONE
TYPE (func), DIMENSION(:), INTENT (out) :: x
REAL (dpk), DIMENSION(:), INTENT (in) :: val
INTEGER :: i
IF (SIZE(x) /= n) STOP "error in auto_deriv: indep_vector"
DO i=1,n
CALL indep_scalar(i, x(i), val(i))
ENDDO
END SUBROUTINE indep_vector
PURE SUBROUTINE extract(x, val, Dx, DDx)
IMPLICIT NONE
TYPE (func), INTENT (in) :: x
REAL (dpk), INTENT (out) :: val
REAL (dpk), INTENT (out), OPTIONAL :: Dx(n), DDx(nhes)
val = x%value
IF (PRESENT(Dx) .AND. order_is_1or2) Dx = x%x
IF (PRESENT(DDx) .AND. order_is_2 ) DDx = x%xx
END SUBROUTINE extract
END MODULE ad_utilities
MODULE ad_auxiliary
USE ad_types
IMPLICIT NONE
INTEGER, PRIVATE :: i,j
INTEGER, PARAMETER :: row(nhes) = (/ ( (i, i=j,n), j=1,n) /)
INTEGER, PARAMETER :: col(nhes) = (/ ( (j, i=j,n), j=1,n) /)
CONTAINS
PURE FUNCTION tensor(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
REAL (dpk), DIMENSION (nhes) :: res
res = a%x(col) * b%x(row)
END FUNCTION tensor
! is_small is used for checking denominators in fractions.
ELEMENTAL FUNCTION is_small(x) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: x
LOGICAL :: res
res = ABS(x) < TINY(x)
END FUNCTION is_small
END MODULE ad_auxiliary
MODULE ad_assign
USE ad_types
IMPLICIT NONE
INTERFACE ASSIGNMENT (=)
MODULE PROCEDURE assig_FF, assig_FR, assig_FS, assig_FI
END INTERFACE ASSIGNMENT (=)
PRIVATE
PUBLIC :: ASSIGNMENT (=)
CONTAINS
ELEMENTAL SUBROUTINE assig_FF(res, a) ! res = a
IMPLICIT NONE
TYPE (func), INTENT (out) :: res
TYPE (func), INTENT (in) :: a
res%value = a%value
IF (order_is_1or2) res%x = a%x
IF (order_is_2) res%xx = a%xx
END SUBROUTINE assig_FF
ELEMENTAL SUBROUTINE assig_FR(res, lambda) ! res = lambda
IMPLICIT NONE
TYPE (func), INTENT (inout) :: res
REAL (dpk), INTENT (in) :: lambda
res%value = lambda ! what is the correct value for the derivatives?
END SUBROUTINE assig_FR
ELEMENTAL SUBROUTINE assig_FS(res, lambda) ! res = lambda
IMPLICIT NONE
TYPE (func), INTENT (inout) :: res
REAL (spk), INTENT (in) :: lambda
res = REAL(lambda, dpk)
END SUBROUTINE assig_FS
ELEMENTAL SUBROUTINE assig_FI(res, lambda) ! res = lambda
IMPLICIT NONE
TYPE (func), INTENT (inout) :: res
INTEGER (ik), INTENT (in) :: lambda
res = REAL(lambda, dpk)
END SUBROUTINE assig_FI
END MODULE ad_assign
MODULE ad_relational
USE ad_types
IMPLICIT NONE
INTERFACE OPERATOR (<)
MODULE PROCEDURE less_FF
MODULE PROCEDURE less_FR, less_FS, less_FI, less_RF, less_SF, less_IF
END INTERFACE
INTERFACE OPERATOR (<=)
MODULE PROCEDURE less_equal_FF
MODULE PROCEDURE less_equal_FR, less_equal_RF
MODULE PROCEDURE less_equal_FI, less_equal_IF
MODULE PROCEDURE less_equal_FS, less_equal_SF
END INTERFACE
INTERFACE OPERATOR (>)
MODULE PROCEDURE greater_FF
MODULE PROCEDURE greater_FR, greater_FS, greater_FI
MODULE PROCEDURE greater_RF, greater_SF, greater_IF
END INTERFACE
INTERFACE OPERATOR (>=)
MODULE PROCEDURE greater_equal_FR, greater_equal_RF
MODULE PROCEDURE greater_equal_FI, greater_equal_IF
MODULE PROCEDURE greater_equal_FF, greater_equal_SF, greater_equal_FS
END INTERFACE
INTERFACE OPERATOR (==)
MODULE PROCEDURE equal_FR, equal_FI, equal_RF, equal_IF
MODULE PROCEDURE equal_FF, equal_SF, equal_FS
END INTERFACE
INTERFACE OPERATOR (/=)
MODULE PROCEDURE not_equal_FR, not_equal_FI, not_equal_RF
MODULE PROCEDURE not_equal_IF, not_equal_FF, not_equal_SF, not_equal_FS
END INTERFACE
PRIVATE
PUBLIC :: OPERATOR (<), OPERATOR (<=), OPERATOR (>), OPERATOR (>=)
PUBLIC :: OPERATOR (/=), OPERATOR (==)
CONTAINS
ELEMENTAL FUNCTION less_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value < lambda
END FUNCTION less_FR
ELEMENTAL FUNCTION less_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value < REAL(lambda, dpk)
END FUNCTION less_FS
ELEMENTAL FUNCTION less_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = a%value < REAL(lambda, dpk)
END FUNCTION less_FI
ELEMENTAL FUNCTION less_RF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) < a%value
END FUNCTION less_RF
ELEMENTAL FUNCTION less_SF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) < a%value
END FUNCTION less_SF
ELEMENTAL FUNCTION less_IF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) < a%value
END FUNCTION less_IF
ELEMENTAL FUNCTION less_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
LOGICAL :: res
res = a%value < b%value
END FUNCTION less_FF
ELEMENTAL FUNCTION less_equal_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value <= lambda
END FUNCTION less_equal_FR
ELEMENTAL FUNCTION less_equal_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value <= REAL(lambda,dpk)
END FUNCTION less_equal_FS
ELEMENTAL FUNCTION less_equal_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = a%value <= REAL(lambda,dpk)
END FUNCTION less_equal_FI
ELEMENTAL FUNCTION less_equal_RF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = lambda <= a%value
END FUNCTION less_equal_RF
ELEMENTAL FUNCTION less_equal_SF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) <= a%value
END FUNCTION less_equal_SF
ELEMENTAL FUNCTION less_equal_IF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) <= a%value
END FUNCTION less_equal_IF
ELEMENTAL FUNCTION less_equal_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
LOGICAL :: res
res = a%value <= b%value
END FUNCTION less_equal_FF
ELEMENTAL FUNCTION greater_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value > lambda
END FUNCTION greater_FR
ELEMENTAL FUNCTION greater_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value > REAL(lambda,dpk)
END FUNCTION greater_FS
ELEMENTAL FUNCTION greater_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = a%value > REAL(lambda,dpk)
END FUNCTION greater_FI
ELEMENTAL FUNCTION greater_RF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = lambda > a%value
END FUNCTION greater_RF
ELEMENTAL FUNCTION greater_SF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) > a%value
END FUNCTION greater_SF
ELEMENTAL FUNCTION greater_IF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) > a%value
END FUNCTION greater_IF
ELEMENTAL FUNCTION greater_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
LOGICAL :: res
res = a%value > b%value
END FUNCTION greater_FF
ELEMENTAL FUNCTION greater_equal_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value >= lambda
END FUNCTION greater_equal_FR
ELEMENTAL FUNCTION greater_equal_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value >= REAL(lambda,dpk)
END FUNCTION greater_equal_FS
ELEMENTAL FUNCTION greater_equal_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = a%value >= REAL(lambda,dpk)
END FUNCTION greater_equal_FI
ELEMENTAL FUNCTION greater_equal_RF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = lambda >= a%value
END FUNCTION greater_equal_RF
ELEMENTAL FUNCTION greater_equal_SF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) >= a%value
END FUNCTION greater_equal_SF
ELEMENTAL FUNCTION greater_equal_IF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) >= a%value
END FUNCTION greater_equal_IF
ELEMENTAL FUNCTION greater_equal_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
LOGICAL :: res
res = a%value >= b%value
END FUNCTION greater_equal_FF
ELEMENTAL FUNCTION equal_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value == lambda
END FUNCTION equal_FR
ELEMENTAL FUNCTION equal_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value == REAL(lambda,dpk)
END FUNCTION equal_FS
ELEMENTAL FUNCTION equal_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = a%value == REAL(lambda,dpk)
END FUNCTION equal_FI
ELEMENTAL FUNCTION equal_RF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = lambda == a%value
END FUNCTION equal_RF
ELEMENTAL FUNCTION equal_SF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) == a%value
END FUNCTION equal_SF
ELEMENTAL FUNCTION equal_IF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) == a%value
END FUNCTION equal_IF
ELEMENTAL FUNCTION equal_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
LOGICAL :: res
res = a%value == b%value
END FUNCTION equal_FF
ELEMENTAL FUNCTION not_equal_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value /= lambda
END FUNCTION not_equal_FR
ELEMENTAL FUNCTION not_equal_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = a%value /= REAL(lambda,dpk)
END FUNCTION not_equal_FS
ELEMENTAL FUNCTION not_equal_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = a%value /= REAL(lambda,dpk)
END FUNCTION not_equal_FI
ELEMENTAL FUNCTION not_equal_RF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
LOGICAL :: res
res = lambda /= a%value
END FUNCTION not_equal_RF
ELEMENTAL FUNCTION not_equal_SF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) /= a%value
END FUNCTION not_equal_SF
ELEMENTAL FUNCTION not_equal_IF(lambda, a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
LOGICAL :: res
res = REAL(lambda,dpk) /= a%value
END FUNCTION not_equal_IF
ELEMENTAL FUNCTION not_equal_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
LOGICAL :: res
res = a%value /= b%value
END FUNCTION not_equal_FF
END MODULE ad_relational
MODULE ad_operator_plus
USE ad_types
IMPLICIT NONE
INTERFACE OPERATOR (+)
MODULE PROCEDURE unary_plus
MODULE PROCEDURE add_FF, add_FR, add_FS, add_FI, add_RF, add_SF, add_IF
END INTERFACE
PRIVATE
PUBLIC :: OPERATOR (+)
CONTAINS
ELEMENTAL FUNCTION unary_plus(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = a
END FUNCTION unary_plus
ELEMENTAL FUNCTION add_RF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = a
res%value = lambda + res%value
END FUNCTION add_RF
ELEMENTAL FUNCTION add_SF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk) + a
END FUNCTION add_SF
ELEMENTAL FUNCTION add_IF(lambda, a) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk) + a
END FUNCTION add_IF
ELEMENTAL FUNCTION add_FR(a, lambda) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda + a
END FUNCTION add_FR
ELEMENTAL FUNCTION add_FS(a, lambda) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda + a
END FUNCTION add_FS
ELEMENTAL FUNCTION add_FI(a, lambda) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda + a
END FUNCTION add_FI
ELEMENTAL FUNCTION add_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
res%value = a%value + b%value
IF (order_is_1or2) res%x = a%x + b%x
IF (order_is_2) res%xx = a%xx + b%xx
END FUNCTION add_FF
END MODULE ad_operator_plus
MODULE ad_operator_minus
USE ad_types
USE ad_operator_plus
IMPLICIT NONE
INTERFACE OPERATOR (-)
MODULE PROCEDURE negate
MODULE PROCEDURE sub_FF, sub_FR, sub_FS, sub_FI, sub_RF, sub_SF, sub_IF
END INTERFACE
PRIVATE
PUBLIC :: OPERATOR (-)
CONTAINS
ELEMENTAL FUNCTION negate(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res%value = -a%value
IF (order_is_1or2) res%x = -a%x
IF (order_is_2) res%xx = -a%xx
END FUNCTION negate
ELEMENTAL FUNCTION sub_RF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda + (-a)
END FUNCTION sub_RF
ELEMENTAL FUNCTION sub_SF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda + (-a)
END FUNCTION sub_SF
ELEMENTAL FUNCTION sub_IF(lambda, a) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda + (-a)
END FUNCTION sub_IF
ELEMENTAL FUNCTION sub_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
res = a + (-lambda)
END FUNCTION sub_FR
ELEMENTAL FUNCTION sub_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
TYPE (func) :: res
res = a + (-lambda)
END FUNCTION sub_FS
ELEMENTAL FUNCTION sub_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
TYPE (func) :: res
res = a + (-lambda)
END FUNCTION sub_FI
ELEMENTAL FUNCTION sub_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
res = a + (-b)
END FUNCTION sub_FF
END MODULE ad_operator_minus
MODULE ad_operator_star
USE ad_types
USE ad_auxiliary
IMPLICIT NONE
INTERFACE OPERATOR (*)
MODULE PROCEDURE mul_FF, mul_FR, mul_FS, mul_FI, mul_RF, mul_SF, mul_IF
END INTERFACE
PRIVATE
PUBLIC :: OPERATOR (*)
CONTAINS
ELEMENTAL FUNCTION mul_RF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res%value = lambda * a%value
IF (order_is_1or2) res%x = lambda * a%x
IF (order_is_2) res%xx = lambda * a%xx
END FUNCTION mul_RF
ELEMENTAL FUNCTION mul_SF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk) * a
END FUNCTION mul_SF
ELEMENTAL FUNCTION mul_IF(lambda, a) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk) * a
END FUNCTION mul_IF
ELEMENTAL FUNCTION mul_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
res = lambda * a
END FUNCTION mul_FR
ELEMENTAL FUNCTION mul_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
TYPE (func) :: res
res = lambda * a
END FUNCTION mul_FS
ELEMENTAL FUNCTION mul_FI(a, lambda) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = lambda * a
END FUNCTION mul_FI
ELEMENTAL FUNCTION mul_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
res%value = a%value * b%value
IF (order_is_1or2) res%x = a%value * b%x + b%value * a%x
IF (order_is_2) THEN
res%xx = a%value * b%xx + tensor(a,b) + tensor(b,a) + b%value * a%xx
ENDIF
END FUNCTION mul_FF
END MODULE ad_operator_star
MODULE ad_operator_slash
USE ad_types
USE ad_operator_star
USE ad_auxiliary
IMPLICIT NONE
INTERFACE OPERATOR (/)
MODULE PROCEDURE div_FF, div_FR, div_FS, div_FI, div_RF, div_SF, div_IF
END INTERFACE
PRIVATE
PUBLIC :: OPERATOR (/)
CONTAINS
ELEMENTAL FUNCTION div_FR(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
res = (1.0_dpk / lambda) * a
END FUNCTION div_FR
ELEMENTAL FUNCTION div_FS(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
TYPE (func) :: res
res = (1.0_dpk / REAL(lambda,dpk)) * a
END FUNCTION div_FS
ELEMENTAL FUNCTION div_FI(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
TYPE (func) :: res
res = (1.0_dpk / REAL(lambda,dpk)) * a
END FUNCTION div_FI
ELEMENTAL FUNCTION div_RF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res%value = lambda / a%value
IF (order_is_1or2) res%x = (-res%value / a%value) * a%x
IF (order_is_2) THEN
res%xx = -( res%value * a%xx + 2.0_dpk * tensor(res,a) ) / a%value
ENDIF
END FUNCTION div_RF
ELEMENTAL FUNCTION div_SF(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk) / a
END FUNCTION div_SF
ELEMENTAL FUNCTION div_IF(lambda, a) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk) / a
END FUNCTION div_IF
ELEMENTAL FUNCTION div_FF(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
res = a * (1.0_dpk / b)
END FUNCTION div_FF
END MODULE ad_operator_slash
MODULE ad_fortran_library
USE ad_types
USE ad_relational
USE ad_assign
USE ad_operator_plus
USE ad_operator_minus
USE ad_operator_star
USE ad_operator_slash
USE ad_auxiliary
USE IEEEx_EXCEPTIONS
IMPLICIT NONE
INTERFACE abs
MODULE PROCEDURE abs_
END INTERFACE
INTERFACE acos
MODULE PROCEDURE acos_
END INTERFACE
INTERFACE aint
MODULE PROCEDURE aint_
END INTERFACE
INTERFACE anint
MODULE PROCEDURE anint_
END INTERFACE
INTERFACE asin
MODULE PROCEDURE asin_
END INTERFACE
INTERFACE atan
MODULE PROCEDURE atan_
END INTERFACE
INTERFACE atan2
MODULE PROCEDURE atan2_FF_, atan2_RF_, atan2_FR_, atan2_SF_, atan2_FS_
END INTERFACE
INTERFACE ceiling
MODULE PROCEDURE ceiling_
END INTERFACE
INTERFACE cos
MODULE PROCEDURE cos_
END INTERFACE
INTERFACE cosh
MODULE PROCEDURE cosh_
END INTERFACE
INTERFACE digits
MODULE PROCEDURE digits_
END INTERFACE
INTERFACE dim
MODULE PROCEDURE dim_
END INTERFACE
INTERFACE dot_product
MODULE PROCEDURE dot_product_FF_
MODULE PROCEDURE dot_product_RF_, dot_product_SF_, dot_product_IF_
MODULE PROCEDURE dot_product_FR_, dot_product_FS_, dot_product_FI_
END INTERFACE
INTERFACE epsilon
MODULE PROCEDURE epsilon_
END INTERFACE
INTERFACE exp
MODULE PROCEDURE exp_
END INTERFACE
INTERFACE exponent
MODULE PROCEDURE exponent_
END INTERFACE
INTERFACE floor
MODULE PROCEDURE floor_
END INTERFACE
INTERFACE fraction
MODULE PROCEDURE fraction_
END INTERFACE
INTERFACE huge
MODULE PROCEDURE huge_
END INTERFACE
INTERFACE int
MODULE PROCEDURE int_
END INTERFACE
INTERFACE kind
MODULE PROCEDURE kind_
END INTERFACE
INTERFACE log
MODULE PROCEDURE log_
END INTERFACE
INTERFACE log10
MODULE PROCEDURE log10_
END INTERFACE
INTERFACE matmul
MODULE PROCEDURE matmul_FF_12_
MODULE PROCEDURE matmul_RF_12_, matmul_SF_12_, matmul_IF_12_
MODULE PROCEDURE matmul_FR_12_, matmul_FS_12_, matmul_FI_12_
MODULE PROCEDURE matmul_FF_21_
MODULE PROCEDURE matmul_RF_21_, matmul_SF_21_, matmul_IF_21_
MODULE PROCEDURE matmul_FR_21_, matmul_FS_21_, matmul_FI_21_
MODULE PROCEDURE matmul_FF_22_
MODULE PROCEDURE matmul_RF_22_, matmul_SF_22_, matmul_IF_22_
MODULE PROCEDURE matmul_FR_22_, matmul_FS_22_, matmul_FI_22_
END INTERFACE
INTERFACE max
MODULE PROCEDURE max2_FF_, max2_RF_, max2_FR_, max2_SF_, max2_FS_, max3_
END INTERFACE
INTERFACE maxexponent
MODULE PROCEDURE maxexponent_
END INTERFACE
INTERFACE maxloc
MODULE PROCEDURE maxloc_1, maxloc__dim_1, maxloc__mask_1
MODULE PROCEDURE maxloc__dim_mask_1
END INTERFACE
INTERFACE maxval
MODULE PROCEDURE maxval_1
END INTERFACE
INTERFACE min
MODULE PROCEDURE min2_FF_, min2_RF_, min2_FR_, min2_SF_, min2_FS_, min3_
END INTERFACE
INTERFACE minexponent
MODULE PROCEDURE minexponent_
END INTERFACE
INTERFACE minloc
MODULE PROCEDURE minloc_1, minloc__dim_1, minloc__mask_1
MODULE PROCEDURE minloc__dim_mask_1
END INTERFACE
INTERFACE minval
MODULE PROCEDURE minval_1
END INTERFACE
INTERFACE mod
MODULE PROCEDURE mod_FF_, mod_RF_, mod_FR_
END INTERFACE
INTERFACE modulo
MODULE PROCEDURE modulo_FR_, modulo_RF_, modulo_FF_
END INTERFACE
INTERFACE nearest
MODULE PROCEDURE nearest_FF_, nearest_FR_, nearest_RF_
MODULE PROCEDURE nearest_FS_, nearest_SF_
END INTERFACE
INTERFACE nint
MODULE PROCEDURE nint_
END INTERFACE
INTERFACE PRECISION
MODULE PROCEDURE precision_
END INTERFACE
INTERFACE product
MODULE PROCEDURE product_1
END INTERFACE
INTERFACE radix
MODULE PROCEDURE radix_
END INTERFACE
INTERFACE range
MODULE PROCEDURE range_
END INTERFACE
INTERFACE rrspacing
MODULE PROCEDURE rrspacing_
END INTERFACE
INTERFACE scale
MODULE PROCEDURE scale_
END INTERFACE
INTERFACE set_exponent
MODULE PROCEDURE set_exponent_
END INTERFACE
INTERFACE sign
MODULE PROCEDURE sign_RF_, sign_FR_, sign_FF_
END INTERFACE
INTERFACE sin
MODULE PROCEDURE sin_
END INTERFACE
INTERFACE sinh
MODULE PROCEDURE sinh_
END INTERFACE
INTERFACE spacing
MODULE PROCEDURE spacing_
END INTERFACE
INTERFACE sqrt
MODULE PROCEDURE sqrt_
END INTERFACE
INTERFACE sum
MODULE PROCEDURE sum_1
END INTERFACE
INTERFACE tan
MODULE PROCEDURE tan_
END INTERFACE
INTERFACE tanh
MODULE PROCEDURE tanh_
END INTERFACE
INTERFACE tiny
MODULE PROCEDURE tiny_
END INTERFACE
PRIVATE
PUBLIC :: abs, acos, aint, anint, asin, atan, atan2, ceiling, cos, cosh
PUBLIC :: digits, dim, dot_product, epsilon, exp, exponent, floor, fraction
PUBLIC :: huge, int, log, log10, matmul, max, maxexponent, maxloc, maxval
PUBLIC :: min, minexponent, minloc, minval, mod, modulo, nearest, nint
PUBLIC :: precision, product, radix, range, rrspacing, scale, set_exponent
PUBLIC :: sign, sin, sinh, spacing, sqrt, sum, tan, tanh, tiny, kind
CONTAINS
ELEMENTAL FUNCTION abs_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = a
IF (a%value < 0.0_dpk) res = -res
IF (a%value == 0.0_dpk) CALL IEEE_SET_FLAG(IEEE_INVALID, .TRUE.)
! discontinuous function.
END FUNCTION abs_
ELEMENTAL FUNCTION acos_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: sin_
res%value = ACOS(a%value)
IF (order_is_1or2) THEN
sin_ = SIN(res%value)
IF (is_small(sin_)) CALL IEEE_SET_FLAG(IEEE_DIVIDE_BY_ZERO, .TRUE.)
res%x = -a%x / sin_
END IF
IF (order_is_2) res%xx = -(a%xx + a%value * tensor(res, res)) / sin_
END FUNCTION acos_
ELEMENTAL FUNCTION aint_(a) RESULT (res)
! optional argument kind cannot be implemented
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = AINT(a%value)
END FUNCTION aint_
ELEMENTAL FUNCTION anint_(a) RESULT (res)
! optional argument kind cannot be implemented
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = ANINT(a%value)
END FUNCTION anint_
ELEMENTAL FUNCTION asin_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: cos_
res%value = ASIN(a%value)
IF (order_is_1or2) THEN
cos_ = COS(res%value)
IF (is_small(cos_)) CALL IEEE_SET_FLAG(IEEE_DIVIDE_BY_ZERO, .TRUE.)
res%x = a%x / cos_
END IF
IF (order_is_2) res%xx = (a%xx + a%value * tensor(res, res)) / cos_
END FUNCTION asin_
ELEMENTAL FUNCTION atan_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: cos2
res%value = ATAN(a%value)
IF (order_is_1or2) THEN
cos2 = 1.0_dpk / (1.0_dpk + a%value**2) ! COS(res%value)**2
res%x = cos2 * a%x
ENDIF
IF (order_is_2) THEN
! res%xx = -SIN(2.0_dpk * res%value) * tensor(a,res) + cos2 * a%xx
! res%xx = -2.0_dpk * SIN(res%value) * COS(res%value) * tensor(a,res) + cos2 * a%xx
! res%xx = cos2 * (-2.0_dpk * TAN(res%value) * tensor(a,res) + a%xx)
! res%xx = -2.0_dpk * a%value * cos2 * tensor(a,res) + cos2 * a%xx
res%xx = -2.0_dpk * a%value * tensor(res,res) + cos2 * a%xx
ENDIF
END FUNCTION atan_
ELEMENTAL FUNCTION atan2_FF_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
IF (is_small(b%value)) CALL IEEE_SET_FLAG(IEEE_DIVIDE_BY_ZERO, .TRUE.)
res = ATAN(a / b)
res%value = ATAN2(a%value, b%value)
END FUNCTION atan2_FF_
ELEMENTAL FUNCTION atan2_RF_(a_, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: a_
TYPE (func), INTENT (in) :: b
TYPE (func) :: res
TYPE (func) :: a
a = func(a_, 0.0_dpk, 0.0_dpk)
res = ATAN2(a,b)
END FUNCTION atan2_RF_
ELEMENTAL FUNCTION atan2_FR_(a, b_) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: b_
TYPE (func) :: res
TYPE (func) :: b
b = func(b_, 0.0_dpk, 0.0_dpk)
res = ATAN2(a,b)
END FUNCTION atan2_FR_
ELEMENTAL FUNCTION atan2_SF_(a, b) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: a
TYPE (func), INTENT (in) :: b
TYPE (func) :: res
res = ATAN2(REAL(a,dpk), b)
END FUNCTION atan2_SF_
ELEMENTAL FUNCTION atan2_FS_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: b
TYPE (func) :: res
res = ATAN2(a, REAL(b,dpk))
END FUNCTION atan2_FS_
ELEMENTAL FUNCTION ceiling_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = CEILING(a%value)
END FUNCTION ceiling_
ELEMENTAL FUNCTION cos_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: minus_sin
res%value = COS(a%value)
IF (order_is_1or2) THEN
minus_sin = -SIN(a%value)
res%x = minus_sin * a%x
ENDIF
IF (order_is_2) res%xx = minus_sin * a%xx - res%value * tensor(a,a)
END FUNCTION cos_
ELEMENTAL FUNCTION cosh_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: sinha
res%value = COSH(a%value)
IF (order_is_1or2) THEN
sinha = SINH(a%value)
res%x = sinha * a%x
ENDIF
IF (order_is_2) res%xx = res%value * tensor(a,a) + sinha * a%xx
END FUNCTION cosh_
ELEMENTAL FUNCTION digits_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = DIGITS(a%value)
END FUNCTION digits_
ELEMENTAL FUNCTION dim_(x, y) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: x, y
TYPE (func) :: res
res = func(0.0_dpk, 0.0_dpk, 0.0_dpk)
IF (x > y) res = x - y
END FUNCTION dim_
PURE FUNCTION dot_product_FF_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a, b
TYPE (func) :: res
INTEGER :: i
res = a(1) * b(1)
DO i = 2, SIZE(a)
res = res + a(i) * b(i)
ENDDO
END FUNCTION dot_product_FF_
PURE FUNCTION dot_product_RF_(lambda, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), DIMENSION (:), INTENT (in) :: lambda
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func) :: res
INTEGER :: i
res%value = DOT_PRODUCT(lambda, b%value)
IF (order_is_1or2) FORALL (i=1:n) res%x(i) =DOT_PRODUCT(lambda, b%x(i))
IF (order_is_2) FORALL (i=1:nhes) res%xx(i)=DOT_PRODUCT(lambda, b%xx(i))
!!%
!!% res = 0.0_dpk
!!% DO i = 1, SIZE(lambda)
!!% res = res + lambda(i) * b(i)
!!% ENDDO
END FUNCTION dot_product_RF_
PURE FUNCTION dot_product_SF_(a, b) RESULT (res)
IMPLICIT NONE
REAL (spk), DIMENSION (:), INTENT (in) :: a
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func) :: res
res = DOT_PRODUCT(REAL(a,dpk), b)
END FUNCTION dot_product_SF_
PURE FUNCTION dot_product_IF_(a, b) RESULT (res)
IMPLICIT NONE
INTEGER (ik), DIMENSION (:), INTENT (in) :: a
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func) :: res
res = DOT_PRODUCT(REAL(a,dpk), b)
END FUNCTION dot_product_IF_
PURE FUNCTION dot_product_FR_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
REAL (dpk), DIMENSION (:), INTENT (in) :: b
TYPE (func) :: res
res = DOT_PRODUCT(b, a)
END FUNCTION dot_product_FR_
PURE FUNCTION dot_product_FS_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
REAL (spk), DIMENSION (:), INTENT (in) :: b
TYPE (func) :: res
res = DOT_PRODUCT(b, a)
END FUNCTION dot_product_FS_
PURE FUNCTION dot_product_FI_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER (ik), DIMENSION (:), INTENT (in) :: b
TYPE (func) :: res
res = DOT_PRODUCT(b, a)
END FUNCTION dot_product_FI_
ELEMENTAL FUNCTION epsilon_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = EPSILON(a%value)
END FUNCTION epsilon_
ELEMENTAL FUNCTION exp_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res%value = EXP(a%value)
IF (order_is_1or2) res%x = res%value * a%x
IF (order_is_2) res%xx = res%value * a%xx + tensor(a,res)
END FUNCTION exp_
ELEMENTAL FUNCTION exponent_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = EXPONENT(a%value)
END FUNCTION exponent_
ELEMENTAL FUNCTION floor_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = FLOOR(a%value)
END FUNCTION floor_
ELEMENTAL FUNCTION fraction_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = FRACTION(a%value)
END FUNCTION fraction_
ELEMENTAL FUNCTION huge_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = HUGE(a%value)
END FUNCTION huge_
ELEMENTAL FUNCTION int_(a) RESULT (res)
! optional argument kind cannot be implemented
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = INT(a%value)
END FUNCTION int_
ELEMENTAL FUNCTION kind_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = KIND(a%value) ! by default = dpk
END FUNCTION kind_
ELEMENTAL FUNCTION log_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res%value = LOG(a%value)
IF (order_is_1or2) res%x = a%x / a%value
IF (order_is_2) res%xx = a%xx / a%value - tensor(res, res)
END FUNCTION log_
ELEMENTAL FUNCTION log10_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = LOG(a) / LOG(10.0_dpk)
END FUNCTION log10_
PURE FUNCTION matmul_FF_12_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
INTEGER :: i
res%value = MATMUL(a%value, b%value)
IF (order_is_1or2) THEN
FORALL (i = 1:n) &
res%x(i) = MATMUL(a%x(i), b%value) + MATMUL(a%value, b%x(i))
END IF
IF (order_is_2) THEN
FORALL (i=1:nhes) res%xx(i) = &
MATMUL(a%xx(i), b%value) + &
MATMUL(a%x(col(i)), b%x(row(i))) + & ! tensor
MATMUL(a%value, b%xx(i))
END IF
END FUNCTION matmul_FF_12_
PURE FUNCTION matmul_RF_12_(lambda, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), DIMENSION (:), INTENT (in) :: lambda
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
INTEGER :: i
res%value = MATMUL(lambda, b%value)
IF (order_is_1or2) FORALL(i=1:n) res%x(i) = MATMUL(lambda, b%x(i))
IF (order_is_2) FORALL (i=1:nhes) res%xx(i) = MATMUL(lambda, b%xx(i))
END FUNCTION matmul_RF_12_
PURE FUNCTION matmul_SF_12_(lambda, b) RESULT (res)
IMPLICIT NONE
REAL (spk), DIMENSION (:), INTENT (in) :: lambda
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
res = MATMUL(REAL(lambda,dpk), b)
END FUNCTION matmul_SF_12_
PURE FUNCTION matmul_IF_12_(lambda, b) RESULT (res)
IMPLICIT NONE
INTEGER (ik), DIMENSION (:), INTENT (in) :: lambda
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
res = MATMUL(REAL(lambda,dpk), b)
END FUNCTION matmul_IF_12_
PURE FUNCTION matmul_FR_12_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
REAL (dpk), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
INTEGER :: i
res%value = MATMUL(a%value, b)
IF (order_is_1or2) FORALL(i=1:n) res%x(i) = MATMUL(a%x(i), b)
IF (order_is_2) FORALL(i=1:nhes) res%xx(i) = MATMUL(a%xx(i), b)
END FUNCTION matmul_FR_12_
PURE FUNCTION matmul_FS_12_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
REAL (spk), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
res = MATMUL(a, REAL(b,dpk))
END FUNCTION matmul_FS_12_
PURE FUNCTION matmul_FI_12_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER (ik), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(b, 2)) :: res
res = MATMUL(a, REAL(b,dpk))
END FUNCTION matmul_FI_12_
PURE FUNCTION matmul_FF_21_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
INTEGER :: i
res%value = MATMUL(a%value, b%value)
IF (order_is_1or2) THEN
FORALL (i = 1:n) &
res%x(i) = MATMUL(a%x(i), b%value) + MATMUL(a%value, b%x(i))
END IF
IF (order_is_2) THEN
FORALL (i=1:nhes) res%xx(i) = &
MATMUL(a%xx(i), b%value) + &
MATMUL(a%x(col(i)), b%x(row(i))) + & ! tensor
MATMUL(a%value, b%xx(i))
END IF
END FUNCTION matmul_FF_21_
PURE FUNCTION matmul_RF_21_(a, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
INTEGER :: i
res%value = MATMUL(a, b%value)
IF (order_is_1or2) FORALL(i=1:n) res%x(i) = MATMUL(a, b%x(i))
IF (order_is_2) FORALL(i=1:nhes) res%xx(i) = MATMUL(a, b%xx(i))
END FUNCTION matmul_RF_21_
PURE FUNCTION matmul_SF_21_(a, b) RESULT (res)
IMPLICIT NONE
REAL (spk), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
res = MATMUL(REAL(a,dpk), b)
END FUNCTION matmul_SF_21_
PURE FUNCTION matmul_IF_21_(a, b) RESULT (res)
IMPLICIT NONE
INTEGER (ik), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
res = MATMUL(REAL(a,dpk), b)
END FUNCTION matmul_IF_21_
PURE FUNCTION matmul_FR_21_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
REAL (dpk), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
INTEGER :: i
res%value = MATMUL(a%value, b)
IF (order_is_1or2) FORALL (i=1:n) res%x(i) = MATMUL(a%x(i), b)
IF (order_is_2) FORALL (i=1:nhes) res%xx(i) = MATMUL(a%xx(i), b)
END FUNCTION matmul_FR_21_
PURE FUNCTION matmul_FS_21_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
REAL (spk), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
res = MATMUL(a, REAL(b,dpk))
END FUNCTION matmul_FS_21_
PURE FUNCTION matmul_FI_21_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
INTEGER (ik), DIMENSION (:), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1)) :: res
res = MATMUL(a, REAL(b,dpk))
END FUNCTION matmul_FI_21_
PURE FUNCTION matmul_FF_22_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
INTEGER :: i
res%value = MATMUL(a%value, b%value)
IF (order_is_1or2) THEN
FORALL (i=1:n) &
res%x(i) = MATMUL(a%x(i), b%value) + MATMUL(a%value, b%x(i))
END IF
IF (order_is_2) THEN
FORALL (i=1:nhes) res%xx(i) = &
MATMUL(a%xx(i), b%value) + &
MATMUL(a%x(col(i)), b%x(row(i))) + & ! tensor
MATMUL(a%value, b%xx(i))
END IF
END FUNCTION matmul_FF_22_
PURE FUNCTION matmul_RF_22_(a, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
INTEGER :: i
res%value = MATMUL(a, b%value)
IF (order_is_1or2) FORALL (i=1:n) res%x(i) = MATMUL(a, b%x(i))
IF (order_is_2) FORALL (i=1:nhes) res%xx(i) = MATMUL(a, b%xx(i))
END FUNCTION matmul_RF_22_
PURE FUNCTION matmul_SF_22_(a, b) RESULT (res)
IMPLICIT NONE
REAL (spk), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
res = MATMUL(REAL(a, dpk), b)
END FUNCTION matmul_SF_22_
PURE FUNCTION matmul_IF_22_(a, b) RESULT (res)
IMPLICIT NONE
INTEGER (ik), DIMENSION (:, :), INTENT (in) :: a
TYPE (func), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
res = MATMUL(REAL(a, dpk), b)
END FUNCTION matmul_IF_22_
PURE FUNCTION matmul_FR_22_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
REAL (dpk), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
INTEGER :: i
res%value = MATMUL(a%value, b)
IF (order_is_1or2) FORALL (i=1:n) res%x(i) = MATMUL(a%x(i), b)
IF (order_is_2) FORALL (i=1:nhes) res%xx(i) = MATMUL(a%xx(i), b)
END FUNCTION matmul_FR_22_
PURE FUNCTION matmul_FS_22_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
REAL (spk), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
res = MATMUL(a, REAL(b,dpk))
END FUNCTION matmul_FS_22_
PURE FUNCTION matmul_FI_22_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:, :), INTENT (in) :: a
INTEGER (ik), DIMENSION (:, :), INTENT (in) :: b
TYPE (func), DIMENSION (SIZE(a, 1), SIZE(b, 2)) :: res
res = MATMUL(a, REAL(b,dpk))
END FUNCTION matmul_FI_22_
ELEMENTAL FUNCTION max2_FF_(a1, a2) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1
TYPE (func), INTENT (in) :: a2
TYPE (func) :: res
IF (a1 >= a2) THEN
res = a1
ELSE
res = a2
END IF
END FUNCTION max2_FF_
ELEMENTAL FUNCTION max2_FR_(a1, a2) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1
REAL (dpk), INTENT (in) :: a2
TYPE (func) :: res
res = MAX(a1, func(a2, 0.0_dpk, 0.0_dpk))
END FUNCTION max2_FR_
ELEMENTAL FUNCTION max2_RF_(a1, a2) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: a1
TYPE (func), INTENT (in) :: a2
TYPE (func) :: res
res = MAX(a2, a1)
END FUNCTION max2_RF_
ELEMENTAL FUNCTION max2_FS_(a1, a2) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1
REAL (spk), INTENT (in) :: a2
TYPE (func) :: res
res = MAX(a1, REAL(a2,dpk))
END FUNCTION max2_FS_
ELEMENTAL FUNCTION max2_SF_(a1, a2) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: a1
TYPE (func), INTENT (in) :: a2
TYPE (func) :: res
res = MAX(a2, a1)
END FUNCTION max2_SF_
ELEMENTAL FUNCTION max3_(a1, a2, a3) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1, a2, a3
TYPE (func) :: res
res = MAX(a1, MAX(a2,a3))
END FUNCTION max3_
ELEMENTAL FUNCTION maxexponent_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = MAXEXPONENT(a%value)
END FUNCTION maxexponent_
PURE FUNCTION maxloc_1(a) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MAXLOC(a%value)
END FUNCTION maxloc_1
PURE FUNCTION maxloc__dim_1(a, dim) RESULT (res) ! F95 interface
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in) :: dim ! not optional
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MAXLOC(a%value, dim)
END FUNCTION maxloc__dim_1
PURE FUNCTION maxloc__mask_1(a, mask) RESULT (res) ! F90 interface
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
LOGICAL, DIMENSION (:), INTENT (in) :: mask ! not optional
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MAXLOC(a%value, mask)
END FUNCTION maxloc__mask_1
PURE FUNCTION maxloc__dim_mask_1(a, dim, mask) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in) :: dim
LOGICAL, DIMENSION (:), INTENT (in) :: mask
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MAXLOC(a%value, dim, mask)
END FUNCTION maxloc__dim_mask_1
PURE FUNCTION maxval_1(a, dim, mask) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in), OPTIONAL :: dim
LOGICAL, DIMENSION (:), INTENT (in), OPTIONAL :: mask ! same rank with a
TYPE (func) :: res ! res is scalar
INTEGER :: ind(SIZE(SHAPE(a)))
INTEGER :: mydim
LOGICAL, DIMENSION (SIZE(a)) :: mymask
mydim = 1
IF (PRESENT(dim)) mydim = dim
mymask = .TRUE.
IF (PRESENT(mask)) mymask = mask
ind = MAXLOC(a, mydim, mymask)
res = a(ind(1))
END FUNCTION maxval_1
ELEMENTAL FUNCTION min2_FF_(a1, a2) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1, a2
TYPE (func) :: res
IF (a1 <= a2) res = a1
IF (a2 <= a1) res = a2
END FUNCTION min2_FF_
ELEMENTAL FUNCTION min2_FR_(a1, a2) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1
REAL (dpk), INTENT (in) :: a2
TYPE (func) :: res
res = MIN(a1, func(a2, 0.0_dpk, 0.0_dpk))
END FUNCTION min2_FR_
ELEMENTAL FUNCTION min2_RF_(a1, a2) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: a1
TYPE (func), INTENT (in) :: a2
TYPE (func) :: res
res = MIN(a2, a1)
END FUNCTION min2_RF_
ELEMENTAL FUNCTION min2_FS_(a1, a2) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1
REAL (spk), INTENT (in) :: a2
TYPE (func) :: res
res = MIN(a1, REAL(a2,dpk))
END FUNCTION min2_FS_
ELEMENTAL FUNCTION min2_SF_(a1, a2) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: a1
TYPE (func), INTENT (in) :: a2
TYPE (func) :: res
res = MIN(a2, a1)
END FUNCTION min2_SF_
ELEMENTAL FUNCTION min3_(a1, a2, a3) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a1, a2, a3
TYPE (func) :: res
res = MIN(a1, MIN(a2,a3))
END FUNCTION min3_
ELEMENTAL FUNCTION minexponent_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = MINEXPONENT(a%value)
END FUNCTION minexponent_
PURE FUNCTION minloc_1(a) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MINLOC(a%value)
END FUNCTION minloc_1
PURE FUNCTION minloc__dim_1(a, dim) RESULT (res) ! F95 interface
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in) :: dim ! not optional
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MINLOC(a%value, dim)
END FUNCTION minloc__dim_1
PURE FUNCTION minloc__mask_1(a, mask) RESULT (res) ! F90 interface
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
LOGICAL, DIMENSION (:), INTENT (in) :: mask ! not optional
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MINLOC(a%value, mask)
END FUNCTION minloc__mask_1
PURE FUNCTION minloc__dim_mask_1(a, dim, mask) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in) :: dim
LOGICAL, DIMENSION (:), INTENT (in) :: mask
INTEGER, DIMENSION (SIZE(SHAPE(a))) :: res
res = MINLOC(a%value, dim, mask)
END FUNCTION minloc__dim_mask_1
PURE FUNCTION minval_1(a, dim, mask) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in), OPTIONAL :: dim
LOGICAL, DIMENSION (:), INTENT (in), OPTIONAL :: mask ! same rank with a
TYPE (func) :: res ! res is scalar
INTEGER :: ind(SIZE(SHAPE(a)))
INTEGER :: mydim
LOGICAL, DIMENSION (SIZE(a)) :: mymask
mydim = 1
IF (PRESENT(dim)) mydim = dim
mymask = .TRUE.
IF (PRESENT(mask)) mymask = mask
ind = MINLOC(a, mydim, mymask)
res = a(ind(1))
END FUNCTION minval_1
ELEMENTAL FUNCTION mod_FF_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
INTEGER :: div
res%value = MOD(a%value, b%value)
IF (order_is_1or2) THEN
div = (a%value - res%value) / b%value
res%x = a%x - div * b%x
END IF
IF (order_is_2) res%xx = a%xx - div * b%xx
END FUNCTION mod_FF_
ELEMENTAL FUNCTION mod_FR_(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
res = a
res%value = MOD(a%value, lambda)
END FUNCTION mod_FR_
ELEMENTAL FUNCTION mod_RF_(lambda, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: b
REAL (dpk) :: res
res = MOD(lambda, b%value)
END FUNCTION mod_RF_
! no mod_sf, mod_fs; a, lambda must be of the same kind
ELEMENTAL FUNCTION modulo_FF_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
INTEGER :: div
res%value = MODULO(a%value, b%value)
IF (order_is_1or2) THEN
div = (a%value - res%value) / b%value
res%x = a%x - div * b%x
END IF
IF (order_is_2) res%xx = a%xx - div * b%xx
END FUNCTION modulo_FF_
ELEMENTAL FUNCTION modulo_FR_(a, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
res = a
res%value = MODULO(a%value, lambda)
END FUNCTION modulo_FR_
! no modulo_sf, modulo_fs; a, lambda must be of the same kind
ELEMENTAL FUNCTION modulo_RF_(lambd, a) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambd
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = MODULO(lambd, a%value)
END FUNCTION modulo_RF_
ELEMENTAL FUNCTION nearest_FF_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
! the derivatives should be kept. Otherwise, don't use nearest().
res = a
res = NEAREST(a%value, b%value)
END FUNCTION nearest_FF_
ELEMENTAL FUNCTION nearest_RF_(a, b) RESULT (res)
IMPLICIT NONE
REAL (dpk), INTENT (in) :: a
TYPE (func), INTENT (in) :: b
REAL (dpk) :: res
res = NEAREST(a, b%value)
END FUNCTION nearest_RF_
ELEMENTAL FUNCTION nearest_FR_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: b
TYPE (func) :: res
res = NEAREST(a, func(b, 0.0_dpk, 0.0_dpk))
END FUNCTION nearest_FR_
ELEMENTAL FUNCTION nearest_SF_(a, b) RESULT (res)
IMPLICIT NONE
REAL (spk), INTENT (in) :: a
TYPE (func), INTENT (in) :: b
REAL (spk) :: res
res = NEAREST(a, b%value)
END FUNCTION nearest_SF_
ELEMENTAL FUNCTION nearest_FS_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: b
TYPE (func) :: res
res = NEAREST(a, REAL(b, dpk))
END FUNCTION nearest_FS_
ELEMENTAL FUNCTION nint_(a) RESULT (res)
! optional argument kind cannot be implemented
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = NINT(a%value)
END FUNCTION nint_
ELEMENTAL FUNCTION precision_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = PRECISION(a%value)
END FUNCTION precision_
PURE FUNCTION product_1(a, dim, mask) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in), OPTIONAL :: dim
LOGICAL, DIMENSION (:), INTENT (in), OPTIONAL :: mask
TYPE (func) :: res ! res is array with rank = rank(a) - 1
INTEGER :: i, j, k
REAL (dpk) :: old_a, old_a_2
REAL (dpk), DIMENSION(SIZE(a,1)) :: a_ ! copy of a
INTEGER :: mydim
LOGICAL, DIMENSION (SIZE(a)) :: mymask
mydim = 1
IF (PRESENT(dim)) mydim = dim
mymask = .TRUE.
IF (PRESENT(mask)) mymask = mask
a_ = a%value
res%value = PRODUCT(a_, mydim, mymask)
IF (order_is_1or2) THEN
DO j = 1, n
res%x(j) = 0.0_dpk
DO i = 1, SIZE(a)
old_a = a_(i)
a_(i) = a(i)%x(j)
res%x(j) = res%x(j) + PRODUCT(a_, mydim, mymask)
a_(i) = old_a
ENDDO
ENDDO
ENDIF
IF (order_is_2) THEN
! First add to the sum the terms :
! a_1%xx() * a_2 * a_3 ... + a_1 * a_2%xx() * a_3 ... + ...
DO j = 1, nhes
res%xx(j) = 0.0_dpk
DO i = 1, SIZE(a)
old_a = a_(i)
a_(i) = a(i)%xx(j)
res%xx(j) = res%xx(j) + PRODUCT(a_, mydim, mymask)
a_(i) = old_a
ENDDO
ENDDO
! Now compute the tensor products
DO j = 1, nhes
DO k = 1, SIZE(a)
old_a = a_(k)
a_(k) = a(k)%x(col(j))
DO i = 1, SIZE(a)
IF (i == k) CYCLE
old_a_2 = a_(i)
a_(i) = a(i)%x(row(j))
res%xx(j) = res%xx(j) + PRODUCT(a_, mydim, mymask)
a_(i) = old_a_2
ENDDO
a_(k) = old_a
ENDDO
ENDDO
ENDIF
END FUNCTION product_1
ELEMENTAL FUNCTION radix_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = RADIX(a%value)
END FUNCTION radix_
ELEMENTAL FUNCTION range_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER :: res
res = RANGE(a%value)
END FUNCTION range_
ELEMENTAL FUNCTION rrspacing_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = RRSPACING(a%value)
END FUNCTION rrspacing_
ELEMENTAL FUNCTION scale_(a, i) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER, INTENT (in) :: i
TYPE (func) :: res
res%value = SCALE(a%value, i)
IF (order_is_1or2) res%x = SCALE(a%x, i)
IF (order_is_2) res%xx = SCALE(a%xx, i)
END FUNCTION scale_
ELEMENTAL FUNCTION set_exponent_(a, i) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER, INTENT (in) :: i
REAL (dpk) :: res
res = SET_EXPONENT(a%value, i)
END FUNCTION set_exponent_
ELEMENTAL FUNCTION sign_FF_(a, b) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func), INTENT (in) :: b
TYPE (func) :: res
res = ABS(a)
IF (b < 0.0_dpk) res = -res
END FUNCTION sign_FF_
ELEMENTAL FUNCTION sign_RF_(lambda, a) RESULT (res)
IMPLICIT NONE
REAL (dpk) , INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = SIGN(lambda, a%value)
END FUNCTION sign_RF_
ELEMENTAL FUNCTION sign_FR_(b, lambda) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: b
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
res = ABS(b)
IF (lambda < 0.0_dpk) res = -res
END FUNCTION sign_FR_
! no sign_sf_, sign_fs_; a, lambda must be of the same kind
ELEMENTAL FUNCTION sin_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: cosa
res%value = SIN(a%value)
IF (order_is_1or2) THEN
cosa = COS(a%value)
res%x = cosa * a%x
ENDIF
IF (order_is_2) res%xx = -res%value * tensor(a,a) + cosa * a%xx
END FUNCTION sin_
ELEMENTAL FUNCTION sinh_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: cosha
res%value = SINH(a%value)
IF (order_is_1or2) THEN
cosha = COSH(a%value)
res%x = cosha * a%x
ENDIF
IF (order_is_2) res%xx = res%value * tensor(a,a) + cosha * a%xx
END FUNCTION sinh_
ELEMENTAL FUNCTION spacing_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = SPACING(a%value)
END FUNCTION spacing_
ELEMENTAL FUNCTION sqrt_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
IF (a%value == 0.0_dpk) CALL IEEE_SET_FLAG(IEEE_INVALID, .TRUE.)
! discontinuous function.
res%value = SQRT(a%value)
IF (order_is_1or2) res%x = 0.5_dpk / res%value * a%x
IF (order_is_2) res%xx = (0.5_dpk * a%xx - tensor(res, res)) / res%value
END FUNCTION sqrt_
PURE FUNCTION sum_1(a, dim, mask) RESULT (res)
IMPLICIT NONE
TYPE (func), DIMENSION (:), INTENT (in) :: a
INTEGER, INTENT (in), OPTIONAL :: dim
LOGICAL, DIMENSION (:), INTENT (in), OPTIONAL :: mask
! mask has the shape of a
TYPE (func) :: res ! res is array with rank = rank(a) - 1
INTEGER :: i, mydim
LOGICAL, DIMENSION (SIZE(a)) :: mymask
mydim = 1
IF (PRESENT(dim)) mydim = dim
mymask = .TRUE.
IF (PRESENT(mask)) mymask = mask
res%value = SUM(a%value, mydim, mymask)
IF (order_is_1or2) FORALL(i=1:n) res%x(i) = SUM(a%x(i), mydim, mymask)
IF (order_is_2) FORALL(i=1:nhes) res%xx(i) = SUM(a%xx(i), mydim, mymask)
END FUNCTION sum_1
ELEMENTAL FUNCTION tan_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: sec2
res%value = TAN(a%value)
IF (order_is_1or2) THEN
sec2 = 1.0_dpk + res%value**2 ! 1.0_dpk / COS(a%value)**2
res%x = sec2 * a%x
ENDIF
IF (order_is_2) res%xx = sec2 * a%xx + 2.0_dpk * res%value * tensor(a,res)
END FUNCTION tan_
ELEMENTAL FUNCTION tanh_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
REAL (dpk) :: sech2
res%value = TANH(a%value)
IF (order_is_1or2) THEN
sech2 = 1.0_dpk - res%value**2 ! 1.0_dpk / COSH(a%value)**2
res%x = sech2 * a%x
ENDIF
IF (order_is_2) res%xx = sech2 * a%xx - 2.0_dpk * res%value * tensor(a,res)
END FUNCTION tanh_
ELEMENTAL FUNCTION tiny_(a) RESULT (res)
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk) :: res
res = TINY(a%value)
END FUNCTION tiny_
END MODULE ad_fortran_library
MODULE ad_operator_power
USE ad_types
USE ad_auxiliary
USE ad_assign
USE IEEEx_EXCEPTIONS
IMPLICIT NONE
INTERFACE OPERATOR (**)
MODULE PROCEDURE power_FF, power_FR, power_FS, power_FI
MODULE PROCEDURE power_RF, power_SF, power_IF
END INTERFACE
PRIVATE
PUBLIC :: OPERATOR (**)
CONTAINS
ELEMENTAL FUNCTION power_FR(a, lambda) RESULT (res) ! res = a**lambda
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (dpk), INTENT (in) :: lambda
TYPE (func) :: res
IF (lambda == 0.0_dpk) THEN
IF (a%value == 0.0_dpk) CALL IEEE_SET_FLAG(IEEE_INVALID, .TRUE.)
res%value = 1.0_dpk
IF (order_is_1or2) res%x = 0.0_dpk
IF (order_is_2) res%xx = 0.0_dpk
RETURN
END IF
IF (lambda == 1.0_dpk) THEN
res = a
RETURN
ENDIF
IF (a%value == 0.0_dpk) THEN
res%value = 0.0_dpk
IF (order_is_1or2) res%x = 0.0_dpk
IF (order_is_2) res%xx = 0.0_dpk
RETURN
ENDIF
res%value = a%value**lambda
IF (order_is_1or2) res%x = lambda * res%value / a%value * a%x
IF (order_is_2) res%xx = ((lambda - 1.0_dpk) * tensor(res,a) &
+ lambda * res%value * a%xx) / a%value
END FUNCTION power_FR
ELEMENTAL FUNCTION power_FS(a, lambda) RESULT (res) ! res = a**lambda
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
REAL (spk), INTENT (in) :: lambda
TYPE (func) :: res
res = a**REAL(lambda, dpk)
END FUNCTION power_FS
ELEMENTAL FUNCTION power_FI(a, lambda) RESULT (res) ! res = a**lambda
IMPLICIT NONE
TYPE (func), INTENT (in) :: a
INTEGER (ik), INTENT (in) :: lambda
TYPE (func) :: res
res = a**REAL(lambda, dpk)
END FUNCTION power_FI
ELEMENTAL FUNCTION power_RF(lambda, a) RESULT (res) ! res = lambda**a
IMPLICIT NONE
REAL (dpk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
IF (lambda <= 0.0_dpk) CALL IEEE_SET_FLAG(IEEE_INVALID, .TRUE.)
res%value = lambda**a%value
IF (order_is_1or2) res%x = LOG(lambda) * res%value * a%x
IF (order_is_2) res%xx = LOG(lambda) * (tensor(res,a) + res%value * a%xx)
END FUNCTION power_RF
ELEMENTAL FUNCTION power_SF(lambda, a) RESULT (res) ! res = lambda**a
IMPLICIT NONE
REAL (spk), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk)**a
END FUNCTION power_SF
ELEMENTAL FUNCTION power_IF(lambda, a) RESULT (res)
IMPLICIT NONE
INTEGER (ik), INTENT (in) :: lambda
TYPE (func), INTENT (in) :: a
TYPE (func) :: res
res = REAL(lambda, dpk)**a
END FUNCTION power_IF
ELEMENTAL FUNCTION power_FF(a, b) RESULT (res) ! res = a**b
USE ad_operator_star
USE ad_fortran_library, ONLY : exp, log
IMPLICIT NONE
TYPE (func), INTENT (in) :: a, b
TYPE (func) :: res
res = EXP(LOG(a) * b)
END FUNCTION power_FF
END MODULE ad_operator_power
MODULE deriv_class
USE ad_types
USE ad_utilities
USE ad_fortran_library
USE ad_assign
USE ad_operator_plus
USE ad_operator_minus
USE ad_operator_star
USE ad_operator_slash
USE ad_operator_power
USE ad_relational
IMPLICIT NONE
PRIVATE :: n, nhes, order_is_2, order_is_1or2, dpk, spk, ik
END MODULE deriv_class
-------------- next part --------------
echo f2py build for auto_deriv
echo deleting previous build
rm -i *.so
echo building Python wrappers
f2py3 -c gravity_derivs.f -m gravity_derivs --f77flags="-c -O -Wall"
f2py3 -c auto_deriv auto_deriv.f90 -m auto_deriv auto_deriv
echo done.
More information about the NumPy-Discussion
mailing list