FortranFortran 시작하기


비고

Fortran은 수치 계산에 적합하기 때문에 과학 공동체에서 광범위하게 사용되는 언어입니다. 특히 직관적 인 배열 표기법이 매력적이며 빠른 벡터화 된 계산을 쉽게 작성할 수 있습니다.

그 시대에도 불구하고, Fortran은 여전히 ​​GNU, Intel, PGI 및 Cray를 포함한 수많은 구현을 통해 적극적으로 개발되고 있습니다.

버전

번역 노트 해제
포르 트 66 ASA (현재 ANSI)에 의한 첫 번째 표준화 1966-03-07
포트란 77 고정 된 양식, 역사적인 1978-04-15
포트란 90 자유 형식, ISO 표준, 배열 연산 1991-06-15
포트란 95 순수 및 원소 과정 1997-06-15
포트란 2003 객체 지향 프로그래밍 2004-04-04
포트란 2008 공동 배열 2010-09-10

케이스 무감각

알파벳의 대문자와 소문자는 포트란 문자 집합과 동일합니다. 즉, 포트란은 대소 문자를 구분하지 않습니다 . 이 동작은 C ++ 및 기타 많은 경우와 같이 대 / 소문자를 구분하는 언어와는 대조적입니다.

결과적으로 변수 aA 는 같은 변수입니다. 원칙적으로 다음과 같이 프로그램을 작성할 수 있습니다.

pROgrAm MYproGRaM
..
enD mYPrOgrAM
 

그러한 추악한 선택을 피하는 것은 좋은 프로그래머에게 달려 있습니다.

안녕하세요. 세계

모든 포트란 프로그램은 마지막 명령문으로 end 를 포함해야합니다. 따라서 가장 간단한 Fortran 프로그램은 다음과 같습니다.

end
 

다음은 "안녕하세요, 세계"프로그램의 몇 가지 예입니다.

print *, "Hello, world" 
end
 

write 문 사용 :

write(*,*) "Hello, world"
end
 

명확성을 위해 이제 program 문을 사용하여 program 을 시작하고 이름을 지정하는 것이 일반적입니다. end 문은이 이름을 참조하여 참조 할 내용을 명확히하고 컴파일러에서 코드의 정확성을 검사하도록 할 수 있습니다. 또한, 모든 포트란 프로그램에는 implicit none 문이 포함되어야합니다. 따라서 최소한의 Fortran 프로그램은 실제로 다음과 같이 보일 것입니다 :

program hello
  implicit none
  write(*,*) 'Hello world!'
end program hello
 

다음 단계는 hello world 프로그램의 결과를 보는 것입니다. 이 절에서는 리눅스와 같은 환경에서이를 달성하는 방법을 설명합니다. 우리는 여러분이 쉘 명령어에 대한 몇 가지 기본적인 개념을 가지고 있다고 가정 합니다 . 주로 쉘 터미널로가는 방법을 알고 있습니다. 우리는 당신이 이미 fortran 환경을 설정 했다고 가정 합니다 . 기본 텍스트 편집기 (메모장, 메모장 ++, vi, vim, emacs, gedit, kate 등)를 사용하여 홈 디렉토리의 hello.f90 파일에 위의 hello 프로그램을 복사 및 붙여 넣기하십시오. hello.f90 이 소스 파일입니다. 그런 다음 명령 줄로 이동하여 소스 파일을 저장 한 디렉토리 (홈 디렉토리?)로 이동 한 후 다음 명령을 입력하십시오.

>gfortran -o hello hello.f90
 

방금 hello world 실행 프로그램을 만들었습니다. 기술적 인 측면에서 방금 프로그램을 컴파일했습니다. 실행하려면 다음 명령을 입력하십시오.

>./hello
 

쉘 터미널에 다음 행이 인쇄되어 있어야합니다.

> Hello world!
 

축하합니다. 방금 "Hello World"프로그램을 작성하고 실행했습니다.

설치 또는 설정

Fortran은 많은 벤더가 제공하는 컴파일러를 사용하여 컴파일 할 수있는 언어입니다. 서로 다른 하드웨어 플랫폼 및 운영 체제에 대해 서로 다른 컴파일러를 사용할 수 있습니다. 일부 컴파일러는 무료 소프트웨어이며 일부는 무료로 사용할 수 있으며 일부는 라이센스를 구매해야합니다.

가장 일반적인 무료 Fortran 컴파일러는 GNU Fortran 또는 gfortran입니다. 소스 코드는 GNU 컴파일러 모음 인 GCC의 일부로 GNU에서 구할 수 있습니다. 많은 운영체제의 바이너리는 https://gcc.gnu.org/wiki/GFortranBinaries 에서 볼 수 있습니다. Linux 배포판에는 종종 패키지 관리자에 gfortran이 포함되어 있습니다.

예를 들어 다음과 같은 추가 컴파일러를 사용할 수 있습니다.

HPC 시스템에는 시스템 제공 업체가 IBM 또는 Cray 컴파일러와 같은 특수 컴파일러를 사용할 수있는 경우가 있습니다.

이 모든 컴파일러는 Fortran 95 표준을 지원합니다. 다양한 컴파일러에 의한 Fortran 2003 상태Fortran 2008 상태 에 대한 개요는 ACM Fortran 포럼에서 제공되며 Fortran Wiki에서 제공됩니다.

이차 방정식

현재 Fortran은 주로 수치 계산에 사용됩니다. 이 아주 간단한 예제는 2 차 방정식을 풀 수있는 기본적인 프로그램 구조를 보여줍니다 :

program quadratic
  !a comment

  !should be present in every separate program unit
  implicit none

  real :: a, b, c
  real :: discriminant
  real :: x1, x2

  print *, "Enter the quadratic equation coefficients a, b and c:"
  read *, a, b, c

  discriminant = b**2 - 4*a*c

  if ( discriminant>0 ) then

    x1 = ( -b + sqrt(discriminant)) / (2 * a)
    x2 = ( -b - sqrt(discriminant)) / (2 * a)
    print *, "Real roots:"
    print *, x1, x2

    ! Comparison of floating point numbers for equality is often not recommended. 
    ! Here, it serves the purpose of illustrating the "else if" construct. 
  else if ( discriminant==0 ) then

    x1 = - b / (2 * a)
    print *, "Real root:"
    print *, x1
  else

    print *, "No real roots."
  end if
end program quadratic