vdifc_mod.F
路径
LMDZ.MARS\libf\phymars\vdifc_mod.F
所属目录 / 模块
libf/phymars
MODULE vdifc_mod
文件定位
vdifc_mod.F 是 phymars 物理包的垂直扩散主模块。主例程 vdifc 在 physiq_mod.F 中由 calldifv 分支调用,接收当前累计的动力、热力和 tracer 物理倾向,把它们先加到工作态,再用隐式垂直扩散求解动量、热量和 tracer 的新增倾向。
这个文件不是单纯的湍流 K 系数例程。它把地表层交换系数、PBL K 系数方案、地表能量平衡、CO2 凝结质量变化、尘埃地表注入、H2O 地表/地下交换、HDO 同位素通量、坡面投影和诊断输出放在同一条时间步流程里。因此它是边界层、地表、尘埃循环和水循环之间的强耦合入口。
定义的符号
| 符号 | 类型 | 行号 | 作用 |
|---|---|---|---|
vdifc_mod |
module | 1 | 垂直扩散主模块 |
vdifc |
subroutine | 7-1441 | 计算 U/V/位温或焓/tracer 的垂直扩散倾向,更新地表温度倾向、地表 tracer 通量和若干诊断 |
make_tsub |
subroutine | 1445-1479 | 根据地表温度倾向和地表冰量为水汽交换选择自适应子时间步数 |
compute_Tice |
subroutine | 1484-1529 | 按地下冰深度在土壤温度剖面中线性插值得到地下冰温度 |
SAVE / THREADPRIVATE 状态
| 符号 | 类型 | 行号 | 用途 |
|---|---|---|---|
firstcall |
LOGICAL,SAVE, THREADPRIVATE |
139-141 | 控制首次进入 vdifc 时初始化 CO2 凝结常数和 CO2 tracer 索引 |
acond, bcond |
REAL,SAVE, THREADPRIVATE |
148-150 | CO2 凝结温度公式常数 |
ccond |
REAL,SAVE, THREADPRIVATE |
202-204 | CO2 质量变化方案中温度倾向到凝结质量的系数 |
ico2 |
INTEGER,SAVE, THREADPRIVATE |
209-215 | noms(iq)=="co2" 时记录 CO2 gas tracer 索引 |
m_co2, m_noco2, A, B |
REAL,SAVE, THREADPRIVATE |
211-215 | CO2 和非凝结气体平均分子量换算常数 |
本文件没有定义 common block。除上述 SAVE 状态外,主要共享状态来自 use 的模块变量,例如 ustar/tstar、zdqsdif_ssi_tot 和 tracer 索引。
依赖的模块
| use 模块 | only 列表 | 用途 | 待确认 |
|---|---|---|---|
tracer_mod |
noms, igcm_*, alpha_lift |
查找 CO2 tracer;索引 dust/H2O/HDO/stormdust tracer;按 alpha_lift 生成尘埃注入通量 |
|
surfdat_h |
watercaptag, frost_albedo_threshold, dryness, old_wsublimation_scheme |
水冰地表交换、永久冰盖、水汽导度干度缩放和旧升华方案开关 | |
comcstfi_h |
cpp, r, rcp, g, pi |
热容、气体常数、重力、坡面投影等公式 | |
watersat_mod |
watersat |
H2O/HDO 路径计算饱和混合比 | |
turb_mod |
turb_resolved, ustar, tstar |
判断是否跳过 CO2 凝结迭代;写出近地层摩擦速度和温度尺度 | |
compute_dtau_mod |
ti_injection_sol, tf_injection_sol |
dustinjection=1 时限制尘埃注入的本地时窗口 |
|
hdo_surfex_mod |
hdo_surfex |
HDO 地表-大气通量计算 | |
dust_param_mod |
doubleq, submicron, lifting |
控制尘埃 tracer 组合和是否启用风起尘/注入 | |
write_output_mod |
write_output |
写出水潜热和地下冰交换诊断 | |
comslope_mod |
nslope, def_slope_mean, subslope_dist, major_slope, iflat |
坡面数量、坡面投影、坡面权重和主坡面选择 | |
microphys_h |
To |
水冰潜热公式和有冰地表温度封顶 | |
paleoclimate_mod |
coef_ssdif, h2oice_depth, lag_layer, zdqsdif_ssi_tot |
lag-layer 地下冰交换、地下冰深度和诊断缓存 | |
comsoil_h |
layer, mlayer, adsorption_soil |
地下层网格和是否调用 soilwater;compute_Tice 使用 mlayer |
|
vdif_cd_mod |
vdif_cd |
地表层 Cd/Ch 交换系数 | |
vdif_kc_mod |
vdif_kc |
fallback PBL K 系数方案 | |
yamada4_mod |
yamada4 |
callyamada4 路径的 Mellor-Yamada K 系数方案 |
|
lmdz_call_atke |
call_atke |
callatke 路径的 ATKE K 系数方案 |
|
dust_windstress_lift_mod |
dust_windstress_lift |
默认风应力起尘通量计算 | |
callkeys_mod |
callcond, callrichsl, callyamada4, callatke, tke_heat_flux, water, hdo, co2clouds, rdstorm, dustinjection, latentheat_surfwater |
控制 CO2 凝结、地表层、PBL、热通量、水循环、HDO、尘埃注入和水潜热路径 |
调用的关键例程
| 被调用例程 | 所在模块 / 文件 | 调用位置 | 作用 |
|---|---|---|---|
vdif_cd |
vdif_cd_mod.F90 |
416-419, 579-582 | 先用原始风算地表交换系数和 ustar/tstar,再用摩擦后风重算起尘/升华使用的 Cd/Ch |
yamada4 |
yamada4.F |
462-464 | callyamada4=.true. 时计算 zkv/zkh/zkq |
call_atke |
lmdz_call_atke.F90 |
467-470 | callatke=.true. 时计算 ATKE 的 zkv/zkh |
vdif_kc |
vdif_kc.F |
475-477 | 非 Yamada4、非 ATKE 时计算 fallback zkv/zkh |
dust_windstress_lift |
dust_windstress_lift.F90 |
881-883 | 默认风应力起尘,返回 pdqsdif_tmp |
make_tsub |
本文件 | 977-979 | 为 H2O 地表交换分配子时间步 |
watersat |
watersat_mod.F90 |
1018, 1118, 1180, 1347 | 计算地表/地下冰温度下的 H2O 饱和混合比 |
soilwater |
soilwater.F90 |
1052-1060 | adsorption_soil 时求解地下水汽、吸附水和地下冰交换 |
compute_Tice |
本文件 | 1113-1116, 1175-1178 | 对 lag-layer 地下冰温度插值 |
hdo_surfex |
hdo_surfex_mod.F |
1350-1355 | 基于 H2O 通量和分馏公式计算 HDO 地表通量 |
write_output |
write_output_mod.F90 |
1388-1407 | 写出 surf_h2o_lh、SSI 通量和坡面 SSI 通量 |
abort_physic |
外部物理错误处理 | 1515-1516 | compute_Tice 发现地下冰低于最后土壤层时中止 |
输入
| 输入 | 来源 | 类型 / 维度 | 单位 | 含义 |
|---|---|---|---|---|
ngrid, nlay, nsoil, nq, nqsoil |
调用方 physiq |
integer | - | 水平格点、垂直层、土壤层、大气 tracer 和土壤 tracer 数 |
ptimestep |
physiq |
real | s | 当前物理时间步 |
pplay, pplev |
大气网格 | real (ngrid,nlay/nlay+1) |
Pa | 层中心和层界面压力 |
pzlay, pzlev |
大气网格 | real (ngrid,nlay/nlay+1) |
m | 层中心和层界面高度 |
pu, pv, ph, pq |
当前物理态 | real | m/s, K 或 J-like, kg/kg | 风、热力变量和 tracer 混合比 |
pdufi, pdvfi, pdhfi, pdqfi |
前序物理过程 | real | 每秒倾向 | 进入垂直扩散前已经累计的物理倾向 |
ptsrf, ptsoil, pemis, pcapcal, pfluxsrf |
地表/土壤/辐射-土壤耦合 | real | K, W/m2 等 | 地表温度、土壤温度、发射率、热容量和地表通量 |
pqsurf, qsoil, watercap |
地表和地下 tracer 储库 | real | kg/m2 或 soil tracer 单位 | 地表 tracer、地下水相关 tracer 和永久冰盖储量 |
ppopsk |
热力换算 | real (ngrid,nlay) |
- | Exner 因子,用于位温/温度换算 |
pcondicea_co2microp |
CO2 云微物理 | real (ngrid,nlay) |
kg/kg/s | CO2 微物理凝结倾向;当前 co2clouds 分支中被置零路径覆盖 |
pz0 |
地表参数 | real (ngrid) |
m | 粗糙度长度 |
wstar, hfmax |
边界层/热羽流上下文 | real (ngrid) |
m/s 等 | 子网格 gustiness/对流速度尺度;hfmax 在本文件中未见实际使用 |
dustliftday, local_time |
尘埃注入调度 | real (ngrid) |
kg/m2/s 或 sol fraction | dustinjection=1 时的日注入量和本地时间窗判断 |
输出
| 输出 | 去向 | 类型 / 维度 | 单位 | 含义 |
|---|---|---|---|---|
pdudif, pdvdif |
physiq 累加到全局倾向 |
real (ngrid,nlay) |
m/s2 | 垂直扩散导致的 U/V 倾向 |
pdhdif |
physiq |
real (ngrid,nlay) |
热力变量每秒倾向 | 热力变量垂直扩散倾向,含 CO2 凝结质量变化修正 |
pdtsrf |
physiq / 地表更新 |
real (ngrid,nslope) |
K/s | 地表温度倾向,水潜热路径可再次修正 |
pdqdif |
physiq |
real (ngrid,nlay,nq) |
kg/kg/s | 大气 tracer 垂直扩散倾向 |
pdqsdif |
physiq / 地表 tracer 更新 |
real (ngrid,nq,nslope) |
kg/m2/s | 地表 tracer 通量/储量倾向;尘埃、H2O ice、HDO ice 等在此输出 |
pq2 |
湍流共享状态 | real (ngrid,nlay+1) |
m2/s2 | PBL 方案更新后的 TKE 速度尺度平方 |
sensibFlux |
physiq/诊断 |
real (ngrid) |
W/m2 | 大气到地表的感热通量 |
pore_icefraction |
地下水路径 | real (ngrid,nsoil,nslope) |
- | soilwater 返回的孔隙冰饱和度 |
dwatercap_dif |
physiq / watercap 更新 |
real (ngrid,nslope) |
kg/m2/s | 永久水冰盖储量变化倾向 |
共享状态与副作用
firstcall首次进入时打印 CO2 凝结常数,并扫描noms(iq)找co2tracer。后续调用复用ico2/m_co2/m_noco2/A/B/acond/bcond/ccond。ustar、tstar来自turb_mod,在两次vdif_cd之后被重置并写入当前步近地层摩擦速度和温度尺度。pq2是intent(inout),由yamada4、call_atke或vdif_kc更新,供后续时间步和其他湍流路径使用。qsoil是intent(inout),仅在adsorption_soil路径由soilwater修改地下水汽/冰/吸附水状态。zdqsdif_ssi_tot来自paleoclimate_mod,每次vdifc开头清零,水汽路径累计地下冰与大气/霜的总通量,随后写诊断。write_output写出surf_h2o_lh、zdqsdif_ssi_frost_tot、zdqsdif_ssi_atm_tot、flux_ssice和每个坡面的flux_ssice_slopeNN。- 本文件不读写 restart 文件;restart 相关状态由调用链中的物理状态初始化/写出模块处理。
初始化 / firstcall / restart / diagnostic 行为
firstcall段在行 255-283 执行一次:设置 CO2 凝结公式常数,打印参数,扫描 tracer 名称并为 CO2 gas 建立平均分子量换算系数。- 每个时间步行 296-317 清零所有输出倾向和水/地下冰诊断缓存,避免沿用上一步工作数组。
- 行 350-388 根据
callcond和ico2计算 CO2 体积分数与凝结温度;未启用或无 CO2 tracer 时采用vmr_co2=0.95。 - 本文件没有直接 restart 读写,但会修改
pq2、qsoil和zdqsdif_ssi_tot等可能由其他模块初始化或诊断的共享状态。 - 诊断输出集中在行 1388-1407,只输出水潜热和地下冰交换相关字段;HDO flux 诊断在源码中保留为注释。
核心流程
1. 准备主坡面状态和隐式系数
行 285-288 从 major_slope(ig) 取主坡面的 ptsrf_tmp 和 pqsurf_tmp,供大气主列扩散、起尘和 K 系数路径使用。行 324-344 构造两类隐式系数:za=(pplev(l)-pplev(l+1))/g 表示层空气质量,zb0 是后续把 K 系数或地表导度转为隐式三对角系数的基量。地表层 zb0(:,1)=ptimestep*pplev(:,1)/(r*ptsrf_tmp)。
2. 把前序物理倾向加入工作态
行 395-405 计算
zu = pu + pdufi*dt
zv = pv + pdvfi*dt
zh = ph + pdhfi*dt
zq = pq + pdqfi*dt
后面求出的 pd*dif 都是相对于这个“已含前序物理过程”的工作态再增加的垂直扩散倾向。
3. 地表交换系数和 PBL K 系数
第一次 vdif_cd 在行 416-419 用原始风 pu/pv 计算各坡面 zcdv_true/zcdh_true。随后行 423-456 根据 callrichsl 是否包含 gustiness 修正,得到实际地表动量/热量导度 zcdv/zcdh,并写 ustar/tstar。
行 461-479 三选一计算垂直 K 系数:
callyamada4:调用yamada4,输出zkv/zkh/zkq。callatke:调用call_atke,输出zkv/zkh,并把第nlay+1层界面复制为第nlay值。- 否则:调用
vdif_kc,按传统 PBL K 系数方案更新pq2/zkv/zkh。
行 480-488 是 1D doubleq 保护:ngrid==1 时内部层 zkh/zkv 下限设为 80。
4. 动量 U/V 隐式扩散
行 503-529 解 U,行 544-567 解 V。两者都使用同一 Thomas 算法样式:先从顶层向下递推 zc/zd,再从地表向上回代。地表边界使用 zb(:,1)=zcdv_tmp*zb0(:,1),内部层使用 zb(:,2:nlay)=zkv(:,2:nlay)*zb0(:,2:nlay)。求解后 zu/zv 已包含摩擦后的风廓线。
行 579-619 随后用摩擦后的 zu/zv 第二次调用 vdif_cd。源码注释说明这套风用于起尘和升华,因此尘埃和水汽通量使用的是已经受地表摩擦影响的近地风背景。
5. 热力变量、地表能量平衡和 CO2 凝结
行 637-777 用 zkh/zcdh 对热力变量做隐式扩散,并把大气第一层和地表能量平衡联立。地表温度解包括:
- 地表热容量
pcapcal*ptsrf; - 湍流热通量项
cpp*zb(1)*zc(1); - 线性化 Planck 辐射项
zdplanck*ptsrf,除非tke_heat_flux非零; - 土壤/辐射传入的
pfluxsrf*ptimestep。
如果 callcond 且非 turb_resolved,行 666-681 会判断是否有层低于 CO2 凝结位温,必要时把 llnt(ig) 设为 300。行 698-771 在收敛循环中更新 zhs/zt,并在 co2clouds=.false. 时根据 zt<ztcond 计算 pdtc/zcondicea/dmice。若 co2clouds=.true.,源码当前把 zcondicea/dmice/pdtc 置零。
多坡面情况下,行 779-801 对非主坡面只重算地表温度倾向 pdtsrf(ig,islope),大气热力廓线仍来自主坡面隐式解。
6. 尘埃和普通 tracer
行 808-889 先计算近地密度 rho=zb0(:,1)/ptimestep,再按 lifting/doubleq/submicron/dustinjection/rdstorm 选择地表尘埃通量:
lifting=.false.时pdqsdif_tmp=0。doubleq或submicron的旧路径直接用-alpha_lift(...)或-dustliftday*alpha_lift(...)生成 mass/number/submicron/stormdust 通量。dustinjection=1还要求local_time在ti_injection_sol与tf_injection_sol之间;CO2 地表冰pqsurf_tmp(:,igcm_co2)>=1时不抬升。- 默认路径调用
dust_windstress_lift,由风应力阈值方案计算pdqsdif_tmp。
行 900-957 对“非水汽”tracer 做隐式垂直混合。普通 tracer 在地表层加入 (-pdqsdif_tmp)*ptimestep,并把 pdqsdif_tmp*cos(slope) 写入每个坡面的 pdqsdif。h2o_ice 和 hdo_ice 在这里走无地表注入的特例;真正的 H2O 地表冰增减由后面的 h2o_vap 专段覆盖。
7. H2O 地表、地下和坡面交换
行 959-1315 是 H2O 水汽专段,已有更细的 section 页:vdifc-water-surface-exchange。主文件页保留复现主线:
- 每个坡面先把
pqsurf(h2o_ice)和watercap除以cos(slope),转成真实坡面面积上的储量。 make_tsub根据pdtsrf、地表冰量、watercaptag和dtmax=0.5 K选择子时间步数。- 每个子步用
zcdv或zcdh作为地表导度,并乘dryness,对水汽做隐式扩散,地表边界拉向watersat(ztsrf,pplev(:,1))的qsat。 adsorption_soil时调用soilwater,把地下水汽、吸附水、地下冰与大气边界条件耦合;否则在lag_layer和h2oice_depth>0时走地下冰-大气或地下冰-霜通量。latentheat_surfwater时用源码中的水冰升华潜热公式修正pdtsrf;有冰时温度上升被封顶到To。- 子步结束后写
pdqsdif(h2o_ice,islope)、dwatercap_dif、zdqsdif_ssi_atm_tot/frost_tot/ssi_tot,再把坡面水汽廓线按subslope_dist平均回大气主列。
这个段落是地表/水循环核心耦合点:它同时改变地表水冰、永久水冰盖、地下水相关 tracer、近地水汽、地表温度倾向和地下冰诊断通量。
8. HDO 地表交换
行 1317-1380 在 hdo 且 iq==igcm_hdo_vap 时执行。它先对 HDO vapor 建立与普通 tracer 类似的垂直混合系数,再逐坡面调用 hdo_surfex。调用输入包括 H2O 专段保存的 saved_h2o_vap、更新后地表温度的 qsat_tmp、H2O/HDO 地表通量数组以及 dwatercap_dif。hdo_surfex 返回坡面 hdoflux,随后按 subslope_dist 平均成 hdoflux_meshavg 并作为地表通量边界条件更新 HDO vapor 廓线。
9. 诊断和最终倾向
行 1388-1407 写水潜热和地下冰交换诊断。行 1424-1439 把工作态差分成输出倾向:
pdudif = (zu - (pu+pdufi*dt))/dt
pdvdif = (zv - (pv+pdvfi*dt))/dt
pdhdif = (zhs - (ph+pdhfi*dt + latcond*dmice/cpp/ppopsk))/dt
pdqdif = (zq - (pq+pdqfi*dt))/dt
physiq_mod.F 的调用点随后把这些倾向累加到全局物理倾向,并把 dwatercap_dif 加到 dwatercap。
伪代码
vdifc:
if firstcall:
initialize CO2 condensation constants
find co2 tracer index in noms(:)
select major-slope surface state
zero all output tendencies and water/SSI diagnostics
build za and zb0 implicit-diffusion coefficients
compute CO2 vmr and condensation temperature if callcond
zu,zv,zh,zq = state + incoming physical tendencies * dt
call vdif_cd with original pu,pv
derive zcdv/zcdh, ustar/tstar on major slope
choose PBL K path:
if callyamada4: call yamada4
else if callatke: call call_atke
else: call vdif_kc
if doubleq and 1D: enforce zkv/zkh >= 80 inside the column
solve implicit U diffusion using zkv and surface zcdv
solve implicit V diffusion using zkv and surface zcdv
call vdif_cd again with friction-modified zu,zv
recompute conductances for lifting and sublimation
solve implicit thermal diffusion plus surface energy balance
if callcond: iterate CO2 condensation mass correction unless co2clouds path zeros it
solve non-major slope surface temperature tendencies
if lifting:
compute dust/stormdust/submicron surface flux by configured branch
else:
dust flux = 0
for each tracer:
if normal tracer branch:
solve implicit tracer diffusion
apply dust-like surface source except h2o_ice/hdo_ice special cases
write pdqsdif across slopes
if water and tracer is h2o_vap:
for each slope and grid point:
choose H2O subtimestep count with make_tsub
for each subtimestep:
solve vapor diffusion with qsat surface boundary
optionally call soilwater
optionally compute lag-layer SSI atmosphere/frost fluxes
apply latent-heat surface temperature feedback
update vapor profile, surface ice and SSI diagnostics
integrate pdtsrf, pdqsdif(h2o_ice), dwatercap_dif
average slope vapor profiles back to grid-cell atmosphere
if hdo and tracer is hdo_vap:
call hdo_surfex per slope
solve HDO vapor diffusion with mesh-averaged HDO surface flux
write water/SSI diagnostics
convert final zu,zv,zhs,zq work states to pdudif,pdvdif,pdhdif,pdqdif
参与的主题流程
| 主题 | 参与方式 |
|---|---|
| 边界层 / 湍流扩散 | 调用 vdif_cd、yamada4、call_atke 或 vdif_kc,并用隐式三对角解更新风、热力和 tracer 垂直廓线 |
| 地表能量收支 | 联立第一层大气热通量、地表热容量、辐射线性化和土壤/地表通量,输出 pdtsrf 与 sensibFlux |
| 尘埃循环 | 根据 lifting/dustinjection/rdstorm/doubleq/submicron 和 CO2 冰覆盖条件生成 dust/stormdust/submicron 地表注入通量 |
| 水循环 | 处理 H2O vapor 与地表霜、永久冰盖、地下吸附水、地下冰和坡面之间的交换,并输出地表水冰和 watercap 倾向 |
| HDO 同位素循环 | 在 H2O 通量之后调用 hdo_surfex,把同位素分馏后的 HDO 地表通量并入垂直扩散 |
| CO2 循环 | 计算 CO2 凝结温度和热力质量变化项;当前 co2clouds 分支中凝结质量项被置零 |
| 坡面物理 | 使用 major_slope 作为大气主列耦合坡面,水冰通量逐坡面计算并通过 subslope_dist 平均回主列 |
写法特点
- 固定格式 Fortran,主例程很长,靠注释编号组织流程;复现时更适合按执行段拆分而不是按变量声明阅读。
- 隐式扩散反复使用同一组
za/zb/zc/zd工作数组;每个物理量在进入求解前都会重设地表或内部层的zb。 vdif_cd调用两次:第一次服务于 K 系数和初始地表层诊断,第二次用摩擦后风服务于起尘和升华。- 水汽段使用自适应子时间步,并在坡面真实面积和水平投影面积之间来回转换;这对质量收支很关键。
firstcall、SAVE、THREADPRIVATE只用于 CO2 凝结常数和 tracer 索引缓存,不用于水/尘埃状态累积。pdqsdif的符号约定需按源码使用:尘埃注入路径使用负的alpha_lift或dustliftday*alpha_lift写入,H2O ice 倾向由zqsurf的差分得到。
复现要点
- 先把前序物理倾向加到
zu/zv/zh/zq,最后再相对同一工作基准差分输出;不要直接相对原始pu/pv/ph/pq计算扩散倾向。 major_slope决定大气主列的热力和 K 系数上下文;水冰和地表温度仍逐坡面处理。- 动量和热量扩散使用不同地表导度:动量用
zcdv,热量/水汽新方案多处用zcdh。 callyamada4、callatke、fallbackvdif_kc是互斥路径;doubleq && ngrid==1的80下限在三种路径之后统一施加。- H2O 水汽地表交换必须保留
make_tsub子步、dryness缩放、old_wsublimation_scheme的zcdv/zcdh选择、watercaptag的 watercap 透支逻辑和坡面cos投影。 adsorption_soil与非吸附 lag-layer 地下冰路径是不同实现;不要同时套用两套地下通量公式。hdo_surfex必须在 H2O 专段之后执行,因为它依赖saved_h2o_vap、更新后的qsat_tmp、H2O 通量和dwatercap_dif。- 诊断
zdqsdif_ssi_tot每步开头清零,只有当前步水汽段累计值;它不是 restart 累积量。
待确认
- 行 900-902 的普通 tracer 守卫写成
(.not.water).or.(.not.iq.eq.igcm_h2o_vap).or.(.not.iq.eq.igcm_hdo_vap)。由于一个iq不可能同时等于 H2O vapor 和 HDO vapor,这个条件按字面几乎恒真。已有 vdifc-water-surface-exchange 标为复现风险;本页按源码行为记录,是否应为.and.需对照上游版本确认。 co2clouds=.true.分支行 763-768 将zcondicea/dmice/pdtc置零,注释中保留了pcondicea_co2microp的使用痕迹;该路径的物理意图需结合 CO2 云主流程确认。hfmax作为vdifc入参声明但本文件未见实际使用;是否为历史接口保留待确认。compute_Tice中indexice是 integer,但行 1503 赋值0.;Fortran 会转换为 0,是否为笔误不影响当前源码字面复现。
相关页面
- physiq_mod -
physiq中calldifv调用vdifc并累加输出倾向。 - vdif_cd_mod - 地表层 Cd/Ch 交换系数。
- vdif_kc - fallback K 系数方案。
- yamada4 - Mellor-Yamada K 系数路径。
- lmdz_call_atke - ATKE K 系数路径。
- dust_windstress_lift - 风应力起尘默认路径。
- soilwater - 地下水汽/吸附水/地下冰求解器。
- hdo_surfex_mod - HDO 地表-大气通量。
- paleoclimate_mod - lag-layer 地下冰共享状态。
- vdifc-water-surface-exchange - H2O 地表交换段细页。
- dust-cycle, water-cycle, radiation