使用模块在 Fortran 中初始化

Initialization in Fortran Using Modules

我使用 Intel Visual Fortran。我正在处理的问题有很多参数,我想避免在每个例程开始时重复声明和启动它们。

有什么方法可以使用模块初始化这些参数吗?
答案当然是肯定的,但是一些内在函数在启动语句中是不被接受的。
这里是一个简单的示例代码,

    MODULE mod
        IMPLICIT NONE
        REAL, PARAMETER :: x = SQRT ( 4 )
    END MODULE

    PROGRAM prog
        USE mod
        IMPLICIT NONE
        PRINT *, x
    END PROGRAM

编译后,编译器向我显示此 错误:

Error #6362: The data types of the argument(s) are invalid.   
[SQRT] Source1.f90

尽管使用 ABS ( ) 后不会出现此错误,但 SIN ( ) 会出现此错误。

问题是 sqrt(和 sin)内在函数需要一个浮点参数。恰好有 abs.

的浮点和整数实现

4 替换为 4.,它应该可以工作。