Dropboxに保存していた2019/09/29開催のモダンFortran勉強会.f03の議事録をこちらに写しました。

内容についてはメール等でのご質問は受け付けておりません。

また、参加者の方で記載の削除を申し立てられる方がいらっしゃいましたらご連絡願います。

参加者:

議題

      • Makefileでコンパイラなど指定
      • MUMPSなど入っている
    • 状況
      • Pgfortran、pgcc エラー
      • Pgfortran、gcc エラー
    • 質問
      • Pgコンパイラでgcc/gfortranでは通るプログラムが通らないので、回避する方法ないか
      • Pgコンパイラを使わないでMKLをWindowsでリンクする方法がないか
    • 回答
      • コンパイラオプションが適切ではないのではないか
      • cmakeでやったら解決するのではないか
        • 落とし穴はある
      • PGIをやめてMKLをリンクする方向ですすめたほうがいいのでは?
        • PGIは変な挙動がある
  • (質問・興味)Pythonでfunction, subroutineを呼び出した際のプロファイリング方法が |Match 
  • (発表)OpenModelicaからFortranを呼ぶ                           ijknabla  
    • 週40時間OpenModelicaをする人になった
    • Modelica言語のffiにFORTRAN77がある
      • Fortran2003でbind(c)にしてCのインターフェースしか使ってなかったので、網羅的に調査してみた。
    • Modelicaは等式型言語
      • 手続きを定義することもできるので、c言語やFortranを埋め込める
    • 難しい常微分方程式をModelicaに、導関数を得る部分を低水準言語にやらせる
    • FORTRA77
      •  external “FORTRAN77”
      • Tips:継続行マークにI、O付けて引数のin outを表現する
     SUBROUTINE GETDER (
    I
    I
    O
    • Fortran90
      • FORTRAN77だから、外部サブルーチン縛りになる
    • Fortran2003
      • iso_c_bindingでextern “C”につなぐ
      • name=”getDerivativeF03” → 名前空間がFortranから直接呼べなくなる
    • 補足:OpenModeliceはUbuntuでclang入れてコンパイルすると2倍くらい早くなる
    • GithubのBuildモジュール
    • ModelicaはFortranをリスペクトしている
      • pure inpureを使ってみて!
  • (発表)fortran-utilsのソースコードリーディングの発表                      tkoyama   
    • +α lfortranのデモやります。
    • コードの修正ログの説明(コミット)
    • アドバイス
      • DOの終わりはCONTINUE
      • 関数は総称名が使える
      • IIはやめてほしい
      • EPSIRON関数
  • (発表)FORTRANのModernizeに使えるいくつかの機能                       degawa    
    • 全ての配列がグローバル変数
      • 利点
        • いつでもどこでもすべての変数にアクセス
        • てつづきの引数を書かなくて済む
use param, only x, y
    • 各地にコピペされた同じコードの断片
      • 利点
        • 動くことが保証されたコードなので、安全・簡潔な変更
      • 欠点
        • 処理が重複
        • ある個所の処理を変更した際に他の個所を忘れる
      • 内部副プログラムを使う
        • 親スコープの変数を引数にすると警告が出る(gfortran)
    • 異様に多いソースファイル群
      • 1ファイルに1手続き
      • 利点
        • 差し替え楽
      • サブモジュールを使う
        • 機能をまとめてモジュール化
    • 短く、意図の読み取れない変数名
      • VSCodeでシンボル変換
      • モジュール変数を別名参照
      • ポインタの利用
      • enumの利用
    • 自在に飛び回る行番号
      • FORMAT文は文字列型で置き換え
      • 入出力エラーはiostat指定子の値に基づいて
      • 多重DOはDOループに名前つける
  • (発表)ModernFortranExplaned(赤本)の輪読2                      mmer547  
    •  2章途中まで
    • コメント:重要な文字列や配列についてもう少し説明をちゃんとしたほうがいい

ディスカッション

  • 開発環境について
    • EditorはVSCodeでいいのではないか?
    • → VSCodeでFortranの環境構築が煩わしい、、、(初心者には難しい)
    • Rustでは?
    • Dockerで配るやつとかいるのでは?

アクション アイテム

  •  @mmer547 Dockerの環境構築(急ぎます)

Categories:

Tags:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

RSS Fortranタグが付けられた新着記事 – Qiita

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694

Warning: A non-numeric value encountered in /home/modern-fortran/www/web1/wp-includes/SimplePie/Parse/Date.php on line 694
Contact me
お問い合わせはこちらまで
modern.fortran.local.user.group@gmail.com
最近のコメント
    Translate »