Changeset 6077 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Feb 16, 2026, 2:44:02 PM (4 days ago)
Author:
evignon
Message:

changemeent condition (simplification) appel nouvelle param de phase

Location:
LMDZ6/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_main.f90

    r6028 r6077  
    746746               ! only in stratiform clouds in the mixed phase regime (Raillard et al. 2025)
    747747               ! it overwrites temperature-dependent phase partitioning except for convective boundary layer clouds
    748                pticefracturb(:) = (fraca(:, k) < min_frac_th_cld) .AND. (Tbef(:) .GT. temp_nowater) .AND. (Tbef(:) .LT. RTT)
     748               pticefracturb(:) = (fraca(:, k) < min_frac_th_cld)
    749749               DO i = 1, klon
    750750                  qincloud(i) = zqn(i)
     
    768768               ! hence we assume that no snow falls in thermals.
    769769               ! we activate only in the mixed phase regime not to distrub the cirrus param at very cold T
    770                pticefracturb(:) = (Tbef(:) .GT. temp_nowater) .AND. (Tbef(:) .LT. RTT)
     770               pticefracturb(:) = .TRUE.
    771771               !Thermals
    772772               DO i = 1, klon
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_phase.f90

    r6075 r6077  
    245245         ! because cldfra is intent in, but can be locally modified due to test
    246246         cldfra1D = cldfra(i)
    247          ! activate param for concerned grid points and for cloudy conditions
    248          IF ((pticefracturb(i)) .AND. (cldfra(i) .GT. 0.)) THEN
    249             IF (cldfra(i) .GE. 1.0) THEN
    250                cldfra1D = 1.0
    251             END IF
    252 
    253             ! T>0°C, no ice allowed
    254             IF (temp(i) .GE. RTT) THEN
    255                qvap_cld(i) = qsatl(i)*cldfra1D
    256                qliq(i) = MAX(0.0, qtot_incl(i) - qsatl(i))*cldfra1D
    257                qice(i) = 0.
    258                cldfraliq(i) = 1.
    259                icefrac(i) = 0.
    260                dicefracdT(i) = 0.
    261 
    262                ! T<-38°C, no liquid allowed
    263             ELSE IF (temp(i) .LE. temp_nowater) THEN
    264                qvap_cld(i) = qsati(i)*cldfra1D
    265                qliq(i) = 0.
    266                qice(i) = MAX(0.0, qtot_incl(i) - qsati(i))*cldfra1D
    267                cldfraliq(i) = 0.
    268                icefrac(i) = 1.
    269                dicefracdT(i) = 0.
    270 
    271                !---------------------------------------------------------
    272                !--             MIXED PHASE TEMPERATURE REGIME
    273                !---------------------------------------------------------
    274                !--In the mixed phase regime (-38°C< T <0°C) we distinguish
    275                !--3 possible subcases.
    276                !--1.  No pre-existing ice
    277                !--2A. Pre-existing ice and no turbulence
    278                !--2B. Pre-existing ice and turbulence
    279             ELSE
    280 
    281                ! gamma_snwretro controls the contribution of snowflakes to the negative feedback
    282                ! note that for reasons related to inetarctions with the condensation iteration in lscp_main
    283                ! we consider here the mean snowflake concentration in the mesh (not the in-cloud concentration)
    284                ! when poprecip is active, it will be worth testing considering the incloud fraction, dividing
    285                ! by znebprecipcld
    286                ! qiceini_incl  = qice_ini(i) / cldfra1D + &
    287                !              gamma_snwretro * snowcld(i) * RG * dtime / ( paprsdn(i) - paprsup(i) )
    288                ! assuming constant snowfall velocity
     247         ! T>0°C, no ice allowed
     248         IF (temp(i) .GE. RTT) THEN
     249            qvap_cld(i) = qsatl(i)*cldfra1D
     250            qliq(i) = MAX(0.0, qtot_incl(i) - qsatl(i))*cldfra1D
     251            qice(i) = 0.
     252            cldfraliq(i) = 1.
     253            icefrac(i) = 0.
     254            dicefracdT(i) = 0.
     255
     256            ! T<-38°C, no liquid allowed
     257         ELSE IF (temp(i) .LE. temp_nowater) THEN
     258            qvap_cld(i) = qsati(i)*cldfra1D
     259            qliq(i) = 0.
     260            qice(i) = MAX(0.0, qtot_incl(i) - qsati(i))*cldfra1D
     261            cldfraliq(i) = 0.
     262            icefrac(i) = 1.
     263            dicefracdT(i) = 0.
     264          ELSE
     265            !---------------------------------------------------------
     266            !--             MIXED PHASE TEMPERATURE REGIME
     267            !---------------------------------------------------------
     268            !--In the mixed phase regime (-38°C< T <0°C) we distinguish
     269            !--3 possible subcases.
     270            !--1.  No pre-existing ice
     271            !--2A. Pre-existing ice and no turbulence
     272            !--2B. Pre-existing ice and turbulence
     273
     274            ! gamma_snwretro controls the contribution of snowflakes to the negative feedback
     275            ! note that for reasons related to inetarctions with the condensation iteration in lscp_main
     276            ! we consider here the mean snowflake concentration in the mesh (not the in-cloud concentration)
     277            ! when poprecip is active, it will be worth testing considering the incloud fraction, dividing
     278            ! by znebprecipcld
     279            ! qiceini_incl  = qice_ini(i) / cldfra1D + &
     280            !              gamma_snwretro * snowcld(i) * RG * dtime / ( paprsdn(i) - paprsup(i) )
     281            ! assuming constant snowfall velocity
     282
     283            ! activate param for concerned grid points and for cloudy conditions
     284            IF ((pticefracturb(i)) .AND. (cldfra(i) .GT. 0.)) THEN
     285               IF (cldfra(i) .GE. 1.0) THEN
     286                 cldfra1D = 1.0
     287               END IF
     288
    289289               qiceini_incl = qice_ini(i)/cldfra1D + gamma_snwretro*snowcld(i)/pplay(i)*RD*temp(i)/snow_fallspeed
    290290
     
    466466               END IF ! End qini
    467467
    468             END IF ! ! MPC temperature
    469 
    470          END IF ! pticefracturb and cldfra
     468            END IF ! pticefracturb and cldfra
     469
     470         END IF ! MPC temp
    471471
    472472      END DO ! klon
Note: See TracChangeset for help on using the changeset viewer.