#!/bin/sh
set -e
# add top 3 model levels with zeros for CanAM4.1
# add top 9 model levels with zeros for CanAM4.2

if [ $# -ne 3 ] ; then
  echo "Error in $0: invalid number of arguments $#"
  exit 1
fi

pfx=$1
inp=$2
out=$3

release inp
access  inp ${pfx}_${inp}

stamp=`ggstat inp |grep GRID|head -1|cut -c9-22`
levs=`ggstat inp |grep GRID|head -200|grep "$stamp"|wc -l`

echo "C*SELLEV      1  995" | ccc sellev inp lev1
echo "C*XLIN          0.E0      0.E0" | ccc xlin lev1 lev1zero

if [ $levs -eq 32 ]; then
  printf "C*RELABL\nC*RELABL                       -102" | ccc relabl lev1zero lev1zero1
  printf "C*RELABL\nC*RELABL                       -265" | ccc relabl lev1zero lev1zero2
  printf "C*RELABL\nC*RELABL                       -612" | ccc relabl lev1zero lev1zero3
  rmerge lev3 lev1zero1 lev1zero2 lev1zero3
  murge inp lev3 ${pfx}_${out}

  release inp lev1 lev1zero lev1zero1 lev1zero2 lev1zero3 lev3 .ccc_cards
elif [ $levs -eq 40 ]; then
  printf "C*RELABL\nC*RELABL                       -108" | ccc relabl lev1zero lev1zero1
  printf "C*RELABL\nC*RELABL                       -144" | ccc relabl lev1zero lev1zero2
  printf "C*RELABL\nC*RELABL                       -190" | ccc relabl lev1zero lev1zero3
  printf "C*RELABL\nC*RELABL                       -250" | ccc relabl lev1zero lev1zero4
  printf "C*RELABL\nC*RELABL                       -327" | ccc relabl lev1zero lev1zero5
  printf "C*RELABL\nC*RELABL                       -426" | ccc relabl lev1zero lev1zero6
  printf "C*RELABL\nC*RELABL                       -550" | ccc relabl lev1zero lev1zero7
  printf "C*RELABL\nC*RELABL                       -708" | ccc relabl lev1zero lev1zero8
  printf "C*RELABL\nC*RELABL                       -904" | ccc relabl lev1zero lev1zero9
  rmerge lev9 lev1zero1 lev1zero2 lev1zero3 lev1zero4 lev1zero5 lev1zero6 lev1zero7 lev1zero8 lev1zero9
  murge inp lev9 ${pfx}_${out}

  release inp lev1 lev1zero lev1zero* lev9 .ccc_cards
elif [ $levs -eq 35 -o $levs -eq 49 ]; then
  cp inp ${pfx}_${out}
fi

