INTENT

文と属性:1 つまたは複数の仮引数の授受特性を指定します。

INTENT 属性は型宣言文または INTENT 文で指定することができ,以下のいずれかの形式を取ります。

形式

型宣言文

type, [att-ls,] INTENT (intent-spec) [,att-ls] :: d-arg [,d-arg]...

INTENT [::] d-arg [,d-arg]...

type
データ型指定子。

att-ls
省略可能な属性指定子並び。

intent-spec
以下の指定子のうちの 1 つ。

d-arg
仮引数の名前。仮手続または仮ポインタであってはなりません。

規則と振る舞い

INTENT 文は,副プログラムまたはインタフェース本体の宣言部でしか使用できません。

仮引数に対して INTENT 属性が指定されていない場合,その用途は結合された実引数の制限に従って決まります。

関数がユーザー定義演算子を指定している場合,仮引数の用途は IN でなくてはなりません。

サブルーチンがユーザー定義代入を指定している場合,第 1 の引数の用途は OUT または INOUT,第 2 の引数の用途は IN でなくてはなりません。

用途 IN の仮引数 (またはそのような仮引数の部分オブジェクト) は,以下のものとして使われてはなりません。

実引数がベクトル添字を持つ部分配列である場合,定義または再定義された (OUT または INOUT の用途を持つ) 仮配列に結合することはできません。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS DLL LIB

関連情報

型宣言属性の互換性引数結合

次の例は,INTENT 属性を宣言する型宣言文を示しています。

	SUBROUTINE TEST(I, J)
	  INTEGER, INTENT(IN) :: I
	  INTEGER, INTENT(OUT), DIMENSION(I) :: J

以下に INTENT 文の例を示します。

	SUBROUTINE TEST(A, B, X)
	   INTENT(INOUT) :: A, B
	   ...

	SUBROUTINE CHANGE(FROM, TO)
	   USE EMPLOYEE_MODULE
	   TYPE(EMPLOYEE) FROM, TO
	   INTENT(IN) FROM
	   INTENT(OUT) TO
	   ...

以下に別の例を示します。

	! 平均値を計算し,平均値の 3 乗を返します。
	TYPE DATA
	  INTEGER count
	  REAL average
	END TYPE
	. . .
	SUBROUTINE AVERAGE(value,data1,cube_ave)
	  TYPE(DATA) data1
	  REAL dummy
	  ! value は変更できません。一方,cube_ave を利用する前に,
	  ! 定義しておかなければなりません。data1 は,手続が呼び出さ
	  ! れた時に定義され,サブルーチンで再定義されます。
	  INTENT(IN)::value; INTENT(OUT)::cube_ave
	  INTENT(INOUT)::data1

	  ! AVERAGE が呼び出された回数が data1 に設定されます。
	  dummy = data1%count*data1%average + value
	  data1%count = data1%count + 1
	  data1%average = dummy/data1%count
	  cube_ave = data1%average**3
	END SUBROUTINE