LZN's Blog CodePlayer

【已解决】CESM F Compset指定SST和CO2外强迫的方法

2014-08-01
LZN

打算开始在CESM的框架下做何编老师的试验,试着从CESM的scripts出发编译F Compset,结果神奇地发现居然还需要下载数据。问题是之前已经可以通过standalone的方式运行CAM5了呀,神奇的地球。决定用standalone的方式转转,对比下到底有什么不一样。

CESM的编译方式还是遇到些阻碍,问题及解决方法记录在这里。

1.F_2000_CAM5下载数据后编译失败,编译输出目录为out-of-box设置时config_machines.xml指定的位置。解决方案:xmlchange改env_build.xml重新指定编译输出目录。通过!

2.查看env_run.xml发现rundir也是默认的,果断要改。xmlchange同时改运行时间。

3.修改user_nl_cam,加入针对CAM的namelist更改项目。最初直接把SST和CO2强迫都加这里,结果create_namelist都通过不了。还是一点点来吧。关于海温强迫的方法,standalnoe和F的方式是不一样的。参考帖子:

https://bb.cgd.ucar.edu/node/1001744

UG上有一篇讲B SST OUT, F SST IN的,里面提出要修改env_run.xml。

CO2最初只修改了cam中的co2vmr这个变量,结果CLM崩了,应该是两边CO2不匹配,standalone实在不知道怎么对CLM进行修改,F下找到响应变量修改后,运行到第四天出现sigfault。后来发现居然有一个统一变量叫CCSM_CO2_PPMV啊!坑爹,修改后没问题。

4.qsub提交任务的时候出问题,需要注意 run脚本中第一行 csh后面的-f参数需要去掉,这是最初移植的时候遗漏的问题。

 

 

以上问题最终的解决办法写在下面:

  1. 在 $CCSMROOT/scripts/ccsm_ut

能够通过的步骤写在下面,以1999-2008变暖后的clim SST及CO2强迫为例:

$ create_newcase -case awcam5 -compset F_2000_CAM5 -res f19_f19 -mach sigon #注意$CCSMROOT/scripts已经加入PATH环境变量 $ ./xmlchange EXEROOT=`pwd`/exe #反点号括起来的pwd会被执行,其输出并同/exe输入给exeroot变量 $ ./xmlchange RUNDIR=`pwd`/exe $./cesm_setup $./awcam5.build

build后修改外强迫。

首先是CO2:

$.xmlchange CCSM_CO2_PPMV=385.59 # 2009年数据,这个变量在env_run.xml当中

再是海温,首先将总input数据链接过来,防止路径被新提供的inputdata污染,再修改响应变量。

$link_dirtree $CSMDATA ./input

$./xmlchange DIN_LOC_ROOT=pwd/input

cp处理后的SST数据到相应位置,修改响应namelist变量,包括起止年份及文件名称。这个名字太长,建议直接vi。

$./qsub awcam5.run

此外有一点发现是,F_2000采用的不是AMIP形式的观测资料强迫,而是气候态海温循环强迫。


Comments

Content