- Timestamp:
- Jun 30, 2017, 11:03:09 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/fisrtilp.F90
r2911 r2923 103 103 ! Options du programme: 104 104 ! 105 REAL seuil_neb ! un nuage existe vraiment au-dela 106 PARAMETER (seuil_neb=0.001) 105 REAL, SAVE :: seuil_neb=0.001 ! un nuage existe vraiment au-dela 106 !$OMP THREADPRIVATE(seuil_neb) 107 107 108 108 109 INTEGER ninter ! sous-intervals pour la precipitation 109 110 PARAMETER (ninter=5) 110 LOGICAL evap_prec! evaporation de la pluie111 PARAMETER (evap_prec=.TRUE.)111 INTEGER,SAVE :: iflag_evap_prec=1 ! evaporation de la pluie 112 !$OMP THREADPRIVATE(iflag_evap_prec) 112 113 ! 113 114 LOGICAL cpartiel ! condensation partielle … … 124 125 ! 125 126 INTEGER i, k, n, kk 127 INTEGER,save::itap=0 128 !$OMP THREADPRIVATE(itap) 129 126 130 REAL qsl, qsi 127 131 real zct ,zcl … … 154 158 REAL t_glace_min_old 155 159 REAL zdz(klon),zrho(klon),ztot , zrhol(klon) 156 REAL zchau ,zfroi ,zfice(klon),zneb(klon) 160 REAL zchau ,zfroi ,zfice(klon),zneb(klon),znebprecip(klon) 157 161 REAL zmelt, zpluie, zice 158 162 REAL dzfice(klon) … … 212 216 !CR: pour iflag_ice_thermo=2, on active que la convection 213 217 ! ice_thermo = iflag_ice_thermo .GE. 1 218 219 itap=itap+1 220 znebprecip(:)=0. 221 214 222 ice_thermo = (iflag_ice_thermo .EQ. 1).OR.(iflag_ice_thermo .GE. 3) 215 223 zdelq=0.0 … … 218 226 IF (appel1er) THEN 219 227 CALL getin_p('iflag_oldbug_fisrtilp',iflag_oldbug_fisrtilp) 228 CALL getin_p('iflag_evap_prec',iflag_evap_prec) 229 CALL getin_p('seuil_neb',seuil_neb) 220 230 write(lunout,*)' iflag_oldbug_fisrtilp =',iflag_oldbug_fisrtilp 221 231 ! 222 232 WRITE(lunout,*) 'fisrtilp, ninter:', ninter 223 WRITE(lunout,*) 'fisrtilp, evap_prec:',evap_prec233 WRITE(lunout,*) 'fisrtilp, iflag_evap_prec:', iflag_evap_prec 224 234 WRITE(lunout,*) 'fisrtilp, cpartiel:', cpartiel 235 225 236 IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN 226 237 WRITE(lunout,*) 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime … … 387 398 ! - zmqc: masse de precip qui doit etre thermalisee 388 399 ! 389 IF ( evap_prec) THEN400 IF (iflag_evap_prec>=1) THEN 390 401 DO i = 1, klon 391 402 ! S'il y a des precipitations … … 480 491 ! S'il y a des precipitations 481 492 IF (zrfl(i)+zifl(i).GT.0.) THEN 493 494 IF (iflag_evap_prec==1) THEN 495 znebprecip(i)=zneb(i) 496 ELSE 497 znebprecip(i)=MAX(zneb(i),znebprecip(i)) 498 ENDIF 482 499 483 500 ! Evap max pour ne pas saturer la fraction sous le nuage 484 zqev0 = MAX (0.0, (zqs(i)-zq(i))*zneb (i) )501 zqev0 = MAX (0.0, (zqs(i)-zq(i))*znebprecip(i) ) 485 502 486 503 !JAM … … 567 584 zrfl(i) = zrfln(i) 568 585 zifl(i) = zifln(i) 586 ! print*,'REEVAP ',itap,k,znebprecip(1),zqev0,zqev,zqevi,zrfl(1) 569 587 570 588 !CR ATTENTION: deplacement de la fonte de la glace … … 595 613 end if 596 614 615 ELSE 616 ! Si on n'a plus de pluies, on reinitialise a 0 la farcion 617 ! sous nuageuse utilisee pour la pluie. 618 znebprecip(i)=0. 597 619 ENDIF ! (zrfl(i)+zifl(i).GT.0.) 598 620 ENDDO … … 603 625 ! Fin evaporation de la precipitation 604 626 ! ---------------------------------------------------------------- 605 ENDIF ! ( evap_prec)627 ENDIF ! (iflag_evap_prec>=1) 606 628 ! 607 629 ! Calculer Qs et L/Cp*dQs/dT:
Note: See TracChangeset
for help on using the changeset viewer.