08/07/24 23:34:50
>>443
その通り。ただ定数を直接書くのではなくパラメータ指定した定数を書かないと
はっきり分からんだろう。これはサブルーチンの引数が参照渡しなので起こりうる。
SUBROUTINE sub_test(a, b)
IMPLICIT NONE
REAL, INTENT(IN OUT) :: a, b
REAL :: tmp
tmp = a
a = b
b = tmp
RETURN
END SUBROUTINE sub_test
!===========================================
PROGRAM test
IMPLICIT NONE
REAL, PARAMETER :: a = 1.0, b = 2.0
EXTERNAL :: sub_test
PRINT *, 'a=', a, ' b=', b
CALL sub_test(a, b)
PRINT *, 'a=', a, ' b=', b
STOP
END PROGRAM test
Fujitsu-Lahey Fortran95 実行結果 (Intel Fortran は実行時エラー)
a= 1.00000000 b= 2.00000000
a= 2.00000000 b= 1.00000000
Program Completed
Press Enter to Continue.
>>444
過去レス>>326と重複している。その回答を読め。