fortranでプログラムを組むことになったのですが、これまでプログラムを組んだことがなかったので困っています。
gridgenで作成した.grdファイルをfortranで読み込ませることがうまくできません。
原因は、.grdのフォーマットがBLOCK構造体であるからだと考えています。
POINT構造体なら読み込めることが分かっているのですが…。
そこで質問です。
BLOCK構造体である「.grd」ファイルを読み込み、POINT構造体の「.dat」ファイルを出力するプログラムをfortranで組むにはどうしたらいいですか?
BLOCK構造体とは以下の形式。
X1 X2 X3 X4
X5 …Xn
Y1 Y2 Y3 Y4
Y5 … Yn
Z1 Z2 Z3 Z4
Z5 … Zn
POINT構造体は以下。
X1 Y1 Z1
X2 Y2 Z2
X3 Y3 Z3
X4 Y4 Z4
X5 Y5 Z5
… … …
Xn Yn Zn
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1 にはちゃんと「変数の宣言が適切になされていれば」って書いてあります.
つまり, あなたの作ったプログラムは「変数の宣言が適切になされてい」ないんです.
なんで
integer xx,yy,zz,a,b,i
なの?
この回答への補足
変数の宣言の意味が分からず、google検索したところ
integer,整数型
real,実数型
logical,論理型
といったことが分かりましたが実際の使い方や意味を理解できていないため、
このようなかたちになりました。
No.1
- 回答日時:
1番と2番でそれぞれ.grdファイルと.datファイルをOpenして,変数の宣言が適切になされていれば
read(1,*) (xx(i),i=1,n)
read(1,*) (yy(i),i=1,n)
read(1,*) (zz(i),i=1,n)
do i=1,n
write(2,*) xx(i),yy(i),zz(i)
enddo
こんな感じ。
この回答への補足
ご回答ありがとうございます。
試しに以下のように書いてみましたが、エラーメッセージが表示されてうまくいきませんでした。
書いたプログラム(test.f)
implicit none
integer xx,yy,zz,a,b,i
open(1,file='test.grd')
read(1,*) a,b
read(1,*) (xx(i) , i=1,a*b)
read(1,*) (yy(i) , i=1,a*b)
read(1,*) (zz(i) , i=1,a*b)
close(1)
open(2,file='test.dat')
write(2,*) a,b
do i=1,a*b
write(2,*) 'xx(i)' , 'yy(i)' , 'zz(i)'
end do
close(2)
stop
end
----------------------------------------
エラーメッセージ
In file test.f:6
read(1,*) (xx(i) , i=1,a*b)
1
Err: Expected variable in READ statement at (1)
----------------------------------------
test.grdの中身
4 2
1 1 2
2 3 3
4 4
6 7 6
7 6 7
6 7
0 0 0
0 0 0
0 0
----------------------------------------
型宣言が間違っているのか、なぜエラーするのか自分では分からないので、指摘していただけると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
SGファイルって何ですか?
-
Excelマクロでの再読込み方法
-
マスタとファイルの違いって?
-
CSVファイルへの保存の際、デー...
-
VBAにてEXCEL以外のファイル(テ...
-
C言語のfopenについて教えてく...
-
ASP .NETでファイル選択ダイア...
-
hostsファイルの登録MAX数
-
ドラッグアンドドロップでファ...
-
WAVファイル同士の結合が可...
-
VBに、Cのincludeのようなもの...
-
CSVファイル読み込み
-
ファイルの結合
-
csvファイルを開かずに文字を検...
-
インターネットショートカット
-
Javascript で INI の読み書き
-
ファイルオープンの際のウィン...
-
XMLファイルの表示について
-
iniファイルに追記がしたいです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
テキストファイルの最終行を削...
-
CSVファイルへの保存の際、デー...
-
VBに、Cのincludeのようなもの...
-
分割コンパイルの#defineについて
-
SGファイルって何ですか?
-
グローバル変数のよくない使い...
-
Excelマクロでの再読込み方法
-
iniファイルに追記がしたいです。
-
ASP .NETでファイル選択ダイア...
-
ハッシュの計算時間について
-
バッチで118項目のCSVを処理し...
-
FileOpen 関数で既にファイル...
-
Javascript で INI の読み書き
-
fopenできる上限の変更
-
VBAにてEXCEL以外のファイル(テ...
-
マウスポインタの変更
-
C言語のfopenについて教えてく...
おすすめ情報