Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FORTRAN と格闘した話

FORTRAN と格闘した話

Avatar for Junichi MORI

Junichi MORI

March 21, 2026

More Decks by Junichi MORI

Other Decks in Technology

Transcript

  1. 試したい人向け:VSCode でも使えます • コンパイラ • gfortran: GNU、無償 • ifx (旧

    intel fortran)、無償版もある • その他有償のコンパイラ • おすすめの拡張機能 • Modern Fortran • fortls • findent • ブログにもまとめてます https://blog.mori-soft.com/entry/2025/12/12/172608 4
  2. Fortran 90 以降へリファクタリング • FORTRAN77 以前は固定形式 • 一行72文字 • コードは7文字目から

    • 長いものは次の行の6文字目に文字を入れる • コメントは1文字目に『C』をタイプ • 古のパンチカード時代の名残 • Fortran90 以降 • 自由形式, 行長の制限なし • コメントも自由に入れらる • 言語としても大きく変化:廃止機能多数、新機能多数 5
  3. 暗黙の変数 • 変数の型が暗黙的に決まる • I, J, K, L, M, N

    で始まる変数→整数型 • A-H, O-Z で始まる変数→実数型 • 変数だけじゃなく関数の戻り値の型もこれに従う • Fortran 90 以降だとこれを無効にできる • implicit none という宣言を追加 • すべての変数(と関数)にあとから型を追加する必要がある • 数が多いと大変 7
  4. 共有メモリブロック • 共有メモリブロック • COMMON文というので名前を付けて宣言 • そのメモリブロックに含まれる変数を記述 • 複数のサブルーチン・関数で同じブロック名を宣言するとメモリが共 有される

    • グルーバル変数的な扱い • COMMONブロックの宣言 • 関数ごとに(同じCOMMONブロックであっても)変数名が違ってOK • 変数名だけではなく、型も違ってよい • 全体のサイズは一致する必要がある • 怖い 11
  5. 閑話休題:FORTRAN と Fortran • FORTRAN77 以前のものを指すことが多い • 固定形式, 72 カラム制限,

    ・・・ • Fortran90以降のものを指すことが多い • 自由形式, コメント位置が自由, ・・・ • 決まりというよりは慣習 12
  6. 温故知新 • VBA 触ってるときの文法上の決まり • 似たような書き方がある • sub/functionの区別 • functionの戻り値は関数名に値を代入

    • etc • たぶん、古からの流れ • メモリとかを意識する • 今の言語がいかにハードウェアに近い層を意識しなくてよいかを痛感 • たまには昔からの言語を触るのもよいですね 13