123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/bin/bash
- set -evx
- #
- # This script prepares the Tofill.nc file to be split afterwards between
- # Tofill.clim.nc and Tofill.extrap.nc
- #
- # History : Virginie Guemas - Initial version March 2014
- #
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- # Arguments
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- restart=$1 # Output restart after skipping the extrapolation and filling of
- # empty seas to be able to compute Tofill.nc
- meshmask=$2 # Mask of the grid that restart should have after extrapolation
- # and filling of empty seas
- Tofill=$3 # Name of the output Tofill.nc file
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- lstmasks=('tmask' 'umask' 'vmask' 'fmask')
- cdo setmisstoc,1e19 $1 tmp1.nc
- cdo gtc,1e18 tmp1.nc tmp2.nc
- for mask in ${lstmasks[@]} ; do
- case $mask in
- 'tmask' ) var='tn';;
- 'umask' ) var='un';;
- 'vmask' ) var='vn';;
- 'fmask' ) var='rotn';;
- esac
- cdo selvar,$var tmp2.nc tmp2_${var}.nc
- cdo add -chvar,$var,$mask tmp2_${var}.nc -selvar,$mask $2 sum.nc
- cdo gtc,1.5 sum.nc Tofill_${mask}.nc
- rm -f tmp2_${var}.nc sum.nc
-
- if [ -e $3 ] ; then
- ncks -A Tofill_${mask}.nc $3
- rm -f Tofill_${mask}.nc
- else
- mv Tofill_${mask}.nc $3
- fi
- done
- rm -f tmp1.nc tmp2.nc
- echo "You have just built Tofill.nc : "$3
- echo "Now you can use :"
- echo " 1) cdo setcindexbox,c,idx1,idx2,idy1,idy2 ifile ofile to set seas at 0"
- echo " and build Tofill.extrap.nc"
- echo " 2) cdo sub to get Tofill.clim.nc from Tofill.nc and Tofill.extrap.nc"
|