====== 基本プログラミングの要約 ====== ===== 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) !ファイルを閉じる