呼び出し規則は、プログラムがルーチンをどのように呼び出すのか、引数がどのように渡されるのか、そしてルーチンの名前がどのように指定されるのかを決定します。
呼び出し規則には、次の規則が含まれます。
単一言語のプログラムでは、すべてのルーチンでデフォルト設定が 1 つしかなく、また、インターフェイス・ブロックを含むヘッダーファイルと Fortran モジュールファイルが、呼び出し側と呼び出される側のルーチン間で一貫性を実現するため、呼び出し規則はほぼ常に正しくなります。
言語が混在したプログラムでは、異なる言語が同じヘッダーファイルを共有することはできません。異なる呼び出し規則を使用する Fortran と C のルーチンをリンクすると、そのエラーは、ランタイム時に不正な呼び出しが行われるまでは表面化しません。このような不正な呼び出しは、実行時に、予期しない結果や致命的なエラーを引き起こします。呼び出しエラーが原因で発生したメモリーやスタックの異常が原因のエラーは、プログラム内の不特定の場所で発生します。
言語間の呼び出し規則についての説明は、外部プロシージャーにのみ適用されます。内部プロシージャーを、それを含むプログラムユニットの外から呼び出すことはできません。
呼び出し規則は、プログラミングに多くの形で影響を与えます。
呼び出し側ルーチンは、呼び出し規則を使って、別のルーチンに引数を渡す順序を決定します。呼び出されたルーチンは、呼び出し規則を使って、渡された引数を受け取る順序を決定します。Fortran では、言語が混在したインターフェイス内で INTERFACE 文を使用するか、データまたは関数宣言内で指定することで、これらの規則を指定できます。C/C++ および Fortran では、どちらも引数を左から右の順序で渡します。
呼び出し側ルーチンと呼び出されたルーチンは、呼び出し規則を使って、可変長引数を渡すときのオプションを選択します。
呼び出し側ルーチンと呼び出されたルーチンは、呼び出し規則を使って、引数を値で (値渡し)、または参照で (アドレス渡し) 渡します。個々の Fortran 引数を、ATTRIBUTES オプションの VALUE または REFERENCE で指定することもできます。
呼び出し側ルーチンと呼び出されたルーチンは、呼び出し規則を使って、プロシージャー名の命名規則を設定します。ALIAS 宣言子 (または ATTRIBUTES オプションの ALIAS) を使用すると、Fortran での名前とは関係なく、任意のプロシージャー名を設定することができます。C では大文字・小文字が区別されるのに対し、Fortran では区別されないので、この機能が役立ちます。