2014-09-11 8 views
3

암시 적으로 선언 된 변수가 많은 ~ 40 년 된 포트란 스파게티 코드를 작성하고 있습니다. 따라서 값을 초기화하기 위해 코드에 어떤 변수가 있는지 쉽게 알 수있는 방법은 없습니다. 이제 컴파일러 (예 : 인텔 포트란)가 코드의 모든 변수를 인텔 컴파일러에서 제공 한 0 또는 매우 큰 수 이외의 특정 기본값 (예 : -999)으로 초기화하도록 지시 할 수 있습니까?Fortran : 모든 변수를 특정 기본값으로 초기화하십시오.

답변

3

gfortran은 이에 대한 몇 가지 옵션을 제공합니다. 정수는 -finit-integer=n으로 초기화 할 수 있습니다. 여기서 n은 정수입니다. 실수의 경우 -finit-real=<zero|inf|-inf|nan|snan>을 사용할 수 있습니다. -ffpe-trap=denormal과 함께 이것은 초기화되지 않은 실수를 얻기 위해 매우 유용 할 수 있습니다.

+0

그게 정확히 필요한 것입니다. 감사! – King

2

당신은 아마 원하는 : man 페이지 당

ifort -check uninit 

참고이 유일한 검사는 매우 약한 체크 일부 빠른 테스트를 기반으로, 또한

스칼라들이. 그것은 예를 들어,이 간단한 일을 잡을하지 않습니다

program test 
call f(i) 
end 
subroutine f(j) 
write(*,*)j 
end 

반환 0 ..

그래도없는 것보다는 그것의 더 나은 가정합니다.

+0

이 수표의 약점에 대한 추가 정보 : https://www.nas.nasa.gov/hecc/assets/pdf/training/UnInit_Fix_your_code_2012_10_31.pdf – astrojuanlu

관련 문제