質問内容
Fortran初心者です.
2点わからないことがあったのでお聞かせください.
質問.1
最下部に記載するコード内の後半部分
read(7) ( ni(m), nj(m), nk(m), m = 1, nblocks )
は2行目を読み取りそれぞれに格納だと思うのですが、m=1の部分にも数字の様なものが”3D.x”から読み取られ、入るのでしょうか?
質問.2、質問1でお聞きした行の2行下に記載されている
read(7) & ((( x(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)), & ((( y(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)), & ((( z(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m))
は装置番号7に設定したファイルからデータを読み込み、
それぞれのx,y,zに格納していくというものだと思うのですが、
その読み取る”3D.x"の中身はどのx,y,zと対応しているのか、
ni nj nk
x(1,1,1,1), y(2,1,1,1), z(3,1,1,1)
x(4,1,1,1), ..., z(ni,1,1,1)
x(1,2,1,1), y(2,2,1,1), z(3,2,1,1)
の形で読み取っていくのでしょうか、また3D.xもこれと同様の形態をとっているのですよね?
間違っていれば順番も教えていただけるとありがたいです.
以上です、よろしくお願いします.
該当のソースコード
parameter ( imax = 100 )
parameter ( jmax = 100 )
parameter ( kmax = 100 )
parameter ( nbmax = 10 )
integer i integer j integer m integer nblocks integer ni (nbmax) integer nj (nbmax) integer nk (nbmax) real x(imax,jmax,kmax,nbmax) real y(imax,jmax,kmax,nbmax) real z(imax,jmax,kmax,nbmax) open ( unit=7, form='unformatted', file='3D.x' ) read(7) nblocks read(7) ( ni(m), nj(m), nk(m), m = 1, nblocks ) do m = 1, nblocks read(7) & ((( x(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)), & ((( y(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)), & ((( z(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)) enddo
あなたの回答
tips
プレビュー