fortran
まえがき リンク https://github.com/szaghi/VTKFortran ←これがVTKFortran VTKFortranをWindowsでビルドする - Qiita ← 時間経過でファイル名などが微妙に変わってるけど非常に参考になる 環境 Ubuntu 20.04 LTS on WSL2 (Windows 10 Pro 21H2) Intel Fortr…
自分用。あとで書き足す リンク Debugging tools in Fortran Wiki Invoking GNU Fortran (The GNU Fortran Compiler) gfortran 牛島先生本で紹介されていたのがキッカケで使い始めた g95 がわりと好きだったんだけど、だいぶ前から開発が止まってる(という…
前置き natures flyers: Fortran でのバイナリ (unformatted, binary) の扱いについてのメモ では write しか考えてなかった。なぜなら FIELDVIEW という可視化ソフトで読み込むことだけ考えてたので。でも今ちょっと、書きだしたデータを読み込んで処理した…
まえがき 前にも書いたかもだけど忘れそうなのでメモしとく。まず Fortran 側で FV_00001.xyz, ...(グリッド)とか FV_00001.func, ...(流れ場)とか FV_00001.q, ...(時刻)といったファイルを出力している。これらは流れの可視化用のデータで、そのまま…
機能追加に伴ってコードがゴチャゴチャしてきた。見づらいだけならいいが、さらなる機能追加が容易でなくなってきて、やばい。機能追加が容易なように改良する必要がある。「気象庁コーディングルール(ルビ:バイブル)」を再度見ている。 変数参照型モジュ…
@yuuriiさんにだいぶ前に教わった方法に変更中。すなわち、計算は必ず load で始めて、計算開始か再開かの違いは load する file が「初期条件data」か「途中のdata」かの違いのみとする、ということ。擬似コード的に書くと、 if new game 変数をごちゃごち…
ここ http://d.hatena.ne.jp/arakik10/20090213/p1 のコメント欄にあるとおり、ユーザ環境変数に LIBRARY_PATH を C:\g95\lib\crt2.o として追加したら解決した。他のところにインストールした人はとにかく crt2.o のある場所 (path) を設定すればいい。イン…
matmul を使うのが正解。例えばこんなコードを書いてみればわかる。 program test_matmul implicit none integer :: l !! 一気に初期化。http://www.nag-j.co.jp/fortran/FI_12.html を参照 real(8) :: mat(3,3) = reshape( (/1.0d0, 2.0d0, 3.0d0, 4.0d0, 5…
「配列の上限下限をallocateでなく必要よりも多めにとったとき」は必ずゼロクリアする癖をつけたほうがいい。してなくて maxval が E+286 とかなってて死んでた。たいていはゼロが入ってるんだけどたまにこういう凄いのが入ってくる(メモリの状態に寄るらし…
前も書いたかもしれないがメモ<いろいろひどかったんで消す>参考: http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlf101a.doc%2Fxlflr%2Fmaxval.htm なんかここの表記も(サンプルが)怪しい → まとめ直しておい…
NaN detect fortran でググるといろいろでてくる。http://www.nag-j.co.jp/fortran/FI_7.html#AUTOTOC_7 http://ftp.g95.org/G95Manual.jp.pdf http://ftp.aset.psu.edu/pub/ger/fortran/hdk/nan.f90g95, ifort では isnan という intrinsic function があっ…
ユーザ定義言語を利用する。ユーザ定義パネルを開いて、「折りたたみ部分開始キーワード設定」と「折りたたみ部分終了キーワード」のところに「!」から始まるキーワードを登録すればいい。たとえば、!!_fold_と!!_endfold_などを登録し、これらをコードの任…
いろいろ考えたけどメンドイのでこんな感じにしようと思う(コードの一部)。 real(8), intent(in) :: t_hat character(len=72) :: file_save write(file_save,"('./restart/t_hat_'i3.3,f9.8,'.sav')") int(t_hat), t_hat ただし、t_hat は羽ばたき周期 t/T…
2016-02-28追記 変数を渡せるようにしたこっちの方が良い→ natures flyers: Fortran で call system() するときに変数 (variable) を渡す方法 古い記述 計算実行中のディレクトリが入力する設定ファイルやら出力されるデータやらセーブデータやらでごちゃご…
前も書いたかもしれないけど。 参考: http://fortran.hiroshism.com/ref.html 追加: http://nkmrtkhd.blogspot.com/2010/07/fortranintnint.html program test_anint implicit none real(8) :: foo = 7.536d0 write(*,"(2x,' foo = ',f9.4)") foo write(*,…
基本的には気象庁コーディングルールに従う。そこからの modifications や additions について記す。コメントについて コメントは !! で行う。コメントアウトの ! と区別するため。subroutine の call について 必ず全ての引数を = で明示する。順番依存の呼…