爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9042|回复: 10

如何在WRF模式中输出云微物理相关源、汇项

[复制链接]

新浪微博达人勋

发表于 2020-8-29 22:37:10 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
以Thomspon scheme为例:
1.首先需要在Registry/下修改Registry.EM_COMMON, 一般我是在refl_10cm后面加入一行state    real  ppnc_wcd          ikj     dyn_em       1         -      hdu      "ppnc_wcd"                "ppnc_wcd"  "kg-1s-1"         
这里的ppnc_wcd指的是某个云微物理过程,具体名称可以自己命名,也可以根据想要输出的scheme里的已有的源、汇项命名。
2.进入dyn_em/修改solve_em.F, 在CALL microphysics_driver()模块中加入一行:
   &        ,ppnc_wcd=grid%ppnc_wcd                                    &
3.进入phys/修改module_microphysics_driver,在microphsics_driver()模块中加入一行:

             ,ppnc_wcd                                          &
记得在后续对ppnc_wcd进行属性标注:
    REAL, OPTIONAL, DIMENSION( ims:ime , kms:kme, jms:jme ) , INTENT(OUT) :: ppnc_wcd
以及找到你要输出的微物理方案,比如CASE(THOMPSONAERO)中再次将想要输出的源、汇项标注:
      ppnc_wcd=ppnc_wcd,                  &
4.最后一步是修改phys/module_mp_xx.F,也就是你想要输出源、汇项的微物理方案:
这一步比较复杂,也比较多需要根据方案自身的设置进行,需要明确的是微物理方案是将三维的首先对应值一维,然后进行单柱的计算,简要的几步是,首先要将刚才在microphysics_driver里的变量标注一下,同样以Thompson方案为例,就是在主程序中SUBROUTINE mp_gt_driver()里加入:
ppnr_wcd
进行属性说明:
REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(INOUT)::       &
                          ppnc_wcd,

同时定义一个一维(即垂直维)的数组:
REAL, DIMENSION(kts:kte) ::    &
                          ppnc_wcd1d,

在后续将三维的数据给一维:
                          do k = kts, kte
                          ppnc_wcd1d(k) = ppnc_wcd(i,k,j)
                          end do
由于主程序中包含有call mp_thompson(),记住将刚才定义的一维加入进去:
                          ppnc_wcd1d,
这一步意思就是做单柱的计算了,计算完之后会返回单柱的信息,然后最后将单柱的数据返回给三维的即可:
            do k = kts, kte
            ppnc_wcd(i,k,j) = ppnc_wcd1d(k)
            end do

下一步就是修改mp_thompson这个子程序,找到subroutine mp_thompson()加入单柱信息:
      subroutine mp_thompson ( 。。。。,ppnc_wcd1d)
对这个单柱数组进行属性说明:
          REAL, DIMENSION(kts:kte) ::    &
                          ppnc_wcd1d,
最后就是再后续方案中计算源、汇项的地方将源、汇项的数值复制给单柱即可
                          ppnc_wcd1d=aaa
修改好方案后,将WRF重新编译一遍,即可输出源、汇项。
温馨提示:
1.由于过程比较复杂,可以一次进行一个源、汇项的测试,等一个成功输出了再将更多的进行重复操作。
2.由于我们只是对源、汇项进行了输出,原则上是不改变里面的过程的,因此可以将原始模拟结果和加入输出项的结果进行对比,确保输出项的加入不影响模拟过程即为正确。            
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-8-30 16:19:48 | 显示全部楼层
谢谢帮助,万分感谢,楼主帮了大忙啦,今晚就尝试着搞一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-4 09:33:34 | 显示全部楼层
向楼主学习了,十分感谢您的分享
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-4 15:06:36 | 显示全部楼层
求教下楼主第三步最后,在CASE(THOMPSONAERO)中再次将想要输出的源、汇项标注,我在文件里还看到一个CASE(THOMPSON),请问这两个有什么区别,为什么不是在后面那个模块里面标注
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-11 22:24:34 | 显示全部楼层
东东呆 发表于 2020-9-4 15:06
求教下楼主第三步最后,在CASE(THOMPSONAERO)中再次将想要输出的源、汇项标注,我在文件里还看到一个CASE(T ...

区别在于你选择的方案,如果是8就是不带aerosol的方案,如果是要aerosol方案就在后面加
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-18 17:06:05 | 显示全部楼层
denglin19901030 发表于 2020-9-11 22:24
区别在于你选择的方案,如果是8就是不带aerosol的方案,如果是要aerosol方案就在后面加

好的,谢谢楼主,我这已经按照你的步骤改动下来了,现在编译成功不了,出不来main文件夹下的四个执行文件,我检查了checkwrf.log里面发现它提到这样的问题:
f951: Warning: Nonexistent include directory ‘/home/hwx/model/WRFV3/chem’ [-Wmissing-include-dirs]
module_microphysics_driver.f90:716:67:

                  ITS=its,ITE=ite, JTS=jts,JTE=jte, KTS=kts,KTE=kte)
                                                                   1
Error: Missing actual argument for argument ‘ppnc_wcd’ at (1)
Command exited with non-zero status 1
调整了很多次代码位置,也检查了代码并未打错,一直显示这个问题,请问楼主遇到过吗,谢谢楼主
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-10-20 17:30:14 | 显示全部楼层
请教下楼主,改完之后我wrf现在编译成了。但是wrf跑出来的wrfout里没有我加入的变量,检查了云微物理方案选择的正确的,请问楼主有遇到过相同的问题吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-12-3 20:00:56 | 显示全部楼层
向楼主学习了!非常感谢!决定尝试一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-12-11 20:35:51 | 显示全部楼层
找了好久相关资料,感谢楼主!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-5-18 16:18:00 | 显示全部楼层
想请教楼主,我想输出WSM7方案的PCOND这个变量,按照步骤修改下来之后,出现了这一个错误,请问这可能是哪里出了问题
module_comm_nesting_dm.f90(3986): error #6283: The DIM specification is out-of-range.   [0]
IF ( SIZE(grid%pcond,1)*SIZE(grid%pcond,0) .GT. 1 ) THEN
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表