Ignore:
Timestamp:
Apr 22, 2025, 2:04:21 PM (2 months ago)
Author:
aborella
Message:

Restored energy balance

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp.f90

    r5618 r5624  
    333333  ! for contrails
    334334  REAL, DIMENSION(klon) :: contfra, perscontfra, qcont
     335  REAL, DIMENSION(klon) :: zq_nodeep
    335336  LOGICAL, DIMENSION(klon) :: pt_pron_clds
    336337  !--for Lamquin et al 2012 diagnostics
     
    666667          ENDIF
    667668
     669          zq_nodeep(:) = zq(:)
     670
    668671          DO i = 1, klon
    669672
     
    677680              !--only in the environment. NB. the clear sky fraction will the be
    678681              !--maximised by 1. - cfcon(i,k)
    679               IF ( ptconv(i,k) ) zq(i) = zq(i) - ( qvcon(i,k) + qccon(i,k) ) * cfcon(i,k)
     682              IF ( ptconv(i,k) ) &
     683                  zq_nodeep(i) = zq(i) - ( qvcon(i,k) + qccon(i,k) ) * cfcon(i,k)
    680684
    681685              IF ( ( cfcon(i,k) * qccon(i,k) ) .LT. ( cfcon_old(i,k) * qccon_old(i,k) ) ) THEN
     
    701705              !--Barriers
    702706              cldfra_in(i) = MAX(0., MIN(1. - cfcon(i,k), cldfra_in(i)))
    703               qvc_in(i)    = MAX(0., MIN(zq(i), qvc_in(i)))
    704               qice_in(i)   = MAX(0., MIN(zq(i) - qvc_in(i), qice_in(i)))
     707              qvc_in(i)    = MAX(0., MIN(zq_nodeep(i), qvc_in(i)))
     708              qice_in(i)   = MAX(0., MIN(zq_nodeep(i) - qvc_in(i), qice_in(i)))
    705709
    706710              !--Calculate the shear value (input for condensation and ice supersat)
     
    808812                        klon, dtime, pplay(:,k), paprs(:,k), paprs(:,k+1), &
    809813                        cfcon(:,k), cldfra_in, qvc_in, qliq_in, qice_in, &
    810                         shear, tke_dissip(:,k), cell_area, Tbef, zq, zqs, &
     814                        shear, tke_dissip(:,k), cell_area, Tbef, zq_nodeep, zqs, &
    811815                        gammasat, ratqs(:,k), keepgoing, pt_pron_clds, &
    812816                        cldfra_above, icesed_flux,&
     
    823827                        dcfa_mix(:,k), dqia_mix(:,k), dqta_mix(:,k))
    824828
     829                    DO i = 1, klon
     830                      !--If prognostic clouds are activated, deep convection vapor is
     831                      !--re-added to the total water vapor
     832                      IF ( keepgoing(i) .AND. ptconv(i,k) .AND. pt_pron_clds(i) ) THEN
     833                        IF ( ( rneb(i,k) + cfcon(i,k) ) .GT. eps ) THEN
     834                          zqn(i) = ( zqn(i) * rneb(i,k) + qccon(i,k) * cfcon(i,k) ) &
     835                              / ( rneb(i,k) + cfcon(i,k) )
     836                        ELSE
     837                          zqn(i) = 0.
     838                        ENDIF
     839                        rneb(i,k) = rneb(i,k) + cfcon(i,k)
     840                        qvc(i) = qvc(i) + qvcon(i,k) * cfcon(i,k)
     841                      ENDIF
     842                    ENDDO
    825843
    826844                  ELSE
     
    12001218
    12011219      DO i = 1, klon
    1202 
    1203         !--If prognostic clouds are activated, deep convection vapor is
    1204         !--re-added to the total water vapor
    1205         IF ( ptconv(i,k) .AND. pt_pron_clds(i) ) &
    1206             zq(i) = zq(i) + ( qvcon(i,k) + qccon(i,k) ) * cfcon(i,k)
    12071220
    12081221        cf_seri(i,k) = rneb(i,k)
Note: See TracChangeset for help on using the changeset viewer.