Project

General

Profile

RE: Calculate area-weighted area-mean temperature of a re... » test_oce_mean.sh

script - Joakim Kjellsson, 2018-09-02 13:29

 
#!/bin/bash

module load cdo nco

# Input
EXPID=FOCI1.9-JK002d
ODIR=/gfs2/work/shkjocke/models/foci1.9.4-openifs/experiments/${EXPID}/outdata/nemo/
CDIR=/gfs2/work/shkjocke/models/foci1.9.4-openifs/experiments/${EXPID}/outdata/oasis3mct/
YEAR0=1950
YEAR1=1950

# Set grid cell areas
GRID_FILE="nemo_grids.nc"
AREA_FILE="nemo_areas.nc"
cdo -O selname,opat.lon,opat.lat $CDIR/grids.nc $GRID_FILE
cdo -O selname,opat.srf $CDIR/areas.nc $AREA_FILE
ncks -A -v opat.lon,opat.lat $GRID_FILE $AREA_FILE
ncrename -v opat.lat,lat -v opat.lon,lon $AREA_FILE
ncrename -d x_opat,nx -d y_opat,ny $AREA_FILE
ncatted -a units,lon,c,c,"degrees_east" -a units,lat,c,c,"degrees_north" $AREA_FILE
ncatted -a coordinates,opat.srf,c,c,"lon lat" $AREA_FILE

# Loop over each year
for (( year=$YEAR0 ; year<=YEAR1 ; year++ ))
do
MON_T_FILE=${ODIR}/${EXPID}_1m_${year}0101_${year}1231_grid_T.nc
GLOB_MEAN_FILE=${EXPID}_1m_GLOBMEAN_TS_${year}0101_${year}1231_grid_T.nc
NINO34_MEAN_FILE=${EXPID}_1m_NINO34MEAN_TS_${year}0101_${year}1231_grid_T.nc
echo ${MON_T_FILE}
if [ -e "${MON_T_FILE}" ]
then
for region in "GLOB" "NINO34" #"NATL" "SOCE" "TPAC"
do
if [ "${region}" == "NINO34" ]
then
BOX="-170,-120,-5,5"
FILE=$NINO34_MEAN_FILE
else
BOX="-180,180,-90,90"
FILE=$GLOB_MEAN_FILE
fi
REG_AREA_FILE=nemo_reg_area.nc
cdo -O -sellonlatbox,${BOX} $AREA_FILE $REG_AREA_FILE
OPTS="-O -fldmean"
OPTS=${OPTS}" -setgridarea,${REG_AREA_FILE} "
OPTS=${OPTS}" -setmissval,0 "
OPTS=${OPTS}" -selname,sosstsst "
OPTS=${OPTS}" -sellonlatbox,${BOX} "
if [ "${region}" == "NINO34" ]
then
OPTS=${OPTS}" -sellevidx,1,1"
fi
echo "$OPTS"
cdo ${OPTS} ${MON_T_FILE} ${FILE}
echo " Done with $FILE"
done
fi
done

(3-3/5)