Fortran-procedures
Fortran-プロシージャ
手順の2種類があります-
- 関数
- サブルーチン
関数
関数は、単一の数量を返すプロシージャです。 関数は引数を変更しないでください。
返される数量は*関数値*と呼ばれ、関数名で示されます。
- 構文 *
関数の構文は次のとおりです-
次の例は、area_of_circleという名前の関数を示しています。 半径rの円の面積を計算します。
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
次のことに注意してください-
- メインプログラムとプロシージャの両方で implicit none を指定する必要があります。
- 呼び出された関数の引数rは、*ダミー引数*と呼ばれます。
結果オプション
返された値を関数名以外の名前で保存する場合は、 result オプションを使用できます。
次のように戻り変数名を指定できます-
サブルーチン
サブルーチンは値を返しませんが、引数を変更できます。
構文
サブルーチンを呼び出す
次の例は、引数の値を変更するサブルーチンスワップの定義と使用法を示しています。
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
引数の意図を指定する
intent属性を使用すると、プロシージャで引数を使用する意図を指定できます。 次の表は、意図属性の値を提供します-
Value | Used as | Explanation |
---|---|---|
in | intent(in) | Used as input values, not changed in the function |
out | intent(out) | Used as output value, they are overwritten |
inout | intent(inout) | Arguments are both used and overwritten |
次の例は、概念を示しています-
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
再帰的手続き
再帰は、プログラミング言語で同じ関数内の関数を呼び出すことができる場合に発生します。 関数の再帰呼び出しと呼ばれます。
プロシージャがそれ自体を直接または間接的に呼び出す場合、再帰的プロシージャと呼ばれます。 このタイプのプロシージャは、宣言の前に recursive という語を先行して宣言する必要があります。
関数が再帰的に使用される場合、 result オプションを使用する必要があります。
以下は、再帰的な手順を使用して、指定された数値の階乗を計算する例です-
内部手続き
プロシージャがプログラム内に含まれる場合、プログラムの内部プロシージャと呼ばれます。 内部手順を含むための構文は次のとおりです-
次の例は、概念を示しています-
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-