計算機が優れている要因の一つとして計算スピードの速さが挙げられると思います。人間が計算して1日以上かかるものがミスなく1秒で行えるとしたら魅力ですよね。また、同じような計算を何回も行う場合、人間だったら飽きて途中でやめちゃったり、計算ミスがあるかもしれません。 しかし、プログラムでは、ほとんどの場合そんなことがありません。これを如実に表した関数がDo文いわゆる繰り返し文だと思います。 例えば、
1+2+3+4+5+6+…n
といった計算でn=1000000まで加算してくださいという問題がでたとします。我々が計算すると途中で根をあげたくなりますが、プログラムならわずか1秒たらずで計算終了です。
プログラミング言語で書くとどうなるか。
このような繰り返し文を用いる場合、Fortranだけに限らずDo文を用います。VBAを使っていたときはFor文を良く利用していました。
「100000回繰り返す」→「Do i =1,100000」
はい、これだけです。まず、Doと宣言し適宜、変数を書きます(ここではi)。さらに、右辺の「1,100000」で1から100000まで繰り返すという意味です。Do文で 繰り返す変数の宣言と、始めの数字及び繰り返す回数を定義すればOKです。あとは、繰り返したい計算式に定義した変数を組み込みます。
早速、Fortranで書いてみる。
さて、ダウンロードしたエディタ(僕はTerapad)を開いてプログラムを書いてみます。 まだコンパイラしていません。とりあえず、「Terapad」を利用している方は
「名前をつけて保存」→保存形式を「全てのファイル」として→「○○.f90」と保存してください。
そうすると、F90ファイルが生成されます。書いたプログラムはこんな感じ。
do-loop.f90のソースコード
! 1**2+2**2+…10**2を計算するプログラム
program loop
implicit none
integer i,k
k=0
do i =1,5000,2
k=k+i
end do
Write(*,*) ' k =',k,' i =',i
stop
end program loop
do-loop.f90の説明
5行目の「k=0」ということを宣言しています。
6行目の「do i =1,5000,2」でiという変数に対して「1~5000まで2づつ繰り返えす」ということを表現しています。
7行目の「k=k+i」式内の変数iに対して「1~5000まで2づつ繰り返えす」ので、「k=k+i」はk=0の状態から2づつ加算されていきますね。
8行目の「end do」Do文の終了を宣言します。
if2.f90をコンパイラしてみる
さて、コンパイラしてみましょう。デスクトップにある「Fortran」フォルダを開いてください。開いたらコマンドプロンプトのショートカットをクリックします。 コマンドプロンプトの画面に「g95.exe ○○○.f90」と入力してEnterキ―を押します。 これまた何のエラーもなくコンパイラできました!すると、フォルダ内に「a.exe」という実行ファイルが生成されます。コマンドプロンプトに「a.exe」と入力すると、
コマンドプロンプトにkとiの値が表示されたのなら成功です。
ここまで学んできたIf文とDo文で建築構造の数値解析は結構できます。最後に重要な項目、「配列」について勉強したら「ニューマークのβ法」をFortranでつくってみましょう。 次は→「配列について」
有料メルマガを無料で見てみませんか?⇒ 忙しい社会人、学生のためのビルディング・アップデート