readTracFiles_mod.f90

源码路径:LMDZ.COMMON-6.3\LMDZ.COMMON\libf\misc\readTracFiles_mod.f90。 Mars 运行参与度:条件经过;Mars tracer 配置、同位素和多相 tracer 可通过该 parser 层进入 COMMON。

文件定位

大型 tracer 描述文件解析器会把旧式 traceur.def、新式多 section tracer.def、以及 tracer_<component>.def 统一整理成 trac_type 数组,并补全 parent/generation、phase、metadata key、同位素族和兼容命名。

公开对象

类别 符号 作用
tracer 类型 trac_type, tracers 保存 name、component、parent、type、phase、generation、children/descendants、physics flag、isotope 索引。
主入口 testTracersFiles, readTracersFiles 检测并读取 tracer 文件。
关系处理 setGeneration, indexUpdate 计算 parent/child/descendant 和索引。
key 数据库 keys_type, addKey, delKey, getKey, getKeysDBase, setKeysDBase 管理 key/value metadata。
phase old_phases, known_phases, phases_names, phases_sep, nphases phase 识别和 suffix。
isotope isot_type, processIsotopes, isoSelect, isoFamilies isotope family、zone、phase、tagging tracer 和 iq 映射。

输入模式

模式 文件 位置 行为
old traceur.def 324 旧格式。
new multi-section tracer.def 325 单文件多 section。
component files tracer_*.def 319, 335 每个 component 一个文件。

第 183 行注释列出的核心 key:parentphaseshadvvadvtype

处理流程

testTracersFiles()
  -> fType = 1/2/3
readTracersFiles()
  -> old traceur.def: 逐行 removeComment/parse,处理 H2O/HNO3 兼容
  -> new tracer.def 或 tracer_<component>.def: feedDBase
  -> checkTracers: parent/orphan/generation/phase 检查
  -> expand phases
  -> sort + indexUpdate
  -> processIsotopes

关键位置:第 218-279 行处理 old 文件,第 279 行处理 new multi-section,第 431 行调用 removeComment,第 631-661 行检查未知 phase,第 720-786 行展开 phases。

兼容命名

H2O 旧名到新名:eau -> H216OHDO -> HDOO18 -> H218OO17 -> H217OHTO -> HTO。 REPROBUS HNO3:HNO3_g -> HNO3HNO3 -> HNO3tot

复现要点

  1. 先确认实际存在的 tracer 文件模式。
  2. 比较 tracer 顺序时必须在 indexUpdate 后比较。
  3. phase 报错时确认 known_phases='glsbfc'
  4. start/restart 兼容问题优先查 H2O isotope 和 HNO3 映射。

相关页面