はじめに
Fortranの知見は少ない上に散らばっているため、苦労することが多いです。有用なリンクをここにまとめておくことで、その苦労を少しでも解消できたら良いな。という軸で記事を書きます。皆さんの知見随時募集中です。
AtCoderについて
プログラミングで謎解きをするオンラインゲーム(数学要素多め)(レーティングで競える)(伸ばしたコーディングスキルで研究を加速)
公式サイト
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~
(過去問精選10問のFortranでの回答例1)
(過去問精選10問のFortranでの回答例2)
(過去問精選10問のFortranでの回答例3)
参加者分布(年齢)
参加者分布(大学)
便利なリンク集
VSCodeで環境構築
Fortran 使いの皆さん、エディタに Visual Stadio Code はいかがですか必要最低限、わかりやすい
VSCodeでFortranのプログラムをコンパイル・デバッグするための設定自分に必要な情報をうまく記事から抜き出そう
環境構築の時点から情報が少ないですね。さすがFortranです。
簡単にまとめると、
- VSCodeを入れる(Windowsの人はちょくで入れるか、WSL環境を作っていれるか。)
- Anaconda/minicondaを入れる
- Anaconda/minicondaからpipでfortran-language-serverを入れる。(どこに入ったか要確認)
- VSCode拡張で「Modern Fortran」「FORTRAN IntelliSense」を入れる
- ファイルー>ユーザー設定ー>設定ー>fortlsで検索ー>Fortran-ls:Executable Pathに手順3で入れたfortran-language-serverのパスを入れる(ここまででシンタックスハイライト表示)
- gfortranを入れる
- code-runner拡張をVSCodeへ入れる
- FortranのRun設定を書く(コンパイル&デバッグ設定)
Fortranの基礎的な勉強
https://www.nag-j.co.jp/fortran/index.html
だいたいGoogleでFortran 〇〇
で調べると最上位に出てくる。90の入門的なものから2008の仕様についてまで網羅的に書いてある。例が複雑。字が小さくて見えない。
https://amanotk.github.io/fortran-resume-public/index.html
例が簡単でわかりやすい。目次の注釈にもあるように、自分の環境と照らし合わせて、必要な部分だけ読んでいこう。
http://jjoo.sakura.ne.jp/tips/f90/index.html
入門的な内容は無いが、かゆいところに手が届く感じがして良い。例がわかりやすい!。ちょっとくどい。ちょっとAtCoderやるには過剰な知識だが、ライブラリを作成するときにとてもよかったです。
https://qiita.com/jj1guj/items/43a1c876360ddf180f1f
AtCoderの問題を解くために必要な入門知識という視点で書かれている。基本中の基本を効率よく学びたい場合はおすすめ。
Fortranの細かい話
https://www.nag-j.co.jp/nagfor/np52_manual/np52_manual_9_4.html#AUTOTOC_9_4
95までの組み込み関数を全部網羅してくれている。
https://qiita.com/implicit_none/items/ab0632357bab0f549cf2
https://qiita.com/implicit_none/items/08f894bc851c29b40b58
https://qiita.com/implicit_none/items/f582f2d4e10f2655e208
上から、「整数、不動小数」「文字列、文字配列」「配列」についての宣言方法、使用方法が細かく書かれている。AtCoderで問題を解くのに必須な知識というわけではないが、知っていると便利です。
https://qiita.com/implicit_none/items/9164c4d35d84e6e77f29
これもAtCoderやるために必須ではないが、知っていて損はない知識です。(コーディングルール)
https://qiita.com/implicit_none/items/6b5c3a65cddc6ecd8e52
スニペットについての話。とりあえず書いてある設定コピペするだけで大分便利です。
https://qiita.com/implicit_none/items/55c47407aa376277a531
AtCoderからは離れるんですが、Fortranオタクになりたい方、研究室のレガシーコードを書き換えたい方に是非オススメです。そうでない人も読んでみると面白いですよ。
https://qiita.com/septcolor/items/121dde6de28af9f74343
入出力あたりの細かい話です。