Changeset 4888


Ignore:
Timestamp:
Apr 2, 2024, 9:29:46 PM (9 months ago)
Author:
evignon
Message:

ajout d'une condition sur les fractions precipitantes pour la fonte et le freezing dans poprecip

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_poprecip.F90

    r4884 r4888  
    361361!--Initialisation of variables
    362362
     363
    363364qzero(:)    = 0.
    364365
     
    382383  dqlauto = 0.
    383384  dqlrim  = 0.
    384   dqifreez= 0.
    385385
    386386  !--dhum_to_dflux: coef to convert a delta in specific quantity to a flux
     
    710710    air_thermal_conduct=(5.69+0.017*(temp(i)-RTT))*1.e-3*4.184                ! thermal conductivity of the air, SI
    711711
     712
    712713    !--In clear air
    713     IF ( snowclr(i) .GT. 0. ) THEN
     714    IF ( ( snowclr(i) .GT. 0. ) .AND.  ( precipfracclr(i) .GT. 0. ) ) THEN
    714715      !--Calculated according to
    715716      !-- flux = velocity_snowflakes * nb_snowflakes * volume_snowflakes * rho_snow
     
    719720                   * capa_snowflake / RLMLT * coef_ventil &
    720721                   * MAX(0., temp_wetbulb - RTT) * dtime
    721 
     722     
    722723      !--Barrier to limit the melting flux to the clr snow flux in the mesh
    723724      dqsclrmelt = MAX( dqsclrmelt , -snowclr(i) / dhum_to_dflux(i))
    724725    ENDIF
    725726
     727
    726728    !--In cloudy air
    727     IF ( snowcld(i) .GT. 0. ) THEN
     729    IF ( ( snowcld(i) .GT. 0. ) .AND. ( precipfraccld(i) .GT. 0. ) ) THEN
    728730      !--Calculated according to
    729731      !-- flux = velocity_snowflakes * nb_snowflakes * volume_snowflakes * rho_snow
     
    736738      !--Barrier to limit the melting flux to the cld snow flux in the mesh
    737739      dqscldmelt = MAX(dqscldmelt , - snowcld(i) / dhum_to_dflux(i))
    738     ENDIF
     740   ENDIF
    739741   
     742
    740743    !--Barrier on temperature. If the total melting flux leads to a
    741744    !--positive temperature, it is limited to keep temperature above 0 degC.
     
    758761    snowclr(i) = MAX(0., snowclr(i) + dqsclrmelt * dhum_to_dflux(i))
    759762    snowcld(i) = MAX(0., snowcld(i) + dqscldmelt * dhum_to_dflux(i))
    760 
    761763
    762764    !--Temperature adjustment with the release of latent
     
    807809    dqrtotfreez_step1 = 0.
    808810
    809     IF ( ( qice(i) .GT. 0. ) .AND. ( raincld(i) .GT. 0. ) ) THEN
     811    IF ( ( qice(i) .GT. 0. ) .AND. ( raincld(i) .GT. 0. ) .AND. ( precipfraccld(i) .GT. 0. ) ) THEN
    810812      dqrclrfreez = 0.
    811813      dqrcldfreez = 0.
     
    913915
    914916  ENDIF
     917
     918
    915919
    916920  !--If the local flux of rain+snow in clear/cloudy air is lower than rain_int_min,
     
    943947                 + snowcld(i) / ( pplay(i) / RD / temp(i) ) / snow_fallspeed_cld )
    944948
     949
    945950ENDDO ! loop on klon
    946951
     952
    947953END SUBROUTINE poprecip_postcld
    948954
Note: See TracChangeset for help on using the changeset viewer.