24 #include "dimensions.h"
34 REAL q( iip1,
jjp1,llm,0:3)
36 REAL masse( iip1,
jjp1,llm)
40 REAL sm ( iip1,
jjp1, llm )
41 REAL s0( iip1,
jjp1,llm ), sx( iip1,
jjp1,llm )
42 REAL sy( iip1,
jjp1,llm ), sz( iip1,
jjp1,llm )
48 real sinlon(iip1),sinlondlon(iip1)
49 real coslon(iip1),coslondlon(iip1)
50 save sinlon,coslon,sinlondlon,coslondlon
51 real dyn1,dyn2,dys1,dys2
52 real qpn,qps,dqzpn,dqzps
53 real smn,sms,s0n,s0s,sxn(iip1),sxs(iip1)
54 real qmin,zq,pente_max
82 print*,
'SCHEMA AMONT NOUVEAU'
89 print*,coslondlon(
i),sinlondlon(
i)
91 coslon(1)=coslon(iip1)
92 coslondlon(1)=coslondlon(iip1)
93 sinlon(1)=sinlon(iip1)
94 sinlondlon(1)=sinlondlon(iip1)
95 print*,
'sum sinlondlon ',
ssum(
iim,sinlondlon,1)/sinlondlon(1)
96 print*,
'sum coslondlon ',
ssum(
iim,coslondlon,1)/coslondlon(1)
118 s0(
i,
j,llm+1-
l ) =
q(
i,
j,
l,0 )
119 sx(
i,
j,llm+1-
l ) =
q(
i,
j,
l,1 )
120 sy(
i,
j,llm+1-
l ) =
q(
i,
j,
l,2 )
121 sz(
i,
j,llm+1-
l ) =
q(
i,
j,
l,3 )
135 sm(
i,
j,llm+1-
l)=masse(
i,
j,
l )
199 zz=sy(
i,1,
l)/sm(
i,1,
l)
200 dyn1=dyn1+sinlondlon(
i)*zz
201 dyn2=dyn2+coslondlon(
i)*zz
203 dys1=dys1+sinlondlon(
i)*zz
204 dys2=dys2+coslondlon(
i)*zz
207 sy(
i,1,
l)=dyn1*sinlon(
i)+dyn2*coslon(
i)
208 sy(
i,
jjp1,
l)=dys1*sinlon(
i)+dys2*coslon(
i)
211 s0(
i,1,
l)=s0n/smn+sy(
i,1,
l)
215 s0(iip1,1,
l)=s0(1,1,
l)
219 sxn(
i)=s0(
i+1,1,
l)-s0(
i,1,
l)
224 sy(
i,1,
l)=sy(
i,1,
l)*sm(
i,1,
l)
226 s0(
i,1,
l)=s0(
i,1,
l)*sm(
i,1,
l)
232 sx(
i+1,1,
l)=0.25*(sxn(
i)+sxn(
i+1))*sm(
i+1,1,
l)
235 s0(iip1,1,
l)=s0(1,1,
l)
237 sy(iip1,1,
l)=sy(1,1,
l)
239 sx(1,1,
l)=sx(iip1,1,
l)
254 call
limx(s0,sx,sm,pente_max)
256 call
advx( limit,.5*
dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf)
268 call
limy(s0,sy,sm,pente_max)
269 call
advy( limit,.5*
dtvr,pbarv,sm,s0,sx,sy,sz )
277 call
limz(s0,sz,sm,pente_max)
278 call
advz( limit,
dtvr,w,sm,s0,sx,sy,sz )
289 call
limy(s0,sy,sm,pente_max)
290 call
advy( limit,.5*
dtvr,pbarv,sm,s0,sx,sy,sz )
293 sm(iip1,
j,
l)=sm(1,
j,
l)
294 s0(iip1,
j,
l)=s0(1,
j,
l)
295 sx(iip1,
j,
l)=sx(1,
j,
l)
296 sy(iip1,
j,
l)=sy(1,
j,
l)
297 sz(iip1,
j,
l)=sz(1,
j,
l)
313 call
limx(s0,sx,sm,pente_max)
314 call
advx( limit,.5*
dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf)
353 q(
i,1,llm+1-
l,3)=dqzpn
355 q(
i,1,llm+1-
l,0)=qpn
364 dyn1=dyn1+sinlondlon(
i)*sy(
i,1,
l)/sm(
i,1,
l)
365 dyn2=dyn2+coslondlon(
i)*sy(
i,1,
l)/sm(
i,1,
l)
371 s(sinlon(
i)*dyn1+coslon(
i)*dyn2)
372 q(
i,1,llm+1-
l,0)=
q(
i,1,llm+1-
l,0)+
q(
i,1,llm+1-
l,2)
374 s(sinlon(
i)*dys1+coslon(
i)*dys2)
386 zz=s0(
i,2,
l)/sm(
i,2,
l)-
q(
i,1,llm+1-
l,0)
387 dyn1=dyn1+sinlondlon(
i)*zz
388 dyn2=dyn2+coslondlon(
i)*zz
390 dys1=dys1+sinlondlon(
i)*zz
391 dys2=dys2+coslondlon(
i)*zz
395 s(sinlon(
i)*dyn1+coslon(
i)*dyn2)/2.
396 q(
i,1,llm+1-
l,0)=
q(
i,1,llm+1-
l,0)+
q(
i,1,llm+1-
l,2)
398 s(sinlon(
i)*dys1+coslon(
i)*dys2)/2.
402 q(iip1,1,llm+1-
l,0)=
q(1,1,llm+1-
l,0)
406 sxn(
i)=
q(
i+1,1,llm+1-
l,0)-
q(
i,1,llm+1-
l,0)
412 q(
i+1,1,llm+1-
l,1)=0.25*(sxn(
i)+sxn(
i+1))
413 q(
i+1,
jjp1,llm+1-
l,1)=0.25*(sxs(
i)+sxs(
i+1))
415 q(1,1,llm+1-
l,1)=
q(iip1,1,llm+1-
l,1)
427 q(iip1,
j,
l,iq)=
q(1,
j,
l,iq)
437 IF (
q(
i,
j,
l,0).lt.0.)
THEN
456 if(
q(
i,
j,
l,0).lt.qmin)
457 , print*,
'apres pentes, s0(',
i,
',',
j,
',',
l,
')=',
q(
i,
j,
l,0)