前提・実現したいこと
txtファイルからデータを読み込みnetcdfファイルに使うための新しい変数に入れ込むコードを書いています。
データは36072030年*12か月分入っています。
この多量のデータをまず一つの変数に読み込ませ, (緯度,経度,月)の配列をもつ新しい変数に変換しようと思っています。
最後の3年×12か月分のデータだけほしいので以下のコードを書いてみました。
コードにエラーは起きていないのですが問題はないのですがそれが私を余計に混乱させています。
データがしっかり読み込まれているか確認するため新しい変数に配列外の値を読み込んでもエラーが起きないので困惑しています。
明らかにおかしいコードでもエラーが起きないのはなぜなのでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
program file
implicit none
character(len=*),parameter:: Fn_out_NSC = '/home/code/mpi2/out_NSC.txt'
integer :: j,k,t,i
real :: lonNo, latNo
integer, parameter::NX= 720, NY = 360, Simulation_year = 30, time = 3, month = 12 !simulation year
integer,parameter::LatNoStart = 1
integer,parameter::LatNoEnd = 360
integer,parameter::LonNoStart = 1
integer,parameter::LonNoEnd = 720
real, dimension(1:360) :: lat
real, dimension(1:720) :: lon
integer,parameter::LatMax = 360
integer,parameter::LonMax = 720
integer, dimension(1:720360) :: landmask
real, dimension(720,360) :: outlandmask
real, dimension(1:LonMaxLatMaxmonthSimulation_year) :: NSC !simulation year
real, dimension(720, 360, month*time):: out_NSC !simulation year
open (1, file = Fn_out_NSC, status = 'old') k = 1 do j = 1,LatMax*month*Simulation_year read (1, '(720f9.3)') NSC(k:k+LonMax-1) k = LonMax * (j) + 1 end do close (1) DO t = 1, time*month DO k = 1, 360 DO j = 1, 720 out_NSC(j,k,t) = NSC(j+LonMax*(k-1)+LonMax*LatMax*(t+(Simulation_year+1)*month-1)) END DO END DO END DO
stop
end program
Fortran
1ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー