【发布时间】:2014-12-09 15:24:43
【问题描述】:
关于可选参数的使用,我有以下问题。假设我在模块m_aaa中定义了以下例程aaa
MODULE m_aaa
SUBROUTINE aaa(a, b)
INTEGER :: a
INTEGER, OPTIONAL :: b
END SUBROUTINE
END MODULE
现在我有了第二个使用模块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
感谢您的帮助。
【问题讨论】:
标签: fortran optional-arguments