f2py与fortran netcdf

我正在尝试使用f2py来编译一些使用netcdf库的fortran代码。 编译似乎工作,但是当我尝试在python中导入模块时,我收到错误消息:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: ./cdfio_simple.so: undefined symbol: netcdf_mp_nf90_get_var_2d_fourbytereal_

编译期间还有以下输出:

In: :cdfio_simple:cdfio_simple.f90:cdfio_simple
get_useparameters: no module netcdf info used by cdfio_simple

我试图使用的代码是(注意这是简化的代码来演示问题):

MODULE cdfio_simple
 USE netcdf 

  PRIVATE
  PUBLIC  getvar

CONTAINS
  FUNCTION  getvar (cdfile,cdvar)

    CHARACTER(LEN=*), INTENT(in) :: cdfile,     &   ! file name
         &                          cdvar           ! variable 
    REAL(KIND=4), DIMENSION(1442,1021) :: getvar      ! 2D REAL

    !! * Local variables
    INTEGER :: ncid, id_var
    INTEGER :: istatus 
    CHARACTER(LEN=300) :: clvar

!f2py INTENT(in):: cdfile, cdvar

    clvar=cdvar

    istatus=NF90_OPEN(cdfile,NF90_NOWRITE,ncid) 

    istatus=NF90_INQUIRE(ncid,unlimitedDimId=id_dimunlim)
    istatus=NF90_INQ_VARID ( ncid,clvar,id_var)
    istatus=NF90_GET_VAR(ncid,id_var,getvar)

    istatus=NF90_CLOSE(ncid)
    getvar(:,:)=1

  END FUNCTION getvar

END MODULE cdfio_simple

为了编译它,我使用下面的命令:

f2py --fcompiler=intelem -c -I/usr/local/netcdf/include/ -L/usr/local/netcdf/lib -lnetcdff --f90flags=-fPIC -m cdfio_simple cdfio_simple.f90

有没有人有一个想法如何让这个工作正常? 在此先感谢您的任何建议。

蒂姆


来自编译器的“no module netcdf”错误消息可能表明存在以下任一问题:

  • 在/ usr / local / netcdf / include /中没有安装netcdf.mod模块文件,它应该作为netcdf-fortran软件安装的一部分安装

  • 您正在使用与用于创建安装在该目录中的netcdf.mod模块文件不同的Fortran编译器。 不同的Fortran编译器对二进制.mod文件有不同的格式。

  • 链接地址: http://www.djcxy.com/p/96137.html

    上一篇: f2py with fortran netcdf

    下一篇: f2py doesn't like explicit shaped array in subroutine