Ignore:
Timestamp:
Mar 28, 2024, 6:06:40 PM (7 weeks ago)
Author:
evignon
Message:

extraction plus propre de la dissipation de TKE

File:
1 edited

Legend:

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

    r4747 r4881  
    231231!jyg<
    232232!!       zxfluxt,   zxfluxq,   q2m,      flux_q, tke,   &
    233        zxfluxt,   zxfluxq, zxfluxqbs,   q2m, flux_q, flux_qbs, tke_x, &
     233       zxfluxt,   zxfluxq, zxfluxqbs,   q2m, flux_q, flux_qbs, tke_x, eps_x, &
    234234!>jyg
    235235!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
     
    408408! Output variables
    409409!****************************************************************************************
     410    REAL, DIMENSION(klon,klev+1,nbsrf+1), INTENT(OUT)   :: eps_x      ! TKE dissipation rate
     411
    410412    REAL, DIMENSION(klon),        INTENT(OUT)       :: cdragh     ! drag coefficient for T and Q
    411413    REAL, DIMENSION(klon),        INTENT(OUT)       :: cdragm     ! drag coefficient for wind
     
    627629    REAL, DIMENSION(klon,klev)         :: delp
    628630    REAL, DIMENSION(klon,klev+1)       :: ypaprs
    629     REAL, DIMENSION(klon,klev+1)       :: ytke
     631    REAL, DIMENSION(klon,klev+1)       :: ytke, yeps
    630632    REAL, DIMENSION(klon,nsoilmx)      :: ytsoil
    631633!FC
     
    647649    REAL, DIMENSION(klon)              :: ywake_s, ywake_cstar, ywake_dens
    648650!!!
    649     REAL, DIMENSION(klon,klev+1)       :: ytke_x, ytke_w
     651    REAL, DIMENSION(klon,klev+1)       :: ytke_x, ytke_w, yeps_x, yeps_w
    650652    REAL, DIMENSION(klon,klev+1)       :: ywake_dltke
    651653    REAL, DIMENSION(klon,klev)         :: yu_x, yv_x, yu_w, yv_w
     
    10461048!!    tke(:,:,is_ave)=0.
    10471049    tke_x(:,:,is_ave)=0.
     1050    eps_x(:,:,is_ave)=0.
    10481051
    10491052    wake_dltke(:,:,is_ave)=0.
     
    10801083
    10811084    ytke=0.
     1085    yeps=0.
    10821086    yri0(:)=0.
    10831087!FC
     
    10931097!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
    10941098    ytke_x=0.     ; ytke_w=0.        ; ywake_dltke=0.
     1099    yeps_x=0.     ; yeps_w=0.
    10951100    y_d_t_x=0.    ; y_d_t_w=0.       ; y_d_q_x=0.      ; y_d_q_w=0.
    10961101!!    d_t_w=0.      ; d_q_w=0.         
     
    17011706        CALL call_atke(dtime,knon,klev,ycdragm(1:knon), ycdragh(1:knon),yus0(1:knon),yvs0(1:knon),yts(1:knon), &
    17021707                  yu(1:knon,:),yv(1:knon,:),yt(1:knon,:),yq(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:),       &
    1703                   ytke(1:knon,:),ycoefm(1:knon,:), ycoefh(1:knon,:))
     1708                  ytke(1:knon,:),yeps(1:knon,:), ycoefm(1:knon,:), ycoefh(1:knon,:))
    17041709
    17051710        ELSE
     
    17071712        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
    17081713            ypaprs, ypplay, yu, yv, yq, yt, yts, yqsurf, ycdragm, &
    1709             ycoefm, ycoefh, ytke, y_treedrg)
     1714            ycoefm, ycoefh, ytke, yeps, y_treedrg)
    17101715!            ycoefm, ycoefh, ytke)
    17111716!FC y_treedrg ajoute
     
    17461751        CALL call_atke(dtime,knon,klev,ycdragm_x(1:knon),ycdragh_x(1:knon),yus0(1:knon),yvs0(1:knon),yts_x(1:knon),    &
    17471752                       yu_x(1:knon,:),yv_x(1:knon,:),yt_x(1:knon,:),yq_x(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:),  &
    1748                        ytke_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:))
     1753                       ytke_x(1:knon,:),yeps_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:))
    17491754
    17501755        ELSE
     
    17521757        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
    17531758            ypaprs, ypplay, yu_x, yv_x, yq_x, yt_x, yts_x, yqsurf_x, ycdragm_x, &
    1754             ycoefm_x, ycoefh_x, ytke_x,y_treedrg)
     1759            ycoefm_x, ycoefh_x, ytke_x,yeps_x,y_treedrg)
    17551760!            ycoefm_x, ycoefh_x, ytke_x)
    17561761!FC doit on le mettre ( on ne l utilise pas si il y a du spliting)
     
    17861791        CALL call_atke(dtime,knon,klev,ycdragm_w(1:knon),ycdragh_w(1:knon),yus0(1:knon),yvs0(1:knon),yts_w(1:knon), &
    17871792                yu_w(1:knon,:),yv_w(1:knon,:),yt_w(1:knon,:),yq_w(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:),      &
    1788                 ytke_w(1:knon,:),ycoefm_w(1:knon,:), ycoefh_w(1:knon,:))
     1793                ytke_w(1:knon,:),yeps_w(1:knon,:),ycoefm_w(1:knon,:),ycoefh_w(1:knon,:))
    17891794
    17901795        ELSE
     
    17921797        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
    17931798            ypaprs, ypplay, yu_w, yv_w, yq_w, yt_w, yts_w, yqsurf_w, ycdragm_w, &
    1794             ycoefm_w, ycoefh_w, ytke_w,y_treedrg)
     1799            ycoefm_w, ycoefh_w, ytke_w,yeps_w,y_treedrg)
    17951800!            ycoefm_w, ycoefh_w, ytke_w)
    17961801       IF (iflag_pbl>=20.AND.iflag_pbl<30) THEN
     
    28552860!!              tke(i,k,is_ave) = tke(i,k,is_ave) + ytke(j,k)*ypct(j)
    28562861              tke_x(i,k,nsrf)    = ytke(j,k)
    2857               tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j)
    2858 
     2862              tke_x(i,k,is_ave)  = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j)
     2863              eps_x(i,k,nsrf)    = yeps(j,k)
     2864              eps_x(i,k,is_ave)  = eps_x(i,k,is_ave) + yeps(j,k)*ypct(j)
    28592865!>jyg
    28602866           ENDDO
     
    28702876!!            tke(i,k,is_ave) = tke(i,k,is_ave) + tke(i,k,nsrf)*ypct(j)
    28712877            tke_x(i,k,nsrf)   = ytke_x(j,k)
    2872             tke_x(i,k,is_ave)   = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j)       
     2878            tke_x(i,k,is_ave)   = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j)       
     2879            eps_x(i,k,nsrf)   = yeps_x(j,k)
     2880            eps_x(i,k,is_ave)   = eps_x(i,k,is_ave) + eps_x(i,k,nsrf)*ypct(j)
    28732881            wake_dltke(i,k,is_ave)   = wake_dltke(i,k,is_ave) + wake_dltke(i,k,nsrf)*ypct(j)
    28742882           
Note: See TracChangeset for help on using the changeset viewer.