Translate

2016/12/14

続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」フォルダがそれです。

image

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

image

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

image

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

image

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

image

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

image

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

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

[プロジェクト]-[プロパティ]で設定画面を表示して、以下の赤枠の項目を変更します。構成「Release」で、「リンカー」の出力ファイルの項目をプロジェクト名に合せて「MyType201.dll」へ変更します。
2017/10/19 追記
ここは $(OUTDIR)\$(ProjectName).dll としておくとプロジェクトと同じ名前でDLLが出力されます。プロジェクト名と揃える場合に便利な指定方法です。

image

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

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

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

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

image

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

もっと面倒なのかと思ったけど、なんとかなった。

さらにこのプロジェクトをソリューション(IvfCXE2011.sln)へ追加しておくと、TRNDLL.DLLのビルドも同時にできてDebug、Releaseモードの切り替えが楽になります。
複数のコンポーネントを開発する場合には、同じ手順でプロジェクトを作成、まとめてソリューションへ登録しておくと、ソースコードのメンテナンスがやりやすくなります。

0 件のコメント:

コメントを投稿