NAG Fortranコンパイラ - VS Code用 プロジェクトテンプレート
ご利用マニュアル(for Mac)

※ 本資料の制作は法政大学名誉教授竹内則雄氏及び日本ニューメリカルアルゴリズムズグループ株式会社によって行われています

ダウンロード

本プロジェクトテンプレートのダウンロードは こちらから行ってください。

ダウンロードしたzipファイルは任意の場所に解凍して下さい。そこに含まれる「NagFortranProjectTemplate」フォルダが、プロジェクトテンプレート本体となります。

環境準備

本テンプレートをご利用いただく前にFortranコンパイラ、Visual Studio Code本体、Python等を用意する必要があります。

  1. NAG Fortran コンパイラ のインストール
    まず、NAG Fortranコンパイラ(Apple Arm Mac 64-bit版 )がインストールされていなければインストールして下さい。
  2. Visual Studio Codeのインストール
    公式サイトよりVisual Studio Code (macOS Universal) をダウンロードしてください。
    VSCode ダウンロードサイト
    ダウンロードファイルをダブルクリックして開く画面にVisual Studio Code アプリケーションがあるので、それをアプリケーションフォルダにドラグ&ドロップして下さい。
    VSCode ドラッグアンドドロップ
  3. Visual Studio Codeの起動
    アプリケーションフォルダ内にあるVisual Studio Code アプリケーションをダブルクリックしてVisual Studio Codeを起動して下さい。
    VSCode アイコンクリック
  4. 拡張機能「Modern Fortran」のインストール
    Modern Fortranは、Fortranコードのシンタックスハイライティング等の機能を提供するVS Code用の拡張機能ですが、その導入はVS Code内で以下の手順を参考に行って下さい。
    (尚、Modern Fortran拡張機能は、本テンプレートを使うにあたって必須ではありません)

    導入にはまず、画面左側のExtensionsアイコンをクリックするか、Shift + Command + X を押してください
    VSCode 拡張機能ボタン
    次に画面上部の検索窓に Fortran と入力します。
    Fortranを検索する
    出てきた一覧の中にある Modern Fortran拡張機能のInstallをクリックします。
    Modern Fortran 拡張機能
  5. Visutal Studio Codeの終了
    一旦ここでVS Codeを(画面を閉じるだけではなく)完全に終了します。
    VSCode 終了メニュー
  6. Python環境の準備
    本テンプレートは、プロジェクト管理とビルド自動化にPython 3.xを使用しています。コマンドライン上でpythonと入力してPython 3.xにアクセスできるようにしてください。もしPython 3.xがまだインストールされていない場合は、インストールが必要です。ここではインストールの一例として、Homebrewを使用した方法を紹介します。

    Terminalを開き、そこで brew install python と入力してインストールを開始します。
    例)
      brew install python
    
    途中、様々な表示がなされますが、最後の方に python と言う名前でアクセスできるフォルダの情報が以下の用に表示されます。
    インストール情報
    次に、の表示されたフォルダを~/.zshrcで環境変数PATHに追加します。

    設定例)
      export PATH=/opt/homebrew/opt/python@3.11/libexec/bin:$PATH
    

ここまでで、環境準備は完了です。

ユーザープロジェクトの作成手順

次にユーザープロジェクトの作成方法について説明します。

  1. プロジェクトテンプレートのコピーとリネーム
    プロジェクトテンプレート(NagFortranProjectTemplate) は任意の場所にフォルダごとコピーし、任意の名前に変更して下さい。
    ここでフォルダーパスには空白や日本語文字を含めないようにしてください。(一部のシステムで、これらの文字が問題を引き起こす可能性があるため)
  2. プロジェクトフォルダを開く
    VS Codeを起動して、File > Open Folder でプロジェクトフォルダを開いてください。
    プロジェクトフォルダを開く
  3. プロジェクト名の設定
    プロジェクトフォルダを開いたら、まず Terminal > Run Task > Change Project Name タスクを実行してください。
    Taskの実行 プロジェクト名の変更タスク
    画面上に新しいプロジェクト名を入力するための入力窓が表示されますので、そこにプロジェクト名を入力してください。上記と同様、パスに空白や日本語文字を含めないように注意してください。
    プロジェクト名の入力
  4. ソースコードの配置
    ユーザーソースコード(*.f90, *.f)を `src` フォルダ以下に新規作成、もしくはコピーしてきます。
    拡張子は `.f90`(自由形式)または `.f`(固定形式)が利用可能です。
  5. 以下はソースコードを新規作成する例です。

    ソースフォルダの下にファイルを新規作成します。
    ファイル新規作成
    ファイル名を指定します。
    ファイル名設定
    プログラムを入力します。
    ファイル名設定

これで、ユーザプロジェクトができました。

プロジェクトの各種操作

出来上がったプロジェクトに対しては、以下に示す各種操作が可能です。

ビルドオプションの変更について

コンパイル及びリンクオプションを変更したい場合は、Makefileの上の方にある、以下の部分を適宜書き換えて下さい。

赤:デバッグモードのオプション
緑:リリースモードのオプション


# Compiler Options
FFLAGS_DEBUG := -g -gline -C
FFLAGS_RELEASE := -O2

# Linker Options
# examples
# LDFLAGS_DEBUG := -L/path/to/debug/libs -lmylibd
# LDFLAGS_RELEASE := -L/path/to/release/libs -lmylib
LDFLAGS_DEBUG :=
LDFLAGS_RELEASE :=

Makefileについて

提供されているMakefileはUnix系OS(Unix, Linux, macOS)及び Windowsでも動く設計となっています。このファイルに定義されている主なターゲットは以下の通りです。

dep-all
make コマンドを引数なしで実行した場合のデフォルトターゲット。依存関係ファイル( build_release/dependencies.mk もしくは build_debug/dependencies.mk )が存在しない場合に生成し、その後 all を実行。尚、依存関係ファイルはNAG Fortran コンパイラの依存関係解析ツール(nagfor =depend)で行っている。このツールはFortranモジュールの依存関係も考慮した解析を行う。
all
必要なすべてのソースファイルをコンパイルして実行可能ファイルを生成する。
run
プログラムを実行する。allターゲットが先に実行されている必要あり
clean
ビルドプロセスで生成されたすべてのファイルを削除する。これには依存関係ファイルdependencies.mkも含まれる。
show_info
プロジェクトの現在の設定(プロジェクト名、ビルドモードなど)を表示する。設定値は prjsettings.json の "buildMode" から読み込まれる
set_debug_mode
ビルドモードを debug に切り替える。write_settings.py スクリプトを使用して prjsettings.json の "buildMode" を更新している。
set_release_mode
ビルドモードを release に切り替える。write_settings.py スクリプトを使用して prjsettings.json の "buildMode" を更新している。
change_project_name
プロジェクト名を変更する。change_project_name.py スクリプトを使用して prjsettings.json内の"projectName"を更新し、更に .vscode/launcher.json の "program" に、プロジェクト名に連動して変わる実行形式ファイル名のフルパス(例えば/home/nag/.../build_debug/myProjectDebug.exe)を設定する。
depend
依存関係ファイルを生成。nagfor =depend を使用して依存関係を得る。得られた情報は transform_dependencies.py でビルドディレクトリを考慮に入れた変換を適用し、最終的にdependencies.mkに出力する。

scripts/*.pyファイルについて

本テンプレートでは以下のパイソンスクリプトを利用しています。

  1. read_settings.py
  2. write_settings.py
  3. change_project_name.py
  4. transform_dependencies.py

.prjsettings.jsonについて

このファイルはプロジェクトのルートフォルダに存在し、プロジェクト名及び現在のビルドモードを管理するために使われています。(JSON形式)

.prjsettings.jsonの例:
{
    "buildMode": "debug",
    "projectName": "MyFortranProject"
}

利用箇所: