使用模块在Fortran中初始化

时间:2015-01-12 11:08:51

标签: fortran intel-fortran

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

有没有办法使用MODULES初始化这些参数?
当然答案是肯定的,但是在启动语句中不接受某些内在函数。
这是一个简单的示例代码,

    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 ( ) 会这样做。

1 个答案:

答案 0 :(得分:4)

问题是sqrt(和sin)内在函数需要浮点参数。恰好是abs的浮点和整数实现。

4替换为4.,它应该有效。