2014-02-19 2 views
1

나는 fortran (나는 그렇게 생각한다) 프로그램을 읽기 위해 노력하고 서브 루틴의 시작을 이해할 수 없다. 모양은 다음과 같습니다 : fortran1 두 번째 블록 (빨간색)을 이해할 수 없습니다 -이게 뭔가요? 매개 변수/인자, 전역 변수 또는 그와 비슷한 것?포트란 구문 (서브 루틴 선언)

노란색은 상수 배열처럼 보이지만 언어 설명서는 내 설명서와 다릅니다.

enter image description here

IF (조건) 다음, 큰 EQ, 적은 고토 또는 다른 뭔가 :

또한이 같은 IF의 선언을 찾을 수 없습니다?

+0

그 첫 번째 부분은 블록 데이터 서브 프로그램과 공통 블록입니다. – Alexey

답변

4

줄의 문자 위치가 중요한 다소 오래된 고정 소스 FORTRAN이 있습니다. 특히 열 6의 모든 문자 (0 또는 공백 제외)는 해당 행이 이전 행의 연속임을 나타냅니다. 1 열의 C은 주석을 나타냅니다.

IF(HP(IM) - 70.) 105,105,110 

IF

이상한 산술 if 문이다. HP(IM)-70이 음수이면 105 레이블로 이동하고, 0이면 레이블 110이라고 표시된 레이블이 105 인 행으로 이동하십시오. 귀하의 게시물은 해당 라인을 표시하지 않으며, 라벨은 라인의 1-5 열에 있습니다.

지금 붉은

COMMON 

는 이름이있는 경우, 다음 / / 안에 따르는 일반적인 블록을 소개합니다. 그런 다음 공통 블록에있는 변수 목록이옵니다. 귀하의 코드에서 공통 블록 CONTRL, ALPHADON의 선언은 여러 줄에 걸쳐 있습니다.

코드는 인수 블록을 사용하지 않고 공통 블록을 사용하여 서브 루틴과 변수를주고받는 것이 좋습니다. 동일한 공통 블록이 선언 된 프로그램 범위가있을 수 있습니다. 동일한 공통 블록이 다른 서브 루틴에도 나타날 수 있습니다. 다른 스코프에 같은 이름을 가진 공통 블록이 있지만 분명히 내용이 다른 경우에는 놀랄 일이 아닙니다. 공통 블록의 사악한 용도 중 하나는 변수 이름으로 둘러 보는 것입니다. 더 재미있게, 한 범위에서 4 바이트 정수인 변수는 다른 범위에서 4 바이트 실수로 처리 될 수 있습니다.

지금 //와 사이의 값을 갖는 배열 TME 처음 상태

DATA TME/.../

녹색.

+0

고마워, 그게 당신이 맞아 seemd :) – Alexey