前へ | 次へ | 目次 | 索引 |
DEC COBOLランタイム・システムは,RMSオペレーションを試みる前に入出力エラー状態をチェックします。VAX COBOLはチェックなしでRMS呼び出しを実行し,その結果 RMSスペシャル・レジスタが異なる値となります。DEC COBOLランタイム・システムが RMSオペレーションを試みない場合は,レジスタの値は以前のままになります。
たとえば,ファイルのオープンが失敗した場合,どんなDEC COBOLレコード操作(READ,WRITE,START,DELETE,REWRITE,あるいは UNLOCK)もRMSの起動前に失敗します。
A.4 DEC Fortran for OpenVMS AXPとVAX FORTRANとの互換性
この節では,DEC Fortran for OpenVMS AXPシステムとVAX FORTRANの互換性について,次の分野に分けて説明します。
DEC Fortran には,ANSI FORTRAN-77標準機能をはじめ,FORTRAN-77標準機能に対する VAX FORTRANの拡張機能も含まれています。たとえば,次の機能がサポートされます。
拡張機能についての詳しい説明は『DEC Fortran Language Reference Manual』を参照してください。このマニュアルには,FORTRAN-77標準規格の拡張機能がわかりやすく示されています。
この節のこの後の部分では,VAX FORTRANおよび DEC Fortran 固有の言語機能,各言語で共有されるものの,異なる方法で解釈される言語機能,VAX FORTRANには適用されない DEC Fortran の制約事項,およびデータの移植に関する検討事項をまとめます。
言語機能についての詳しい説明は『DEC Fortran Language Reference Manual』を参照してください。
A.4.1.1 DEC Fortran 固有の言語機能
次の言語機能は,DEC Fortran では提供されますが,VAX FORTRANバージョン5.0ではサポートされません。
DEC Fortran 言語機能についての説明は『DEC Fortran Language Reference Manual』を参照してください。
A.4.1.2 VAX FORTRAN固有の言語機能
次の言語機能はVAX FORTRANでは使用できますが,DEC Fortran ではサポートされません。
(たとえば,CPAR$ DO_PARALLELなど)
ASSIGN
CLOSE ERRSET |
ERRTST
FDBSET IRAD50 |
RAD50
R50ASC USEREX |
既存のプログラムを移植する場合には,ASSIGN,CLOSE,およびFBDSETの呼び出しは適切なOPEN文に変更しなければなりません(DEC Fortran ではDEFINE FILE文をサポートしますが,同時にDEFINE FILE文の変換についても考慮しなければなりません)。
ERRSETおよびERRTSTのかわりにOpenVMSの条件処理を使用できます。DEC Fortran は ERRSNSサブルーチンをサポートします。
既存のプログラムを移植する場合には,radix-50定数とIRAD50,RAD50,および R50ASCルーチンは,CHARACTERとして宣言したデータを使用して,ASCIIでエンコーディングしたデータに変更しなければなりません。
次の言語機能はVAX FORTRANでは使用できますが,Alpha AXPアーキテクチャと VAXアーキテクチャとの違いにより,DEC Fortran ではサポートされません。
特定の例外の処理方法は,OpenVMS VAXシステムとOpenVMS AXPシステムとで異なります。
AXPの命令セットでは,D浮動小数点 REAL*8フォーマットがサポートされないため,D浮動小数点データは演算中にソフトウェアによってG浮動小数点に変換され,その後,D浮動小数点フォーマットに戻されます。したがって,VAXシステムと AXPシステムとの間には,D浮動小数点の演算に違いがあります。
AXPシステムで最適な性能を実現するには,VAX G浮動小数点または IEEE T浮動小数点フォーマットでのREAL*8データの使用を考慮する必要があり,おそらくフォーマットを指定するために/FLOAT修飾子を使用します。D浮動小数点データを G浮動小数点データまたはT浮動小数点フォーマットに変換するための DEC Fortran アプリケーション・プログラムを作成するには,『DEC Fortran Language Reference Manual』で説明するファイル変換方式を使用します。
次の言語機能は,VAX FORTRANと DEC Fortran とで異なる方法で解釈されます。
CHARACTER*(*)FMT2 PARAMETER(FMT2='(10Habcdefghij)') READ(5, FMT2) WRITE(6, FMT2) |
READ(5, '(10Habcdefghij)') WRITE(6, '(10Habcdefghij)') |
VAX FORTRANでは,READ文によって読み込まれた値が大部分の出力になります。(FMT2は無視されます),DEC Fortran では,WRITE文の出力は"abcdefghij"になります(つまり,READ文によって読み込まれた値はWRITE文によって書き込まれる値に影響を与えません)。
あるVAX FORTRANの機能は,DEC Fortran では使い方が制限されていたり,またはまったく使用できません。
SUBROUTINE F_INIT(A, N) REAL A(N) RETURN ENTRY F_DO_IT(X, I) A(I)= X ! No: A no longer visible RETURN END |
この節では,DEC Fortran とVAX FORTRANのコマンド・ライン修飾子の違いについてまとめます。
DEC Fortran のコンパイル・コマンドとオプションについての詳しい説明は『DEC Fortran User Manual for OpenVMS AXP Systems』を参照してください。VAX FORTRANのコンパイル・コマンドとオプションについての詳しい説明は『DEC Fortran User Manual for OpenVMS VAX Systems』を参照してください。
VAXシステムまたはAXPシステムでコンパイルを開始するには,FORTRANコマンドを使用します。
一部のコンパイラ修飾子は各言語固有の修飾子ですが,DEC Fortran とVAX FORTRANは多くの修飾子を共有しています。
A.4.2.1 共有される修飾子
表 A-10 は,DEC Fortran とVAX FORTRANで共有されるコンパイラ修飾子を示しています。DEC Fortran の修飾子についての詳しい説明は『DEC Fortran Language Reference Manual』を参照してください。
修飾子 | 説明 |
---|---|
/ASSUME | /ASSUMEはVAX FORTRANバージョン5.0では使用できなかったが,現在は/ASSUME=([NO]ACCURACY_SENSITIVE,[NO]DUMMY_ALIAS)をVAX FORTRAN HPOで使用できる。 特定のキーワード値は DEC Fortran 固有の値である。 |
/ANALYSIS_DATA | 同じ。 |
/CHECK | VAX FORTRANの/CHECK=キーワードはすべて,DEC Fortran でも使用できる。 DEC Fortran の/WARNINGS=ALIGNMENT修飾子と VAX FORTRAN HPOの/CHECK=ALIGNMENT修飾子は同じである。 |
/CROSS_REFERENCE | 同じ。 |
/DEBUG | VAX FORTRANの/DEBUG=キーワードはすべて,DEC Fortran でも使用できる。 |
/D_LINES | 同じ。 |
/DIAGNOSTICS | 同じ。 |
/DML | 同じ。 |
/EXTEND_SOURCE | 同じ。 |
/F77 | 同じ。 |
/G_FLOATING | DEC Fortran では/G_FLOATINGをサポートするが,DEC Fortran の/FLOAT修飾子を使用しなければならない。付録 A.4.2.2 項 の/FLOATの説明で述べるように,VAXシステムと AXPシステムではD浮動小数点の演算に違いがある。 |
/I4 | 同じ。DEC Fortran では,INTEGER宣言のサイズを指定するために /INTEGER_SIZE修飾子を使用できる。 |
/LIBRARY | 同じ。 |
/LIST | 同じ。 |
/MACHINE_CODE | 同じ。 |
/OBJECT | 同じ。 |
/OPTIMIZE | 同じであるが,DEC Fortran では,ローカルな最適化のみに対して/OPTIMIZE=LEVEL=1などの最適化レベルの使用をサポートする(付録 A.4.2.2 項 を参照)。実際のコンパイラ最適化技法は異なる可能性がある。 |
/SHOW | VAX FORTRANの大部分の/SHOW=キーワードは DEC Fortran でも使用できる。 |
/STANDARD | VAX FORTRANの/STANDARD=キーワードはすべて,DEC Fortran でも使用できる。 |
/WARNINGS | 大部分の/WARNINGS=キーワードは使用できる。しかし,特定のキーワード値は DEC Fortran 固有の値である。 |
VAX FORTRANソース・プログラムを移植する場合には,DEC Fortran の /VMS修飾子(省略時の設定)を使用することを考慮してください。
A.4.2.2 DEC Fortran 固有の修飾子
表 A-11 は,DEC Fortran コンパイラの修飾子のうち,対応するVAX FORTRANオプションがなく,VAX FORTRANバージョン5.0でサポートされない修飾子を示しています。
修飾子 | 説明 |
---|---|
/ALIGN | レコード構造とコモン・ブロックのアラインメントを制御する(VAX FORTRANでは,コモン・ブロックに対して省略時のアラインメントを使用し,CDEC$ディレクティブも認識する)。 |
/ASSUME | 特定のキーワードはVAX FORTRANバージョン5.0では使用できない。たとえば,BIG_ENDIAN,CRAY,IBM,LITTLE_ENDIAN,RECURSIVE,VAXD,およびVAXGはサポートされない。 |
/FLOAT | 浮動小数点データに対して使用するフォーマット(REALまたは COMPLEX)を制御し,VAX G浮動小数点,VAX D浮動小数点,またはIEEE(S浮動小数点と T浮動小数点)浮動小数点データの使用を許可する。 |
/INTEGER_SIZE | INTEGER宣言のサイズを制御する。 |
/NAMES | 外部名を大文字に変換するのか,小文字に変換するのか,元のまま保存するのかを制御する。 |
/OPTIMIZE=LEVEL= n | 最適化のレベルを /NOOPTIMIZE(/OPTIMIZE=LEVEL=0)と /OPTIMIZE(/OPTIMIZE=LEVEL=4)の間で制御する。VAX FORTRAN(および DEC Fortran)は/OPTIMIZEと /NOOPTIMIZEをサポートする。 |
/POINTER_SIZE | ポインタ・データのサイズ(アドレッシング可能な範囲)を制御する。 |
/RECURSIVE | 実行時プロセス・スタックでローカル・データを割り当て,可能な再帰的実行のためにプロシージャをプリページする。 |
/VMS | DEC Fortran が特定のVAX FORTRAN表記法を使用することを要求する。 |
/WARNING=(ALIGNMENTS, TRUNCATED_SOURCE) | 自然にアラインされていないデータと切り捨てられたソース行に対して警告メッセージを表示することを要求する。これらのキーワードはVAX FORTRAN HPOで使用できる。 |
この節では,VAX FORTRANコンパイラのオプションのうち,DEC Fortran には対応するオプションがないものをまとめます。
表 A-12 は,VAX FORTRANバージョン5.0固有のコンパイル・オプションを示しています。
VAX FORTRAN修飾子 | 説明 |
---|---|
/BLAS=(INLINE,MAPPED) | VAX FORTRANが Basic Linear Algebra Subroutines(BLAS)を認識し,これらをインラインまたはマッピングするかどうかを指定する。VAX FORTRAN High Performance Option(HPO)の場合にのみ使用できる。 |
/CHECK=ASSERTIONS | アサーション・チェックを許可または禁止する。VAX FORTRAN HPOに対してのみ使用できる。 |
/CONTINUATIONS=n | 1つの文で認められる継続行の行数を指定する。DEC Fortran では継続行の行数は最大99行である。 |
/DESIGN=[NO]COMMENTS /DESIGN=[NO]PLACEHOLDERS |
設計情報を確認するためにプログラムを解析する。 |
/DIRECTIVES=DEPENDENCE | 指定されたコンパイラ・ディレクティブがコンパイル時に使用されるかどうかを指定する。VAX FORTRAN HPOに対してのみ使用できる。 |
/MATH_LIBRARY=(FASTまたはACCURATE) | 特定の算術演算組み込み関数を実現するために使用される算術演算ライブラリ・ルーチンの選択を制御する。/MATH_LIBRARYはまた,realデータ型の指数演算子**に対するベクタ化された参照にも影響を与える。VAX FORTRAN HPOでのみ使用できる。 |
/PARALLEL=(MANUALまたはAUTOMATIC) | 並列処理をサポートする。 |
/SHOW=(DATA_DEPENDENCIES,DICTIONARY,LOOPS) | リスト・ファイルに次の情報を登録するかどうかを制御する。
DATA_DEPENDENCIESおよびLOOPSキーワードはVAX FORTRAN HPOに対してのみ使用できる。 |
/VECTOR | ベクタ処理を要求する。VAX FORTRAN HPOに対してのみ使用できる。 |
/WARNINGS=INLINE | コンパイラが組み込みルーチンに対する参照のインライン・コードを生成できないときに,情報診断メッセージを印刷するかどうかを制御する。VAX FORTRAN HPOに対してのみ使用できる。 |
要求された(手作業)分解に関連するすべてのCPAR$ディレクティブと特定の CDEC$ディレクティブ,およびそれに関連する修飾子またはキーワードも VAX FORTRAN固有です。『DEC Fortran Language Reference Manual』を参照してください。
VAX FORTRANのコンパイル・コマンドとオプションに関する詳しい説明は『DEC Fortran User Manual for OpenVMS VAX Systems』を参照してください。
前へ | 次へ | 目次 | 索引 |