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.





      subroutine DIVA_EphGen_f77( cmdline, scale_factor )

      implicit none


      character (len=*)     cmdline


      double precision      scale_factor


!f2py    character (len=*)  intent(  in ) :: cmdline
!f2py    double precision   intent( out ) :: scale_fctor





c ---------------------------------------------------------------------
c ---------------------------------------------------------------------

      call DIVA_EphGen( cmdline, scale_factor)



c ---------------------------------------------------------------------
c     terminate execution
c ---------------------------------------------------------------------

      return


      end
!    -*- f90 -*-
! Note: the context of this file is case sensitive.

python module DIVA_EphGen_f77 ! in 
    interface  ! in :DIVA_EphGen_f77
        subroutine diva_ephgen_f77(cmdline,scale_factor) ! in 
:DIVA_EphGen_f77:DIVA_EphGen_f77.f
            character*(*) intent(in) :: cmdline
            double precision :: scale_factor
        end subroutine diva_ephgen_f77
    end interface 
end python module DIVA_EphGen_f77

! This file was auto-generated with f2py (version:2).
! See http://cens.ioc.ee/projects/f2py2e/
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to