在运行模式工作流中,修改env_run.xml是submit前的一个步骤。
这里来介绍一下env_run.xml里面的设置。
参考这个PPT:http://www.cesm.ucar.edu/events/tutorials/2019/files/Practical2-shields.pdf
基础变量:
1.RESUBMIT: 设置重新提交的次数
2. STOP_OPTION:设置运行时间间隔的类型,i.e. nmonths, ndays, nyears或者其他特定日期类型
3. STOP_N:设置在指定的wallclock时间运行模式的时间间隔数(按stop_option指定的单位)。Wallclock时间在*.run文件中设置,是实际时间的度量。(wallclock time字面意思就是挂钟时间,即现实中的时间,wallclock time vs. cpu time)
***STOP_OPTION和STOP_N控制每个计算机作业提交运行的时间长度。典型的一次模拟需要进行多次作业提交才能完成。(一般的作业任务只能在计算机队列中停留指定的时间,而这个队列时间限制通常比需要的完成一次模拟时间要短。)
问题:假设一个实验模式运行速度为10yrs/d,每次允许的最大队列时间为12h-wallclock time,如果要跑100年的实验,RESUBMIT, STOP_OPTION, STOP_N怎么设置?
回答:假设每天提交两次(2,12-h jobs),模式运行速度10年/天,则每次作业提交跑10/2=5年。
即STOP_OPTION=nyears, STOP_N=5,RESUBMIT=19
initial run of 5yrs+(19 resubmits*5yrs)=100 yrs
4. CONTINUE_RUN: 如果是TRUE,表示是continue_run。如果RESUBMIT>0并且是initial run(i.e. CONTINUE_RUN=FALSE), CONTINUE_RUN会在initial run完成后更新到TRUE。
5. INFO_DBUG: 设置标准输出声明,如果需要debugging,就需要一个更大的值。
6. DOUT_S: 开启短期存档,默认为TRUE。
7. HIST_OPTION: 耦合器(“驱动程序”)历史文件规范。注意:所有其他模式组分在model component namelists中指定历史文件信息。
8. CCSM_CO2_PPMV: CO2值会被传输到POP和CLM中(如果CO2为定值)
run_type相关变量:
1.RUN_TYPE: 初始化设置,有startup, hybrid, branch三种可选
startup: 所有模式组分从初始默认条件开始初始化
hybrid:
-大气模块,使用用户指定模拟中的初始条件文件开始初始化
-陆地、海洋和海冰,使用用户指定模拟中的restart文件开始初始化
-不需要耦合文件
-初始条件和restart文件使用相同的参考案例(reference case)和参考时间(reference date)
branch:所有模式组分从用户指定模拟中的初始条件文件开始初始化
hybrid vs. branch
如果我们要跑一个和控制实验(control run)仅有些微差别的实验,比如我们只是想做一些微小调整,增加历史输出(history output),或者从一个CESM spun-up的初始态来开始模拟并保持精确的重新启动(restart)(这模仿了模式在原始设置中继续运行时的操作),在这些情况下,hybrid和branch runs非常有用。
使用hybrid run: 对于大多数不需要逐位重新启动(bit for bit restart)的应用。可以为模式运行指定新的开始日期。
使用branch run:仅适用于需要完全重新启动的应用。不能为模型运行指定新的开始日期。它将由参考案例分配(run_refdate)。(例如,如果要在运行期间更改历史输出流,则需要使用branch)。
2. RUN_REFCASE: 如果是branch/hybrid, 则指定模式继续运行的case名称。
3. RUN_REFDATE: 日期戳,指导参考案例的开始时间。(startdate相当于现在当前模拟的开始时间,refdate是reference case的开始时间,我目前是这么理解的?)
4. GET_REFCASE: default=TRUE;如果是TRUE,数据需要预先暂存在可执行目录中(这与去年的CESM2.0不同)。