GrADS 初歩の初歩

インストールなど

Institute of Global Environment and Society - IGES からGrADSをダウンロードしてインストールする。
GrADS 1.8s11 のlinux版(フルディストリビューション)を解凍。
ソースからコンパイルしようと思ったがあっさりとは出来なかったので断念。
bin/ と data/ の中身をそれなりのところにsudoでcpして(手抜き)インストール終了。
gradsと打っても反応ない。そりゃそうだ。gradsなどというファイルはない
grads -> gradsnc にリンク(netCDFが使えるGrADS)を作る。

ポイントの時系列を書かせる方法

% grads
ga-> sdfopen ファイル.nc
ga-> set lon 125
ga-> set lat 25
ga-> set time 14aug2002 28aug2002
ga-> query file  (変数名のリストを見る)
ga-> display 変数名
ga-> clear
lon と lat に範囲を指定すると等高線図になる。

ポイントの時系列をテキスト出力する

ga-> sdfopen skt.sfc.gauss.2002.nc
ga-> set lon 125
ga-> set lat 25
ga-> set time 01aug2002 01sep2002
ga-> set gxout fwrite   (デフォルトでバイナリファイルgrads.fwriteが出来る。)
ga-> d skt   (sktは表皮温度のパラメタ名)
ga-> disable fwrite
ga-> !./grd2txt 125 > 125_25.dat (個数が125個)
grd2txtは、自前で用意した。以下がソース。
% cat grd2txt.f
* grd2txt.f
      subroutine grd2txt(imax)
      open(20,file='grads.fwrite',
     &     form='unformatted',access='direct',recl=4)
      do 100 i=1,imax,1
        read(20,rec=i) a
        write(*,*) i, a
100   continue
999   close(20)
      end
% cat grd2txt.c
/* grd2txt.c */
#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[]) {
        int imax;
        if(argc != 2) {
                fprintf(stderr, "Usage %s Num_of_Data\n", argv[0]);
                exit(1);
        } else {
                imax = atoi(argv[1]);
                grd2txt_(&imax);
        }
}
% g77 -c grd2txt.f
% g77 grd2txt.c grd2txt.o -o grd2txt
#fortranで引数を使う方法を知らんので、main関数だけCを使っちゃうのだ。

つづきは...

ここ でお勉強。日々精進ですな。