cesm 地球系统模式 添加 输出变量 方法

目录

1.首先要定义变量和它的index然后计算这个变量

2.利用pbuf_add_field()函数上传想要输出的变量

然后需要熟悉三个函数

pbuf_get_index()

pbuf_add_field()

pbuf_get_field()

3.在cam_diagnostics.F90 中添加和下载和输出

需要熟悉两个函数

addfld()

outfld()

4.在user_nl_cam中管理一下输出变量的输出形式

附录

如果用图来表示的话,我猜是这样的。

附相关代码的截图

vertical_diffusion.f90:

 cam_diagnostics.f90:


整理一下怎么在cesm 中添加输出变量。

以我添加的边界层高度为例

1.首先要定义变量和它的index然后计算这个变量

 这个变量叫pbl_h,当然这个变量需要之前在文件中定义

pbl_h

pbl_h_idx

2.利用pbuf_add_field()函数上传想要输出的变量

然后需要熟悉三个函数

pbuf_get_index()

通过场变量来找index

pbuf_add_field()

添加场变量和对应的index,作为一个pbuf对象,方便后面调用

pbuf_get_field()

通过对应的index 获得场变量

这几个函数是方便变量之间传递的

在我计算的代码文件中我会使用pbuf_add_field() 上传计算出来的场变量

然后在cam_diagnostics.f90 中再使用pbuf_get_field() 获得场变量

3.在cam_diagnostics.F90 中添加和下载和输出

需要熟悉两个函数

addfld()

这个一般只需要在初始化文件中添加

比如在cam_diagnostics.f90中

outfld()

这个大致就是把这个变量输出到历史文件中。

4.在user_nl_cam中管理一下输出变量的输出形式

这里面可以输出到哪个文件,频率,形式,每个文件放多少时间层等等。这个就不多说了。网上有详细说明

附录

如果用图来表示的话,我猜是这样的。

 

 

附相关代码的截图

vertical_diffusion.f90:

 

 cam_diagnostics.f90:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值