サーチ…


備考

Fortranは数値計算に適しているため、科学界で広く使用されている言語です。特に魅力的なのは、直感的な配列表記であり、高速ベクトル化計算を簡単に書くことができます。

その時代にもかかわらず、Fortranはまだ積極的に開発されており、GNU、Intel、PGI、Crayなど数多くの実装が行われています。

バージョン

バージョン注意リリース
フォートラン66 ASA(現在のANSI)による最初の標準化 1966-03-07
FORTRAN 77 固定フォーム、歴史的 1978年4月15日
Fortran 90 自由形式、ISO標準、配列操作 1991-06-15
Fortran 95 純粋でエレメンタルな手続き 1997-06-15
Fortran 2003 オブジェクト指向プログラミング 2004-04-04
Fortran 2008 共同配列 2010-09-10

インストールまたはセットアップ

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 Forumによって提供され、Fortran Wikiで利用可能です。

こんにちは世界

Fortranプログラムには、最後の文としてendを含める必要があります。したがって、最も簡単なFortranプログラムは次のようになります。

end

「こんにちは、世界」プログラムの例を以下に示します。

print *, "Hello, world" 
end

writeステートメントで:

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

分かりやすくするために、 program文を使用してprogramを起動し、名前を付けるのが一般的です。 endステートメントは、この名前を参照して、それが何を参照しているかを明示し、コンパイラーにコードの正当性をチェックさせることができます。さらに、すべてのFortranプログラムにimplicit none文を含める必要があります。したがって、最小限のFortranプログラムは実際には次のようになります。

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

次の論理的なステップは、こんにちはワールドプログラムの結果を見る方法です。この節では、Linuxのような環境でこれを達成する方法を示します。 シェルコマンドの基本的な概念があると仮定します 。主にシェルターミナルに到達する方法を知っています。すでにfortran環境をセットアップしていることも前提としています 。あなたの好みのテキストエディタ(メモ帳、メモ帳++、vi、vim、emacs、gedit、kateなど)を使用して、上のhelloプログラム(コピー&ペースト)をホームディレクトリのhello.f90というファイルにhello.f90します。 hello.f90はソースファイルです。次に、コマンドラインに移動して、ソースファイルを保存したディレクトリ(ホームディレクトリ?)に移動し、次のコマンドを入力します。

>gfortran -o hello hello.f90

あなたはhello world実行可能プログラムを作成しました。専門用語では、あなたはあなたのプログラムをコンパイルしました。これを実行するには、次のコマンドを入力します。

>./hello

シェル端末に次の行が表示されます。

> Hello world!

おめでとう、ちょうど "Hello World"プログラムを書いて、コンパイルして実行しました。

二次方程式

現在、Fortranは主に数値計算に使用されています。この非常に簡単な例は、二次方程式を解くための基本的なプログラム構造を示しています。

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

大文字小文字の区別なし

アルファベットの大文字と小文字は、Fortran文字セットでは同等です。つまり、Fortranは大文字と小文字を区別しません 。この動作は、C ++やその他多くの大文字と小文字を区別する言語とは対照的です。

結果として、変数aおよびAは同じ変数である。原則として、次のようにプログラムを書くことができます

pROgrAm MYproGRaM
..
enD mYPrOgrAM

そのような醜い選択を避けるのは、良いプログラマにとってです。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow