Changeset 2093


Ignore:
Timestamp:
Feb 7, 2019, 12:01:36 PM (6 years ago)
Author:
aboissinot
Message:

d_temp is now taken into acocunt in thermcell_plume to trigger the plume and compute first unstable layer speed.
Modified temperature is computed in thermcell_plume and thermcell_alim get it via its arguments.

Location:
trunk/LMDZ.GENERIC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r2092 r2093  
    14481448- uncomment two "corrections" in thermcell_flux. They are used only if iflag_thermals_optflux is set to 0
    14491449- remove useless parameter fact_shell in thermcell_mod
     1450- now take d_temp into acocunt in thermcell_plume to trigger the plume and compute first unstable layer speed.
  • trunk/LMDZ.GENERIC/libf/phystd/thermcell_alim.F90

    r2069 r2093  
    22!
    33!
    4       SUBROUTINE thermcell_alim(ngrid,klev,ztv,zlev,alim_star,lalim,lmin)
     4      SUBROUTINE thermcell_alim(ngrid,klev,ztv2,zlev,alim_star,lalim,lmin)
    55     
    66     
     
    2727      INTEGER, INTENT(IN) :: lmin(ngrid)        ! plume initial level
    2828     
    29       REAL, INTENT(IN) :: ztv(ngrid,klev)       ! Large scale virtual potential temperature
    30 ! Virtual potential temperature offset in linf layer
     29      REAL, INTENT(IN) :: ztv2(ngrid,klev)      ! Virtual potential temperature
    3130      REAL, INTENT(IN) :: zlev(ngrid,klev+1)    ! levels altitude
    3231     
     
    4443     
    4544      REAL :: alim_star_tot(ngrid)              ! integrated alimentation
    46       REAL :: ztv2(ngrid,klev)                  ! ztv + d_temp
    4745     
    4846!==============================================================================
     
    5351     
    5452      alim_star_tot(:) = 0.
    55      
    56       ztv2(:,:) = ztv(:,:)
    57       ztv2(:,linf) = ztv2(:,linf) + d_temp
    5853     
    5954!==============================================================================
  • trunk/LMDZ.GENERIC/libf/phystd/thermcell_plume.F90

    r2072 r2093  
    9696      REAL zqsat(ngrid)                         ! saturation vapor pressure (before mixing)
    9797      REAL zdz                                  ! layers height
     98      REAL ztv2(ngrid,klev)                     ! ztv + d_temp * Dirac(l=lmin)
    9899     
    99100      REAL zalpha                               !
     
    159160      lmin(:)          = linf
    160161     
     162      ztv2(:,:)        = ztv(:,:)
     163      ztv2(:,linf)     = ztv2(:,linf) + d_temp
     164     
    161165!==============================================================================
    162166! 0. Calcul de l'alimentation
     
    175179         l = linf
    176180         DO WHILE ((.not.active(ig)) .and. pplev(ig,l+1).gt.pres_limit .and. l.lt.klev)
    177             IF (ztv(ig,l).gt.ztv(ig,l+1)) THEN
     181            IF (ztv2(ig,l).gt.ztv2(ig,l+1)) THEN
    178182               active(ig) = .true.
    179183               lmin(ig) = l
     
    186190! AB : On pourrait n'appeler thermcell_alim que si la plume est active
    187191!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    188       CALL thermcell_alim(ngrid,klev,ztv,zlev,alim_star,lalim,lmin)
     192      CALL thermcell_alim(ngrid,klev,ztv2,zlev,alim_star,lalim,lmin)
    189193     
    190194!==============================================================================
     
    208212           
    209213            zw2(ig,l+1) = 2. * RG * (zlev(ig,l+1) - zlev(ig,l))               &
    210             &                * (ztv(ig,l) - ztv(ig,l+1)) / ztv(ig,l+1)
     214            &                * (ztv2(ig,l) - ztv2(ig,l+1)) / ztv2(ig,l+1)
    211215           
    212216            w_est(ig,l+1) = zw2(ig,l+1)
    213            
    214217         ENDIF
    215218      ENDDO
     
    488491      ENDDO
    489492     
    490 #undef wrgrads_thermcell
    491 #ifdef wrgrads_thermcell
    492       call wrgradsfi(1,klev,entr_star(igout,1:klev),'esta    ','esta    ')
    493       call wrgradsfi(1,klev,detr_star(igout,1:klev),'dsta    ','dsta    ')
    494       call wrgradsfi(1,klev,zbuoy(igout,1:klev)    ,'buoy    ','buoy    ')
    495       call wrgradsfi(1,klev,zdqt(igout,1:klev)     ,'dqt     ','dqt     ')
    496       call wrgradsfi(1,klev,w_est(igout,1:klev)    ,'w_est   ','w_est   ')
    497       call wrgradsfi(1,klev,w_est(igout,2:klev+1)  ,'w_es2   ','w_es2   ')
    498       call wrgradsfi(1,klev,zw2(igout,1:klev)      ,'zw2A    ','zw2A    ')
    499 #endif
    500      
    501493     
    502494RETURN
Note: See TracChangeset for help on using the changeset viewer.