I'm attempting to build an interface between a Fortran application I
have and Python. The problem I'm having is that f2py is not recognizing
my Absoft Fortran compiler. Details follow.
I'm running on a iMacPro (2017) under Mac OS X Mojave (ver. 10.14.4).
The version of the Absoft Compiler I'm running is 19.0.0. I'm using the
Anaconda distribution of Python 3, version 3.6.8, where the version of
NumPy used is ver. 1.16.3.
The commands I'm using to build the Python interface function and there
results are:
f2py -m DIVA_EphGen_f77 -h DIVA_EphGen_f77.pyf DIVA_EphGen_f77.f
--overwrite-signature
(base) Samuels-Mac-Pro:2nd_ODE_auto_deriv_cleanup_Rev-07 user$
./BuildMe_Part-1.sh
Reading fortran codes...
Reading file 'DIVA_EphGen_f77.f' (format:fix,strict)
Post-processing...
Block: DIVA_EphGen_f77
Block: diva_ephgen_f77
Post-processing (stage 2)...
Saving signatures to file "./DIVA_EphGen_f77.pyf"
(base) Samuels-Mac-Pro:2nd_ODE_auto_deriv_cleanup_Rev-07 user$
f2py -c --fcompiler=absoft DIVA_EphGen_f77.pyf DIVA_EphGen_f77.f \
--f77exec=/Applications/Absoft19.0/bin/af77 \
-L/Users/user/2nd_ODE_auto_deriv_cleanup_Rev-07/ -lDIVA_EphGen \
-L/Volumes/Development/AstrodynamicsLib/MacOSX.NAIF.Fortran.v65/toolkit-64-bit/lib/
-lspicelib \
-L/Volumes/Development/AstrodynamicsLib/MacOSX.NAIF.Fortran.v65/toolkit-64-bit/lib/
-lsupport \
-L/Application/Absoft19.0/lib64/ -lblas \
-L/Application/Absoft19.0/lib64/ -lAbsoftlapack \
--verbose
(base) Samuels-Mac-Pro:2nd_ODE_auto_deriv_cleanup_Rev-07 user$
./BuildMe_Part-2.sh
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 "DIVA_EphGen_f77" sources
creating
/var/folders/65/7cxpqns144q6wx5lyb7zcyh80000gq/T/tmpkv4x9yg7/src.macosx-10.9-x86_64-3.6
f2py options: []
f2py: DIVA_EphGen_f77.pyf
Reading fortran codes...
Reading file 'DIVA_EphGen_f77.pyf' (format:free)
Post-processing...
Block: DIVA_EphGen_f77
Block: diva_ephgen_f77
Post-processing (stage 2)...
Building modules...
Building module "DIVA_EphGen_f77"...
Constructing wrapper function "diva_ephgen_f77"...
diva_ephgen_f77(cmdline,scale_factor)
Wrote C/API module "DIVA_EphGen_f77" to file
"/var/folders/65/7cxpqns144q6wx5lyb7zcyh80000gq/T/tmpkv4x9yg7/src.macosx-10.9-x86_64-3.6/DIVA_EphGen_f77module.c"
adding
'/var/folders/65/7cxpqns144q6wx5lyb7zcyh80000gq/T/tmpkv4x9yg7/src.macosx-10.9-x86_64-3.6/fortranobject.c'
to sources.
adding
'/var/folders/65/7cxpqns144q6wx5lyb7zcyh80000gq/T/tmpkv4x9yg7/src.macosx-10.9-x86_64-3.6'
to include_dirs.
copying
/Users/user/anaconda3/lib/python3.6/site-packages/numpy/f2py/src/fortranobject.c
->
/var/folders/65/7cxpqns144q6wx5lyb7zcyh80000gq/T/tmpkv4x9yg7/src.macosx-10.9-x86_64-3.6
copying
/Users/user/anaconda3/lib/python3.6/site-packages/numpy/f2py/src/fortranobject.h
->
/var/folders/65/7cxpqns144q6wx5lyb7zcyh80000gq/T/tmpkv4x9yg7/src.macosx-10.9-x86_64-3.6
build_src: building npy-pkg config files
running build_ext
new_compiler returns <class 'distutils.unixccompiler.UnixCCompiler'>
customize UnixCCompiler
customize UnixCCompiler using build_ext
********************************************************************************
<class 'distutils.unixccompiler.UnixCCompiler'>
preprocessor = ['x86_64-apple-darwin13.4.0-clang', '-E',
'-D_FORTIFY_SOURCE=2', '-mmacosx-version-min=10.9']
compiler = ['x86_64-apple-darwin13.4.0-clang', '-DNDEBUG',
'-fwrapv', '-O2', '-Wall', '-Wstrict-prototypes', '-march=core2',
'-mtune=haswell', '-mssse3', '-ftree-vectorize', '-fPIC', '-fPIE',
'-fstack-protector-strong', '-O2', '-pipe', '-D_FORTIFY_SOURCE=2',
'-mmacosx-version-min=10.9']
compiler_so = ['x86_64-apple-darwin13.4.0-clang', '-DNDEBUG',
'-fwrapv', '-O2', '-Wall', '-Wstrict-prototypes', '-march=core2',
'-mtune=haswell', '-mssse3', '-ftree-vectorize', '-fPIC', '-fPIE',
'-fstack-protector-strong', '-O2', '-pipe', '-D_FORTIFY_SOURCE=2',
'-mmacosx-version-min=10.9']
compiler_cxx = ['x86_64-apple-darwin13.4.0-clang++']
linker_so = ['x86_64-apple-darwin13.4.0-clang', '-bundle',
'-undefined', 'dynamic_lookup', '-Wl,-pie',
'-Wl,-headerpad_max_install_names',
'-Wl,-rpath,/Users/user/anaconda3/lib', '-L/Users/user/anaconda3/lib',
'-Wl,-pie', '-Wl,-headerpad_max_install_names',
'-Wl,-rpath,/Users/user/anaconda3/lib', '-L/Users/user/anaconda3/lib',
'-Wl,-export_dynamic', '-Wl,-pie', '-Wl,-headerpad_max_install_names',
'-Wl,-dead_strip_dylibs', '-march=core2', '-mtune=haswell', '-mssse3',
'-ftree-vectorize', '-fPIC', '-fPIE', '-fstack-protector-strong', '-O2',
'-pipe', '-D_FORTIFY_SOURCE=2', '-mmacosx-version-min=10.9']
linker_exe = ['x86_64-apple-darwin13.4.0-clang']
archiver =
['/Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-ar', 'rc']
ranlib = ['ranlib']
libraries = []
library_dirs = []
include_dirs = ['/Users/user/anaconda3/include/python3.6m']
********************************************************************************
customize AbsoftFCompiler
find_executable('/Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-gfortran')
Found executable
/Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-gfortran
find_executable('/Applications/Absoft19.0/bin/af77')
Found executable /Applications/Absoft19.0/bin/af77
find_executable('/Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-ar')
Found executable /Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-ar
find_executable('/Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-ranlib')
Found executable /Users/user/anaconda3/bin/x86_64-apple-darwin13.4.0-ranlib
x86_64-apple-darwin13.4.0-gfortran: error: unrecognized command line
option ‘-V’
Traceback (most recent call last):
File "/Users/user/anaconda3/bin/f2py", line 11, in <module>
load_entry_point('numpy==1.16.3', 'console_scripts', 'f2py')()
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/f2py/f2py2e.py",
line 683, in main
run_compile()
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/f2py/f2py2e.py",
line 650, in run_compile
setup(ext_modules=[ext])
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/core.py",
line 171, in setup
return old_setup(**new_attr)
File "/Users/user/anaconda3/lib/python3.6/distutils/core.py", line
148, in setup
dist.run_commands()
File "/Users/user/anaconda3/lib/python3.6/distutils/dist.py", line
955, in run_commands
self.run_command(cmd)
File "/Users/user/anaconda3/lib/python3.6/distutils/dist.py", line
974, in run_command
cmd_obj.run()
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/command/build.py",
line 47, in run
old_build.run(self)
File
"/Users/user/anaconda3/lib/python3.6/distutils/command/build.py", line
135, in run
self.run_command(cmd_name)
File "/Users/user/anaconda3/lib/python3.6/distutils/cmd.py", line
313, in run_command
self.distribution.run_command(command)
File "/Users/user/anaconda3/lib/python3.6/distutils/dist.py", line
974, in run_command
cmd_obj.run()
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/command/build_ext.py",
line 226, in run
fcompiler.customize(self.distribution)
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py",
line 479, in customize
f77flags = self.flag_vars.f77
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/fcompiler/environment.py",
line 40, in __getattr__
return self._get_var(name, conf_desc)
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/fcompiler/environment.py",
line 56, in _get_var
var = self._hook_handler(name, hook)
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py",
line 709, in _environment_hook
return hook()
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/fcompiler/absoft.py",
line 119, in get_flags_f77
v = self.get_version()
File
"/Users/user/anaconda3/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py",
line 432, in get_version
raise CompilerNotFound()
numpy.distutils.fcompiler.CompilerNotFound
(base) Samuels-Mac-Pro:2nd_ODE_auto_deriv_cleanup_Rev-07 user$
A copy of the Fortran code and its corresponding .pyf file have been
attached to this note.
Any suggestions as to how to fix this problem.
Sam Dupree.