オプションの引き数が存在するかどうかを判別します。存在しない場合は、それをオプションの引き数として別のプロシージャーに渡すか、または、それを引き数として PRESENT に渡すことしかできません。
引き数タイプおよび属性
クラス
照会関数
結果タイプおよび属性
デフォルトの論理スカラー
結果値
実引き数が存在する場合 (つまり、指定された仮引き数内の現行プロシージャーに渡された場合) は、結果は .TRUE. になり、それ以外の場合は .FALSE. になります。
例
SUBROUTINE SUB (X, Y)
REAL, OPTIONAL :: Y
IF (PRESENT (Y)) THEN
! In this section, we can use y like any other variable.
X = X + Y
PRINT *, SQRT(Y)
ELSE
! In this section, we cannot define or reference y.
X = X + 5
! We can pass it to another procedure, but only if
! sub2 declares the corresponding argument as optional.
CALL SUB2 (Z, Y)
ENDIF
END SUBROUTINE SUB
関連情報