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

 $local_path = '/work11/ape/yukiko/lib'
# $local_path = '/home/yukiko/tmp/ape-data/lib'
$: << $local_path

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

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

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


groupid = ["aguforape","agcm5_adj","agcm5_kuo"]
set_dir_id  = groupid[0]
host = "eva01"
#a = Ape_mkfig.new 3
a = Ape_mkfig.new 2

END{

#  $cumulus = "non"
  $cumulus = "eml"
  $rezol = "T159L48_#{$cumulus}"
#  $rezol = "T39L48_#{$cumulus}"
#  $rezol = "T319L48_#{$cumulus}"
  $expID = "control"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159
#  a.nc_tr_closeup_T159_non
  a.nc_tr_closeup_T159_eml
#  a.nc_tr_T319_non
#   a.nc_tr_closeup_T319_non
#   a.nc_tr_closeup_T319_eml
#   a.nc_tr_closeup_lowresol
#   a.nc_tr_360day_T319_non
#   a.nc_tr_closeup_T159_non

#  a.nc_tr_closeup_lowresol

  $cumulus = "eml"
  $rezol = "T319L48_#{$cumulus}"
  $expID = "control"
  set_dir(set_dir_id,host)
#   a.nc_tr_closeup_T319_eml

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "control"
  set_dir(set_dir_id,host)
#   a.nc_tr_closeup_T159_non

  $cumulus = "eml"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "control"
  set_dir(set_dir_id,host)
#   a.nc_tr_closeup_T159_eml



  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "control"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "peaked"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "flat"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "Qobs"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "control-5N"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "1keq"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "3keq"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159

  $cumulus = "non"
  $rezol = "T159L48_#{$cumulus}"
  $expID = "3kw1"
  set_dir(set_dir_id,host)
#  a.nc_tr_360day_T159


}


class Ape_mkfig

  def nc_tr_T319_non

    @data = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0031.nc")
    @data.netcdf_open.var_names.each { |name|
      if name =~ /lw_toa|mslp|500|250/
	if name =~ /lw_toa|mslp/
	  lost_axis = []
	elsif name =~ /250/
	  lost_axis = ["plev=25000 Pa"]
	elsif name =~ /500/
	  lost_axis = ["plev=50000 Pa"]
	end
	
	# x-t ダイヤグラム
	gphys =   __tr_T319_marge(name)
	gphys = gphys[true,-401..-1]	

	mkfig_plot((gphys - gphys.mean(0)).
		   add_lost_axes(lost_axis).
		   add_lost_axes("(diff) from (mean) zonal").lon_lotate)
	
	# 時空間スペクトル
	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(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])

      elsif name =~ /tppn/

	# x-t ダイヤグラム
	gphys = __tr_T319_marge("tr_tppn")
	gphys = gphys[true,-401..-1]	
	mkfig_plot(gphys.lon_lotate)

	# 時空間スペクトル
	gphys = gphys.stspct_fft("tr_tppn_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)
	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_closeup_lowresol
    
    @data = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}.nc")
    
    # x-t ダイヤグラム
    gphys = @data.gphys_open("tr_tppn").cut(true,0,true)
    gphys = gphys[true,-401..-1]

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

    gphys = gphys.lon_lotate

=begin

	mkfig_plot(gphys[0..479,-121..-1].rename("tr_tppn_30day_1"))
	mkfig_plot(gphys[480..-1,-121..-1].rename("tr_tppn_30day_2"))
	mkfig_plot(gphys[0..479,-241..-121].rename("tr_tppn_30day_3"))
	mkfig_plot(gphys[480..-1,-241..-121].rename("tr_tppn_30day_4"))
	mkfig_plot(gphys[0..479,-361..-241].rename("tr_tppn_30day_5"))
	mkfig_plot(gphys[480..-1,-361..-241].rename("tr_tppn_30day_6"))

	mkfig_plot(gphys[0..239,-61..-1].rename("tr_tppn_15day_1"))
	mkfig_plot(gphys[240..479,-61..-1].rename("tr_tppn_15day_2"))
	mkfig_plot(gphys[480..719,-61..-1].rename("tr_tppn_15day_3"))
	mkfig_plot(gphys[720..-1,-61..-1].rename("tr_tppn_15day_4"))

	mkfig_plot(gphys[0..239,-121..-61].rename("tr_tppn_15day_5"))
	mkfig_plot(gphys[240..479,-121..-61].rename("tr_tppn_15day_6"))
	mkfig_plot(gphys[480..719,-121..-61].rename("tr_tppn_15day_7"))
	mkfig_plot(gphys[720..-1,-121..-61].rename("tr_tppn_15day_8"))

	mkfig_plot(gphys[0..239,-181..-121].rename("tr_tppn_15day_9"))
	mkfig_plot(gphys[240..479,-181..-121].rename("tr_tppn_15day_10"))
	mkfig_plot(gphys[480..719,-181..-121].rename("tr_tppn_15day_11"))
	mkfig_plot(gphys[720..-1,-181..-121].rename("tr_tppn_15day_12"))

	mkfig_plot(gphys[0..239,-241..-181].rename("tr_tppn_15day_13"))
	mkfig_plot(gphys[240..479,-241..-181].rename("tr_tppn_15day_14"))
	mkfig_plot(gphys[480..719,-241..-181].rename("tr_tppn_15day_15"))
	mkfig_plot(gphys[720..-1,-241..-181].rename("tr_tppn_15day_16"))

	mkfig_plot(gphys[0..239,-301..-241].rename("tr_tppn_15day_17"))
	mkfig_plot(gphys[240..479,-301..-241].rename("tr_tppn_15day_18"))
	mkfig_plot(gphys[480..719,-301..-241].rename("tr_tppn_15day_19"))
	mkfig_plot(gphys[720..-1,-301..-241].rename("tr_tppn_15day_20"))

	mkfig_plot(gphys[0..239,-361..-301].rename("tr_tppn_15day_21"))
	mkfig_plot(gphys[240..479,-361..-301].rename("tr_tppn_15day_22"))
	mkfig_plot(gphys[480..719,-361..-301].rename("tr_tppn_15day_23"))
	mkfig_plot(gphys[720..-1,-361..-301].rename("tr_tppn_15day_24"))

=end

#	mkfig_plot(gphys[0..479,-121..-1].rename("tr_tppn_30day_1_mono"))
	mkfig_plot(gphys.rename("tr_tppn_mono").set_lost_axes(""))

#	mkfig_plot(gphys[0..59,-121..-1].rename("tr_tppn_30day_1"))
#	mkfig_plot(gphys[60..-1,-121..-1].rename("tr_tppn_30day_2"))
#	mkfig_plot(gphys[0..59,-241..-121].rename("tr_tppn_30day_3"))
#	mkfig_plot(gphys[60..-1,-241..-121].rename("tr_tppn_30day_4"))
#	mkfig_plot(gphys[0..59,-361..-241].rename("tr_tppn_30day_5"))
#	mkfig_plot(gphys[60..-1,-361..-241].rename("tr_tppn_30day_6"))

  end

  def nc_tr_closeup_T319_non
    
    @data = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0031.nc")
    
    # x-t ダイヤグラム
    gphys =   __tr_T319_marge("tr_tppn")
    gphys = gphys[true,-401..-1]

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

    gphys = gphys.lon_lotate

=begin

	mkfig_plot(gphys[0..479,-121..-1].rename("tr_tppn_30day_1"))
	mkfig_plot(gphys[480..-1,-121..-1].rename("tr_tppn_30day_2"))
	mkfig_plot(gphys[0..479,-241..-121].rename("tr_tppn_30day_3"))
	mkfig_plot(gphys[480..-1,-241..-121].rename("tr_tppn_30day_4"))
	mkfig_plot(gphys[0..479,-361..-241].rename("tr_tppn_30day_5"))
	mkfig_plot(gphys[480..-1,-361..-241].rename("tr_tppn_30day_6"))

	mkfig_plot(gphys[0..239,-61..-1].rename("tr_tppn_15day_1"))
	mkfig_plot(gphys[240..479,-61..-1].rename("tr_tppn_15day_2"))
	mkfig_plot(gphys[480..719,-61..-1].rename("tr_tppn_15day_3"))
	mkfig_plot(gphys[720..-1,-61..-1].rename("tr_tppn_15day_4"))

	mkfig_plot(gphys[0..239,-121..-61].rename("tr_tppn_15day_5"))
	mkfig_plot(gphys[240..479,-121..-61].rename("tr_tppn_15day_6"))
	mkfig_plot(gphys[480..719,-121..-61].rename("tr_tppn_15day_7"))
	mkfig_plot(gphys[720..-1,-121..-61].rename("tr_tppn_15day_8"))

	mkfig_plot(gphys[0..239,-181..-121].rename("tr_tppn_15day_9"))
	mkfig_plot(gphys[240..479,-181..-121].rename("tr_tppn_15day_10"))
	mkfig_plot(gphys[480..719,-181..-121].rename("tr_tppn_15day_11"))
	mkfig_plot(gphys[720..-1,-181..-121].rename("tr_tppn_15day_12"))

	mkfig_plot(gphys[0..239,-241..-181].rename("tr_tppn_15day_13"))
	mkfig_plot(gphys[240..479,-241..-181].rename("tr_tppn_15day_14"))
	mkfig_plot(gphys[480..719,-241..-181].rename("tr_tppn_15day_15"))
	mkfig_plot(gphys[720..-1,-241..-181].rename("tr_tppn_15day_16"))

	mkfig_plot(gphys[0..239,-301..-241].rename("tr_tppn_15day_17"))
	mkfig_plot(gphys[240..479,-301..-241].rename("tr_tppn_15day_18"))
	mkfig_plot(gphys[480..719,-301..-241].rename("tr_tppn_15day_19"))
	mkfig_plot(gphys[720..-1,-301..-241].rename("tr_tppn_15day_20"))

	mkfig_plot(gphys[0..239,-361..-301].rename("tr_tppn_15day_21"))
	mkfig_plot(gphys[240..479,-361..-301].rename("tr_tppn_15day_22"))
	mkfig_plot(gphys[480..719,-361..-301].rename("tr_tppn_15day_23"))
	mkfig_plot(gphys[720..-1,-361..-301].rename("tr_tppn_15day_24"))

=end

#	mkfig_plot(gphys[0..479,-121..-1].rename("tr_tppn_30day_1_mono"))
#	mkfig_plot(gphys.rename("tr_tppn_mono").set_lost_axes(""))
	mkfig_plot(gphys[480..-1,-121..-1].rename("tr_tppn_30day_2_mono"))

  end


  def nc_tr_360day_T319_non

    @data = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0031.nc")
    @data.netcdf_open.var_names.each { |name|
      if name =~ /lw_toa|mslp|500|250/
	if name =~ /lw_toa|mslp/
	  lost_axis = []
	elsif name =~ /250/
	  lost_axis = ["plev=25000 Pa"]
	elsif name =~ /500/
	  lost_axis = ["plev=50000 Pa"]
	end
	
	# x-t ダイヤグラム
	gphys = __tr_T319_marge(name).rename("#{name}_360all")
	
	mkfig_plot((gphys - gphys.mean(0)).
		   add_lost_axes(lost_axis).
		   add_lost_axes("(diff) from (mean) zonal").lon_lotate)
	
	# 時空間スペクトル
	gphys = gphys.stspct_fft("#{name}_360all_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(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..288])

      elsif name =~ /tppn/

	# x-t ダイヤグラム
	gphys = __tr_T319_marge("tr_tppn").rename("#{name}_360all")
	mkfig_plot(gphys.lon_lotate)

	# 時空間スペクトル
	gphys = gphys.stspct_fft("tr_tppn_360all_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)
	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..288])
      end
    }

  end


  def nc_tr_360day_T159

    @data = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_half1.nc")        
    @data.netcdf_open.var_names.each { |name|
      if name =~ /lw_toa|mslp|500|250/
	if name =~ /lw_toa|mslp/
	  lost_axis = []
	elsif name =~ /250/
	  lost_axis = ["plev=25000 Pa"]
	elsif name =~ /500/
	  lost_axis = ["plev=50000 Pa"]
	end
	
	# x-t ダイヤグラム
	gphys = __tr_T159_marge(name)
	
	mkfig_plot((gphys - gphys.mean(0)).
		   add_lost_axes(lost_axis).
		   add_lost_axes("(diff) from (mean) zonal").lon_lotate)
	
	# 時空間スペクトル
	gphys = gphys.stspct_fft("#{name}_360all_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(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..288])

      elsif name =~ /tppn/

	# x-t ダイヤグラム
	gphys = __tr_T159_marge("tr_tppn")
	mkfig_plot(gphys.lon_lotate)

	# 時空間スペクトル
	gphys = gphys.stspct_fft("tr_tppn_360all_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)
	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..288])
      end
    }

  end
  
  def __tr_T159_marge(name)
    
    x_size = NArray.sfloat(480).indgen*360.0/480
    t_size = NArray.sfloat(1440).indgen*1.0/4.0 + 0.25
    
    # 軸
    x = VArray.new(x_size).rename("lon").put_att("units","degrees_east")
    t = VArray.new(t_size).rename("time").put_att("units","days since 0000-01-01")
    x = Axis.new().set_pos(x)
    t = Axis.new().set_pos(t)
    grid = Grid.new(x,t)
    
    data = NArray.sfloat(480,1440).indgen * 0.0
    
    file1 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_half1.nc")
    file2 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_half2.nc")
    
    gphys = file1.gphys_open(name)
    gphys = gphys.cut(true,0,true).rename("#{name}_360all")
    data[true,0..719] = gphys.data.val
    
    gphys = file2.gphys_open(name)
    gphys = gphys.cut(true,0,true).rename("#{name}_360all")
    data[true,720..-1] = gphys.data.val
    
    data = VArray.new(data).rename("#{name}_360all").
      put_att("units",gphys.data.get_att("units")).
      put_att("ape_name",gphys.data.get_att("ape_name"))
    data = GPhys.new( grid, data)
#    data = data[true,-1201..-1]
    
    return data
  end


  def nc_tr_closeup_T159_non
    
    @data = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_half2.nc")        
    
    # x-t ダイヤグラム
    gphys = @data.gphys_open("tr_tppn")
    gphys = gphys.cut(true,0,true)[true,-401..-1]
    
    grid_0 = gphys.grid_copy.axis(0)
    grid_1 =
      Axis.new().
      set_pos(VArray.new(NArray.sfloat(401).indgen!/4).rename("time").
 put_att("units","days"))
        grid = Grid.new(grid_0,grid_1)
        gphys = GPhys.new(grid, gphys.data )

    gphys = gphys.lon_lotate

=begin
	mkfig_plot(gphys[0..239,-101..-1].rename("tr_tppn_25day_1"))
	mkfig_plot(gphys[240..-1,-101..-1].rename("tr_tppn_25day_2"))
	mkfig_plot(gphys[0..239,-201..-100].rename("tr_tppn_25day_3"))
	mkfig_plot(gphys[240..-1,-201..-100].rename("tr_tppn_25day_4"))
	mkfig_plot(gphys[0..239,-301..-200].rename("tr_tppn_25day_5"))
	mkfig_plot(gphys[240..-1,-301..-200].rename("tr_tppn_25day_6"))
	mkfig_plot(gphys[0..239,-401..-300].rename("tr_tppn_25day_7"))
	mkfig_plot(gphys[240..-1,-401..-300].rename("tr_tppn_25day_8"))

	mkfig_plot(gphys[0..239,-121..-1].rename("tr_tppn_30day_1_mono"))
#	mkfig_plot(gphys[240..-1,-121..-1].rename("tr_tppn_30day_2"))
#	mkfig_plot(gphys[0..239,-241..-121].rename("tr_tppn_30day_3"))
#	mkfig_plot(gphys[240..-1,-241..-121].rename("tr_tppn_30day_4"))
#	mkfig_plot(gphys[0..239,-361..-241].rename("tr_tppn_30day_5"))
#	mkfig_plot(gphys[240..-1,-361..-241].rename("tr_tppn_30day_6"))

	mkfig_plot(gphys[0..119,-61..-1].rename("tr_tppn_15day_1"))
	mkfig_plot(gphys[120..239,-61..-1].rename("tr_tppn_15day_2"))
	mkfig_plot(gphys[240..359,-61..-1].rename("tr_tppn_15day_3"))
	mkfig_plot(gphys[360..-1,-61..-1].rename("tr_tppn_15day_4"))

	mkfig_plot(gphys[0..119,-121..-61].rename("tr_tppn_15day_5"))
	mkfig_plot(gphys[120..239,-121..-61].rename("tr_tppn_15day_6"))
	mkfig_plot(gphys[240..359,-121..-61].rename("tr_tppn_15day_7"))
	mkfig_plot(gphys[360..-1,-121..-61].rename("tr_tppn_15day_8"))

	mkfig_plot(gphys[0..119,-181..-121].rename("tr_tppn_15day_9"))
	mkfig_plot(gphys[120..239,-181..-121].rename("tr_tppn_15day_10"))
	mkfig_plot(gphys[240..359,-181..-121].rename("tr_tppn_15day_11"))
	mkfig_plot(gphys[360..-1,-181..-121].rename("tr_tppn_15day_12"))

	mkfig_plot(gphys[0..119,-241..-181].rename("tr_tppn_15day_13"))
	mkfig_plot(gphys[120..239,-241..-181].rename("tr_tppn_15day_14"))
	mkfig_plot(gphys[240..359,-241..-181].rename("tr_tppn_15day_15"))
	mkfig_plot(gphys[360..-1,-241..-181].rename("tr_tppn_15day_16"))

	mkfig_plot(gphys[0..119,-301..-241].rename("tr_tppn_15day_17"))
	mkfig_plot(gphys[120..239,-301..-241].rename("tr_tppn_15day_18"))
	mkfig_plot(gphys[240..359,-301..-241].rename("tr_tppn_15day_19"))
	mkfig_plot(gphys[360..-1,-301..-241].rename("tr_tppn_15day_20"))

	mkfig_plot(gphys[0..119,-361..-301].rename("tr_tppn_15day_21"))
	mkfig_plot(gphys[120..239,-361..-301].rename("tr_tppn_15day_22"))
	mkfig_plot(gphys[240..359,-361..-301].rename("tr_tppn_15day_23"))
	mkfig_plot(gphys[360..-1,-361..-301].rename("tr_tppn_15day_24"))

=end

#	mkfig_plot(gphys.rename("tr_tppn_mono").set_lost_axes(""))
#	mkfig_plot(gphys[0..239,-121..-1].rename("tr_tppn_30day_1_mono"))
	mkfig_plot(gphys[240..-1,-121..-1].rename("tr_tppn_30day_2_mono"))

  end

  def nc_tr_closeup_T159_eml
    
    $gr2ncfile_path = "/work11/ape/yukiko/data/#{$rezol}_expID01/"
    file_name = Array.new
    Dir.foreach($gr2ncfile_path) { |item|
      file_name.push("#{$gr2ncfile_path}/#{item}") if item =~ /.nc$/
    }
    @data = Ape.new(file_name)
    # tr_tppn
    gphys = @data.gphys_open("tr_tppn").cut(true,0,true)
    lost_axes = gphys.lost_axes.to_s.sub("y=","lat=")
    gphys = gphys[true,-401..-1].set_lost_axes(lost_axes)

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

    gphys = gphys.lon_lotate

=begin
	mkfig_plot(gphys[0..239,-101..-1].rename("tr_tppn_25day_1"))
	mkfig_plot(gphys[240..-1,-101..-1].rename("tr_tppn_25day_2"))
	mkfig_plot(gphys[0..239,-201..-100].rename("tr_tppn_25day_3"))
	mkfig_plot(gphys[240..-1,-201..-100].rename("tr_tppn_25day_4"))
	mkfig_plot(gphys[0..239,-301..-200].rename("tr_tppn_25day_5"))
	mkfig_plot(gphys[240..-1,-301..-200].rename("tr_tppn_25day_6"))
	mkfig_plot(gphys[0..239,-401..-300].rename("tr_tppn_25day_7"))
	mkfig_plot(gphys[240..-1,-401..-300].rename("tr_tppn_25day_8"))

#	mkfig_plot(gphys[0..239,-121..-1].rename("tr_tppn_30day_1_mono"))
	mkfig_plot(gphys[0..239,-121..-1].rename("tr_tppn_30day_1"))
	mkfig_plot(gphys[240..-1,-121..-1].rename("tr_tppn_30day_2"))
	mkfig_plot(gphys[0..239,-241..-121].rename("tr_tppn_30day_3"))
	mkfig_plot(gphys[240..-1,-241..-121].rename("tr_tppn_30day_4"))
	mkfig_plot(gphys[0..239,-361..-241].rename("tr_tppn_30day_5"))
	mkfig_plot(gphys[240..-1,-361..-241].rename("tr_tppn_30day_6"))

#	mkfig_plot(gphys.lon_lotate.rename("tr_tppn_mono").set_lost_axes(""))

	mkfig_plot(gphys[0..119,-61..-1].rename("tr_tppn_15day_1"))
	mkfig_plot(gphys[120..239,-61..-1].rename("tr_tppn_15day_2"))
	mkfig_plot(gphys[240..359,-61..-1].rename("tr_tppn_15day_3"))
	mkfig_plot(gphys[360..-1,-61..-1].rename("tr_tppn_15day_4"))

	mkfig_plot(gphys[0..119,-121..-61].rename("tr_tppn_15day_5"))
	mkfig_plot(gphys[120..239,-121..-61].rename("tr_tppn_15day_6"))
	mkfig_plot(gphys[240..359,-121..-61].rename("tr_tppn_15day_7"))
	mkfig_plot(gphys[360..-1,-121..-61].rename("tr_tppn_15day_8"))

	mkfig_plot(gphys[0..119,-181..-121].rename("tr_tppn_15day_9"))
	mkfig_plot(gphys[120..239,-181..-121].rename("tr_tppn_15day_10"))
	mkfig_plot(gphys[240..359,-181..-121].rename("tr_tppn_15day_11"))
	mkfig_plot(gphys[360..-1,-181..-121].rename("tr_tppn_15day_12"))

	mkfig_plot(gphys[0..119,-241..-181].rename("tr_tppn_15day_13"))
	mkfig_plot(gphys[120..239,-241..-181].rename("tr_tppn_15day_14"))
	mkfig_plot(gphys[240..359,-241..-181].rename("tr_tppn_15day_15"))
	mkfig_plot(gphys[360..-1,-241..-181].rename("tr_tppn_15day_16"))

	mkfig_plot(gphys[0..119,-301..-241].rename("tr_tppn_15day_17"))
	mkfig_plot(gphys[120..239,-301..-241].rename("tr_tppn_15day_18"))
	mkfig_plot(gphys[240..359,-301..-241].rename("tr_tppn_15day_19"))
	mkfig_plot(gphys[360..-1,-301..-241].rename("tr_tppn_15day_20"))

	mkfig_plot(gphys[0..119,-361..-301].rename("tr_tppn_15day_21"))
	mkfig_plot(gphys[120..239,-361..-301].rename("tr_tppn_15day_22"))
	mkfig_plot(gphys[240..359,-361..-301].rename("tr_tppn_15day_23"))
	mkfig_plot(gphys[360..-1,-361..-301].rename("tr_tppn_15day_24"))

=end

#	mkfig_plot(gphys[0..239,-121..-1].rename("tr_tppn_30day_1_mono"))
#	mkfig_plot(gphys.rename("tr_tppn_mono").set_lost_axes(""))
	mkfig_plot(gphys[240..-1,-121..-1].rename("tr_tppn_30day_2_mono"))

  end

  def nc_tr_closeup_T319_eml
    
    $gr2ncfile_path = "/work11/ape/yukiko/data/#{$rezol}_expID01/"
    file_name = Array.new
    Dir.foreach($gr2ncfile_path) { |item|
      file_name.push("#{$gr2ncfile_path}/#{item}") if item =~ /.nc$/
    }
    @data = Ape.new(file_name)
    # tr_tppn
    gphys = @data.gphys_open("tr_tppn").cut(true,0,true)
    lost_axes = gphys.lost_axes.to_s.sub("y=","lat=")
    gphys = gphys[true,-401..-1].set_lost_axes(lost_axes)

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

    gphys = gphys.lon_lotate

=begin

	mkfig_plot(gphys[0..479,-121..-1].rename("tr_tppn_30day_1"))
	mkfig_plot(gphys[480..-1,-121..-1].rename("tr_tppn_30day_2"))
	mkfig_plot(gphys[0..479,-241..-121].rename("tr_tppn_30day_3"))
	mkfig_plot(gphys[480..-1,-241..-121].rename("tr_tppn_30day_4"))
	mkfig_plot(gphys[0..479,-361..-241].rename("tr_tppn_30day_5"))
	mkfig_plot(gphys[480..-1,-361..-241].rename("tr_tppn_30day_6"))

	mkfig_plot(gphys[0..239,-61..-1].rename("tr_tppn_15day_1"))
	mkfig_plot(gphys[240..479,-61..-1].rename("tr_tppn_15day_2"))
	mkfig_plot(gphys[480..719,-61..-1].rename("tr_tppn_15day_3"))
	mkfig_plot(gphys[720..-1,-61..-1].rename("tr_tppn_15day_4"))

	mkfig_plot(gphys[0..239,-121..-61].rename("tr_tppn_15day_5"))
	mkfig_plot(gphys[240..479,-121..-61].rename("tr_tppn_15day_6"))
	mkfig_plot(gphys[480..719,-121..-61].rename("tr_tppn_15day_7"))
	mkfig_plot(gphys[720..-1,-121..-61].rename("tr_tppn_15day_8"))

	mkfig_plot(gphys[0..239,-181..-121].rename("tr_tppn_15day_9"))
	mkfig_plot(gphys[240..479,-181..-121].rename("tr_tppn_15day_10"))
	mkfig_plot(gphys[480..719,-181..-121].rename("tr_tppn_15day_11"))
	mkfig_plot(gphys[720..-1,-181..-121].rename("tr_tppn_15day_12"))

	mkfig_plot(gphys[0..239,-241..-181].rename("tr_tppn_15day_13"))
	mkfig_plot(gphys[240..479,-241..-181].rename("tr_tppn_15day_14"))
	mkfig_plot(gphys[480..719,-241..-181].rename("tr_tppn_15day_15"))
	mkfig_plot(gphys[720..-1,-241..-181].rename("tr_tppn_15day_16"))

	mkfig_plot(gphys[0..239,-301..-241].rename("tr_tppn_15day_17"))
	mkfig_plot(gphys[240..479,-301..-241].rename("tr_tppn_15day_18"))
	mkfig_plot(gphys[480..719,-301..-241].rename("tr_tppn_15day_19"))
	mkfig_plot(gphys[720..-1,-301..-241].rename("tr_tppn_15day_20"))

	mkfig_plot(gphys[0..239,-361..-301].rename("tr_tppn_15day_21"))
	mkfig_plot(gphys[240..479,-361..-301].rename("tr_tppn_15day_22"))
	mkfig_plot(gphys[480..719,-361..-301].rename("tr_tppn_15day_23"))
	mkfig_plot(gphys[720..-1,-361..-301].rename("tr_tppn_15day_24"))
=end

#	mkfig_plot(gphys[0..479,-121..-1].rename("tr_tppn_30day_1_mono"))
#	mkfig_plot(gphys.rename("tr_tppn_mono").set_lost_axes(""))
	mkfig_plot(gphys[480..-1,-121..-1].rename("tr_tppn_30day_2_mono"))

  end
  
  def __tr_T319_marge(name)
    
    x_size = NArray.sfloat(960).indgen*360.0/960
    t_size = NArray.sfloat(1440).indgen*1.0/4.0 + 0.25
    
    # 軸
    x = VArray.new(x_size).rename("lon").put_att("units","degrees_east")
    t = VArray.new(t_size).rename("time").put_att("units","days since 0000-01-01")
    x = Axis.new().set_pos(x)
    t = Axis.new().set_pos(t)
    grid = Grid.new(x,t)
    
    data = NArray.sfloat(960,1440).indgen * 0.0
    
    file1 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0031.nc")
    file2 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0032.nc")
    file3 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0033.nc")
    file4 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0034.nc")
    file5 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0035.nc")    
    file6 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0036.nc")
    file7 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0037.nc")
    file8 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0038.nc")
    file9 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0039.nc")
    file10 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0040.nc")
    file11 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0041.nc")
    file12 = Ape.new("#{$ncfile_path}#{$groupid}_TR_#{$expID}_0042.nc")

    gphys = file1.gphys_open(name).cut(true,0,true)
    data[true,0..119] = gphys.data.val
    gphys = file2.gphys_open(name).cut(true,0,true)
    data[true,120..239] = gphys.data.val
    gphys = file3.gphys_open(name).cut(true,0,true)
    data[true,240..359] = gphys.data.val
    gphys = file4.gphys_open(name).cut(true,0,true)
    data[true,360..479] = gphys.data.val
    gphys = file5.gphys_open(name).cut(true,0,true)
    data[true,480..599] = gphys.data.val
    gphys = file6.gphys_open(name).cut(true,0,true)
    data[true,600..719] = gphys.data.val
    gphys = file7.gphys_open(name).cut(true,0,true)
    data[true,720..839] = gphys.data.val
    gphys = file8.gphys_open(name).cut(true,0,true)
    data[true,840..959] = gphys.data.val
    gphys = file9.gphys_open(name).cut(true,0,true)
    data[true,960..1079] = gphys.data.val
    gphys = file10.gphys_open(name).cut(true,0,true)
    data[true,1080..1199] = gphys.data.val
    gphys = file11.gphys_open(name).cut(true,0,true)
    data[true,1200..1319] = gphys.data.val
    gphys = file12.gphys_open(name).cut(true,0,true)
    data[true,1320..1439] = gphys.data.val
    
    data = VArray.new(data).rename("#{name}").
      put_att("units",gphys.data.get_att("units")).
      put_att("ape_name",gphys.data.get_att("ape_name"))
    data = GPhys.new( grid, data)

    return data
  end

end

class APE

  def plot_main(gphys, gphys_u=nil, gphys_v=nil)

    # attribute の long_name を消す (タイトル描画位置の都合)
    if gphys.data.get_att("long_name")
      gphys = gphys.set_att("long_name","")
    end

    grid =
      Axis.new().
      set_pos( VArray.new(NArray[-180,180]).rename("lon") )
    grid = Grid.new(grid)
    $hojyosen = VArray.new(NArray[20,48]).rename("hojyosen") 
    $hojyosen = GPhys.new( grid, $hojyosen )
    puts "testtest"

    GGraph.set_fig($fig_set_hash)
    GGraph.tone( gphys, true , $tone_hash ) 
    GGraph.line( $hojyosen, false, "index"=> 2 )

    # タイトル
    tani = "(#{gphys.data.get_att("units")})"
    DCL::uxsttl("t", tani , -1.0 )
    if  gphys.data.get_att("ape_name") then
      DCL::uxmttl("t", gphys.data.get_att("ape_name").gsub("_", " "), -1.0 ) 
    end

    $file_label = "#{@file}@#{gphys.name}"  if $file_label == "filename"

    # nc ファイル名
    if $gropn == 2
      charsize = 0.79 - $file_label.size * 0.0115 
      DCL::sgtxzv(charsize,0.62,$file_label,0.8 * DCL.uzpget('rsizec1'),0,-1,1)
    else
      charsize = 0.81 - $file_label.size * 0.0095 
      DCL::sgtxzv(charsize,0.6,$file_label,0.8 * DCL.uzpget('rsizec1'),0,-1,1) 
    end

    # トーンバー
    unless gphys.axnames.size == 1
      unless $tone_hash['levels'][0] == $tone_hash['levels'][1] 
	if gphys.name == "comp_tuv_mono"
	else
	  DCL::Util::color_bar($cbar_conf)  unless $tone_flag == false
	end
      end
    end

  end

end
