Ignore:
Timestamp:
Jan 11, 2021, 11:24:08 PM (4 years ago)
Author:
lguez
Message:

Sync latest trunk changes to Ocean_skin

Location:
LMDZ6/branches/Ocean_skin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin

  • LMDZ6/branches/Ocean_skin/libf/phylmd/pbl_surface_mod.F90

    r3767 r3798  
    165165       rlon,      rlat,      rugoro,   rmu0,          &
    166166       zsig,      lwdown_m,  pphi,     cldt,          &
    167        rain_f,    snow_f,    solsw_m,  sollw_m,       &
     167       rain_f,    snow_f,    solsw_m,  solswfdiff_m, sollw_m,       &
    168168       gustiness,                                     &
    169169       t,         q,         u,        v,             &
     
    207207!jyg<
    208208!!       zxfluxt,   zxfluxq,   q2m,      flux_q, tke,   &
    209        zxfluxt,   zxfluxq,   q2m,      flux_q, tke_x,   &
     209       zxfluxt,   zxfluxq,   q2m,      flux_q, tke_x,  &
    210210!>jyg
    211211!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
     
    287287    USE carbon_cycle_mod,   ONLY : carbon_cycle_cpl, carbon_cycle_tr, level_coupling_esm
    288288    USE carbon_cycle_mod,   ONLY : co2_send, nbcf_out, fields_out, yfields_out, cfname_out
     289    use hbtm_mod, only: hbtm
    289290    USE indice_sol_mod
    290291    USE time_phylmdz_mod,   ONLY : day_ini,annee_ref,itau_phy
     
    326327    REAL, DIMENSION(klon),        INTENT(IN)        :: snow_f  ! snow fall
    327328    REAL, DIMENSION(klon),        INTENT(IN)        :: solsw_m ! net shortwave radiation at mean surface
     329    REAL, DIMENSION(klon),        INTENT(IN)        :: solswfdiff_m ! diffuse fraction fordownward shortwave radiation at mean surface
    328330    REAL, DIMENSION(klon),        INTENT(IN)        :: sollw_m ! net longwave radiation at mean surface
    329331    REAL, DIMENSION(klon,klev),   INTENT(IN)        :: t       ! temperature (K)
     
    461463    REAL, DIMENSION(klon, klev),  INTENT(OUT)       :: zxfluxu    ! u wind tension, mean for each grid point
    462464    REAL, DIMENSION(klon, klev),  INTENT(OUT)       :: zxfluxv    ! v wind tension, mean for each grid point
    463     REAL, DIMENSION(klon, nbsrf+1), INTENT(INOUT)     :: z0m,z0h      ! rugosity length (m)
    464     REAL, DIMENSION(klon, nbsrf), INTENT(INOUT)       :: agesno   ! age of snow at surface
     465    REAL, DIMENSION(klon, nbsrf+1), INTENT(INOUT)   :: z0m,z0h      ! rugosity length (m)
     466    REAL, DIMENSION(klon, nbsrf), INTENT(INOUT)     :: agesno   ! age of snow at surface
    465467    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: solsw      ! net shortwave radiation at surface
    466468    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: sollw      ! net longwave radiation at surface
    467469    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: d_ts       ! change in temperature at surface
    468     REAL, DIMENSION(klon, nbsrf), INTENT(INOUT)       :: evap     ! evaporation at surface
     470    REAL, DIMENSION(klon, nbsrf), INTENT(INOUT)     :: evap     ! evaporation at surface
    469471    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: fluxlat    ! latent flux
    470472    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: t2m        ! temperature at 2 meter height
     
    856858       ! Initialize ok_flux_surf (for 1D model)
    857859       if (klon_glo>1) ok_flux_surf=.FALSE.
     860       if (klon_glo>1) ok_forc_tsurf=.FALSE.
    858861
    859862       ! intialize beta_land
     
    958961!!    tke(:,:,is_ave)=0.
    959962    tke_x(:,:,is_ave)=0.
     963
    960964    wake_dltke(:,:,is_ave)=0.
    961965!>jyg
     
    977981    yqsurf = 0.0  ; yalb = 0.0 ; yalb_vis = 0.0
    978982!albedo SB <<<
    979     yrain_f = 0.0 ; ysnow_f = 0.0    ; yfder = 0.0     ; ysolsw = 0.0   
     983    yrain_f = 0.0 ; ysnow_f = 0.0    ; yfder = 0.0     ; ysolsw = 0.0
    980984    ysollw = 0.0  ; yz0m = 0.0 ; yz0h = 0.0    ; yu1 = 0.0   
    981985    yv1 = 0.0     ; ypaprs = 0.0     ; ypplay = 0.0
     
    988992!!    d_t_diss= 0.0 ;d_u = 0.0     ; d_v = 0.0
    989993    yqsol = 0.0   
    990     ytherm = 0.0  ; ytke=0.
     994
     995    ytke=0.
    991996!FC
    992997    y_treedrg=0.
     
    11951200!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    11961201
     1202!--OB this line is not satisfactory because alb is the direct albedo not total albedo
    11971203          solsw(i,nsrf) = solsw_m(i) * (1.-alb(i,nsrf)) / (1.-alb_m(i))
    11981204       ENDDO
     
    12171223!>al1
    12181224
     1225!--OB add diffuse fraction of SW down
     1226   DO n=1,nbcf_out
     1227       IF (cfname_out(n) == "swdownfdiff" ) fields_out(:,n) = solswfdiff_m(:)
     1228   ENDDO
    12191229! >> PC
    12201230   IF (carbon_cycle_cpl .AND. carbon_cycle_tr .AND. nbcf_out.GT.0 ) THEN
     
    13931403             ytke_w(j,k)      = tke_x(i,k,nsrf)+wake_dltke(i,k,nsrf)
    13941404             ywake_dltke(j,k) = wake_dltke(i,k,nsrf)
     1405           
    13951406!>jyg
    13961407          ENDDO
     
    14771488      ENDDO
    14781489     ENDIF
     1490
    14791491        IF (prt_level >=10) print *,'clcdrag -> ycdragh ', ycdragh
    14801492       ELSE  !(iflag_split .eq.0)
     
    15601572      print *,' args coef_diff_turb: ycdragh ', ycdragh
    15611573      print *,' args coef_diff_turb: ytke ', ytke
     1574
    15621575       ENDIF
    15631576        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
     
    15891602      print *,' args coef_diff_turb: ycdragh_x ', ycdragh_x
    15901603      print *,' args coef_diff_turb: ytke_x ', ytke_x
     1604
    15911605       ENDIF
    15921606        CALL coef_diff_turb(dtime, nsrf, knon, ni,  &
     
    20372051!
    20382052!****************************************************************************************
    2039 
    2040 !!!
    2041 !!! jyg le 10/04/2013
     2053!!
     2054!!!
     2055!!! jyg le 10/04/2013 et EV 10/2020
     2056
     2057        IF (ok_forc_tsurf) THEN
     2058            DO j=1,knon
     2059                ytsurf_new(j)=tg
     2060                y_d_ts(j) = ytsurf_new(j) - yts(j)
     2061            ENDDO
     2062        ENDIF ! ok_forc_tsurf
     2063
    20422064!!!
    20432065        IF (ok_flux_surf) THEN
     
    24682490              tke_x(i,k,nsrf)    = ytke(j,k)
    24692491              tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j)
     2492
    24702493!>jyg
    24712494           ENDDO
     
    24812504!!            tke(i,k,is_ave) = tke(i,k,is_ave) + tke(i,k,nsrf)*ypct(j)
    24822505            tke_x(i,k,nsrf)   = ytke_x(j,k)
    2483             tke_x(i,k,is_ave)   = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j)
     2506            tke_x(i,k,is_ave)   = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j)       
    24842507            wake_dltke(i,k,is_ave)   = wake_dltke(i,k,is_ave) + wake_dltke(i,k,nsrf)*ypct(j)
     2508           
    24852509
    24862510!>jyg
Note: See TracChangeset for help on using the changeset viewer.