2 つの配列を追加しようとしていますが、何らかの理由でターゲット配列にゼロしか含まれていません。プログラムをコンパイルして実行すると、エラーは発生しませんが、出力ファイルが間違っています。コードでは、配列 Gnaatm と Gnascf に値を入力する dhscf を呼び出し、givenaa と Givenas にそれらを保存しようとし、dhscf を再度呼び出して、Gnaatm と Gnascf の新しい値を取得します。これらすべての配列をファイルに書き込むと、gnaatm と Gnascf は空ではありませんが、givenas en Givenaa は空に見えます。
私が使用しているコードは次のとおりです。
モジュール変数
real(dp), dimension(:), allocatable :: Gnaatm(:), Gnascf(:), gavenaa(:), &
& gavenas(:)
エンドモジュール
grdsam.f:
allocate (Gnaatm(nasize))
allocate (Gnascf(nasize))
allocate (gavenaa(nasize))
allocate (gavenas(nasize))
call dhscf(.....)
gavenaa = Gnaatm
gavenas = Gnascf
do ipt = 1, npt
call dhscf(....)
gavenaa = Gnaatm + gavenaa
gavenas = Gnascf + gavenas
enddo
open(unit=12, file="Zgavenaatm.txt", status="replace")
do iwrite = 1, nasize
write(12, *), iwrite, gavenaa(iwrite), Gnaatm(iwrite)
enddo
close(12)
open(unit=12, file="Zgavenascf.txt", status="replace")
do iwrite = 1, nasize
write(12, *), iwrite, gavenas(iwrite), Gnascf(iwrite)
enddo
close(12)
deallocate (Gnaatm)
deallocate (Gnascf)
deallocate (gavenaa)
deallocate (gavenas)
エンドグラサム
プログラムを実行するとエラーは発生しませんが、出力ファイルが間違っています。典型的な出力は次のようになります。
10 0.0000000000000000 -2.35488624992556957E-015
11 0.0000000000000000 -4.75822627213221874E-017
12 0.0000000000000000 -7.16040821425613171E-014
13 0.0000000000000000 8.33283089385797112E-021
14 0.0000000000000000 -1.04121906025281556E-014
2 列目にはゼロのみが含まれていますが、3 列目には数値が含まれています。したがって、配列 'Gnaatm' と 'Gnascf' には数字が含まれていますが、なぜか 'gavenaa' と 'gavenas' にそれらを追加するとうまくいきません。誰が私が間違っているのか教えてもらえますか?
ps。Ubuntu 12 で gfortran コンパイラを使用しています。