どせいたんさき。

ナスダヨー

idlastro, extast.pro でのエラー報告とその対処

idlastro のプロシージャ extast を実行したら以下のようなエラーが出た.

% Attempt to subscript CTYPE with <INT      (       1)> is out of range.
% Execution halted at: $MAIN$

解決法

調べたら remchar あたりでエラー(バージョンアップで関数の挙動が変わった?)があったようなので以下のように変更したら動いた.どうやら remchar でクオート記号を削除するときに配列が合体してしまうことが原因のよう.一応動いたけど別のデータを読み込んだら,また別のエラーを吐くかもしれない.要確認.

--- extast.orig.pro     2011-11-27 06:58:22.000000000 +0900
+++ extast.pro  2012-01-23 12:30:57.000000000 +0900
@@ -147,10 +147,12 @@
   
  ctype = ['','']
  l = where(keyword EQ 'CTYPE1'+alt,  N_ctype1)
- if N_ctype1 GT 0 then ctype[0] = lvalue[l[N_ctype1-1]]
+ if N_ctype1 GT 0 then ctype0 = lvalue[l[N_ctype1-1]] else ctype0 = ''
+ remchar,ctype0,"'"
  l = where(keyword EQ 'CTYPE2'+alt,  N_ctype2)
- if N_ctype2 GT 0 then ctype[1] = lvalue[l[N_ctype2-1]]
- remchar,ctype,"'"
+ if N_ctype2 GT 0 then ctype1 = lvalue[l[N_ctype2-1]] else ctype1 =  ''
+ remchar,ctype1,"'"
+ ctype = [ctype0, ctype1]
  ctype = strtrim(ctype,2)
 
 ; If the standard CTYPE* astrometry keywords not found, then check if the