4 SUBROUTINE advyp(LIMIT,DTY,PBARV,SM,S0,SSX,SY,SZ
5 . ,ssxx,ssxy,ssxz,syy,syz,szz,ntra )
30 #include "dimensions.h"
47 REAL pbarv ( iip1,jjm,
llm )
88 REAL FX(
iim,jjm,ntra),FY(
iim,jjm,ntra)
90 REAL FXX(
iim,jjm,ntra),FXY(
iim,jjm,ntra)
91 REAL FXZ(
iim,jjm,ntra),FYY(
iim,jjm,ntra)
92 REAL FYZ(
iim,jjm,ntra),FZZ(
iim,jjm,ntra)
103 REAL SLPMAX,S1MAX,S1NEW,S2NEW
107 REAL sbms,sfms,sfzs,sbmn,sfmn,sfzn
108 REAL sns0(ntra),snsz(ntra),snsm
110 REAL cx1(
llm,ntra), cxLAT(
llm,ntra)
111 REAL cy1(
llm,ntra), cyLAT(
llm,ntra)
143 sqi = sqi + s0(i,j,l,ntra)
147 print*,
'---------- DIAG DANS ADVY - ENTREE --------'
160 vgri(i,j,
llm+1-l)=-1.*pbarv(i,j,l)
180 IF(.NOT.
limit)
GO TO 11
185 IF(s0(i,k,l,jv).GT.0.)
THEN
186 slpmax=amax1(s0(i,k,l,jv),0.)
188 s1new=amin1(s1max,amax1(-s1max,sy(i,k,l,jv)))
189 s2new=amin1( 2.*slpmax-abs(s1new)/3. ,
190 + amax1(abs(s1new)-slpmax,syy(i,k,l,jv)) )
193 ssxy(i,k,l,jv)=amin1(slpmax,amax1(-slpmax,ssxy(i,k,l,jv)))
194 syz(i,k,l,jv)=amin1(slpmax,amax1(-slpmax,syz(i,k,l,jv)))
215 IF(vgri(i,0,l).LE.0.)
THEN
216 fm(i,0)=-vgri(i,0,l)*dty
217 alf(i,0)=fm(i,0)/sm(i,1,l)
218 sm(i,1,l)=sm(i,1,l)-fm(i,0)
222 alfq(i,0)=alf(i,0)*alf(i,0)
223 alf1(i,0)=1.-alf(i,0)
224 alf1q(i,0)=alf1(i,0)*alf1(i,0)
225 alf2(i,0)=alf1(i,0)-alf(i,0)
226 alf3(i,0)=alf(i,0)*alfq(i,0)
227 alf4(i,0)=alf1(i,0)*alf1q(i,0)
235 IF(vgri(i,0,l).LE.0.)
THEN
237 f0(i,0,jv)=alf(i,0)* ( s0(i,1,l,jv)-alf1(i,0)*
238 + ( sy(i,1,l,jv)-alf2(i,0)*syy(i,1,l,jv) ) )
240 s00(jv)=s00(jv)+f0(i,0,jv)
241 s0(i,1,l,jv)=s0(i,1,l,jv)-f0(i,0,jv)
242 sy(i,1,l,jv)=alf1q(i,0)*
243 + (sy(i,1,l,jv)+3.*alf(i,0)*syy(i,1,l,jv))
244 syy(i,1,l,jv)=alf4(i,0)*syy(i,1,l,jv)
245 ssx(i,1,l,jv)=alf1(i,0)*
246 + (ssx(i,1,l,jv)+alf(i,0)*ssxy(i,1,l,jv) )
247 sz(i,1,l,jv)=alf1(i,0)*
248 + (sz(i,1,l,jv)+alf(i,0)*ssxz(i,1,l,jv) )
249 ssxx(i,1,l,jv)=alf1(i,0)*ssxx(i,1,l,jv)
250 ssxz(i,1,l,jv)=alf1(i,0)*ssxz(i,1,l,jv)
251 szz(i,1,l,jv)=alf1(i,0)*szz(i,1,l,jv)
252 ssxy(i,1,l,jv)=alf1q(i,0)*ssxy(i,1,l,jv)
253 syz(i,1,l,jv)=alf1q(i,0)*syz(i,1,l,jv)
261 IF(vgri(i,0,l).GT.0.)
THEN
262 fm(i,0)=vgri(i,0,l)*dty
269 IF(vgri(i,0,l).GT.0.)
THEN
270 f0(i,0,jv)=alf(i,0)*s00(jv)
280 IF(vgri(i,0,l).GT.0.)
THEN
281 sm(i,1,l)=sm(i,1,l)+fm(i,0)
282 alf(i,0)=fm(i,0)/sm(i,1,l)
285 alfq(i,0)=alf(i,0)*alf(i,0)
286 alf1(i,0)=1.-alf(i,0)
287 alf1q(i,0)=alf1(i,0)*alf1(i,0)
288 alf2(i,0)=alf1(i,0)-alf(i,0)
289 alf3(i,0)=alf1(i,0)*alf(i,0)
297 IF(vgri(i,0,l).GT.0.)
THEN
299 temptm=alf(i,0)*s0(i,1,l,jv)-alf1(i,0)*f0(i,0,jv)
300 s0(i,1,l,jv)=s0(i,1,l,jv)+f0(i,0,jv)
301 syy(i,1,l,jv)=alf1q(i,0)*syy(i,1,l,jv)
302 + +5.*( alf3(i,0)*sy(i,1,l,jv)-alf2(i,0)*temptm )
303 sy(i,1,l,jv)=alf1(i,0)*sy(i,1,l,jv)+3.*temptm
304 ssxy(i,1,l,jv)=alf1(i,0)*ssxy(i,1,l,jv)+3.*alf(i,0)*ssx(i,1,l,jv)
305 syz(i,1,l,jv)=alf1(i,0)*syz(i,1,l,jv)+3.*alf(i,0)*sz(i,1,l,jv)
323 IF(vgri(i,k,l).LT.0.)
THEN
324 fm(i,k)=-vgri(i,k,l)*dty
325 alf(i,k)=fm(i,k)/sm(i,kp,l)
326 sm(i,kp,l)=sm(i,kp,l)-fm(i,k)
328 fm(i,k)=vgri(i,k,l)*dty
329 alf(i,k)=fm(i,k)/sm(i,k,l)
330 sm(i,k,l)=sm(i,k,l)-fm(i,k)
333 alfq(i,k)=alf(i,k)*alf(i,k)
334 alf1(i,k)=1.-alf(i,k)
335 alf1q(i,k)=alf1(i,k)*alf1(i,k)
336 alf2(i,k)=alf1(i,k)-alf(i,k)
337 alf3(i,k)=alf(i,k)*alfq(i,k)
338 alf4(i,k)=alf1(i,k)*alf1q(i,k)
349 IF(vgri(i,k,l).LT.0.)
THEN
351 f0(i,k,jv)=alf(i,k)* ( s0(i,kp,l,jv)-alf1(i,k)*
352 + ( sy(i,kp,l,jv)-alf2(i,k)*syy(i,kp,l,jv) ) )
353 fy(i,k,jv)=alfq(i,k)*
354 + (sy(i,kp,l,jv)-3.*alf1(i,k)*syy(i,kp,l,jv))
355 fyy(i,k,jv)=alf3(i,k)*syy(i,kp,l,jv)
357 + (ssx(i,kp,l,jv)-alf1(i,k)*ssxy(i,kp,l,jv))
359 + (sz(i,kp,l,jv)-alf1(i,k)*syz(i,kp,l,jv))
360 fxy(i,k,jv)=alfq(i,k)*ssxy(i,kp,l,jv)
361 fyz(i,k,jv)=alfq(i,k)*syz(i,kp,l,jv)
362 fxx(i,k,jv)=alf(i,k)*ssxx(i,kp,l,jv)
363 fxz(i,k,jv)=alf(i,k)*ssxz(i,kp,l,jv)
364 fzz(i,k,jv)=alf(i,k)*szz(i,kp,l,jv)
366 s0(i,kp,l,jv)=s0(i,kp,l,jv)-f0(i,k,jv)
367 sy(i,kp,l,jv)=alf1q(i,k)*
368 + (sy(i,kp,l,jv)+3.*alf(i,k)*syy(i,kp,l,jv))
369 syy(i,kp,l,jv)=alf4(i,k)*syy(i,kp,l,jv)
370 ssx(i,kp,l,jv)=ssx(i,kp,l,jv)-fx(i,k,jv)
371 sz(i,kp,l,jv)=sz(i,kp,l,jv)-fz(i,k,jv)
372 ssxx(i,kp,l,jv)=ssxx(i,kp,l,jv)-fxx(i,k,jv)
373 ssxz(i,kp,l,jv)=ssxz(i,kp,l,jv)-fxz(i,k,jv)
374 szz(i,kp,l,jv)=szz(i,kp,l,jv)-fzz(i,k,jv)
375 ssxy(i,kp,l,jv)=alf1q(i,k)*ssxy(i,kp,l,jv)
376 syz(i,kp,l,jv)=alf1q(i,k)*syz(i,kp,l,jv)
380 f0(i,k,jv)=alf(i,k)* ( s0(i,k,l,jv)+alf1(i,k)*
381 + ( sy(i,k,l,jv)+alf2(i,k)*syy(i,k,l,jv) ) )
382 fy(i,k,jv)=alfq(i,k)*
383 + (sy(i,k,l,jv)+3.*alf1(i,k)*syy(i,k,l,jv))
384 fyy(i,k,jv)=alf3(i,k)*syy(i,k,l,jv)
385 fx(i,k,jv)=alf(i,k)*(ssx(i,k,l,jv)+alf1(i,k)*ssxy(i,k,l,jv))
386 fz(i,k,jv)=alf(i,k)*(sz(i,k,l,jv)+alf1(i,k)*syz(i,k,l,jv))
387 fxy(i,k,jv)=alfq(i,k)*ssxy(i,k,l,jv)
388 fyz(i,k,jv)=alfq(i,k)*syz(i,k,l,jv)
389 fxx(i,k,jv)=alf(i,k)*ssxx(i,k,l,jv)
390 fxz(i,k,jv)=alf(i,k)*ssxz(i,k,l,jv)
391 fzz(i,k,jv)=alf(i,k)*szz(i,k,l,jv)
393 s0(i,k,l,jv)=s0(i,k,l,jv)-f0(i,k,jv)
394 sy(i,k,l,jv)=alf1q(i,k)*
395 + (sy(i,k,l,jv)-3.*alf(i,k)*syy(i,k,l,jv))
396 syy(i,k,l,jv)=alf4(i,k)*syy(i,k,l,jv)
397 ssx(i,k,l,jv)=ssx(i,k,l,jv)-fx(i,k,jv)
398 sz(i,k,l,jv)=sz(i,k,l,jv)-fz(i,k,jv)
399 ssxx(i,k,l,jv)=ssxx(i,k,l,jv)-fxx(i,k,jv)
400 ssxz(i,k,l,jv)=ssxz(i,k,l,jv)-fxz(i,k,jv)
401 szz(i,k,l,jv)=szz(i,k,l,jv)-fzz(i,k,jv)
402 ssxy(i,k,l,jv)=alf1q(i,k)*ssxy(i,k,l,jv)
403 syz(i,k,l,jv)=alf1q(i,k)*syz(i,k,l,jv)
417 IF(vgri(i,k,l).LT.0.)
THEN
418 sm(i,k,l)=sm(i,k,l)+fm(i,k)
419 alf(i,k)=fm(i,k)/sm(i,k,l)
421 sm(i,kp,l)=sm(i,kp,l)+fm(i,k)
422 alf(i,k)=fm(i,k)/sm(i,kp,l)
425 alfq(i,k)=alf(i,k)*alf(i,k)
426 alf1(i,k)=1.-alf(i,k)
427 alf1q(i,k)=alf1(i,k)*alf1(i,k)
428 alf2(i,k)=alf1(i,k)-alf(i,k)
429 alf3(i,k)=alf1(i,k)*alf(i,k)
440 IF(vgri(i,k,l).LT.0.)
THEN
442 temptm=-alf(i,k)*s0(i,k,l,jv)+alf1(i,k)*f0(i,k,jv)
443 s0(i,k,l,jv)=s0(i,k,l,jv)+f0(i,k,jv)
444 syy(i,k,l,jv)=alfq(i,k)*fyy(i,k,jv)+alf1q(i,k)*syy(i,k,l,jv)
445 + +5.*( alf3(i,k)*(fy(i,k,jv)-sy(i,k,l,jv))+alf2(i,k)*temptm )
446 sy(i,k,l,jv)=alf(i,k)*fy(i,k,jv)+alf1(i,k)*sy(i,k,l,jv)
448 ssxy(i,k,l,jv)=alf(i,k)*fxy(i,k,jv)+alf1(i,k)*ssxy(i,k,l,jv)
449 + +3.*(alf1(i,k)*fx(i,k,jv)-alf(i,k)*ssx(i,k,l,jv))
450 syz(i,k,l,jv)=alf(i,k)*fyz(i,k,jv)+alf1(i,k)*syz(i,k,l,jv)
451 + +3.*(alf1(i,k)*fz(i,k,jv)-alf(i,k)*sz(i,k,l,jv))
452 ssx(i,k,l,jv)=ssx(i,k,l,jv)+fx(i,k,jv)
453 sz(i,k,l,jv)=sz(i,k,l,jv)+fz(i,k,jv)
454 ssxx(i,k,l,jv)=ssxx(i,k,l,jv)+fxx(i,k,jv)
455 ssxz(i,k,l,jv)=ssxz(i,k,l,jv)+fxz(i,k,jv)
456 szz(i,k,l,jv)=szz(i,k,l,jv)+fzz(i,k,jv)
460 temptm=alf(i,k)*s0(i,kp,l,jv)-alf1(i,k)*f0(i,k,jv)
461 s0(i,kp,l,jv)=s0(i,kp,l,jv)+f0(i,k,jv)
462 syy(i,kp,l,jv)=alfq(i,k)*fyy(i,k,jv)+alf1q(i,k)*syy(i,kp,l,jv)
463 + +5.*( alf3(i,k)*(sy(i,kp,l,jv)-fy(i,k,jv))-alf2(i,k)*temptm )
464 sy(i,kp,l,jv)=alf(i,k)*fy(i,k,jv)+alf1(i,k)*sy(i,kp,l,jv)
466 ssxy(i,kp,l,jv)=alf(i,k)*fxy(i,k,jv)+alf1(i,k)*ssxy(i,kp,l,jv)
467 + +3.*(alf(i,k)*ssx(i,kp,l,jv)-alf1(i,k)*fx(i,k,jv))
468 syz(i,kp,l,jv)=alf(i,k)*fyz(i,k,jv)+alf1(i,k)*syz(i,kp,l,jv)
469 + +3.*(alf(i,k)*sz(i,kp,l,jv)-alf1(i,k)*fz(i,k,jv))
470 ssx(i,kp,l,jv)=ssx(i,kp,l,jv)+fx(i,k,jv)
471 sz(i,kp,l,jv)=sz(i,kp,l,jv)+fz(i,k,jv)
472 ssxx(i,kp,l,jv)=ssxx(i,kp,l,jv)+fxx(i,k,jv)
473 ssxz(i,kp,l,jv)=ssxz(i,kp,l,jv)+fxz(i,k,jv)
474 szz(i,kp,l,jv)=szz(i,kp,l,jv)+fzz(i,k,jv)
493 IF(vgri(i,k,l).GE.0.)
THEN
494 fm(i,k)=vgri(i,k,l)*dty
495 alf(i,k)=fm(i,k)/sm(i,k,l)
496 sm(i,k,l)=sm(i,k,l)-fm(i,k)
500 alfq(i,k)=alf(i,k)*alf(i,k)
501 alf1(i,k)=1.-alf(i,k)
502 alf1q(i,k)=alf1(i,k)*alf1(i,k)
503 alf2(i,k)=alf1(i,k)-alf(i,k)
504 alf3(i,k)=alf(i,k)*alfq(i,k)
505 alf4(i,k)=alf1(i,k)*alf1q(i,k)
513 IF(vgri(i,k,l).GE.0.)
THEN
514 f0(i,k,jv)=alf(i,k)* ( s0(i,k,l,jv)+alf1(i,k)*
515 + ( sy(i,k,l,jv)+alf2(i,k)*syy(i,k,l,jv) ) )
516 s00(jv)=s00(jv)+f0(i,k,jv)
518 s0(i,k,l,jv)=s0(i,k,l,jv)-f0(i,k,jv)
519 sy(i,k,l,jv)=alf1q(i,k)*
520 + (sy(i,k,l,jv)-3.*alf(i,k)*syy(i,k,l,jv))
521 syy(i,k,l,jv)=alf4(i,k)*syy(i,k,l,jv)
522 ssx(i,k,l,jv)=alf1(i,k)*(ssx(i,k,l,jv)-alf(i,k)*ssxy(i,k,l,jv))
523 sz(i,k,l,jv)=alf1(i,k)*(sz(i,k,l,jv)-alf(i,k)*syz(i,k,l,jv))
524 ssxx(i,k,l,jv)=alf1(i,k)*ssxx(i,k,l,jv)
525 ssxz(i,k,l,jv)=alf1(i,k)*ssxz(i,k,l,jv)
526 szz(i,k,l,jv)=alf1(i,k)*szz(i,k,l,jv)
527 ssxy(i,k,l,jv)=alf1q(i,k)*ssxy(i,k,l,jv)
528 syz(i,k,l,jv)=alf1q(i,k)*syz(i,k,l,jv)
536 IF(vgri(i,k,l).LT.0.)
THEN
537 fm(i,k)=-vgri(i,k,l)*dty
545 IF(vgri(i,k,l).LT.0.)
THEN
546 f0(i,k,jv)=alf(i,k)*s00(jv)
555 IF(vgri(i,k,l).LT.0.)
THEN
556 sm(i,k,l)=sm(i,k,l)+fm(i,k)
557 alf(i,k)=fm(i,k)/sm(i,k,l)
560 alfq(i,k)=alf(i,k)*alf(i,k)
561 alf1(i,k)=1.-alf(i,k)
562 alf1q(i,k)=alf1(i,k)*alf1(i,k)
563 alf2(i,k)=alf1(i,k)-alf(i,k)
564 alf3(i,k)=alf1(i,k)*alf(i,k)
572 IF(vgri(i,k,l).LT.0.)
THEN
574 temptm=-alf(i,k)*s0(i,k,l,jv)+alf1(i,k)*f0(i,k,jv)
575 s0(i,k,l,jv)=s0(i,k,l,jv)+f0(i,k,jv)
576 syy(i,k,l,jv)=alf1q(i,k)*syy(i,k,l,jv)
577 + +5.*(-alf3(i,k)*sy(i,k,l,jv)+alf2(i,k)*temptm )
578 sy(i,k,l,jv)=alf1(i,k)*sy(i,k,l,jv)+3.*temptm
579 ssxy(i,k,l,jv)=alf1(i,k)*ssxy(i,k,l,jv)-3.*alf(i,k)*ssx(i,k,l,jv)
580 syz(i,k,l,jv)=alf1(i,k)*syz(i,k,l,jv)-3.*alf(i,k)*sz(i,k,l,jv)
596 sm(iip1,j,l) = sm(1,j,l)
597 s0(iip1,j,l,jv) = s0(1,j,l,jv)
598 ssx(iip1,j,l,jv) = ssx(1,j,l,jv)
599 sy(iip1,j,l,jv) = sy(1,j,l,jv)
600 sz(iip1,j,l,jv) = sz(1,j,l,jv)
630 sqf = sqf + s0(i,j,l,ntra)
634 print*,
'---------- DIAG DANS ADVY - SORTIE --------'
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
c c zjulian c cym CALL iim cym klev iim
subroutine advyp(LIMIT, DTY, PBARV, SM, S0, SSX, SY, SZ, SSXX, SSXY, SSXZ, SYY, SYZ, SZZ, ntra)