=begin

=exner-cont.rb

$B%(%/%9%J!<4X?t$N%3%s%?!<?^$rIA$/(B Ruby $B%9%/%j%W%H(B

==USAGE

  exner-cont.rb [option]

==option

  -xt : x-t $B%3%s%?!<?^$rIA$/(B

  -zt : z-t $B%3%s%?!<?^$rIA$/(B

  --ps : $B%]%9%H%9%/%j%W%H%U%!%$%k$K=PNO$9$k(B. dcl.ps $B$H$$$&%U%!%$%kL>$K$J$k(B.

  --without-tone : $B%+%i!<%H!<%s$rIA$+$J$$(B.

  --without-contour : $B%3%s%?!<$rIA$+$J$$(B.

=end

require "numru/gphys"
require "numru/dcl"
require "/home/kitamo/lib/ruby/colorbar" # $B%+%i!<%P!<%b%8%e!<%k(B

include NumRu

##### configure ###########################

p xinterval = 1 # x $BJ}8~$K3J;RE@$r4V0z$/3d9g(B
p yinterval = 1 # y $BJ}8~$K3J;RE@$r4V0z$/3d9g(B

xmin = 0.0      # x $B:BI8$N:G>.CM(B
xmax = 10000.0  # x $B:BI8$N:GBgCM(B
ymin = 0.0      # y $B:BI8$N:G>.CM(B
ymax = 20.0	# y $B:BI8$N:GBgCM(B

valmin = 0.998  # $BJQ?t$N:G>.CM(B
valmax = 1.008  # $BJQ?t$N:GBgCM(B

###########################################

# $B%U%!%$%k%*!<%W%s(B

filename = ARGV[0]
varname = "Exner"
gphys0 = GPhys::NetCDF_IO.open(filename,varname)

# $BJQ?tG[Ns(B, $B:BI8<4>pJs$r<h$j=P$9(B

if ARGV.index("-xt")
  gphys0 = gphys0[0..-1,0,0..-1]
  x_title = "x"
  x_unit = "m"
  y_title = "t"
  y_unit = "s"
elsif ARGV.index("-zt")
  gphys0 = gphys0[0,0..-1,0..-1]
  x_title = "z"
  x_unit = "m"
  y_title = "t"
  y_unit = "s"
else
  gphys0 = gphys0[0..-1,0,0..-1]
end

data0 = gphys0.data.val
xaxis = gphys0.coord(0).val
yaxis = gphys0.coord(1).val

ysize = yaxis.shape[0]-1
xsize = xaxis.shape[0]-1

xaxis1 = NArray.sfloat((xsize+1)/1).fill(0.0)
yaxis1 = NArray.sfloat((ysize+1)/1).fill(0.0)
data1 = NArray.sfloat(xsize+1, (ysize+1)/1).fill(0.0)

# $BIA2h$KMQ$$$k3J;R$r4V0z$/(B 

0.upto(xsize) {|i|
  if (i % xinterval == 0)
    xaxis1[i/xinterval] = xaxis[i]
  end
}
0.upto(ysize) {|i|
  if (i % yinterval == 0)
    yaxis1[i/yinterval] = yaxis[i]
    0.upto(xsize) {|j|
        if (j % xinterval == 0)
        data1[j/xinterval,i/yinterval] = data0[j,i]
      end 
    }
  end
}

# $B=PNO7A<0$r7hDj(B

if ARGV.index("--ps") then
  DCL::gropn(2)
elsif
  DCL::gropn(4)
end

# $BIA2hHO0O$N;XDj(B

vxmin = 0.2
vxmax = 0.8
vymin = 0.2
vymax = 0.8

DCL::sglset("LCNTL", false )
DCL::udlset("LMSG", false )
DCL::uglset("LMSG", false )
DCL::gllset("LMISS", true )

# $B<jF0$G%+%i!<%H!<%s$r;XDj(B
#
#cltstep = 10
#delta = (valmax - valmin) / cltstep
#for k in 1..10
#  tlev1 = valmin + (k-1)*delta
#  tlev2 = tlev1 + delta
#  ipat = (13+8*k)*1000 + 999
#  DCL::uestlv(tlev1,tlev2,ipat)
#end

DCL::grfrm
DCL::grswnd(xmin,xmax,ymin,ymax)
DCL::grsvpt(vxmin,vxmax,vymin,vymax)
DCL::grstrn(1)
DCL::grstrf

DCL::sglset("LCLIP", true )

# $B3J;RE@$N;XDj(B

DCL::uwsgxa(xaxis1)
DCL::uwsgya(yaxis1)

# $B%+%i!<%H!<%sIA2h(B

unless ARGV.index("--without-tone")
  DCL::ueitlv
  DCL::uegtla(valmin, valmax, 0 )
  DCL::uetone(data1)
end

# $B%3%s%?!<IA2h(B

unless ARGV.index("--without-contour")
  DCL::udgcla(valmin, valmax, 0 )
  DCL::udcntz(data1)
end

DCL::ussttl(x_title, x_unit, y_title, y_unit)
DCL::usdaxs
DCL::sglset("LCLIP", false )
i=0
DCL::sgtxzr(vxmax+0.01,vymax-0.03*i,"z=5050 m",0.02,0,-1,1)
DCL::uzrset("ROFFXT", 0.06)
title = "Exner(1)"
DCL::uxsttl("t", title, 0 )


# $B%+%i!<%P!<%b%8%e!<%k$rFI$_9~$`(B

MyTool::colorbar(valmin,valmax)


DCL::grcls