每天看一个fortran文件(7)之寻找cesm边界层高度计算代码

自从我把我的代码移到了单独的F90 中,从tphysac.F90中调用后。我发现有很多的变量我没办法调用了,特别是边界层中原先已经算好的变量,比如说我想调用原来模式中的pblh,但是那是在vertical diffusion.F90中计算的,在tphysac中根本调用不到啊,这怎么解决呢?

带着这个疑问,我们再次翻开别人的代码

首先我们打开 verticaldiffusion.f90

我们知道这里面是输出边界层高度的,搜pblh

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第1张图片

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第2张图片

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第3张图片

 到这里,下面就不用看了,就在上面已经计算完了

先看一下compute_eddy_diff

 我们看见在eddy_diff.f90里面呢,打开文件eddy_diff.f90

在文件里面再找pblh

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第4张图片

我们看见在这里的pblh是intent(out)的,这就说明这里面计算边界层高度的

这些相关的变量也稍微记下

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第5张图片

 我们看到计算的程序不在这个compute_eddy_diff里面的

很有可能在caleddy()中

再在文件里面找caleddy

就是这里计算的边界层高度

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第6张图片

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第7张图片

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第8张图片

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第9张图片

 从程序中我们大致能够感受到是通过层索引来找到边界层高度的,而且就是在state%zi里面找的一层的高度

详细的过程我们下载他给的两篇文献中找吧,2009年的两篇JC

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第10张图片

 我在JC上一搜就下下来了。

文章都挺长的

每天看一个fortran文件(7)之寻找cesm边界层高度计算代码_第11张图片

 其中我们了解到cam中的边界层湍流参数化之前的有Holtslag和Boville(1993)简称HB方案HB方案是一种非局部扩散(K)剖面方案,针对陆地上的干对流和夜间边界层的模拟进行了优化

整体干理查德森数用于诊断ABL边界层深度,该深度设置了K剖面的顶部,从而隐含地确定了夹带速率

。。。。

下面看文章探求原方案怎么计算边界层高度的就不在这里展开了。

你可能感兴趣的:(fortran,地球系统模式,fortran,linux)