swr_fouquart.F

路径

LMDZ.MARS\libf\phymars\swr_fouquart.F

所属目录 / 模块

libf/phymars

文件定位

swr_fouquart.F 定义 Fouquart 短波连续散射方案。swmain_mod.Fcallkeys_mod::swrtype == 1 时对两个太阳谱段分别调用 SWR_FOUQUART,本例程把各 aerosol 种类的可见光光学厚度、单散射反照率和不对称因子合成为层平均散射参数;若 rayleigh=.true.,再调用 swrayleigh 将气体 Rayleigh 散射并入层光学量;随后按 Fouquart/Bonel 方案计算各层上下短波通量 PFD/PFU

定义的符号

符号 类型 行号 作用
swr_fouquart_mod module 1 封装 Fouquart 短波散射例程。
SWR_FOUQUART subroutine 7 计算给定太阳谱段的短波向下/向上归一化通量。

依赖的模块

use 模块 only 列表 用途 待确认
dimradmars_mod sunfr, ndlo2, nsun, ndlon, nflev, naerkind 数组维度、谱段太阳能量份额和 aerosol 种类数。 -
yomlw_h nlaylte 当前辐射垂直层数。 -
callkeys_mod rayleigh 控制是否合入 Rayleigh 散射。 -
swrayleigh_mod swrayleigh 计算谱段 Rayleigh 柱光学厚度。 -
cvmgt_mod cvmgt aerosol 光学量归一化时的除零保护选择函数。 -

调用的关键例程

被调用例程 所在模块 / 文件 调用位置 作用
cvmgt cvmgt.F 行 161-164 分母为零时给 ZCGAZ=0ZPIZAZ=1 默认值。
swrayleigh swrayleigh.F 行 173 计算 Rayleigh 柱光学厚度。
exp Fortran intrinsic 多处 计算层透过率和指数衰减。

输入

输入 来源 类型 / 维度 单位 含义
KDLON, KFLEV, KNU swmain_mod.F integer - 当前列数、垂直层数和太阳谱段编号。
aerosol swmain_mod.F real (NDLO2,KFLEV,naerkind) optical depth 各 aerosol 种类参考波长光学厚度。
QVISsQREF3d, omegaVIS3d, gVIS3d 光学表 real 4D - 谱段消光比例、单散射反照率和不对称因子。
albedo, PDSIG, PPSOL, PRMU, PSEC swmain_mod.F arrays mixed 表面反照率、sigma 层厚、地表压、修正太阳天顶角余弦及其倒数。

输出

输出 去向 类型 / 维度 单位 含义
PFD swmain_mod.F real (NDLO2,KFLEV+1) normalized flux 谱段向下短波通量。
PFU swmain_mod.F real (NDLO2,KFLEV+1) normalized flux 谱段向上短波通量。

共享状态与副作用

本例程不写 module 状态,也不做文件 I/O。它读取 rayleigh 开关和辐射维度/太阳谱段权重。计算完全通过实参数组返回。

核心逻辑

  1. 初始化内部反射/透过率工作数组。
  2. 对每层、每列、每个 aerosol 种类累加谱段光学厚度 ZTAUAZ、散射贡献 ZPIZAZ 和不对称因子贡献 ZCGAZ
  3. cvmgt 把累计量归一化成层平均不对称因子和单散射反照率。
  4. rayleigh 开启,调用 swrayleigh,按 PDSIG 将柱 Rayleigh 光学厚度分配到层,并与 aerosol 散射参数合并。
  5. 从高层向低层构造有效云量、纯散射反射率/透过率,再做多层合成和地表边界耦合,输出 PFD/PFU

伪代码

for each layer and aerosol kind:
    accumulate spectral optical depth, scattering optical depth and asymmetry
normalize aerosol optical properties with cvmgt protection
if rayleigh:
    prayl = swrayleigh(...)
    add layer Rayleigh optical depth into total scattering properties
solve Fouquart continuum scattering reflectivity/transmissivity
return normalized downward and upward band fluxes

参与的主题流程

主题 参与方式
短波辐射 swmain_modswrtype=1 时调用本例程,生成两个太阳谱段的散射通量。
尘埃 / aerosol 辐射 aerosolQVISsQREF3d/omegaVIS3d/gVIS3d 控制层光学厚度和散射相函数。
Rayleigh 散射 通过 rayleigh 开关调用 swrayleigh,把气体散射并入总光学参数。

写法特点

复现要点

待确认

相关页面