自从我把我的代码移到了单独的F90 中,从tphysac.F90中调用后。我发现有很多的变量我没办法调用了,特别是边界层中原先已经算好的变量,比如说我想调用原来模式中的pblh,但是那是在vertical diffusion.F90中计算的,在tphysac中根本调用不到啊,这怎么解决呢?
带着这个疑问,我们再次翻开别人的代码
首先我们打开 verticaldiffusion.f90
我们知道这里面是输出边界层高度的,搜pblh
到这里,下面就不用看了,就在上面已经计算完了
先看一下compute_eddy_diff
我们看见在eddy_diff.f90里面呢,打开文件eddy_diff.f90
在文件里面再找pblh
我们看见在这里的pblh是intent(out)的,这就说明这里面计算边界层高度的
这些相关的变量也稍微记下
我们看到计算的程序不在这个compute_eddy_diff里面的
很有可能在caleddy()中
再在文件里面找caleddy
就是这里计算的边界层高度
从程序中我们大致能够感受到是通过层索引来找到边界层高度的,而且就是在state%zi里面找的一层的高度
详细的过程我们下载他给的两篇文献中找吧,2009年的两篇JC
我在JC上一搜就下下来了。
文章都挺长的
其中我们了解到cam中的边界层湍流参数化之前的有Holtslag和Boville(1993)简称HB方案HB方案是一种非局部扩散(K)剖面方案,针对陆地上的干对流和夜间边界层的模拟进行了优化
整体干理查德森数用于诊断ABL边界层深度,该深度设置了K剖面的顶部,从而隐含地确定了夹带速率
。。。。
下面看文章探求原方案怎么计算边界层高度的就不在这里展开了。