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

FORTRAN と格闘した話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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