研究用PCのセットアップ用メモ。VS Code 上で Fortran を編集し、gfortran や mpif90 でコンパイルして実行できる状態まで持っていく。
VS Code 側の準備
拡張機能を入れる
VS Code を起動して、左の Extensions(四角いアイコン) から以下を入れる。
- C/C++(Microsoft)
Modern Fortran の依存関係として必要 - Modern Fortran(fortran-lang.org)
シンタックスハイライトと基本補完が動く
「This extension is not signed…」で Modern Fortran が入らない場合
- Extensions で Modern Fortran を開く
- 右上の ⚙(歯車) → Install → Install Anyway(類似の表記)を選ぶ
- インストール後、再読み込み
fortls(Language Server)を入れる
Modern Fortran の高度機能(定義ジャンプ、hover、シンボル検索など)は fortls があると大きく改善する。
Python を入れる(入っていなければ)
- Microsoft Store 版でも公式版でもOK
- 重要なのは
pipが使えること - 自分は Python 3.13 を入れた
fortls をインストールする
PowerShell で実行。
python -m pip install --user fortls
VS Code に fortls のパスを設定する
fortls.exe の場所を調べる
PowerShell で確認。
python -m pip show fortls
環境によって fortls.exe は例えば次のような場所にある。
C:\Users\<user>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\Scripts\fortls.exe
settings.json に追記する
File > Preferences > Settings → 右上の {}(Open Settings JSON)から追記。
{
"fortran.fortls.path": "C:/Users/<user>/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0/LocalCache/local-packages/Python313/Scripts/fortls.exe"
}
ここが通ると補完と定義ジャンプが一気に賢くなる。
gfortran と MPI を入れる(MSYS2 + MS-MPI)
Windows では OpenMPI が基本的に扱いづらいので、MPI は Microsoft MPI(MS-MPI) を使う。
コンパイラは MSYS2 の MinGW-w64(UCRT64)版 gfortran を使う。
MSYS2 を入れる(gfortran本体)
MSYS2 をインストールして更新する
- MSYS2公式から
msys2-x86_64-latest.exeを入れてインストール - インストール後、MSYS2 UCRT64 を起動
- まずMSYS2全体を更新
pacman -Syu
更新後に指示が出たら一度閉じて再起動。
gfortran を入れる(UCRT64)
UCRT64 で以下を実行(全部 Yes)。
pacman -S --needed mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-gcc-fortran
確認:
gfortran --version
MS-MPI(Windows用MPI)を入れる
MS-MPI Runtime と SDK を入れる
Microsoft Learn の MS-MPI ダウンロードページから以下をそれぞれインストールする。
- MS-MPI
- MS-MPI SDK
インストール後、PowerShell で確認。
mpiexec -?
MSYS2 側に MS-MPI 用ラッパを入れる(mpifort / mpif90)
MSYS2 上で mpifort / mpif90 を使えるようにする。UCRT64 で実行。
pacman -S mingw-w64-ucrt-x86_64-msmpi
確認:
mpifort -show
VS Code 内蔵ターミナルを UCRT64 に固定する
VS Code の内蔵ターミナルから MSYS2 UCRT64 を確実に開く設定。settings.json に追加(既に profiles があれば中に足す)。
{
"terminal.integrated.profiles.windows": {
"MSYS2 UCRT64 (integrated)": {
"path": "C:/msys64/msys2_shell.cmd",
"args": ["-defterm", "-here", "-no-start", "-ucrt64"],
"icon": "terminal-bash"
}
},
"terminal.integrated.defaultProfile.windows": "MSYS2 UCRT64 (integrated)"
}
ポイント:
msys2_shell.cmdは VS Code 内蔵端末向け-ucrt64でMSYSTEM=UCRT64を強制ucrt64.exeは外部端末アプリ寄りで、内蔵端末には向きにくい
使い方メモ(コンパイル〜実行)
ターミナルを開く
- VS Code でターミナル(
Ctrl +) - 右上の
+付近で MSYS2 UCRT64 (integrated) を選ぶ
コンパイル(単体)
gfortran -O2 **/*.f90 -o a.exe
コンパイル(MPI)
mpif90 -O2 **/*.f90 -o a.exe
実行(MPI例)
mpiexec -n 4 a.exe
詰まった点メモ
include 'mpif.h'は使えない(環境によっては見つからない)- MPI は
use mpiを使う use mpiはimplicit noneより前に置く
program main
use mpi
implicit none
! ...
end program main

コメント