現在作成中 as of 2010-04-28 (水) 17:38:29

* 担当教員 [#d810a8d4]
陰山 聡


* 演習日 [#e84fbb5c]
- 2010.05.06
- 2010.05.13

* 概要と達成目標 [#dcc5c361]
+ 概要
++ Why f? (なぜFortran95言語か)
++ f && c (Fotran95とCの同じところ)
++ [演習]Hello, world. コンパイルと実行
++ diff f c (Fotran95とCの違うところ)
++ Wonderful f (Fotran95の素晴らしいところ)
++ Practical f (Fotran95によるコーディングの実際)
+ 目標
++ この「計算科学演習I」で扱うFotranソースコードが自由に読めること。
++ 2次元拡散方程式を解くコードをFotran95言語の特性を活かして書けるようになること。

* はじめに [#rd9d9a92]

// wiki の練習。コメントのテスト。この文字は見えないはず。見えたら異常。

- Emacsのmajorモードをf90に設定すると便利(f95モードではなく)
-- ミニバッファでf90-modeと打つ (Esc-x f90-mode)

* はじめに [#rd9d9a92]

まずはじめに(全部大文字の)''FORTRAN''という言語は存在しない。
''Fortran90''や''Fortran95''という言語ならある。
FORTRAN77という言語はあった((未だに一部が生き残っているが、30年以上前(FORTRAN77は1977年を意味する)の言語なので読んでもいいが、自分では書かないように。))。
~| f95 - f90 | << | f90 - f77 |


* Why Fortran95? [#qfc92c34]

- 道具(言語)は目的にあったものを
- 数学的計算にはFotran95が適している
- '''For'''-mura '''Tran'''-slator


* 例 [#ada18727]
#ref(e_i_pi.tiff)


* 例 [#ra937520]
任意サイズの3次元実数配列を受け取り、平均値を返す関数

  real function mean_value(f)
    real, dimension(:,:,:) :: f
    mean_value = sum(f) / (size(f,1)*size(f,2)*size(f,3))
  end function mean_value


* 例 [#h6f4d481]
3次元実数配列を受け取って


* 例 [#h2acd79c]

空間中に分布する磁場(3成分のベクトル場)
 Bx(100,100,100),  By(100,100,100),  Bz(100,100,100)
の全磁気エネルギーは、
 energy = sum(Bx**2+By**2+Bz**2)/2
と一行(定義式そのもの)を書けば良い。



○○○○○○○○○○○○○○○○○○○○○○○○