关于Fortran中,use netcdf的问题



  • 我在编译时,遇到了如下问题:


    mpif90 -c -I/usr/sw-mpp/include -DSYSLINUX -DLINUX -DCPRUNKNOWNCPR -DSPMD -DHAVE_MPI -DUSEMPIIO -D_NETCDF -D_NOPNETCDF -D_NOUSEMCT -D_USEBOX -DNO_SIZEOF -I/usr/sw-mpp/include -I/usr/sw-cluster/apps/netcdf-c-4.4.1-disable-netcdf-4/include pio_types.F90

    module pio_types
    ^
    swopenf95-855 f90: ERROR PIO_TYPES, File = pio_types.F90, Line = 2, Column = 8
    The compiler has detected errors in module "PIO_TYPES". No module information file will be created for this module.

    use netcdf          ! _EXTERNAL
        ^   
    

    swopenf95-292 f90: ERROR PIO_TYPES, File = pio_types.F90, Line = 11, Column = 10
    "NETCDF" is specified as the module name on a USE statement, but the compiler cannot find it.

    integer, public, parameter :: PIO_global = nf90_global
    ^
    swopenf95-868 f90: ERROR PIO_TYPES, File = pio_types.F90, Line = 291, Column = 47
    "NF90_GLOBAL" is used in a constant expression, therefore it must be a constant.

    integer, public, parameter :: PIO_unlimited = nf90_unlimited
    ^


    但是我已经module load了netcdf,在终端which ncdump可以看到路径。

    • 编译环境
      mpi:mpif90
      c: mpicc
      串行:sw5ccsw5f90
    • netcdf
      module中每个版本都试过,报错相同。
      包括:
      x86/netcdf/4.4.1-c-disable-netcdf-4
      x86/netcdf/4.4.4-fortran
      x86/netcdf/4.6.1-with-netcdf
      x86/netcdf/4.6.1-with-parallel


  • 你如果要用神威的程序就不能用X86的netcdf库。
    神威的netcdf在这里有一个/usr/sw-mpp/apps/lib/netcdf
    编译加-I/usr/sw-mpp/apps/lib/netcdf/include链接加-L/usr/sw-mpp/apps/lib/netcdf/lib -lnetcdf



  • 好的,谢谢,我前两天已经自己找到这个库了,netcdf4.1.2。

    那么请问有高版本的或者说加上hdf5特性的netcdf吗?这个我还没有找到。


登录后回复