Runtime options and build provenance

源码基线:LMDZ.COMMON-6.3\LMDZ.COMMON。 Mars 运行参与度:必经入口前置层;--add-sso 只服务 Mars start2archive--auto-exit 帮助文本限定 PEM。

范围

环节 当前源码事实 复现意义
串行入口 dyn3d/gcm.F90:32 导入 parse_args:146 调用。 conf_gcm/run.def 前处理 argv。
并行入口 dyn3dpar/gcm.F:29 导入,:160 调用。 并行 GCM 也有同一 option 层。
option parser misc/program_options.F90:37 定义 parse_args 识别 --help--version [file]--add-sso--auto-exit
provenance makelmdz_fcm:590 生成 libf/misc/version_control.F90:641MODULE version_control --version 输出编译命令、日期、用户、主机、目录和 VCS 状态。
job walltime misc/job.F90:82 定义 get_job_timelimit --auto-exit 查询 scheduler timelimit。

执行顺序

gcm / gcm.e
  -> parse_args()
       -> --help: 打印帮助
       -> --version [file]: 调 version_control:print_pgrm_version
       -> --add-sso: 设置 start2archive SSO 开关
       -> --auto-exit: 读取 scheduler job id 和 timelimit
       -> 未知参数: abort_gcm
  -> conf_gcm / run.def / tracer / start.nc
  -> leapfrog 或 leapfrog_p

parse_args() 是命令行层,不是 run.def 配置层。它在主配置前运行,所以拼错 option 会早于配置读取失败。

Provenance 约定

makelmdz_fcm 生成 version_control.F90,公开 print_pgrm_version(user_filename)。默认文件为 pgrm_version_control.txt--version foo.txt 会写用户文件。复现实验时,应把该输出与运行脚本、run.def 一起保存。

复现检查

  1. 确认可执行由 makelmdz_fcm 构建。
  2. 保存 ./gcm.e --version provenance.txt 输出。
  3. 普通 Mars GCM 不把 --add-sso 当作时间推进开关。
  4. --auto-exit 需确认 SLURM_JOBID/PBS_JOBID 和实际使用代码。

相关页面