cesm2.1.3 意外中断,如何重启?

情景提要
1. 中断之后,重启模型,需要在建模时提前设置 restart 的文件输出时间频率;
2. 重点在于修改 env_run.xml 文件和 run/文件夹下面的 rpointer.xxx 文件;

正片开始
1. 在 ./create_newcase 之后,用 ./xmlchange 设置 restart 的文件输出时间频率。
./xmlchange NTASKS=80
./xmlchange DATM_CLMNCEP_YR_ALIGN=2010
./xmlchange DATM_CLMNCEP_YR_START=2010
./xmlchange DATM_CLMNCEP_YR_END=2011
./xmlchange DIN_LOC_ROOT=/home/dayon/inputdata
./xmlchange RUN_STARTDATE=2010-01-01
./xmlchange STOP_N=15
./xmlchange STOP_OPTION=ndays
./xmlchange CLM_FORCE_COLDSTART='on'
# 以下 3 句为控制
./xmlchange REST_OPTION=ndays   # 控制 restart 文件的输出频率
./xmlchange REST_N=2          # 控制 restart 文件的输出频率
# 下面极其重要,用于复制中间生成的 restart 文件,否则模型最后(archiving)归档时,会将中间文件删除。
./xmlchange DOUT_S_SAVE_INTERIM_RESTART_FILES="TRUE" 
2. 之后 case.build, 之后 case.submit ……
3. 模型会开始运行,在运行过程中会以一定的频率输出 restart 文件 (在 run/ 文件夹下面),这时如果突然中断(如手动ctrl + c) …………
4. restart 文件都在 run/ 文件夹下面,因此需要在其下面修改 rpointer.xxx 文件(如下)。其中,* .r. *为记录的中间 restart 文件。首先,需要cat rpointer.xxx 文件,以保证各个compont 里面的 restart 的时间戳是一致的,如不一致,需要修改成为统一的,以“时间靠前”为准则 [ 因为可能出现,有些restart已经产生了,但有些还没有来得及产生出来就断了 ]。
dayon@R830:~/cesm/scratch/CLM50SpGs_hcru_testrest/run$ ls
atm_modelio.nml                                         datm.streams.txt.ECMWF.LWdown        lnd_in
CASEROOT                                                datm.streams.txt.ECMWF.Precip        lnd_modelio.nml
CLM50SpGs_hcru_testrest.clm2.h0.1980-01-07-00000.nc     datm.streams.txt.ECMWF.Psurf         mosart_in
CLM50SpGs_hcru_testrest.clm2.r.1980-01-07-00000.nc      datm.streams.txt.ECMWF.Qair          ocn_modelio.nml
CLM50SpGs_hcru_testrest.clm2.rh0.1980-01-07-00000.nc    datm.streams.txt.ECMWF.Solar         rof_modelio.nml
CLM50SpGs_hcru_testrest.cpl.r.1980-01-07-00000.nc       datm.streams.txt.ECMWF.Tair          rpointer.atm
CLM50SpGs_hcru_testrest.datm.rs1.1980-01-03-00000.bin   datm.streams.txt.ECMWF.Wind          rpointer.drv
CLM50SpGs_hcru_testrest.datm.rs1.1980-01-05-00000.bin   datm.streams.txt.presaero.clim_2000  rpointer.lnd
CLM50SpGs_hcru_testrest.datm.rs1.1980-01-07-00000.bin   datm.streams.txt.topo.observed       rpointer.rof
CLM50SpGs_hcru_testrest.mosart.r.1980-01-07-00000.nc    drv_flds_in                          seq_maps.rc
CLM50SpGs_hcru_testrest.mosart.rh0.1980-01-07-00000.nc  drv_in                               timing
cpl_modelio.nml                                         esp_modelio.nml                      wav_modelio.nml
datm_in                                                 glc_modelio.nml
datm.streams.txt.CLM1PT.360x720cru                      ice_modelio.nml
dayon@R830:~/cesm/scratch/CLM50SpGs_hcru_testrest/run$ cat rpointer.atm rpointer.drv rpointer.lnd rpointer.rof
CLM50SpGs_hcru_testrest.datm.r.1980-01-07-00000.nc                                                                                                                                                                                    
CLM50SpGs_hcru_testrest.datm.rs1.1980-01-07-00000.bin                                                                                                                                                                                 
CLM50SpGs_hcru_testrest.cpl.r.1980-01-07-00000.nc                                                                                                                                                                                     
./CLM50SpGs_hcru_testrest.clm2.r.1980-01-07-00000.nc                                                                                                                                                                                  
./CLM50SpGs_hcru_testrest.mosart.r.1980-01-07-00000.nc    
5. 修改env_run.xml 文件中 CONTINUE_RUN = “TRUE”。
</entry>
    <entry id="CONTINUE_RUN" value="FALSE">
      <type>logical</type>
      <valid_values>TRUE,FALSE</valid_values>
      <desc>
      A setting of TRUE implies a continuation run
      When you first begin a branch, hybrid or startup run, CONTINUE_RUN
      must be set to FALSE. When you successfully run and get a restart
      file, you will need to change CONTINUE_RUN to TRUE for the remainder
      of your run. This variable determines if the run is a restart run.
      Set to FALSE when initializing a startup, branch or hybrid case.
      Set to TRUE when continuing a run.
    </desc>
 </entry>

修改方式可以是直接 vi 文件修改,也可以用./xmlchange

./xmlchange CONTINUE_RUN="TRUE"
./xmlquery CONTINUE_RUN         # 查看修改结果
6. 修改好之后,再次提交case即可
./case.submit

番外篇

上述默认是以 “距离中断时间最近” 的时刻重启,如果想从中间的某个时刻重启,又该如何?

只需 1~2 步

  1. 修改 run/ 文件夹下面的 rpointer.xxx 文件,修改至需要重启的时刻【对应模型中断的情景,因为该情境下所有 restart 文件都在run/ 文件夹下】。
  2. 修改 run/ 文件夹下面的 rpointer.xxx 文件;同时,将 ~/cesm/archive/$CASEROOT/rest/文件下对应时刻的文件夹下的所有文件,拷贝至run/ 文件夹下面。【对应模型不中断情景】。
  3. 或1或2之后,再修改 env_run.xml;之后,提交 submit 即可。
    [ 温馨提示 ] 中断重启之后,会以中断点为起点,以STOP_N 和 STOP_OPTION 为时间尺度继续顺延15天。

在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨海深

感谢您的支持和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值