次に,言語間での名前の調整方法を要約します。
Fortran の基本設定を使用している Fortran ルーチンを呼び出すとき,その Fortran コードを再コンパイルすることができない場合,C と Visual Basic ではすべてが大文字の名前を使って呼び出しを行わなくてはなりません。MASM では,すべてが大文字の名前を使うか,OPTION CASEMAP コンパイル指示文を ALL に設定してすべての識別子を大文字に変換する必要があります。C コードでの __stdcall 規約,MASM の PROTO および PROC 宣言での STDCALL の使用は十分ではありません。__stdcall と STDCALL は,これらの言語ではつねに大文字小文字を保存するからです。Fortran は基本設定ではすべて大文字の名前を生成するので,C と MASM のコードはこれと一致しなければなりません。
たとえば,次のプロトタイプは,Fortran 関数 FFARCTAN(angle) を設定しています。引数 angle は,ATTRIBUTES VALUE プロパティを持ちます。
C の場合
extern float __stdcall FFARCTAN( float angle );
Visual Basic の場合
Declare Function FFARCTAN Lib "C:\f90ps\FBAS.DLL" (ByVal angle As Single) As Single
MASM の場合
.MODEL FLAT, STDCALL FFARCTAN PROTO STDCALL, angle: REAL4 ... FFARCTAN PROC STDCALL, angle: REAL4
すべてが小文字の名前
ルーチン名が C または MASM ですべて小文字で表現されている場合,名付け規約は,Fortran 宣言で C または STDCALL オプションが使用されていれば,自動的に正しくなります。C および STDCALL オプションは名前をすべて小文字に変換するので,Fortran のソース・コードでは,大文字小文字の混在を含めて,任意の大文字小文字の組み合わせを使用することができます。Visual Basic ルーチンを Fortran から直接呼び出すことはできないので (「Visual Fortran と Visual Basic が混在したプログラミング」を参照),Basic ルーチン名は決して変換されません。
大文字小文字が混在した名前
C または MASM で,ルーチンの名前に大文字小文字が混在しており,その名前を変更できない場合,Fortran の ATTRIBUTES ALIAS オプションを使って名前の重複を解消することができます。ALIAS を指定しないと,Fortran は大文字小文字が混在した名前を保存しないので,この場合,ALIAS オプションが必要です。
ALIAS オプションを使用するには,.OBJ ファイル中での名前を引用符で囲んで指定します。次に,ia32 システムで C の関数 My_Proc を参照する例を示します。
!DEC$ ATTRIBUTES ALIAS:'_My_Proc' :: My_Proc
ia64 システムでは,先頭の下線なしでコーディングします。
!DEC$ ATTRIBUTES ALIAS:'My_Proc' :: My_Proc