PRESENT
copyright

green dotPRESENT

書式PRESENT(A)
機能 副プログラム内で省略可能な引数が実在するかどうか判定する。
引数が存在するときとしないときで処理を変更するときに使用する。
引数が存在するとき真、存在しないとき偽とする。
引数 A:任意の型。
 省略可能な仮引数の名前を指定する。
戻り値 型、種別型パラメタは基本論理型である。

green dotサンプルプログラム

引数yの指定がある場合、z=z+yを計算する。変数yは、OPTIONAL属性で宣言する。
   SUBROUTINE sub(x,y,z)
      INTEGER,INTENT(IN) :: x
      INTEGER,INTENT(IN),OPTIONAL :: y
      INTEGER,INTENT(OUT) :: z
      INTRINSIC PRESENT
      z=x*10
      IF (PRESENT(y)) z=z+y       !yの指定がある場合に計算
   END SUBROUTINE sub
line-end