続FORTRANコンパイラが。。。

前回までの話

なぜかIntel Parallel Studio XE 2017(以下、XE2017)でTRNSYSのコンポーネントのプロジェクトが変換できなくなってしまいました。(詳しくはこちら

なにか条件があるのかもしれませんが、どうもうまく変換できません。変換がダメなら、ドキュメントを参考にスクラッチから新しく作ろうかと思いましたが、それもいろいろ設定が細かくて面倒です。(vol 7.Programmer’s Guideに記載されています)
もしかして変換が不要な既存のプロジェクトを元に修正すれば簡単なのではと思いついて試してみました。

プロジェクトを準備する

TRNSYSにはXE2017より少し前のバージョン、XE2011のソリューション(IvfCXE2011.sln)が添付されています。COMPAQ Visual Fortranに比べたらかなり最近のバージョンなのでプロジェクトの変換が不要(※)です。これに含まれているプロジェクトを元に新しいコンポーネント用のプロジェクトを作成してみます。

※「ソリューション」としてはバージョンが違うので変換が必要になりますが、ここでは「プロジェクト」を使うので、特に変換なしで作業できます。

以下、すでにプロフォルマからExportしたソースコード(Type201.for)がある前提で話を進めます。

まずは、IvfCXE2011.slnの所在を確認します。「C:\TRNSYS17\Compilers」フォルダにある「IvfCXE2011」フォルダがそれです。

「C:\TRNSYS17\Compilers」フォルダにある「IvfCXE2011」フォルダ
「C:\TRNSYS17\Compilers」フォルダにある「IvfCXE2011」フォルダ

このソリューションはTRNDLL、その他をビルドするものなので、さらに3個のプロジェクト(フォルダ)が含まれています。

ここから「MyType」フォルダを丸ごとコピーして雛形として流用します。コピーしたら分かり易いように「MyType201」といういう名前にリネームしておきます。

「MyType」をコピーしてリネームする
「MyType」をコピーしてリネームする

さらにフォルダの中身を覗くとプロジェクトファイル(.vfproj)があるので、これも分かり易いように「MyType201.vfproj」にリネームします。

プロジェクトファイル(.vfproj)を「MyType201.vfproj」にリネームする
プロジェクトファイル(.vfproj)を「MyType201.vfproj」にリネームする

さらにSimulation StudioからExportしたソースコードを同じフォルダに放り込んだら準備完了です。

フォルダへExportしたソースコードを追加する
フォルダへExportしたソースコードを追加する

XE2017(画面はVisual Studio2015で起動)を起動。先ほど用意したプロジェクト「MyType201.vfproj」を開いて、「Sourace Files」フォルダへソースコード「Type201.for」を追加します。

「Sourace Files」フォルダへソースコード「Type201.for」を追加する
「Sourace Files」フォルダへソースコード「Type201.for」を追加する

プロジェクトのプロパティ変更

あとは、追加したソースコードに合せてプロジェクトの設定を何カ所か変更します。

[プロジェクト]-[プロパティ]で設定画面を表示して、以下の赤枠の項目を変更します。構成「Release」で、「リンカー」の出力ファイルの項目をプロジェクト名に合せて「MyType201.dll」へ変更します。

2017/10/19 追記
ここは
$(OUTDIR)$(ProjectName).dll としておくとプロジェクトと同じ名前でDLLが出力されます。プロジェクト名と揃える場合に便利な指定方法です。

リンカーの設定で出力するファイル名を指定する
リンカーの設定で出力するファイル名を指定する

つづいて「ビルドイベント」のコマンドラインのファイル名を同じように変更します。

ビルド後にファイルを所定のフォルダへコピーする
ビルド後にファイルを所定のフォルダへコピーする

2017/10/19 追記
ここも copy $(OutDir)$(ProjectName).dll  C:\TRNSYS17\UserLib\ReleaseDLLs\*.*  とするとプロジェクト名と同じ名前で扱われます。

【重要】構成「Debug」も忘れずに同じように変更を行います。

あとはビルドして、「C:\Trnsys17\UserLib\ReleaseDLLs」フォルダにMyType201.dllができあがっていれば無事成功です。

ビルド後にMyType201.dllが出来上がれば成功
ビルド後にMyType201.dllが出来上がれば成功

これでType201が利用できる状態になったので、TRNSYSのプロジェクトから呼び出して計算に利用できます。

もっと面倒なのかと思ったけど、なんとかなった。 さらにこのプロジェクトをソリューション(IvfCXE2011.sln)へ追加しておくと、TRNDLL.DLLのビルドも同時にできてDebug、Releaseモードの切り替えが楽になります。

複数のコンポーネントを開発する場合には、同じ手順でプロジェクトを作成、まとめてソリューションへ登録しておくと、ソースコードのメンテナンスがやりやすくなります。

Pocket

1件のピンバック

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です