aeronomars 高层大气模块目录

路径

LMDZ.MARS\libf\aeronomars

职责

aeronomars 是 LMDZ.MARS 的高层大气模块目录,处理 80km 以上火星大气物理过程。该目录包含光化学、热层(thermosphere)、电离层(ionosphere)、分子扩散等高层大气现象的模拟。

目录内容

共 32 个文件,按功能分类如下:

1. 光化学

文件 作用
photochemistry_mod.F90 主光化学积分器;calchim 逐列调用,计算在线/离线光解、可选离子光电离、反应速率和隐式矩阵积分并写回 zycol
photolysis_mod.F90 在线光解初始化和共享谱表模块;建立 nw=162 低分辨率波长网格,读取太阳通量、截面、量子产额和反照率,供 photolysis_online 消费
photolysis_online.F 在线光解率计算模块;photolysis_online 消费 photolysis_mod 共享谱表,逐波长做两流辐射传输(Toon 1989 + 伪球面修正),累加 15 个光解率 v_phot;由 photochemistry_modjonline=.true. 时调用
photolysis.F90 离线光解查找表插值器;消费 chemistrydata_mod::jphot,按温度、SZA、CO2 柱、O3 柱和尘埃 5 维插值得基础 v_phot
calchim_mod.F90 化学调度入口;firstcall 识别化学 tracer,选择在线/离线光解初始化,逐列调用 photochemistryperosat、可选 chemthermos/deposition 并回写 dqchim
chemthermos.F90 热层化学主例程;.not.unichim 时由 calchim_mod 逐列调用,校验 C/O/H/O3/N/ion tracer,构造数密度矩阵,调用 jthermcalc_e107paramfoto_compact 并写回 zycol
chemistrydata.F90 光解查找表数据模块;read_phototabledatadir 读取 jmars.20140930 表并广播,供 photolysis 插值
chemthermos_readini.F 读取 chemthermos_reactionrates.def 的 61 反应 Arrhenius 参数到 param_v4_h::rcoef;由 calchim_mod firstcall 调用
perosat.F H2O2 饱和/凝结后处理;光化学后将超饱和 H2O2 向下层转移,底层超出量写入地表通量
paramfoto_compact.F 热层光化学/离子化学积分器;消费 jthermcalc_e107 光吸收率、E107 分支比和 rcoef 反应速率,更新 chemthermosrm 数密度矩阵

2. 热层(Thermosphere)

文件 作用
thermosphere_mod.F 热层物理过程总调度模块;thermosphere 按四个开关依次调 EUV 加热、热传导、黏性扩散和分子扩散,累加 tendency 并输出 H/H₂/D 逃逸通量
euvheat.F90 EUV 加热;euvheat_modcalleuv 下把外推温度/示踪物转成数密度,调 hrtherm 得到 jtot 并换算为 zdteuv
hrtherm.F 热层 EUV 光吸收加热率 jtot(erg/s);调 jthermcalc_e107,夜间置 0;由 euvheat 调用
jthermcalc.F, jthermcalc_e107_mod.F, jthermcalc_util.F 热计算;jthermcalc 基础版已被 E107 增强版 jthermcalc_e107 取代;jthermcalc_util 提供共享工具(column/interfast/espesor_optico_A

3. 电离层(Ionosphere)

文件 作用
iono_h.F90 电离层共享状态:18 个 *_eq 标志 + 27 个 tau* 反应系数,allocate_param_iono 分配,temp_elect 算电子温度

4. 分子扩散

文件 作用
moldiff.F 原版(legacy)14 物种分子扩散模块(死代码,无调用方);Dickinson & Ridley 1972 α 矩阵 + LU + 三对角,含 Jeans 逃逸和 O 质量守恒;已被 moldiff_red/moldiff_MPF 完全取代
moldiff_red.F 简化版 16 物种分子扩散;二元 dij 简化公式逐物种隐式三对角 + Jeans H/H₂/D 逃逸;thermosphere_modmoldiff_scheme==1(非默认)下调用
moldiff_MPF.F90 MPF 16 物种分子扩散;Wilke 多组分扩散 + Krasnopolsky 涡流扩散 + Jeans H/H₂/D 逃逸 + 可选质量守恒修正;thermosphere_modmoldiff_scheme==2(默认)下调用
moldiffcoeff.F 14 物种二元分子扩散系数矩阵 dij(Nair 94,sqrt(mmol) 缩放);每次调用覆写 coeffs.dat;由 moldiff 调用
moldiffcoeff_red.F 简化分子扩散系数 dij(Nair 94 变体);gcmind 由调用方传入,coeffs.dat 默认不写;由 moldiff_red/moldiff_MPF 调用
molvis.F 分子黏性速度扩散;molvis_modconc_mod::Akknew/cpnew/rnew 把温度依赖热导率系数换算为黏性系数,用隐式三对角求解 u/v 风速 tendency,由 thermosphere_modcallmolvis 下调用

5. 加热与传导

文件 作用
conduction.F 分子热传导;conduction_mod 用隐式三对角(Thomas)按 conc_mod::Akknew/cpnew/rnew 求解垂直热传导倾向 zdtconduc,由 thermosphere_modcallconduct 下调用
deposition.F 干沉降(甲烷);当前成分更新被注释,但 vd/loss 仍按阻力相似法计算,6 小时测试赋值是注释行;calchim_moddepos 开关下调用
intrplf.F 一维线性插值(端点常数外推,支持升/降序);inichim_newstart 插值初始成分

6. 参数与数据

文件 作用
param_read.F 旧版 EUV param_v5 参数读取;master 从 datadir/EUVDAT/param_v5 载入柱积分、光吸收、解离/电离效率和太阳通量修正表并广播
param_read_e107.F 当前热层初始化使用的 E107 参数读取;读取 EUVDAT/param_v6fit_js_e107.date107_MY*.dat 和 Schunk & Nagy 分支比文件
param_v4_h.F90 热层 EUV/E107、反应速率、光解输出和产损数组共享状态模块
surfacearea.F 气溶胶表面积计算模块;surfacearea 按微物理/简单云两种方案计算尘/冰颗粒总表面积密度 surfdust/surfice(m2/m3),由 physiq_modphotochem 路径中、calchim 之前调用
types_asis.F90 ASIS 光化学反应索引类型;定义 z3spec/z4spec 和线程私有 indice_phot/indice_3/indice_4,供 photochemistry_mod 装配隐式矩阵

7. 初始化

文件 作用
inichim_newstart.F90 newstart/testphys1d 化学初始场构造;按 traceur.def tracer 名重建 igcm_*/mmol,读取 atmosfera_LMD_* 廓线并用 intrplf 插值到 GCM 层

关键模块

模块名 所在文件 作用
photochemistry_mod photochemistry_mod.F90 主光化学积分器;包装 photochemistry 及反应索引、速率、矩阵和 GCM/化学物种映射辅助例程
calchim_mod calchim_mod.F90 化学调度、化学倾向缓存与 ini/end_calchim_mod 分配释放
photolysis_mod photolysis_mod.F90 在线光解初始化和共享光谱数据模块;保存 nphot/wl/f/xs*/yield*/albedoTHREADPRIVATE 状态
photolysis_online_mod photolysis_online.F 在线光解率计算模块;包含主例程和 12 个内部子例程,两流辐射传输累加 15 个光解率
thermosphere_mod thermosphere_mod.F 热层物理过程总调度;EUV 加热 → 热传导 → 分子黏性 → 分子扩散
euvheat_mod euvheat.F90 EUV 加热模块
chemthermos_mod chemthermos.F90 热层化学主例程;包装 chemthermos,缓存 tracer 索引和热层物种槽位
inichim_newstart_mod inichim_newstart.F90 newstart/testphys1d 的化学 tracer 初始场构造
moldiff_mod moldiff.F 原版 14 物种分子扩散(死代码,已被 moldiff_red/moldiff_MPF 取代)
moldiff_MPF_mod moldiff_MPF.F90 MPF 16 物种分子扩散;Wilke 扩散 + 涡流扩散 + Jeans 逃逸 + 可选质量守恒修正
moldiff_red_mod moldiff_red.F90 简化版 16 物种分子扩散;二元 dij 逐物种三对角 + Jeans 逃逸
molvis_mod molvis.F 分子黏性速度扩散
param_read_mod param_read.F EUVDAT/param_v5 参数表读取与 param_v4_h 广播初始化
param_read_e107_mod param_read_e107.F EUVDAT/param_v6 与 E107 太阳活动表读取;physiq_modcallthermos 初始化分支调用
param_v4_h param_v4_h.F90 热层共享状态模块;定义 ninter/nabs/freccen/jfotsout/rcoef 和产损缓存,提供 fill_data_thermos/allocate_param_thermos
paramfoto_compact_mod paramfoto_compact.F 热层光化学/离子化学积分与 phdisrate 光解/电离率转换
surfacearea_mod surfacearea.F 气溶胶表面积计算;按微物理/简单云两种方案求尘/冰颗粒总表面积密度
types_asis types_asis.F90 ASIS 反应索引类型与共享数组模块;photochemistry_mod::indice 分配填充,fill_matrix 消费
iono_h iono_h.F90 电离层头文件/模块

与其他目录的关系

相关目录 关系
../phymars/ phymars 调用 aeronomars 处理高层大气;共享 NLTE 模块
../../deftank/ 读取 callphys.def 配置(MCD 配置开启)
../../datadir/ 读取化学参数数据

调用关系

aeronomars 模块主要通过 phymars/physiq_mod.F 间接进入:

  1. physiq_mod.Fphotochem 分支中先调用 surfacearea,再调用 calchimcalchim_mod.F90 负责在线/离线光解、photochemistry、可选 chemthermosdeposition
  2. physiq_mod.Fcallthermos 分支中调用 thermospherethermosphere_mod.F 再按 calleuvcallconductcallmolviscallmoldiff 分别调用 EUV 加热、热传导、分子黏性和分子扩散。
  3. 分子扩散默认 moldiff_scheme=2(MPF 方案),可由 getin_p("moldiff_scheme", ...) 改为 legacy 方案。

源码入口依据:physiq_mod.F:2208-2223physiq_mod.F:2280-2288calchim_mod.F90:765-915thermosphere_mod.F:67-122

典型运行流程

  1. 初始化

    • 读取化学参数
    • 初始化化学示踪剂
    • 读取光解数据
  2. 时间循环中

    • 光化学计算(光解、化学反应)
    • 电离层计算(电离、复合)
    • 热层加热(EUV 吸收、NLTE 冷却)
    • 分子扩散(向上扩散)

复现要点

细节入口