私は次のような関数を持っています:
PURE FUNCTION simulate(initial_state, time_specification)
TYPE(ocean), INTENT(IN) :: initial_state
TYPE(simulation_time), INTENT(IN) :: time_specification
TYPE(ocean) :: simulate
REAL :: t = 0.0
! etc
END FUNCTION simulate
gfortran 4.8.1は、次のことを通知します。
REAL :: t = 0.0
1
Error: Initialization of variable at (1) is not allowed in a PURE procedure
私が理解しているように、SAVE属性がない限り、純粋関数内でローカル変数を使用できるはずです。だから私は何が間違っているのですか?
最新のFortranでは、初期化はを意味しSAVE
ます。F2008から5.2.3
共通ブロックにない変数の明示的な初期化は、SAVE属性を意味します。これは、明示的な指定によって確認できます。
ローカル変数を使用できますが、
real t
t = 0
これは初期化ではありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加