#!/usr/bin/env ruby
# ----------------------------------------------
# local load path

 $local_path = '/home/yukiko/work/ape/yukiko/lib'
$: << $local_path

# ----------------------------------------------
# 必要なライブラリ, モジュールの読み込み

load "#{$local_path}/ape-view.rb"

END{

host = "eva01"
 a = Ape_mkfig.new 3
# a = Ape_mkfig.new 2
# a = Ape_mkfig.new 1


=begin
#  ["con","mradlAa","mradlAb","mradlAc","mradlAd"].each{ |item|
  ["con","a","b","c","d"].each{ |item|
#  ["con"].each{ |item|
    $expid = item
    $cum = "adj"
    set_path
    a.nc_tr_agcm5
    a.nc_tr_wkplot_agcm5

    $expid = item
    $cum = "kuo"
    set_path
    a.nc_tr_agcm5
    a.nc_tr_wkplot_agcm5
  }
=end

}

# ----------------------------------------------


def set_path
  $fig_path = "/home/yukiko/work/yukiko/eva01-home/work/aqua-mradl-ronbun/figs/tmp/"
  $ncfile_path = "/home/yukiko/work/aqua3d/yukiko/mradl/data/wk-plot-data/"
#  $file_label = "AGCM5_#{$cum}_#{$expid}"

  if $expid == "con"
    $file_label = "#{$cum}_control"
#    $file_label = "#{$cum}_con"
  else
    $file_label = "#{$cum}_#{$expid}"
    $expid = "mradlA" + $expid
  end

  $groupid = "AGCM5-#{$cum}-#{$expid}"
end

# ----------------------------------------------

class Ape_mkfig
  # #{$groupid}_TR_control.nc
  def nc_tr_agcm5

    netcdf_var = 
      { "rain_sum"   => "rain",
      "u_out_z12" => "u",
      "u_out_z13" => "u",
      "v_out_z12" => "v", 
      "v_out_z13" => "v",
      "gph_out_z12" => "z",
      "gph_out_z13" => "z", 
     "t_out_z13" => "t",
     "t_out_z12" => "t",
     "t_out_z8" => "t",
     "q_out_z6" => "q", 
     "q_out_z5" => "q", 
     "q_out_z3" => "q", 
      "ps_out"    => "ps"  }

    netcdf_var_rename = 
      { "rain_sum"   => "tr_tppn",
      "u_out_z12" => "tr_u_z12",
      "u_out_z13" => "tr_u_z13",
      "v_out_z12" => "tr_v_z12", 
      "v_out_z13" => "tr_v_z13",
      "gph_out_z12" => "tr_gph_z12",
      "gph_out_z13" => "tr_gph_z13", 
     "t_out_z13"  => "tr_t_z13",
     "t_out_z12"  => "tr_t_z12",
     "t_out_z8"   => "tr_t_z8",
     "q_out_z6"   => "tr_q_z6", 
     "q_out_z5"   => "tr_q_z5", 
     "q_out_z3"   => "tr_q_z3", 
      "ps_out"    => "tr_mslp"  }

    netcdf_apename = 
      { "rain_sum"   => "precipitation_flux",
      "u_out_z12" => "eastward_wind",
      "u_out_z13" => "eastward_wind",
      "v_out_z12" => "northward_wind",
      "v_out_z13" => "northward_wind",
      "gph_out_z12" => "geopotential_height",
      "gph_out_z13" => "geopotential_height", 
      "t_out_z13"  => "temperature",
      "t_out_z12"  => "temperature",
      "t_out_z8"   => "temperature",
      "q_out_z6"   => "specific_humidity", 
      "q_out_z5"   => "specific_humidity", 
      "q_out_z3"   => "specific_humidity", 
      "ps_out"    => "air_pressure_at_sea_level"  }

    netcdf_units = 
      { "rain_sum"   => "kg m-2 s-1",
      "u_out_z12" => "m s-1",
      "u_out_z13" => "m s-1",
      "v_out_z12" => "m s-1", 
      "v_out_z13" => "m s-1",
      "gph_out_z12" => "m",
      "gph_out_z13" => "m", 
      "t_out_z13"  => "K",
      "t_out_z12"  => "K",
      "t_out_z8"   => "K",
      "q_out_z6"   => "1", 
      "q_out_z5"   => "1", 
      "q_out_z3"   => "1", 
      "ps_out"    => "Pa"  }

    lat_lost_axis = ["latitude=1.395307"]


#    ["rain_sum","u_out_z12","u_out_z13","v_out_z12","v_out_z13","gph_out_z12","gph_out_z13","ps_out"].each { |varname|
    ["t_out_z12","t_out_z13","t_out_z8","q_out_z6","q_out_z5","q_out_z3"].each { |varname|

      @data = Ape.new("#{$ncfile_path}/#{$cum}700#{$expid}400/#{varname}.nc")

      name = netcdf_var_rename[varname]
      
      if name =~ /mslp|z13|z12|z8|z6|z5|z3/
	if name =~ /mslp/
	  lost_axis = []
	elsif name =~ /z13/
	  lost_axis = ["sigma=0.17457"]
	elsif name =~ /z12/
	  lost_axis = ["sigma=0.22953"]
	elsif name =~ /z8/
	  lost_axis = ["sigma=0.54945"]
	elsif name =~ /z6/
	  lost_axis = ["sigma=0.74467"]
	elsif name =~ /z5/
	  lost_axis = ["sigma=0.82977"]
	elsif name =~ /z3/
	  lost_axis = ["sigma=0.94994"]
	end

	# x-t ダイヤグラム
	gphys = @data.gphys_open(netcdf_var[varname]).rename(name)
	gphys =  gphys.cut(true,0,true)[true,-400..-1]

	gphys = gphys.
	  set_att("ape_name",netcdf_apename[varname]).
	  set_att("units",netcdf_units[varname])

	if varname == "ps_out"
	  gphys = gphys * 100.0
	end

	grid_1 =
	  Axis.new().
	  set_pos(VArray.new(NArray.sfloat(400).indgen!/4).rename("time").
            put_att("units","days"))
	grid_0 = gphys.grid_copy.axis(0)
        grid = Grid.new(grid_0,grid_1)
        gphys = GPhys.new(grid, gphys.data )

	mkfig_plot((gphys - gphys.mean(0)).
		   add_lost_axes(lat_lost_axis).
		   add_lost_axes(lost_axis).
		   add_lost_axes("(diff) from (mean) zonal"))

#	mkfig_plot((gphys - gphys.mean(0)).set_lost_axes(""))

	# 時空間スペクトル
	gphys = gphys.stspct_fft("#{name}_spct").
	  set_att("ape_name",
		  "#{gphys.data.get_att("ape_name")}_S-T_power_spectrum").
	  set_att("units","(#{gphys.data.get_att("units")} day-1)2").
#	  add_lost_axes(gphys.lost_axes).
          add_lost_axes(lat_lost_axis).
	  add_lost_axes(lost_axis)
	
	dim1 = gphys.coord(0).shape.to_s.to_i
	dim2 = gphys.coord(1).shape.to_s.to_i
	mkfig_plot(gphys[((dim1+1)/2-31)..((dim1+1)/2+29),0..80])
		
      end
    }
  end

  def nc_tr_wkplot_agcm5

    @data = Ape.new("#{$ncfile_path}/data/#{$groupid}-tq_wk_40smooth.nc")
    @data.netcdf_open.var_names.each { |name|
      unless name == "wvn" || name == "freq" || name == "freq0" || name == "noname"
	if name =~ /mslp/
	  lost_axis = []
	elsif name =~ /z13/
	  lost_axis = ["sigma=0.17457"]
	elsif name =~ /z12/
	  lost_axis = ["sigma=0.22953"]
	elsif name =~ /z8/
	  lost_axis = ["sigma=0.54945"]
	elsif name =~ /z6/
	  lost_axis = ["sigma=0.74467"]
	elsif name =~ /z5/
	  lost_axis = ["sigma=0.82977"]
	elsif name =~ /z3/
	  lost_axis = ["sigma=0.94994"]
	end
	
	# 時空間スペクトル
	gphys = @data.gphys_open(name). 
	  set_lost_axes(lost_axis)
	dim1 = gphys.coord(0).shape_current.to_s.to_i
	dim2 = gphys.coord(1).shape_current.to_s.to_i

	if name =~ /tr_v_z/
	  gphys.set_att("ape_name","northward_wind")
	end

	if name =~ /bg_spct/
	  mkfig_plot(gphys[((dim1+1)/2-31)..((dim1+1)/2+29),0..80].log.
		     add_lost_axes("logarithm of data") )
	else
	  mkfig_plot(gphys[((dim1+1)/2-31)..((dim1+1)/2+29),0..80])
	end

      end
    }
    
  end

end


class Ape
  
  def mkdump(gphys, gphys_u=nil, gphys_v=nil)
    gropn(3) if $gropn == nil

    if gphys_u == nil || gphys_v == nil then
      plot(gphys)
    else
      plot(gphys, gphys_u, gphys_v)
    end
    
    gphys = gphys[0]     if gphys.class == Array
    
    file_name = "#{$file_label.gsub("control","con")}_#{gphys.name}.gif"
    `rm dcl_* tmp.pnm`  
    plot(gphys)
    `for file in *.xwd;do xwdtopnm ${file} | pnmcut 2 2 904 654 > tmp.pnm;done`
#    `for file in *.xwd;do xwdtopnm ${file} | pnmcut 2 2 840 630 > tmp.pnm;done`
    `ppmtogif tmp.pnm > #{$fig_path}#{file_name}`
    `rm dcl_* tmp.pnm`  

    $file_name = $pre_file

  end


  # トーン, コンターパターンの設定 (変数固有)
  def plot_set(gphys)

    # コンターを描かない条件
    if gphys.name =~ /tr_/ || gphys.name =~ /horinout/  
      $cont_flag = false 
    else
      $cont_flag = true
    end

    # トーンを描かない条件
    if gphys.name =~ /comp_point/
      $tone_flag = false 
      NumRu::DCL.udpset("LMSG",false)
    else
      $tone_flag = true
      NumRu::DCL.udpset("LMSG",true)
    end

    # 初期化
    $fig_set_hash = {"window" => nil}
    $line_hash = { 'exchange'=>false, 'index'=>3 }
    DCL::ugrset('UXUNIT', -999)
    DCL::ugrset('UYUNIT', -999)

    if gphys.name == "tr_tppn" || gphys.name == "tr_tppn_adfilt_op" || gphys.name == "tr_tppn_kfilt_op" || gphys.name == "tr_tppn_gfilt_op"|| gphys.name == "tr_tppn_kmfilt_op"  || gphys.name =~ /comp_point_tr_tppn/

      patterns = NArray[35999, 45999, 55999, 70999, 75999, 85999]
# APE 
#      levels = NArray[0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 1000]
# mradl
      levels = NArray[10.0**(-6), 10.0**(-5.5), 10.0**(-5), 10.0**(-4.5), 10.0**(-4), 10.0**(-3.5), DCL.glpget('rmiss')]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[0.0001], "index"=>1 }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }


    elsif gphys.name == "tr_tppn_kffilt_op"

      patterns = NArray[35999, 45999, 55999, 70999, 75999, 85999]
      levels = NArray[10.0**(-6), 10.0**(-5.5), 10.0**(-5), 10.0**(-4.5), 10.0**(-4), 10.0**(-3.5), DCL.glpget('rmiss')]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[0.00005], "index"=>1 }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_tppn_adfilt" || gphys.name == "tr_tppn_kfilt" || gphys.name == "tr_tppn_gfilt"|| gphys.name == "tr_tppn_kmfilt" || gphys.name == "tr_tppn_kffilt"

      patterns = NArray[35999, 45999, 55999, 70999, 75999, 85999]
      levels = NArray[10.0**(-6), 10.0**(-5.5), 10.0**(-5), 10.0**(-4.5), 10.0**(-4), 10.0**(-3.5), DCL.glpget('rmiss')]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_u_z13" || gphys.name == "tr_u_z12" || gphys.name == "tr_v_z13" || gphys.name == "tr_v_z12"  || gphys.name == "tr_u_z12_adfilt_op" || gphys.name == "tr_u_z12_kfilt_op" || gphys.name == "tr_u_z12_gfilt_op"|| gphys.name == "tr_u_z12_kmfilt_op" || gphys.name == "tr_v_z12_adfilt_op" || gphys.name == "tr_v_z12_kfilt_op" || gphys.name == "tr_v_z12_gfilt_op" || gphys.name == "tr_v_z12_kmfilt_op" || gphys.name == "tr_v_z12_kffilt_op" || gphys.name =~ /comp_point_tr_u_z12/ || gphys.name =~ /comp_point_tr_v_z12/ || gphys.name =~ /comp_point_tr_u_z4/ || gphys.name == "tr_u_z4" || gphys.name == "tr_u_z4_adfilt_op" || gphys.name == "tr_u_z4_kfilt_op" 
      levels = NArray[DCL.glpget('rmiss'), -10, -5, 0, 5, 10, 20, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-5,5], "index"=>2 , 
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif  gphys.name == "tr_u_z12_kffilt_op" 
      levels = NArray[DCL.glpget('rmiss'), -10, -5, 0, 5, 10, 20, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-2.5,2.5], "index"=>2 , 
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif  gphys.name == "tr_u_z4_kmfilt_op" 
      levels = NArray[DCL.glpget('rmiss'), -10, -5, 0, 5, 10, 20, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-3,3], "index"=>2 , 
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif  gphys.name == "tr_u_z4_kffilt_op" 
      levels = NArray[DCL.glpget('rmiss'), -10, -5, 0, 5, 10, 20, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-2,2], "index"=>2 , 
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif  gphys.name == "tr_u_z4_gfilt_op" 
      levels = NArray[DCL.glpget('rmiss'), -10, -5, 0, 5, 10, 20, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-2.5,2.5], "index"=>2 , 
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_u_z12_adfilt" || gphys.name == "tr_u_z12_kfilt" || gphys.name == "tr_u_z12_gfilt" || gphys.name == "tr_u_z12_kmfilt" || gphys.name == "tr_u_z12_kffilt" || gphys.name == "tr_v_z12_adfilt" || gphys.name == "tr_v_z12_kfilt" || gphys.name == "tr_v_z12_gfilt" || gphys.name == "tr_v_z12_kmfilt" || gphys.name == "tr_v_z12_kffilt" || gphys.name == "tr_u_z4_adfilt" || gphys.name == "tr_u_z4_kfilt" || gphys.name == "tr_u_z4_gfilt" || gphys.name == "tr_u_z4_kmfilt" || gphys.name == "tr_u_z4_kffilt" 
      levels = NArray[DCL.glpget('rmiss'), -10, -5, 0, 5, 10, 20, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_gph_z13" || gphys.name == "tr_gph_z12" 
      levels = NArray[DCL.glpget('rmiss'), -30, -10, 0, 10, 30, 50, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_q_z6" || gphys.name == "tr_q_z5" || gphys.name == "tr_q_z3"  || gphys.name == "tr_q_z5_adfilt_op" || gphys.name == "tr_q_z5_kfilt_op" || gphys.name == "tr_q_z5_gfilt_op" || gphys.name == "tr_q_z5_kmfilt_op" || gphys.name =~ /comp_point_tr_q_z5/
      levels = NArray[DCL.glpget('rmiss'), -0.004, -0.002, 0, 0.002, 0.004, 0.006, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-0.001,0.001], "index"=>2,  
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_q_z5_kffilt_op"
      levels = NArray[DCL.glpget('rmiss'), -0.004, -0.002, 0, 0.002, 0.004, 0.006, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-0.0005,0.0005], "index"=>2,  
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_q_z5_adfilt" || gphys.name == "tr_q_z5_kfilt" || gphys.name == "tr_q_z5_gfilt" || gphys.name == "tr_q_z5_kmfilt" || gphys.name == "tr_q_z5_kffilt"
      levels = NArray[DCL.glpget('rmiss'), -0.004, -0.002, 0, 0.002, 0.004, 0.006, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_t_z13" || gphys.name == "tr_t_z12" || gphys.name == "tr_t_z8" || gphys.name == "tr_t_z8_adfilt_op" || gphys.name == "tr_t_z8_kfilt_op" || gphys.name == "tr_t_z8_gfilt_op"|| gphys.name == "tr_t_z8_kmfilt_op" || gphys.name == "tr_t_z8_kffilt_op"|| gphys.name =~ /comp_point_tr_t_z8/

      levels = NArray[DCL.glpget('rmiss'), -2, -1, 0, 1, 2, 3, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {
        "lev"=>[-0.5,0.5],  "index"=>2 ,
        "line_type" => [3,1] }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_t_z8_adfilt" || gphys.name == "tr_t_z8_kfilt" || gphys.name == "tr_t_z8_gfilt" || gphys.name == "tr_t_z8_kmfilt" || gphys.name == "tr_t_z8_kffilt"
      levels = NArray[DCL.glpget('rmiss'), -2, -1, 0, 1, 2, 3, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name == "tr_mslp"
      levels = NArray[DCL.glpget('rmiss'), -450, -300, -150, 0, 150, 300, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }


    elsif gphys.name =~ /comp_tuom/
#      levels = NArray[DCL.glpget('rmiss'), -1.5, -1, -0.5, 0, 0.5, 1,DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'), -0.6, -0.3, 0, 0.3, 0.6, 0.9, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    # conposite tuom ベクトル設定
#    DCL::ugrset('XFACT1', 3*10E-6*100)
#    DCL::ugrset('YFACT1', 6.0/100)
#    DCL::ugrset('VXUNIT', 0.05)
#    DCL::ugrset('VYUNIT', 0.05)

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrset('XFACT1', 2*10E-6*100)
      DCL::ugrset('YFACT1', 15.0/100*100000)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_tuom_mono/
      levels = NArray[DCL.glpget('rmiss'), -1.5, -1, -0.5, 0, 0.5, 1,DCL.glpget('rmiss')]
      patterns = NArray[603, 603, 603, 603, 99001, 99001, 99001]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    # conposite tuom ベクトル設定
#    DCL::ugrset('XFACT1', 3*10E-6*100)
#    DCL::ugrset('YFACT1', 6.0/100)
#    DCL::ugrset('VXUNIT', 0.05)
#    DCL::ugrset('VYUNIT', 0.05)

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
#      DCL::ugrset('XFACT1', 3*10E-6*100)
#      DCL::ugrset('YFACT1', 6.0/100)
      DCL::ugrset('XFACT1', 2*10E-6*100)
#      DCL::ugrset('YFACT1', 5.0/100)
      DCL::ugrset('YFACT1', 15.0/100*100000)
      DCL::uglset('LUNIT', true)
#      DCL::ugrset('VXUNIT', 0.05)
#      DCL::ugrset('VYUNIT', 0.05)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_tvuom/
#      levels = NArray[DCL.glpget('rmiss'), -0.6, -0.3, 0, 0.3, 0.6, 0.9,DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'), -1.5, -1, -0.5, 0, 0.5, 1,DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrset('XFACT1', 2*10E-6*100)
#      DCL::ugrset('YFACT1', 5.0/100)
      DCL::ugrset('YFACT1', 15.0/100*100000)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_quom/
      levels = NArray[DCL.glpget('rmiss'), 0.0, 0.00025, 0.0005, 0.00075, 0.001, 0.00125 ,DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrset('XFACT1', 2*10E-6*100)
#      DCL::ugrset('YFACT1', 5.0/100)
      DCL::ugrset('YFACT1', 15.0/100*100000)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_tconvuom/
#      levels = NArray[DCL.glpget('rmiss'), -3e-4, 0, 3e-4, 6e-4, 9e-4, 12e-4,DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'), -4e-5, -2e-5, 0, 2e-5, 4e-5, 6e-5, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrset('XFACT1', 2*10E-6*100)
#      DCL::ugrset('YFACT1', 5.0/100)
      DCL::ugrset('YFACT1', 15.0/100*100000)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_uuom/
      levels = NArray[DCL.glpget('rmiss'), -9, -6, -3, 0, 3, 6, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    # conposite tuom ベクトル設定
      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrset('XFACT1', 2*10E-6*100)
      DCL::ugrset('YFACT1', 15.0/100*100000)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)


    elsif gphys.name =~ /comp_tppn/
#      levels = NArray[0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, DCL.glpget('rmiss')]
      levels = NArray[10.0**(-6), 10.0**(-5.5), 10.0**(-5), 10.0**(-4.5), 10.0**(-4), 10.0**(-3.5), DCL.glpget('rmiss')]
      patterns = NArray[35999, 45999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

    elsif gphys.name =~ /comp_tuv570/ || gphys.name =~ /comp_tuv_z8/
      levels = NArray[DCL.glpget('rmiss'), -1.5, -1, -0.5, 0, 0.5, 1,DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrstx('XFACT1', 0.01)
      DCL::ugpstx('YFACT1', 0.01)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_phiuv850/ || gphys.name =~ /comp_gphuv_z5/ 
#      levels = NArray[DCL.glpget('rmiss'),-20,-10, 0, 10, 20, 30,DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'),-1,-0.5, 0, 0.5, 1, 1.5, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrstx('XFACT1', 0.01)
      DCL::ugpstx('YFACT1', 0.01)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_phiuv250/ || gphys.name =~ /comp_gphuv_z12/
#      levels = NArray[DCL.glpget('rmiss'),-40,-20, 0, 20, 40, 60,DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'),-10,-5, 0, 5, 10, 15,DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrstx('XFACT1', 0.01)
      DCL::ugpstx('YFACT1', 0.01)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_psuv/
#      levels = NArray[DCL.glpget('rmiss'),-200,-100, 0, 100, 200, 300,DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'),-50,-25, 0, 25, 50, 75, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrstx('XFACT1', 0.01)
      DCL::ugpstx('YFACT1', 0.01)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name =~ /comp_quv850/ || gphys.name =~ /comp_quv_z5/
#      levels = NArray[DCL.glpget('rmiss'), -0.002, -0.001, 0, 0.001, 0.002, 0.003, DCL.glpget('rmiss')]
      levels = NArray[DCL.glpget('rmiss'), -0.0005, -0.00025, 0, 0.00025, 0.0005, 0.00075, DCL.glpget('rmiss')]
      patterns = NArray[30999, 35999, 40999, 55999, 70999, 75999, 85999]
      cont_lev, line_type, label  = cont_lev_set(levels)
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'levels' => cont_lev, 'index'=> [2,1], 'label'=> label, 
	'line_type'=> line_type }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>0,
	"tick1"=>20,"tick2"=>1
      }

      # 風 (u,-sigdot) ベクトル
      DCL::uglset('LNRMAL', false)
      DCL::ugrstx('XFACT1', 0.01)
      DCL::ugpstx('YFACT1', 0.01)
      DCL::uglset('LUNIT', true)
      DCL::ugrset('VXUNIT', 0.06)
      DCL::ugrset('VYUNIT', 0.06)
      DCL::ugrset('VXUOFF', 0.01)

    elsif gphys.name == "tr_tppn_spct"  || gphys.name == "tr_tppn_adfilt_spct" || gphys.name == "tr_tppn_kfilt_spct" || gphys.name == "tr_tppn_gfilt_spct"  || gphys.name == "tr_tppn_kmfilt_spct"|| gphys.name == "tr_tppn_kffilt_spct"    
      levels = NArray[1e-12, 1e-11, 1e-10, 1e-9,  DCL.glpget('rmiss') ]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e-10}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }


    elsif gphys.name == "tr_u_z13_spct" || gphys.name == "tr_u_z12_spct" || gphys.name == "tr_u_z12_adfilt_spct" || gphys.name == "tr_u_z12_kfilt_spct" || gphys.name == "tr_u_z12_gfilt_spct" || gphys.name == "tr_u_z12_kmfilt_spct" || gphys.name == "tr_u_z12_kffilt_spct"    
      levels = NArray[1e-3, 1e-2, 1e-1, 1,  DCL.glpget('rmiss') ]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e-1}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_v_z13_spct" || gphys.name == "tr_v_z12_spct" || gphys.name == "tr_v_z12_adfilt_spct" || gphys.name == "tr_v_z12_kfilt_spct" || gphys.name == "tr_v_z12_gfilt_spct"   || gphys.name == "tr_v_z12_kmfilt_spct"|| gphys.name == "tr_v_z12_kffilt_spct"      
      levels = NArray[1e-3, 1e-2, 1e-1, 1,  DCL.glpget('rmiss')]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e-1}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_gph_z13_spct" || gphys.name == "tr_gph_z12_spct" 
      levels = NArray[1e-3, 1e-2, 1e-1, 1,  DCL.glpget('rmiss') ]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e-1}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_t_z13_spct" || gphys.name == "tr_t_z12_spct" || gphys.name == "tr_t_z8_spct" || gphys.name == "tr_t_z8_adfilt_spct" || gphys.name == "tr_t_z8_kfilt_spct" || gphys.name == "tr_t_z8_gfilt_spct"  || gphys.name == "tr_t_z8_kmfilt_spct"|| gphys.name == "tr_t_z8_kffilt_spct"    
      levels = NArray[1e-4, 1e-3, 1e-2, 1e-1,  DCL.glpget('rmiss') ]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e-1}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_q_z3_spct" || gphys.name == "tr_q_z6_spct" || gphys.name == "tr_q_z5_spct" || gphys.name == "tr_q_z5_adfilt_spct" || gphys.name == "tr_q_z5_kfilt_spct" || gphys.name == "tr_q_z5_gfilt_spct" || gphys.name == "tr_q_z5_kmfilt_spct" || gphys.name == "tr_q_z5_kffilt_spct" 
      levels = NArray[1e-10, 1e-9, 1e-8, 1e-7,  DCL.glpget('rmiss') ]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e-1}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

    elsif gphys.name == "tr_mslp_spct" 
      levels = NArray[1e+0, 1e+1, 1e+2, 1e+3,  DCL.glpget('rmiss') ]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cont_hash = {'int'=>1e+2}
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1
      }

      # W-K plot
    elsif gphys.name == "tr_tppn_sym_spct" || gphys.name == "tr_u_z13_sym_spct" || gphys.name == "tr_u_z12_sym_spct" ||  gphys.name == "tr_v_z13_sym_spct" ||  gphys.name == "tr_v_z12_sym_spct" || gphys.name == "tr_gph_z13_sym_spct" || gphys.name == "tr_gph_z12_sym_spct"|| gphys.name == "tr_mslp_sym_spct" || gphys.name == "tr_t_z13_sym_spct" || gphys.name == "tr_t_z12_sym_spct" || gphys.name == "tr_t_z8_sym_spct" || gphys.name == "tr_q_z6_sym_spct" || gphys.name == "tr_q_z5_sym_spct" || gphys.name == "tr_q_z3_sym_spct"
      levels = NArray[1.2, 1.4, 1.6, 2.0, DCL.glpget('rmiss')]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1,
      "vx0"=>0.05,
      "vy0"=>0.1,
      "label_size"=>0.015
      }

    elsif gphys.name == "tr_tppn_asym_spct" || gphys.name == "tr_u_z13_asym_spct" || gphys.name == "tr_u_z12_asym_spct" ||  gphys.name == "tr_v_z13_asym_spct" ||  gphys.name == "tr_v_z12_asym_spct"||  gphys.name == "tr_gph_z13_asym_spct" ||  gphys.name == "tr_gph_z12_asym_spct" || gphys.name == "tr_mslp_asym_spct" || gphys.name == "tr_t_z13_asym_spct" || gphys.name == "tr_t_z12_asym_spct" || gphys.name == "tr_t_z8_asym_spct" || gphys.name == "tr_q_z6_asym_spct" || gphys.name == "tr_q_z5_asym_spct" || gphys.name == "tr_q_z3_asym_spct"
      levels = NArray[0.1, 0.3, 0.5, 0.7, DCL.glpget('rmiss')]
      patterns = NArray[40999, 30999, 20999,17999]
      $tone_hash = { 'patterns'=> patterns, 'levels'=>levels }
      $cbar_conf = {
	"levels"=>levels, 
	"colors"=>patterns,
	"eqlev"=>true,
	"nobound"=>2,
	"tick1"=>7,"tick2"=>1,
      "vx0"=>0.05,
      "vy0"=>0.1,
      "label_size"=>0.015
      }

    else
      plot_def(gphys)
    end

  end

end


