#!/bin/sh
set -ex
# compute surface altitude, m

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

pfx=$1
phis=$2
desc=$3
out=$4

release phis desc
access  phis  ${pfx}_${phis}
access  desc  ${pfx}_${desc}

if [[ $(ggstat desc|grep MASK) ]]; then
  # for CanESM2; mask is land-sea mask
  echo "C*RCOPY            1         1" | ccc rcopy phis phis1
  echo "C*XLIN       9.80616        0.         1" | ccc xlin phis1 zs
  echo "C*SELECT.  STEP         0         0    1         1    1 NAME MASK" | ccc select desc mask
  # set to 0 over oceans, lakes are unchanged
  echo "C* FMSKPLT        -1 NEXT   NE      0.00    1     0.E00    1    1" | ccc fmskplt zs ${pfx}_${out} mask
  # # this set 0 over lakes as well
  # echo "C* FMSKPLT        -1 NEXT   EQ      -1.0    1     0.E00    1    1" | ccc fmskplt zs ${pfx}_${out} mask
  
  release phis desc phis1 zs mask
else
  # for CanESM5; convert the units into m
  echo "C*RCOPY            1         1" | ccc rcopy phis phis1
  echo "C*XLIN       9.80616        0.         1" | ccc xlin phis1 ${pfx}_${out}

  release phis desc phis1 
fi
