关于可选参数的用法,我有以下问题.假设我aaa在模块中定义了以下例程m_aaa
MODULE m_aaa
SUBROUTINE aaa(a, b)
INTEGER :: a
INTEGER, OPTIONAL :: b
END SUBROUTINE
END MODULE
Run Code Online (Sandbox Code Playgroud)
现在我有一个使用该模块的第二个例程m_aaa.是否可以像这样传递可选参数
! Variant 1:
SUBROUTINE bbb(c, d)
USE m_aaa
INTEGER :: c
INTEGER, OPTIONAL :: d
CALL aaa(c,d)
END SUBROUTINE
Run Code Online (Sandbox Code Playgroud)
或者是否有必要检查是否存在可选参数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
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.