ECMWF解凍マニュアル
(作成者:黒木,2000.10.20. 張,2001.3.19書き加え. 妹尾,2001.12.10さらに追加)
目次
1. ECMWF Data Servicesへの注文
・注文用紙と仕方は新しくなりました.(1997年以降のデータについて,気圧レベルを在来の13層と新しい21層で選択することができる)
・ 注文用紙は既存物を使用して結構ですが,注文方法はECMWF Data Servicesのホームパージをアクセスして知ることができる. http.//www.ecmwf.inf/
・ 情報処理センターの8mmテープデバイスのシステムが変更されたため、普通に読み込むことができなくなった。これからは記憶メディアをDATなどにした方がいい。
2. 8mmテープからハードディスクへ
注文したデータは8mmテープの場合,大岡山キャンパスの情報処理センターのメディアサーバ(2階右奥の部屋にある)で解凍作業を進めてください.
@ media-o (131.112.3.1)でcpusにログインする。(多くの場合は自分のCPUSパスワードで立ち上げる)
A Session Manager-Applications-Xtermをクリックしてxウィンドウを立ち上げ、
B dev/rmt4に8mmテープを入れる。
C tar xvf /dev/nrmt4l(l:エル)で解凍,それを4回繰り返す(エラーが出た場合を除いて4回。エラーが出ても気にしない)
(注解:nrmt4lのn=テープを巻き戻さないこと、l=ローデンシティー)
解凍して得た物:
software/
UNIX_README (データの展開についての説明書)
gribex_13.tar (展開するためのプログラム)
2617a_kanda/ (フォルダ名はケースにより違ってくる)
01/
data_pp_01 (解凍したデータ)
以上で解凍作業はすべて終了.これからの作業はセンターでなく自前のパソコンでも進められる.
2000年問題などでECMWFデータの変換手順は新しくなった.ここに新旧手順を示す.
3. バイナリモードからアスキーモードへ
8mmテープから解凍して得たデータはバイナリなので、アスキーに変換する必要がある.
作業手順:
@ 解凍で得られたデータはcpusに保存しているはずなので、cpusにテルネット。
telnet cpus.cc.titech.ac.jp
A データと一緒に送られてきた展開プログラム(先に解凍したgribex_13.tar。)を使って、
同様に送られてきた説明書(同封の紙、及び先に解凍したUNIX_README。)に従って進めることも可能。
しかし、手間がかかるので、既に手元にあるプログラムを利用した方法を紹介する。
データの書式に変更がなければ支障はない。
ecmwf.tar.Z を自分が作業しようとしているアカウントにダウンロードする。
ecmwf.tar.Zを解凍。
uncompress ecmwf.tar.Z (解凍。)
tar xvf ecmwf.tar
ディレクトリecmwf/が生成される。
ディレクトリecmwf/内のDATA_SPILIT.fをコンパイルする。
f90 DATA_SPILIT.f
実行ファイルa.outが生成されるので、実行。
./a.out < dist.alpha.grib11set
ディレクトリino/からファイルを持ってくる。
なぜなら、それらのファイルが同一のディレクトリにある必要があるから。
cd ino/
cp *.f ..
cd ..
4. データの解凍
agrdemo.fのパスを書き換える。
vi agrdemo.f
CALL PBOPEN(FILE,
&
の後のファイル名を8mmテープから落としたファイル(ここではdata_pp_01。)のパスに書き換える。
実行する。
make –f Makefile.alpha.grib11set
agrdemo*
ディレクトリecmwf/にyymmddhh(95年2月1日0時のデータなら、95020100。)という名でファイルが生成される。
5.RAMS形式への変換
上で解凍したファイルをディレクトリdata/に移動。
mv yy* data/
cd data/
ecm2rams.fを書き換え、
【書き換え】
l ヘッダー部
imax= 東西方向データ数
jmax= 南北方向データ数
kmax= 鉛直方向データ数
nmax= データの種数
wlon= 領域左端経度(東経)
slat= 領域下端緯度(北緯)
sYear= データ始まり日時
sMonth=
sDay=
sHour=
eYear= データ終わり日時
eMonth=
eDay=
eHour=
dtDay= データの時間刻み
l コメント文
2.5形式か0.5形式かでコメント文を2箇所変更する。
(ヘッダのすぐ後と、RHを%表示から係数表示にするところ。)
コンパイルして実行。
F90 ecm2rams.f
./a.out
vfileの元データEyymmddhh(例えばE95020100。)がディレクトリdata/に生成。
作業手順:
1.
8mmテープデータの解凍は2.と同じで,それによって解凍されたデータはcpusにある.
2.
softwareをカレントディレクトリとする.カレントディレクトリの下でgribex_13.tarを解凍する
(解凍コマンド:tar xvf gribex_13.tar)
3.
基本的には同封された説明書に従って作業を進めばいいですが,便利のために,私が用意したファイルを用いて作業を進めてよい.
注意:同封された説明書どおりに進めないほうが良い。基本的には張さんが用意したファイルを用いること。そのファイルは妹尾の持っているECMWF decode kit CD-R に収録されている。
@ Software2/dataに用意されたagrdemo.F,grprs0.F,grprs1.F,grprs2.F,grprs3.F,grprs4.Fがある.
そのagrdemo.Fをカレントディレクトリ中にあるsampleディレクトリにコピーし,以下のように読みたいデータへアクセスパスを書き換える.(注:書き換えたagrdemo.Fはsampleに置くこと)
YDATAFILE =
'/home/usr6/zhang/2615b_zhang/01/data_pp_01' (読むべきECMWFデータ)
IFILEN = 42 (パスの長さ)
A grprs0.F,grprs1.F,grprs2.F,grprs3.F,grprs4.Fをカレントディレクトリ中にあるgribexディレクトリにコピーする.
B @とAが終わったら,カレントディレクトリで以下のコマンドでMakeする
make ARCH=decalpha R64=R64
(R64:64ビット,倍精度.省略の場合は32ビットになる;decalpha:コンピューター機種 cpus→decalpha,
pcrams→linux)
注意:このときコンパイルが通らないようであれば自分でエラーメッセージを見ながらデバッグすること。大抵、張さんのファイルをそのまま使用しているのでリンクやパスが通っていないことが考えられる。そのときは自分宛てに送られてきたサンプルプログラムの同様の行を参照すると良い。
C Bができたら,agrdemo.ex*という実行ファイルが出来上がり,
agrdemo.ex*で実行.(データファイルが生産される)
4.RAMS用データファイルへの変換
@ ecm2rams.fを作業ディレクトリに持っていて,以下の所を書き換える.(Ndata/ecm2rams.f)
【書き換え】
imax= jmax= kmax= 気圧レベル数 nmax= データの種数(6のまま) wlon= slat=
sYear= データ始まり日時 sMonth= sDay= sHour=
eYear= データ終わり日時 eMonth= eDay= eHour=
dtDay= データの時間間隔(0.25=4分の一日で6時間間隔のECMWFデータ書式)
2.5度形式か0.5度形式かを選択し,新旧データの違いによって気圧レベル(data levpr)を書き換える.
A F90 ecm2rams.fをコンパイル.
B a.outで実行