#!/usr/bin/env ruby
require "getopts"
require "numru/netcdf"
module NumRu
  class NetCDFVar
    alias put scaled_put
    alias get scaled_get
  end
end
require "numru/ggraph"
include NumRu

#----------------------------------------#
#                $B@_DjItJ,(B                #
#----------------------------------------#

  n = 200      # grid number
  k = 2        # wave number
  w = 1        # frequency
  maxdeg = NMath::PI  # 

#----------------------------------------#
#                $B4X?t@8@.(B                #
#----------------------------------------#

  nax = (NArray.float(n).indgen!)           #[-pi, ... +pi]
  nat = NArray.sint(n).indgen!              #[1, 2, 3, ... ]

p  naxk = nax.to_f*2*NMath::PI/n
p  natk = nat.to_f*2*NMath::PI/n

#^^^^^^^^^^^^^^^^^^^^^^^
ax = NArray.float(n, n)

for i in 0..n-1
  ax[true, i] = k*naxk - 2*w*natk[i]
end
#^^^^^^^^^^^^^^^^^^^^^^^
bx = NArray.float(n, n)

for i in 0..n-1
  bx[true, i] = k*naxk + w*natk[i]
end


cos = NMath::sin(ax) #+ NMath::sin(bx)

vx = VArray.new(nax).rename("lat")
vt = VArray.new(nat).rename("t")

vax = Axis.new().set_pos(vx)
vat = Axis.new(true).set_cell_guess_bounds(vt).set_pos_to_center
grid = Grid.new(vax, vat)
data = VArray.new(cos).rename("wave")
p gphys = GPhys.new(grid, data)


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

file = NetCDF.create('test.nc')
GPhys::NetCDF_IO.write(file, gphys)
file.close

exit

