まず, 内容が次のファイル101021_1.datを作成してください.
2.1D0 5.4D0
次のプログラムを書いてみよう.
implicit none
real*8 a,b,c
open(1,FILE='101021_1.dat')
open(2,FILE='101021_2.dat')
read(1,*) a,b
c=a+b
write(2,*) c
end
以上二つのファイルが作成できたらコンパイル後実行してください.
プログラムから数値を読み込む場合, 通常はファイルから読み込ませます. キーボードから読み込ませることもできますが, そうすると入力した数値が後で判らなくなってしまうことが多いからです. また, 計算結果も通常はファイルに書き込ませます. ファイルを開くには上の例のようにopen文を用います. 書式は次の通り.
| open文 | open(n,FILE='ファイル名') |
| n | 外部装置識別子(5,6を除いた整数を使う) |
|---|
次のプログラムを書いてみよう.
implicit none
real*8 a,c
integer n,i
a=1.D0
c=0.D0
n=10
do i=1,n
c=c+a
enddo
write(6,*) c,n
end
これは,整数iを1からnまで一つづつ増やしつつenddo文までを反復しなさいというプログラムである.フォートランでは反復計算をDOループを用いて行なう. 基本的な書き方は次の通り:
| DOループ | do i=m1,m2,m3 .......... enddo |
| i | 制御変数(整数型を使う) |
|---|---|
| m1 | 制御変数の初期値 |
| m2 | 制御変数の終値 |
| m3 | 制御変数の増分(省略すると1になる) |
増分を1以外の数にとったのが次の例:
implicit none
integer i
do i=0,11,2
write(6,*) i
enddo
end
implicit none
integer i
do i=10,0,-1
write(6,*) i
enddo
end
DOループは重ねてつかうことができる. 例として:
implicit none
integer i,j
do i=1,10
do j=1,5
write(6,*) i,j
enddo
enddo
end
プログラムを作成し実行せよ. iとjがどのように増えていくか着目すること.