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

pfdir = "."

press = [1000e2, 300e2, 100e2, 30e2, 10e2, 3e2, 1e2, 0]


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

def prepare_vars( spenc, press, vname, flagpress = true )

  path = spenc
  gp = GPhys::NetCDF_IO.open( path, vname )

  if flagpress then
    gp0 = gp.cut("Press"=>press)
  else
    gp0 = gp
  end
  gp0 = gp0.copy

  gp0 = gp0 * 1e2

#  namelev = "WaveNum"
#  wn = gp.coord(namelev)
#  gp0 = gp0 * wn

  namelev = "WaveNum"
  z = gp.axis(namelev).pos.convert_units( Units['cm-1'] )
  z.long_name = 'wavenumber'
  gp0.axis(namelev).set_pos(z)

  gp0.long_name = "flux"


  if flagpress then
    gpwl0 = gp.cut("Press"=>press)
  else
    gpwl0 = gp
  end
  gpwl0 = gpwl0.copy
  gpwl0 = mkwlobj( gpwl0 )

#  return gp0
  return gpwl0
end

def mkwlobj( gp )

  namelev = "WaveNum"
  wn = gp.coord(namelev)

  gp = gp.copy
  wl = 1.0/wn

  gp = gp / wl**2
#  gp = gp * wl

  gp = gp * 1e-6
  gp.units = 'W m|-2"' + DCL::csgi(163)+'m|-1"'

#  wl = wl.convert_units( Units['micron'] )
  wl.long_name = "wavelength"
  vawl = wl.convert_units( Units['micron'] )
#  vawl = VArray.new( wl.val, { "long_name"=>'wavelength', "units"=>wl.units.to_s }, namelev )
  gp.axis(namelev).set_pos(vawl)

  z = gp.axis(namelev).pos
  z.units = DCL::csgi(163)+'m'
  gp.axis(namelev).set_pos(z)

  gp.long_name = "flux density"

  return gp
end
################################################


print "1: Display,  2: File\n"
citr = gets
citr = citr.chomp!
DCL.gropn(citr.to_i)
#DCL.gropn(1)

#DCL.gropn(-1)
#DCL.gropn(-2)

#DCL.sldiv('y',1,4)
DCL.sgpset('lcntl',false)
DCL.sgpset('lfull',true)
DCL.uzfact(0.5)
DCL.sgpset('lfprop',true)
DCL.sglset('LCLIP', true)
DCL.sglset('LCNTL', true)

vname = "InFlux"
path = pfdir + "/" + "solar_flux.nc"
gppfsun = prepare_vars( path, 0.0, vname, false )
path = pfdir + "/" + "pf6000K.nc"
gppf6000 = prepare_vars( path, 0.0, vname, false )
path = pfdir + "/" + "pf5000K.nc"
gppf5000 = prepare_vars( path, 0.0, vname, false )
path = pfdir + "/" + "pf4000K.nc"
gppf4000 = prepare_vars( path, 0.0, vname, false )
path = pfdir + "/" + "pf3000K.nc"
gppf3000 = prepare_vars( path, 0.0, vname, false )

GGraph.set_fig 'itr'=> 1, 'viewport'=>[0.25,0.8,0.1,0.6], 'window'=>[0,3,0,25e2]

GGraph.line( gppfsun , true, 'title'=>'' )
GGraph.line( gppf6000, false, 'index'=>20 )
GGraph.line( gppf5000, false, 'index'=>30 )
GGraph.line( gppf4000, false, 'index'=>40 )
GGraph.line( gppf3000, false, 'index'=>60 )

DCL.grcls
