オプション引数の使い方について、以下の質問があります。aaa
モジュールで次のルーチンが定義されているとしましょうm_aaa
MODULE m_aaa
SUBROUTINE aaa(a, b)
INTEGER :: a
INTEGER, OPTIONAL :: b
END SUBROUTINE
END MODULE
これで、モジュールを使用する 2 番目のルーチンができましたm_aaa
。このようにオプションの引数を渡すことは可能ですか
! Variant 1:
SUBROUTINE bbb(c, d)
USE m_aaa
INTEGER :: c
INTEGER, OPTIONAL :: d
CALL aaa(c,d)
END SUBROUTINE
または、次のようにオプションの引数 d の存在を確認する必要があります:
! Variant 2:
SUBROUTINE bbb(c, d)
USE m_aaa
INTEGER :: c
INTEGER, OPTIONAL :: d
IF (PRESENT(d)) THEN
CALL aaa(c,d)
ELSE
CALL aaa(c)
ENDIF
END SUBROUTINE
ご協力いただきありがとうございます。