photolysis_online.F

路径

LMDZ.MARS\libf\aeronomars\photolysis_online.F

所属目录/模块

libf\aeronomars

文件定位

photolysis_online.F 定义 photolysis_online_mod,是火星 GCM 在线光解率计算模块。它消费 photolysis_modinit_photolysis 中预读的光谱网格、太阳通量、温度相关截面和量子产额,对每一列大气逐波长做单色辐射传输(两流近似 + 伪球面修正),累加得到 v_phot(nlayer, nb_phot_max) 的 15 个光解率。

本文件本身不读取任何外部文件,也不做化学矩阵积分;它只负责把 photolysis_mod 的共享谱表数据转化为逐层光解率,由 photochemistry_modjonline=.true. 时消费。

定义的符号

符号 类型 行号 作用
photolysis_online_mod module 1-1573 在线光解率计算模块,包含主例程和全部内部子例程
photolysis_online subroutine 9-1571 在线光解主入口;接收大气剖面和几何参数,输出 v_phot 光解率
setair internal subroutine 285-337 计算空气柱增量 colinc 和 CO₂ Rayleigh 光学厚度 dtrl(Ityaksov 2008)
setco2 internal subroutine 341-425 CO₂ 温度相关截面(195/295/370 K 对数插值),O(¹D) 通道 λ<167 nm
seto2 internal subroutine 429-514 O₂ 温度相关截面(150/200/250/300 K 线性插值),Schumann-Runge 修正,O(¹D) λ<175 nm
seto3 internal subroutine 516-597 O₃ 温度相关截面(218/298 K 线性插值),O(¹D) 量子产额 JPL 2006
seth2o2 internal subroutine 599-675 H₂O₂ 温度相关截面(JPL 2006 多项式 A0-A7 + B0-B4)
setno2 internal subroutine 677-743 NO₂ 温度相关截面(220/294 K)和量子产额(248/298 K),JPL 2006
setaer internal subroutine 745-802 固定气溶胶光学属性:ω=0.622(Wolff 2010@258nm)、g=0.88(Mateshvili 2007@210nm)、scaleh=10km、γ=0.03(Conrath)
setcld internal subroutine 804-845 无云(dtcld=0);预留 omcld=0.99gcld=0.85
sphers internal subroutine 847-976 球面几何斜路径(Dahlback & Stamnes 1991),火星半径 3393 km
rtlink internal subroutine 978-1074 光学属性汇总和辐射传输调度;delta 缩放开关,调用 ps2str
ps2str internal subroutine 1076-1526 两流辐射传输求解器(Toon et al. 1989),半球平均法,伪球面直射修正
tridiag internal subroutine 1528-1571 Thomas 三对角算法(Numerical Recipes)

依赖的模块

use 模块 only 列表 用途 待确认
photolysis_mod nw, wl, wc, wu, f, albedo, mopt, nphot, nabs, xso2_*, xsco2_*, xso3_*, xsh2o, xsh2o2, xsho2, xsh2, xsno*, xsn2, xshdo, yieldco2, yieldo2, yieldh2, yieldno, yieldn2, yldno2_* 读取全部光谱网格、太阳通量、吸收截面、量子产额和地表反照率

调用的关键例程

被调用例程 所在模块/文件 调用位置 作用
setair 本文件 contains 130 空气柱增量和 Rayleigh 光学厚度
seto2 本文件 contains 138 O₂ 温度相关截面和光学厚度
setco2 本文件 contains 145 CO₂ 温度相关截面和光学厚度
seto3 本文件 contains 152 O₃ 温度相关截面和光学厚度
seth2o2 本文件 contains 159 H₂O₂ 温度相关截面和光学厚度
setno2 本文件 contains 165 NO₂ 温度相关截面和光学厚度
setaer 本文件 contains 222 气溶胶光学厚度和散射属性
setcld 本文件 contains 226 云光学厚度(当前设为零)
sphers 本文件 contains 230 球面几何斜路径长度
rtlink 本文件 contains 253 单色辐射传输调度
ps2str 本文件 contains(由 rtlink 调用) 1058/1066 两流近似辐射传输求解
tridiag 本文件 contains(由 ps2str 调用) 1377/1462 三对角矩阵求解

输入

输入 来源 类型/维度 单位 含义
nlayer photochemistry_mod integer 垂直层数
deutchem photochemistry_mod logical - 是否启用氘化学(HDO 光解两通道)
nb_phot_max photochemistry_mod integer 反应数 输出 v_phot 第二维容量
alt(nlayer) photochemistry_mod real km 层高度
press(nlayer) photochemistry_mod real hPa 层压力
temp(nlayer) photochemistry_mod real K 层温度
mmean(nlayer) photochemistry_mod real g mol⁻¹ 平均分子质量
rm(nlayer,nesp) photochemistry_mod real VMR 各化学物种混合比
i_co2,i_co,i_o,i_o1d,i_o2,i_o3,i_h,i_h2,i_oh,i_ho2,i_h2o2,i_h2o,i_n,i_n2d,i_no,i_no2,i_n2 photochemistry_mod integer index 化学物种在 rm 第二维中的索引
nesp photochemistry_mod integer 物种数 化学物种总数
tau photochemistry_mod real - 地表积分气溶胶光学厚度
sza photochemistry_mod real degree 太阳天顶角
dist_sol photochemistry_mod real AU 日火距离

输出

输出 去向 类型/维度 单位 含义
v_phot(nlayer,nb_phot_max) photochemistry_mod real(kind=8) s⁻¹ 光解率;前 nphot 个槽位填充,其余保持零

光解反应编号

编号 变量名 反应
1 j_o2_o O₂ + hν → O + O
2 j_o2_o1d O₂ + hν → O + O(¹D)
3 j_co2_o CO₂ + hν → CO + O
4 j_co2_o1d CO₂ + hν → CO + O(¹D)
5 j_o3_o1d O₃ + hν → O₂ + O(¹D)
6 j_o3_o O₃ + hν → O₂ + O
7 j_h2o H₂O + hν → H + OH
8 j_h2o2 H₂O₂ + hν → OH + OH
9 j_ho2 HO₂ + hν → OH + O
10 j_h2 H₂ + hν → H + H
11 j_no NO + hν → N + O
12 j_no2 NO₂ + hν → NO + O
13 j_n2 N₂ + hν → N + N
14 j_hdo_od HDO + hν → OD + H(仅 deutchem
15 j_hdo_d HDO + hν → D + OH(仅 deutchem

吸收气体编号

编号 变量名 气体
1 a_o2 O₂
2 a_co2 CO₂
3 a_o3 O₃
4 a_h2o H₂O
5 a_h2o2 H₂O₂
6 a_ho2 HO₂
7 a_h2 H₂
8 a_no NO
9 a_no2 NO₂
10 a_n2 N₂

共享状态与副作用

核心逻辑

  1. 工作垂直网格:将 nlayer 层 GCM 网格复制到 nlev=nlayer+1 层界面网格(zpress/zalt/ztemp/zmmean),顶层设 zpress(nlev)=0,顶层高度和温度用外推。
  2. 空气柱和 Rayleighsetair 用静力方程 colinc = avo * 0.1 * dp / (mmean * g) 计算空气柱增量(g=3.72 m/s²),用 Ityaksov et al. 2008 CO₂ Rayleigh 截面 σ = 1.78e-26 * ν^(4+0.625) 计算 dtrl
  3. 温度相关截面:对 O₂(4 温度点线性)、CO₂(3 温度点对数)、O₃(2 温度点线性)、H₂O₂(JPL 多项式)和 NO₂(2 温度点+量子产额)调用各 set* 子例程,填充 dtgassj
  4. 温度无关截面:对 H₂O、HO₂、H₂、NO、N₂ 直接在循环中用 colinc * rm * xs 填充 dtgassj(含产额 yieldh2/yieldno/yieldn2)。
  5. 氘化学:若 deutchem=.true.,HDO 用 0.5*xshdo 分两个通道(j_hdo_odj_hdo_d)填充 sj
  6. 总气体光学厚度dagas 对所有 10 种吸收气体的 dtgas 逐层逐波长求和。
  7. 气溶胶和云setaer 设置固定气溶胶廓线(scaleh=10kmgamma=0.03 波长依赖、omega=0.622g=0.88);setcld 设零云光学厚度。
  8. 球面几何sphers 按 Dahlback & Stamnes 1991 计算斜路径长度比 dsdh 和层间折射索引 nid,火星半径 3393 km
  9. 太阳通量缩放fmars = f * (1/dist_sol)^2
  10. 波长循环:对 iw=1:nw-1,调用 rtlink 做单色辐射传输,得到直射/漫射上下行辐照度 edir/edn/eup 和作用量通量 fdir/fdn/fup;计算球面作用量通量 saflux = fmars * (fdir+fdn+fup);逐反应逐层累加 v_phot += saflux * sj * (wu-wl)
  11. 小值清除where (v_phot < 1e-30) v_phot = 0

伪代码

photolysis_online(nlayer, ..., v_phot):
  nlev = nlayer + 1
  build interface-level grid zpress/zalt/ztemp/zmmean (top: p=0, extrapolate z/T)

  call setair → colinc, dtrl (Rayleigh, Ityaksov 2008 CO2)

  dtgas = 0
  call seto2  → dtgas(:,:  ,a_o2),  sj(:,:,:  )  [T-dep, 4-point linear, Schumann-Runge]
  call setco2 → dtgas(:,:  ,a_co2), sj(:,:,:  )  [T-dep, 3-point log, O(1D)<167nm]
  call seto3  → dtgas(:,:  ,a_o3),  sj(:,:,:  )  [T-dep, 2-point linear, JPL yield]
  call seth2o2→ dtgas(:,:  ,a_h2o2),sj(:,:,:  )  [T-dep, JPL polynomial]
  call setno2 → dtgas(:,:  ,a_no2), sj(:,:,:  )  [T-dep, 2-point + yield]

  for ilay, iw:  # T-independent
    dtgas(ilay,iw,a_h2o) = colinc * rm(i_h2o) * xsh2o
    dtgas(ilay,iw,a_ho2) = colinc * rm(i_ho2) * xsho2
    dtgas(ilay,iw,a_h2)  = colinc * rm(i_h2)  * xsh2  * yieldh2
    dtgas(ilay,iw,a_no)  = colinc * rm(i_no)  * xsno  * yieldno
    dtgas(ilay,iw,a_n2)  = colinc * rm(i_n2)  * xsn2  * yieldn2
    sj(ilay,iw,j_*) = corresponding xs * yield

  if deutchem: sj(:,:,j_hdo_od) = sj(:,:,j_hdo_d) = 0.5 * xshdo

  dagas = sum(dtgas over all absorbers)

  call setaer → dtaer, omaer, gaer (fixed aerosol profile)
  call setcld → dtcld=0, omcld, gcld (no clouds)
  call sphers → dsdh, nid (spherical geometry, R=3393km)

  fmars = f * (1/dist_sol)^2
  v_phot = 0

  for iw = 1..nw-1:
    call rtlink → edir, edn, eup, fdir, fdn, fup (two-stream, pseudo-spherical)
    saflux = fmars * (fdir + fdn + fup)
    for i = 1..nphot:
      for ilay = 1..nlayer:
        v_phot(ilay,i) += saflux(ilay) * sj(ilay,iw,i) * (wu(iw) - wl(iw))

  where (v_phot < 1e-30) v_phot = 0

参与的主题流程

主题 参与方式
在线光解 jonline=.true. 时由 photochemistry_mod 调用,消费 photolysis_mod 的光谱数据
光化学反应网络 提供基础 15 个光解槽位中的有效速率(13 或 15 取决于 deutchem),供 photochemistry 反应速率和矩阵积分
氘化学 deutchem=.true. 时额外计算 HDO 两通道光解(j_hdo_od/j_hdo_d
气溶胶-光解耦合 地表气溶胶光学厚度 tau 通过 setaer 影响全柱光解率

写法特点

复现要点

待确认

相关页面