cvmgt.F

路径

LMDZ.MARS\libf\phymars\cvmgt.F

所属目录 / 模块

libf\phymars

文件定位

cvmgt.F 定义 cvmgt_mod,只提供一个 REAL FUNCTION cvmgt(x1,x2,l)。它是一个标量实数选择函数:当逻辑量 l 为真时返回 x1,否则返回 x2。源码没有 use 依赖、没有调用其他例程,也不保存任何 module 状态。

当前源码树中,cvmgt 只被 swr_toon.Fswr_fouquart.F 使用。两个短波辐射例程都在归一化 aerosol 不对称因子 ZCGAZ 和单散射反照率 ZPIZAZ 时调用它:源码意图是在分母为零时给默认值,否则使用正常比值。

定义的符号

符号 类型 行号 作用
cvmgt_mod module 1 提供 cvmgt 选择函数的轻量模块。
cvmgt real function 7 根据逻辑条件在两个 REAL 输入之间选择一个返回值。

依赖的模块

use 模块 only 列表 用途 待确认
- - 本文件没有 use 依赖。 -

调用的关键例程

被调用例程 所在模块 / 文件 调用位置 作用
- - - 本文件不调用其他例程。

上游调用点

调用方 源码位置 调用条件 传入 / 接收关系
swr_toon.F swr_toon.F:17, 138-143 短波 Toon 算法归一化 aerosol 光学量时 ZPIZAZ==0 时把 ZCGAZ 设为 0ZTAUAZ==0 时把 ZPIZAZ 设为 1
swr_fouquart.F swr_fouquart.F:17, 159-164 短波 Fouquart 算法归一化 aerosol 光学量时 swr_toon 相同,用默认值保护 ZCGAZ/ZPIZAZZPIZAZ/ZTAUAZ 两个比值。

输入

输入 来源 类型/维度 单位 含义
x1 调用方 real scalar, intent(in) 由调用方决定 条件为真时返回的值。
x2 调用方 real scalar, intent(in) 由调用方决定 条件为假时返回的值。
l 调用方 logical scalar, intent(in) - 选择条件。

输出

输出 去向 类型/维度 单位 含义
cvmgt 调用方表达式 real scalar x1/x2 相同 l=.true. 时为 x1,否则为 x2

共享状态与副作用

核心逻辑

  1. 接收两个实数候选值 x1/x2 和逻辑条件 l
  2. l 为真,把函数返回值设为 x1
  3. 否则把函数返回值设为 x2

伪代码

cvmgt(x1, x2, l):
    if l is true:
        return x1
    else:
        return x2

参与的主题流程

主题 参与方式
短波辐射 swr_toonswr_fouquart 用它在 aerosol 光学量归一化时选择除零保护默认值。
辐射复现 如果用标准 merge 或手写 if 替换,需要保持 true 分支返回第一个实参、false 分支返回第二个实参的顺序。

写法特点

复现要点

待确认

相关页面