datafile_mod.F90

路径

LMDZ.MARS\libf\phymars\datafile_mod.F90

所属目录 / 模块

libf/phymars

文件定位

datafile_mod.F90 是运行时外部数据目录的共享状态模块。源码只定义 datafile_mod 模块和一个 SAVE 字符变量 datadir,默认值为 /u/lmdz/WWW/planets/mars/datadir,并把该变量声明为 OpenMP THREADPRIVATE。它本身不打开文件、不读写 NetCDF,也不定义例程;实际文件访问发生在导入 datadir 的下游模块中。

这个模块是辐射、CO2 云、极冠反照率、尘埃场景、NLTE、近红外修正、化学/光化学表、动力-物理初始化读表等流程的统一目录入口。conf_phys.F 会通过 getin_p("datadir", datadir) 读取 callphys.def 中的路径覆盖默认值;dynphy_lonlat/phymars/datareadnc.F 也会先把 datadir 设回同一默认路径,再用 getin("datadir", datadir) 覆盖后读取 surface.nc

定义的符号

符号 类型 行号 作用
datafile_mod module 2 保存运行时数据目录路径的共享模块
datadir module variable, character(len=300), save 8 运行时数据目录根路径,默认 /u/lmdz/WWW/planets/mars/datadir
datadir threadprivate 声明 OpenMP directive 10 让每个 OpenMP 线程持有自己的 datadir 副本

依赖的模块

use 模块 only 列表 用途 待确认
- 本文件没有 use 依赖

调用的关键例程

被调用例程 所在模块 / 文件 调用位置 作用
- - 本文件不定义可执行过程,也不调用例程

输入

输入 来源 类型/维度 单位 含义
datadir 默认字符串 datafile_mod.F90 character(len=300) - 未被配置覆盖时的外部数据目录
datadir 配置项 callphys.def.* / conf_phys.F::getin_p 字符串 - GCM 物理配置读取的运行时数据目录
datadir 配置项 datareadnc.F::getin 字符串 - surface.nc 读取路径的运行时覆盖入口

输出

输出 去向 类型/维度 单位 含义
datadir 所有 use datafile_mod, only: datadir 的源码 character(len=300) - 下游拼接 trim(datadir)//"/..." 形成外部表文件路径

共享状态与副作用

核心逻辑

  1. 进入模块后启用 implicit none
  2. 定义 character(len=300), save :: datadir="/u/lmdz/WWW/planets/mars/datadir"
  3. 通过 !$OMP THREADPRIVATE(datadir) 声明 OpenMP 线程私有副本。
  4. 下游配置读取流程可覆盖 datadir
  5. 下游物理、化学、辐射和初始化模块把 datadir 作为运行时数据根目录拼接具体文件名。

伪代码

module datafile_mod
  datadir = "/u/lmdz/WWW/planets/mars/datadir"
  make datadir threadprivate
end module

read optional config key "datadir" into datafile_mod.datadir
path = trim(datadir) // "/" // required_runtime_filename
open or inquire path

参与的主题流程

主题 参与方式
CO2 循环 co2cloud_modoptprop_co2ice_1mic.datimprovedco2clouds_modMeteo_flux_Plane.dat 提供目录根
辐射 为气溶胶光学属性表、近红外修正和 NLTE 数据提供目录根
尘埃循环 read_dust_scenario_mod 读取 dust_*.nc 场景提供目录根
配置系统 callphys.defdatadir 配置项会覆盖默认路径

写法特点

复现要点

待确认

相关页面