{{category Fortran}} !!!Fortran言語 *'''Fortranとの出会い''' 私が研究室に配属されてからこれまで,Fortran言語を使ってプログラム作成を行ってきました.たまたま研究室で使用されていたコンピュータ言語がFortranでありましたが,今では日本語以外の言語としてわかる言語になってきました. *'''Fortranは勉強すべき言語なのか?''' プログラミング言語といえば,FortranとC言語がおなじみでしょう.Fortran自体は科学技術分野以外の人にとっては昔の言語と思われているようですが,まだまだというかこれからも筆頭の言語かと思います.まぁ,最近では,JAVAやPythonなどのいわゆるスクリプト言語に近い言語でもプログラミングをするそうですが,後発の言語ならではの魅力があるのは事実でしょう. しかし,プログラムは手段であり,目的ではないことは明らかでしょう.別にプログラムに頼らずともExcelの表計算だけでも関数電卓でもいいでしょう.大切なのは,結果を生み出すということであります.そういった点では,Fortranは非常に魅力的なプログラミング言語といえます.なぜなら,使ってはいけない予約語はないですし,メモリの番地を覚えておく必要もないのです.ある意味初心者が取っつきやすい言語といえると思います. *'''Fortranのどの規格を勉強すべきか?''' Fortranには現在77規格と90以降規格の2つの主流の規格があります.研究室など各個人の環境もあるので,どちらがよいかというのは強くはいえませんが,私は90規格を勧めます. 90規格であれば,77規格を完全にサポートしているし,何より自由度が高く,初心者が覚えなくてはいけない作法がありません. 何より,2008規格では,並列計算機用に作法が変わる可能性があり,77規格では対応できないことが予想されます. 私が研究室に配属されたときには,先輩の努力によりFortran77規格から90規格へ移行後の段階でした.最初に触れたのがFortran90規格だったというわけです.しかし,新しいプログラムを作成してみろ!という課題にあたったとき,やはり必要なのは,過去の文献です. 過去の文献として他の機関のコードをあさったりして,FORTRAN77やもっと古いFORTRAN4などのコードを読みましたが,理解不能です.このGOTO文がIF文の代わりで,値によって異なる文番号に飛ぶなんてコードを見た日には,この人は天才か!?と思ったものです.(事実,天才だと思うんですが.) ですので,新しい規格に少しずつ対応されている現在,規格は新しいものが良いと個人的には思います. !!書評 Fortranに関する書籍はいくつかあり,私も何冊か持っていますが,実際に使ってみると意外にそれぞれ癖があることがわかります.私自身,研究室に配属されるまではコンピュータ言語といえば,HTML言語(ホームページ作成するための言語)だけでしたから,全くの素人でありました.研究室に配属されてから数値計算を初めて触る大学4年生から本格的に研究を実施する大学院生向けにこれらの書籍について個人的な見地に立って紹介しましょう. !Fortran90プログラミング 冨田博之著 培風館 {{amazonb 4563014095}} {{amazonb 4563014095,Fortran90プログラミング(Amazonへ)}} *私自身が最初に手に取ったFortranの書籍です. *現在でも最初に手に取る書籍として最も良いと感じていますが,下で紹介する改訂版をオススメします. ::良い点 *余白が大きいため,書き込みもしやすく,勉強に向く. *付録のデータ編集記述子はPRINT文やWRITE文を記述するときによく見る. *例題が充実しているため,Fortranを自分でコーディングしたり,コンパイルとはどういうものかを学んでいくのに適している. ::今一つな点 *Fortran77からFortran90へ脱却するごろに書かれた. **モジュール・構造型・ポインタについて記述される. **Fortran77的な部分がある. **インデントが整っていない箇所がある. ::注意 *教科書で大文字と小文字は区別しているが,それはシステム(subroutineとかdo)を大文字で,ユーザーが自由に記述する部分を小文字で書いています. **実際のFortranでは,大文字と小文字は区別しません. !数値計算のためのFortran90/95プログラミング入門 牛島省著 森北出版 {{amazonb 4627847211}} {{amazonb 4627847211,数値計算のためのFortran90/95プログラミング入門(Amazonへ)}} *冨田先生の書籍がひととおり終わった学生に勧めるちょっと中級者向け. **もちろん最初の一冊としてもよいが,余白が小さいと若干圧迫感があるからFortranが嫌いにならないか心配. *モジュールのみについて記述(構造型もあったらよかった.) *複数ファイルのコンパイルについても言及(でもMakefile作るのはちょっと初心者にはしんどいと思う.) !Fortran90入門―基礎から再帰手続まで 新井親夫著 森北出版 {{amazonb 4627839812}} {{amazonb 4627839812,Fortran90入門(Amazonへ)}} *記述自体はFortran77的に書かれている. *各組み込み関数を詳細に記述されており,Fortranの辞書とするには良い. !Fortran90/95プログラミング 冨田 博之, 齋藤 泰洋 著 培風館 {{amazonb 4563015873}} {{amazonb 4563015873,Fortran90/95プログラミング(Amazonへ)}} *本書は,一番上で紹介した冨田先生の本の改訂版 **改訂版から私(齋藤)も執筆者に加わった. ::第2執筆者になった経緯 *研究室所属し,博士課程まで進んだ際,後輩の学生にFortranを教える機会が何度もあった. *最初に紹介した本を中心に勉強させていたが,研究の継続性を保つにはどうしてもフォーマットの統一など意識して他人がコードを読むということに意識を持ってもらいたいと考えていた. *冨田先生と出版社と話をした結果,Fortran90世代ど真ん中の私が著者として入ることにより,より入門書として適した形で,かつ現在の科学技術計算で必要と思われる知識を自然に取り込めるように工夫を凝らした. ::改訂によって良くなったと思う点 *表記をFortran90を中心に据え,Fortran77規格について[旧]とした. *Fortran90の自由形式に則りつつも,例題中のインデント(空白の入れ方)を統一することでインデントの重要性を無意識で認識できるようにした. *第9章の構成を見直し,特にモジュール部分について内容を割いた. *付録Dを新規追加した. **コンパイルの仕方からエラー文のチェック(デバッグ)のアドバイス **複数ファイルを簡単にコンパイルする方法の紹介 ::注意 **教科書で大文字と小文字は区別しているが,それはシステム(subroutineとかdo)を大文字で,ユーザーが自由に記述する部分を小文字で書いています. **実際のFortranでは,大文字と小文字は区別しません. ::実際の参考例 *http://www.bookreco.jp/member/reviews/detail/50900/70907 *http://www.kobe-kosen.ac.jp/education/syllabus/2012/html/S2_1511151.html *http://www.t.kyoto-u.ac.jp/syllabus-s/?mode=subject&lang=ja&year=2012&b=2&c=40590 *http://www.cc.kyoto-su.ac.jp/~mtkg/lecture/comp_B/2012/01.html *http://www.geol.sci.hiroshima-u.ac.jp/~nakakuki/Lectures/Computation.html 地球惑星内部物理学演習A, B 地球惑星内部物理学II 情報活用演習 http://www.cc.kyoto-su.ac.jp/~mtkg/lecture/comp_B/2012/01.html 科目名 : 建築情報処理演習 - Syllabus - 京都大学工学部 理科情報基礎(物理) - 三重大学ウェブシラバス http://www.pinotory.jp/ !!Web *[Fortran入門|http://www.nag-j.co.jp/fortran/index.html] **NAGのFortran入門テキスト *[Fortran 標準コーディングルール|http://www.mri-jma.go.jp/Project/mrinpd/coderule.html] **気象庁内でのコーディングルール を解説する. !個人 *Fortran骨の髄まで **復活したら教えてください. *[Fortran学習帳|http://www.geocities.jp/eyeofeconomyandhealth/] *http://www.pinotory.jp/2012/09/fortran-links.html !!コンパイラ *[Intel Fortran Composer|http://www.xlsoft.com/jp/products/intel/compilers/fcl/index.html?tab=0] 旧 Intel Fortran Compiler **有償,Linux版は非商用にかぎりフリー *[PGI|http://www.softek.co.jp/SPG/Pgi/] **有償 **GPGPUコンパイルに対応 *[NAG|http://www.nag-j.co.jp/nagfor/index.htm] **有償,4週間評価可能 *[GNU Fortran(gfortran)|http://gcc.gnu.org/wiki/GFortran] **フリー **4.3以降推奨(-cppや-fbacktraceが使えるから)