#!/usr/bin/ruby
require "numru/ggraph"
include NumRu

dir = "../out_dwn100"
iBand = 17
iLoop = 9

fn = sprintf( "Flux-%02d-%02d.nc", iBand, iLoop )
path = dir + "/" + fn
vname = 'r_RadFluxUp'
gpupfl = GPhys::NetCDF_IO.open( path, vname )
vname = 'r_RadFluxDn'
gpdnfl = GPhys::NetCDF_IO.open( path, vname )
vname = 'z_DTempDt'
gptend = GPhys::NetCDF_IO.open( path, vname )

fn = sprintf( "Flux-%02d-%02d.nc", 17, 0 )
path = dir + "/" + fn
vname = 'r_RadFluxUp'
ref_gpupfl = GPhys::NetCDF_IO.open( path, vname )
vname = 'r_RadFluxDn'
ref_gpdnfl = GPhys::NetCDF_IO.open( path, vname )
vname = 'z_DTempDt'
ref_gptend = GPhys::NetCDF_IO.open( path, vname )


DCL.gropn(1)
DCL.sldiv('y',4,2)
DCL.sgpset('lcntl',false)
DCL.sgpset('lfull',true)
DCL.uzfact(1.5)
DCL.sgpset('lfprop',true)

svx1 = 0.15; svx2 = 0.6; svy1 = 0.2; svy2 = 0.8

def graph_flux( svx1, svx2, svy1, svy2, gpupfl, gpdnfl, flaglog, flagdiff )

  x1 = 0; x2 = 500; y1 = 1.05e5; y2 = 0
  itr = 1
  if flaglog then
    y2 = 7e2
    itr = 2
  end
  if flagdiff then
    x1 = -5; x2 = 5
  end

  GGraph.set_fig 'itr'=>itr, 'viewport'=>[svx1,svx2,svy1,svy2], 'window'=>[x1,x2,y1,y2]
  gpout = gpupfl.cut('r_Press'=>y1..y2)
  GGraph.line( gpout, true , "exchange"=>true, "index"=>20 )
  gpout = gpdnfl.cut('r_Press'=>y1..y2)
  GGraph.line( gpout, false, "exchange"=>true, "index"=>40 )

end

def graph_tendency( svx1, svx2, svy1, svy2, gp, flaglog, flagdiff )

  gp = gp * 86400.0
  gp.units = "K (day)-1"

  x1 = -5; x2 = 5; y1 = 1.05e5; y2 = 0
  itr = 1
  if flaglog then
    y2 = 7e2
    itr = 2
  end
  if flagdiff then
    x1 = -0.5; x2 = 0.5
  end

  GGraph.set_fig 'itr'=>itr, 'viewport'=>[svx1,svx2,svy1,svy2], 'window'=>[x1,x2,y1,y2]
  GGraph.line( gp, true , "exchange"=>true, "index"=>1 )

end



# flux linear
graph_flux( svx1, svx2, svy1, svy2, gpupfl, gpdnfl, false, false )

# flux diff. linear
graph_flux( svx1, svx2, svy1, svy2, gpupfl-ref_gpupfl, gpdnfl-ref_gpdnfl, false, true )

# flux log
graph_flux( svx1, svx2, svy1, svy2, gpupfl, gpdnfl, true, false )

# flux diff. log
graph_flux( svx1, svx2, svy1, svy2, gpupfl-ref_gpupfl, gpdnfl-ref_gpdnfl, true, true )


# tendency linear
graph_tendency( svx1, svx2, svy1, svy2, gptend, false, false )

# tendency diff. linear
graph_tendency( svx1, svx2, svy1, svy2, gptend-ref_gptend, false, true )

# tendency log
graph_tendency( svx1, svx2, svy1, svy2, gptend, true, false )

# tendency diff. log
graph_tendency( svx1, svx2, svy1, svy2, gptend-ref_gptend, true, true )

DCL.grcls
