TRNSYS/TypeStudioで既存ソースコードをビルドする

TRNSYS18でリリースされたTypeStuidoは、手軽にコンポーネントの開発を行えるツールです。

既存のIntel Visual Fortranで作成されたソースコードのビルドも可能ですが、コンパイラの仕様の違いからいくつか注意点があります。

エラーメッセージの読み方

まずはエラーメッセージの読み方から。既存のソースコードをビルドすると、図のようなエラー画面が表示されることがあります。

このメッセージからはエラー発生箇所と内容の情報が得られます。

  1. エラーが発生した行、カラム(この例では347行目、9カラム目)
  2. エラー発生行のコード
  3. エラーメッセージ(この例ではjfixという暗黙の型はないという意味)

ちょっと余談ですが、エラーメッセージは一般的なForranのエラーメッセージらしく、ネット検索すると関連情報を見つけることができます。

エラーと対策

Function ‘jfix’ at (1) has no IMPLICIT type

jfixはTRNSYSのソースコードで頻繁にでてきますが、これはIntel Fortranの関数です。TypeStuidoで使われているGFortranには本来存在しない関数のようです。(未確認)

対策としてTypeStudioにはこれに代わるJFIXという関数が内部的に用意されているらしいのですが、関数名が大文字という点に注意して下さい。

そう、このエラーは小文字のjfixを大文字のJFIXに変更すれば解決できます。

コンパイルできない

他のコンパイラで作成したソースコードが、そもそも認識されないケースがあります。Workspaceへソースコードを追加しても、図のようにComple Workspaceがグレーアウトして選べない状態になります。メニューに”(No Types Found)”と表示されているとおり、コンポーネントのソースコードとして正しく認識されていません。

(No Types Found)と表示されてコンパイルできない状態

原因はSubroutineの定義の前に入っているタブです。図からは分りにくいですが、Subroutineのまえにタブが使われています。対策は単純でこのタブを削除、もしくはスペースへ置換えれば解決します。

Subroutineの前に”タブ”が入っている

なお、ソースコードの認識は読み込みのタイミングで行われます。TypeStudioの中でタブを削除してもすぐには認識されません。この場合はいったんworkspaceから削除、その後再度addし直してください。

もしくは予めメモ帳などでタブを削除してからworkspaceへaddすると良いでしょう。

これ報告済みなので今後のバージョンアップで修正されると思います。

TRNSYS16形式のコンポーネントへの対策

TRNSYS16から17へのバージョンアップの際に、コンポーネントの書き方が大幅に改定されています。このためTRNSYS16,およびそれ以前のコンポーネントのソースコードは書き換えが必要です。

詳しい情報についてはドキュメント 7.5. Converting Types from earlier TRNSYS Versions にまとめられています。以前のバージョン用に作られたコンポーネントをTypeStuidoでビルドする場合は、ドキュメントに沿ってソースコードの書き換えを行って下さい。

TRNSYS16以前のコンポーネントではFortran77相当で書かれている事があります。Fortran90とはコーディングが若干異なります。これもエラーの原因になることがあります。その点も注意して書き換えが必要です。

動作環境

以下の環境で動作を確認しています。

  • Windows11 Pro(64bit, 21H2)
  • TRNSYS18.04.0001(64bit)
Pocket

コメントする

メールアドレスが公開されることはありません。