source: BOL/Multi_atlas/make_MOY.sh @ 3684

Last change on this file since 3684 was 3684, checked in by idelkadi, 4 years ago

Repository under svn of a first version of Multiatlas diagnostics for LMDZ. This version is adapted to be able to run a LMDZ multiatlas on an individual account on the ciclad machine of the IPSL. In this version, the parts to be modified are identified so as to subsequently adapt it to other machines.
This version is still under development.

  • Property svn:executable set to *
File size: 10.7 KB
Line 
1#!/bin/bash
2
3set -v
4
5login=`whoami`
6years=$1
7SEAS=$2
8run=$3
9zone=$4
10
11vars='psl'
12#vars='pr rstt rlut rtt crelt crest crett hfns hfls hfss tas sst hurs tauu tauv psl zg500 rsts rsut rsutcs rlutcs rsds rsdscs rsus rsuscs rlds rldscs rlus albs albt cress crels crets rts rah rahcs rahcre rlah rlahcs rlahcre rsah rsahcs rsahcre prw'
13vars='pr rstt rlut rtt crelt crest crett hfns hfls hfss tas sst hurs tauu tauv psl zg500 rsts rsut rsutcs rlutcs rsds rsdscs rsus rsuscs rlds rldscs rlus albs albt cress crels crets rts rah rahcs rahcre rlah rlahcs rlahcre rsah rsahcs rsahcre prw rttcs rsttcs cllcalipso clmcalipso clhcalipso cll clm clh'
14#vars='eva'
15
16if [ "$run" = "OBS" ]; then
17  SIM="$run"
18else
19  SIM="$run"_"$years"
20fi
21
22hostname=`hostname`
23if [ ${hostname:0:5} = cicla ] ; then
24DODSDIR=/prodigfs/ipslfs/dods
25OBSDIR=$DODSDIR/$login/lmdz
26ferret="/opt/ferret-7.0.0/bin/ferret"
27fi
28if [ ${hostname:0:5} = camel ] ; then
29DODSDIR=/prodigfs/ipslfs/dods
30OBSDIR=$DODSDIR/$login/lmdz
31ferret="/opt/ferret-7.0.0/bin/ferret"
32fi
33if [ ${hostname:0:5} = irene ] ; then
34DODSDIR=
35OBSDIR=
36ferret=
37fi
38if [ ${hostname:0:5} = jean- ] ; then
39DODSDIR=
40OBSDIR=
41ferret=
42fi
43
44force_create=1
45GR=VLR
46MAINDIR=$DODSDIR/$login/lmdz
47WRK=$MAINDIR/WORK/biais$$
48
49if [ -d $WRK ] ; then WRK=$WRK$$ ; fi
50if [ -d $WRK ] ; then echo $WRK existe deja ; exit ; fi
51
52mkdir -p $WRK
53
54cd $orig
55for sim in $SIM ; do
56   if [ $sim = OBS ] ; then 
57      MAINDIR=$DODSDIR/fabric/lmdz
58   else
59      MAINDIR=$DODSDIR/$login/lmdz
60   fi
61   orig=$MAINDIR/$GR/$SEAS
62
63   echo $sim
64   bad=0
65
66   for var in $vars ; do
67
68     echo $orig/$sim/$d
69     for d in $zone ; do
70        mkdir -p $orig/$sim/$d
71        if [ $force_create = 1 ] ; then
72           \rm -f $orig/$sim/$d/$var.nc $orig/$sim/$d/$var
73        fi
74     done
75
76     cd $WRK
77     \rm -rf tmp* ferret*
78     varobs=$var
79     varmod=$var
80     obs=$var
81     echo $pal
82
83# contour levels for biases
84     case $var in
85           pr) lev='(-INF)(0.5)(1,4,1)(6,14,2)(INF)' ; levd='(-Inf)(-5)(-2,2,1)(-0.5)(-0.2)(0.2)(0.5)(5)(Inf)'; pal=rain_cmyk ;;
86           prl) lev='(-INF)(0.5)(1,4,1)(6,14,2)(INF)' ; levd='(-Inf)(-5)(-2,2,1)(-0.5)(-0.2)(0.2)(0.5)(5)(Inf)'; pal=rain_cmyk ;;
87           prc) lev='(-INF)(0.5)(1,4,1)(6,14,2)(INF)' ; levd='(-Inf)(-5)(-2,2,1)(-0.5)(-0.2)(0.2)(0.5)(5)(Inf)'; pal=rain_cmyk ;;
88           hfns) lev='(-INF)(-200,200,50)(-75)(-25)(25)(75)(INF)'; levd='(-Inf)(-80,80,20)(Inf)' ;;
89           tas) lev='(-INF)(-60,20,10)(6,26,4)(24)(27)(28)(30)(INF)' ; levd='(-Inf)(-8,8)(-4,4)(-2,2,1)(Inf)' ; varmod=-273.15+tas ; varobs=-273.15+tas ;;
90           sst) lev='(-INF)(-60,20,10)(6,26,4)(24)(27)(28)(30)(INF)' ; levd='(-Inf)(-8,8)(-4,4)(-2,2,1)(Inf)' ; varmod=-273.15+tas ; varobs=-273.15+sst ;;
91           tasc) lev='(-INF)(-60,20,10)(6,26,4)(24)(27)(28)(30)(INF)' ; levd='(-Inf)(-8,8)(-4,4)(-2,2,1)(Inf)' ;;
92           tauu) lev='(-INF)(-.16,.16,0.02)(INF)' ; levd='(-1.)(-0.16,0.16,0.02)(1.)' ;;
93           tauv) lev='(-INF)(-0.16,0.16,0.02)(INF)' ; levd='(-1.)(-0.16,0.16,0.02)(1.)' ;;
94           psl) lev='(-INF)(975,1030,5)(1040,1100,10)(INF)' ; levd='(-Inf)(-100,-60,10)(-20,20,2.5)(20,100,10)(Inf)' ;;
95           zg500) lev='(-INF)(4900,5800,50)(INF)' ; levd='(-Inf)(-260,100,20)(Inf)' ;;
96           sfcWind) levd='(-Inf)(-1.5,1.5,0.2)(Inf)' ;;
97           hurs) levd='(-Inf)(-10,10,1)(Inf)' ;;
98           ts) levd='(-Inf)(-3,3,0.5)(Inf)' ; varobs=tsk ;;
99           deltat) levd='(-Inf)(-1,1,0.1)(Inf)' ; varmod=tsmtas ;;
100           huss) levd='(-Inf)(-2.4,2.4,0.3)(Inf)' ; varmod=1000.*huss ;;
101           prw) lev='(-Inf)(0.,65.,5)(Inf)' ; levd='(-Inf)(-30.,30.,5)(Inf)' ;;
102           hfls) lev='(-Inf)(0,200,20)(Inf)' ; levd='(-Inf)(-50,-10,10)(-5,5,5)(5,50,10)(Inf)' ;;
103           eva) lev='(-Inf)(0.5)(1,4,1)(6,14,2)(Inf)' ; levd='(-Inf)(-5)(-2,2,1)(-0.5)(-0.2)(0.2)(0.5)(5)(Inf)' ;;
104           hfss) lev='(-Inf)(0,120,10)(Inf)' ; levd='(-Inf)(-50,-10,10)(-5,5,5)(5,50,10)(Inf)' ;;
105           hfns) levd='(-Inf)(-50,-10,10)(-5,5,5)(5,50,10)(Inf)' ;;
106           bils) levd='(-Inf)(-50,-10,10)(-5,5,5)(5,50,10)(Inf)' ; varobs=bils ;;
107           cress) lev='(-Inf)(-120,-10,10)(Inf)' ; levd="$radd" ;;
108           crels) lev='(-Inf)(0,100,10)(Inf)' ; levd="$radd" ;;
109           crets) lev='(-Inf)(-60,60,10)(Inf)' ; levd="$radd" ;;
110           crest) lev='(-Inf)(-120,-10,10)(Inf)' ; levd="$radd" ;;
111           crelt) lev='(-Inf)(0,70,5)(Inf)' ; levd="$radd" ;;
112           crett) lev='(-Inf)(-60,60,10)(Inf)' ; levd="$radd" ;;
113           rts) lev='(-Inf)(-20,200,10)(Inf)' ; levd="$radd" ;;
114           rtt) lev='(-Inf)(-100,100,10)(Inf)' ; levd="$radd" ;;
115           rttcs) lev='(-Inf)(-100,100,10)(Inf)' ; levd="$radd" ;;
116           rlut) lev='(-Inf)(150,320,10)(Inf)' ; levd="$radd" ;;
117           rlutcs) lev='(-Inf)(150,350,10)(Inf)' ; levd="$radd" ;;
118           rlus) lev='(-Inf)(120,400,20)(440)(480)(Inf)' ; levd="$radd" ;;
119           rlds) lev='(-Inf)(100,420,20)(Inf)' ; levd="$radd" ;;
120           rldscs) lev='(-Inf)(80,320,20)(Inf)' ; levd="$radd" ;;
121           rsds) lev='(-Inf)(80,320,20)(Inf)' ; levd="$radd" ;;
122           rsdscs) lev='(-Inf)(80,320,20)(Inf)' ; levd="$radd" ;;
123           rsuscs) lev='(-Inf)(20,150,10)(Inf)' ; levd="$radd" ;;
124           rsus) lev='(-Inf)(10,150,10)(Inf)' ; levd="$radd" ;;
125           rsutcs) lev='(-Inf)(10)(30)(50,160,10)(180)(Inf)' ; levd="$radd" ;;
126           rstt) lev='(-Inf)(0,330,10)(Inf)' ; levd="$radd" ;;
127           rsttcs) lev='(-Inf)(0,330,10)(Inf)' ; levd="$radd" ;;
128           rsts) lev='(-Inf)(0,330,10)(Inf)' ; levd="$radd" ;;
129           rstscs) lev='(-Inf)(0,400,10)(Inf)' ; levd="$radd" ;;
130           rsut) lev='(-Inf)(50,160,10)(Inf)' ; levd="$radd" ;;
131           rsutcs) lev='(-Inf)(50,160,10)(Inf)' ; levd="$radd" ;;
132           rsdt) lev='(-Inf)(0,700,10)(Inf)' ; levd="$radd" ;;
133           albt|albs) lev='(-Inf)(0,100,5)(Inf)' ; levd='(-Inf)(-50,-10,10)(-5,5,5)(10,50,10)(Inf)' ;;
134           cll) lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ; varobs=cllcalipso ;;
135           clm) lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ; varobs=clmcalipso ;;
136           clh) lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ; varobs=clhcalipso ;;
137           clt) lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ; varobs=cltcalipso ;;
138           cltcalipso|clhcalipso|clmcalipso|cllcalipso) lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
139           FO1cllcalipso|FO2cllcalipso|FO3cllcalipso) varmod=cllcalipso ; lev='(1)(2,24,2)(30,90,10)(INF)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
140           FO1clmcalipso|FO2clmcalipso|FO3clmcalipso) varmod=clmcalipso ; lev='(1)(2,24,2)(30,90,10)(INF)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
141           FO1clhcalipso|FO2clhcalipso|FO3clhcalipso) varmod=clhcalipso ; lev='(1)(2,24,2)(30,90,10)(INF)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
142           clcalipso) lev='(1,4,1)(4,32,2)(40,70,10)(Inf)' ; levd='(-Inf)(-30,30,5)(Inf)' ;;
143           rah) lev='(-INF)(-180,0,10)(INF)'; levd="$rahd" ;;
144           rahcs) lev='(-INF)(-180,0,10)(INF)'; levd="$rahd" ;;
145           rahcre) lev='(-INF)(-40,70,5)(INF)' ; levd="$rahd" ;;
146           rlah) lev='(-INF)(-280,-50,10)(INF)'; levd="$rahd" ;;
147           rlahcs) lev='(-INF)(-280,-50,5)(INF)' ; levd="$rahd" ;;
148           rlahcre) lev='(-INF)(-60,60,5)(INF)' ; levd="$rahd" ;;
149           rsah) lev='(-INF)(0,150,10)(INF)'; levd="$rahd" ;;
150           rsahcs) lev='(-INF)(0,150,10)(INF)' ; levd="$rahd" ;;
151           rsahcre) lev='(-INF)(-20,20,5)(INF)' ; levd="$rahd" ;;
152           cltoce|clhoce|clmoce|clloce) vlim=0:100 ; lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
153           cltter|clhter|clmter|cllter) vlim=0:100 ; lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
154           cltsic|clhsic|clmsic|cllsic) vlim=0:100 ; lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
155           cltlic|clhlic|clmlic|clllic) vlim=0:100 ; lev='(-Inf)(0,10,2)(0,100,10)(Inf)' ; levd='(-Inf)(-70)(-40,40,5)(70)(Inf)' ;;
156           *) echo variable $var non prevue ; exit
157     esac
158     echo FIGURE FIGURE FIGURE $sim $title $var
159     cat <<eod>| open.jnl
160        use "$orig/$sim/NC/all.nc"
161eod
162
163        cat <<eod>| vardef.jnl
164        let cress=rsds-rsus-rsdscs+rsuscs
165        let crels=rlds-rldscs
166        let rstt=rsdt-rsut
167        let rsttcs=rsdt-rsutcs
168        let rsts=rsds-rsus
169        let rtt=rstt-rlut
170        let rttcs=rsttcs-rlutcs
171        let albt=100*(rsut/rsdt)
172        let albs=100*(rsus/rsds)
173        let crets=cress+crels
174        let crest=rsutcs-rsut
175        let crelt=rlutcs-rlut
176        let crett=crest+crelt
177        let rts=rsds-rsus+rlds-rlus
178        let bil=rts-hfls-hfss
179        !let hfns=hfls+hfss+rts
180        !let hfns=bils
181        let eva=hfls*0.03456
182        let tsmtas=ts-tas
183        let tsk=ts+273.15
184!       let pslhPa=psl/100.
185        let tasc=tas-273.15
186     
187        let rlah=rlus-rlds-rlut
188        let rlahcs=rlus-rldscs-rlutcs
189        let rlahcre=rlah-rlahcs
190
191        let rsah=rsdt-rsut+rsus-rsds
192        let rsahcs=rsdt-rsutcs+rsuscs-rsdscs
193        let rsahcre=rsah-rsahcs
194
195        let rah=rsah+rlah
196        let rahcs=rsahcs+rlahcs
197        let rahcre=rah-rahcs
198
199        let clloce = if oce[d=1] ge 99 then cllcalipso
200        let cllter = if ter[d=1] ge 99 then cllcalipso
201        let cllsic = if sic[d=1] ge 99 then cllcalipso
202        let clllic = if lic[d=1] ge 99 then cllcalipso
203
204        let clmoce = if oce[d=1] ge 99 then clmcalipso
205        let clmter = if ter[d=1] ge 99 then clmcalipso
206        let clmsic = if sic[d=1] ge 99 then clmcalipso
207        let clmlic = if lic[d=1] ge 99 then clmcalipso
208
209        let clhoce = if oce[d=1] ge 99 then clhcalipso
210        let clhter = if ter[d=1] ge 99 then clhcalipso
211        let clhsic = if sic[d=1] ge 99 then clhcalipso
212        let clhlic = if lic[d=1] ge 99 then clhcalipso
213
214        reg/x=-180.:180./l=1/y=-90:90 !globe
215eod
216
217cat <<eod>| ZON.jnl
218        go open.jnl
219        go vardef.jnl
220        let vv=$varmod[i=@ave,d=1]
221        list/format=(f15.3,f15.3) y*(0*vv+1.),vv
222        !list/noh/file=$varmod.ASCII/format=(f15.3,e15.3,e15.3) y*(0*vv[d=1]+1.),vv[d=1],vv[d=2]
223eod
224
225cat <<eod>| AMMACROSS.jnl
226        go open.jnl
227        go vardef.jnl
228        let vv=$varmod[i=@ave,d=1]
229        list/x=-10.:10./y=-5.:25./format=(f15.3,f15.3) y*(0*vv+1.),vv
230        !list/noh/file=$varmod.ASCII/format=(f15.3,e15.3,e15.3) y*(0*vv[d=1]+1.),vv[d=1],vv[d=2]
231eod
232
233cat <<eod>| GLOB.jnl
234        go open.jnl
235        go vardef.jnl
236        list/format=(f15.3) $varmod[i=@ave,j=@ave,d=1]
237eod
238
239
240        for d in $zone ; do
241           outf=$orig/$sim/$d/$var
242           echo $outf
243           if [ $force_create = 1 ] ; then rm -f $outf ; fi
244           if [ ! -f $outf ] ; then
245               $ferret -batch tmp.ps -script $d.jnl | sed -e '/:/d' -e '/\*/d' >| $outf
246           fi
247        done
248
249   done
250
251
252done
Note: See TracBrowser for help on using the repository browser.