Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FORTRAN と格闘した話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Junichi MORI
March 21, 2026
Technology
43
0
Share
FORTRAN と格闘した話
Junichi MORI
March 21, 2026
More Decks by Junichi MORI
See All by Junichi MORI
自社の魅力について(森ソフト)
junichim
0
15
ローコードツールPleasanterの紹介
junichim
0
33
RAG を試してみて感じたこと
junichim
0
78
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
62k
推し活エージェント
yuntan_t
1
870
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
CC Workflow Studio
seiyakobayashi
0
100
OPENLOGI Company Profile
hr01
0
83k
チームで育てるAI自走環境_20260409
fuktig
0
930
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
5
13k
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
180
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
150
AWSで2番目にリリースされたサービスについてお話しします(諸説あります)
yama3133
0
130
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
470
HDC tutorial
michielstock
1
600
Fireside Chat
paigeccino
42
3.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
430
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
How GitHub (no longer) Works
holman
316
150k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Google's AI Overviews - The New Search
badams
0
960
Practical Orchestrator
shlominoach
191
11k
Transcript
FORTRANと格闘した話 2026/3/21(土)@伊勢IT交流会 森ソフト 森純一
誰? • 森ソフト 代表 森純一 https://www.mori-soft.com • 三重県伊勢市にいるプログラマー(個人事業主)です • スマホのアプリ開発(Java,
Flutter) • 業務システム開発(Excel, Access, SQL Server) 2
FORTRAN って知ってますか? • 昔々からあるプログラミング言語 • 50代より上の方は、授業でやった人もいるかもしれません • 数値計算の分野で使われてました(使われています?) • 分野によってはいまでも現役
• 言語仕様も進化してる • FORTRAN77, Fortran90, 95, 2003, 2008, 2018, 2023, ・・・ 3
試したい人向け:VSCode でも使えます • コンパイラ • gfortran: GNU、無償 • ifx (旧
intel fortran)、無償版もある • その他有償のコンパイラ • おすすめの拡張機能 • Modern Fortran • fortls • findent • ブログにもまとめてます https://blog.mori-soft.com/entry/2025/12/12/172608 4
Fortran 90 以降へリファクタリング • FORTRAN77 以前は固定形式 • 一行72文字 • コードは7文字目から
• 長いものは次の行の6文字目に文字を入れる • コメントは1文字目に『C』をタイプ • 古のパンチカード時代の名残 • Fortran90 以降 • 自由形式, 行長の制限なし • コメントも自由に入れらる • 言語としても大きく変化:廃止機能多数、新機能多数 5
はまりポイント • リファクタリングをやって、気になった点をいくつか話します • FORTRAN にめっちゃ詳しいというわけでもないので間違いが あったときはご容赦ください • 何かに活用するならご自分でも調べてくださいね •
すべて、私の主観なのでその点はご了承ください 6
暗黙の変数 • 変数の型が暗黙的に決まる • I, J, K, L, M, N
で始まる変数→整数型 • A-H, O-Z で始まる変数→実数型 • 変数だけじゃなく関数の戻り値の型もこれに従う • Fortran 90 以降だとこれを無効にできる • implicit none という宣言を追加 • すべての変数(と関数)にあとから型を追加する必要がある • 数が多いと大変 7
サブルーチンと関数 • 戻り値のないものがサブルーチン、戻り値があるのが関数 • 引数がすべて参照渡し • 引数の型, 個数, 戻り値がチェックされない •
サブルーチンを呼ぶとき • CALL Sub1() • でも、 x = Sub1() としても呼べてしまう 8
サブルーチンを関数として呼び出す 実行結果:これなに? こういうプログラムがあります 9
勝手にstatic変数 • 定数:PARAMETERとすると定数になる • 定数にすると、自動的にstatic(SAVE属性)になる • 初期化:DATA文というので値を設定 • 初期化すると、自動的にstatic(SAVE属性)になる 10
共有メモリブロック • 共有メモリブロック • COMMON文というので名前を付けて宣言 • そのメモリブロックに含まれる変数を記述 • 複数のサブルーチン・関数で同じブロック名を宣言するとメモリが共 有される
• グルーバル変数的な扱い • COMMONブロックの宣言 • 関数ごとに(同じCOMMONブロックであっても)変数名が違ってOK • 変数名だけではなく、型も違ってよい • 全体のサイズは一致する必要がある • 怖い 11
閑話休題:FORTRAN と Fortran • FORTRAN77 以前のものを指すことが多い • 固定形式, 72 カラム制限,
・・・ • Fortran90以降のものを指すことが多い • 自由形式, コメント位置が自由, ・・・ • 決まりというよりは慣習 12
温故知新 • VBA 触ってるときの文法上の決まり • 似たような書き方がある • sub/functionの区別 • functionの戻り値は関数名に値を代入
• etc • たぶん、古からの流れ • メモリとかを意識する • 今の言語がいかにハードウェアに近い層を意識しなくてよいかを痛感 • たまには昔からの言語を触るのもよいですね 13
以上