Fortranプログラムで使用する表現、文の記述形式

Fortranプログラムで使用する表現


使用する文字について

 Fortranプログラムで使用できる文字は、基本的には半角文字の英数字・特殊文字、空白文字です。半角文字とは、1カラム(1桁)に一字の大きさの文字をいいます。 これに対して、2カラム(2桁)に一字の大きさの日本語の漢字やひらがな、英数字・特殊文字、空白文字などは全角文字と呼ばれ、プログラムでは文字値としてのみ使用できます。 空白文字は、画面上では(用紙に印刷されたものも)全角文字か半角文字か見分けにくいので特に注意して下さい。



文について

 プログラムは文(処理手順を示す単位)で構成され、文は名前と記号で構成されます。
 文は実行文と非実行文に分けられます。

・実行文

 プログラムの実行手順を詳しく記述する文を実行文といいます。実行文には、計算結果を求めて変数に保存する代入文、データをキーボードから読み込んだり、ディスプレイへ表示する入出力文 、プログラムの流れを制御する制御文などがあります。

・非実行文

 プログラムの実行時に必要な情報を記述する文を非実行文といいます。非実行文には、変数の型や長さなどを定義する宣言文、データの入出力の仕様を決めるformat文、副プログラムを定義するfunction文やsubroutine文などがあります。



名前について

 名前は、先頭が英字で2文字目以降は英字と数字を組み合わせた文字列です。integer、real、read、writeなどのようにFortranで決められた名前と、変数名などのようにプログラム作成者が決める名前があります。



変数について

 変数は値を格納するためのもので、プログラム作成者が必要に応じて名前をつけて定義して使用します。変数には、整数型変数、実数型変数、文字型変数などがあります。
 次に変数名として正しい例と間違っている例を示します。

変数の名前
正しい例 a, a1, b78895, beyryh
間違っている例
(変数ではない)
a+re, 6a, 9990, 8-5n



並びについて

 並びは、変数、定数、式などの項目をカンマ , で区切って並べたものです。空白文字は区切りとはなりません。

次に並びの例を示します。

   例1)  m,n,wa,sa,seki,sho,amari
   例2)  m n, wa sa, seki, sho,amari

 例1)は、m、n、wa、sa、seki、sho、amariの7つの項目の並びです。例2)は、mn、wasa、seki、sho、amariの5つの項目の並びです。mとnの間に、また waとsaの間に空白文字がありますが、空白文字は文の中ではいくつあっても無視されて mn、wasa と解釈されます。



定数について

 定数には、整定数、実定数、文字定数などがあり、プログラム中に直接記述された値をいいます。文字定数は、引用符 ' で括って指定します。 ' で括られた中の空白文字は無視されず有効な文字として扱われます。
 次に定数値の例を示します。

定数の値
定数値の例
整数 789, -6
実数 56.7, 5.0E-10
文字 ' input m,n = ', '名前'



文番号について

 Fortranの文を他の文から参照するために、文に付加した番号を文番号といいます。文番号は5桁以内の番号で行の1から5カラムの間に記述し、プログラム単位の中で一意であれば、順番には関係なく任意につけられます。



行の記述形式について

 Fortranの行の記述形式には固定形式と自由形式があります。
 固定形式の記述形式を次の表に示します。

固定形式の記述形式
行のカラム(桁)位置記述
1 〜 5 カラム 文番号を記述します。
1 カラム この位置に英小文字の c、英大文字の C、アスタリスク文字 * のいずれかを 記述するとコメント行になります。
6 カラム 継続行の指定をします。 その行が前の文の続きである時には、ゼロや空白以外の文字を記述します。
7 〜 72 カラム この範囲にFortranの文を記述します。 文は7カラム目から記述する必要はありません。


継続行について

 継続行とは、6カラム目に空白かゼロ以外の文字、たとえば # が記述された行をいいます。文が一行で記述できない時には、2行目以降の行に継続行の指定をし前の文の続きであることを示します。そして、その行の7カラム目以降に文を続けます。



コメント(注釈)行について

 コメント行とは、行の 1カラム目に c、C、* のいずれかの文字が記述された行をいいます。この行は翻訳時、実行時には無視されるので、2カラム目以降は自由に記述できます。コメント行には継続行を続けられません。