TOC PREV NEXT INDEX

Put your logo here!


型変換


新しいインターフェースにおいては、どのような数値型へも、または数値型からの自動変換も提供されているので、ユーザーは数値変数の外部データ型を知っている必要はありません。この特徴を使って、コードを外部データ型に依存しないようにして簡単にすることができます。type punningを排除することによって、以前のインターフェースでは起こりえたいくつかの種類の型エラーを防げるようになりました。変数の外部データ型を扱うに際にプログラムを変更する必要が無いために、新しいインターフェースはプログラムをより強固にすることができます。

外部数値型からの変換が必要な場合はライブラリによって扱われます。この自動変換機能と外部データ表記の内部データ型からの分離はNetCDF4版においてより重要になります。4版では、自然に対応する内部データ型が存在しない圧縮データ(例えば11ビット値の配列)用の新しい外部データ型が用意される予定です。

ある数値型から他の型に変換する操作は、ターゲットの型が変換された値を表現できない場合にエラーを引き起こします。(NetCDF-2においては、そのようなオーバーフローはXDR階層でのみ起こり得ました。)例えば、REALは外部ではNF_DOUBLE(IEEE浮動小数点数)として格納されているデータをもつことができないかもしれません。値の配列をアクセスする際には、表現し得る範囲を超えた値が一つまたはそれ以上ある場合には、NF_ERANGEエラーが返されますが、他の値は正しく変換されます。

型変換において、単に精度のロスが生じただけではエラーが返されないことに注意してください。そのため、例えばINTEGERに倍精度の値を読み込んだ場合には、その倍精度の値の大きさがプラットフォーム上のINTEGERで表現できる範囲を超えない限りエラーは生じません。同様に、仮数部分に整数のビットをすべて収めることのできないREALに大きな整数を読み込み、精度が失われてもエラーは生じません。このような精度のロスを防ぐためには、アクセスする変数の外部データ型を確認し、それと互換性のある内部データ型を使用しましょう。

新しいインターフェースはテキスト列を表現する文字配列と小さい整数を表わす8ビットバイトの配列とを区別します。このインターフェースはテキスト列のためのCHARACTER, INT1, 1バイト整数の内部データ型をサポートします。



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX