使用模块在 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.
,它应该可以工作。
我使用 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.
,它应该可以工作。