【ソースコード】
VIRS(1B01)のサンプルはこちら TMI (1B11)のサンプルはこちら PR (1C21)のサンプルはこちら PR (2A25)のサンプルはこちら PR (3A25)のサンプルはこちら
ソースコードのファイル名はxxxx.Fとする。プリプロセッサを通すため。
#include "TKfortranDeclare.h" 必須 #include "IO.h" 必須 #include "IO_PR.h" PRのとき、他は <IO_TMI.h> 等
record /WRAPPER_HANDLE/ granuleHandle1B21 record /L1B_21_SWATHDATA/ L1B21_data record文はfortran90での構造体宣言 /xxxx/はIO.hに定義されている名称、Parameter Dictionaryを参照のこと 右側はユーザプログラムで使用する任意の変数名
record /WRAPPER_HANDLE/ granuleHandle1B21 record /L1B_21_SWATHDATA/ L1B21_data
record文はfortran90での構造体宣言 /xxxx/はIO.hに定義されている名称、Parameter Dictionaryを参照のこと 右側はユーザプログラムで使用する任意の変数名
status = TKopen( "1B21ファイル名", TK_L1B_21, TK_READ_ONLY, granuleHandle1B21) TK_L1B_21はデータタイプの指定、Parameter Dictionaryを参照のこと TK_READ_ONLYは読み込み専用のオープン指定
status = TKopen( "1B21ファイル名", TK_L1B_21, TK_READ_ONLY, granuleHandle1B21)
TK_L1B_21はデータタイプの指定、Parameter Dictionaryを参照のこと TK_READ_ONLYは読み込み専用のオープン指定
status = TKreadMetadataInt( granuleHandle1B21, TK_ORBIT_SIZE, numberOfScan ) status = TKreadMetadataFloat( granuleHandle1B21, TK_FILE_SIZE, fileSize ) status = TKreadMetadataChar( granuleHandle1B21, TK_GRANULE_ID, granuleID ) メタデータの要素指定は二番目の引数で指定 要素によって、Int, Float, Charのどれを使うかを区別
status = TKreadMetadataInt( granuleHandle1B21, TK_ORBIT_SIZE, numberOfScan ) status = TKreadMetadataFloat( granuleHandle1B21, TK_FILE_SIZE, fileSize ) status = TKreadMetadataChar( granuleHandle1B21, TK_GRANULE_ID, granuleID )
メタデータの要素指定は二番目の引数で指定 要素によって、Int, Float, Charのどれを使うかを区別
do iScan=1, numberOfScan status = TKreadScan( granuleHandle1B21, L1B21_data ) write(6,*) 'Lat,Lon : ', L1B21_data.geolocation(1,25), L1B21_data.geolocation(2,25) end do L1B21_dataの構造体定義はIO_PR.h内に記述 メンバ名をドット(.)で区切って引用
do iScan=1, numberOfScan status = TKreadScan( granuleHandle1B21, L1B21_data ) write(6,*) 'Lat,Lon : ', L1B21_data.geolocation(1,25), L1B21_data.geolocation(2,25) end do
L1B21_dataの構造体定義はIO_PR.h内に記述 メンバ名をドット(.)で区切って引用
status = TKclose( granuleHandle1B21)
【コンパイル】
fortranコンパイラでは -DLANGUAGE_FORTRAN -lnsl をつける
f77 -DLANGUAGE_FORTRAN -o f_2a25rd f_2a25rd.F \ -I/export/home5/shimizu/hdf4.0r2/include \ -I/export/home/trmm07/toolkit_4.7/include \ -L/export/home5/shimizu/hdf4.0r2/lib \ -L/export/home/trmm07/toolkit_4.7/lib \ -ltsdistk -lmfhdf -ldf -ljpeg -lz -lnsl
version4.7よりも古いtoolkitを使っている場合、fortranでは#include "IO.h"をコメントとする必要がある。v4.7以降はそのままでよい。
fortranコンパイラでは -DLANGUAGE_FORTRAN をつける
f77 -DLANGUAGE_FORTRAN -o f_2a25rd f_2a25rd.F \ -I/home5/trmm01/hdf4.0r2/include \ -I/home5/trmm01/toolkit_4.7/include \ -L/home5/trmm01/hdf4.0r2/lib \ -L/home5/trmm01/toolkit_4.7/lib \ -ltsdistk -lmfhdf -ldf -ljpeg -lz
fortranコンパイラでは -DLANGUAGE_FORTRAN -ieee_with_no_inexact -std1 -DPSIZE_64 をつける
f77 -DLANGUAGE_FORTRAN -DDEC_ALPHA -ieee_with_no_inexact -std1 -DPSIZE_64 \ -o f_2a25rd f_2a25rd.F \ -I/home2/trmm07/suzuki/HDF4.1r2/include \ -I/home2/trmm07/suzuki/toolkit_4.7/include \ -L/home2/trmm07/suzuki/HDF4.1r2/lib \ -L/home2/trmm07/suzuki/toolkit_4.7/lib \ -ltsdistk -lmfhdf -ldf -ljpeg -lz
fortranコンパイラは fort77 を用い、-DLANGUAGE_FORTRAN -lm をつけるfortranソースコードの先頭に program main を付加し、getargをigetargルーチンに変更
fort77 -DLANGUAGE_FORTRAN -o f_2a25rd f_2a25rd.F \ -I/home2/trmm07/HDF4.1r2/include \ -I/home2/trmm07/toolkit_4.7/include \ -L/home2/trmm07/HDF4.1r2/lib \ -L/home2/trmm07/toolkit_4.7/lib \ -ltsdistk -lmfhdf -ldf -ljpeg -lz -lm
|| Back ||