의 반환 형식이 일치 난 그냥 다음과 같은 간단한 코드를 컴파일 할 gfortran 4.1.2 및 gfortran 4.8.0을 사용gfortran 4.8.0 버그? 기능
function foo(a, b) result(res)
integer, intent(in) :: a, b
integer res
res = a+b
end function foo
program test
integer a, b, c
c = foo(a, b)
end program test
gfortran 4.1.2 성공을하지만, gfortran 4.8.0은 이상한 오류가 있습니다 :
를test.F90:14.11:
c = foo(a, b)
1
Error: Return type mismatch of function 'foo' at (1) (REAL(4)/INTEGER(4))
아이디어가 있으십니까?
http://stackoverflow.com/questions/16446397/data-type-mismatch-in-fortran#comment23592695_16446397 –
고맙습니다. @ 마크! Fortran 코드를 스캔하고 빌드하는 툴을 작성하고 있습니다. 이것은 테스트 일뿐입니다. 그리고 저는'모듈 '에 대해 더 잘 알고 있습니다. 개인적으로 필자는 Fortran 프로젝트의 모든 코드에'implicit none '을 추가했지만, 테스트에 추가하는 것을 잊어 버렸습니다! 그리고 프로그램에서'foo' 함수를 선언해야합니다. –