#! /usr/bin/ruby
# -*- coding: euc-jp -*-

# == オプション
#
# == USAGE
#   % calc_msf.rb
#
# == 履歴
# * 2014-10-11 石渡正樹 作成

require "/GFD_Dennou_Work3/momoko/SyncRotEarthRad/script/dcpam.rb"
#require "getoptlong"        # for option_parse

    # --------------------------------------------
    def calc_vertintH2OLiq_save(dir) # 可降水量の計算           
      gqv = gpopen dir + "H2OLiq.nc"
      gps = gpopen dir + "Ps.nc"
      sigm = gpopen dir + "H2OLiq.nc","sigm"

      return if gqv.nil? || gps.nil?

      data_name = 'VertIntH2OLiq' 
      ofile = NetCDF.create(dir + data_name + '.nc')
      GPhys::NetCDF_IO.each_along_dims_write([gqv,gps], ofile, 'time') { 
        |h2oliq,ps|  
        
        time = h2oliq.axis("time")    
        
        qc = ps.copy
        qc.units = 'kg.m-2'
        qc.long_name = 'cloud water'
        qc.name = data_name
        qc[false] = 0
        
        alph = h2oliq * ps / Grav 
        kmax = h2oliq.axis("sig").length-1
        for i in 0..kmax
          k = kmax-i
          qc = qc + alph[false,k,true] * (sigm[k].val - sigm[k+1].val) 
        end
        [qc]
      }
      ofile.close
      print "[#{data_name}](#{dir}) is created\n"
    end
    # ---------------------------------------


calc_vertintH2OLiq_save("./")

