# -*- coding: euc-jp -*-
# Title: Ruby script drawing contour map for deepconv/arare5 output data 
#
# History: 2011/09/27 (Masatsugu Odaka)
#
require "numru/ggraph"

module NumRu
  class GPhys
    def deriv(dim)
      dim = dim_index(dim)    # input dim can be a String or an Integer
      x = axis(dim).to_gphys
      a = [true]*dim + [1..-1,false]
      b = [true]*dim + [0..-2,false]
      dydx = ( self[*a] - self[*b] ) / ( x[1..-1] - x[0..-2] )
      xi = ( x[1..-1] + x[0..-2] ) / 2
      dydx.axis(dim).set_pos(xi.coord(0))
      dydx.long_name = "d #{name}/d #{x.name}"
      dydx
    end
  end
end


include NumRu

filedir = "time_000000000-000080000"
filehead = "BS1998_"
cuttime = 200..80000
kappa = 155.0
comax =5.0e-7
comin = -5.0e-7
#comax =0.000010
#comin = -0.0000030
#file0 = 'BS1998_restart_rank000000.nc'
dens_file = 'restart_long-DensBZ.nc'
ptemp0_file = "../#{filedir}/#{filehead}PTemp_rank000000.nc"
ptemp1_file = "../#{filedir}/#{filehead}PTemp_rank000001.nc"
ptemp2_file = "../#{filedir}/#{filehead}PTemp_rank000002.nc"
ptemp3_file = "../#{filedir}/#{filehead}PTemp_rank000003.nc"
ptemp4_file = "../#{filedir}/#{filehead}PTemp_rank000004.nc"
ptemp5_file = "../#{filedir}/#{filehead}PTemp_rank000005.nc"

adv0_file = "../#{filedir}/#{filehead}PTempAdv_rank000000.nc"
adv1_file = "../#{filedir}/#{filehead}PTempAdv_rank000001.nc"
adv2_file = "../#{filedir}/#{filehead}PTempAdv_rank000002.nc"
adv3_file = "../#{filedir}/#{filehead}PTempAdv_rank000003.nc"
adv4_file = "../#{filedir}/#{filehead}PTempAdv_rank000004.nc"
adv5_file = "../#{filedir}/#{filehead}PTempAdv_rank000005.nc"


ptemp  = GPhys::IO.open([ptemp0_file, \
                         ptemp2_file, \
                         ptemp1_file, \
                         ptemp3_file, \
                         ptemp4_file, \
                         ptemp5_file ], \
                        'PTemp')

adv    = GPhys::IO.open([adv0_file, \
                         adv2_file, \
                         adv1_file, \
                         adv3_file, \
                         adv4_file, \
                         adv5_file ], \
                        'PTempAdv')


densBZ  = GPhys::IO.open(dens_file, 'DensBZ')



adv_rho = densBZ * adv

adv_XYZmean = adv_rho.mean('x').mean('y').mean('z')





DCL.gropn(4)
#var0 = var0[5..104,0..-1,5..104]
#VarAll = var0.cut(true,true,true,0.0) + var_base

GGraph.line( adv_XYZmean.cut('t'=>cuttime), 
             true, 'exchange'=>false ,
             'index'=>22, 'type'=>1, 'label'=>'adv',
             'title'=>'Mean Potemtial Temp.',
             'max'=>comax, 'min'=>comin)    

DCL.grcls
