f77 および f95 オブジェクトバイナリを混在させるには、-xlang=f77 オプションを指定して f95 コンパイラでリンクします。主プログラムが f77 プログラムであっても、f95 でリンクを実行します。
例: f77 オブジェクトファイルで f95 主プログラムをコンパイルします。
demo% cat m.f95 CHARACTER*74 :: c = ’This is a test.’ CALL echo1( c ) END demo% f95 -xlang=f77 m.f95 sub77.o demo% a.out This is a test. demo% |
f95 プログラムに対して FORTRAN 77 ライブラリおよび組み込み関数が使用できます。『Fortran ライブラリ・リファレンス』を参照してください。
例: FORTRAN 77 のライブラリからルーチンを呼び出す f95 のメインです。
demo% cat tdtime.f95 REAL e, dtime, t(2) e = dtime( t ) DO i = 1, 100000 as = as + cos(sqrt(float(i))) END DO e = dtime( t ) PRINT *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2) END demo% f95 tdtime.f95 demo% a.out elapsed: 0.14 , user: 0.14 , sys: 0.0E+0 demo% |
dtime(3F) を参照してください。
Fortran の標準機能として、FORTRAN 77 にはない組み込み関数がサポートされています。Fortarn の非標準組み込み関数を含むすべての組み込み関数は、『Fortran ライブラリリファレンスマニュアル』に記載されています。
『Fortran ライブラリ・リファレンス』に記載された組み込み関数名をプログラムの関数名として使用する場合は、組み込みではないユーザー指定のルーチンを使用するために、f95 の EXTERNAL 文を追加する必要があります。
『Fortran ライブラリリファレンス』には、以前の f77 コンパイラ が認識可能な組み込み関数も記載されています。f95 コンパイラは、これらの名前を組み込み関数と同様に認識できます。
-f77=intrinsics を指定してコンパイルすると、認識可能な組み込み関数は f77 コンパイラで知られるものだけに制限され、Fortran 組み込み関数は無視されます。