nAG Fortran コンパイラでは、外部副プログラムに対して、引用仕様宣言(モジュールまたはインクルード)を生成することができます。引用仕様宣言を用いることで、コンパイル時に引数の整合性がチェックされるため、より安全に外部副プログラムを利用することができます。
コマンド
nagfor =interfaces [option]... file...
オプションの詳細は「nAG Fortran Compiler, Release 7.2 マニュアル - 2.23 引用仕様生成」をご参照ください。
利用例(外部関数の引用仕様宣言を生成する)
以下の外部関数 funcs.f90 に対して、引用仕様宣言(モジュールおよびインクルード)を生成します。
[ funcs.f90 ]
function add(a, b) implicit none integer, intent(in) :: a, b integer add add = a + b end function function subtract(a, b) implicit none integer, intent(in) :: a, b integer subtract subtract = a - b end function
① モジュールの場合
コマンドラインから、以下のコマンドを打ち込んでください。
nagfor =interfaces -otype=module -margin=0 funcs.f90
以下のように、引用仕様宣言を含むモジュールのソースファイル interfaces.f90 が出力されます。
※ メインプログラムに use してご利用ください。
[ interfaces.f90 ]
Module interfaces ! Interface module generated on 2015-01-20 at 14:43:19 +0900. Interface Function add(a, b) Implicit None Integer, Intent (In) :: a, b Integer :: add End Function Function subtract(a, b) Implicit None Integer, Intent (In) :: a, b Integer :: subtract End Function End Interface End Module
② インクルードの場合
コマンドラインから、以下のコマンドを打ち込んでください。
nagfor =interfaces -otype=include -margin=0 funcs.f90
以下のように、引用仕様宣言を含むインクルードファイル interfaces.inc が出力されます。
※ メインプログラムに include してご利用ください。
[ interfaces.inc ]
! Interface INCLUDE file generated on 2015-01-20 at 14:45:46 +0900. Interface Function add(a, b) Implicit None Integer, Intent (In) :: a, b Integer :: add End Function Function subtract(a, b) Implicit None Integer, Intent (In) :: a, b Integer :: subtract End Function End Interface