2013-09-05 2 views
1

인터페이스 블록을 사용하여 서브 루틴과 기능을 오버로드 할 수 있습니까? 따라서 함수 나 서브 루틴을 통해 프로 시저를 호출 할 수 있습니다. 예를 들면 : 나는 오류를 가지고 다음과 유사한 코드를 컴파일하려고Fortran에서 서브 루틴과 함수 오버로드

... 
interface TestRoutine 
     module procedure TestRoutine_fun 
     module procedure TestRoutine_sub 
end interface TestRoutine 

Contains 

function TestRoutine_fun(....) result(...) 
... 
end function TestRoutine_fun 

subroutine TestRoutine_sub(...) 
... 
end subroutine TestRoutine_sub 
... 

: 오류 : (1) 절차는 모든 서브 루틴 또는 모든 기능 중 하나 여야합니다 일반적인 인터페이스 'TestRoutine'에서. 미리 감사드립니다.

답변

5

아니요, 표준 언어는 아님 오류 메시지는 상황을 올바르게 설명합니다.

2

함수에 서브 루틴을 오버로드 할 수 없습니다. 그래도 할 수있는 일은 함수를 호출하는 래퍼 루틴 (또는 다른 방법)을 작성하는 것입니다. 이렇게하면 코드를 저장하는 것이 좋습니다.

관련 문제