Fortran NAMELIST
Fortran对命令行或是配置文件解析的功能比C/C++的弱很多,C/C++有很多成熟的开源工具可以解析命令行或是特定格式的配置文件(e.g., YAML或 JSON). 在一定场景下Fortran的namelist功能提供批量读入外部参数的问题,能相对减轻参数输入,调试、或是批量测试的编码工作量.
namelist一般能用在
- 批量参数IO输入,namelist机制支持一次输入多个块数据。可用在运行参数配置阶段.
- 批量打印输出。可用在调试阶段
- 适合静态情况(参数数目和类型固定),不适合动态配置情况(e.g., JSON输入,程序事先无法预测输入那些数据)
早期Fortran程序都是用纸片打卡机,每个纸片含有多行源码或参数卡数据,每行长度固定80个字节。之前看到过地震资料处理的Fortran老程序,解析参数卡非常繁琐,解析部分就占用了大部分代码量,头重脚轻!