source: BOL/Multi_atlas/season.sh @ 4891

Last change on this file since 4891 was 4697, checked in by musat, 14 months ago

Enlevement tests "Mise en attente" de scripts cmor et season
pour permettre de faire tourner plusieurs multi-atlas simultanément
Ajout variable rsdt dans les moyennes zonales
Nettoyage env_Multi_atlas
Adaptation a spirit des diagnostics de l'axe2 de MB
Correction html axe4
IonelaMusat?

  • Property svn:executable set to *
File size: 4.1 KB
Line 
1#!/bin/bash
2####################################################################
3# Frederic Hourdin. 2015/09/07
4# Script de calcl de moyennes saisonnieres sur une grille reduite
5# en utilisant cdo. Preparation des tracers d'atlas.
6####################################################################
7
8source ~/env_Multi_atlas.sh
9
10ulimit -s unlimited
11GR=VLR
12
13MAINDIR=$DODSDIR/$login/lmdz
14
15force_create=0
16
17####################################################################
18# Interactive options
19####################################################################
20
21COMP_D=""
22listeseas="JJA,YEAR"
23listeseas="JJA,YEAR,DJF"
24listesim=""
25listeseas="YEAR,DJF,JJA,JJAS"
26
27
28while (($# > 0))
29   do
30   case $1 in
31     "-h") cat <<........fin
32        Usage : cmor.sh [ -s sim1,sim2... -seas DJF,YEAR -f]
33        -f forces execution even if the output file already exists
34........fin
35        shift ; exit ;;
36     "-s") listesim=`echo $2 | sed -e 's/,/ /g'` ; shift ; shift ;;
37     "-f") force_create=1 ; shift ;;
38     "-comp") COMP_D=/thredds/ipsl/fabric/lmdz/MultiSimu/$2 ; shift ; shift ;;
39     "-seas") listeseas=$2 ; shift ; shift ;;
40     *) ./cmor.sh -h ; shift ; exit ;;
41   esac
42done
43
44####################################################################
45# About the grid
46####################################################################
47case $GR in
48   VLR) remapf="/home/hourdin/CMIP5/Anal/Feb21_2012_tsol_OBS_AVE_ANM.nc" ;;
49   *) echo "grille $GR non prevue" ; exit
50esac
51mkdir -p $MAINDIR/$GR/GR
52if [ ! -f $MAINDIR/$GR/GR/LAT ] ; then
53   ncks -v LAT $remapf  | grep 'LAT\[' | sed -e '/LAT_bn/d' | cut -d= -f2 | awk ' { print $1 } ' >| $MAINDIR/$GR/GR/LAT
54fi
55if [ "$remapf" != "" ] ; then remap="-remapcon,$remapf" ; fi
56   
57
58################################################################################
59# Loop on seasons
60for SEAS in `echo $listeseas | sed -e 's/,/ /g'` ; do
61################################################################################
62echo $SEAS
63
64case $SEAS in
65   YEAR)  months="" ;;
66   DJF)   months="-selmon,1,2,12" ;;
67   JJA)   months="-selmon,6,7,8" ;; 
68   JJAS)   months="-selmon,6,7,8,9" ;; 
69   *) echo "Cas $cas non prevu" ; exit
70esac
71
72
73################################################################################
74# Boucle sur les simulations
75################################################################################
76
77cd $MAINDIR/SE/CMOR ; \rm ferret*
78
79if [ "$COMP_D" != "" ] ; then
80listesim=`awk ' { print $1"_"$2 } ' $COMP_D/def.txt`
81fi
82echo listesim $listesim
83
84
85if [ "$listesim" = "" ] ; then listesim=`ls` ; fi
86
87for sim in $listesim ; do
88
89 IN_DIR=$MAINDIR/SE/CMOR/$sim
90 echo $IN_DIR
91
92 if [ -d $IN_DIR ] ; then
93
94   echo seasons.sh : mise a jour pour $sim
95   if [ $force_create = 1 ] ; then
96       rm -rf $MAINDIR/$GR/$SEAS/$sim
97   fi
98   OUT_DIR=$MAINDIR/$GR/$SEAS/$sim/NC   ; mkdir -p $OUT_DIR
99
100   cd $IN_DIR
101# boucle sur les variables (chacune correspondant à un .nc)
102   for f in *nc ; do
103      var=`basename $f .nc`
104# Pour le 3D, on prend directement les moyennes zonales
105
106# facteurs mutliplicatifs si besoin
107      mulc=1.
108      case $var in
109         pr) mulc=86400. ;;
110         autre) mulc=achanger ;;
111         dernier) mulc=bou
112      esac
113
114# Moyenne saisonniere (et zonale pour les champs 3D)
115      if [ ! -f $OUT_DIR/$f -a -f $IN_DIR/$f ] ; then
116         echo cdo mulc,$mulc -timavg $months $remap $IN_DIR/$f $OUT_DIR/$f
117         cdo mulc,$mulc -timavg $months $remap $IN_DIR/$f $OUT_DIR/$f
118      else
119         echo $OUT_DIR/$f : deja cree
120      fi
121
122   done
123
124
125########################################################################
126# Regroupement des variables 2D dans all.nc
127########################################################################
128   cd $OUT_DIR
129   liste3d=""
130   listef=""
131   if [ "`ls -rt *nc | tail -1`" != "all.nc" ] ; then
132      for f in `ls *nc | sed -e 's/all.nc//'` ; do
133         var=`basename $f .nc`
134         case $var in
135            ua|va|wap|ta|hus|hur) liste3d="$liste3d $f" ;;
136            *) listef="$listef $f"
137         esac
138      done
139      \rm -f all.nc
140      echo cdo merge $listef all.nc
141      cdo merge $listef all.nc
142   fi
143
144 else
145    echo ERREUR: repertoire $IN_DIR absent
146 fi # Boucle sur $sim
147done
148
149done
Note: See TracBrowser for help on using the repository browser.