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で質問しましょう!
似たような質問が見つかりました
- 大学受験 英語の勉強で読み込みをしています。その読み込む前に別のプリントに構文をふって、文全体がどのような構造 4 2022/07/31 21:10
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- 数学 場合の数、確率 45 (浜松医科大学) 1 2023/07/29 13:52
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- 数学 正四面体を重ねてできる構造物とは? 2 2023/04/15 00:27
- C言語・C++・C# C言語 2 2022/07/21 00:02
- 英語 英語の勉強法です。高3です。 今長文を2日に1題ずつ文構造から和訳など完全に内容と構造を掴むまで取り 2 2022/07/25 07:38
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- 英語 English can be very challenging at times 1 2023/05/28 11:15
- 工学 西洋の教会の鐘で巨大な鐘を揺らして鳴らすのは、物理的にどんなメリットがあるの? 9 2022/12/13 08:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
SGファイルって何ですか?
-
ファイル名の先頭にアンダース...
-
アドレス帳WABファイルをサンダ...
-
C言語関数違いについて。
-
マウスポインタの変更
-
VC++の外部依存関係
-
VBに、Cのincludeのようなもの...
-
DTDファイルについて
-
テキストファイルの最終行を削...
-
グローバル変数のよくない使い...
-
2つのテキストファイルのマー...
-
VBAにてEXCEL以外のファイル(テ...
-
処理負荷特定で考えられる要因...
-
fopenできる上限の変更
-
エクセルVBAでフォルダ内の重複...
-
C言語のfopenについて教えてく...
-
ShellExecuteEx→WaitForSingleO...
-
ファイルの結合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
dataファイルをxtxファイルにす...
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
大きいサイズのテキストファイ...
-
テキストファイルの最終行を削...
-
ドラッグアンドドロップでファ...
-
グローバル変数のよくない使い...
-
CSVファイルへの保存の際、デー...
-
ファイルの結合
-
SGファイルって何ですか?
-
VBに、Cのincludeのようなもの...
-
XMLファイルの表示について
-
分割コンパイルの#defineについて
-
ハッシュの計算時間について
-
バッチで118項目のCSVを処理し...
-
RPGでファイル名(もしくはレコ...
-
Excelマクロでの再読込み方法
-
C言語のfopenについて教えてく...
-
COM相互運用機能のON,OFFによる...
おすすめ情報