• 追加された行はこの色です。
  • 削除された行はこの色です。
現在作成中 as of 2010-04-28 (水) 17:38:29
// 現在(&lastmod;)作成中です。
// 既に書いている内容も&color(#ff0000){大幅に変わる};可能性が高いので、注意。

// -------
//#contents
// -------

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


* 演習日 [#e84fbb5c]
- 2010.05.06
- 2010.05.13
//- 2013.05.02  Fortran90/95入門 前半

* 概要と達成目標 [#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言語の特性を活かして書けるようになること。
//&ref(2013_5_2_f95a_usui.pdf);

* はじめに [#rd9d9a92]
//- 2013.05.09  Fortran90/95入門 後半

// wiki の練習。コメントのテスト。この文字は見えないはず。見えたら異常。
//&ref(2013_5_9_f95b_usui.pdf);

- Emacsのmajorモードをf90に設定すると便利(f95モードではなく)
-- ミニバッファでf90-modeと打つ (Esc-x f90-mode)
** アンケート [#j36d6593]
Fortran90/95入門 前半(5月9日分)はどうでしたか?1人1回,&color(red){''必ず''};回答して下さい.

* はじめに [#rd9d9a92]
難易度
#vote(簡単すぎた(資料読めばわかる。)[][][], ちょうどよかった(C言語を知ってるので、とっつきは悪くなかった。)[][][], 少し難しかった(初めての言語なので、結構戸惑った。)[][][], 難しすぎた(C言語も忘れかけてるのに、新しい言語なんて、ちょっと待って、て言う感じ)[][][])

まずはじめに(全部大文字の)''FORTRAN''という言語は存在しない。
''Fortran90''や''Fortran95''という言語ならある。
FORTRAN77という言語はあった((未だに一部が生き残っているが、30年以上前(FORTRAN77は1977年を意味する)の言語なので読んでもいいが、自分では書かないように。))。
~| f95 - f90 | << | f90 - f77 |
分量
#vote(少ないかも(超簡単! 時間をもてあました)[][][], ちょうどよかった(楽でもなくしんどくもなく。)[][][], 少し多かった(気を抜くと遅れてしまう。忙しいけどなんとかついていける感じ。)[][][], 多すぎ(内容詰めすぎ!。半分くらいしかついていけなかった。)[][][])


* Why Fortran95? [#qfc92c34]
* 参考書 [#o122e466]

- 道具(言語)は目的にあったものを
- 数学的計算にはFotran95が適している
- '''For'''-mura '''Tran'''-slator
-「Fortran90/95プログラミング入門」,牛島省著、森北出版
-  Fortran90/95 Explained, Second Edition, Michael Metcalf and John Reid, Oxford Univ. Press, 1999
- Fortran 95 Handbook Complete ISO/ANSI Reference J. C. Adams et al., MIT Press, 1997,
- Fortran90 Programming, T. Ellis et al, Addison-Wesley, 1994


* 例 [#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
と一行(定義式そのもの)を書けば良い。



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