CO2 饱和与凝结温度辅助函数页

文件组

文件 路径
co2sat.F LMDZ.MARS\libf\phymars\co2sat.F
tcondco2.F90 LMDZ.MARS\libf\phymars\tcondco2.F90

所属目录/模块

libf/phymars

文件组定位

这两个文件提供 CO2 凝结的热力学基础计算:

二者基于相同的 James et al. 1992 饱和蒸汽压公式,形式上互为逆运算,是 CO2 循环与 CO2 云微物理的核心热力学入口。

定义的符号

符号 文件 类型 行号 作用
co2sat co2sat.F subroutine 8 计算饱和蒸汽压
tcondco2 tcondco2.F90 subroutine 7 计算凝结温度
tcondco2_mod tcondco2.F90 module 1 封装 tcondco2 的模块

依赖的模块

use 模块 来源文件 only 列表 用途 待确认
conc_mod tcondco2.F90 mmean 获取平均分子量

调用的关键例程

被调用例程 所在模块/文件 调用位置 作用
无外部调用 - - 纯函数式计算,无子例程调用

输入

输入 来源 类型/维度 单位 含义
naersize co2sat.F integer - 数组维度
t co2sat.F real(naersize) K 温度数组
ngrid tcondco2.F90 integer - 水平网格数
nlay tcondco2.F90 integer - 垂直层数
p tcondco2.F90 real(ngrid,nlay) Pa 总气压
q tcondco2.F90 real(ngrid,nlay) kg/kg CO2 质量混合比(tracer 值,经调用点核验:pq(ig,l,igcm_co2)

输出

输出 去向 类型/维度 单位 含义
psat co2sat.F real(naersize) Pa 饱和蒸汽压
tcond tcondco2.F90 double precision(ngrid,nlay) K CO2 凝结温度

共享状态与副作用

核心逻辑

co2sat

按 James et al. 1992 公式计算饱和蒸汽压:

psat = 1.382 × 10¹² × exp(-3182.48 / t)

tcondco2

从饱和蒸汽压公式反解温度,给定气压和 CO2 混合比:

  1. 计算 CO2 分压:pco2 = q(ig,l) * (mmean(ig,l)/44.01) * p(ig,l)

    • mmean 为当地平均分子量(通过 conc_mod 读取)
    • 44.01 为 CO2 分子量
    • q 为 CO2 tracer 质量混合比 (kg/kg),调用点传入 pq(:,:,igcm_co2)pq+pdq*ptimestep
    • 公式含义:将质量混合比转换为体积混合比(q * M_mean/M_CO2),再乘以总压得分压
  2. 反解温度:tcond = B / (log(pco2) - A)

    • A = log(1.382×10¹²)
    • B = -3182.48
    • 推导:由 psat = exp(A) × exp(B/t)log(psat) = A + B/t,故 t = B / (log(psat) - A)
  3. 对所有网格点和垂直层循环应用

伪代码

co2sat

对 i = 1 到 naersize:
    psat(i) = 1.382e12 * exp(-3182.48 / t(i))

tcondco2

A = log(1.382e12)
B = -3182.48

对 l = 1 到 nlay:
    对 ig = 1 到 ngrid:
        pco2 = q(ig,l) * (mmean(ig,l) / 44.01) * p(ig,l)
        tcond(ig,l) = B / (log(pco2) - A)

参与的主题流程

主题 参与方式
CO2 循环 co2cloud_modimprovedco2clouds_mod 提供热力学判据(tcondco2 判断 CO2 凝结温度、co2sat 计算饱和蒸汽压)
CO2 云微物理 improvedco2clouds_mod 提供凝结温度和饱和蒸汽压,用于成核与增长计算
CO2 循环主题页 主题入口

写法特点

复现要点

待确认

复现风险

相关页面