2009-06-28 3 views
2

아래의 Y 유형이 REAL이라고 가정합니다.유형 포트란의 선언

 SUBROUTINE F(X, Y) 
C  IMPLICIT NONE 
     REAL :: X, Y 
C  REAL :: A, B 
C  REAL, PARAMETER :: C = 3.14E0 
C  X = Y + 2 * SIN(Y) 
     END 

하지만 여기에 어떤 유형입니까?

 SUBROUTINE F(X, Y) 
C  IMPLICIT NONE 
     REAL X, Y 
C  REAL :: A, B 
C  REAL, PARAMETER :: C = 3.14E0 
C  X = Y + 2 * SIN(Y) 
     END 

해당 행의 시작 부분에 REAL 토큰이 있기 때문에 암시 적으로 입력 되었습니까? REAL입니까? 타입 선언의 범위는 무엇이며, 라인의 끝까지 또는 끝까지 올 수 있습니까?

그리고 어떤 목적을 수행합니까?

는 (죄송합니다, 자정에 혼란 상태의 파서 작업을하는 것은 잘못된 가정 순간의 지혜 더 많은 경험과 다른 사람을 상담 갈 말한다 만드는 당신이 두려워합니다.) 줄의 끝

답변

1

범위 : Y는 진짜입니다

"::"에 대해서는 FORTRAN 90에 새로운 내용이 있습니다.

+0

gfortran의 ifort를 사용하여 특정 버전의 Fortran 표준에없는 것을 거부하는 방법이 있습니까? 내가 gfortran -x f77 -c some.f라고 말할 때, 여전히 사업을하고 있습니다. –

1

IMPLICIT NONE을 선언 했으므로 암시 적으로 타이핑 할 필요가 없습니다. YREAL 일 것입니다. 한 줄에 여러 변수를 선언 할 수 있습니다.

:: 문자는 포트란 90 선언에서 실제 변수 이름의 유형과 옵션을 지정하는 데 사용됩니다. 찾은 것처럼, 컴파일러는 당신이 그것을 생략하면 보통 행복하지만, 그것을 포함하기 훨씬 더 읽기 쉽도록 만든다.

부수적으로,이 코드는 FORTRAN 77 스타일을 사용하여 작성된 것 같습니다. 새로운 코드 인 경우 주석부터 들여 쓰기까지 Fortran 90 스타일의 구문을 사용하여 코드를 작성할 수 있습니다 (예 : 특정 열에서 명령을 시작하려면 더 많은 내장 함수, 동적 메모리 등이 있습니다.

+0

두 예제 모두에서 그는 IMPLICIT NONE을 주석 처리했습니다. –

+0

나는 그것을 놓쳤다 - 당신 말이 맞습니다. –