我要求用户在运行时给出一个值来进行一些计算。
这些操作在C ++和C#中都要容易得多,但我找不到在Fortran中这样做的方法。
答案 0 :(得分:2)
我猜“null或empty”表示变量是否已初始化:“尚未设置”。 “null”对Fortran指针变量有特定的含义,但我想这不是你的问题。
Fortran在故意初始化之前不会自动为变量赋予特殊值,因此没有简单的方法来检查变量是否已初始化。一种方法是使用特殊值初始化变量的声明。这意味着您需要知道在程序操作中永远不会获得的特殊值。一种可能性是使用huge
内在:
program TestVar
real :: AVar = huge (1.0)
if ( AVar < huge (1.0) ) then
write (*, *) "Test 1: Good"
else
write (*, *) "Test 1: Bad"
end if
AVar = 2.2
if ( AVar < huge (1.0) ) then
write (*, *) "Test 2: Good"
else
write (*, *) "Test 2: Bad"
end if
end program TestVar
正如@arbautjc警告的那样,即使在子程序中也只能使用一次。在一个过程中,声明初始化仅在第一次调用时完成。另外,如果您更改此示例中的变量类型,请务必了解huge
的工作原理(例如Long ints in Fortran)。