FORTRAN

FORTRANについてのメモ書きです。

2011/10/07 Update

ページ内リンク:

OpenMP

Optimization

ページ外リンク:

http://www.sakaguti.gr.jp/syuiti/fortran.html

NAMELIST

なんどもパラメータを変えて実行する場合に, 何度もコンパイルし直すのは効率が悪いのでnamelistを活用します.

まず以下のようなプログラムを書きます.

--- ここから main.f ---

program read

character*13 LIST

integer SLON

integer ELON

namelist /param/ LIST,SLON,ELON

read(5,param)

write(6,*) LIST

write(6,*) SLON

write(6,*) ELON

stop

end program read

--- ここまで ---

さらに, パラメータを指定するためのnamelist ファイルを以下のように書きます.

--- ここから namelist.input ---

&param

LIST = hogehoge

SLON = 100

ELON = 130

/

--- ここまで ---

そして, プログラムをコンパイル

g77 main.f

実行時は, 以下のようにしてnamelistを読み込ませます.

$ ./a.out < namelist.input

書式設定

よく忘れるのでメモ

’(a4)’ : 文字列4マス分

’(f6.2)’ : 小数点を含む実数で6マスとって2桁分は小数点以下, 1桁分は小数点

’(i3)’ : 整数3桁

入出力

既存のファイルに追記したいとき.

open(10,file='hoge.txt',position='append',status='old)

Binary File

open(10,file='hoge.bin',access='direct',status='old',form='unformatted',recl=100*100*4)

access='direct' : 直接探査.

form='unformatted' : 書式無し.

recl=100*100*4 : レコード長 (格子点数が100*100の 4byte 実数データを読む場合.) !コンパイル時に注意!

NaN

データにNaNを出力したいとき.

real nan

data nan/F'7fffffff'/

と宣言しておくと、「NaN」が出力出来る。

Makefileの書き方

http://www.c.csce.kyushu-u.ac.jp/~seiichirou/wiki/index.php?Makefile%A4%CE%BD%F1%A4%AD%CA%FD