+-------------------------Fortran 2003 ドラフト標準--------------------------+
目的
PROCEDURE ステートメントは、ダミー・プロシージャーまたは外部プロシージャーを宣言します。
構文
>>-PROCEDURE--(--+---------------------+--)--+---------------------------------+--> '-procedure_interface-' +-::------------------------------+ '-,--procedure_attribute_list--::-' >--procedure_entity_list--------------------------------------->< |
それぞれの意味は次のとおりです。
規則
procedure_interface が明示的インターフェースを持つプロシージャーの名前である場合、宣言されるプロシージャーはこの明示的インターフェースを持ちます。 参照プロシージャーは、すでに宣言済みである必要があります。参照プロシージャーが組み込みプロシージャーである場合、これは引き数として渡せる名前を持つ、組み込みプロシージャーでなければなりません。参照プロシージャーがエレメント型プロシージャーである場合、プロシージャー・エンティティー・リストは外部プロシージャーで構成されなければなりません。
procedure_interface が宣言型指定子である場合、宣言されるプロシージャーは、暗黙的インターフェースおよび指定された結果型を持つ関数となります。 これらの関数が外部関数である場合、関数定義は同じ結果型および型付きパラメーターを指定する必要があります。
procedure_interface がない場合、PROCEDURE ステートメントは、宣言されるプロシージャーがサブルーチンであるか、あるいは関数であるかを指定しません。
BIND 属性を使用して プロシージャー言語結合を指定すると、procedure_interface はプロシージャー言語結合は 使用して宣言されるプロシージャーの名前となります。
NAME= を持つプロシージャー言語結合を指定する場合、プロシージャー・エンティティー・リストは 1 つのプロシージャー名で構成されている必要があります。 このプロシージャーをダミー・プロシージャーにすることはできません。
OPTIONAL を指定した場合、宣言されるプロシージャーはダミー・プロシージャーである必要があります。
PUBLIC または PRIVATE を指定した場合、宣言されるプロシージャーは外部プロシージャー である必要があります。
例
contains subroutine xxx(psi) PROCEDURE (real) :: psi real y1 y1 = psi() end subroutine end
関連情報
+----------------------End of Fortran 2003 ドラフト標準----------------------+