print,var1, ...printf,unit,var1, ...read,prompt=prompt,var1, ...readf,prompt=prompt,unit,var1, ...cursor,x,y,wait,/座標系save,var1,var2, ... ,filename=filenamerestore,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、doublestring関数の使い方: 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+ba(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,/structa=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,aheap_gcwindow,n,xs=width,ys=height(nはwindow number)wdelete,nwset,nwshow,n!p.multi=[0,1,2] (横1つ、縦2つ)
!p.multi=0
var=tvrd(x0,y0,width,height)plot,yplot,x,yplot,x,y,xrange=[0,10],yrange=[-20,30]oplotxrange, yrangeなどは指定できない。plot,x,y,psym=nplot,x,y,title='Reconnection rate',xtitle='t',ytitle='R'plot,x,y,charsize=1.2plot,x,y,color=255,background=0,linestyle=0erase,colortv,img,x,ytvscl,img,x,ycontour,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_fileset_plot,'x'カラーのPSファイルを出力するときはdevice,/colorとする。help,/deviceとすると現在の設定を表示。
help,/devicedevice,set_resolution=[width,height]device,/close;$&journalspawn,'外部コマンド', result$.run (.r)retalldoc_library, 'プロシージャ名'smooth(array,width)関数で配列arrayをスムージングする。widthはsmoothing windowの幅。/edge_truncateオプションで端がきれいになる。idlhとしてIDLを立ち上げ、.r yodatとするとファイル名を聞いてくるのでダウンロードしたファイル名を入力する。-772sxt_prep,index,data,out_index,out_data,/register,/roll,/normalizestepper,out_index,out_dataxloadctout_data_log=alog10(out_data > 1)write_gif,'hoge.gif',tvrd().rfor i=0,15 do begintvscl,out_data(*,*,i) ;何らかの出力コマンドでWindowに絵を描くwrite_gif,'hoge.gif',tvrd(),/multiendforwrite_gif,'hoge.gif',/closeendtvscl,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_datarestgen,file='filename',out_index,out_dataout_data_log=alog10(out_data > 1)stretch,min[=0],max[=255],gamma[=1.0]loadct,nでカラーテーブルの指定。n=0で初期状態に戻る。index2map,index,data,mapplot_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アニメ作る。
Masuda Flaredevice,decomposed=0loadct,3tvlct,r,g,b,/getloadct,0write_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として数値計算プログラムの正常動作を確認した。自動並列化はいまいち。
発表会