例程索引

本页有两层入口:先列 routines/ 目录下的例程级专题页,再从 symbol-index 摘录所有 subroutine / function 记录,方便从导航栏直接反查具体例程。

例程专题页

页面 说明
co2condens-scavenging.md co2condens 中 CO2 凝结清除尘埃/水冰的局部路径。
co2condens.md CO2 地表/大气凝结主例程。
dust_coagulation_main.md 尘埃凝并主例程和 Smoluchowski 半隐式离散。
initracer-co2-tracers.md initracer 中 CO2/CO2 ice/CCNCO2 tracer 识别和一致性检查。
physiq-co2-cycle-callpoints.md physiq 中 CO2 云、CO2 凝结和 tendency 注入调用点。
physiq-water-cycle-callpoints.md physiq 中水云、沉降和水循环 tendency 注入调用点。
vdifc-water-surface-exchange.md vdifc 中水汽地表交换、地下冰/吸附水和坡面通量路径。

例程与函数反查表

本表共收录 314 条 subroutine / function 记录。内容摘录自 symbol-index,相关页面链接保持指向对应文件页、主题页或例程专题页。

例程/函数 类型 源码位置 说明 相关页面
conf_phys subroutine libf/phymars/conf_phys.F 读取 callphys.def/radia.def 风格配置,设置物理开关、气溶胶 scatterer 名称和长波参数,并执行配置依赖校验。 conf_phys, callkeys_mod
ini_scatterers subroutine libf/phymars/dimradmars_mod.F90 naerkind 分配 aerosol 和气溶胶光学查找表,并清空 name_iaer 等待 conf_phys 填充。 dimradmars_mod, conf_phys
callradite subroutine libf/phymars/callradite_mod.F 识别并校验 scatterer,准备气溶胶粒径/光学厚度,按子域调用 lwmainswmain,输出 LTE 层辐射加热率和地表/顶层通量。 callradite_mod, physiq_mod, radiation
lwmain subroutine libf/phymars/lwmain_mod.F 调用 lwb/lwu/lwxd/lwxn/lwxb/lwflux/lwi,输出长波冷却率、地表下行长波通量、顶层 OLR 和 netrad lwmain_mod, lwb, lwu, lwflux, lwi
SWMAIN / swmain subroutine libf/phymars/swmain_mod.F nlaylte 层内按两太阳谱段调用 SWR_FOUQUARTSWR_TOON,输出短波上下行通量和短波加热率。 swmain_mod, swr_fouquart, swr_toon
init_time subroutine libf/phymars/time_phylmdz_mod.F90 写入运行起止日、初始时刻、sol 长度和物理时间步,并用 nint(daysec/dtphys) 派生 steps_per_sol time_phylmdz_mod, phys_state_var_init_mod
writediagfi subroutine libf/phymars/writediagfi.F 传统 diagfi.nc 写入后端,按 dim=0/1/2/3 创建并追加诊断变量。 writediagfi, write_output_mod
writediagmicrofi subroutine libf/phymars/writediagmicrofi.F 传统微物理子步诊断写入后端,按 dim=0/1/2/3 创建并追加带 microtime 维的变量。 writediagmicrofi, writediagfi
wstats subroutine libf/phymars/wstats_mod.F90 istime=12 个日内时刻槽位累加诊断字段和平方和。 wstats_mod, physiq-water-cycle-callpoints, physiq-co2-cycle-callpoints
mkstats subroutine libf/phymars/wstats_mod.F90 运行结束时把 stats.nc 中的累加量原地转换为均值和标准差。 wstats_mod
initialize_xios_output subroutine libf/phymars/xios_output_mod.F90 设置 XIOS 轴、domain、calendar、起始时间并关闭定义阶段。 xios_output_mod, xios-config
update_xios_timestep subroutine libf/phymars/xios_output_mod.F90 设置当前 XIOS context,递增 time_it 并推进 calendar。 xios_output_mod
xios_is_active_field function libf/phymars/xios_output_mod.F90 查询 XIOS field 是否激活并广播结果;当前 write_output_mod 中活跃性检查被注释。 xios_output_mod, write_output_mod
convadj subroutine libf/phymars/convadj.F physiqcalladj 分支中混合不稳定层段,返回风、焓和 tracer 对流调整 tendency。 convadj
mucorr subroutine libf/phymars/mucorr.F 根据太阳赤纬和纬度计算日平均等效太阳角 mu0 与日照比例 fractphysiqdiurnal=.false. 时调用。 mucorr, radiation
orbite subroutine libf/phymars/orbite.F zls/plsplanete_h 轨道参数和倾角计算 dist_soldeclinphysiqcallrad 分支调用。 orbite, radiation
lsp2solp subroutine libf/phymars/planete_h.F90 由近日点太阳经度反推近日点 sol,并同步重算 e_elips planete_h
iniorbit subroutine libf/phymars/planete_h.F90 根据 aphelie/periheli/year_day/peri_day 计算 e_elips/p_elips/lsperi,供 solarlongorbite 读取。 planete_h, orbite
solarlong subroutine libf/phymars/solarlong.F 由 sol 日期、近日点日期和椭圆轨道参数计算弧度制太阳经度 Ls solarlong, orbite
NIR_leedat subroutine libf/phymars/nirdata.F90 datadir/NIRcorrection_feb2011.dat 读取 42 层修正表,并在非 MESOSCALE 路径广播表数组。 nirdata
MZESC110 subroutine libf/phymars/nlte_calc.F 在 CTS 网格上计算 110 跃迁 escape probability 光学厚度 taustar11_cts nlte_calc, nlte_aux
MZTUD110 / MZCUD110 subroutine libf/phymars/nlte_calc.F 计算 110 主带 tau/tauinf 并转换为 Curtis matrix c110 和边界向量 vc110 nlte_calc
MZMC121 / MZTUD121 / MZCUD121 subroutine libf/phymars/nlte_calc.F 计算并合成 121 热带三个子带的 Curtis matrix c121 和边界向量 vc121 nlte_calc
MZESC121 / MZESC121sub subroutine libf/phymars/nlte_calc.F 计算并归一化 121 热带三个子带的 escape probability taustar12 nlte_calc
MZTVC121 / MZTVC121sub subroutine libf/phymars/nlte_calc.F 计算并合成 121 热带边界向量 vc121 nlte_calc
nlte_setup subroutine libf/phymars/nlte_setup.F 读取 NLTEDAT 谱线、Tstar/VC 和历史谱线表,初始化 NLTE 共享表状态。 nlte_setup, nlte_commons_h
LeeHISTOGRMS subroutine libf/phymars/nlte_setup.F 逐个设置 hid26-1..4.dat 历史谱线表路径,并调用 rhist_03 读入缓存。 nlte_setup, nlte_aux
GETK_dlvr11 subroutine libf/phymars/nlte_setup.F 按温度计算 k19/k20/k21/k33 碰撞速率族,供 nlte_tcool_mod.F 的 NLTE cooling-time 计算使用。 nlte_setup
nlte_tcool subroutine libf/phymars/nlte_tcool_mod.F 从 GCM 压强、温度、高度和 CO2/N2/CO/O 剖面计算 NLTE CO2 15 微米冷却率,输出 K/day。 nlte_tcool_mod
NLTEdlvr11_ZGRID subroutine libf/phymars/nlte_tcool_mod.F 根据 Pbottom_atm/Ptop_atm 构造 NLTE 主网格、细网格、CTS 网格和 CTS 细网格,并写入 nlte_commons_h nlte_tcool_mod
NLTEdlvr11_CZALU subroutine libf/phymars/nlte_tcool_mod.F 组装并求解 CO2 同位素振动态耦合矩阵,生成 hr110/hr210/hr310/hr410/hr121 冷却率。 nlte_tcool_mod
NLTEdlvr11_FB626CTS subroutine libf/phymars/nlte_tcool_mod.F 在 CTS 延伸网格上计算 626 组分高层 hr110CTS,用于与主网格冷却率拼接。 nlte_tcool_mod
hrkday_convert function libf/phymars/nlte_tcool_mod.F 使用 daysecn_avog、平均热容和平均分子量把体积冷却功率换算为 K/day 因子。 nlte_tcool_mod
ERRORS subroutine libf/phymars/nlte_tcool_mod.F 打印 NLTE 错误编号对应的诊断并调用 abort_physic("nlte_tcool",...) 终止;也被 nlte_calc.F 复用。 nlte_tcool_mod, nlte_calc
nltecool subroutine libf/phymars/nltecool.F 从 GCM 压强、温度和可选动态 tracer 成分计算 NLTE CO2 15 微米温度倾向,输出 K/s。 nltecool
interp1 / interp3 subroutine libf/phymars/nltecool.F 将本文件内置 escape function 与 VMR 压强表线性插值到 GCM 层压强。 nltecool
nlthermeq subroutine libf/phymars/nlthermeq.F 根据 pmintecallnlte 和当前压强剖面确定 LTE 辐射计算到的层索引 nlaylte nlthermeq, nlteparams_h, blendrad
planckdp function libf/phymars/nlte_aux.F NLTE cooling-time 路径使用的双精度 Planck 辅助函数。 nlte_aux
rhist_03 subroutine libf/phymars/nlte_aux.F 读取 NLTE 历史谱线表 hisfile,检查 nbox_max,并在非 MESOSCALE 路径广播缓存数组。 nlte_aux
gethist_03 subroutine libf/phymars/nlte_aux.F 把已缓存的历史谱线表恢复为当前 thist/no/sk1/xls1/xld1 工作数组。 nlte_aux
interstrhunt / intershphunt subroutine libf/phymars/nlte_aux.F 按温度历史表插值 NLTE 谱线强度、self Lorentz 线宽和 Doppler 线宽。 nlte_aux
intzhunt / intzhunt_cts subroutine libf/phymars/nlte_aux.F 在高度网格上插值 CO2、压力、混合比和温度等 NLTE 状态量。 nlte_aux
LUdec subroutine libf/phymars/nlte_aux.F 调用 LU 分解和回代,求解 NLTE cooling-time 相关矩阵方程。 nlte_aux
flusv subroutine libf/phymars/flusv.F 组装并求解双流红外散射边值问题,返回层界向上/向下通量;lwdiff 当前以 nsf=0 调用。 flusv
sys3v subroutine libf/phymars/flusv.F flusv 内部使用的向量化三对角线性系统求解器。 flusv
lwb subroutine libf/phymars/lwb.F 按谱带多项式系数计算 bsurf/btop/blev/blay/dblay/dbsublay,供 lwmain 后续 lwfluxlwi 使用。 lwb
lwdiff subroutine libf/phymars/lwdiff.F iir=3:nir 带外谱段构造双倍扩散子层,调用 flusv 并把上下行通量回填给 lwflux lwdiff, flusv
lwflux subroutine libf/phymars/lwflux.F 合并 CO2 带内净交换率与 lwdiff 带外扩散通量,输出 netradcoolratefluxgroundfluxtop lwflux, lwdiff
lwi subroutine libf/phymars/lwi.F netraddblaydp 和 CO2 净交换率表组装三对角系统,求解半隐式长波冷却率 newcoolrate lwi
lwtt subroutine libf/phymars/lwtt.F 用 Voigt 等效吸收量、Padé 近似和 Horner 算法计算 CO2 长波透过率 tr lwtt
ini_yomlw_h subroutine libf/phymars/yomlw_h.F90 分配 xi/xi_ground/xi_emis 并初始化 xp/at/bt/ga/gb/cst_voigt 固定系数表。 yomlw_h, phys_state_var_init_mod
end_yomlw_h subroutine libf/phymars/yomlw_h.F90 释放长波交换率缓存数组,供物理状态重初始化前调用。 yomlw_h, phys_state_var_init_mod
lwu subroutine libf/phymars/lwu.F 生成 CO2 累积吸收量 co2_u/co2_up、气溶胶透过率 aer_t 和总单散射参数 tautotal/omegtotal/gtotal lwu
lwxb subroutine libf/phymars/lwxb.F 计算地面/空间边界相关传输函数差分,并把边界净交换率写入 yomlw_h::xi lwxb, lwtt
lwxd subroutine libf/phymars/lwxd.F 计算非相邻真实层对的传输函数差分,并把远距离净交换率写入 yomlw_h::xi lwxd, lwtt
lwxn subroutine libf/phymars/lwxn.F 用可配置子层积分计算相邻层净交换率,并写入 yomlw_h::xixi_ground lwxn, lwtt
aeroptproperties subroutine libf/phymars/aeroptproperties.F callraditeaeropacity 前调用,输出 QVISsQREF3d/omegaVIS3d/gVIS3dQIRsQREF3d/omegaIR3d/gIR3dQREFvis3d/QREFir3d aeroptproperties, aeropacity_mod
aeropacity subroutine libf/phymars/aeropacity_mod.F callradite 调用,按 iaervar 取场景柱厚度,逐种气溶胶逐层算可见光光学厚度 aerosol/柱厚度 tau/taucloudtes,产出 dso 诊断并调 compute_dustscaling aeropacity_mod, calcstormfract_mod
compute_dtau subroutine libf/phymars/compute_dtau_mod.F90 按每日 t_scenario_sol 更新 dtau,并用 coeff_injection/(daysec*(tf-ti)) 计算地表尘埃注入速率 dustliftday compute_dtau_mod
read_dust_scenario subroutine libf/phymars/read_dust_scenario_mod.F90 zday、GCM 经纬度和 IRtoVIScoef 输出参考气压处的可见光场景柱厚度 tau_pref_scenario read_dust_scenario_mod, compute_dtau_mod, dust_rad_adjust_mod
compute_dust_rad_adjust subroutine libf/phymars/dust_rad_adjust_mod.F90 读取次日场景柱厚度,按 tau_pref_scenario_next*pplev/odpref/taudust 生成目标比并在两日间线性插值。 dust_rad_adjust_mod, dust_scaling_mod
compute_dustscaling subroutine libf/phymars/dust_scaling_mod.F90 aeropacity 调用,计算 taudust、更新 tauscalingdust_rad_adjust 并就地缩放 aerosol dust_scaling_mod, aeropacity_mod
dust_windstress_lift subroutine libf/phymars/dust_windstress_lift.F90 windstress_lift_scheme=0 下用摩擦速度阈值和 White(1979) 水平通量计算 dqslift,CO2 冰覆盖时不注入。 dust_windstress_lift
dustdevil subroutine libf/phymars/dustdevil.F90 physiqcallddevil 下调用,用固定 wind=15 的感热通量估 devila,生成 pdqs_dev 和边界层内 pdqdev dustdevil, dust_param_mod
geticecover subroutine libf/phymars/geticecover.F90 Ls、经度、纬度逐点返回 0/1 极冠覆盖;physiqtituscap 分支调用它覆盖 qsurf_tmp(:,igcm_co2) geticecover
growthrate subroutine libf/phymars/growthrate.F 计算热阻、扩散阻、Knudsen 修正和水汽扩散系数,输出 resimprovedclouds 隐式冰增长公式使用。 growthrate
nuclea subroutine libf/phymars/nuclea.F 按水汽分压、温度、饱和比和各尘核 bin 数量计算水冰成核率 nucrate,由 improvedclouds 用于 dust->CCN 转换。 nuclea, improvedclouds_mod
def_var subroutine libf/phymars/def_var.F90 传统 NetCDF 变量定义辅助例程;调用 NF_REDEFNF_DEF_VARNF_PUT_ATT_TEXTNF_ENDDEF 创建 NF_FLOAT 变量并写 title/units 属性。 def_var, writediagsoil
Init_dimphy subroutine libf/phymars/dimphy.F90 用调用方传入的 klon0/klev0 初始化本地列数和垂直层数派生维度;1D testphys 路径调用 init_dimphy(1,nlayer) dimphy
watercloud subroutine libf/phymars/watercloud_mod.F 水冰云形成主例程;按 microphys 分派 simpleclouds/improvedclouds,汇总 tendency、半径和沉降参数。 watercloud_mod, water-cycle
ini_watercloud_mod subroutine libf/phymars/watercloud_mod.F 分配 zdqcloud / zdqscloud watercloud_mod
end_watercloud_mod subroutine libf/phymars/watercloud_mod.F 释放 zdqcloud / zdqscloud watercloud_mod
simpleclouds subroutine libf/phymars/simpleclouds_mod.F microphys=.false. 时由 watercloud 调用;做瞬时饱和调整,无显式成核动力学。 simpleclouds_mod, watercloud_mod
improvedclouds subroutine libf/phymars/improvedclouds_mod.F90 水冰成核、冰增长/升华、尘核释放、HDO 分馏主例程。 improvedclouds_mod
adapt_imicro subroutine libf/phymars/improvedclouds_mod.F90 按可凝结量估算水云微物理自适应子步数。 improvedclouds_mod
watersat subroutine libf/phymars/watersat_mod.F90 给定温度和压力计算水饱和质量混合比。 water-saturation-helpers
tcondwater subroutine libf/phymars/tcondwater.F90 给定压力和水质量混合比反推水凝结温度。 water-saturation-helpers
soilwater subroutine libf/phymars/soilwater.F90 地下水汽、地下冰和吸附水的一维吸附-扩散-相变求解器;由 vdifc 水汽段调用。 soilwater, vdifc-water-surface-exchange, water-cycle
waterice_tifeedback subroutine libf/phymars/waterice_tifeedback_mod.F90 由地表水冰量或孔隙冰填充率计算新的土壤热惯量廓线。 waterice_tifeedback_mod
hdo_surfex subroutine libf/phymars/hdo_surfex_mod.F 基于 H2O 通量和同位素分馏计算 HDO 地表通量;由 vdifc 调用。 hdo_surfex_mod, vdifc-water-surface-exchange
iniwrite subroutine libf/phymars/iniwrite.F 初始化传统 diagfi / diagmicrofi NetCDF 文件的维度、坐标变量、控制参数和固定字段。 iniwrite, def_var
interp_line subroutine libf/phymars/interp_line.F 在有序源数据点之间进行线性插值,超出范围时使用最近边界值;由 soil_settingslect_start_archive 调用。 interp_line, soil_settings
open_startphy subroutine libf/phymars/iostart.F90 打开 startfi.nc 初始场文件。 iostart
close_startphy subroutine libf/phymars/iostart.F90 关闭 startfi.nc 文件。 iostart
open_restartphy subroutine libf/phymars/iostart.F90 创建或打开 restartfi.nc 重启文件。 iostart
close_restartphy subroutine libf/phymars/iostart.F90 关闭 restartfi.nc 文件。 iostart
atke_compute_km_kh subroutine libf/phymars/lmdz_atke_exchange_coeff.F90 计算湍流 Km/Kh 交换系数和 TKE 演化。 lmdz_atke_exchange_coeff
atke_vdiff_tke subroutine libf/phymars/lmdz_atke_exchange_coeff.F90 TKE 的垂直扩散(隐式三对角求解)。 lmdz_atke_exchange_coeff
atke_ini subroutine libf/phymars/lmdz_atke_turbulence_ini.F90 读取 ATKE 配置键、缓存行星常数和黏性系数,并派生稳定度函数参数。 lmdz_atke_turbulence_ini
call_atke subroutine libf/phymars/lmdz_call_atke.F90 ATKE 主调用例程,协调核心计算和可选的显式风切变预测。 lmdz_call_atke
atke_explicit_prediction subroutine libf/phymars/lmdz_call_atke.F90 显式风切变预测,用于前向-后向时间步进。 lmdz_call_atke
co2cloud subroutine libf/phymars/co2cloud_mod.F90 CO2 云形成主例程;调用 improvedCO2clouds,在内部处理 CO2 cloud tracer 沉降与非负保护。 co2cloud_mod, physiq-co2-cycle-callpoints
improvedCO2clouds subroutine libf/phymars/improvedco2clouds_mod.F90 CO2 冰成核、增长/升华和 CCN 释放主例程。 improvedco2clouds_mod
tcondco2 subroutine libf/phymars/tcondco2.F90 给定压力和 CO2 质量混合比反推 CO2 凝结温度。 co2-saturation-helpers, co2-cycle
co2condens subroutine libf/phymars/co2condens_mod.F CO2 地表/大气凝结主调度;处理表压变化、地表 CO2 冰和 sigma 层校正。 co2condens, co2-cycle
scavenging_by_co2 subroutine libf/phymars/co2condens_mod.F CO2 凝结清除尘埃/水冰的 section 例程。 co2condens-scavenging, co2condens
vl1d subroutine libf/phymars/co2condens_mod.F co2condens 内部 Van Leer 1D 垂直输送算子。 co2condens
co2snow subroutine libf/phymars/co2snow.F 根据 CO2 雪沉积修正地表红外发射率。 co2snow, co2condens
albedocaps subroutine libf/phymars/albedocaps.F90 根据裸地、多年 CO2 冰和当前 CO2 霜状态设置 psolaralbemisref albedocaps, co2condens
read_TES_icecap_albedo subroutine libf/phymars/albedocaps.F90 读取南/北半球 TES 极冠反照率 NetCDF 表并广播。 albedocaps
TES_icecap_albedo subroutine libf/phymars/albedocaps.F90 按 Ls、经度、纬度对 TES 极冠反照率表插值,并施加半球系数与上限。 albedocaps
density_co2_ice function libf/phymars/density_co2_ice.F90 用温度计算 CO2 冰密度。 density_co2_ice, co2-cycle
nucleaco2 subroutine libf/phymars/nucleaco2.F90 计算 CO2 冰异质成核率;尘埃、流星尘、水冰核路径均会调用。 nucleaco2, improvedco2clouds_mod
massflowrateco2 function libf/phymars/massflowrateco2.F90 计算单个 CO2 冰粒质量增长/升华通量。 massflowrateco2, improvedco2clouds_mod
callsedim subroutine libf/phymars/callsedim_mod.F 按 tracer 类型调度重力沉降;水冰沉降通过此路径进入 newsedim callsedim_mod, dust-cycle, water-cycle
newsedim subroutine libf/phymars/newsedim_mod.F 计算 Stokes + Cunningham 下落速度,调用 vlz_fi 完成垂直输运。 newsedim_mod, callsedim_mod
vlz_fi subroutine libf/phymars/vlz_fi.F 已知界面输运质量 w 后,更新 tracer 混合比并返回通量 wq vlz_fi, newsedim_mod
updaterice_micro subroutine libf/phymars/updaterad.F90 水冰微物理活跃时,由冰/CCN 质量数浓度更新水冰半径和云密度。 updaterad, improvedclouds_mod
updaterice_microco2 subroutine libf/phymars/updaterad.F90 CO2 冰微物理半径与云密度反演。 updaterad, co2cloud_mod
updaterice_typ subroutine libf/phymars/updaterad.F90 微物理关闭时,用典型廓线推算水冰半径。 updaterad, simpleclouds_mod
updaterdust subroutine libf/phymars/updaterad.F90 由尘埃质量/数浓度更新尘埃几何平均半径。 updaterad, dust-cycle
updaterccn subroutine libf/phymars/updaterad.F90 水云微物理用 CCN 质量平均半径反演。 updaterad, improvedclouds_mod
updaterccnCO2 subroutine libf/phymars/updaterad.F90 CO2 云微物理用 CCN 半径反演。 updaterad, improvedco2clouds_mod
updatereffrad subroutine libf/phymars/updatereffrad_mod.F callradite 调用,更新尘埃、水冰、CO2 冰等气溶胶的辐射有效半径和有效方差。 updatereffrad_mod, aeroptproperties
dust_coagulation_main subroutine libf/phymars/dust_coagulation_mod.F90 尘埃凝并主例程;已有例程页。 dust_coagulation_main, dust_coagulation_mod
calcstormfract subroutine libf/phymars/calcstormfract_mod.F90 根据 stormdust_mass 垂直廓线计算 totstormfract,供辐射和 rocket dust storm 输运使用。 calcstormfract_mod, rocketduststorm_mod
call_dayperi subroutine libf/phymars/call_dayperi.F 根据近日点太阳经度、偏心率和火星年长度计算 peri_day call_dayperi, testphys1d-config
disvert_noterre subroutine libf/phymars/dyn1d/disvert_noterre.F -> LMDZ.COMMON/libf/dyn3d_common/disvert_noterre.F 非地球垂直离散构造例程;读取 esasig.defz2sig.def,按 hybrid 生成 ap/bp/aps/bps/presnivs/pseudoalt disvert_noterre
sig_hybrid subroutine libf/phymars/dyn1d/disvert_noterre.F -> LMDZ.COMMON/libf/dyn3d_common/disvert_noterre.F 从目标 sigma 位置反解 hybrid newsig 的辅助迭代例程。 disvert_noterre
infotrac_init subroutine libf/phymars/dyn1d/infotrac.F90 -> LMDZ.COMMON/libf/dyn3d_common/infotrac.F90 公共 3D tracer 初始化例程;读取 traceur.def/modern planetary 格式并构造 tname/ttext/iadv/niadv infotrac
init_testphys1d subroutine libf/phymars/dyn1d/init_testphys1d_mod.F90 读取配置、tracer、restart/profile,初始化时间、垂直坐标、几何、坡面、地表、土壤、化学和水 profile 控制状态。 init_testphys1d_mod, testphys1d-config
init_interface_dyn_phys subroutine libf/phymars/dyn1d/mod_interface_dyn_phys.F90 -> LMDZ.COMMON/libf/dynphy_lonlat/mod_interface_dyn_phys.F90 初始化 index_i/index_j;非 CPP_PARA 时为空例程。 mod_interface_dyn_phys, init_testphys1d_mod
init_parallel subroutine libf/phymars/dyn1d/parallel_lmdz.F90 -> LMDZ.COMMON/libf/dyn3dpar/parallel_lmdz.F90 初始化 COMM_LMDZ 上的 rank/size、纬向带分配、输出文件、极点标志和 OpenMP chunk;testphys1d 直接调用。 parallel_lmdz, mod_const_mpi
exchange_hallo subroutine libf/phymars/dyn1d/parallel_lmdz.F90 -> LMDZ.COMMON/libf/dyn3dpar/parallel_lmdz.F90 up/down halo 行数和极点标志在相邻 MPI rank 之间非阻塞交换边界行。 parallel_lmdz
profile_temp subroutine libf/phymars/dyn1d/profile_temp_mod.F90 ichoice/tref/isin/pic/largeur/hauteur 生成温度廓线,可读取 profile_temp 文件并写出 profile_temp.out profile_temp_mod, init_testphys1d_mod
read_profile subroutine libf/phymars/dyn1d/read_profile_mod.F90 读取 profile_<tracer> 文件并填充 qsurf/q,缺文件时处理 CO2、HDO 和 dust 默认初始化。 read_profile_mod, init_testphys1d_mod
writerestart1D subroutine libf/phymars/dyn1d/writerestart1D_mod.F90 覆盖写出 restart1D.txt,记录 ps、逐 tracer profile、u/vteta writerestart1D_mod, testphys1d
calldrag_noro subroutine libf/phymars/calldrag_noro_mod.F90 zstd 阈值筛选格点,分子域调用 drag_noro 并返回地形 GW tendency。 calldrag_noro_mod, testphys1d-config
drag_noro subroutine libf/phymars/drag_noro_mod.F90 翻转垂直层序并调用 ORODRAG,把返回的温度/风 tendency 转为每步增量并累加低层 stress。 drag_noro_mod, calldrag_noro_mod
SUGWD subroutine libf/phymars/sugwd.F90 根据半层 sigma 坐标初始化 yoegwd_h 中的 NKTOPG、drag 系数、Richardson 数阈值和安全下限。 sugwd, orosetup, gwstress_mod, gwprofil_mod
ini_surfdat_h subroutine libf/phymars/surfdat_h.F90 ngrid,nq,nslope 分配完整地表共享数组。 surfdat_h
end_surfdat_h subroutine libf/phymars/surfdat_h.F90 释放完整地表共享数组。 surfdat_h
ini_surfdat_h_slope_var subroutine libf/phymars/surfdat_h.F90 只分配依赖坡面维度的地表数组。 surfdat_h
end_surfdat_h_slope_var subroutine libf/phymars/surfdat_h.F90 只释放依赖坡面维度的地表数组。 surfdat_h
surfini subroutine libf/phymars/surfini_mod.F90 初始化 watercaptag/dryness 并按配置定位水冰帽。 surfini_mod
locate_watercaptag subroutine libf/phymars/surfini_mod.F90 用手工经纬度边界为任意分辨率定位水冰帽。 surfini_mod
SWR_FOUQUART subroutine libf/phymars/swr_fouquart.F 合成 aerosol/Rayleigh 光学参数并计算短波上下通量。 swr_fouquart, cvmgt
SWR_TOON subroutine libf/phymars/swr_toon.F 合成 aerosol/Rayleigh 光学参数并调用 GFLUXV 计算短波通量。 swr_toon, cvmgt
GFLUXV subroutine libf/phymars/swr_toon.F 单列 delta-Eddington / Meador-Weaver two-stream 通量求解器。 swr_toon
swrayleigh subroutine libf/phymars/swrayleigh.F CRAY 多项式和修正太阳天顶角余弦计算 prayl;当前 Mars 压力缩放行被注释。 swrayleigh, swr_fouquart, swr_toon
tabfi subroutine libf/phymars/tabfi.F controle 数组或默认路径初始化物理常数、轨道量和地表参数,并调用 iniorbit tabfi, planete_h
ORODRAG subroutine libf/phymars/orodrag_mod.F90 调用 OROSETUP/GWSTRESS/GWPROFIL 后,把 ZTAU stress profile 和阻塞层 wake drag 转换为 U/V/T tendency。 orodrag_mod, gwstress_mod, gwprofil_mod
OROSETUP subroutine libf/phymars/orosetup.F90 计算 ORODRAG 所需的地形高度层索引、低层风、稳定度、密度、方向投影和阻塞层参数。 orosetup, orodrag_mod
GWPROFIL subroutine libf/phymars/gwprofil_mod.F90 ORODRAG 内根据临界层、波破碎判据和阻塞层插值改写 ZTAU 半层应力廓线。 gwprofil_mod
GWSTRESS subroutine libf/phymars/gwstress_mod.F90 ORODRAG 内按方程 (17) 计算底层半层 ZTAU(:,nlayer+1) 的地形重力波应力。 gwstress_mod
NONORO_GWD_MIX subroutine libf/phymars/nonoro_gwd_mix_mod.F90 计算非地形重力波诱导的温度、纬向风和 tracer 混合 tendency;当前源码将经向风混合输出置零。 nonoro_gwd_mix_mod
ini_nonoro_gwd_mix / end_nonoro_gwd_mix subroutine libf/phymars/nonoro_gwd_mix_mod.F90 分配和释放 nonoro_gwd_mix_mod 的保存数组。 nonoro_gwd_mix_mod
NONORO_GWD_RAN subroutine libf/phymars/nonoro_gwd_ran_mod.F90 构造离散随机非地形 GW、推进 EP flux,并返回 U/V 动量拖曳 tendency。 nonoro_gwd_ran_mod
ini_nonoro_gwd_ran / end_nonoro_gwd_ran subroutine libf/phymars/nonoro_gwd_ran_mod.F90 分配和释放 nonoro_gwd_ran_mod 的保存数组。 nonoro_gwd_ran_mod
calltherm_interface subroutine libf/phymars/calltherm_interface_mod.F90 calltherm 开启时准备热羽流输入、执行子步长、返回热羽流 tendency 和 wstar/hfmax calltherm_interface_mod, config-system
thermcell_main_mars subroutine libf/phymars/thermcell_main_mars.F90 在热羽流子步长内计算源层、羽流高度、质量通量、温度/CO2 tendency 和诊断通量。 thermcell_main_mars, thermcell_dqup, comtherm_h
thermcell_dqup subroutine libf/phymars/thermcell_dqup.F90 按热羽流质量通量、夹卷和退卷通量计算标量 dq/dt thermcell_dqup, comtherm_h
check_physics_fields subroutine libf/phymars/check_fields.F90 检查温度、风、表面压力和 tracer,发现 NaN/越界值后中止。 check_fields, tracer_mod
check_temperature subroutine libf/phymars/check_fields.F90 检查温度 NaN 和 50-350 K 默认范围。 check_fields
check_winds subroutine libf/phymars/check_fields.F90 检查 u/v NaN 和 500 m/s 默认绝对值上限。 check_fields
check_ps subroutine libf/phymars/check_fields.F90 检查表面压力 NaN 和 80-2000 Pa 默认范围。 check_fields
check_tracers subroutine libf/phymars/check_fields.F90 检查 tracer NaN,并对负 tracer 混合比打印警告。 check_fields, tracer_mod
ini_conc_mod subroutine libf/phymars/conc_mod.F90 ngrid,nlayer 分配 mmean/Akknew/cpnew/rnew conc_mod
end_conc_mod subroutine libf/phymars/conc_mod.F90 释放已分配的 mmean/Akknew/cpnew/rnew conc_mod
init_r_cp_mu subroutine libf/phymars/conc_mod.F90 comcstfi_h:r/cpp/mugaz 初始化常数背景 rnew/cpnew/mmean conc_mod, comcstfi_h
update_r_cp_mu_ak subroutine libf/phymars/conc_mod.F90 photochemcallthermos 路径中,按 tracer 组成更新 mmean/rnew/cpnew/Akknew conc_mod, tracer_mod
conduction subroutine libf/aeronomars/conduction.F conc_mod::Akknew/cpnew/rnew 与温度依赖热导率 k=Akk*T**skkskk=0.69)求解热传导倾向 zdtconduc,由 thermosphere_modcallconduct 下调用。 conduction, conc_mod, callkeys_mod
molvis subroutine libf/aeronomars/molvis.F 对单个风速分量求解垂直分子黏性扩散;thermosphere_modcallmolvis 下分别用于 pupv molvis
param_read subroutine libf/aeronomars/param_read.F master-only 读取 coln.datj*varflujo.datefdis_inter.dat,写入柱积分、光吸收和解离/电离效率表并广播;当前源码未找到活跃调用点。 param_read
param_read_e107 subroutine libf/aeronomars/param_read_e107.F 读取 EUVDAT/param_v6、E107 拟合/年表和 CO2/O2/N2/CO 电离分支比,写入并广播 param_v4_h 热层参数。 param_read_e107, datafile_mod
fill_data_thermos subroutine libf/aeronomars/param_v4_h.F90 填入内置吸收截面、36 个代表波长 freccen 和 195/295 K CO2 截面表;由 physiq_mod 热层初始化段调用。 param_v4_h, physiq_mod
allocate_param_thermos subroutine libf/aeronomars/param_v4_h.F90 nlayer 分配 jfotsout/jdistot/jion 和热层化学 P*/L*/tmin* 缓存;由 physiq_mod 调用。 param_v4_h, physiq_mod
calchim subroutine libf/aeronomars/calchim_mod.F90 firstcall 识别化学 tracer 和初始化光解/热层速率;逐列调用 photochemistryperosat、可选 chemthermos/deposition,并把更新后的 mole fraction 转回 dqchim calchim_mod, photochemistry_mod, perosat, chemistrydata, chemthermos_readini, deposition, iono_h
ini_calchim_mod subroutine libf/aeronomars/calchim_mod.F90 ngrid,nlayer,nq 分配并清零 zdqchim(ngrid,nlayer,nq)zdqschim(ngrid,nq) calchim_mod, phys_state_var_init_mod
end_calchim_mod subroutine libf/aeronomars/calchim_mod.F90 释放已分配的 zdqchim/zdqschim 化学倾向缓存。 calchim_mod, phys_state_var_init_mod
read_phototable subroutine libf/aeronomars/chemistrydata.F90 datadir(默认 jmars.20140930phototable 键可覆盖)读取光解查找表,master 读后 bcast;由 calchim_mod firstcall 在 photochem .and. .not. jonline 下调用。 chemistrydata, datafile_mod
photolysis subroutine libf/aeronomars/photolysis.F90 jonline=false 时由 photochemistry 调用;按温度、SZA、CO2 柱、O3 柱和尘埃 5 维插值 jphot,输出基础 v_phot photolysis, photochemistry_mod, chemistrydata
init_photolysis subroutine libf/aeronomars/photolysis_mod.F90 在线光解初始化入口;建立低分辨率波长网格,读取太阳通量、截面、量子产额和反照率。 photolysis_mod, calchim_mod
photolysis_online subroutine libf/aeronomars/photolysis_online.F jonline=true 时由 photochemistry 调用;逐波长做两流辐射传输,累加 15 个光解率到 v_phot photolysis_online, photochemistry_mod, photolysis_mod
surfacearea subroutine libf/aeronomars/surfacearea.F 按微物理/简单云两种方案计算尘/冰颗粒总表面积密度 surfdust/surfice(m2/m3),由 physiq_modphotochem 路径中调用。 surfacearea, physiq_mod, calchim_mod
thermosphere subroutine libf/aeronomars/thermosphere_mod.F physiq_modcallthermos 下调用;依次执行 EUV 加热、热传导、黏性扩散和分子扩散,累加 tendency 并输出 H/H₂/D 逃逸通量。 thermosphere_mod, physiq_mod
avg_horiz subroutine libf/dynphy_lonlat/phymars/avg_horiz_mod.F 将源网格地表数据按空间搜索分箱平均到目标 GCM 网格;由 datareadnc 调用。 avg_horiz_mod
caldyn0 subroutine libf/dynphy_lonlat/phymars/caldyn0.F lon-lat GCM 动力倾向计算;依次调 13 个 EXTERNAL 子过程(covcont/pression/psextbar/massdair/massbar/flumass/convmass/vitvert/tourpot/enercin/bernoui/sortvarc0 等),由 newstart 调用。 caldyn0
call_physiq subroutine libf/dynphy_lonlat/phymars/callphysiq_mod.F90 校验 planet_type 后将动力核心状态数组转发给 physiq,回写风/温度/示踪剂/地表气压 tendency。 callphysiq_mod
datareadnc subroutine libf/dynphy_lonlat/phymars/datareadnc.F surface.nc 读取地表数据(z0/反照率/热惯量/MOLA 地形/亚网格参数),经 interp_horiz/avg_horiz/mvc_horiz 插值到 GCM 网格,由 newstart 调用。 datareadnc
defrun_new subroutine libf/dynphy_lonlat/phymars/defrun_new.F run.def 读取 30+ 运行参数(时间步进/耗散/zoom/海绵层/物理频率等)写入公共模块变量,由 newstartstart2archive 调用。 defrun_new
grid_noro1 subroutine libf/dynphy_lonlat/phymars/grid_noro1.F 从 USN 高分辨率高程数据计算亚网格地形参数(zmea/zstd/zsig/zgam/zthe),由 datareadnc 调用。 grid_noro1
ini_archive subroutine libf/dynphy_lonlat/phymars/ini_archive.F 写入 start_archive NetCDF 文件头部:11 个维度、坐标/垂直系数/土壤/地表/坡面等静态变量和 100 元素控制参数表,由 start2archive 调用。 ini_archive
iniphysiq subroutine libf/dynphy_lonlat/phymars/iniphysiq_mod.F90 物理初始化入口;调用 inigeomphy/phys_state_var_init/ini_fillgeom/conf_phys,由 newstart/nogcm/start2archive 调用。 iniphysiq_mod
interp_vert subroutine libf/dynphy_lonlat/phymars/interp_vert.F 垂直坐标线性插值;将变量从旧混合 σ-p 垂直层插值到新垂直层,由 lect_start_archive 调用。 interp_vert
leapfrog_nogcm subroutine libf/dynphy_lonlat/phymars/leapfrog_nogcm.F 独立物理模式时间积分主循环;Matsuno + leapfrog 步进,牛顿松弛替代动力核心,由 nogcm 调用。 leapfrog_nogcm
globaverage2d function libf/dynphy_lonlat/phymars/leapfrog_nogcm.F 面积加权全局二维平均(内部辅助函数)。 leapfrog_nogcm
lect_start_archive subroutine libf/dynphy_lonlat/phymars/lect_start_archive.F 读取 start_archive NetCDF 并通过 interp_vert/interp_horiz/interp_line 重映射到当前网格,由 newstart 调用。 lect_start_archive
mvc_horiz subroutine libf/dynphy_lonlat/phymars/mvc_horiz_mod.F 最大值复合水平插值;将高分辨率源数据取亚网格最大值映射到 GCM 目标网格,由 datareadnc 调用。 mvc_horiz_mod
load_MONS_data subroutine libf/dynphy_lonlat/phymars/newstart.F 读取 datadir/results_MONS_lat_lon_H_depth.txt,补南极缺测并插值 MONS 地下冰数据到 GCM 网格;由 newstartmons_ice 分支调用。 newstart, datafile_mod
readhead_NC subroutine libf/dynphy_lonlat/phymars/readhead_NC.F NetCDF 头信息读取器;读取 controle、经纬度、面积、phisinitaps/bps,设置动力常数、几何数组和垂直坐标状态,由 xvik 调用。 readhead_NC
scal_wind subroutine libf/dynphy_lonlat/phymars/scal_wind.F xus/xvs 相邻平均到 u/v 风点;由 lect_start_archive 在 start_archive 风场读取后调用。 scal_wind, lect_start_archive
subslope_mola subroutine libf/dynphy_lonlat/phymars/subslope_mola.F90 读取 MOLA 坡面统计并输出 subslope_dist(ngridmx,nslope);由 newstart 的坡面数量修改分支调用。 subslope_mola, newstart
mola subroutine libf/dynphy_lonlat/phymars/subslope_mola.F90 读取 datadir/mola64.ncalt 高程,并调用 getslopes_mola32 生成坡度倾角和坡向。 subslope_mola, datafile_mod
getslopes_mola32 subroutine libf/dynphy_lonlat/phymars/subslope_mola.F90 用 MOLA 高程中心差分计算坡度倾角 theta_mola 和坡向 psi_mola subslope_mola
slopes_stat subroutine libf/dynphy_lonlat/phymars/subslope_mola.F90 对单个 GCM 网格框内的 MOLA 点按 def_slope 分箱,得到坡面比例。 subslope_mola
wind_scal subroutine libf/dynphy_lonlat/phymars/wind_scal.F 将 u/v 自然风或通量相邻平均回标量格点;由 start2archive 写 archive 风场前调用。 wind_scal, start2archive
write_archive subroutine libf/dynphy_lonlat/phymars/write_archive.F start_archive 变量追加器;按 dim 和变量名选择 NetCDF 维度,创建缺失变量并写入指定 Time 记录。 write_archive, start2archive
sol2ls subroutine libf/dynphy_lonlat/phymars/xvik.F 将 sol 日期转换为太阳经度 Ls,供 xvik 输出和谐波重建使用。 xvik
ls2sol function libf/dynphy_lonlat/phymars/xvik.F 将太阳经度 Ls 反算为 sol,用于 Time_unit==2 的日平均分组。 xvik
DiscreetFourierHn subroutine libf/dynphy_lonlat/phymars/xvik.F 计算离散压力序列的 Fourier 谐波系数,供 xvik 写年度谐波拟合。 xvik
photochemistry subroutine libf/aeronomars/photochemistry_mod.F90 calchim 逐列调用;计算光解/光电离/反应速率,按自适应隐式矩阵法更新 zycol,输出 jo3/jh2o/em_no/em_o2/iter photochemistry_mod, calchim_mod
chemthermos subroutine libf/aeronomars/chemthermos.F90 .not.unichim 时由 calchim_mod 逐列调用;按 chemthermod 构造热层数密度矩阵,调 jthermcalc_e107paramfoto_compact,只写回 lswitch:nlayer chemthermos, chemthermos_readini, reaction-rates
chemthermos_readini subroutine libf/aeronomars/chemthermos_readini.F calchim_mod firstcall(.not.unichim)调用,读 61 个 Arrhenius 参数到 rcoef(61,3),缺失则 abort_physic chemthermos_readini, reaction-rates
paramfoto_compact subroutine libf/aeronomars/paramfoto_compact.F chemthermos 调用,逐层计算 phdisrate/getch/lifetimes/prodsandlosses,用隐式积分和光化学平衡近似更新热层 rm 数密度。 paramfoto_compact, reaction-rates
phdisrate subroutine libf/aeronomars/paramfoto_compact.F jfotsout/fluxtop/efdis*/efion* 转成 jdistot/jdistot_b/jion;主例程和 photochemistry_mod 离子光化学路径都会调用。 paramfoto_compact, param_read_e107
getch subroutine libf/aeronomars/paramfoto_compact.F 消费 rcoef(61,3) 生成 ch2..ch87,中性反应用 tcte,离子/电子反应用插值电子温度。 paramfoto_compact, reaction-rates
prodsandlosses subroutine libf/aeronomars/paramfoto_compact.F 清零并填充热层化学 P*/L* 逐反应矩阵与 *tot 总源汇,供隐式积分和 chemthermos 诊断读取。 paramfoto_compact
implicito subroutine libf/aeronomars/paramfoto_compact.F (c_input+Prod*dt)/(1+Loss*dt) 更新非平衡物种,负输出时停止,低浓度抬底到 1.d-30 paramfoto_compact
perosat subroutine libf/aeronomars/perosat.F 光化学后处理 H2O2 超饱和:计算饱和摩尔分数、向下层转移超出量、写 pdqcloud/pdqscloud perosat, calchim_mod
deposition subroutine libf/aeronomars/deposition.F calchim_modif (depos) 下逐列调用;当前不修改 zycol(更新注释),仅 ig==ig_vl1 打印诊断。 deposition, conc_mod
euvheat subroutine libf/aeronomars/euvheat.F90 thermosphere_modcalleuv 下调用;校验 tracer、构造数密度矩阵、调 hrthermjtot,并换算为 pdteuv 后由调用方累加到 pdt euvheat, hrtherm, callkeys_mod
hrtherm subroutine libf/aeronomars/hrtherm.F euvheat 逐列调用;打包数密度、调 jthermcalc_e107jfotsout、按区间×物种加权求和得 jtot;夜间 zenit>140° 置 0。 hrtherm
inichim_newstart subroutine libf/aeronomars/inichim_newstart.F90 noms 重建 tracer 索引和 mmol,读取 atmosfera_LMD_* VMR 廓线,按 log pressure 调 intrplf 插值并写入 pq/qsurf inichim_newstart, intrplf, testphys1d-config
intrplf subroutine libf/aeronomars/intrplf.F 自包含一维线性插值;由 inichim_newstart 插值初始成分廓线。 intrplf
jthermcalc subroutine libf/aeronomars/jthermcalc.F 按 36 个光谱区间对 13 种物种柱密度做 interfast 查表插值,写 param_v4_h::jfotsout;夜间 zenit>140° 直接返回;当前源码未发现直接调用点。 jthermcalc
jthermcalc_e107 subroutine libf/aeronomars/jthermcalc_e107_mod.F E107 增强版光吸收系数计算;比基础版多 zday 参数,TOA 值用 4 阶 E10.7 多项式,末尾做 (1.52/dist_sol)² 修正;由 hrtherm/chemthermos 调用。 jthermcalc_e107_mod, hrtherm, chemthermos
column subroutine libf/aeronomars/jthermcalc_util.F 计算 13 种物种柱密度(cm⁻²),含球面大气光学路径(espesor_optico_A);由 jthermcalc/jthermcalc_e107 调用。 jthermcalc_util, jthermcalc, jthermcalc_e107_mod
interfast subroutine libf/aeronomars/jthermcalc_util.F 柱密度查找表快速线性插值,返回权重 wm/wp 和索引 nm;由 jthermcalc/jthermcalc_e107 多次调用。 jthermcalc_util
espesor_optico_A subroutine libf/aeronomars/jthermcalc_util.F 球面大气几何光学路径厚度计算;三区间 SZA 处理(<60° 平面近似 / 60°–90° 弦长 / >90° 五区域);由 column 内部调用。 jthermcalc_util
grid_R8 function libf/aeronomars/jthermcalc_util.F 单调递增网格索引查找;越界钳位并警告;由 espesor_optico_A 内部调用。 jthermcalc_util
flujo subroutine libf/aeronomars/jthermcalc_util.F 遗留太阳通量 11 年周期修正(fluxtop 正弦修正 + 日火距离);当前无调用方。 jthermcalc_util
allocate_param_iono subroutine libf/aeronomars/iono_h.F90 nlayer,nreact 分配 iono_h 数组;由 physiq_mod 调用。 iono_h, physiq_mod
temp_elect function libf/aeronomars/iono_h.F90 按高度算电子温度(Viking 表插值 / MAVEN tanh 公式);由 calchim_mod 调用。注意 photochemistry_mod 另有同名局部数组遮蔽。 iono_h
moldiff subroutine libf/aeronomars/moldiff.F Dickinson & Ridley 1972 α 矩阵 + LU 求逆 + 隐式三对角 14 物种分子扩散求解器;含 Jeans H/H₂ 逃逸和 O 质量守恒,仅 z>65km;已被 moldiff_red/moldiff_MPF 取代,无调用方。 moldiff, moldiffcoeff
tridag_sp subroutine libf/aeronomars/moldiff.F Thomas 算法三对角求解器;由 moldiff 内部逐物种调用。 moldiff
LUBKSB_SP subroutine libf/aeronomars/moldiff.F Numerical Recipes LU 回代;由 moldiff 求 α 逆矩阵时调用。 moldiff
LUDCMP_SP subroutine libf/aeronomars/moldiff.F Numerical Recipes LU 分解 + 部分主元选取;奇异矩阵时 ierr=1 返回。 moldiff
moldiff_MPF subroutine libf/aeronomars/moldiff_MPF.F90 Wilke 多组分扩散 + Krasnopolsky 涡流扩散 + Jeans H/H₂/D 逃逸 + 可选质量守恒修正;由 thermosphere_modmoldiff_scheme==2(默认)下调用。 moldiff_MPF, moldiffcoeff_red
tridagbloc subroutine libf/aeronomars/moldiff_MPF.F90 块三对角求解器;由 moldiff_MPF 时间分裂循环中隐式求解调用(定义但当前未被活跃调用)。 moldiff_MPF
moldiff_red subroutine libf/aeronomars/moldiff_red.F90 二元 dij 简化公式逐物种隐式三对角扩散 + Jeans H/H₂/D 逃逸;由 thermosphere_modmoldiff_scheme==1(非默认)下调用。 moldiff_red, moldiffcoeff_red
moldiffcoeff subroutine libf/aeronomars/moldiffcoeff.F moldiff 调用;firstcall 缺任一必需 tracer 即 stop 并在通过后设置 GCM 索引,用 H2-X/H-O 基础系数按 sqrt(mmol) 缩放填对称 dij(对角 1.0);每次调用覆写 coeffs.dat moldiffcoeff, tracer_mod
moldiffcoeff_red subroutine libf/aeronomars/moldiffcoeff_red.F moldiff_red/moldiff_MPF 调用;gcmind 由调用方传入,h2/h/o 按 noms 名查,同 Nair 1994 算 dijcoeffs.dat 默认不写。 moldiffcoeff_red, moldiffcoeff
init_comcstfi_h subroutine libf/phymars/comcstfi_h.F90 初始化 rad/cpp/g/r 并计算 rcp=r/cpp comcstfi_h
ini_comgeomfi_h subroutine libf/phymars/comgeomfi_h.F90 ngrid 分配 sinlat/coslat/sinlon/coslon 几何缓存数组。 comgeomfi_h
end_comgeomfi_h subroutine libf/phymars/comgeomfi_h.F90 释放已分配的经纬度三角函数缓存数组。 comgeomfi_h
ini_fillgeom subroutine libf/phymars/comgeomfi_h.F90 从调用方传入的弧度制纬度/经度填充 sinlat/coslat/sinlon/coslon comgeomfi_h, testphys1d-config
allocate_comm_wrf subroutine libf/phymars/comm_wrf.F90 ngrid,nlayer 分配 WRF 输出诊断缓存数组。 comm_wrf
deallocate_comm_wrf subroutine libf/phymars/comm_wrf.F90 无条件释放所有 WRF 输出诊断缓存数组。 comm_wrf
ini_comsaison_h subroutine libf/phymars/comsaison_h.F90 ngrid 分配 mu0/fract/local_time 数组。 comsaison_h
end_comsaison_h subroutine libf/phymars/comsaison_h.F90 释放已分配的 mu0/fract/local_time 数组。 comsaison_h
solang subroutine libf/phymars/solang.F 按格点经纬度、太阳赤纬和时角计算 mu0 与 0/1 日照标志 fract solang, mucorr
initracer subroutine libf/phymars/initracer.F90 noms(:) 识别 tracer 名称,写入 igcm_* 索引、mmol/radius/rho_q/alpha_*,并检查 dust/water/HDO/CO2/NLTE/chemistry 开关依赖。 initracer, initracer-co2-tracers, co2-cycle-config, water-cycle-config
write_output subroutine libf/phymars/write_output_mod.F90 XIOS/传统诊断输出封装接口;文件专页已记录泛型分派、output_diagfi 和土壤字段分流。 write_output_mod, xios-config, water-cycle, co2-cycle
initiate subroutine util/concatnc.F90 创建并初始化 concat.nc 的坐标维度和 Time 变量。 concatnc
init2 subroutine util/concatnc.F90 复制首个输入文件中的垂直坐标、面积和地形静态辅助变量。 concatnc
change_time_axis subroutine util/concatnc.F90 将输出 sol 时间轴转换为 Ls,或在 adls 模式下新增 Ls 变量。 concatnc
sol2ls subroutine util/concatnc.F90 concatnc 内部 sol 到太阳经度 Ls 的换算例程。 concatnc
missing_value subroutine util/concatnc.F90 将输入变量的 valid_rangemissing_value 属性复制到输出变量。 concatnc
extraction subroutine util/extract.F90 extract 的四维插值核心,按 time、altitude、latitude、longitude 顺序插值。 extract
extract::ls2sol subroutine util/extract.F90 extract 内部 Ls 到 sol 的换算例程,用于把 Ls/LT 查询转换到输入文件 Time 坐标。 extract
interp_horiz subroutine util/hrecast.F90 基于新旧格盒交叠面积执行水平重分配,并对极点行做面积平均。 hrecast
iniinterp_h subroutine util/hrecast.F90 预计算新旧水平格盒交集索引、交集面积和新格盒面积。 hrecast
read_optpropfile subroutine util/aeropt_mod.F90 从 ASCII 光学性质文件读取 nwvl/nsize/wvl/radiusdyn/Qext/omeg aeropt_mod
interp_wvl_reff subroutine util/aeropt_mod.F90 Qext/omeg 按有效半径和波长做线性插值。 aeropt_mod
end_aeropt_mod subroutine util/aeropt_mod.F90 释放光学性质表缓存数组。 aeropt_mod
create_logfile subroutine util/aeropt_mod.F90 创建或覆盖 aeroptical 运行日志文件。 aeropt_mod
aeroptical::status_check subroutine util/aeroptical.F90 NetCDF 状态检查;错误时打印 nf90_strerror 并停止。 aeroptical
aeroptical::inidims subroutine util/aeroptical.F90 复制输入坐标和可选 controle,并定义输出 NetCDF 维度。 aeroptical
aeroptical::init2 subroutine util/aeroptical.F90 复制垂直/静态辅助字段,并按多种路径计算 delta_z aeroptical
check_co2cycle::sol2ls subroutine util/check_co2cycle.F90 将 sol 转换为太阳经度 Ls,并处理跨年 Ls 累加。 check_co2cycle
check_co2cycle::ls2sol function util/check_co2cycle.F90 将 Ls 转回 sol,供 Ls-only 输出文件做日平均分组。 check_co2cycle
DiscreetFourierHn subroutine util/check_co2cycle.F90 对离散压力序列计算 Fourier 谐波系数。 check_co2cycle
RUNAVE subroutine util/xvik/fit_Iceinertia_MONSicedepth.F 在周期 sol 坐标上对模拟压力和敏感度导数做滑动平均。 fit_Iceinertia_MONSicedepth
p_coord_interp subroutine util/zrecast.F90 将变量插值到压力坐标。 zrecast
z_coord_interp subroutine util/zrecast.F90 将变量插值到 areoid 高度或半径坐标。 zrecast
zs_coord_interp subroutine util/zrecast.F90 将变量插值到本地地表以上高度坐标。 zrecast
geoid subroutine util/zrecast.F90 计算给定经纬度的 areoid 半径。 zrecast
extraction subroutine util/simu_MCS.F90 在 GCM 4D 场上做四维线性插值。 simu_MCS
ls2sol subroutine util/simu_MCS.F90 太阳经度 Ls 到 sol 的换算。 simu_MCS
gen_sol_list subroutine util/simu_MCS.F90 生成 sol × 当地时采样点列表。 simu_MCS
LTmod function util/simu_MCS.F90 夜间当地时连续化函数。 simu_MCS
aerave subroutine libf/phymars/aerave.F 将气溶胶光学性质从高分辨率光谱通过普朗克加权平均到 GCM 辐射带。 aerave
blackl subroutine libf/phymars/aerave.F 普朗克黑体辐射函数计算。 aerave
suaer subroutine libf/phymars/suaer.F90 读取 optprop_* 表并填充 dimradmars_mod 离散 VIS/IR 光学查找表。 suaer, aerave
ini_comslope_h subroutine libf/phymars/comslope_mod.F90 初始化分配坡面数组。 comslope_mod
end_comslope_h subroutine libf/phymars/comslope_mod.F90 释放坡面数组。 comslope_mod
compute_meshgridavg subroutine libf/phymars/comslope_mod.F90 计算坡面属性的网格平均值(反照率、发射率、温度、tracer)。 comslope_mod
ini_comsoil_h subroutine libf/phymars/comsoil_h.F90 分配所有土壤数组。 comsoil_h
end_comsoil_h subroutine libf/phymars/comsoil_h.F90 释放所有土壤数组。 comsoil_h
iniwritesoil subroutine libf/phymars/iniwritesoil.F90 diagsoil.nc 创建维度和固定字段(area、th_inertia),由 writediagsoil 首次调用时触发。 iniwritesoil
writediagsoil subroutine libf/phymars/writediagsoil.F90 按采样间隔向 diagsoil.nc 追加土壤剖面、地表场或标量诊断,并在首次调用时触发 iniwritesoil writediagsoil, iniwritesoil
nirco2abs subroutine libf/phymars/nirco2abs.F 计算大气 CO2 在近红外波段吸收太阳辐射产生的加热率,含 NLTE 修正。 nirco2abs
interpnir subroutine libf/phymars/nirco2abs.F 压力坐标线性插值(用于 NLTE 修正查找表)。 nirco2abs
get_nq_from_tracer_file subroutine libf/phymars/parse_tracer_file.F90 tracer.def 读取 tracer 总数。 parse_tracer_file
get_names_from_tracer_file subroutine libf/phymars/parse_tracer_file.F90 从已解析的 tracers 数组提取所有 tracer 名称。 parse_tracer_file
get_children_from_tracer_file subroutine libf/phymars/parse_tracer_file.F90 统计每个 tracer 的子 tracer 数量(parent 字段匹配)。 parse_tracer_file
get_nq_from_traceur_file subroutine libf/phymars/parse_traceur_file.F90 traceur.def 第一行读取 tracer 总数,并广播给所有进程。 parse_traceur_file
get_names_from_traceur_file subroutine libf/phymars/parse_traceur_file.F90 读取旧格式 tracer 名称、parent 字段和每个 tracer 的子 tracer 数量。 parse_traceur_file, tracer_mod
phyetat0 subroutine libf/phymars/phyetat0_mod.F90 startfi.nc 或 no-startfi 缺省路径初始化物理地表、土壤、坡面、tracer、古气候和 restart 记忆状态。 phyetat0_mod
ini_tab_controle_dyn_xios subroutine libf/phymars/phyetat0_mod.F90 把网格大小、行星常数、物理时间步和初始时刻写入 tab_cntrl_mod phyetat0_mod
physdem0 subroutine libf/phymars/phyredem.F90 创建物理文件并写控制表、网格、静态地表、坡面和水冰标签字段。 phyredem
physdem1 subroutine libf/phymars/phyredem.F90 先写 Time,再写 time-dependent 表面、土壤、tracer、尘埃、GW、古气候和质量修正 restart 字段。 phyredem
phys_state_var_init subroutine libf/phymars/phys_state_var_init_mod.F90 startfi.nc 或默认路径确定 nslope,初始化物理常数/时间状态,并按当前维度释放和分配多个共享模块数组。 phys_state_var_init_mod
blendrad subroutine libf/phymars/blendrad.F 用 sigmoid alpha 在 LTE/NLTE 之间平滑过渡,合并四路辐射倾向为净加热率 dtrad。 blendrad
pbl_parameters subroutine libf/phymars/pbl_parameters_mod.F90 计算摩擦速度/温度、Monin-Obukhov 内插、热通量/速度方差廓线;纯诊断不影响物理倾向。 pbl_parameters_mod
ini_paleoclimate / end_paleoclimate subroutine libf/phymars/paleoclimate_mod.F90 ngrid,nslope 分配或释放古气候共享数组。 paleoclimate_mod
getslopes subroutine libf/phymars/slope_mod.F90 从地形势场计算坡面倾角和方位(仅串行模式)。 slope_mod
param_slope subroutine libf/phymars/slope_mod.F90 用 Spiga & Forget (2008) 方法计算坡面上的太阳总辐照度(直接+散射+反射)。 slope_mod
ini_slope_mod subroutine libf/phymars/slope_mod.F90 分配 theta_slpsi_sl 数组。 slope_mod
end_slope_mod subroutine libf/phymars/slope_mod.F90 释放 theta_slpsi_sl 数组。 slope_mod
soil subroutine libf/phymars/soil.F 隐式三对角矩阵求解土壤各层温度,输出地表热容量和扩散热通量。 soil
soil_settings subroutine libf/phymars/soil_settings.F startfi.nc 读取土壤层深度、热惯量、温度和 tracer,层数不匹配时垂直插值。 soil_settings
tracer_mass_fixer_dyn subroutine libf/phymars/tracer_mass_fixer_dyn_mod.F90 计算 8 个主要大气成分的质量修正因子,返回 tendency 以修正动力传输的质量非守恒。 tracer_mass_fixer_dyn_mod
compute_tracer_mass_global subroutine libf/phymars/tracer_mass_fixer_dyn_mod.F90 计算指定 tracer 的全球总质量(柱密度积分 + 全球求和)。 tracer_mass_fixer_dyn_mod
ini_tracer_mod subroutine libf/phymars/tracer_mod.F90 解析 traceur.def/tracer.def 配置文件,分配 tracer 数组,检查 CO2 tracer 存在性。 tracer_mod
end_tracer_mod subroutine libf/phymars/tracer_mod.F90 释放多数 allocatable tracer 数组;源码未释放 nqchildren,页面已标为待确认遗漏。 tracer_mod
vdif_cd subroutine libf/phymars/vdif_cd_mod.F90 计算地表动量/热量拖曳系数 Cd/Ch;callrichsl 选择简单对数公式或 Colaïtis 迭代,迭代内由 callatke 选择 ATKE 或 Dyer/England 稳定性函数。 vdif_cd_mod
vdif_kc subroutine libf/phymars/vdif_kc.F vdifc fallback 路径中更新 q2、动量扩散 km 与标量扩散 kn,并可用 CO2 tracer 修正稳定度。 vdif_kc
vdifc subroutine libf/phymars/vdifc_mod.F physiqcalldifv 分支调用,输出 U/V/热力/tracer 垂直扩散倾向以及地表温度、水冰、watercap 和尘埃/HDO 通量。 vdifc_mod, physiq_mod, vdifc-water-surface-exchange
make_tsub subroutine libf/phymars/vdifc_mod.F vdifc 的 H2O 地表交换段按地表温度变化和霜/永久冰盖状态选择自适应子时间步数。 vdifc_mod, vdifc-water-surface-exchange
compute_Tice subroutine libf/phymars/vdifc_mod.F 按地下冰深度在土壤层温度间插值得到地下冰温度,供 lag-layer 地下冰通量使用。 vdifc_mod, vdifc-water-surface-exchange
yamada4 subroutine libf/phymars/yamada4.F iflag_pbl 分支更新 q2/km/kn/kq,由 vdifccallyamada4 路径调用。 yamada4, vdifc_mod
vdif_q2 subroutine libf/phymars/yamada4.F q2 做压力坐标隐式垂直扩散;当前只在 iflag_pbl==9 分支调用。 yamada4