+-------------------------Fortran 2003 ドラフト標準--------------------------+

PROCEDURE

目的

PROCEDURE ステートメントは、ダミー・プロシージャーまたは外部プロシージャーを宣言します。

注:
XL Fortran は現在、PROCEDURE ステートメントを使用したプロシージャー・ポインターの宣言をサポートしていません。

構文



>>-PROCEDURE--(--+---------------------+--)--+---------------------------------+-->
                 '-procedure_interface-'     +-::------------------------------+
                                             '-,--procedure_attribute_list--::-'
 
>--procedure_entity_list---------------------------------------><
 
 

それぞれの意味は次のとおりです。

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 ドラフト標準----------------------+

IBM Copyright 2003