2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GrADS覚え書き

Last updated at Posted at 2020-08-01

コマンドライン上で実行

コマンドラインから、GrADSスクリプトを実行

grads -lbc sample.gs 
# -l: landscapeモード (横長) -p: portraitモード(縦長)
# -b: バックグラウンド実行
# -c: 最初に実行するコマンド

引数の設定

grads -lbc sample.gs a1 a2

ここで、a1a2は引数。

sample.gs内では、以下のように設定すれば、x1に1番目の引数(a1)、x2に2番目の引数(a2)がそれぞれ読み込まれる。

*.gs
function main(args) # 1行目にかく
x1=subwrd(args,1)  
x2=subwrd(args,2)

時刻情報の扱い

タイムステップの情報を取り出す。

*.gs
'q time' #時刻を確認
word = subwrd(result,3) #空白で区切られた文字列を取り出す
time = substr(word,4,5) #文字列を取り出す 

時刻は、hh:mmZddmmmyyyyまたはddmmmyyyyの形式。

履歴保存

今まで打ったGrADSコマンドをGrADSスクリプトに保存したいときは、

his sample.gs 

未定義エラーの非表示

領域全体が未定義で"Entire grid Undefined"と出るのを消したいときは、

*.gs
'set datawarn off '

ただし、地図すらかいてくれないので、必要なときはdummy変数を用意してかかせるなどする。

アスキーファイル出力

GrADSで計算した結果を描画するのではなく、アスキーファイルに出力。

*.gs
'set gxout print'
'set prnopts %7.2f 1 1' #書式 / 1行あたりに出力するデータ数 / データ間の空白
'd var'
rc=write(test.txt, result)
rc=close(test.txt) 

便利な組み込み関数

関数 意味
abs(a) 絶対値
mag(u, v) 2乗和の平方根(ベクトルの長さなど)
math_mod(n, m) 余りの計算(nをmで割った余り)

領域平均

ave(undefを取り除く)とaave(undefを取り除かない)はundefのデータを含んでいなければ、同じ結果になる。

ave(ave(var,x=1,x=10),y=1,y=20)
aave(var,x=1,x=10,y=1,y=20)

ループ

脱出はbreak、続けるときはcontinue

i=1
while(i<=3)
  'set t 'i
  'd u'
  i=i+1
endwhile
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?