source: BOL/Multi_atlas/make_MOY.sh @ 3694

Last change on this file since 3694 was 3694, 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.
Corrections.

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