Programming with Fortran.

소개는 Fortran90 을 기준으로 하며, 파일의 확장자는 .f90이다. compile은 소문자와 대문자를 가리지 않는다.

참고로, 높은 버전의 Fortran은 하위 버전의 기능과 문법을 포함하고 있다. 즉, Fortran90Fortran77 문법으로 쓰여진 코드를 인식한다.

Fortran77 vs Fortran90

  • Fortran77
123456789012345678901234567890
      program hello
      implicit none
c       code here
      end program hello
  • 앞 6열은 항상 비워놔야 한다.
  • 72열 까지만 허용된다.
  • Label은 제 2열부터 시작된다.
  • 제 6열은 줄 연결 표시(&)이다.
  • 주석은 첫 열의 c 표시로 시작하며, 코드와 같은 줄에 올 수 없다.
c this is a comment.
      do i=1,10
      ...
  • 변수의 길이가 6자로 제한된다.
  • 메모리의 동적 저장 기능이 없다.
  • 배열에 값을 하나하나 넣어줘야 했다.
real a(5), b(5)

do i = 1,5
  a(i) = 4.0
  b(i) = a(i) / 2.0
end do

  • Fortran90
program hello
implicit none
! code here
end program
  • 첫 열부터 사용가능하며 시작 위치의 제한이 없다.
  • 132열까지 사용 가능하다.
  • 한 줄에 분리기호인 semicolon(;) 을 사용하여 여러 문장의 나열이 가능하다.
i=12; j=13; k=14
  • 주석은 exclamation mark(!) 를 시작기호로 사용하며 문장과 같은 라인에 적을 수 있다.
  • 줄바꿈은 and(&) 표시와 함께 문장 마지막에 넣으며, 40 라인까지 가능하다. (Fortran2003은 256라인까지 가능하다.)
  • 변수의 길이가 31자까지 가능하다. (Fortran2003은 최대 63자이다.)
- 변수는 반드시 영문자로 시작해야 된다.
- 변수로 사용 가능한 문자는 다음과 같다. a-z , 0-9, _
  • 관계연산자의 표현을 다음과 같이 쓸 수 있다.
Fortran77 : .lt., .le., .eq., .ne., .ge., .gt. 
Fortran90 :   < ,  <= ,  == ,  /= ,  >= ,  > 
  • 배열의 데이터를 행렬처럼 이용할 수 있다.
real, dimension(5) :: a ,b

a = 4.0       ! a의 모든 배열 값이 4가 되었다.
b = a / 2.0   ! a의 모든 배열 값을 2로 나누었다.

Install

$ sudo pacman -S gcc-fortran

Compile

$ gfortran -o a file_name.f90

-o 옵션을 사용하여 실행파일의 이름을 정해줄 수가 있다. 위 compile 명령어에서는 a라는 이름으로 실행파일을 만들었다.

$ gfortran file_name.f90

다음과 같이 compile을 할 경우 default 값인 a.out이 실행파일로 생성된다.

$ ./a.out