#!/usr/bin/env ruby

require "numru/ggraph"
require "getoptlong"
include NumRu

###
###引数処理
###
parser = GetoptLong.new
parser.set_options(
                   ###    global option   ###
                   ['--num',         GetoptLong::REQUIRED_ARGUMENT],
                   ['--delt',        GetoptLong::REQUIRED_ARGUMENT],
                   ['--range',       GetoptLong::REQUIRED_ARGUMENT],
                   ['--aspect',      GetoptLong::REQUIRED_ARGUMENT],
                   ['--int',         GetoptLong::REQUIRED_ARGUMENT],
                   ['--MaxTone',     GetoptLong::REQUIRED_ARGUMENT],
                   ['--MaxLine',     GetoptLong::REQUIRED_ARGUMENT],
                   ['--X',           GetoptLong::REQUIRED_ARGUMENT],
                   ['--T',           GetoptLong::REQUIRED_ARGUMENT],
                   ['--dump',         GetoptLong::NO_ARGUMENT],
                   ['--nocont',      GetoptLong::NO_ARGUMENT]
                   )
begin
  parser.each_option do |name, arg|
    eval "$OPT_#{name.sub(/^--/, '').gsub(/-/, '_')} = '#{arg}'" 
  end
rescue
  exit(1)
end

###
### 値の取得
###

var      = "PotTemp"
gphys_pt = GPhys::IO.open( ARGV[0], var )

var     = "Temp"
gphys_t = GPhys::IO.open( ARGV[0], var )

var     = "VelX"
gphys_u = GPhys::IO.open( ARGV[0], var )

var     = "VelZ"
gphys_w = GPhys::IO.open( ARGV[0], var )

var     = "TempBasicZ"
gphys_t0 = GPhys::IO.open( ARGV[0], var )


Time = 4000
u = NArray.float(100, 100)
w = NArray.float(100, 100)

p u.type
p w.type

u = NArray.to_na( gphys_u.cut(true,true,Time) ).to_a
w = NArray.to_na( gphys_w.cut(true,true,Time) ).to_a

p u.size
p w.size

DCL::swpset('IHEIGHT', 500 )
DCL::swpset('IWIDTH',  500 )


if ( $OPT_dump )
  DCL.gropn( 2 )
else
  DCL.gropn( 1 )
end

DCL.sgpset('lfull',true) 
DCL.sgpset('lfprop',true) 
#DCL.sglset('lclip',true)
DCL.sgpset('lcntl', false) 

DCL.uzfact(0.75)


# ベクトル図を重ね描き
DCL::uglset('LNRMAL', false)
#DCL::ugrset('XFACT1', 10E-6*100) # ベクトルファクター
#DCL::ugrset('YFACT1', 15.0*1000) # ベクトルファクター
DCL::uglset('LUNIT', true)
#DCL::ugrset('VXUNIT', 0.04) # 単位ベクトルの長さ
#DCL::ugrset('VYUNIT', 0.04) # 単位ベクトルの長さ
#DCL::ugrset('VXUOFF', 0.02) # 単位ベクトルの位置

DCL::ugvect( u, w )

DCL.grcls
