Fortran チュートリアル
Fortranを使い始める
サーチ…
備考
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
そのような醜い選択を避けるのは、良いプログラマにとってです。