Changeset 541 for LMDZ4/trunk/libf/phylmd/phytrac.F
- Timestamp:
- Jun 22, 2004, 1:45:36 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/phytrac.F
r524 r541 23 23 I pde_d, 24 24 I coefh, 25 I fm_therm,entr_therm, 25 26 I yu1, 26 27 I yv1, … … 130 131 logical debutphy ! le flag de l'initialisation de la physique 131 132 logical lafin ! le flag de la fin de la physique 132 133 c Olivia 134 integer isplit,nsplit 133 135 REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1) !--lessivage convection 134 136 REAL prfl(klon,klev+1), psfl(klon,klev+1) !--lessivage large-scale … … 146 148 REAL pmfd(nlon,nlev) ! flux de masse dans le panache descendant 147 149 REAL pen_u(nlon,nlev) ! flux entraine dans le panache montant 150 151 c 152 c thermiques: 153 c ----------- 154 c 155 real fm_therm(klon,klev+1),entr_therm(klon,klev) 156 real fm_therm1(klon,klev) 157 c 148 158 REAL pde_u(nlon,nlev) ! flux detraine dans le panache montant 149 159 REAL pen_d(nlon,nlev) ! flux entraine dans le panache descendant … … 265 275 REAL d_tr(klon,klev), d_trs(klon) ! tendances de traceurs 266 276 REAL d_tr_cl(klon,klev) ! tendance de traceurs couche limite 267 REAL d_tr_cv(klon,klev) ! tendance de traceurs convection 277 REAL d_tr_cli(klon,klev,nbtr) ! tendance de traceurs CL pour chq traceur 278 REAL d_tr_cv(klon,klev) ! tendance de traceurs convection 279 REAL d_tr_cvi(klon,klev,nbtr) ! tendance de traceurs conv pour chq traceur 280 REAL d_tr_th(klon,klev,nbtr) ! la tendance des thermiques 268 281 REAL d_tr_dec(klon,klev,nbtr) ! la tendance de la decroissance 269 282 c ! radioactive du rn - > pb … … 280 293 REAL flestottr(klon,klev,nbtr) ! flux de lessivage 281 294 c ! dans chaque couche 295 real zmasse(klon,klev) 296 real ztra_th(klon,klev) 282 297 283 298 C … … 288 303 c------------- 289 304 logical first,couchelimite,convection,lessivage,sorties, 290 s rnpb,inirnpb 291 save first,couchelimite,convection,lessivage,sorties, 292 s inirnpb 293 data first,couchelimite,convection,lessivage,sorties 294 s /.true.,.true.,.false.,.true.,.true./ 305 s rnpb,inirnpb,thermiques 306 save first,couchelimite,convection,lessivage,thermiques, 307 s sorties,inirnpb 308 c data first,couchelimite,convection,lessivage,sorties 309 c s /.true.,.true.,.false.,.true.,.true./ 310 c Olivia 311 data first,couchelimite,convection,lessivage, 312 s thermiques,sorties 313 s /.true.,.true.,.true.,.true.,.true.,.true./ 314 295 315 296 316 #ifdef INCA … … 522 542 DO i = 1, klon 523 543 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cv(i,k) 544 d_tr_cvi(i,k,it)=d_tr_cv(i,k) 545 c print*,'en k i d_tr_cv=',k,i,d_tr_cv(i,k) 524 546 ENDDO 525 547 ENDDO … … 541 563 c enddo 542 564 565 566 c====================================================================== 567 c Calcul de l'effet des thermiques 568 c====================================================================== 569 570 do k=1,klev 571 do i=1,klon 572 zmasse(i,k)=(paprs(i,k)-paprs(i,k+1))/rg 573 enddo 574 enddo 575 576 c print*,'masse dans ph ',zmasse 577 do it=1,nqmax 578 do k=1,klev 579 do i=1,klon 580 d_tr_th(i,k,it)=0. 581 tr_seri(i,k,it)=max(tr_seri(i,k,it),0.) 582 tr_seri(i,k,it)=min(tr_seri(i,k,it),1.e10) 583 enddo 584 enddo 585 enddo 586 587 if (thermiques) then 588 print*,'calcul de leffet des thermiques' 589 nsplit=10 590 DO it=1, nqmax 591 c WRITE(itn,'(i1)') it 592 c CALL minmaxqfi(tr_seri(1,1,it),1.e10,-1.e33,'conv it='//itn) 593 c print*,'avant dqthermiquesretro' 594 c call dump2d(iim,jjm-1,tr_seri(2,1,1),'TR_SERI ') 595 596 do isplit=1,nsplit 597 c Abderr 25 11 02 598 C Thermiques 599 c print*,'Avant dans phytrac',avant 600 call dqthermcell(klon,klev,pdtphys/nsplit 601 . ,fm_therm,entr_therm,zmasse 602 . ,tr_seri(1:klon,1:klev,it),d_tr,ztra_th) 603 604 do k=1,klev 605 do i=1,klon 606 d_tr(i,k)=pdtphys*d_tr(i,k)/nsplit 607 d_tr_th(i,k,it)=d_tr_th(i,k,it)+d_tr(i,k) 608 tr_seri(i,k,it)=max(tr_seri(i,k,it)+d_tr(i,k),0.) 609 enddo 610 enddo 611 enddo ! nsplit 612 print*,'apres thermiques' 613 c call dump2d(iim,jjm-1,d_tr_th(1,1,1),'d_tr_th ') 614 c do k=1,klev 615 c print*,'d_tr_th(',k,')=',tr_seri(280,k,1) 616 c enddo 617 618 c WRITE(itn,'(i1)') it 619 c CALL minmaxqfi(tr_seri(1,1,it),1.e10,-1.e33,'therm it='//itn) 620 ENDDO ! it 621 endif ! Thermiques 622 c print*,'ATTENTION: sdans thermniques' 623 543 624 c====================================================================== 544 625 c Calcul de l'effet de la couche limite … … 576 657 DO i = 1, klon 577 658 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cl(i,k) 659 d_tr_cli(i,k,it)=d_tr_cl(i,k) 578 660 ENDDO 579 661 ENDDO … … 608 690 DO i = 1, klon 609 691 tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr(i,k) 692 d_tr_cli(i,k,it)=d_tr_cl(i,k) 610 693 ENDDO 611 694 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.