Changeset 2387


Ignore:
Timestamp:
Nov 7, 2015, 10:27:40 AM (9 years ago)
Author:
fhourdin
Message:

Poursuite du travail sur les thermiques.
Extraction d'une routine calculant l'alimentation laterale à la base.
+ une correction de Jean-Yves sur des initialisations maquantes dans
thermcell_main (mais qui sont maintenant dans thermcell_alp).

Location:
LMDZ5/trunk/libf/phylmd
Files:
3 edited

Legend:

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

    r2384 r2387  
    156156
    157157
     158!------------------------------------------------------------
     159!  Initialize output arrays related to stochastic triggering
     160!------------------------------------------------------------
     161  DO ig = 1,klon
     162     zlcl(ig) = 0.
     163     fraca0(ig) = 0.
     164     w0(ig) = 0.
     165     w_conv(ig) = 0.
     166     therm_tke_max0(ig) = 0.
     167     env_tke_max0(ig) = 0.
     168     n2(ig) = 0.
     169     s2(ig) = 0.
     170     ale_bl_stat(ig) = 0.
     171     alp_bl_det(ig) = 0.
     172     alp_bl_fluct_m(ig) = 0.
     173     alp_bl_fluct_tke(ig) = 0.
     174     alp_bl_conv(ig) = 0.
     175     alp_bl_stat(ig) = 0.
     176  ENDDO
     177  DO l = 1,klev
     178    DO ig = 1,klon
     179     therm_tke_max(ig,l) = 0.
     180     env_tke_max(ig,l) = 0.
     181    ENDDO
     182  ENDDO
     183!------------------------------------------------------------
     184
     185
    158186!------------Test sur le LCL des thermiques
    159187    do ig=1,ngrid
  • LMDZ5/trunk/libf/phylmd/thermcell_main.F90

    r2384 r2387  
    749749! $Id$
    750750!
    751       print*,'THERM_ALP sorti'
    752751      CALL thermcell_alp(ngrid,nlay,ptimestep  &
    753752     &                  ,pplay,pplev  &
  • LMDZ5/trunk/libf/phylmd/thermcell_plume.F90

    r2311 r2387  
    8282      real zbuoyjam(ngrid,klev),zdqtjam(ngrid,klev)
    8383      real zbuoybis,zdz2,zdz3,lmel,entrbis,zdzbis
     84      real d_temp(ngrid)
    8485      real ztv1,ztv2,factinv,zinv,zlmel
    8586      real zlmelup,zlmeldwn,zlt,zltdwn,zltup
     
    104105      REAL,SAVE :: detr_q_power,detr_q_power_omp=0.5
    105106      REAL,SAVE :: mix0,mix0_omp=0.
     107      INTEGER,SAVE :: thermals_flag_alim,thermals_flag_alim_omp=0
    106108
    107109      LOGICAL, SAVE :: first=.true.
     
    127129     CALL getin('thermals_detr_q_power',detr_q_power_omp)
    128130     CALL getin('thermals_mix0',mix0_omp)
     131     CALL getin('thermals_flag_alim',thermals_flag_alim)
    129132!    CALL getin('thermals_X',X_omp)
    130133!    X=X_omp
     
    140143     detr_q_power=detr_q_power_omp
    141144     mix0=mix0_omp
     145     thermals_flag_alim=thermals_flag_alim_omp
    142146      first=.false.
    143147      ENDIF
     
    188192      lmix_bis(:)=2
    189193      wmaxa(:)=0.
    190       lalim(:)=1
    191194
    192195
     
    195198! couches sont instables.
    196199!-------------------------------------------------------------------------
     200
    197201      active(:)=ztv(:,1)>ztv(:,2)
    198 
    199 !-------------------------------------------------------------------------
    200 ! Definition de l'alimentation a l'origine dans thermcell_init
    201 !-------------------------------------------------------------------------
    202       do l=1,klev-1
    203          do ig=1,ngrid
    204             if (ztv(ig,l)> ztv(ig,l+1) .and. ztv(ig,1)>=ztv(ig,l) ) then
    205                alim_star(ig,l)=MAX((ztv(ig,l)-ztv(ig,l+1)),0.)  &
    206      &                       *sqrt(zlev(ig,l+1))
    207                lalim(ig)=l+1
    208                alim_star_tot(ig)=alim_star_tot(ig)+alim_star(ig,l)
    209 !               print*,'alim2',l,ztv(ig,l),ztv(ig,l+1),alim_star(ig,l)
    210             endif
    211          enddo
    212       enddo
    213       do l=1,klev
    214          do ig=1,ngrid
    215             if (alim_star_tot(ig) > 1.e-10 ) then
    216                alim_star(ig,l)=alim_star(ig,l)/alim_star_tot(ig)
    217             endif
    218          enddo
    219       enddo
    220       alim_star_tot(:)=1.
    221 
    222 
    223 
     202      d_temp(:)=0. ! Pour activer un contraste de temperature a la base
     203                   ! du panache
     204!  Cet appel pourrait être fait avant thermcell_plume dans thermcell_main
     205      CALL thermcell_alim(thermals_flag_alim,ngrid,klev,ztv,d_temp,zlev,alim_star,lalim)
    224206
    225207!------------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.