addpert_eraint.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #/bin/ksh
  2. set -evx
  3. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4. # This script adds interpolated and rotated surface wind perturbations to the
  5. # interpolated and rotated surface wind forcing fields.
  6. #
  7. # History : Virginie Guemas - Initial version - 2012
  8. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  9. # Arguments
  10. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  11. year0=2013 # First year for which to add perturbations
  12. yearf=2014 # Last year for which to add perturbations
  13. mid='_eraint_' # '_eraint_' / '_DFS4.3_'
  14. mode=2 # 1/2 = Bound the perturbations/No bounding
  15. bound=10.0 # Bounding value for the perturbations
  16. lstmbs=( 1 2 3 4 ) # List of members
  17. lstvars=( 'u10' 'v10' ) # List of variables
  18. pathpert='perturb1_era-dfs_mon'
  19. # Directory from where to take the perturbations
  20. pathera='/cfu/scratch/vguemas/ERAint_ORCA1t'
  21. pathdfs='/cfu/scratch/vguemas/dfs4.3'
  22. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  23. for ((year=${year0};year<=${yearf};year++)) ; do
  24. for memb in ${lstmbs[@]} ; do
  25. for var in ${lstvars[@]} ; do
  26. cp ${pathera}/${var}${mid}${year}.nc ${var}_${year}.nc
  27. fileout=${pathera}/${var}_fc${memb}${mid}${year}.nc
  28. if [[ $mid == '_eraint_' ]] ; then
  29. suf='_orca1t'
  30. else
  31. suf=''
  32. fi
  33. case $mode in
  34. 1)
  35. cdo setrtomiss,$bound,100 ${pathpert}/${var}_fc${memb}${mid}${year}${suf}.nc toto1.nc
  36. cdo setmisstoc,$bound toto1.nc toto2.nc
  37. cdo setrtomiss,-100,-$bound toto2.nc toto1.nc
  38. cdo setmisstoc,-$bound toto1.nc toto2.nc
  39. mv toto2.nc ${var}_fc${memb}${mid}${year}${suf}.nc
  40. rm -f toto1.nc toto2.nc
  41. ;;
  42. 2)
  43. cp ${pathpert}/${var}_fc${memb}${mid}${year}${suf}.nc .
  44. ;;
  45. esac
  46. cdo add -selvar,$var ${var}_${year}.nc -selvar,$var ${var}_fc${memb}${mid}${year}${suf}.nc $fileout
  47. rm -f ${var}_${year}.nc ${var}_fc${memb}${mid}${year}${suf}.nc
  48. if [[ $mid == '_DFS4.3_' ]] ; then
  49. ncrename -d x,lon -d y,lat $fileout
  50. ncks -A -v lon,lat ${pathera}/${var}${mid}${year}.nc $fileout
  51. fi
  52. done
  53. done
  54. done