#!/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
#
eraRES=$4
#
echo $eraRES
#
TO=$5
#
echo $TO
#
DATDIR=$6
#

echo QUELLE path $QUELLE

#



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

ATMera="ERAin_T63_atm_3d_zon_${ERAystrt}_${ERAylast}_${TYP}.nc"
ATMeralola="ERAin_${RES}_atm_2d_${ERAystrt}_${ERAylast}_${TYP}.nc"
ls -la $ATMeralola

#
###########################################################################
# var.txt input for atm_3d.ncl

ERATIME="(1979-${TO})"

# number of latitudes
echo $ERATIME >>var.txt
nlat=`cdo griddes $ATMera| grep ysize | cut -d"=" -f2`
echo $nlat >>var.txt


LEVELS="100000,92500,85000,77500,70000,60000,50000,40000,30000,25000,20000,15000,10000,7000,5000,3000,1000"
#
CDO=/home/zmaw/m214003/local/thunder/bin/cdo
#
###########################################################################
#
set -ex
#
#
#---interpolate r2b4 to t63 and modellevel to presure level
#
cdo -setpartabn,partab -ap2pl,${LEVELS}   $inDat Uatm_dyn_pl
REMAP_AREA_MIN=0.5
cdo -r remapycon,t63grid   Uatm_dyn_pl Uatm_dyn_t63

rm -f  busy*

#
#-------psi---comput-psi--from--code132--zonal
#
Cvar=va
newCvar=mastrfu
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
cdo -r mastrfu  -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 busy1.nc
cdo -divc,1000000000  busy1.nc  Ubusy_${newCvar}.nc
fi
#
rm -f  busy*
#
#-----code223---Cloud cover-----CMOR: cl --
#
Cvar=cl
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
cdo  -mulc,100 -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi

#
#----code130---Temperature--850 hPa---CMOR: ta ----
#
Cvar=ta
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
cdo subc,273.15 -sellevel,85000 -selvar,${Cvar}  Uatm_dyn_pl Ubusy_${Cvar}_lola.nc
fi
#
rm -f  busy*
#
#----code130--Temperature-850 hPa- (Model-ERAin)---
#
Cvar=ta
if cdo -s showvar -selvar,${Cvar} $ATMeralola > /dev/null
then
cdo  -sellevel,85000 -selvar,${Cvar} $ATMeralola busy2.nc
  if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
  then
   cdo selvar,${Cvar} -sellevel,85000 Uatm_dyn_pl busy1.nc
  fi
cdo sub  busy1.nc busy2.nc  Ubusy_d${Cvar}_lola.nc
fi
#
rm -f  busy*
#
#
#---zg---code156--Geopotential---500 hPa- CMOR: zg*0.1-----
#

Cvar=zg
if cdo -s showvar -selvar,${Cvar}  Uatm_dyn_pl > /dev/null
then
 cdo  -mulc,0.1  -selvar,${Cvar} -sellevel,50000 Uatm_dyn_pl Ubusy_${Cvar}_lola.nc
fi
#
rm -f  busy*
#
#
#----(model-ERAin)----code156--Geopotential-----500 hPa- CMOR: zg*0.1 -----
#--------gpfull * 1/(10 * 9.81)------------
#
#
Cvar=zg
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_pl > /dev/null
then
  cdo  -mulc,0.1  -selvar,${Cvar} -sellevel,50000 Uatm_dyn_pl busy1.nc
  if cdo -s showvar -selvar,${Cvar} $ATMeralola > /dev/null
  then
     cdo -selvar,${Cvar}  $ATMeralola  busy2.nc
     cdo -sub  busy1.nc busy2.nc  Ubusy_d${Cvar}_lola.nc
  fi
fi
#
rm -f  busy*
#
#
#---ERAin-------Geopotential-----500 hPa- ERAin: code129 CMOR: zg-----
#
Cvar=zg
if cdo -s showvar -selvar,${Cvar} $inDat > /dev/null
then
cdo -selvar,${Cvar}  $ATMeralola Ubusy_${Cvar}_erain_lola.nc
fi
#
#
#
#----code130--TA- Temperature---ZONAL--CMOR: ta ---
#
Cvar=ta
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
cdo -zonmean -subc,273.15 -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
#
fi
#
#
#
#----code130-- Temperature- (Model-ERAin)-zonal--CMOR: ta ---
#
Cvar=ta
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -zonmean -sellevel,${LEVELS} -selvar,${Cvar}  Uatm_dyn_t63 busy1
  if cdo -s showvar -selvar,${Cvar} $ATMera > /dev/null
  then
     cdo -sellevel,${LEVELS} -selvar,${Cvar} $ATMera busy2
     cdo sub busy1 busy2 Ubusy_d${Cvar}.nc
  fi
fi
#
rm -f  busy*
#
#
#-----code131--------zonal----CMOR: ua ----
#
Cvar=ua
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi
#
#
#-----code131-----(Model-ERAin)--zonal----CMOR: ua -
#
#
Cvar=ua
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -zonmean -sellevel,${LEVELS} -selvar,${Cvar}  Uatm_dyn_t63 busy1
  if cdo -s showvar -selvar,${Cvar} $ATMera > /dev/null
  then
     cdo  -sellevel,${LEVELS} -selvar,${Cvar} $ATMera busy2
     cdo sub busy1 busy2 Ubusy_d${Cvar}.nc
  fi
fi
#
rm -f  busy*
#
#-----code132---VA-----zonal----CMOR: va ----
#
Cvar=va
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi
#
#
#-----code132----(Model-ERA40)--zonal--CMOR: va -----
#
#
Cvar=va
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -zonmean -sellevel,${LEVELS} -selvar,${Cvar}  Uatm_dyn_t63 busy1
  if cdo -s showvar -selvar,${Cvar} $ATMera > /dev/null
  then
     cdo  -sellevel,${LEVELS} -selvar,${Cvar} $ATMera busy2
     cdo sub busy1 busy2 Ubusy_d${Cvar}.nc
  fi
fi
#
rm -f  busy*
#
#----code133-- -Specific humidity---CMOR: hus ---
#
Cvar=hus
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -mulc,1000 -zonmean -sellevel,${LEVELS} -selvar,${Cvar}  Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi
#
#
#-----code153---Cloud water---ZONAL--CMOR: clw --
#
Cvar=clw
cdo -selvar,clw   Uatm_dyn_t63 busy99
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -mulc,1000000 -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi
#
#-----code154---Cloud ice---ZONAL-CMOR: cli ---
#
Cvar=cli
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -mulc,1000000 -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi
#
#-----code153 + code154---Cloud ice + Cloud water --ZONAL--CMOR:clw+cli --
#
Cvar=clw_cli
if cdo -s showvar -selvar,clw Uatm_dyn_t63 > /dev/null
then
  cdo -mulc,1000000 -zonmean -sellevel,${LEVELS} -selvar,clw  Uatm_dyn_t63 busy1.nc
  if cdo -s showvar -selvar,cli Uatm_dyn_t63 > /dev/null
  then
    cdo -mulc,1000000 -zonmean -sellevel,${LEVELS} -selvar,cli  Uatm_dyn_t63 busy2.nc
    cdo add busy1.nc busy2.nc Ubusy_${Cvar}.nc
  fi
fi
rm -f  busy*
#
#-----code157--Relative humidity-------zonal----CMOR: hur ----
#
Cvar=hur
if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -mulc,100 -zonmean -sellevel,${LEVELS} -selvar,${Cvar} Uatm_dyn_t63 Ubusy_${Cvar}.nc
fi
#
#
#-----code157--Relative humidity---(Model-ERAin)--zonal----CMOR: hur -
#
#
Cvar=hur

if cdo -s showvar -selvar,${Cvar} Uatm_dyn_t63 > /dev/null
then
  cdo -mulc,100 -zonmean -sellevel,${LEVELS} -selvar,${Cvar}  Uatm_dyn_t63 busy1
  if cdo -s showvar -selvar,${Cvar} $ATMera > /dev/null
  then
     cdo -sellevel,${LEVELS} -selvar,${Cvar} $ATMera busy2
     cdo sub busy1 busy2 Ubusy_d${Cvar}.nc
  fi
fi
#
rm -f  busy*
#
rm Uatm_dyn_t63
exit
