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
86 print*,
'SCHEMA AMONT NOUVEAU'
93 print*,coslondlon(
i),sinlondlon(
i)
95 coslon(1)=coslon(iip1)
96 coslondlon(1)=coslondlon(iip1)
97 sinlon(1)=sinlon(iip1)
98 sinlondlon(1)=sinlondlon(iip1)
99 print*,
'sum sinlondlon ',
ssum(
iim,sinlondlon,1)/sinlondlon(1)
100 print*,
'sum coslondlon ',
ssum(
iim,coslondlon,1)/coslondlon(1)
122 s0(
i,
j,llm+1-
l ) =
q(
i,
j,
l,0 )
123 sx(
i,
j,llm+1-
l ) =
q(
i,
j,
l,1 )
124 sy(
i,
j,llm+1-
l ) =
q(
i,
j,
l,2 )
125 sz(
i,
j,llm+1-
l ) =
q(
i,
j,
l,3 )
139 sm(
i,
j,llm+1-
l)=masse(
i,
j,
l )
203 zz=sy(
i,1,
l)/sm(
i,1,
l)
204 dyn1=dyn1+sinlondlon(
i)*zz
205 dyn2=dyn2+coslondlon(
i)*zz
207 dys1=dys1+sinlondlon(
i)*zz
208 dys2=dys2+coslondlon(
i)*zz
211 sy(
i,1,
l)=dyn1*sinlon(
i)+dyn2*coslon(
i)
212 sy(
i,
jjp1,
l)=dys1*sinlon(
i)+dys2*coslon(
i)
215 s0(
i,1,
l)=s0n/smn+sy(
i,1,
l)
219 s0(iip1,1,
l)=s0(1,1,
l)
223 sxn(
i)=s0(
i+1,1,
l)-s0(
i,1,
l)
228 sy(
i,1,
l)=sy(
i,1,
l)*sm(
i,1,
l)
230 s0(
i,1,
l)=s0(
i,1,
l)*sm(
i,1,
l)
236 sx(
i+1,1,
l)=0.25*(sxn(
i)+sxn(
i+1))*sm(
i+1,1,
l)
239 s0(iip1,1,
l)=s0(1,1,
l)
241 sy(iip1,1,
l)=sy(1,1,
l)
243 sx(1,1,
l)=sx(iip1,1,
l)
258 call
limx(s0,sx,sm,pente_max)
260 call
advx( limit,.5*
dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf)
272 call
limy(s0,sy,sm,pente_max)
273 call
advy( limit,.5*
dtvr,pbarv,sm,s0,sx,sy,sz )
281 call
limz(s0,sz,sm,pente_max)
282 call
advz( limit,
dtvr,w,sm,s0,sx,sy,sz )
293 call
limy(s0,sy,sm,pente_max)
294 call
advy( limit,.5*
dtvr,pbarv,sm,s0,sx,sy,sz )
297 sm(iip1,
j,
l)=sm(1,
j,
l)
298 s0(iip1,
j,
l)=s0(1,
j,
l)
299 sx(iip1,
j,
l)=sx(1,
j,
l)
300 sy(iip1,
j,
l)=sy(1,
j,
l)
301 sz(iip1,
j,
l)=sz(1,
j,
l)
317 call
limx(s0,sx,sm,pente_max)
318 call
advx( limit,.5*
dtvr,pbaru,sm,s0,sx,sy,sz,lati,latf)
357 q(
i,1,llm+1-
l,3)=dqzpn
359 q(
i,1,llm+1-
l,0)=qpn
368 dyn1=dyn1+sinlondlon(
i)*sy(
i,1,
l)/sm(
i,1,
l)
369 dyn2=dyn2+coslondlon(
i)*sy(
i,1,
l)/sm(
i,1,
l)
375 s(sinlon(
i)*dyn1+coslon(
i)*dyn2)
376 q(
i,1,llm+1-
l,0)=
q(
i,1,llm+1-
l,0)+
q(
i,1,llm+1-
l,2)
378 s(sinlon(
i)*dys1+coslon(
i)*dys2)
390 zz=s0(
i,2,
l)/sm(
i,2,
l)-
q(
i,1,llm+1-
l,0)
391 dyn1=dyn1+sinlondlon(
i)*zz
392 dyn2=dyn2+coslondlon(
i)*zz
394 dys1=dys1+sinlondlon(
i)*zz
395 dys2=dys2+coslondlon(
i)*zz
399 s(sinlon(
i)*dyn1+coslon(
i)*dyn2)/2.
400 q(
i,1,llm+1-
l,0)=
q(
i,1,llm+1-
l,0)+
q(
i,1,llm+1-
l,2)
402 s(sinlon(
i)*dys1+coslon(
i)*dys2)/2.
406 q(iip1,1,llm+1-
l,0)=
q(1,1,llm+1-
l,0)
410 sxn(
i)=
q(
i+1,1,llm+1-
l,0)-
q(
i,1,llm+1-
l,0)
416 q(
i+1,1,llm+1-
l,1)=0.25*(sxn(
i)+sxn(
i+1))
417 q(
i+1,
jjp1,llm+1-
l,1)=0.25*(sxs(
i)+sxs(
i+1))
419 q(1,1,llm+1-
l,1)=
q(iip1,1,llm+1-
l,1)
431 q(iip1,
j,
l,iq)=
q(1,
j,
l,iq)
441 IF (
q(
i,
j,
l,0).lt.0.)
THEN
460 if(
q(
i,
j,
l,0).lt.qmin)
461 , print*,
'apres pentes, s0(',
i,
',',
j,
',',
l,
')=',
q(
i,
j,
l,0)