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/phylmdiso/pbl_surface_mod.F90

    r4745 r4881  
    2424  USE climb_wind_mod,      ONLY : climb_wind_down, climb_wind_up
    2525  USE coef_diff_turb_mod,  ONLY : coef_diff_turb
    26   USE lmdz_call_atke,      ONLY :  call_atke
     26  USE lmdz_call_atke,      ONLY : call_atke
    2727  USE ioipsl_getin_p_mod,  ONLY : getin_p
    2828  USE cdrag_mod
     
    308308!jyg<
    309309!!       zxfluxt,   zxfluxq,   q2m,      flux_q, tke,   &
    310        zxfluxt,   zxfluxq, zxfluxqbs,   q2m, flux_q, flux_qbs, tke_x, &
     310       zxfluxt,   zxfluxq, zxfluxqbs,   q2m, flux_q, flux_qbs, tke_x, eps_x, &
    311311!>jyg
    312312!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
     
    506506! Output variables
    507507!****************************************************************************************
     508    REAL, DIMENSION(klon,klev+1,nbsrf+1), INTENT(OUT)   :: eps_x      ! TKE dissipation rate
     509
    508510    REAL, DIMENSION(klon),        INTENT(OUT)       :: cdragh     ! drag coefficient for T and Q
    509511    REAL, DIMENSION(klon),        INTENT(OUT)       :: cdragm     ! drag coefficient for wind
     
    765767    REAL, DIMENSION(klon,klev)         :: delp
    766768    REAL, DIMENSION(klon,klev+1)       :: ypaprs
    767     REAL, DIMENSION(klon,klev+1)       :: ytke
     769    REAL, DIMENSION(klon,klev+1)       :: ytke, yeps
    768770    REAL, DIMENSION(klon,nsoilmx)      :: ytsoil
    769771!FC
     
    785787    REAL, DIMENSION(klon)              :: ywake_s, ywake_cstar, ywake_dens
    786788!!!
    787     REAL, DIMENSION(klon,klev+1)       :: ytke_x, ytke_w
     789    REAL, DIMENSION(klon,klev+1)       :: ytke_x, ytke_w, yeps_x, yeps_w
    788790    REAL, DIMENSION(klon,klev+1)       :: ywake_dltke
    789791    REAL, DIMENSION(klon,klev)         :: yu_x, yv_x, yu_w, yv_w
     
    12611263!!    tke(:,:,is_ave)=0.
    12621264    tke_x(:,:,is_ave)=0.
     1265    eps_x(:,:,is_ave)=0.
    12631266
    12641267    wake_dltke(:,:,is_ave)=0.
     
    12951298
    12961299    ytke=0.
     1300    yeps=0.
    12971301    yri0(:)=0.
    12981302!FC
     
    13081312!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
    13091313    ytke_x=0.     ; ytke_w=0.        ; ywake_dltke=0.
     1314    yeps_x=0.     ; yeps_w=0.
    13101315    y_d_t_x=0.    ; y_d_t_w=0.       ; y_d_q_x=0.      ; y_d_q_w=0.
    13111316!!    d_t_w=0.      ; d_q_w=0.         
     
    19791984        CALL call_atke(dtime,knon,klev,ycdragm(1:knon), ycdragh(1:knon),yus0(1:knon),yvs0(1:knon),yts(1:knon), &
    19801985                  yu(1:knon,:),yv(1:knon,:),yt(1:knon,:),yq(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:),       &
    1981                   ytke(1:knon,:),ycoefm(1:knon,:), ycoefh(1:knon,:))
     1986                  ytke(1:knon,:),yeps(1:knon,:), ycoefm(1:knon,:), ycoefh(1:knon,:))
    19821987
    19831988        ELSE
     
    19851990        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
    19861991            ypaprs, ypplay, yu, yv, yq, yt, yts, yqsurf, ycdragm, &
    1987             ycoefm, ycoefh, ytke, y_treedrg)
     1992            ycoefm, ycoefh, ytke, yeps, y_treedrg)
    19881993!            ycoefm, ycoefh, ytke)
    19891994!FC y_treedrg ajoute
     
    20232028        CALL call_atke(dtime,knon,klev,ycdragm_x(1:knon),ycdragh_x(1:knon),yus0(1:knon),yvs0(1:knon),yts_x(1:knon),    &
    20242029                       yu_x(1:knon,:),yv_x(1:knon,:),yt_x(1:knon,:),yq_x(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:),  &
    2025                        ytke_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:))
     2030                       ytke_x(1:knon,:),yeps_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:))
    20262031
    20272032        ELSE
     
    20292034        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
    20302035            ypaprs, ypplay, yu_x, yv_x, yq_x, yt_x, yts_x, yqsurf_x, ycdragm_x, &
    2031             ycoefm_x, ycoefh_x, ytke_x,y_treedrg)
     2036            ycoefm_x, ycoefh_x, ytke_x,yeps_x,y_treedrg)
    20322037!            ycoefm_x, ycoefh_x, ytke_x)
    20332038!FC doit on le mettre ( on ne l utilise pas si il y a du spliting)
     
    20632068        CALL call_atke(dtime,knon,klev,ycdragm_w(1:knon),ycdragh_w(1:knon),yus0(1:knon),yvs0(1:knon),yts_w(1:knon), &
    20642069                yu_w(1:knon,:),yv_w(1:knon,:),yt_w(1:knon,:),yq_w(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:),      &
    2065                 ytke_w(1:knon,:),ycoefm_w(1:knon,:), ycoefh_w(1:knon,:))
     2070                ytke_w(1:knon,:),yeps_w(1:knon,:),ycoefm_w(1:knon,:),ycoefh_w(1:knon,:))
    20662071
    20672072        ELSE
    2068 
    20692073
    20702074        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
    20712075            ypaprs, ypplay, yu_w, yv_w, yq_w, yt_w, yts_w, yqsurf_w, ycdragm_w, &
    2072             ycoefm_w, ycoefh_w, ytke_w,y_treedrg)
     2076            ycoefm_w, ycoefh_w, ytke_w,yeps_w,y_treedrg)
    20732077!            ycoefm_w, ycoefh_w, ytke_w)
    20742078       IF (iflag_pbl>=20.AND.iflag_pbl<30) THEN
     
    33323336!!              tke(i,k,is_ave) = tke(i,k,is_ave) + ytke(j,k)*ypct(j)
    33333337              tke_x(i,k,nsrf)    = ytke(j,k)
    3334               tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j)
    3335 
     3338              tke_x(i,k,is_ave)  = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j)
     3339              eps_x(i,k,nsrf)    = yeps(j,k)
     3340              eps_x(i,k,is_ave)  = eps_x(i,k,is_ave) + yeps(j,k)*ypct(j)
    33363341!>jyg
    33373342           ENDDO
     
    33473352!!            tke(i,k,is_ave) = tke(i,k,is_ave) + tke(i,k,nsrf)*ypct(j)
    33483353            tke_x(i,k,nsrf)   = ytke_x(j,k)
    3349             tke_x(i,k,is_ave)   = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j)       
     3354            tke_x(i,k,is_ave)   = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j)       
     3355            eps_x(i,k,nsrf)   = yeps_x(j,k)
     3356            eps_x(i,k,is_ave)   = eps_x(i,k,is_ave) + eps_x(i,k,nsrf)*ypct(j)
    33503357            wake_dltke(i,k,is_ave)   = wake_dltke(i,k,is_ave) + wake_dltke(i,k,nsrf)*ypct(j)
    33513358           
Note: See TracChangeset for help on using the changeset viewer.