コマンドライン上で実行
コマンドラインから、GrADSスクリプトを実行
grads -lbc sample.gs
# -l: landscapeモード (横長) -p: portraitモード(縦長)
# -b: バックグラウンド実行
# -c: 最初に実行するコマンド
引数の設定
grads -lbc sample.gs a1 a2
ここで、a1
とa2
は引数。
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