読者です 読者をやめる 読者になる 読者になる

pandas で各要素の有効数字を揃える(「小数点以下何桁」ではなく)

Introduction df.round(n) だと「小数点以下n桁」で四捨五入される丸められるだけで、有効数字を揃えたい場合はちょっと違う、ということがあった。 たとえば df という DataFrame の中身として 12.345 9.8760 があったとき、df.round(2) すると、 12.34 9.8…

mac (w/ Python 3 & PyQt5) で ocXgag

Introduction 鳥人間な制御屋さんが公開してくれた ocXgag という翼型の調整ソフトがちょっと面白そうだった: 失速特性を考慮した翼型設計ocXgag その1 背景 - A Plane On The Sand 失速特性を考慮した翼型設計ocXgag その2 公開と使い方 - A Plane On The …

fortran でよく使うコンパイラオプションのメモ

自分用。あとで書き足す リンク Debugging tools in Fortran Wiki Invoking GNU Fortran - The GNU Fortran Compiler gfortran 牛島先生本で紹介されていたのがキッカケで使い始めた g95 がわりと好きだったんだけど、だいぶ前から開発が止まってる(という…

Jupyter notebook (IPython notebook 4.x) で Notebook Extensions を使う(Anaconda利用)

まえがき Jupyter notebook で、各セル内のコードがだらーっと縦長になってしまった。 include のやりかたがよくわからんので(できるのかも含め)、とりあえず folding でごまかせないかな?と思ってググったところ、 Notebook Extensions というのを導入す…

pythonはじめました(今度こそ)

背景 どうもいつまでたっても python を覚える時間が取れない(取る気がない)なぁと思っていたが、ふと「そうだ、論文用の図を描くのに使ってみよう」と思い立った。グラフの作図、今まではずっと Excel → Powerpoint だった。一度だけ Excel → Adobe Illus…

Fortran で、form="unformatted", access="stream" で wirte されたファイルを read する

前置き natures flyers: Fortran でのバイナリ (unformatted, binary) の扱いについてのメモ では write しか考えてなかった。なぜなら FIELDVIEW という可視化ソフトで読み込むことだけ考えてたので。でも今ちょっと、書きだしたデータを読み込んで処理した…

Fortranで出力したデータを、call system() とシェルスクリプトを使ってその場ですぐに xz で圧縮し、元データは削除する

まえがき 前にも書いたかもだけど忘れそうなのでメモしとく。まず Fortran 側で FV_00001.xyz, ...(グリッド)とか FV_00001.func, ...(流れ場)とか FV_00001.q, ...(時刻)といったファイルを出力している。これらは流れの可視化用のデータで、そのまま…

コードの見直し(リファクタリング?)

機能追加に伴ってコードがゴチャゴチャしてきた。見づらいだけならいいが、さらなる機能追加が容易でなくなってきて、やばい。機能追加が容易なように改良する必要がある。「気象庁コーディングルール(ルビ:バイブル)」を再度見ている。 変数参照型モジュ…

restart方法の見直し

@yuuriiさんにだいぶ前に教わった方法に変更中。すなわち、計算は必ず load で始めて、計算開始か再開かの違いは load する file が「初期条件data」か「途中のdata」かの違いのみとする、ということ。擬似コード的に書くと、 if new game 変数をごちゃごち…

最近のNotepad++で、ホットキーから日付を挿入

NPP (Notepad++) のバージョンが上がっていつからか C-F5 (Ctrl-F5のこと) による insert date がなくなっていた。正直それが理由でずっとアップデートしてなかったほど。ところが TextFX というデフォルトで入っているプラグインの機能で insert date は実…

ゼロクリアしてなくて死んだ

「配列の上限下限をallocateでなく必要よりも多めにとったとき」は必ずゼロクリアする癖をつけたほうがいい。してなくて maxval が E+286 とかなってて死んでた。たいていはゼロが入ってるんだけどたまにこういう凄いのが入ってくる(メモリの状態に寄るらし…

maxval, maxloc, minval, minloc

前も書いたかもしれないがメモ<いろいろひどかったんで消す>参考: http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlf101a.doc%2Fxlflr%2Fmaxval.htm なんかここの表記も(サンプルが)怪しい → まとめ直しておい…

Notepad++ 5.8.7以上で置換後に置換ウィンドウからフォーカスが失われる件

https://sourceforge.net/projects/notepad-plus/forums/forum/331754/topic/4378154やっぱみんなもイライラするよね。ESCで置換ウィンドウを閉じれなくなったのですごくストレスフル。「バグを直すためだ」と言っている人もいる(実際、変な文字列しか書け…

NaNを検出してstop

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 があっ…

makeのお勉強

タブでなくスペースで始めると怒られる。Notepad++の場合、「設定 > 環境設定 > 言語メニュー/タブ設定」の「タブ設定」から、makefile を選び、「Use default value」のチェックを外して、「タブの代わりにスペースを使用」のチェックも外せばいい。もちろ…

Fortran 90 code on Notepad++で任意の位置で折り畳み

ユーザ定義言語を利用する。ユーザ定義パネルを開いて、「折りたたみ部分開始キーワード設定」と「折りたたみ部分終了キーワード」のところに「!」から始まるキーワードを登録すればいい。たとえば、!!_fold_と!!_endfold_などを登録し、これらをコードの任…

Poderosa の見た目について

メニューの「ツール > オプション」で設定したけど反映されねーよ!、なとき。メニューの「コンソール > 表示プロファイルの編集」ダイアログを開いて、左下の「標準に戻す」ボタンを押すと「オプション」で設定したのと同じになる。

フォントを変えた⇒戻したorz

http://save.sys.t.u-tokyo.ac.jp/~yusa/fonts/ricty.html の Ricty ってフォントと、そこからリンクしていた gdipp というのを入れた。後者がないとうまく表示できなかった (@ Win XP + Notepad++). この gdipp というやつを入れたら、あらゆるフォントが m…

セーブデータの命名

いろいろ考えたけどメンドイのでこんな感じにしようと思う(コードの一部)。 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…

シェルスクリプトって便利だね

なるほどこの延長(?ちょっと違うのか?)が makefile だと言われたら納得するかも。いちいちコンパイルオプション入れなくてもいいだけでなく別のディレクトリにソースをおいたり出力させたりもう快適すぎるわ。

システムコールとシェルスクリプトを利用して、Fortranのコードから「ディレクトリがなければ作る」を実行

2016-02-28追記 変数を渡せるようにしたこっちの方が良い→ natures flyers: Fortran で call system() するときに変数 (variable) を渡す方法 古い記述 計算実行中のディレクトリが入力する設定ファイルやら出力されるデータやらセーブデータやらでごちゃご…

Notepad++ で Control+F を押すと ACK, Control+Z を押すと DC3 とか出てきて死にたくなったら

http://sourceforge.net/tracker/index.php?func=detail&aid=3138296&group_id=95717&atid=612382にあるように、NPP ウィンドウの裏側あたりにダイアログがあるはずなのでそいつを見つけて OK を押せばいい。たまによくやる。

切り捨て、四捨五入と整数化について

前も書いたかもしれないけど。 参考: 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 について 必ず全ての引数を = で明示する。順番依存の呼…

NPPで文書横断検索

最近の NPP (Notepad++) では Shift+Cntl+F で複数の文書にまたがる横断検索ができる。 後輩に聞くまで知らなかった。 ダブルクリックしたらその行に飛べるので Devas よりいい。ただし、別の後輩によると、ヒット数が多い場合(?)にはかなり遅くなるらし…