CESM1.2.1 移植

ubuntu不支持gmake,需要

./xmlchange -file env_build.xml -id GMAKE -val make
  • DIN_LOC_ROOT下初始场文件和地面数据集的路径应与以下xml文件内设置保持一致 xml文件路径:
    PATH_TO_CESM/models/lnd/clm/bld/namelist_files/namelist_defaults_usr_files.xml
<!-- Initial file (relative to ${csmdata}) -->
<finidat >lnd/clm2/initdata/clmi.${clm_usr_name}_${mask}_simyr${sim_year}.nc</finidat>
<!-- Surface dataset (relative to ${csmdata}) -->
<fsurdat >lnd/clm2/surfdata_map/surfdata_${clm_usr_name}_simyr${sim_year}.nc</fsurdat>
  • compilers设置
    PATH_TO_CESM/scripts/ccsm_utils/Machines
<compiler MACH="userdefined">
  <LAPACK_LIBDIR> /usr/lib/x86_64-linux-gnu </LAPACK_LIBDIR>
  <NETCDF_PATH> /home/yl/CESM/netcdf/libs</NETCDF_PATH>
  <PNETCDF_PATH></PNETCDF_PATH>
  <ADD_SLIBS>-L/home/yl/CESM/netcdf/libs/lib -lnetcdf -lnetcdff</ADD_SLIBS>  
  <ADD_CPPDEFS></ADD_CPPDEFS>
  <CONFIG_ARGS></CONFIG_ARGS>
  <ESMF_LIBDIR></ESMF_LIBDIR>
  <MPI_LIB_NAME></MPI_LIB_NAME>
  <MPI_PATH></MPI_PATH>
</compiler>

datm.buildexe.csh中gmake改为$GMAKE

gamke complib -j $GMAKE_J MODEL=datm COMPLIB=$LIBROOT/libatm.a -f $CASETOOLS/Makefile MACFILE=$CASEROOT/Macros.$MACH || exit 2
$GMAKE complib -j $GMAKE_J MODEL=datm COMPLIB=$LIBROOT/libatm.a -f $CASETOOLS/Makefile MACFILE=$CASEROOT/Macros.$MACH || exit 2

sice.buildexe.csh

$GMAKE complib -j $GMAKE_J MODEL=sice COMPLIB=$LIBROOT/libice.a -f $CASETOOLS/Makefile MACFILE=$CASEROOT/Macros.$MACH || exit 2

/home/yl/CESM/cesm1_2_1/models/ocn/socn/bld/socn.buildexe.csh

$GMAKE complib -j $GMAKE_J MODEL=socn COMPLIB=$LIBROOT/libocn.a -f $CASETOOLS/Makefile MACFILE=$CASEROOT/Macros.$MACH || exit 2

/home/yl/CESM/cesm1_2_1/models/glc/sglc/bld/sglc.buildexe.csh

$GMAKE complib -j $GMAKE_J MODEL=sglc COMPLIB=$LIBROOT/libglc.a -f $CASETOOLS/Makefile MACFILE=$CASEROOT/Macros.$MACH || exit 2

/home/yl/CESM/cesm1_2_1/models/wav/swav/bld/swav.buildexe.csh

$GMAKE complib -j $GMAKE_J MODEL=swav COMPLIB=$LIBROOT/libwav.a -f $CASETOOLS/Makefile MACFILE=$CASEROOT/Macros.$MACH || exit 2

/home/yl/CESM/cesm1_2_1/models/drv/bld/cesm.buildexe.csh

$GMAKE exec_se -j $GMAKE_J EXEC_SE=$EXEROOT/cesm.exe MODEL=driver \
                 USER_CPPDEFS="$multiinst_cppdefs" -f $CASETOOLS/Makefile || exit 2

cesm1_2_1/tools/cprnc/genf90/genf90.pl 需要复制

scripts/ccsm_utils/Machines/buildlib.csm_share需要添加 m u l t i i n s t c p p d e f s = " multiinst_cppdefs = " multiinstcppdefs="multiinst_cppdefs -fno-range-check";

my $multiinst_cppdefs = "$xmlvars{USER_CPPDEFS}"; 
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_ATM=$xmlvars{NINST_ATM}";
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_LND=$xmlvars{NINST_LND}";
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_OCN=$xmlvars{NINST_OCN}"; 
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_ICE=$xmlvars{NINST_ICE}"; 
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_GLC=$xmlvars{NINST_GLC}";
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_WAV=$xmlvars{NINST_WAV}";
$multiinst_cppdefs = "$multiinst_cppdefs -DNUM_COMP_INST_ROF=$xmlvars{NINST_ROF}";
$multiinst_cppdefs = "$multiinst_cppdefs -fno-range-check";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值