現在作成中 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 と一行(定義式そのもの)を書けば良い。 ○○○○○○○○○○○○○○○○○○○○○○○○