print,var1, ...
printf,unit,var1, ...
read,prompt=prompt,var1, ...
readf,prompt=prompt,unit,var1, ...
cursor,x,y,wait,/座標系
save,var1,var2, ... ,filename=filename
restore,filename=filename
[X|O][U][B|L|LL]
(B
-バイト型、省略-整数型、L
-長整数型、LL
-64bit整数型、U
-符号無し、O
-8進数、X
-16進数)'3f'x
のように数字は一重引用符で囲む。4.2
(単精度)、2.3e-4
(単精度)、2d
(倍精度)string
、byte
、fix
、uint
、long
、ulong
、long64
、ulong64
、float
、double
string
関数の使い方: b=string(a, format='(i0)')
とすることで整数aを文字列bに変換できる。フォーマット文字列についてはbuilding.pdfの370ページ以降を参照。strcompress
関数を使う。空白を全て削除するにはremove_all
キーワードを付加する。result=a>b
(Maximum Operator)result=a<b
(Minimum Operator)result=a+b
a(2)
、b(2,5)
、*c(2)
、(*d)(2)
array(4:8)
、array(4:*)
、array(*,0:8,4)
array=[5,4,2,1]
array=[a,5]
array=[[0,4],[2,1]]
array(0,0)
, array(1,0)
, array(2,0)
, ... , array(0,1)
, array(1,1)
, ... となる。すなわちFortranと同じ。a=intarr(20) & b=fltarr(20) & c=dblarr(20) & d=strarr(20)
nozero
キーワードを指定するとゼロクリアを行わない。array=intarr(10,10)
a=indgen(60) & b=findgen(60) & c=dindgen(60)
n_elements(array)
result=min(var)
及びresult=max(var)
minmax
関数で最小値、最大値を並べたリストを取得できる。result=where(ExpArray)
result=reform(array,4,10,3)
overwrite
キーワードを用いarray=reform(array,4,10,3,/overwrite)
とすることで、データのコピーを行わずにarrayの形状を変化させることができる。rebin
(整数倍率のサイズ変更)、congrid
(任意倍率のサイズ変更)、transpose
(転置)、rot
(任意の角度で回転)、rotate
(90°単位で回転)、sort
(ソート)、reverse
(逆順)、shift
(回転シフト)、invert
(逆行列)、cond
(固有値)、determ
(行列式)a = {構造体名,メンバ1:定義1,メンバ2:定義2, ...}
a = {star, name:'', ra:0.0d, dec:0.0d, inten:fltarr(12)}
b = {構造体名}
メンバ:定義
の替わりにinherits 構造体名
。入れ子構造になるわけではないことに注意。help,var,/struct
a=ptr_new(b)
a=ptr_new(b,/no_copy)
a=ptr_new(temporary(b))
と同じ。a=ptr_new()
a=ptr_new(/allocate_heap)
a=ptrarr(10)
nozero
キーワードでNULLに初期化されない。allocate_heap
キーワードで各ポインタは未定義のヒープ変数を指す。*a
*a
が構造体の場合、そのメンバを得るには演算子の優先順位のため(*a).b
としなければならない。ptr_valid(a)
ptr_free,a
heap_gc
window,n,xs=width,ys=height
(nはwindow number)wdelete,n
wset,n
wshow,n
!p.multi=[0,1,2]
(横1つ、縦2つ)
!p.multi=0
var=tvrd(x0,y0,width,height)
plot,y
plot,x,y
plot,x,y,xrange=[0,10],yrange=[-20,30]
oplot
xrange, yrange
などは指定できない。plot,x,y,psym=n
plot,x,y,title='Reconnection rate',xtitle='t',ytitle='R'
plot,x,y,charsize=1.2
plot,x,y,color=255,background=0,linestyle=0
erase,color
tv,img,x,y
tvscl,img,x,y
contour,m
またはcontour,m,x,y
但しx[x]、y[y]、m[x,y]
m
をmin_curve_surf(m)
に置き換えると線がなめらかになる。fill
キーワードで段彩図が書ける。device,decomposed=0
としたとき: パレット番号を指定(0-255)device,decomposed=1
としたとき(デフォルト): 24bitカラーで指定(下位から8bitずつ赤、緑、青)device,decomposed=0
としたとき有効):
xloadct
でパレット設定ダイアログが表示される。loadct,n
でプリセットされたパレット設定を適用する。
nは0から40までの整数。
よく使う値は、0-グレースケール(デフォルト)、3-黒〜橙〜白、13-虹色、39-虹色+白。
stretch,min,max,gamma
でコントラストとガンマを変更する。デフォルトはそれぞれ0, 255, 1.0。tvlct,r,g,b
で配列r、g、bをパレットとして設定する。つまり、パレット番号nには、24bitカラーでb(n)*'10000'x+g(n)*'100'x+b(n)
が割り当てられる。tvlct,r,g,b,/getとすることで配列r、g、bに現在のパレットが保存される。
番号 | 線種 |
---|---|
0 | 実線 |
1 | 点線 |
2 | 破線 |
3 | 一点鎖線 |
4 | 三点鎖線 |
5 | 長い破線 |
set_plot,'ps'
device,filename='test.ps',xsize=10,ysize=7.5,xoffset=0.5,yoffset=11,/landscape,/inches
<お絵かきをする>
device,/close_file
set_plot,'x'
カラーのPSファイルを出力するときはdevice,/color
とする。help,/device
とすると現在の設定を表示。
help,/device
device,set_resolution=[width,height]
device,/close
;
$
&
journal
spawn,'外部コマンド', result
$
.run
(.r
)retall
doc_library, 'プロシージャ名'
smooth(array,width)
関数で配列arrayをスムージングする。widthはsmoothing windowの幅。/edge_truncate
オプションで端がきれいになる。idlh
としてIDLを立ち上げ、.r yodat
とするとファイル名を聞いてくるのでダウンロードしたファイル名を入力する。-772
sxt_prep,index,data,out_index,out_data,/register,/roll,/normalize
stepper,out_index,out_data
xloadct
out_data_log=alog10(out_data > 1)
write_gif,'hoge.gif',tvrd()
.r
for i=0,15 do begin
tvscl,out_data(*,*,i)
;何らかの出力コマンドでWindowに絵を描くwrite_gif,'hoge.gif',tvrd(),/multi
endfor
write_gif,'hoge.gif',/close
end
tvscl,congrid(out_data(*,*,i),256,256)
で大きさが指定できる(2003/11/27追記)。print,get_info(index)
としてindexの情報を表示できる。set_plot,'z'
;出力先をZバッファに変更するset_plot,'x'
;出力先をXに戻すsave,out_index,out_data,filename='foo'
restore,filename='foo'
savegen,file='filename',out_index,out_data
restgen,file='filename',out_index,out_data
out_data_log=alog10(out_data > 1)
stretch,min[=0],max[=255],gamma[=1.0]
loadct,n
でカラーテーブルの指定。n=0で初期状態に戻る。index2map,index,data,map
plot_map,map(0)
/log
でlogをとる、/limb
でリムを表示、grid=10
でグリッドを表示、その他drange=[min,max]、xrange=[min,max]など。for i=0,n_elements(map)-1 do plot_map,map(i)
でアニメーションを表示する。またはGIFアニメ作る。device,decomposed=0
loadct,3
tvlct,r,g,b,/get
loadct,0
write_gif,'file_name.gif',tvrd(),r,g,b
shock reconnection point周辺のX字状のslow shock reconnection point上下のfast shock flux rope上のshock (2つ) 流体shock shockの強さ M=\frac{V_1}{C_{s1}} Cs_\sqrt{\frac{\gamma_p}{\rho}} p_1 | p_2 ← | ← V_1 C_s | \frac{p_2}{p_1} = \frac{2\gamma M^2}{\gamma+1}-\frac{\gamma-1}{\gamma+1} ↑等号が成立することを確かめる ・flux rope上のshockのMも調べる MHD shock \M_{fast}=\frac{V_1}{\sqrt{V_A^2+C_s^2}} p_1 | p_2 ← | ← V_1 ↑↑↑ |↑ ↑ ↑ ↑B
/home/s2/opt以下にインストールした。
本来はln -s ~/opt/intel_fc_80/lib/ifcore_msg.cat /usr/lib/ifcore_msg.catとしてシンボリックリンクを張らなければならない。デバッガとIntel C++ Compilerも同様の手順でインストールできる。全てインストールしたときの合計サイズは約130MB。ujでコンパイラオプション-O3 -tpp7 -axW -xWとして数値計算プログラムの正常動作を確認した。自動並列化はいまいち。
発表会