# -*- coding: utf-8 -*-
require "numru/ggraph"
require "date"
include NumRu 

# ファイル名読み込み
restart_filename = '../test_restart_rank000000.nc'
#restart_filename = 'BS1998_restart_rank000000.nc'
varname=ARGV[0].to_s
varunit=ARGV[1].to_s

#varname = 'DensBZ'
#varname = 'PressBZ'
#varname = 'ExnerBZ'
var0 = GPhys::IO.open( restart_filename, varname ).val
var0 = var0[5..204,0..-1,5..104]
new_filename = "restart_long-#{varname}.nc"

# 拡張後の配列数
nx = 1200
ny = 1
nz = 100
node = 6
xlength = 180000.0 # 総水平距離
ylength = 100.0
zlength = 20000.0

nx_par_node = nx / node

x_X = VArray.new( NArray.sfloat(nx).indgen(100, xlength / nx), \
                  {"long_name"=>"x-coordinate", "units"=>"m"}, \
                  "x" )

x = Axis.new.set_pos(x_X)

y_Y = VArray.new( NArray.sfloat(ny).indgen(ylength / ny), \
                  {"long_name"=>"y-coordinate", "units"=>"m"}, \
                  "y" )

y = Axis.new.set_pos(y_Y)

z_Z = VArray.new( NArray.sfloat(nz).indgen(100, zlength / nz), \
                  {"long_name"=>"z-coordinate", "units"=>"m"}, \
                  "z" )

z = Axis.new.set_pos(z_Z)

#data = VArray.new( NArray.sfloat(nx,ny,nz).indgen, \
#                   {"long_name"=>"Potential Temperature", "units"=>"K"}, \
#                   "PTempBZ")
data = VArray.new( NArray.sfloat(nx,ny,nz).indgen, \
#                   {"long_name"=>"ExnerBZ", "units"=>"1"}, \
                   {"long_name"=>"#{varname}", "units"=>"#{varunit}"}, \
#                   {"long_name"=>"DensBZ", "units"=>"kg.m-3"}, \
                     "#{varname}")
#                   "ExnerBZ")
#                   "DensBZ")
for i in 0..nx-1 do
  for k in 0..node-1 do
    if ((nx_par_node * k) <= i and i <= (nx_par_node * ( k +1 ) - 1) ) then
      for j in 0..nz-1 do
        data[i,0,j] = var0[i - (nx_par_node * k),0,j]
      end
    end
  end
end

gphys = GPhys.new( Grid.new(x, y, z), data)
file = NetCDF.create("#{new_filename}")
GPhys::NetCDF_IO.write(file, gphys)
file.close

