gradsで、あるシミュレーションデータとあるシミュレーションデータを引き算したい。
でも、格子数が違うからできない!
みたいな経験はないでしょうか。

私の場合は、何かの手違い(初期値作成時だと思われますが)で
格子点が一つだけずれてることがありました。

そんなときに、outputデータからその一部を取り出すことができます。
以下はgrads2dから、viqciのデータのみを取り出す例。
(gradsスクリプトに書いてね)

'open grads2d.ctl'       ctlファイルを開く。
'set fwrite new.grd'      new.grdはoutputファイル名
'set gxout fwrite'       gxoutで設定
'set x 1 395'          x方向の格子を1~395まで設定
'set y 1 402'          y方向の格子
'set z 1'             鉛直層数
'set t 1 90'           t size
'd viqci'             出力する要素
'disable fwrite'        出力を閉じる


また、鉛直層が一層だけじゃない場合は、ループを使いましょう。
t sizeについてもループが使えます。
dの前後に↓を追加しましょう。

t=1
tmax=90
while(t<=tmax)
'set t 't''

z=1
zmax=36
while(z<=zmax)
'set z 'z''
 
'd ver'

z=z+1
endwhile

t=t+1
endwhile

また、開くファイルはnetcdfでも可なので、netcdfから取り出したい時にも便利。↓
 
'sdfopen netcdf.nc'