FORTRAN771977年に標準化。if/then/else広まったFortran901991年に標準化。大幅な改訂Fortran95F90からのマイナーバージョンアップFortran90はFORTRAN77とは大きく違う。違う言語と考えるべき。計算速度が速いスーパーコンピューティングは速さが命。C/C++でもFortranと同じくらい速いコードは書けるが、遅いコードも書けてしまう。言語としての自由度の違いとも言える。自由度が高いとコンパイラが困る。最適化ができなくなる。Tran-slator数値計算ライブラリの抱負な蓄積。Legacyなコード。『FORTRAN77に何の不満もない。これでxx年やってきた。(新しい言語を勉強するのは面倒だ。・・・Legacyなコードはいいが、Legacyな人間は良くない。時代に30年以上(2020-02-21-1977)遅れている。world.\n");}である。Fortran90/95ではこうなる。基本的には同じプログラムになる。nameとして宣言する。noneの意味は後述。Fortran90/95では標準入出力機能は言語に組み込まれている(ヘッダファイルをインクルードする必要はない(そもそもヘッダファイルというものがない))。行末にセミコロン不要。文字列はダブルクォーテーションマーク(")で囲む。(C言語と同じ)シングルクウォーテーションマーク(')でも同じ意味。ファイル名hello_world.f95として保存せよ。コマンドでファイルを確認せよ。hello_world.f95実行せよ。コンパイル&実行せよ。以下全てFORTRAN66/77と誤解している。変数名は6文字までなんでしょう?・・・そんなことはありません。ソースコードは全部大文字で書くんでしょう?・・・それも可能ですが普通はしません。ソースコードは固定形式(7列目から72列目まで)なんでしょう?・・・そんなことはありません。構造体がないんでしょう?・・・あります。ポインタがないんでしょう?・・・あります。使う必要はありませんが。再帰呼び出しができなんでしょう?・・・できます。使う機会はありませんが。関数とデータをまとめてひとかたまりにする(クラス化する)ことなんてできないんでしょう?・・・できます。データ/関数の隠蔽(カプセル化)ができないんでしょう?・・・できます。演算子を自分で定義することができなんでしょう?・・・できます。関数や演算子の多重定義ができなんでしょう?・・・できます。数値演算や計算機シミュレーションに適した言語である。スーパーコンピュータ向けの言語としては最適。並列計算機への対応も意識された言語。部屋の中の温度場の分布から平均気温を求めよう。f(nx,ny,nz)で表す。その平均値を返す関数をC言語で作れ。gcc↑Fortran90/95ではこう書ける。†このようにわずか4行で書ける。mean_valueこのプログラムの意味は後で説明する。行列のかけ算のためにFortran90/95ではmatmulという組み込み関数が用意されている。組み込み関数というのはライブラリではなく、言語の一部である。行列の転置をとる組み込み関数transposeも用意されている。matmul(transpose(A),B)と一行で書ける。コンパイル&実行せよ。級数の最初の1000項の和を求めるプログラムも、式をそのまま書けばいい。Translation。sum(Bx**2+By**2+Bz**2)/2と一行(定義式そのもの)を書けば良い。†Fortran90/95のソースコードではアルファベットの大文字と小文字は区別しない。同じ文字列変数の中では当然区別される。次のCプログラムはコンパイルエラーになる。どこにバグがあるが指摘せよ。†Fortran90/95には予約語が存在しない。ユーザ定義の変数名であればコンパイラが賢く判断してくれる。C言語には32個も予約語がある。C99ではさらに5個増えた。行末までもコメントとなった。倍精度の浮動小数点数を使うのが普通である。(単精度実数では精度が不十分なため。演算(四則演算)を高速に処理できるよう設計されている。表現方法に早めに慣れておくことは重要である。表す方法は幾つかある。簡単でportabilityの高い方法は以下の方法であろう。精度に関係したある整数定数を定義する。ここではその整数をSPという名前にする。Precision(単精度)の頭文字をとったものである。関係したある整数定数(ここではDPという名前)を以下のようにして定義する。Precisionを意味する。