Changeset 5099 for LMDZ6/branches/Amaury_dev/libf/phylmd/cvltr_scav.F90
- Timestamp:
- Jul 22, 2024, 9:29:09 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/cvltr_scav.F90
r5082 r5099 1 ! 1 2 2 ! $Id $ 3 ! 3 4 4 SUBROUTINE cvltr_scav(pdtime, da, phi,phi2,d1a,dam, mpIN,epIN, & 5 5 sigd,sij,wght_cvfd,clw,elij,epmlmMm,eplaMm, & … … 10 10 qPa,qMel,qTrdi,dtrcvMA,Mint, & 11 11 zmfd1a,zmfphi2,zmfdam) 12 ! 12 13 13 USE IOIPSL 14 14 USE dimphy … … 33 33 REAL,DIMENSION(klon,klev),INTENT(IN) :: d1a,dam ! matrices pour simplifier 34 34 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: phi2 ! l'ecriture des tendances 35 ! 35 36 36 REAL,DIMENSION(klon,klev),INTENT(IN) :: mpIN 37 37 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs ! pression aux 1/2 couches (bas en haut) … … 40 40 REAL,DIMENSION(klon,klev),INTENT(IN) :: upd ! saturated updraft mass flux 41 41 REAL,DIMENSION(klon,klev),INTENT(IN) :: dnd ! saturated downdraft mass flux 42 ! 42 43 43 REAL,DIMENSION(klon,klev),INTENT(IN) :: wdtrainA ! masses precipitantes de l'asc adiab 44 44 REAL,DIMENSION(klon,klev),INTENT(IN) :: wdtrainM ! masses precipitantes des melanges … … 59 59 REAL,DIMENSION(klon),INTENT(IN) :: sigd 60 60 INTEGER,DIMENSION(klon),INTENT(IN) :: icb,inb 61 ! 61 62 62 REAL,DIMENSION(klon,klev),INTENT(IN) :: ccntrAA_3d 63 63 REAL,DIMENSION(klon,klev),INTENT(IN) :: ccntrENV_3d 64 64 REAL,DIMENSION(klon,klev),INTENT(IN) :: coefcoli_3d 65 ! 65 66 66 ! Sortie 67 67 REAL,DIMENSION(klon,klev,nbtr),INTENT(OUT) :: dtrcv ! tendance totale (bas en haut) … … 71 71 REAL,DIMENSION(klon,klev,nbtr),INTENT(OUT) :: dtrsat ! tendance trsp+sat scav 72 72 REAL,DIMENSION(klon,klev,nbtr),INTENT(OUT) :: dtrUscav ! tendance du lessivage courant unsat 73 ! 73 74 74 ! Variables locales 75 75 INTEGER :: i,j,k … … 116 116 !!! 117 117 REAL,DIMENSION(klon,klev) :: imp ! coefficient d'impaction 118 ! 118 119 119 LOGICAL,DIMENSION(klon,klev) :: NO_precip 120 120 ! var tmp tests … … 142 142 !! ENDDO 143 143 !>jyg 144 ! 144 145 145 ! initialisation pour flux de traceurs, td et autre 146 ! 146 147 147 trsptrac = 0. 148 148 scavtrac = 0. … … 308 308 ENDDO 309 309 !!!!! 310 ! 310 311 311 ! rajout du terme lie a l ascendance induite 312 ! 312 313 313 DO j=2,klev 314 314 DO i=1,klon … … 316 316 END DO 317 317 END DO 318 ! 318 319 319 ! tendance courants insatures ! sans lessivage ancien schema 320 ! 320 321 321 DO k=1,klev 322 322 DO j=1,klev … … 326 326 END DO 327 327 END DO 328 ! 328 329 329 ! ========================================= 330 330 ! calcul des tendances liees aux courants satures j <-> z ; k <-> z' … … 338 338 END DO 339 339 !RL 340 ! 340 341 341 DO j=1,klev 342 342 DO i=1,klon … … 347 347 END DO 348 348 END DO 349 ! 349 350 350 DO k=1,klev 351 351 DO j=1,klev … … 540 540 (pmflxr(i,j+1)+pmflxs(i,j+1)+Pa(i,j)+Pm(i,j))*& 541 541 (-mp(i,j+1)*qDi(i,j+1,it))) 542 ! 542 543 543 qPr(i,j,it)=kappa(i,j)*(& 544 544 (-mp(i,j+1)-imp(i,j)/RG*dxpres(i,j))*& … … 558 558 (pmflxr(i,j+1)+pmflxs(i,j+1)+Pa(i,j)+Pm(i,j))*& 559 559 (-mp(i,j+1)*(qDi(i,j+1,it)-tr(i,j,it))-mp(i,j)*tr(i,j,it))) 560 ! 560 561 561 qPr(i,j,it)=kappa(i,j)*(& 562 562 (-mp(i,j)-imp(i,j)/RG*dxpres(i,j))*& … … 622 622 uscavtrac= (-mp(i,k)+mp(i,k+1))*(qDi(i,k,it)-tr(i,k,it))& 623 623 + mp(i,k)*(tr(i,k-1,it)-tr(i,k,it)) 624 ! 624 625 625 ! if(it.eq.3) write(*,'(I2,1X,a,5X,e20.12,82X,a,e20.12)')k,' det incloud',& 626 626 ! (-mp(i,k)+mp(i,k+1))*(qDi(i,k,it)-tr(i,k,it))*pdtimeRG/dxpres(i,k)+& … … 630 630 ELSEIF(mp(i,k)>mp(i,k+1).AND.mp(i,k)>1.e-10) THEN 631 631 uscavtrac= mp(i,k)*(tr(i,k-1,it)-tr(i,k,it)) 632 ! 632 633 633 ! if(it.eq.3) write(*,'(I2,1X,a,5X,e20.12,82X,a,e20.12)')k,' ent incloud',uscavtrac*pdtimeRG/dxpres(i,k), 'mp',mp(i,k) 634 634 !=!------------------------------------------------------------- end ent/det … … 656 656 uscavtrac= (-0.+mp(i,2))*(qDi(i,k,it)-tr(i,k,it)) !& 657 657 ! + mp(i,2)*(0.-tr(i,k,it)) 658 ! 658 659 659 ! if(it.eq.3) write(*,'(I2,1X,a,e20.12,84X,a,e20.12)')k,' 1 det',& 660 660 ! (-0.+mp(i,2))*(qDi(i,k,it)-tr(i,k,it))*pdtimeRG/dxpres(i,k)+& … … 696 696 ! conservMA=conservMA+dtrcvMA(i,k,it)* & 697 697 ! (paprs(i,k)-paprs(i,k+1))/RG 698 ! 698 699 699 ! if(it.eq.3) write(*,'(I2,2X,a,e20.12,2X,a,e20.12,2X,a,e20.12,2X,a,e20.12)') k,& 700 700 ! 'MA td ',dtrcvMA(i,k,it)*dxpres(i,k)/RG,&
Note: See TracChangeset
for help on using the changeset viewer.