RokkoFortranFunctionOverload - t-sakashita/rokko GitHub Wiki

Fortran関数のオーバーロードの方針

interface構文の後に総称名に書き、オーバロードする副プログラムを列挙する。

オーバーロードを使って、できるだけ関数名は短く綴る。 だが、Fortranには、階層的な名前空間がない。 オーバーロードした名前は、通常の関数名として使用できない。 ユーザが使いそうな関数名となることは避けたい。 そこで、一律に、接頭辞としてrokko_を付けて、衝突を避けることにした。

  • parametersではなく、rokko_parametersと名付ける。
  • constructは使わず、rokko_constructと名付ける。

classキーワードの使用

classキーワードを使えば、moduleの実体が複数作れる。

call params%set("",)

オブジェクトを第一引数として書くか、%の前に書くかの違いであり、記述の長さに違いはない。 また、Fortranユーザにはなじみがないし、コンパイラの対応状況、オーバーヘッドが未知である。まだ導入しない。

参考:https://github.com/t-sakashita/fortran_cxx_usage/tree/master/fortran_cxx_interoperability/two_classes

Fortran2008が普及した後に検討

  • コンストラクタのような書き方
  • finalizeを自動で呼び出す。