2014-10-14 4 views
4

선택적 인수의 사용과 관련하여 다음 질문이 있습니다. 이제 지금은 모듈 m_aaa를 사용하는 두 번째 루틴을 가지고 내가Fortran 90/95 선택적 인수

MODULE m_aaa 
SUBROUTINE aaa(a, b) 
    INTEGER   :: a 
    INTEGER, OPTIONAL :: b 
END SUBROUTINE 
END MODULE 

모듈 m_aaa에 다음과 같은 루틴 aaa을 정의한다고 가정 해 봅시다.

! 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 

감사합니다 당신의 도움이 같은 선택적 인수 D의 존재를 확인하는 것이 가능이

! Variant 1: 
SUBROUTINE bbb(c, d) 
    USE m_aaa 
    INTEGER   :: c 
    INTEGER, OPTIONAL :: d 
    CALL aaa(c,d) 
END SUBROUTINE 

같은 선택적 인수를 전달하거나이 필요하다.

+2

컴파일러가 그 코드를 컴파일하려고했을 때 당신에게 무엇을 말 했나요? –

답변

6

다른 선택적 가상 인수에 대한 실제 인수로 전달하기 전에 선택적 가상 인수가 있는지 확인하지 않아도됩니다. 에 언급 된 경우를 제외

:

는 존재하지 않는 선택적 실제 인수에 관한 12.5.2.12 제 4 항 (ISO/IEC 1539-1 (초안 7 2010 월) 2008 일명 포트란)에 의해 허용 위의 경우, 옵션 더미 인 인수에 해당하는 실제 인수로 제공 될 수 있으며,이 인수도 존재하지 않는 것으로 간주됩니다.