dynphy_lonlat 动力-物理耦合目录

路径

LMDZ.MARS\libf\dynphy_lonlat

职责

dynphy_lonlat 是 LMDZ.MARS 的动力-物理耦合目录,负责将物理过程(phymars)与动力核心连接起来。该目录包含物理初始化、运行参数定义、初始场处理、时间积分方案等与动力框架交互的代码。

推断:该目录的名称 "dynphy_lonlat" 表示其职责是在 lon-lat 网格上进行动力(dyn)和物理(phy)的耦合。

目录内容

当前目录结构:

dynphy_lonlat/
└── phymars/          # 物理-动力耦合相关文件(21 个文件)

phymars/ 子目录文件

共 21 个文件,按功能分类:

文件 作用
入口与调用
callphysiq_mod.F90 动力-物理耦合适配器;call_physiq 校验 planet_type 后将动力核心状态转发给 physiq 并回写 tendency
iniphysiq_mod.F90 物理初始化主入口模块;依次调用 inigeomphy/phys_state_var_init/ini_fillgeom/conf_phys,由 newstart/nogcm/start2archive 调用
运行控制
defrun_new.F GCM 运行参数读取器;从 run.def 读取 30+ 参数写入公共模块,由 newstart/start2archive 调用
newstart.F 交互式初始场编辑器;从 start_archive.ncstart.nc/startfi.nc 读取状态,修改地形/压力/tracer/地下冰/坡面数后写 restart.ncrestartfi.nc
nogcm.F90 独立物理模式主程序;读取配置和 start.nc/理想场,初始化物理和输出后调用 leapfrog_nogcm
时间积分
leapfrog_nogcm.F 独立物理模式时间积分主循环;Matsuno + leapfrog 步进,牛顿松弛+水平混合替代动力核心,由 nogcm 调用
初始化
ini_archive.F start_archive NetCDF 文件头部写入;定义维度/坐标/垂直系数/地表场/控制参数,由 start2archive 调用
lect_start_archive.F start_archive NetCDF 读取与网格插值主例程;读取全部初始场并通过 interp_vert/interp_horiz/interp_line 重映射,由 newstart 调用
readhead_NC.F NetCDF 头信息读取器;读取控制表、经纬度、面积、地表位势和 aps/bps,为 xvik 初始化动力/物理状态
datareadnc.F 火星地表 NetCDF 数据读取与网格插值;从 surface.nc 读取 z0/反照率/热惯量/MOLA 地形/亚网格参数,由 newstart 调用
start2archive.F 起始场归档转换主程序;读取 start.nc/startfi.nc,初始化动力和物理网格后创建或追加 start_archive.nc
水平处理
avg_horiz_mod.F 水平空间平均插值;将高分辨率地表数据从源网格复合平均到目标 GCM 网格,由 datareadnc 调用
mvc_horiz_mod.F 最大值复合水平插值;将高分辨率地表数据取亚网格最大值映射到 GCM 网格,由 datareadnc 调用
grid_noro1.F 亚网格地形参数计算(无旋转网格);从 USN 高程数据计算 zmea/zstd/zsig/zgam/zthe,由 datareadnc 调用
scal_wind.F 风场位置转换;把 xus/xvs 相邻平均到 u/v 风点,由 lect_start_archive 调用
wind_scal.F 风场标量格点转换;将自然风/通量从 u/v 位置平均回标量格点,由 start2archive 调用
垂直处理
interp_vert.F 垂直坐标线性插值;将变量从旧混合 σ-p 层插值到新层,由 lect_start_archive 调用
subslope_mola.F90 MOLA 坡面分布重算模块;读取 mola64.nc 并按 GCM 网格统计 subslope_dist
其他
caldyn0.F lon-lat GCM 动力倾向计算;依次调 13 个 EXTERNAL 子过程,由 newstart 调用
xvik.F Viking/InSight 压力后处理程序;读取 diagfi 输出并生成站点压力、全球 CO2 压力诊断、日平均和谐波拟合
write_archive.F start_archive 变量追加器;按 dim 和变量名创建并写入 3D/2D/0D/土壤变量

关键模块

模块名 所在文件 作用
callphysiq_mod callphysiq_mod.F90 动力-物理耦合适配器;封装 call_physiq
iniphysiq_mod iniphysiq_mod.F90 物理初始化主入口;包装 iniphysiq 例程
newstart newstart.F 新建/修改 lon-lat GCM 初始状态并写出 restart 文件
lect_start_archive lect_start_archive.F 读取 start_archive 初始场
avg_horiz_mod avg_horiz_mod.F 水平空间平均插值;源网格地表数据分箱平均到目标 GCM 网格
mvc_horiz_mod mvc_horiz_mod.F 最大值复合水平插值;取亚网格最大值映射到 GCM 网格
scal_wind scal_wind.F 风场位置转换;插值风场到 u/v 点

与其他目录的关系

相关目录 关系
../phymars/ 被调用执行物理过程
../../deftank/ 读取 run.def、callphys.def 等配置
../../startfiles/ 读取初始状态文件
外部动力框架 提供时间步进、网格数据传输

典型运行流程

完整 GCM 模式

  1. 初始化

    • 调用 iniphysiq_mod 初始化物理
    • 调用 lect_start_archive 读取初始场
    • 调用 defrun_new 定义运行参数
  2. 时间循环

    • 动力核心推进风场、温度
    • 调用 callphysiq_mod 执行物理过程
    • 物理调用 phymars/physiq_mod.F 中的 physiq()

独立物理模式(nogcm)

当没有完整 GCM 动力核心时,可以使用 nogcm.F90

关键入口

例程 所在文件 作用
call_physiq callphysiq_mod.F90 动力-物理耦合适配入口
iniphysiq iniphysiq_mod.F90 物理初始化入口

复现要点

细节入口