引継ぎ文字長引数

引継ぎ文字長引数は,対応する実引数の文字長属性を取る仮引数です。星印 (*) は,仮文字引数の文字長を指定します。

文字配列仮引数も引継ぎ文字長を持つことができます。仮引数の個々の要素の文字長は,実引数の要素の文字長となります。引継ぎ文字長と配列宣言子の 2 つによって,引継ぎ文字長の文字配列の大きさが決定されます。

次の例は,引継ぎ文字長引数を示しています。

	INTEGER FUNCTION ICMAX(CVAR)
	  CHARACTER*(*) CVAR
	  ICMAX = 1
	  DO I=2,LEN(CVAR)
	    IF (CVAR(I:I) .GT. CVAR(ICMAX:ICMAX)) ICMAX=I
	  END DO
	  RETURN
	END

関数 ICMAX は,最も大きい ASCII コード値を持つ文字の位置を探します。これは引継ぎ文字長引数の長さを使って,繰返しを制御します。組込み関数 LEN は,引数の長さを決定します。

仮引数の長さは,制御が関数に移るたびに決定されます。実引数の長さは,文字変数,配列要素,部分列,または式の長さとして宣言することができます。以下に示す関数引用は,仮引数に対して,それぞれ異なる長さを指定しています。

	CHARACTER VAR*10, CARRAY(3,5)*20
	...
	I1 = ICMAX(VAR)
	I2 = ICMAX(CARRAY(2,2))
	I3 = ICMAX(VAR(3:8))
	I4 = ICMAX(CARRAY(1,3)(5:15))
	I5 = ICMAX(VAR(3:4)//CARRAY(3,5))

関連情報