lwxd.F

路径

LMDZ.MARS\libf\phymars\lwxd.F

所属目录 / 模块

libf\phymars

文件定位

lwxd.F 定义 lwxd_mod 模块,提供长波 LTE 辐射中的远距离层间交换系数例程 lwxd。它位于 lwu 生成 co2_u/co2_up/aer_t 之后、lwfluxlwi 读取 yomlw_h::xi 之前,由 lwmain_mod.Flwxblwxn 同一组长波交换系数阶段调用。

源码注释把本例程定位为 distant layers 的 transmission function 与 exchange coefficients。这里的“远距离”不是所有非边界项,而是 jk=1:nlaylte-2jkk=jk+2:nlaylte 的非相邻真实大气层对。相邻层 jk,jk+1lwxn.F 细分子层处理,地面/空间边界由 lwxb 处理。

lwxd 的核心工作是先对每一对层边界构造 CO2 与气溶胶总透过率,再用四个相邻界面透过率作二阶差分,写出远距离层间净交换率 xi。当 callkeys_mod::callemis 为真时,它还构造经地面反射的路径,并把该反射项按 (1-emis) 加到远距离 xi 中。

定义的符号

符号 类型 行号 作用
lwxd_mod module 1 封装远距离长波层间交换系数构造例程。
lwxd subroutine 7 计算远距离层对的 CO2/气溶胶透过率差分,并写入共享净交换率表 xi

依赖的模块

use 模块 only 列表 用途 待确认
dimradmars_mod ndlon, nuco2, nflev, ndlo2 提供水平、谱带和垂直维度上限,用于接口数组和局部工作数组形状。
yomlw_h nlaylte, xi, xi_emis 读取 LTE 长波有效层数,并写入远距离 xi 与供 lwxn 读取的邻近反射缓存 xi_emis
callkeys_mod callemis 控制是否计算经地面反射的透过率路径 trans_emis
lwtt_mod lwtt 用 CO2 吸收路径 zu/zup 计算每个 CO2 谱带透过率。

调用的关键例程

被调用例程 所在模块 / 文件 调用位置 作用
lwtt lwtt_mod / lwtt.F 102 对直接层间路径的 CO2 吸收量差值 zu/zup 求透过率。
lwtt lwtt_mod / lwtt.F 155 对经地面反射路径的 CO2 吸收量组合求透过率。

输入

输入 来源 类型/维度 单位 含义
ig0 lwmain integer grid offset 当前向量块在全局 xi 第一维中的偏移,写入时使用 ig0+jl
kdlon lwmain integer column 当前向量块内有效水平列数,循环范围为 1:kdlon
kflev lwmain integer layer 接口数组的垂直层数参数;主要层间循环使用 yomlw_h::nlaylte
emis lwmain 传入的 emis_gaz real(ndlo2) - 地表发射率。远距离层间的反射修正乘以 (1-emis)
aer_t lwu real(ndlo2,nuco2,kflev+1) - CO2 谱带上的累计气溶胶吸收透过率。
co2_u lwu real(ndlo2,nuco2,kflev+1) 吸收路径 自模型顶向下累计的 CO2 吸收量。
co2_up lwu real(ndlo2,nuco2,kflev+1) 压力缩放吸收路径 带压力效应的累计 CO2 吸收量。

输出

输出 去向 类型/维度 单位 含义
xi(ig0+jl,ja,jk,jkk) 与互易项 yomlw_h,后续由 lwflux / lwi 读取 shared array - jk 与第 jkk 个非相邻真实大气层之间的 CO2 带净交换系数。
xi_emis(ig0+jl,ja,jk) yomlw_h,后续由 lwxn.F 读取 shared array - 名义上保存邻近层反射交换项;按当前源码字面,邻近项公式被注释且 ksi_emis 初值为 0,因此这里写出的值为 0。

共享状态与副作用

lwxd 不读写文件,不分配内存,也没有启用的诊断打印。它的持久副作用限于写入 yomlw_h::xiyomlw_h::xi_emis。远距离 xi 写入时显式补齐互易项:xi(...,jk,jkk)xi(...,jkk,jk) 取同一数值。

源码中保留了若干已注释的范围检查和打印语句,包括 transtrans_emisksiksi_emis 的负值或大于 1 检查;当前可执行路径不会钳制这些值。

核心逻辑

  1. ksi_emis(:,:,:,:) 初始化为 0,随后只在远距离层对循环中写入 ksi_emis(jk,jkk)
  2. 对所有边界对 jk=1:nlaylte+1jkk=jk:nlaylte+1 构造直接路径:zu=co2_u(:,:,jk)-co2_u(:,:,jkk)zup=co2_up(:,:,jk)-co2_up(:,:,jkk),气溶胶透过率比值为 aer_t(:,:,jk)/aer_t(:,:,jkk);调用 lwtt 后得到 trans(jk,jkk),并补齐 trans(jkk,jk)
  3. 如果 callemis 为真,构造经地面反射的路径:CO2 路径为 2*co2_u(:,:,1)-co2_u(:,:,jk)-co2_u(:,:,jkk),气溶胶路径为 aer_t(:,:,1)^2/aer_t(:,:,jk)/aer_t(:,:,jkk);否则把 trans_emis(jk,jkk) 设为 1。两种分支都会补齐 trans_emis(jkk,jk)
  4. 对每个远距离真实层对 jk=1:nlaylte-2jkk=jk+2:nlaylte,用四个界面透过率作二阶差分: ksi = trans(jk+1,jkk) - trans(jk,jkk) - trans(jk+1,jkk+1) + trans(jk,jkk+1)
  5. 对同一远距离层对计算反射差分: ksi_emis = trans_emis(jk,jkk) - trans_emis(jk+1,jkk) - trans_emis(jk,jkk+1) + trans_emis(jk+1,jkk+1)
  6. 写入 xi = ksi + ksi_emis * (1-emis),再写入互易项。
  7. 循环结束后,源码尝试为相邻层保存 xi_emis(jk);但相邻层 ksi_emis(jk,jk+1) 的计算公式处于注释状态,且远距离循环不会覆盖该位置,因此当前实现写出的邻近反射缓存为 0。

伪代码

ksi_emis = 0

for jk = 1 to nlaylte+1:
  for jkk = jk to nlaylte+1:
    zu = co2_u(:,:,jk) - co2_u(:,:,jkk)
    zup = co2_up(:,:,jk) - co2_up(:,:,jkk)
    zt_aer = aer_t(:,:,jk) / aer_t(:,:,jkk)
    zt_co2 = lwtt(zu, zup)
    trans(jk,jkk) = zt_co2 * zt_aer
    trans(jkk,jk) = trans(jk,jkk)

for jk = 1 to nlaylte+1:
  for jkk = jk to nlaylte+1:
    if callemis:
      zu = 2*co2_u(:,:,1) - co2_u(:,:,jk) - co2_u(:,:,jkk)
      zup = 2*co2_up(:,:,1) - co2_up(:,:,jk) - co2_up(:,:,jkk)
      zt_aer = aer_t(:,:,1)^2 / aer_t(:,:,jk) / aer_t(:,:,jkk)
      trans_emis(jk,jkk) = lwtt(zu, zup) * zt_aer
    else:
      trans_emis(jk,jkk) = 1
    trans_emis(jkk,jk) = trans_emis(jk,jkk)

for jk = 1 to nlaylte-2:
  for jkk = jk+2 to nlaylte:
    ksi = trans(jk+1,jkk) - trans(jk,jkk)
        - trans(jk+1,jkk+1) + trans(jk,jkk+1)
    ksi_emis = trans_emis(jk,jkk) - trans_emis(jk+1,jkk)
             - trans_emis(jk,jkk+1) + trans_emis(jk+1,jkk+1)
    xi(jk,jkk) = ksi + ksi_emis * (1 - emis)
    xi(jkk,jk) = xi(jk,jkk)

for jk = 1 to nlaylte-1:
  xi_emis(jk) = ksi_emis(jk,jk+1) * (1 - emis)

参与的主题流程

主题 参与方式
辐射计算 在长波 LTE 主流程中补全非相邻真实层之间的净交换率 xi,与 lwxb 的边界项和 lwxn 的相邻层项共同供后续通量/冷却率例程读取。
phymars 核心物理模块目录 属于 libf\phymars 长波辐射辅助文件组。

写法特点

复现要点

待确认

相关页面