====== 基本プログラミングの要約 ======
===== implicit none宣言と変数の宣言 =====
program プログラム名称
implicit none !最初にimplicit none宣言を必ず行う
integer a1 !整数型変数の宣言
real(8) run !倍精度実数型変数の宣言
a1 = 3776 !整数型変数への数値の代入
run = 32.19872d0 !倍精度実数型変数に代入する数値には、d0をつける
! ... プログラムの実行文が続く
end program プログラム名称
===== 宣言文中で変数の初期値を指定する =====
宣言文に2連**::**を入れる。
integer::a1=3.1415
real(8)::run=42.193d0
===== 標準入出力 =====
read文とwrite文による標準入出力は、** * **を使用する。
integer i !整数型変数iの宣言
readl(8) a !
write(*,'(a\)') 'input i,a : ' !入力を促す表示(改行を抑制しておる)
read(*,*) i,a !標準入力(キーボードからの入力)からの読み込み
write(*,*) 'i,a = ',i,a !標準出力(ディスプレイ画面)への表示
===== 書式指定でwrite文標準出力 =====
real(8) x,y,z !倍精度実数型変数としてx,y,zを宣言
x=10.000d0
y=20.000d0
z=x+y
write(*,'3e12.4)') x,y,z !小数点以下4桁の指数表示でx,y,zを標準出力
===== doループによる反復演算 =====
整数のwaの求める例
wa=0 !waを0クリア
do i=1,10 !iは1から10以下の範囲で、1ずつ増加する
wa=wa+i !総和waを計算
write(*,*) 'wa = ',wa !途中経過のwaを出力
end do
===== if文とstop文 =====
除算を行う場合、0割を防ぐために分母が0であるかのチェックをする。
if (n == 0) then !n=0ならば、次のstop文が実行される
stop 'stop : n=0' !''内の文字を出力して演算を停止する
else !n=0ないならば、次の文が実行される
k=m/n !m/nの値がkに代入される
endif !ブロックif文の終わり
===== exit文によりdoループから抜ける =====
waの値が100を超えたら、doループから抜けてwrite文を実行する例
wa=0 !waを0クリア
do i=1,100,2 !iは1から100以下の範囲で、2ずつ増加する
wa=wa+i !waを計算
if (wa > 100) exit !waが100より大きければループを抜ける
end do
write(*,*) 'wa = ',wa !waを出力
===== cycle文によりdo文へ戻る =====
do i=1,10
if ( i<4 .or. i>7) cycle !i<4 またはi>7の時はdo文に戻る
write(*,*) i !iを出力(4,5,6,7と出力される)
end do
===== goto文により多重ループから抜ける =====
do i=1,10 !外側のループ
do j=1,10 !内側のループ
a=s+dx*dy !aの計算
if ( s > 10.0d0) goto 1 !sが10.0を超えたら文番号1の実行文に移動
end do !内側のループ終了
end do !外側のループ終了
1 continue !文番号1の実行文(continue文は何もしない実行文)
===== open文による入力ファイルから読み込み =====
open(10,file='input.dat') !ファイル番号10番で入力ファイルinput.datを開く
read(10,*) i,a !i,aの値をinput.datから読み込む(read文に10番を使う)
close(10) !ファイルを閉じる
===== open文による出力ファイルへ書き込み =====
open(20,file='output.txt') !ファイル番号20番で出力ファイルoutput.txtを開く
write(20,*) i,a !i,aの値をoutput.txtに書き出す(write文に20番を使う)
close(20) !ファイルを閉じる