追加された行はこの色です。
削除された行はこの色です。
このwiki内では、グリッドファイル(GrADS 4byteバイナリ、特に断らなければdirect書き込み)を〜.bin、コントロールファイルを〜.ctl、変数名をvarと表記します。
このwiki内では、グリッドファイル(GrADS 4byteバイナリ、特に断らなければdirect書き込み)を〜.bin、コントロールファイルを〜.ctl、変数名をvarと表記します。
#contents
**sdfopen, open
***nc_open failure: Not a netCDF file
=|BOX|
Scanning self-describing file: hoge.ctl
nc_open failure:
Not a netCDF file
hoge.ctl does not exist or is not a netCDF file.
Couldn't ingest SDF metadata.
If this was an HDF-SDS file, try gradshdf.
||=
***Open Error: Unknown keyword in description file
=|BOX|
Scanning description file: hoge.nc
Open Error: Unknown keyword in description file
--> The invalid description file record is:
--> CDF
The data file was not opened.
||=
症状:ファイルが開けない
原因:ファイルを開くコマンド、openやsdfopenの使用方法が誤っている
解決策:NetCDFを開くときはsdfopen、ctlファイルを開くときはopenを用いる。
sdfopen hoge.nc
open hoge.ctl
***SDF Error: 365 day calendars are no longer supported by sdfopen
=|BOX|
SDF Error: 365 day calendars are no longer supported by sdfopen.
To open this file with GrADS, use a descriptor file with
a complete TDEF entry and OPTIONS 365_day_calendar.
Documentation is at http://iges.org/grads/gadoc/SDFdescriptorfile.html
||=
症状:GrADS2を使ってNetCDFファイルをsdfopenしようとすると、365 day calendarsが対応していないと文句を言われる
原因:GrADS2では、sdfopenで365 day calendarのファイルを開くことができない。
解決策:ncdump等で格子や時間軸の情報を確認し、netcdf用をctlファイルを作成してopenする。面倒であれば、GrADS1でsdfopenしてしまえばよい。
***Open Error: Missing ENDVARS statement.
Open Error: Missing ENDVARS statement.
症状:ファイルが開けない
原因:コントロールファイルの末尾、varsの列記の最後のendvarsを表記していない
q ctlinfoではendvarsが表示されない(GrADS1)ので、コピペするときには注意
解決策:コントロールファイルを確認。末尾にendvarsを追加。
[[GrADS ctlファイルの作成]]
***Open Error: Missing or invalid dimension increment value
症状:ファイルが開けない
原因:コントロールファイルのdimensionに関する記述が間違っている
解決策:xdef, ydef, zdef, tdefを確認
=|BOX|
Open Error: Missing or invalid dimension increment value
--> The invalid description file record is:
--> zdef 1 linear 0 0
||=
上記の例の場合、たとえばGrADS 1でファイルをopenしたあと、q ctlinfoの表示結果をそのままctlファイルに用いると、
zdef 1 linear 0 0
のような表記になっているが、z軸方向に1しかない場合はlevelsを用いないといけない。
GrADS2ではq ctlinfoの結果が修正されている。
zdef 1 levels 0
に書き直すとopenできる。
[[GrADS ctlファイルの作成]]
***udunits(3): Couldn't open units database "/usr/local/lib/grads/udunits.dat": No such file or directory
=|BOX|
Scanning self-describing file: ... .nc
udunits(3): Couldn't open units database "/usr/local/lib/grads/udunits.dat": No such file or directory
UDUNITS package initialization failure.
||=
症状:NetCDFファイルが開けない
原因:udunits.datへのパス、つまり環境変数GADDIR([[詳細>>http://seesaawiki.jp/ykamae_grads-note/d/GrADS%a4%ce%a5%a4%a5%f3%a5%b9%a5%c8%a1%bc%a5%eb]])が正しく設定されていない
解決策:font0.dat, lowres, udunits.datなどのdatファイルが置かれているディレクトリをGADDIRに設定
[[GrADSのインストール]]の環境変数の設定を参照
export GADDIR=/usr/local/grads-1.9b4/data など
.bashrcに書いておく
***nc_open failure: File too large / Values too large for defined data type
=|BOX|
nc_open failure:
File too large
hoge.nc does not exist or is not a netCDF file.
||=
=|BOX|
nc_open failure:
Value too large for defined data type
hoge.nc does not exist or is not a netCDF file.
||=
***NetCDF Error (nc_open): Unable to open file
=|BOX|
NetCDF Error (nc_open): Unable to open file
||=
症状:ファイルが開けない
原因:ファイルサイズが大きすぎる。grads1では、約2GB以上のサイズのファイルが開けない。
NetCDF用のコントロールファイルを作成しても同様。
解決策:GrADS2でsdfopenする、Fortranで読む、等。
GrADS2は365 day calendarをサポートしていないので、このカレンダーのファイルの場合はコントロールファイルを作成する必要がある。
***Unknown command: sdfopen
症状:sdfopenができない
原因:GrADS実行ファイルのうち、sdfopenに対応していないものを使用している。
解決策:まずどの実行ファイルを使用しているか確認する。
which grads
で、現在「grads」と打ったときの実行ファイルがどこにあるか表示される。
バージョン1.9では、gradsc以外がsdfopenに対応している。
[[GrADS Software>>http://cola.gmu.edu/grads/downloads.html]]→What Exectuable Files are in a Release?
**display
***all undefined values (Entire Grid Undefined)
症状:
Cannot contour grid - all undefined values
とコマンドラインに表示され、GrADSの窓に
Entire Grid Undefined
と表示される。
原因1:描こうとしている変数が全てundefined(欠損値)扱いとなっている
解決策:ctlファイルのundef文と、元データの欠損値が一致しているか確認する。
maskoutコマンドを使用している場合、全ての範囲でmaskoutが適用されると
この症状になる。
原因2:options templateで複数のデータを対象にしているとき、
現在指定している(x, y, z, t, e)座標のデータが存在しない(現在の座標位置はq dimsで確認可能)
解決策:dset文、options文、chsub文、あるいは指定している座標が適切か確認する
***Data Request Warning: Request beyond file limits
=|BOX|
Data Request Warning: Request beyond file limits
Entire grid contents are set to missing data
Dimension ranges are: X = 0 360 Y = 1 180 Z = 1 1 T = 13 12
Warning issued for variable = var
Cannot contour grid - all undefined values
||=
症状:画面にEntire Grid Undefinedと表示され、コマンドラインに上記メッセージが表示される。
原因1:指定している範囲がデータの範囲を超えている
解決策:上記メッセージの例では、時間方向に12個のデータしか存在しないので、その範囲に収める。
原因2:複数のデータを開いているとき、データの範囲(lon, lat, lev, timeなど)にミスマッチがある。
例えば、1971年のデータ
tdef 12 linear jan1971 1mo
と1981年のデータ
tdef 12 linear jan1981 1mo
が別々のctlファイルでopenされているとき、JJA平均値の差は
d ave(var.2, t=6, t=8)-ave(var, t=6, t=8)
では求めることはできない。
これは、t=1〜12はファイル1の時間軸をもとに、1971年1月〜12月が適用され、
ファイル2にはその時間のデータが存在しないためである。
そのため、tではなくtimeで指定する必要がある。
d ave(var.2, time=jun1981, time=aug1981)-ave(var, time=jun1971, time=aug1971)
--set tで指定したい場合
前に開いたファイルの範囲が後に開いたファイルの範囲に
収まっていないといけない。
例. 1979年1月〜2000年12月までの範囲の1979-2000.ctlと、
2000年1月〜2000年12月までの範囲の2000.ctlを開き、2000年1月〜12月の範囲の差を表示
○
=|BOX|
open 2000.ctl
open 1979-2000.ctl # t=1に2000年1月が適用される
set t 1 12 # 2000年1月〜2000年12月の範囲
d var-var.2
||=
×
=|BOX|
open 1979-2000.ctl
open 2000.ctl # 後に開いたファイルは2000年からしかデータがない
set t 1 12 # t=1の情報が衝突し、
d var.2-var # 図が描けない
||=
原因3:NetCDFファイルで、初期のtの設定が29日、30日、31日のいずれかになっていて、タイムステップが1ヶ月等である場合:
=|BOX|
t=1:2000年12月31日
t=2:2001年1月31日
t=3:2001年3月3日
t=4:2001年3月31日
t=5:2001年5月1日
t=6:2001年5月31日
・・・
||=
のように、29日、30日、31日がない月を飛ばして読み込んでしまい、さらにデータの末尾の時間ステップでは、データが欠損扱いになることが多い。
これは、GrADSの時間ステップで1moと指定していると、次の時間ステップは月を一つ増やすのだが、その日が存在しない(2月31日など)場合、足りない日数分、次に進めてしまうことで起こるバグ。2月31日の場合は3月3日に、4月31日の場合は5月1日に置き換わってしまい、それぞれ2月の代わりに3月、4月の代わりに5月のデータを参照してしまう。
解決策:NetCDFファイルを読むctlファイル(tdefでは日を01や15など、安全な値に設定しておく)を作成して、openでファイルを読み込む。
***Syntax Error: Invalid Operand
=|BOX|
Syntax Error: Invalid Operand
'var' not a variable or function name
Error ocurred at column 1
DISPLAY error: Invalid expression
Expression = var
||=
症状:描こうとしている変数がdisplayされない
原因:変数名の指定が誤っている
解決策:'var' の部分に正しい変数名が表示されているか確認する。
正しい変数名:
--q file, q ctlinfo時に表示される変数名
--hoge=var のようにdefineした変数名
--予約済みの変数lat, lon, lev
ケースは異なるが、特にdefineした変数は、define時の範囲でしか定義されていないことに注意。
例.
=|BOX|
sdfopen hoge.nc
set x 1 360
set y 1 180
a=var
set t 1 12
d a
||=
この場合、GrADSのデフォルトの設定、set z 1およびset t 1の範囲内でしかaが定義されていない。
***Constant field. Value = -999
症状:値が一定であると表示される(真っ赤な図が表示される)
原因:変数が一定の値となっている
解決策:d var-var と入力したときなど、値が全ての範囲で一定値となることはあり得るので、
一概にエラーとは言えないが、
一定値でないものを描こうとしている場合、データが間違っている可能性がある。
--sdfwrite, fwriteで書き出したファイルの場合
書き出しに誤りがある、またはctlファイルの書式に誤りがある可能性がある。
***Contouring: nan to nan interval inf
症状:
Contouring: -0 to 7e+35 interval 1e+35
のように表示され、斑模様の図が表示される
原因:endianの指定に誤りがある
解決策:binaryをctlファイルで読もうとしている場合、そのPCのエンディアンと、
binaryのエンディアンが一致していないと、データが正しく読まれない。
エンディアンについて[[→>>http://digital.ni.com/public.nsf/allkb/008AB70CC5F0EB6B8625706C001AD943]]
ctlファイルに
options little_endian または big_endian
と表記、またはbinary作成時にエンディアンを指定する
GrADS fwriteの場合:
set gxout fwrite
set fwrite -le hoge.bin または -be hoge.bin
intel fortranの場合:
ifort -assume byterecl -convert little_endian hoge.f90
G95 fortran compilerの場合:
g95 -fendian=little hoge.f90
***Open Error on Map Data Set
症状:
=|BOX|
Open Error on Map Data Set: /usr/local/grads/data/lowres
Error opening stroke character data set
||=
などのメッセージが出て、正しい図が描画されない
原因:gradsが参照する地図・文字ファイルのディレクトリ指定に誤りがある
解決策:GADDIRを正しく指定する。
export GADDIR=/usr/local/grads-1.9b4/data
のように、
font0.dat ・・・ font5.dat hires lowres mres
のファイルがある場所をGADDIRで指定する。
→ [[GrADSのインストール]]
**スクリプト
GrADSスクリプトとその使用法については、[[GrADSスクリプトライブラリ]]を参照
***I/O Error reading script file: var
症状:GrADSスクリプトが実行されない
原因:GrADSスクリプトvar.gsと同じ名前のディレクトリvarが存在すると、var.gsが実行されない
解決策:GrADSスクリプト名と重複するディレクトリを作らない、拡張子.gsを明示する
例.
ls
hoge.ctl sh/ sh.gs
○
=|BOX|
grads
open hoge.ctl
(run) sh.gs
||=
×
=|BOX|
grads
open hoge.ctl
sh
||=
***Unable to locate ENDWHILE statement for the WHILE statement
症状:GrADSスクリプトのループがうまく回らない
原因:GrADSスクリプトのwhileループを終了するendwhileが存在しない
解決策:GrADSスクリプトにendwhileを記述する。
同様にif文を終了するendif文がなければ
=|BOX|
Unable to locate ENDIF statement for the IF statement at line ??
In file hoge.gs
||=
など
***Non-terminated constant
=|BOX|
Non-terminated constant
Error occurred on line 7
In file hoge.gs
||=
症状:
原因:GrADSスクリプトのバグ
解決策:GrADSスクリプトエラーが表示されている行を確認する。クォーテーションがあるか、変数名は正しいか、文法は正しいか
**起動
***grads:command not found
症状:GrADSが起動しない
原因:GrADSの実行ファイルにパスが通っていないor実行ファイルの指定を誤っている
解決策:GrADSを起動するコマンド(実行ファイル名)とパスを確認する。
実行ファイル
Cygwin:grads、grads.exe、gradsnc等
Linux GrADS v1.9以前:gradsnc
Linux GrADS v2以降:grads
パス
which grads
等で確認
例
/usr/local/grads-1.9b4/bin/gradsnc
を起動する方法は、
1. /usr/local/grads-1.9b4/bin/gradsnc
2. export PATH=${PATH}:${GRADSHOME}/bin
と.bashrcに書かれ、source .bashrcした状態で
gradsnc
3. 上記に加え、alias grads=gradsnc
と.bashrcに書かれ、source .bashrcした状態で
grads
4. 3. の状態ではshellからはgradsにパスが通っていないので
#!/bin/bash
gradsnc -lc hoge.gs
([[参考:GrADSのインストール>>http://seesaawiki.jp/ykamae_grads-note/d/GrADS%a4%ce%a5%a4%a5%f3%a5%b9%a5%c8%a1%bc%a5%eb]])
**GrADSのインストール
***bash: ./grads: cannot execute binary file
症状:GrADSが起動しない
原因:GrADSのバージョンがPCと整合していない
解決策:そのPCにあったGrADSをインストールする。
[[GrADSのインストール]]
***Error in GXSTRT: Unable to connect to X server
症状:GrADSが立ち上がらない
原因:X window systemが起動されていない状態で、GrADSを起動しようとするとエラーとなる。
回避策:バッチモードで起動する(黒画面を使用しない)
grads -b
解決策:X window systemを起動する。
windowsからputtyなどで外部のPCに接続し、作業をする場合は、Xmingなどを利用する。
cygwinやLinux PCなど、X window system起動下の環境から、外部のPCに接続し、作業をする場合は、
ssh -X account@ipaddress
のように、-Xオプションを忘れない。
また、1.9b4 の linuxRH7.1のバージョンは、バグのためX window systemが起動していても、
外部からリモートログインするとエラーとなる。
このwiki内では、グリッドファイル(GrADS 4byteバイナリ、特に断らなければdirect書き込み)を〜.bin、コントロールファイルを〜.ctl、変数名をvarと表記します。
#contents
**sdfopen, open
***nc_open failure: Not a netCDF file
=|BOX|
Scanning self-describing file: hoge.ctl
nc_open failure:
Not a netCDF file
hoge.ctl does not exist or is not a netCDF file.
Couldn't ingest SDF metadata.
If this was an HDF-SDS file, try gradshdf.
||=
***Open Error: Unknown keyword in description file
=|BOX|
Scanning description file: hoge.nc
Open Error: Unknown keyword in description file
--> The invalid description file record is:
--> CDF
The data file was not opened.
||=
症状:ファイルが開けない
原因:ファイルを開くコマンド、openやsdfopenの使用方法が誤っている
解決策:NetCDFを開くときはsdfopen、ctlファイルを開くときはopenを用いる。
sdfopen hoge.nc
open hoge.ctl
***SDF Error: 365 day calendars are no longer supported by sdfopen
=|BOX|
SDF Error: 365 day calendars are no longer supported by sdfopen.
To open this file with GrADS, use a descriptor file with
a complete TDEF entry and OPTIONS 365_day_calendar.
Documentation is at http://iges.org/grads/gadoc/SDFdescriptorfile.html
||=
症状:GrADS2を使ってNetCDFファイルをsdfopenしようとすると、365 day calendarsが対応していないと文句を言われる
原因:GrADS2では、sdfopenで365 day calendarのファイルを開くことができない。
解決策:ncdump等で格子や時間軸の情報を確認し、netcdf用をctlファイルを作成してopenする。面倒であれば、GrADS1でsdfopenしてしまえばよい。
***Open Error: Missing ENDVARS statement.
Open Error: Missing ENDVARS statement.
症状:ファイルが開けない
原因:コントロールファイルの末尾、varsの列記の最後のendvarsを表記していない
q ctlinfoではendvarsが表示されない(GrADS1)ので、コピペするときには注意
解決策:コントロールファイルを確認。末尾にendvarsを追加。
[[GrADS ctlファイルの作成]]
***Open Error: Missing or invalid dimension increment value
症状:ファイルが開けない
原因:コントロールファイルのdimensionに関する記述が間違っている
解決策:xdef, ydef, zdef, tdefを確認
=|BOX|
Open Error: Missing or invalid dimension increment value
--> The invalid description file record is:
--> zdef 1 linear 0 0
||=
上記の例の場合、たとえばGrADS 1でファイルをopenしたあと、q ctlinfoの表示結果をそのままctlファイルに用いると、
zdef 1 linear 0 0
のような表記になっているが、z軸方向に1しかない場合はlevelsを用いないといけない。
GrADS2ではq ctlinfoの結果が修正されている。
zdef 1 levels 0
に書き直すとopenできる。
[[GrADS ctlファイルの作成]]
***udunits(3): Couldn't open units database "/usr/local/lib/grads/udunits.dat": No such file or directory
=|BOX|
Scanning self-describing file: ... .nc
udunits(3): Couldn't open units database "/usr/local/lib/grads/udunits.dat": No such file or directory
UDUNITS package initialization failure.
||=
症状:NetCDFファイルが開けない
原因:udunits.datへのパス、つまり環境変数GADDIR([[詳細>>http://seesaawiki.jp/ykamae_grads-note/d/GrADS%a4%ce%a5%a4%a5%f3%a5%b9%a5%c8%a1%bc%a5%eb]])が正しく設定されていない
解決策:font0.dat, lowres, udunits.datなどのdatファイルが置かれているディレクトリをGADDIRに設定
[[GrADSのインストール]]の環境変数の設定を参照
export GADDIR=/usr/local/grads-1.9b4/data など
.bashrcに書いておく
***nc_open failure: File too large / Values too large for defined data type
=|BOX|
nc_open failure:
File too large
hoge.nc does not exist or is not a netCDF file.
||=
=|BOX|
nc_open failure:
Value too large for defined data type
hoge.nc does not exist or is not a netCDF file.
||=
***NetCDF Error (nc_open): Unable to open file
=|BOX|
NetCDF Error (nc_open): Unable to open file
||=
症状:ファイルが開けない
原因:ファイルサイズが大きすぎる。grads1では、約2GB以上のサイズのファイルが開けない。
NetCDF用のコントロールファイルを作成しても同様。
解決策:GrADS2でsdfopenする、Fortranで読む、等。
GrADS2は365 day calendarをサポートしていないので、このカレンダーのファイルの場合はコントロールファイルを作成する必要がある。
***Unknown command: sdfopen
症状:sdfopenができない
原因:GrADS実行ファイルのうち、sdfopenに対応していないものを使用している。
解決策:まずどの実行ファイルを使用しているか確認する。
which grads
で、現在「grads」と打ったときの実行ファイルがどこにあるか表示される。
バージョン1.9では、gradsc以外がsdfopenに対応している。
[[GrADS Software>>http://cola.gmu.edu/grads/downloads.html]]→What Exectuable Files are in a Release?
**display
***all undefined values (Entire Grid Undefined)
症状:
Cannot contour grid - all undefined values
とコマンドラインに表示され、GrADSの窓に
Entire Grid Undefined
と表示される。
原因1:描こうとしている変数が全てundefined(欠損値)扱いとなっている
解決策:ctlファイルのundef文と、元データの欠損値が一致しているか確認する。
maskoutコマンドを使用している場合、全ての範囲でmaskoutが適用されると
この症状になる。
原因2:options templateで複数のデータを対象にしているとき、
現在指定している(x, y, z, t, e)座標のデータが存在しない(現在の座標位置はq dimsで確認可能)
解決策:dset文、options文、chsub文、あるいは指定している座標が適切か確認する
***Data Request Warning: Request beyond file limits
=|BOX|
Data Request Warning: Request beyond file limits
Entire grid contents are set to missing data
Dimension ranges are: X = 0 360 Y = 1 180 Z = 1 1 T = 13 12
Warning issued for variable = var
Cannot contour grid - all undefined values
||=
症状:画面にEntire Grid Undefinedと表示され、コマンドラインに上記メッセージが表示される。
原因1:指定している範囲がデータの範囲を超えている
解決策:上記メッセージの例では、時間方向に12個のデータしか存在しないので、その範囲に収める。
原因2:複数のデータを開いているとき、データの範囲(lon, lat, lev, timeなど)にミスマッチがある。
例えば、1971年のデータ
tdef 12 linear jan1971 1mo
と1981年のデータ
tdef 12 linear jan1981 1mo
が別々のctlファイルでopenされているとき、JJA平均値の差は
d ave(var.2, t=6, t=8)-ave(var, t=6, t=8)
では求めることはできない。
これは、t=1〜12はファイル1の時間軸をもとに、1971年1月〜12月が適用され、
ファイル2にはその時間のデータが存在しないためである。
そのため、tではなくtimeで指定する必要がある。
d ave(var.2, time=jun1981, time=aug1981)-ave(var, time=jun1971, time=aug1971)
--set tで指定したい場合
前に開いたファイルの範囲が後に開いたファイルの範囲に
収まっていないといけない。
例. 1979年1月〜2000年12月までの範囲の1979-2000.ctlと、
2000年1月〜2000年12月までの範囲の2000.ctlを開き、2000年1月〜12月の範囲の差を表示
○
=|BOX|
open 2000.ctl
open 1979-2000.ctl # t=1に2000年1月が適用される
set t 1 12 # 2000年1月〜2000年12月の範囲
d var-var.2
||=
×
=|BOX|
open 1979-2000.ctl
open 2000.ctl # 後に開いたファイルは2000年からしかデータがない
set t 1 12 # t=1の情報が衝突し、
d var.2-var # 図が描けない
||=
原因3:NetCDFファイルで、初期のtの設定が29日、30日、31日のいずれかになっていて、タイムステップが1ヶ月等である場合:
=|BOX|
t=1:2000年12月31日
t=2:2001年1月31日
t=3:2001年3月3日
t=4:2001年3月31日
t=5:2001年5月1日
t=6:2001年5月31日
・・・
||=
のように、29日、30日、31日がない月を飛ばして読み込んでしまい、さらにデータの末尾の時間ステップでは、データが欠損扱いになることが多い。
これは、GrADSの時間ステップで1moと指定していると、次の時間ステップは月を一つ増やすのだが、その日が存在しない(2月31日など)場合、足りない日数分、次に進めてしまうことで起こるバグ。2月31日の場合は3月3日に、4月31日の場合は5月1日に置き換わってしまい、それぞれ2月の代わりに3月、4月の代わりに5月のデータを参照してしまう。
解決策:NetCDFファイルを読むctlファイル(tdefでは日を01や15など、安全な値に設定しておく)を作成して、openでファイルを読み込む。
***Syntax Error: Invalid Operand
=|BOX|
Syntax Error: Invalid Operand
'var' not a variable or function name
Error ocurred at column 1
DISPLAY error: Invalid expression
Expression = var
||=
症状:描こうとしている変数がdisplayされない
原因:変数名の指定が誤っている
解決策:'var' の部分に正しい変数名が表示されているか確認する。
正しい変数名:
--q file, q ctlinfo時に表示される変数名
--hoge=var のようにdefineした変数名
--予約済みの変数lat, lon, lev
ケースは異なるが、特にdefineした変数は、define時の範囲でしか定義されていないことに注意。
例.
=|BOX|
sdfopen hoge.nc
set x 1 360
set y 1 180
a=var
set t 1 12
d a
||=
この場合、GrADSのデフォルトの設定、set z 1およびset t 1の範囲内でしかaが定義されていない。
***Constant field. Value = -999
症状:値が一定であると表示される(真っ赤な図が表示される)
原因:変数が一定の値となっている
解決策:d var-var と入力したときなど、値が全ての範囲で一定値となることはあり得るので、
一概にエラーとは言えないが、
一定値でないものを描こうとしている場合、データが間違っている可能性がある。
--sdfwrite, fwriteで書き出したファイルの場合
書き出しに誤りがある、またはctlファイルの書式に誤りがある可能性がある。
***Contouring: nan to nan interval inf
症状:
Contouring: -0 to 7e+35 interval 1e+35
のように表示され、斑模様の図が表示される
原因:endianの指定に誤りがある
解決策:binaryをctlファイルで読もうとしている場合、そのPCのエンディアンと、
binaryのエンディアンが一致していないと、データが正しく読まれない。
エンディアンについて[[→>>http://digital.ni.com/public.nsf/allkb/008AB70CC5F0EB6B8625706C001AD943]]
ctlファイルに
options little_endian または big_endian
と表記、またはbinary作成時にエンディアンを指定する
GrADS fwriteの場合:
set gxout fwrite
set fwrite -le hoge.bin または -be hoge.bin
intel fortranの場合:
ifort -assume byterecl -convert little_endian hoge.f90
G95 fortran compilerの場合:
g95 -fendian=little hoge.f90
***Open Error on Map Data Set
症状:
=|BOX|
Open Error on Map Data Set: /usr/local/grads/data/lowres
Error opening stroke character data set
||=
などのメッセージが出て、正しい図が描画されない
原因:gradsが参照する地図・文字ファイルのディレクトリ指定に誤りがある
解決策:GADDIRを正しく指定する。
export GADDIR=/usr/local/grads-1.9b4/data
のように、
font0.dat ・・・ font5.dat hires lowres mres
のファイルがある場所をGADDIRで指定する。
→ [[GrADSのインストール]]
**スクリプト
GrADSスクリプトとその使用法については、[[GrADSスクリプトライブラリ]]を参照
***I/O Error reading script file: var
症状:GrADSスクリプトが実行されない
原因:GrADSスクリプトvar.gsと同じ名前のディレクトリvarが存在すると、var.gsが実行されない
解決策:GrADSスクリプト名と重複するディレクトリを作らない、拡張子.gsを明示する
例.
ls
hoge.ctl sh/ sh.gs
○
=|BOX|
grads
open hoge.ctl
(run) sh.gs
||=
×
=|BOX|
grads
open hoge.ctl
sh
||=
***Unable to locate ENDWHILE statement for the WHILE statement
症状:GrADSスクリプトのループがうまく回らない
原因:GrADSスクリプトのwhileループを終了するendwhileが存在しない
解決策:GrADSスクリプトにendwhileを記述する。
同様にif文を終了するendif文がなければ
=|BOX|
Unable to locate ENDIF statement for the IF statement at line ??
In file hoge.gs
||=
など
***Non-terminated constant
=|BOX|
Non-terminated constant
Error occurred on line 7
In file hoge.gs
||=
症状:
原因:GrADSスクリプトのバグ
解決策:GrADSスクリプトエラーが表示されている行を確認する。クォーテーションがあるか、変数名は正しいか、文法は正しいか
**起動
***grads:command not found
症状:GrADSが起動しない
原因:GrADSの実行ファイルにパスが通っていないor実行ファイルの指定を誤っている
解決策:GrADSを起動するコマンド(実行ファイル名)とパスを確認する。
実行ファイル
Cygwin:grads、grads.exe、gradsnc等
Linux GrADS v1.9以前:gradsnc
Linux GrADS v2以降:grads
パス
which grads
等で確認
例
/usr/local/grads-1.9b4/bin/gradsnc
を起動する方法は、
1. /usr/local/grads-1.9b4/bin/gradsnc
2. export PATH=${PATH}:${GRADSHOME}/bin
と.bashrcに書かれ、source .bashrcした状態で
gradsnc
3. 上記に加え、alias grads=gradsnc
と.bashrcに書かれ、source .bashrcした状態で
grads
4. 3. の状態ではshellからはgradsにパスが通っていないので
#!/bin/bash
gradsnc -lc hoge.gs
([[参考:GrADSのインストール>>http://seesaawiki.jp/ykamae_grads-note/d/GrADS%a4%ce%a5%a4%a5%f3%a5%b9%a5%c8%a1%bc%a5%eb]])
**GrADSのインストール
***bash: ./grads: cannot execute binary file
症状:GrADSが起動しない
原因:GrADSのバージョンがPCと整合していない
解決策:そのPCにあったGrADSをインストールする。
[[GrADSのインストール]]
***Error in GXSTRT: Unable to connect to X server
症状:GrADSが立ち上がらない
原因:X window systemが起動されていない状態で、GrADSを起動しようとするとエラーとなる。
回避策:バッチモードで起動する(黒画面を使用しない)
grads -b
解決策:X window systemを起動する。
windowsからputtyなどで外部のPCに接続し、作業をする場合は、Xmingなどを利用する。
cygwinやLinux PCなど、X window system起動下の環境から、外部のPCに接続し、作業をする場合は、
ssh -X account@ipaddress
のように、-Xオプションを忘れない。
また、1.9b4 の linuxRH7.1のバージョンは、バグのためX window systemが起動していても、
外部からリモートログインするとエラーとなる。