nccf_atm_monthly.sh 39.8 KB
Newer Older
		i=$((i+1))
	done
##

    save_final_output $varnew $output
done # loop for variables 
}
####  End of the User Defined Functions  #### 




###################################
####  Main Part of the Script  ####
###################################

# NCO and CDO must be available in $PATH

date

config_file=$1
check_args $@ 
#read config_file and initialize variables
#check config file syntaxis problems
sed -i -e 's/= /=/g' ${config_file}
. ${config_file}

FACTOR=$((NFRP*3600))
ENSEMBLE=${#MEM_LST[@]}
  MEM_LST=( $( ls ${DATADIR}/${EXPID}/original_files/${SDATE} ) ) 
  ENSEMBLE=${#MEM_LST[@]}
  echo "Warning: you passed an empty member list. By default, it will treat all the available members: " ${MEM_LST[@]}
fi
LISTMEMB=( $(echo ${MEM_LST[@]} | sed -e 's/fc//g') ) #member list without "fc"
rm -rf ${WORKDIR}
mkdir -p ${WORKDIR}
if [[ ! -d ${WORKDIR} ]]; then
 exit 1
fi

cd ${WORKDIR}

if [[ -d /esarchive/exp/ecearth/${EXPID} ]]; then 
  DATADIR=/esarchive/exp/ecearth
else
  DATADIR=/esnas/exp/ecearth
base_path=${DATADIR}/${EXPID}/original_files/${SDATE}
mkdir -p ${SAVEDIR}/${EXPID};  chmod -R 775 $SAVEDIR/${EXPID} 

get_leadtime
header $SDATE
extract
if [ -z ${VAR_LST_2D[@]}  ]; then
 GG="$(find . -maxdepth 1 -name "*GG*" | head -1 | sed -e 's/\.\///g' )"
 read_vars $GG GG
 SH="$(find . -maxdepth 1 -name "*SH*" | head -1 | sed -e 's/\.\///g' )"
 read_vars $SH SH
rm -f /scratch/Earth/${USER}/pp/VAR_LST_2D.txt 
VAR_LST_2D=$(echo ${VAR_LST_2D_GG} ${VAR_LST_2D_SH} 'PRECIP')
echo $VAR_LST_2D >> /scratch/Earth/${USER}/pp/VAR_LST_2D.txt
VAR_LST_3D=$(echo ${VAR_LST_3D_GG} ${VAR_LST_3D_SH})
rm -f /scratch/Earth/${USER}/pp/VAR_LST_3D.txt 
else
 VAR_LST_3D_SH_DEFAULT='T U V W Z'
 VAR_LST_3D_GG_DEFAULT='Q CC CIWC CLWC'
 VAR_LST_2D_GG_DEFAULT='T2M D2M SSTK MSL PRECIP SSR STR TTR TSR TSRC TTRC SLHF SSHF U10M V10M SSRD CP SF E SSRU SSRC STRU STRD TCC'
#if list of variables read from config_file, separation between GG and SH variables
 for var in ${VAR_LST_3D[@]}
 do
  for var_sh in ${VAR_LST_3D_SH_DEFAULT[@]} 
  do
   [ $var == $var_sh ] && VAR_LST_3D_SH=$(echo $VAR_LST_3D_SH $var)
  done
  for var_gg in ${VAR_LST_3D_GG_DEFAULT[@]}
  do
   [ $var == $var_gg ] && VAR_LST_3D_GG=$(echo $VAR_LST_3D_GG $var)
  done
 done  
 for var in ${VAR_LST_2D[@]}
 do
  for var_gg in ${VAR_LST_2D_GG_DEFAULT[@]}
  do
   [ $var == $var_gg ] && VAR_LST_2D_GG=$(echo $VAR_LST_2D_GG $var)
echo $YEARF - $YEAR0 - $MONF - 10#$MONF - $MON0 

echo "before surface"
combine_3d
regrid2x2
upper


if [[ ${#VAR_LST_MXMN[@]} > 0 ]]; then
 maxmin
fi

cd ~/; rm -rf $WORKDIR # clean up