日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS
ライブラリ

タイトルページ
目次
まえがき
第 1 章:はじめに
第 2 章:ページサイズの拡大に対するアプリケーションの対応
第 3 章:共有データの整合性の維持
第 4 章:アプリケーションデータ宣言の移植性の確認
第 5 章: アプリケーション内の条件処理コードの確認
第 6 章:ネイティブイメージとトランスレートイメージの相互操作性の確認
付録 A :OpenVMS AXPコンパイラ
索引
PDF
OpenVMS ホーム
OpenVMS AXP オペレーティング・システム | HPE 日本

OpenVMS AXP
オペレーティング・システム
OpenVMS AXP オペレーティング・システムへの移行:
再コンパイルと再リンク


目次 索引




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の互換性について,次の分野に分けて説明します。



A.4.1 言語機能

DEC Fortran には,ANSI FORTRAN-77標準機能をはじめ,FORTRAN-77標準機能に対する VAX FORTRANの拡張機能も含まれています。たとえば,次の機能がサポートされます。

  • RECORD文とSTRUCTURE文

  • CDEC$ディレクティブとOPTIONS文

  • BYTE,INTEGER*1,INTEGER*2,INTEGER*4,LOGICAL*1,LOGICAL*2,LOGICAL*4

  • REAL*4,REAL*8,COMPLEX*8,COMPLEX*16

  • IMPLICIT NONE文

  • INCLUDE文

  • NAMELIST I/O

  • ドル記号($)とアンダースコア(_)を含む最大31文字の名前

  • DO WHILE文とEND DO文

  • 行末コメントに対する感嘆符(!)の使用

  • 組み込み関数%DESCR,%LOC,%REF,および%VAL

  • VOLATILE文

  • 『DEC Fortran Language Reference Manual』に示す他の言語要素

拡張機能についての詳しい説明は『DEC Fortran Language Reference Manual』を参照してください。このマニュアルには,FORTRAN-77標準規格の拡張機能がわかりやすく示されています。

この節のこの後の部分では,VAX FORTRANおよび DEC Fortran 固有の言語機能,各言語で共有されるものの,異なる方法で解釈される言語機能,VAX FORTRANには適用されない DEC Fortran の制約事項,およびデータの移植に関する検討事項をまとめます。

言語機能についての詳しい説明は『DEC Fortran Language Reference Manual』を参照してください。

次の言語機能は,DEC Fortran では提供されますが,VAX FORTRANバージョン5.0ではサポートされません。

  • 文字定数の区切り文字としての引用符(")。これは/VMS修飾子を指定することにより禁止できます。

  • AUTOMATIC文とSTATIC文

  • 再帰

  • COMMONブロックの項目およびレコードのフィールドに対する自然にアラインされた境界またはパックされた境界

  • POINTER文データ型

  • INTEGER*1,INTEGER*8,およびLOGICAL*8データ型

  • S浮動小数点およびT浮動小数点 IEEE浮動小数点データ型のサポートと,ネイティブでなく,フォーマッティングもされていないデータ・ファイル・フォーマットのサポート。ビッグ・エンディアン数値フォーマットもサポートされます。AXPシステムのネイティブな浮動小数点データ型についての説明は『Alpha Architecture Reference Manual』を参照してください。

  • LIB$ESTABLISHとLIB$REVERTは,VAX FORTRAN条件処理との互換性を維持するために,組み込み関数として提供されます。

  • '0..1'BとB'0..1'という形式のビット定数

  • 8進定数(O'0..7'と16進定数(X'0..F'またはZ'0..F')に対するMIL-STD 1753構文

  • 倍精度の複素数組み込み関数に対する代替の"Z"綴り(たとえば,平方根倍精度組み込み関数はCDSQRTまたはZSQRTと指定できます。)

  • 次の組み込み関数

    • IMAG

    • AND

    • OR

    • XOR

    • LSHIFT

    • RSHIFT

  • いくつかの実行時エラーは DEC Fortran 固有のエラーです。

  • プラットフォーム固有の機能に対して与えられる警告メッセージ "feature not available on this platform"は,OpenVMS AXP ではサポートされません。

  • 大文字と小文字を区別する名前

  • DEC Fortran では,入出力ユニット番号は0または正の整数として指定できます。VAX FORTRANでは,入出力ユニット番号の値は0〜99の範囲です。

DEC Fortran 言語機能についての説明は『DEC Fortran Language Reference Manual』を参照してください。

次の言語機能はVAX FORTRANでは使用できますが,DEC Fortran ではサポートされません。

  • FORTRAN/PARALLEL=(AUTOMATIC)

  • CPAR$の使用によるFORTRAN/PARALLEL=(MANUAL)

    (たとえば,CPAR$ DO_PARALLELなど)

  • DICTIONARY文(Common Data DictionaryはDEC Fortranの最初のリリースではサポートされません)

  • PDP-11との互換性を維持するための次の入出力およびエラー・サブルーチン

    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サブルーチンをサポートします。

  • nRxxxという形式のRadix-50定数

    既存のプログラムを移植する場合には,radix-50定数とIRAD50,RAD50,および R50ASCルーチンは,CHARACTERとして宣言したデータを使用して,ASCIIでエンコーディングしたデータに変更しなければなりません。

次の言語機能はVAX FORTRANでは使用できますが,Alpha AXPアーキテクチャと VAXアーキテクチャとの違いにより,DEC Fortran ではサポートされません。

  • いくつかのFORSYSDEFシンボル定義モジュールはVAXアーキテクチャまたは AXPアーキテクチャ固有のモジュールです。

  • 正確な例外制御

    特定の例外の処理方法は,OpenVMS VAXシステムとOpenVMS AXPシステムとで異なります。

  • REAL*16(H浮動小数点)データ型とREAL*16 Q組み込み関数

  • D浮動小数点に対するVAXのサポート

    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のHigh-Performance Option(HPO)に関連するベクタ化は,/VECTOR修飾子とそれに関連する修飾子およびCDEC$ INIT_DEP_FWDディレクティブも含めてサポートされません。AXPプロセッサは,ベクタ化機能に類似した機能としてパイプライン機能や他の機能を提供します。



次の言語機能は,VAX FORTRANと DEC Fortran とで異なる方法で解釈されます。

  • 整数定数の8進表現

  • 乱数ジェネレータ(RAN)
    DEC Fortran のRAN関数は,同じランダム・シードに対してVAX FORTRANの場合と異なる数値パターンを生成します(RAN関数とRANDU関数はVAX FORTRANとの互換性を維持するために提供されます)。

  • フォーマッティングした入出力文でのホレリス定数
    次のいずれかの場合には,VAX FORTRANと DEC Fortran は異なる動作をします。

    • 2つの異なる入出力文がフォーマット指定子として同じCHARACTER PARAMETER定数を参照する場合。次の例を参照してください。


            CHARACTER*(*)FMT2 
            PARAMETER(FMT2='(10Habcdefghij)')
            READ(5, FMT2)
            WRITE(6, FMT2)
      

    • 2つの異なる入出力文がそれぞれのフォーマット指定子として同じ文字定数を使用する場合。次の例を参照してください。


            READ(5, '(10Habcdefghij)')
            WRITE(6, '(10Habcdefghij)')
      


    VAX FORTRANでは,READ文によって読み込まれた値が大部分の出力になります。(FMT2は無視されます),DEC Fortran では,WRITE文の出力は"abcdefghij"になります(つまり,READ文によって読み込まれた値はWRITE文によって書き込まれる値に影響を与えません)。



あるVAX FORTRANの機能は,DEC Fortran では使い方が制限されていたり,またはまったく使用できません。

  • 数値ローカル変数は,常にではありませんが,使用している最適化のレベルに応じて,値が0に初期化されることがあります。どのような場合も,必ず値を0に初期化するようにするには,明示的な代入文を使用するか,またはDATA文を使用してください。

  • 文字定数には文字ダミー引数を割り当てなければならず,数値ダミー引数を割り当てることはできません(VAX FORTRANでは,ダミー引数が数値の場合,'A'は参照によって渡されていました)。

  • 保存されたダミー配列は機能しません。


           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 
    

  • ホレリス実引数は文字ダミー引数ではなく,数値ダミー(仮)引数に対応づけなければなりません。



A.4.2 コマンド・ライン修飾子

この節では,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-10 は,DEC Fortran とVAX FORTRANで共有されるコンパイラ修飾子を示しています。DEC Fortran の修飾子についての詳しい説明は『DEC Fortran Language Reference Manual』を参照してください。

表 A-10 DEC FortranとVAX FORTRANで共有される修飾子
修飾子 説明
/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-11 は,DEC Fortran コンパイラの修飾子のうち,対応するVAX FORTRANオプションがなく,VAX FORTRANバージョン5.0でサポートされない修飾子を示しています。

表 A-11 VAX FORTRANでサポートされない DEC Fortran修飾子
修飾子 説明
/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固有のコンパイル・オプションを示しています。

表 A-12 DEC Fortranでサポートされない VAX FORTRANオプション
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)。

  • インクルードしたCommon Data Dictionaryレコードからのソース・ライン(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』を参照してください。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項