INTENT

目的

INTENT 属性は仮引き数の意図的な使用を指定します。

構文



>>-INTENT--(--+-IN----+--)--+----+--dummy_arg_name_list--------><
              +-OUT---+     '-::-'
              '-INOUT-'
 
 

dummy_arg_name
仮引き数の名前です。 これにダミー・プロシージャーを指定することはできません。

規則

非ポインターの割り振り不可の仮引き数を指定した場合、INTENT 属性は以下の特性を持ちます。

ポインター仮引き数を指定した場合、INTENT 属性は以下の特性を持ちます、

割り振り可能仮引き数を指定した場合、INTENT 属性は 以下の特性を持ちます。

ポインターまたは割り振り可能仮引き数に INTENT 属性を指定しない場合、 この仮引き数の使用は、関連する実引き数による制限および制約を受けます。

意図的な OUT または INOUT を指定して仮引き数と関連付けられる実引き数は定義可能で なければなりません。 したがって、意図的な IN を指定した仮引き数、または定数である実引き数、定数のサブオブジェクト、 あるいは式を、意図的な OUT または INOUT を指定する引き数を必要とするサブプログラムに 実引き数として渡すことはできません。

ベクトル添え字を持つ配列セクションである実引き数を、定義または再定義された (すなわち OUT または INOUT という意図を持つ) 仮配列と関連させることはできません。

INTENT 属性と互換性のある属性




VALUE 属性は、 意図的な IN を指定した仮引き数にのみ使用できます。

+----------------------------------IBM 拡張----------------------------------+

言語間呼び出しに使用される %VAL 組み込み関数は、 意図的な IN を指定した仮引き数、または意図が指定されていない仮引き数に対応する 実引き数にのみ使用することができます。 この制約は %REF 組み込み関数には適用されません。

+------------------------------End of IBM 拡張-------------------------------+

      PROGRAM MAIN
        DATA R,S /12.34,56.78/
        CALL SUB(R+S,R,S)
      END PROGRAM
 
      SUBROUTINE SUB (A,B,C)
        INTENT(IN) A
        INTENT(OUT) B
        INTENT(INOUT) C
        C=C+A+ABS(A)            ! Valid references to A and C
                                ! Valid redefinition of C
        B=C**2                  ! Valid redefinition of B
      END SUBROUTINE

関連情報

IBM Copyright 2003