CESM2.2_CLM5.0 singlepoint 单点模拟

(使用MobaXterm)

1. Create Case 

$ cd /workdir/hcdu/CESM/cime/scripts/
$ ./create_newcase --case ~/CESM_Clm/US_NR1_2014 --res CLM_USRDAT --compset I1PtClm50SpRsGs --mach sofie --run-unsupported    

# 这个compset专适用单点模拟,除CLM外大部分模块都关闭

# 查询compset别称参考:$CESM/components/clm/cime_config/config_compset.xml

# case名称不是默认格式(e.g. I1850CLM50SP),则加最后 run unsupported 

2.0 关于一些总体的xml设置

路径 $CESM/cime/config/cesm/machines

config_machines.xml        关于运行机器的设置,包括输入输出目录(search [机器名])

config_compilers.xml        关于编译工具的设置

config_batch.xml              关于批命令运行的设置(search [机器名])

2. Case xml变量设置(before case.setup)

./xmlquery [variablename] 查询变量

./xmlchange [variablename] 设置变量

在$CASEROOT路径下

$ ./xmlchange DATM_MODE=CLM1PT    #运行模式为单点模拟
$ ./xmlchange DATM_CLMNCEP_YR_START=2014    #运行起始年份
$ ./xmlchange DATM_CLMNCEP_YR_END=2014      #运行结束年份
$ ./xmlchange RUN_STARTDATE=2014-01-01    #运行起始日期

# DATM_CLMNCEP_YR_ALIGN为并齐年份,默认与起始年份相同

$ ./xmlchange ATM_DOMAIN_PATH=~/data/CESM_Clm/US_NR1/domain_US_NR1_2014/    
$ ./xmlchange LND_DOMAIN_PATH=~/data/CESM_Clm/US_NR1/domain_US_NR1_2014/    
              # domain文件路径
$ ./xmlchange ATM_DOMAIN_FILE=domain.lnd.US_NR1_2014.210923.nc
$ ./xmlchange LND_DOMAIN_FILE=domain.lnd.US_NR1_2014.210923.nc              
              # domain文件名
$ ./xmlchange DIN_LOC_ROOT=/workdir/MODCESM/tcraig/IRESM/inputdata/    
              #inputdata路径
$ ./xmlchange DIN_LOC_ROOT_CLMFORC=~/data/CESM_Clm/US_NR1/forcingdata_US_NR1_2014/    
              #输入的大气forcing data路径
$ ./xmlchange CLM_FORCE_COLDSTART=on    # 强制冷启动:开
$ ./xmlchange CLM_BLDNML_OPTS='-bgc bgc'    # 生物化学设置

# domain文件制作借助 $CESM/cime/tools/mapping/gen_domain_files/ 工具

(参考文章:Clm5地表数据制作

# 开启强制冷启动,则无视起始数据inidata

# 制作起始数据使用Spinup模式,CLM_ACCELERATED_SPINUP=on

$ ./xmlchange STOP_OPTION=nyears    # 单次运行单位
$ ./xmlchange STOP_N=1    # 运行次数

# 单趟运行n次设置的运行单位,结束后resubmit再运行

# REST_OPTION、_N为resubmit之后的设置,默认与STOP_一致

$ ./xmlchange NTASKS=1    # 调用CPU核心数(每个模块)
$ ./xmlchange --force JOB_QUEUE=debug    # 更改队列
$ ./xmlchange --force JOB_QUEUE=debug

# 运行两次更改队列,是因为模型会有两个进程case.run、case.st_archive

$ ./case.setup

3. 编写user_nl_ 、准备streams文件(before case.build)

打开$CASEROOT/user_nl_clm,写入(或者使用 echo " " >>)

hist_mfilt = 365
hist_nhtfrq = -24
fsurdat = "/home/hcdu/data/CESM_Clm/US_NR1/surfdata_US_NR1_2014/surfdata_US_NR1_2014_hist_78pfts_CMIP6_simyr2000_c210926.nc"

use_cn = .true.

# hist_mfilt 单个输出文件中的结果个数(default=1)

# hist_nhtfrq 数据结果的时间频率/分辨率 n(default n=0, monthly)

   n>0 : n * half hour || n<0 : (-n) * hour

# 上面的设置:单个输出文件记录365个(1年)的日数据

# 单个文件设置输出结果数过多可能会影响输出(本实验最终调整hist_mfilt=31)

# fsurdat为陆面数据surfdata_*.nc的路径,需要双引号

# surfdata制作借助$CESM/components/clm/tools/工具 (参考文章:Clm5地表数据制作

# user_cn打开clm模型的碳氮运算

#!!!强烈建议前往官网好好看看各项参数CESM_CLM5.0参数

在$CASEROOT下

$ ./preview_namelists
$ cp ./CaseDocs/datm.streams.txt.CLM1PT.CLM_USRDAT user_datm.streams.txt.CLM1PT.CLM_USRDAT
$ cp ./CaseDocs/datm.streams.txt.topo.observed user_datm.streams.txt.topo.observed
$ cp ./CaseDocs/datm.streams.txt.presaero.clim_2000 user_datm.streams.txt.presaero.clim_2000

执行后在./CaseDocs、./BuildConf/datmconf 中生成datm.streams.txt文件:

a) 气象数据stream文件。官方文档:Precip, Solar,TPHWL等;

    单点模拟自己输入:CLM1PT.CLM_USRDAT

b) 地形stream文件:.topo.observed;气凝胶stream文件:.presaero.clim_2000

将三个stream文件复制到$CASEROOT,加上user_前称

打开user_datm.streams.txt.CLM1PT.CLM_USRDAT(另外两个stream文件不用改动),改动filepath、fileNames、variableNames

注意

variableNames下不要有空行,其中前一列为输入文件里的变量名,后一列为模型变量名

forcing data里的长、短波辐射数据不能有负值

复制./CaseDocs下的datm_in的内容到user_nl_datm,为对user_datm.streams.txt.CLM1PT.CLM_USRDAT的说明

$ ./preview_namelists
$ ./check_input_data

再次运行./preview_namelists,模型根据修改后的stream文件,更新./BuildConf下文件的信息,其中关键的是datm.input_data_list的内容

执行./check_input_data检查输入数据,同时检查输入forcing data是否齐全

$ ./case.build --skip-provenance-check

4. case.submit ✔

$ ./case.submit

【参考文章】cesm单点模拟_by咯咯咯-鸽鸽鸽https://blog.csdn.net/z894730988/article/details/118816783https://blog.csdn.net/z894730988/article/details/118816783run cesm2.1.3 with my own forcing dataset_by大余海生https://blog.csdn.net/jerry003/article/details/111356760https://blog.csdn.net/jerry003/article/details/111356760

P.S. 回来更一下,这个singlepoint的模型虽然能跑,但是有一个问题,就是想要的量输出一直是0……T_T

可能是两个方面的问题:

surfdat文件中地表的初始植被为(LAI=)0;气象输入文件制作有问题

!!!

于是针对这两个问题,改用了另一种更快捷简便的制作domain与surfdat文件的方式、采用了一种伪单点模式运行气象数据(即把气象数据塞入模型自带的全球气象数据格网中),再整理一篇文章总结一下

建议仔细阅读 ==》CLM5.0单点模拟#成功运行模式#(更新完善中)https://blog.csdn.net/Arr3n/article/details/120891088?spm=1001.2014.3001.5502

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一边牧羊

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值