Changeset 2923 for LMDZ5/trunk/libf


Ignore:
Timestamp:
Jun 30, 2017, 11:03:09 AM (7 years ago)
Author:
fhourdin
Message:

Correction sous drapeaux d'une errance sur la reevaporation de la pluie.
flag_evap_prec = 0 : pas de reevaporation

1 : comme avant
2 : nouveau ou on utilise une surface max des nuages au

dessus comme fraction de la maille dans laquelle la
pluie peut se reevaporer (alors que c'etait la fraction
de la maille juste au dessus avant).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/fisrtilp.F90

    r2911 r2923  
    103103  ! Options du programme:
    104104  !
    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
    107108
    108109  INTEGER ninter ! sous-intervals pour la precipitation
    109110  PARAMETER (ninter=5)
    110   LOGICAL evap_prec ! evaporation de la pluie
    111   PARAMETER (evap_prec=.TRUE.)
     111  INTEGER,SAVE :: iflag_evap_prec=1 ! evaporation de la pluie
     112  !$OMP THREADPRIVATE(iflag_evap_prec)
    112113  !
    113114  LOGICAL cpartiel ! condensation partielle
     
    124125  !
    125126  INTEGER i, k, n, kk
     127  INTEGER,save::itap=0
     128  !$OMP THREADPRIVATE(itap)
     129
    126130  REAL qsl, qsi
    127131  real zct      ,zcl
     
    154158  REAL t_glace_min_old
    155159  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)
    157161  REAL zmelt, zpluie, zice
    158162  REAL dzfice(klon)
     
    212216!CR: pour iflag_ice_thermo=2, on active que la convection
    213217!  ice_thermo = iflag_ice_thermo .GE. 1
     218
     219itap=itap+1
     220znebprecip(:)=0.
     221
    214222   ice_thermo = (iflag_ice_thermo .EQ. 1).OR.(iflag_ice_thermo .GE. 3)
    215223  zdelq=0.0
     
    218226  IF (appel1er) THEN
    219227     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)
    220230     write(lunout,*)' iflag_oldbug_fisrtilp =',iflag_oldbug_fisrtilp
    221231     !
    222232     WRITE(lunout,*) 'fisrtilp, ninter:', ninter
    223      WRITE(lunout,*) 'fisrtilp, evap_prec:', evap_prec
     233     WRITE(lunout,*) 'fisrtilp, iflag_evap_prec:', iflag_evap_prec
    224234     WRITE(lunout,*) 'fisrtilp, cpartiel:', cpartiel
     235     
    225236     IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN
    226237        WRITE(lunout,*) 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime
     
    387398     !   - zmqc: masse de precip qui doit etre thermalisee
    388399     !
    389      IF (evap_prec) THEN
     400     IF (iflag_evap_prec>=1) THEN
    390401        DO i = 1, klon
    391402!          S'il y a des precipitations
     
    480491!        S'il y a des precipitations
    481492         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
    482499     
    483500        ! 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) )
    485502
    486503         !JAM
     
    567584         zrfl(i) = zrfln(i)
    568585         zifl(i) = zifln(i)
     586!        print*,'REEVAP ',itap,k,znebprecip(1),zqev0,zqev,zqevi,zrfl(1)
    569587
    570588!CR ATTENTION: deplacement de la fonte de la glace
     
    595613           end if
    596614
     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.
    597619           ENDIF ! (zrfl(i)+zifl(i).GT.0.)
    598620        ENDDO
     
    603625     ! Fin evaporation de la precipitation
    604626     ! ----------------------------------------------------------------
    605      ENDIF ! (evap_prec)
     627     ENDIF ! (iflag_evap_prec>=1)
    606628     !
    607629     ! Calculer Qs et L/Cp*dQs/dT:
Note: See TracChangeset for help on using the changeset viewer.