LZN's Blog CodePlayer

【已解决】CESM-CAM积分步长调节

2014-08-28
LZN

CAM Standalone

namelist修改加入

dtime=1200, nsplit=6, nspltrac=2, nspltvrm=2

第一句是把积分时长调整到1200s每步

后面三个如果不加入会报错,出错信息中会有建议更改的数值,看起来估计是与物理步长中与动力步长的匹配有关,但是依然搞不清楚这几个变量的意义……

以上几个namelist的解释:

nsplit----Number of dynamics timesteps per physics timestep. If zero, a best-estimate
will be automatically calculated.
nspltrac----Number of tracer advection timesteps per physics timestep.
Nsplit is partitioned into nspltrac and nsplit/nspltrac,
with the latter being the number of dynamics timesteps per
tracer timestep, possibly rounded upward; after initialization,
the code quantity nsplit is redefined to be the number of
dynamics timesteps per tracer timestep.
nspltvrm----Number of vertical re-mapping timesteps per physics timestep.
Nspltrac is partitioned into nspltvrm and nspltrac/nspltvrm,
with the latter being the number of tracer timesteps per
re-mapping timestep, possibly rounded upward; after initialization,
the code quantity nspltrac is redefined to be the number of
tracer timesteps per re-mapping timestep.

CESM Script

这个除了需要处理standalone中的变量外,还需要更改run_env.xml中存在相应的字段:

<entry id="NCPL_BASE_PERIOD"   value="day"  /> <entry id="ATM_NCPL"   value="48"  />

上面那行的设置代表coupler耦合频率的单位,value对应为日,下面那行是在coupler耦合单位内,ATM通过coupler和其他模块耦合的次数,值为48,即每天耦合48次,可以理解为积分步长为1800s(半小时),如果要更改积分步长为900s,将48改为96即可。同时我们可以注意到这个值在后面的语句中分别被赋给了LND OCN等其他模块,保证各个模块的耦合频率一致。如果没有正确修改dtime, nsplit, nspltrac, nspltvrm这些变量,则会出现Bad namelist settings for FV subcycling报错。

当然,这里还有疑问就算,我们即便把standalone里修改的几个变量拿过来,也仅仅是修改了CAM的积分步而已,其他分量并没有修改,是会自动更改么?还是怎样?目前测试积分了三年,没有出现问题。

#Up to 20140831#

前段时间忘了更新了。对于F05的配置,似乎直接在user_nl_cam中修改dtime=900就可以,什么都不用动……似乎split与dtime呈一定的倍数关系,dtime减半并不影响这个倍数关系的调整。当然,依然没有搞懂……

#Up to 20141108#


Comments

Content