爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 985|回复: 2

Noah-MP 5.0 编译出错(已解决)

[复制链接]
发表于 2024-2-4 18:00:00 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 谷梁陌尘 于 2024-2-4 21:36 编辑

前面几个MOD的编译没有问题,但到了EnergyVarInit.F90时编译报错,错误如下:
=big-endian -fbounds-check  -fno-range-check  -ffree-form -ffree-line-length-none  -I/public/software/intel/netcdf4/include/ EnergyVarInitMod.f90
EnergyVarInitMod.f90:25.4:

    associate(                                                         &
    1
Error: Unclassifiable statement at (1)
EnergyVarInitMod.f90:394.7:

    end associate
       1
Error: Expecting END SUBROUTINE statement at (1)
EnergyVarInitMod.f90:164.73:

       allocate( noahmp%energy%state%TemperatureSoilSnow(-NumSnowLayerMax+1:Num
                                                                         1
Error: Symbol 'numsnowlayermax' at (1) has no IMPLICIT type
EnergyVarInitMod.f90:164.88:

te( noahmp%energy%state%TemperatureSoilSnow(-NumSnowLayerMax+1:NumSoilLayer) )
                                                                           1
Error: Symbol 'numsoillayer' at (1) has no IMPLICIT type
EnergyVarInitMod.f90:184.65:

后来发现是associate这个函数的原因,查了一下这应该是Fortran2003的新语法,难道是我的超算上的编译器太老了的原因吗?
user_option:


#=============================================================================================
#  Options for Linux with Intel Fortran MPI
#=============================================================================================

COMPILERF90    =       mpif90
MPPFLAG        =       YES
FREESOURCE     =       -ffree-form -ffree-line-length-none
F90FLAGS       =       -g -fconvert=big-endian -fbounds-check  -fno-range-check # -fno-underscoring
MODFLAG        =       -I ../MPP
HYDRO_LIB      =       ../MPP/mpp_land.o ../MPP/CPL_WRF.o
LDFLAGS        =
CPP            =       cpp
CPPFLAGS       =       -P -traditional -DMPP_LAND # -DSPATIAL_SOIL
LIBS           =
LIBJASPER      =      -L/public/home/zhangzilu/Build_WRF/LIBRARIES/grib2/lib/ -ljasper
INCJASPER      =      -I/public/home/zhangzilu/Build_WRF/LIBRARIES/grib2/include/
NETCDFMOD      =      -I/public/software/intel/netcdf4/include/
NETCDFLIB      =      -L/public/software/intel/netcdf4/lib/ -lnetcdf -lnetcdff
BZIP2          =       NO
# BZIP2_INCLUDE  =       -I/usr/include
# BZIP2_LIB      =       -L/usr/lib64 -lbz2
RM             =       rm -f
CC             =       cc



编译器:
1) compiler/intel/intel-compiler-2017.5.239
2) mpi/intelmpi/5.0.2.044


密码修改失败请联系微信:mofangbao
 楼主| 发表于 2024-2-4 21:34:40 | 显示全部楼层
问题已解决,是编译器不一致导致的,将mpif90改为mpiifort即可,相应地库位置也进行了修改,此外,netddf4的编译应保持一致,以下是可用的user_option:
  Options for Linux with Intel Fortran MPI
#=============================================================================================

COMPILERF90    =       mpiifort
MPPFLAG        =       YES
FREESOURCE     =       -free
F90FLAGS       =       -convert big_endian -g -O0 -fpe0  # -traceback
MODFLAG        =       -I ../MPP
HYDRO_LIB      =       ../MPP/mpp_land.o ../MPP/CPL_WRF.o
LDFLAGS        =
CPP            =       cpp
CPPFLAGS       =       -P -traditional -DMPP_LAND # -DSPATIAL_SOIL
LIBS           =
LIBJASPER      =    -L/public/home/zhangzilu/Build_WRF/LIBRARIES/grib2/lib/ -ljasper -libpng
INCJASPER      =    -I/public/home/zhangzilu/Build_WRF/LIBRARIES/grib2/include/
NETCDFMOD      =   -I/public/software/intel/netcdf4/include/
NETCDFLIB      =  -L/public/software/intel/netcdf4/lib/ -lnetcdf -lnetcdff
BZIP2          =       NO
# BZIP2_INCLUDE  =       -I/usr/include
# BZIP2_LIB      =       -L/usr/lib64 -lbz2
RM             =       rm -f
CC             =       cc
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-4 21:37:46 | 显示全部楼层
谷梁陌尘 发表于 2024-2-4 21:34
问题已解决,是编译器不一致导致的,将mpif90改为mpiifort即可,相应地库位置也进行了修改,此外,netddf4 ...

所里的超算是真的烦人,好几种编译器,库的安装没有权限,新版本的库也下不了,又不能连外网,一个个看过去看了好久
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表