2017-12-19 40 views
2

Fortran 77에서 "#pragma GCC optimize ("o3 ")"와 같은 함수 특정 옵션 pragma를 사용하고 싶습니다. 그러나 다음과 같이 표시 할 수 없습니다. 그것을 .f 코드에 적용하지 마십시오. 어떤 아이디어?gfortran에서 "pragma GCC optimize"사용

foo.f :

 ... 
    call hoge 
    ... 
    subroutine hoge 

    IMPLICIT REAL*4(a-h,o-z) 
    ... 
end 

hoge.f :

 ... 
    call hoge 
    ... 
!$pragma GCC optimize("O3") 
    subroutine hoge 

    IMPLICIT REAL*4(a-h,o-z) 
    ... 
end 

터미널 : the manual에서 이러한 지침에 대한 언급이 없다

$ gfortran -O0 foo.f -o o0 
$ gfortran -O0 hoge.f -o o3 
$ cmp o0 o3 
$ 
+0

모든 Fortran 질문에 tag [tag : fortran]을 사용하십시오. 그러한 pragma가 Fortran에서 지원되어야한다고 생각하는 이유는 무엇입니까? 설명서에서 찾았습니까? 나는 그들이지지받는다고 생각하지 않는다. –

+0

답장을 보내 주셔서 감사합니다. 레거시 코드를 최적화하기 위해 f77의 각 함수에 컴파일러 옵션을 적용하려고했습니다. 내가 그걸하는 법을 찾았을 때, 나는 C 언어를위한 지시문 인 pragma GCC를 발견했다. 비슷한 방법으로 f77 코드에 컴파일러 옵션을 적용 할 수 있다고 생각했습니다. 저는 fortran77에 익숙하지 않습니다. 그래서 아이디어가 있다면 저에게 알려주세요. 기능 특정 옵션 Pragma (GCC) : https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas –

+1

비정상적이며 문서화되지 않은 기능을 시도 할 때 적어도 * 아주 좋은 이유가 있습니다. 컴파일러 플래그를 사용하지 않고 전체 파일을 최적화하지 않는 이유는 무엇입니까? –

답변

0

. 이들은 포트란에서 지원되지 않습니다. 비록 그들이 있었다고해도 구문은 다를 것입니다. 포트란에서는 지시문이 pragma이 아닌 !GCC$을 사용합니다.