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,:641 写 MODULE 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 一起保存。
复现检查
- 确认可执行由
makelmdz_fcm构建。 - 保存
./gcm.e --version provenance.txt输出。 - 普通 Mars GCM 不把
--add-sso当作时间推进开关。 --auto-exit需确认SLURM_JOBID/PBS_JOBID和实际使用代码。