【问题标题】:Should namelists be avoided in Fortran and if so what is the recommended alternative?在 Fortran 中是否应该避免使用名单,如果是,推荐的替代方案是什么?
【发布时间】:2017-06-21 12:39:30
【问题描述】:

我经常使用名称列表功能将参数列表灵活输入到 FORTRAN 程序中,但前几天搜索时提醒自己使用它们时我came across this statement:

它(f77 的名称列表语言扩展)现已包含在 Fortran 90 语言中。但是,NAMELIST 是一个设计不佳的功能,应尽可能避免使用。

我只是想知道

  1. 如果这是普遍持有的观点?
  2. 如果是,为什么会这样?
  3. 建议的参数输入替代方案是什么? (我当然使用 netcdf 进行网格化数据文件输入,我这里考虑的是运行时参数设置)。

【问题讨论】:

  • 对不起,这是非常基于意见的。许多气象学项目(天气预报和气候模型)的大多数配置都使用名单。其他人不喜欢他们。
  • 另外,你链接的资源已经很老了,如果它说的是 Fortran 90,它已经超过 25 年了。截至 2017 年,名单肯定在许多项目中使用。
  • 我比较喜欢NAMELIST,已经用了很多年了。
  • 我也非常喜欢名单,但为了让这个问题不那么“基于意见”,关注名单的哪些功能(或供应商扩展)可能是有用的编译器(我也想知道...)
  • 仅供参考,这个页面可能很有趣(关于名称列表、JSON、INI、XML 等之间的比较)degenerateconic.com/fortran-configuration-file-formats 和相关页面degenerateconic.com/tag/json

标签: fortran fortran90 fortran95


【解决方案1】:

在 Metcalf 等人的经典著作:Modern Fortran Explained 中,没有提到任何名称列表效率低下和设计不佳。 https://books.google.com/books?id=V7UVDAAAQBAJ&lpg=PP1&pg=PA197#v=onepage&q=namelist%20I/O&f=false 相反,我相信名称列表——尤其是在 Fortran 2003 和 2008 中增加的增强功能——是非常有用和灵活的数据 I/O 方法。

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 2015-11-09
    • 2018-03-21
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多