#!/bin/ksh +x
#**********************************#
#                                  #
#     Horizontal_Decomposition     #
#                                  #
#**********************************#
#
if [ "${1}" = "-h" ]
then
  echo " "
  echo " Performs the Hoziontal Modal Decomposition and Generate Files with"
  echo " Modal Hoziontal Energy and Normalized Zonal Wind, Meridional Wind"
  echo " and Geopotential Height"
  echo " "
  echo " Usage:"
  echo " ./Run_HDecomp caso [epoca] [CaseStudy] [Mean] [Mmax]"
  echo " "
  echo " Default:"
  echo " caso = MONAN ; epoca = 1 ; CaseStudy = ZCAS ; Mean = no ; Mmax = 126"
  echo " "
  echo " caso : four letters case identifier"
  echo " epoca : number idenfying the datei and datef (default = 1)"
  echo " CaseStudy : Name of the Case Study (default = ZCAS)"
  echo " Mean : yes if the input is a time mean or no (default) otherwise"
  echo " Mmax : Rhomb+1 (even), Rhomb is the zonal wave truncation (Rhomb odd number)"
  echo "        is the total number of zonal waves plus the zonal mean (+1)"
  echo " "
  exit
fi
#
if [ -z "${1}" ]
then
  caso='MONAN'
else
  caso=${1}
fi
if [ -z "${2}" ]
then
  epoca=1
else
  epoca=${2}
fi
if [ -z "${3}" ]
then
  csst='ZCAS'
else
  csst=${3}
fi
if [ -z "${4}" ]
then
  mn=''
else
  mn=${4}
fi
if [ -z "${5}" ]
then
  Mmax=126
else
  Mmax=${5}
fi
#
dircfg='../../Config/'
. ${dircfg}Config_Dir
. ${dircfg}Reference_Case
#
if [ "${mn}" != "yes" ]
then
  mn='no'
fi
if [ "${mn}" = "yes" ]
then
  fileg=${dircfg}'Dates_'${csst}'_mean.dgs'
else
  fileg=${dircfg}'Dates_'${csst}'.dgs'
fi
echo " "
echo " fileg = ${fileg}"
set -A vars `cat ${fileg}`
let nd=vars[0]
if [ ${epoca} -lt 1 ]
then
  echo " "
  echo " Wrong epoca : ${epoca}"
  echo " Must be >= 1 and <= ${nd}"
  echo " "
  exit 1
fi
if [ ${epoca} -gt ${nd} ]
then
  echo " "
  echo " Wrong epoca : ${epoca}"
  echo " Must be >= 1 and <= ${nd}"
  echo " "
  exit 2
fi
echo " "
ne=1
na=1
while [ ne -le nd ]
do
  let epoch=vars[na]
  let datei=vars[na+1]
  let datef=vars[na+2]
  if [ "${epoch}" -eq "${epoca}" ]
  then
    echo " epoch = ${epoch}  datei = ${datei}  datef = ${datef}"
    break
  fi
  let na=na+3
  let ne=ne+1
done
echo " epoca = ${epoca}  datei = ${datei}  datef = ${datef}"
echo " "
#
rm -f ./NameList
#
set -x
#
cat << eot > ./NameList
 &drhnml
  csvm='${csvm}',
  Kmax=${Kmax},
  caso='${caso}',
  datei='${datei}',
  datef='${datef}',
  Mmax=${Mmax},
  dirhgf='${dirhgfcfg}',
  dirvmd='${dirvmdcfg}',
  dirvdo='${dirvdocfg}',
  dirhdo='${dirhdocfg}'
 /
eot
#
typeset -Z3 kmx
kmx=${Kmax}
typeset -Z4 mmx1
let mmx1=${Mmax}-1
Trunc=RB${mmx1}L${kmx}
ext=${Trunc}_${caso}_${datei}_${datef}.out
out=../output/Horizontal_Decomposition_${ext}
#
rm -f ${out}
time ../bin/Horizontal_Decomposition.bin > ${out}
#
#rm -f ./NameList
#
