我猜你的意思是「空或空」是否一個變量已被初始化:「尚未設置」。 「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)。
難怪在C++中使用C++會比較容易,因爲您需要的東西在Fortran中可能沒有任何意義。你能指定你的意思是由空或空的聲明變量? –
我相信單一變量的值在C++中也是未定義的。 – agentp