在Fortran中配置文件解析器

rem*_*mek 6 fortran config configuration-files

我希望能够使用一个简单的配置文件将参数传递给我的程序.此配置文件将包含一个参数列表,其值可以是不同类型(整数,实数,逻辑,单词列表等).

以下是我希望能够以简单方式解析的配置示例:

! This is a first comment
param1 = 1234;
param2 = TRUE;                    ! This is a second comment

param3 = abc def ghi jkl mno   
             pqr stu vwx yz;

! Another type of instruction, 
! i.e. to specify that var1-var3 depend on var4-var10:
var1 var2 var3 ~ var4 var5 var6
                 var7 var8 var9 var10;
Run Code Online (Sandbox Code Playgroud)

允许换行,并且可以将不同类型的指令传递给程序.

我知道NAMELIST可以以某种方式允许这样做(除了本例中配置文件的最后一部分),但它似乎不够灵活,不能满足我的需要.例如,我认为它不允许在配置文件中插入注释.

我在C和C++中发现了许多提供这样的配置文件解析器的库,但令人惊讶的是,在Fortran中没有任何东西.有人知道这样的图书馆吗?

在此先感谢您的帮助!

小智 5

我总是建议为您的配置文件使用标准格式。如果您想说,编写程序脚本,或者用另一种编程语言生成或读取配置文件,这可以在以后支付红利。现在(2015 年)有几个很好的标准配置文件解析器可用于 Fortran,因此无需使用其他语言。参见,例如:

请注意,这些都适用于现代 Fortran,并且需要较新的编译器之一(例如,gfortran 4.9 或更高版本)。


har*_*dkl 3

我们有一个名为 aotus 的库,它允许在 Fortran 应用程序中使用 Lua 脚本作为配置文件:AOTUS 可能这对您有用。