3. Fortran 77 기본 (Fortran 77 Basics)
Fortran 프로그램은 여러 개의 text 줄이다. 그 text는
정해진 문법 syntax을 따라야만 올바른 Fortran 프로그램이 된다. 다음의 간단한 예를 살펴 본다.
program circle
real r, area
c This program reads a real number r and prints
c the area of a circle with radius r.
write (*,*) 'Give radius r:'
read (*,*) r
area = 3.14159*r*r
write (*,*) 'Area = ', area
stop
end
"c"로 시작하는 줄은 설명 comments으로 사람이 프로그램을 좀더 읽기 좋도록 하기 위한 것이다. 원래 모든 Fortran 프로그램은 대문자로 써야만 했었다. 요즈음은 대분의 사람이 읽기 좋기 때문에 소문자를 사용하므로 여기서도 그렇게 할 것이다.
프로그램 구성 (Program organization)
보통 Fortran 프로그램은 주 프로그램 (또는 driver)과 몇 개의 부 프로그램 (또는 procedures 또는 subroutines)으로 이루어진다.
지금은 모든 문장이 주 프로그램 안에 있고 부프로그램은 나중에 다룰 것이다. 주 program의 구조는
program name
declarations
statements
stop
end
으로 이루어 진다. 이 tutorial에서 경사체 italics 단어는 문자 그대로가 아니라 일반적 표현으로 간주하도록 한다.
stop 문은 선택적으로 프로그램이 이 점에 도착하면 어떠한 경우에도 정지할 것이기에 필요없어 보이지만, 프로그램이 작업의 흐름이 그 점에서 정지한다는 것을 강조하기 위하여 프로그램은 반드시
stop 문으로 끝나도록 한다.
칸에 관한 규칙 (Column position rules)
Fortran 77은 정해진 형식이 없이 자유롭게 쓸 수 있는 언어가 아니라 원시 코드라고 하는 source code의 형식에 대한 매우 엄격한 규칙이 있다. 가장 중요한 규칙은 칸 (column)에 관한 규칙이다.
Col. 1 : 빈 칸 또는 설명임을 나타내는 "c" 나 "*"
Col. 2-5 : 문장 label (optional)
Col. 6 : 앞 줄의 연속 (optional)
Col. 7-72 : 문장
Col. 73-80: 일련 번호 (optional, 요즈음은 거의 사용하지 않음)
Fortran 77 프로그램의 대부분의 줄은 6 개의 빈칸으로 시작하여 72 번째 칸 이전에 끝나서 문장 영역(statement field)만 사용한다. 반면에 Fortran 90은 형식에 구애받지 않는 free-foramt이 가능하다.
설명 (Comments)
첫번째 칸에 문자 "c"나 "*"로 시작하는 줄은 설명(comment)이다. 설명은 프로그램 중에 어디에도 둘 수 있다. 프로그램을 일기 좋게 하기 위하여는 이 설명이 매우 중요하다. 사용 Fortran code에는 이 설명이 50%에 이르기도 한다. "!"를 설명으로 사용하는 경우도 있으나 Fortran 77에서는 표준이 아니고 Fortran 90에서는 사용 가능하다. 이 느낌표는 2-6칸을 제외하고 어디에서나 사용할 수 있다.
연속 (Continuation)
가끔 한 문장이 한 줄로 되지 않을 수도 있다. 문장을 하나 이상의 줄로 나누어 쓸 수 있느데 이 때 여섯번째 칸에 연속 표시를 한다.
c23456789 (이는 칸을 나타내기 위한 것이다!)
c The next statement goes over two physical lines
area = 3.14159265358979
+ * r * r
"+" 표시 이외에도 어떠한 문자를 사용하여도 상관 없다. 그러나 "+", "&", 또는 숫자(둘째줄에는 2, 셋째줄에는 3 등)를 사용하는 것이 좋은 방법이다.
빈 칸 (Blank spaces)
Fortran 77에서 빈 칸은 무시된다. 따라서 Fortran 77 프로그램의 모든 빈칸을 없애도 상관없다. 단지 사람이 읽기 어려울 뿐이다.
연습 문제
- 연습 문제 A
- 다음 Fortran 77 프로그램에서 틀린 것을 적어도 3 개 찾아라.
c23456789 (This demonstrates column position!)
programme
cc
integer int
int = 12
write(*,*) 'The value of int is',
+ int
end
stop
[Fortran Tutorial]
충남대학교 물리학과 오 병성