#!/bin/sh

# ICON
#
# ------------------------------------------
# Copyright (C) 2004-2026, DWD, MPI-M, DKRZ, KIT, ETH, MeteoSwiss
# Contact information: icon-model.org
# See AUTHORS.TXT for a list of authors
# See LICENSES/ for license information
# SPDX-License-Identifier: BSD-3-Clause
# ------------------------------------------

set -ex
#
TYP=$1
echo $TYP
#
NAME=$2
#
RES=$3
#
echo $RES
#
DATDIR=$4
#

echo QUELLE path $QUELLE

#

   cdo=/client/bin/cdo

#
inDat="${DATDIR}/${NAME}_atm_2d_ml.nc"

ERAinDat="ERAin_${RES}_atm_2d_${ERAystrt}_${ERAylast}_${TYP}.nc"

#
###########################################################################
# var.txt input for atm_phy.ncl

ERATIME="(${ERAystrt}_${ERAylast})"
echo $ERATIME >>var.txt

#
###########################################################################
#
#
set +e

#----code164---Total cloud cover----- CMOR: clt--------------
#
Cvar=clt
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo  -mulc,100.  -selvar,${Cvar} $inDat Ubusy_${Cvar}.nc
fi
#
#----code180 Zonal wind stress-- CMOR: tauu---
#
Cvar=tauu
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
#---only sea
  cdo -setrtoc,-3,-0,1 -setvrange,-3,-0  -selvar,cell_sea_land_mask $GrdInfoFile busy2.nc
  cdo -mulc,1000. -mul  -selvar,${Cvar} $inDat  busy2.nc Ubusy_${Cvar}.nc
fi

rm -f  busy*


#
#----code4--- Total precipitation-- CMOR: pr--
#
Cvar=pr
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo -mulc,86400 -selvar,${Cvar} $inDat Ubusy_${Cvar}.nc
fi
#
#
#----code230 -- Column water vapour -CMOR: prw-
#
Cvar=prw
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
cdo -selvar,${Cvar} $inDat Ubusy_${Cvar}.nc
fi
#
#----code167---2m Temperature---ERAin-CMOR: tas-
#
Cvar=tas
if cdo -s showvar -selvar,${Cvar} $ERAinDat > /dev/null
then
  cdo -subc,273.15 -selvar,${Cvar}  $ERAinDat Ubusy_${Cvar}_ERAin.nc
fi
#
#
#----code167---2m Temperature---CMOR: tas-
#
Cvar=tas
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo -subc,273.15 -selvar,${Cvar}  $inDat Ubusy_${Cvar}.nc
fi
#
#
#----code167---2m Temperature---ERAin-CMOR: tas-(model-ERAin)
#
Cvar=tas
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  if cdo -s showvar -selvar,${Cvar} $ERAinDat > /dev/null
  then
   cdo sub  -selvar,${Cvar} $inDat  -selvar,${Cvar}  $ERAinDat Ubusy_${Cvar}_erain.nc
fi
fi
#
#
#----code151---Sea level pressure---CMOR: psl-
#
Cvar=psl
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo -mulc,0.01  -selvar,${Cvar} $inDat Ubusy_${Cvar}.nc
fi

#
#
#----code151---Sea level pressure---CMOR: psl-(model-ERAin)
#

Cvar=psl
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  if cdo -s showvar -selvar,${Cvar} $ERAinDat > /dev/null
  then
     cdo sub -mulc,0.01  -selvar,${Cvar} $inDat -mulc,0.01 -selvar,${Cvar} $ERAinDat Ubusy_${Cvar}_erain.nc
fi
fi
#
#
#----code180---Zonal wind stress---(model-ERAin)---CMOR: tauu-
#
Cvar=tauu
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
#---only sea
  cdo -setrtoc,-3,-0,1 -setvrange,-3,-0  -selvar,cell_sea_land_mask $GrdInfoFile sea.nc

  cdo -mulc,1000. -mul -selvar,${Cvar} $inDat sea.nc   busy.nc

  if cdo -s showvar -selvar,${Cvar} $ERAinDat > /dev/null
  then

    cdo -mulc,1000. -mul -selvar,${Cvar} $ERAinDat sea.nc busy_erain.nc
    cdo sub busy.nc busy_erain.nc Ubusy_d${Cvar}.nc
  fi
fi
rm -f  busy*

#
#----code230 -- Column water vapour -ERAin code137---CMOR: prw--
#

Cvar=prw
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo -selvar,${Cvar} $inDat busy1
  if cdo -s showvar -selvar,${Cvar} $ERAinDat > /dev/null
  then
    cdo -selvar,${Cvar} $ERAinDat busy2
    cdo sub busy1 busy2 Ubusy_d${Cvar}.nc
  fi
fi
rm -f  busy*

#
#
#----code231+code150---Liquid water + ice content- clivi+cllvi=clwvi ---
#
Cvar=clivi
Cvar2=cllvi
CvarNew=clwvi
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo  -selvar,${Cvar} $inDat busy1.nc
  if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
  then
    cdo  -selvar,${Cvar2} $inDat busy2.nc
    cdo  -chname,${Cvar},${CvarNew} -smooth9 -mulc,1000. -add busy1.nc busy2.nc Ubusy_${CvarNew}.nc
fi
fi
rm -f  busy*
#
#----code169---Sea surface temperature---
#
Cvar=ts
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
  cdo -subc,273.15  -selvar,${Cvar}   $inDat Ubusy_${Cvar}.nc
fi


exit
