我使用英特尔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 ( )
会这样做。
答案 0 :(得分:4)
问题是sqrt
(和sin
)内在函数需要浮点参数。恰好是abs
的浮点和整数实现。
将4
替换为4.
,它应该有效。