TOC PREV NEXT INDEX

Put your logo here!


新しいFORTRANインターフェース


まず最初にNetCDF-2インターフェースを使ったFORTRANコードの例です。

! どんな型の値にも対応できる十分な大きさのバッファを使用
DOUBLE PRECISION DBUF(NDATA)
REAL RBUF(NDATA)

EQUIVALENCE (RBUF, DBUF),
INT XTYPE ! データの実際の型を保持する
INT STATUS ! エラーステータス用
! Get the actual data type
CALL NCVINQ(NCID, VARID, ,XTYPE, )

! データを取得
CALL NCVGT(NCID, VARID, START, COUNT, DBUF, STATUS)
IF(STATUS .NE. NCNOERR) THEN
PRINT *, ’Cannot get data, error code =’, STATUS
! エラーに対応する

ENDIF
IF (XTYPE .EQ. NCDOUBLE) THEN
CALL DANALYZE(DBUF)
ELSEIF (XTYPE .EQ. NCFLOAT) THEN
CALL RANALYZE(RBUF)

ENDIF

同じことを新しいNetCDF-3のFORTRANインターフェースを使って扱うとこのようになります。

! 解析に倍精度を使用したい
DOUBLE PRECISION DBUF(NDATA)
INT STATUS
! よって、データを倍精度として取得する関数を使用する
STATUS = NF_GET_VARA_DOUBLE(NCID, VARID, START, COUNT, DBUF)
IF(STATUS .NE. NF_NOERR) THEN
PRINT *, ’Cannot get data, ’, NF_STRERROR(STATUS)
! エラーに対応する

ENDIF
CALL DANALYZE(DBUF)

上の例は関数の名前、データ型の変換、エラーの取り扱い等における変更を表わしています。詳細については後述してあります。



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