DO 繰返しループ制御は次の形式を取ります。
do-var = expr1, expr2 [, expr3]
do-var
整数型または実数型のスカラ変数の名前。配列要素または構造体要素の名前であってはなりません。
expr
整数型または実数型のスカラ数値式。do-var と同じ型でない場合,その型に変換されます。
規則と振る舞い
実数型の DO 変数または式は,Fortran 95 の廃止事項です。これは Fortran 90 の廃止予定事項でした。Compaq Fortran は Fortran 95 の廃止事項を完全にサポートしています。
繰返しループ制御では以下の手順が実行されます。
増分値 (expr3) は省略可能であり,ゼロであってはなりません。増分値が指定されていない場合,値 1 の基本整数型が使用されます。
DO 変数 (do-var) は,始値 (expr1) の値によって定義されます。
繰返し数は次のように決定されます。
MAX(INT((expr2 - expr1 + expr3) / expr3), 0)
以下のいずれかが真の場合,繰返し数はゼロとなります。
expr1 > expr2 and expr3 > 0 expr1 < expr2 and expr3 < 0
繰返し数が評価されます。繰返し数がゼロならば,ループは終了し,DO 構文は休止状態になります (/f66 コンパイラ・オプションでこの動作を変更することができます)。繰返し数がゼロでない場合,ループ範囲が実行されます。
繰返し数が 1 だけ減少され,DO 変数が増分値の値だけ増加されます (存在する場合)。
終了後,DO 変数はその (繰返し数が評価され,ゼロであることがわかった時点での) 最後の値を保ったままとなります。
DO 変数は,DO 範囲の実行中に再定義されたり不定の状態になってはなりません。
DO 構文の実行中に始値式,限界式,または増分値式に含まれる変数を変更しても,繰返し数には影響はありません。繰返し数は DO 構文に入った時点で固定されます。
例
次の例は,25 回の繰返しを指定しています。
DO 100 K=1,50,2
最後の繰返しでは K=49 で,ループの終了後は K=51 となります。
次の例は,27 回の繰返しを指定しています。
DO 350 J=50,-2,-2
最後の繰返しでは J=-2 で,ループの終了後は J=-4 となります。
次の例は,9 回の繰返しを指定しています。
DO NUMBER=5,40,4
最後の繰返しでは NUMBER=37 で,ループの終了後は NUMBER=41 となります。この DO ループの終了文は END DO でなくてはなりません。
関連情報
Fortran 95 と Fortran 90 の廃止予定事項の詳細と,Fortran 95 の廃止事項については,「廃止事項と廃止予定事項」を参照してください。