サポートされているネイティブ,非ネイティブ数値書式

Visual Fortran は,次表に示すリトル・エンディアンの浮動小数点書式をサポートしています。

浮動小数点の大きさ メモリー上の書式
REAL(KIND=4), COMPLEX(KIND=4) IEEE S 浮動小数点
REAL(KIND=8), COMPLEX(KIND=8) IEEE T 浮動小数点

プログラムが,メモリー上の書式とデータの大きさが異なる浮動小数点書式を含んでいる書式なしデータ・ファイルの読み書きを行う必要がある場合,その書式なしデータの変換を要求することができます。

各種のコンピュータでのデータ格納は,リトル・エンディアンまたはビッグ・エンディアン格納の規約を使用します。格納方法の規約は,一般に,複数のバイトにまたがる数値に次のように適用されます。

次図に,この 2 つのバイト順序方式の違いを示します。

INTEGER 値のリトル・エンディアンとビッグ・エンディアンの格納方法

書式なしデータ・ファイルをビッグ・エンディアンとリトル・エンディアンのコンピュータ間で移動するためには,データを変換する必要があります。

Visual Fortran には,プログラムがいくつかの非ネイティブ浮動小数点書式とビッグ・エンディアンの INTEGER または浮動小数点書式で書式なしデータ (もともと書式なし I/O 文で書き出されたもの) を読み書きする機能を提供しています。サポートされている非ネイティブ浮動小数点書式には,VAX FORTRAN がサポートしている Compaq VAX リトル・エンディアン浮動小数点書式,大部分の Sun Microsystems システムと IBM RISC System/6000 システムで使用されている標準 IEEE ビッグ・エンディアン浮動小数点書式,IBM 浮動小数点書式 (IBM の System/370 とこれに似たシステムで使われているもの),および CRAY 浮動小数点書式などがあります。

書式なしデータの変換は書式付きデータの変換よりも一般に高速で,浮動小数点数の精度が失われる可能性も低くなります。

ネイティブ・メモリー書式には,リトル・エンディアン整数とリトル・エンディアンの IEEE 浮動小数点書式,REAL(KIND=4) および COMPLEX(KIND=4) 宣言の S 浮動小数点,および REAL(KIND=8) および COMPLEX(KIND=8) 宣言の T 浮動小数点があります。

サポートされている非ネイティブ書式なしファイル書式のキーワードとそのデータ型を次表に示します。

非ネイティブ数値書式,キーワード,およびサポートされているデータ型

キーワード 説明
BIG_ENDIAN 適切な大きさ (1,2,または 4 バイト) のビッグ・エンディアン整数データと,実数または複素数の適切な大きさのビッグ・エンディアン IEEE 浮動小数点 (REAL(KIND=4)REAL(KIND=8)COMPLEX(KIND=4)COMPLEX(KIND=8)) 書式。INTEGER(KIND=1) データはリトル・エンディアンとビッグ・エンディアンで同じです。
CRAY 適切な大きさ (1,2,4,または 8 バイト) のビッグ・エンディアン整数データと,REAL(KIND=8) または COMPLEX(KIND=8) のビッグ・エンディアン CRAY 専用浮動小数点書式。
FDX 適切な大きさ (1,2,4,または 8 バイト) のリトル・エンディアン整数データと,REAL(KIND=4) または COMPLEX(KIND=4) の Compaq VAX F 浮動小数点データ,および REAL(KIND=8) または COMPLEX(KIND=8) の D 浮動小数点データ。
FGX 適切な大きさ (1,2,4,または 8 バイト) のリトル・エンディアン整数データと,REAL(KIND=4) または COMPLEX(KIND=4) の Compaq VAX F 浮動小数点データ,および REAL(KIND=8) または COMPLEX(KIND=8) の G 浮動小数点データ。
IBM 適切な大きさ (1,2,または 4 バイト) のビッグ・エンディアン整数データと,REAL(KIND=4) あるいは COMPLEX(KIND=4),または REAL(KIND=8) あるいは COMPLEX(KIND=8) のビッグ・エンディアン IBM 専用浮動小数点書式。
LITTLE_ENDIAN 適切な大きさ (1,2,4,または 8 バイト) のネイティブ・リトル・エンディアン整数と,適切なサイズと型 (REAL(KIND=4)REAL(KIND=8)COMPLEX(KIND=4)COMPLEX(KIND=8)) のネイティブ・リトル・エンディアン IEEE 浮動小数点データ。これらはメモリー上に格納されているのと同じ書式です。これらのデータ型のサポートされている範囲についての詳細は,「ネイティブ IEEE 浮動小数点表現」を参照してください。
NATIVE メモリーとディスク間で変換は行われません。これは書式なしファイルでの基本設定です。
VAXD 適切な大きさ (1,2,4,または 8 バイト) のリトル・エンディアン整数と,REAL(KIND=4) または COMPLEX(KIND=4) の Compaq VAX F 浮動小数点書式,および REAL(KIND=8) または COMPLEX(KIND=8) の D 浮動小数点書式。
VAXG 適切な大きさ (1,2,4,または 8 バイト) のリトル・エンディアン整数と,REAL(KIND=4) または COMPLEX(KIND=4) の Compaq VAX F 浮動小数点書式,および REAL(KIND=8) または COMPLEX(KIND=8) の G 浮動小数点書式。

非ネイティブ書式を読み取ると,ディスク上の非ネイティブ書式はメモリー上のネイティブ書式に変換されます。変換後の非ネイティブ値がネイティブ・データ型の範囲を超えている場合,実行時メッセージが表示されます。