!============================================================================= ! gnuplotでベクトル場を連番で連続生成するためのプログラム ! ηが負の原子の不安定モードのx, y, z座標とベクトル vx, vy, vzのデータは ! 0150000.sl等に記録した上で使用 !============================================================================= implicit none integer start,fin,offset,i !======================================================== ! 出力ファイルをオープン ! gunplotで >load 'gnuplot.scr'で読み込み実行する !======================================================== open(100,file='gnuplot.scr') !================================================= ! ステップの設定 !================================================= start = 0096000 ! 読み込み 開始ステップ数 を入力 fin = 0150000 ! 読み込み 終了ステップ数 を入力 offset = 1000 ! 読み込み 間隔は何ステップ毎か を入力 !================================================= ! グラフの設定 !================================================= write(100,'(A)') '# グラフの表示範囲・目盛り設定' write(100,'(A)') 'set xr [0.0:238]' ! グラフの横軸の描画範囲, セル寸法Lxを指定 write(100,'(A)') 'set yr [0.0:243]' ! グラフの縦軸の描画範囲,セル寸法Lyを指定 write(100,'(A)') 'set size ratio -1' ! x, yの軸の長さをÅで一致させる !================================================= ! .jpgファイルの設定 !================================================= write(100,'(A)') 'set term jpeg' ! .jpgファイルの出力 write(100,'(A)') 'set terminal jpeg size 480,480' ! 480*480 が画像サイズ !================================================= ! グラフの軸ラベル設定 !================================================= write(100,'(A)') 'set xlabel "Position, x"' ! グラフ横軸のラベル名 write(100,'(A)') 'set ylabel "Position, y"' ! グラフ縦軸のラベル名 !================================================= ! 連番で出力 !================================================= write(100,'(A)') '# 出力ループ' do i=start,fin,offset !========================================== ! 出力するファイルを連番の番号に従って名付る !============ ! タイトル名 !============ write(100,'(A,I7.7,A)') 'set title "step=',i,'"' !=========== ! .jpg !=========== write(100,'(A,I7.7,A)') 'set out "mode',i,'.jpg"' ! mode*******.jpgのファイルに出力 !========================================================== ! プロット文(◯:位置座標マーカーあり) !========================================================== ! スクリプト文に ! p "0150000.sl" u 1:2:4:5 w vec notitle, "0150000.sl" u 1:2 pt 6 notitleと出力 write(100,'(A,I7.7,A,I7.7,A)') 'p "',i,'.sl" u 1:2:4:5 w vec notitle, "', & ! 書式設定に注意 i,'.sl" u 1:2 pt 6 notitle' write(100,*) ! スクリプト文が見やすいよう空行を設ける end do !================================================= write(100,'(A)')'replot' ! この文章がないと最後のファイルが出力されない end program