2章:Fortran90プログラミング基礎
0.2:動作環境について
2.1 プログラムの基本構成
ここでは、プログラムの記述のしかたと基本的な構成について学習する。
2.1.1 プログラムの記述のしかた
ここでは、プログラムを記述する際に使用できる文字と記述形式について説明する。
■使用可能文字
プログラムの記述に使用できる文字は英字、数字、下線、特殊文字の4種類である。
- 英字:A~Z(大文字・小文字どちらも使用可能。ただし大文字と小文字は区別されない)
- 数字:0~9
- 下線:_
- 特殊文字:(空白) = + - * / ( ) , . ’ : ! ” % & ; < > ?$
■プログラムの形式
プログラム形式には、固定形式と自由形式の2つの形式がある。プログラムの中では、自由形式と固定形式を同時に使用することはできない。固定形式または自由形式のどちらかで書く必要がある。
自由形式と固定形式の大きな違いは、固定形式が行の最初の7文字目から書く(6文字目までには文番号などを書く)のに対して、自由形式はどの位置から書いても良い、という点である。その他の違いには、以下のような点がある。
固定形式 | 自由形式 | |
---|---|---|
行 | 1行に使用できる文字数は最大72文字(1~72桁)まで。 1行には1文しか書けない。 |
1行に使用できる文字数は最大132文字(1~132桁)まで。 セミコロン(;)で区切れば、1行に複数の文を記述できるが、プログラミング上は1行につき1文にとどめるほうがよい。 |
注釈行 | 1桁目に C またはアスタリスク(*)を書く。 | 注釈記号は「!」。「!」から行末までが注釈となる。 |
注釈行には処理系で許されるすべての文字(ひらがな・カタカナ・漢字を含む)を書くことができる。
固定形式 | 自由形式 | |
---|---|---|
文番号 | 1~5桁の範囲に書く。 | 文番号を付ける場合、文番号は文の先頭に書き、文との間を少なくても1つの空白で区切る。記述する場所は任意。 文番号は1~99999までの整数で記述する。 |
継続行 | 7~72桁の範囲に書く。 | 次の行に継続させる行の最後にはアンパサンド(&)を書く。継続行は最大39行まで。 文字定数が2行以上にわたる場合は、次の行に続く最初の文字の前にもアンパサンド(&)を書く。 |
ファイル名 | 拡張子は.f(.forを使う場合もある) | 拡張子は.f90。 |
2.1.2 プログラムの構成について
ここでは、以下のプログラム例をもとにプログラム構成を説明する。
(例)「画面に ABCD と表示せよ。」というプログラムを書く
PROGRAM REI_1 !見出し
IMPLICIT NONE !暗黙の型宣言を無効にする宣言
WRITE(*,*) ’ABCD’ !処理の記述
STOP !STOP文
END PROGRAM REI_1 !END文
■見出し
PROGRAM などのプログラム名を記述する。先頭は必ず英字で始まり、31字以下で記述する。使用できる文字は半角英数字と_(下線)。
PROGRAM プログラム名
■暗黙の型宣言を無効にする宣言
以前の Fortran の文法にあった暗黙の型宣言(変数名が I、J、K、L、M、N で始まる時は整数型、それ以外の文字で始まれば実数型とみなすという約束)を無効にするためのプログラム文。省略することもできる。
■処理の記述
代入文や入出力などを書く。WRITE は出力を意味する命令。
(*,*)は標準入出力と並び入出力の指示。表示したい文字は続けて引用符(')で囲んで書く。
(*,*)の一つ目の*は装置番号,二つ目の*は書式を表す。
■STOP文
STOP と書く。プログラムの実行を終了させるという意味をもつ。必ずしもプログラムの終わりに書く必要はなく、プログラムの実行を終わらせたい位置に書けばよい。よって1つのプログラム中に複数の STOP 文を書くこともできる。また、省略も可能である。
STOP
STOP 文を省略した場合は、END 文が STOP 文の役割を兼ねることになるが、それを禁止している処理系があるので書いておいたほうがよい。
■END文
END PROGRAM に続けてプログラム名を書く。プログラムを終わらせる時には必ず書く。
END PROGRAM プログラム名
次に算術文を書く場合について説明する。
算術文では、加減乗除やべき乗を表すために演算子という記号を用いる。
演算子 | 意味 | 使用例 | 対応する数学表現 |
---|---|---|---|
** | べき乗 | A**B | ab |
* | 乗算 | A*B | a×b |
/ | 除算 | A/B | a÷b a/b |
- | 符号反転 | -A | -a |
+ | 加算 | A+B | a+b |
- | 減算 | A-B | a-b |
各演算子の優先順位は、次のようになる。
1:カッコの中 → 2:べき乗 → 3:乗除算 → 4:加減算
実数型の定数は原則として、小数点を付ける。
→ 1.05、50.0、-0.1 など
整数型の定数は小数点を付けない。
→ 100、0、-25 など
(例)実数型のデータ A、B、C を読み込み、A×B-C の計算を行う
PROGRAM REI_2
IMPLICIT NONE
REAL : : A,B,C,X !型宣言
!空白行
READ (*,*) A,B,C !入力文
X=A*B-C !計算式
WRITE(*,*) X !出力文
STOP
END PROGRAM REI_2
■型宣言
はじめに実数型なのか整数型なのかを宣言する。: : に続けてコンマで区切った変数名を書く。
■空白行
空白行はどこに入れてもよい。適当な場所に入れると見やすいプログラムになる。
■入力文
READ は入力を意味する命令。(*,*) に続けて変数名を書く。読み込む変数名はコンマ(,)で区切って書く(いくつでも可能)。
■計算式
計算式を右辺に、計算結果の代入先を左辺に書く。
■出力文
出力するための命令を書く。