- Timestamp:
- Jan 11, 2021, 11:24:08 PM (4 years ago)
- 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 165 165 rlon, rlat, rugoro, rmu0, & 166 166 zsig, lwdown_m, pphi, cldt, & 167 rain_f, snow_f, solsw_m, sol lw_m, &167 rain_f, snow_f, solsw_m, solswfdiff_m, sollw_m, & 168 168 gustiness, & 169 169 t, q, u, v, & … … 207 207 !jyg< 208 208 !! zxfluxt, zxfluxq, q2m, flux_q, tke, & 209 zxfluxt, zxfluxq, q2m, flux_q, tke_x, 209 zxfluxt, zxfluxq, q2m, flux_q, tke_x, & 210 210 !>jyg 211 211 !!! nrlmd+jyg le 02/05/2011 et le 20/02/2012 … … 287 287 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, carbon_cycle_tr, level_coupling_esm 288 288 USE carbon_cycle_mod, ONLY : co2_send, nbcf_out, fields_out, yfields_out, cfname_out 289 use hbtm_mod, only: hbtm 289 290 USE indice_sol_mod 290 291 USE time_phylmdz_mod, ONLY : day_ini,annee_ref,itau_phy … … 326 327 REAL, DIMENSION(klon), INTENT(IN) :: snow_f ! snow fall 327 328 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 328 330 REAL, DIMENSION(klon), INTENT(IN) :: sollw_m ! net longwave radiation at mean surface 329 331 REAL, DIMENSION(klon,klev), INTENT(IN) :: t ! temperature (K) … … 461 463 REAL, DIMENSION(klon, klev), INTENT(OUT) :: zxfluxu ! u wind tension, mean for each grid point 462 464 REAL, DIMENSION(klon, klev), INTENT(OUT) :: zxfluxv ! v wind tension, mean for each grid point 463 REAL, DIMENSION(klon, nbsrf+1), INTENT(INOUT) 464 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) 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 465 467 REAL, DIMENSION(klon, nbsrf), INTENT(OUT) :: solsw ! net shortwave radiation at surface 466 468 REAL, DIMENSION(klon, nbsrf), INTENT(OUT) :: sollw ! net longwave radiation at surface 467 469 REAL, DIMENSION(klon, nbsrf), INTENT(OUT) :: d_ts ! change in temperature at surface 468 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) 470 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: evap ! evaporation at surface 469 471 REAL, DIMENSION(klon, nbsrf), INTENT(OUT) :: fluxlat ! latent flux 470 472 REAL, DIMENSION(klon, nbsrf), INTENT(OUT) :: t2m ! temperature at 2 meter height … … 856 858 ! Initialize ok_flux_surf (for 1D model) 857 859 if (klon_glo>1) ok_flux_surf=.FALSE. 860 if (klon_glo>1) ok_forc_tsurf=.FALSE. 858 861 859 862 ! intialize beta_land … … 958 961 !! tke(:,:,is_ave)=0. 959 962 tke_x(:,:,is_ave)=0. 963 960 964 wake_dltke(:,:,is_ave)=0. 961 965 !>jyg … … 977 981 yqsurf = 0.0 ; yalb = 0.0 ; yalb_vis = 0.0 978 982 !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 980 984 ysollw = 0.0 ; yz0m = 0.0 ; yz0h = 0.0 ; yu1 = 0.0 981 985 yv1 = 0.0 ; ypaprs = 0.0 ; ypplay = 0.0 … … 988 992 !! d_t_diss= 0.0 ;d_u = 0.0 ; d_v = 0.0 989 993 yqsol = 0.0 990 ytherm = 0.0 ; ytke=0. 994 995 ytke=0. 991 996 !FC 992 997 y_treedrg=0. … … 1195 1200 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1196 1201 1202 !--OB this line is not satisfactory because alb is the direct albedo not total albedo 1197 1203 solsw(i,nsrf) = solsw_m(i) * (1.-alb(i,nsrf)) / (1.-alb_m(i)) 1198 1204 ENDDO … … 1217 1223 !>al1 1218 1224 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 1219 1229 ! >> PC 1220 1230 IF (carbon_cycle_cpl .AND. carbon_cycle_tr .AND. nbcf_out.GT.0 ) THEN … … 1393 1403 ytke_w(j,k) = tke_x(i,k,nsrf)+wake_dltke(i,k,nsrf) 1394 1404 ywake_dltke(j,k) = wake_dltke(i,k,nsrf) 1405 1395 1406 !>jyg 1396 1407 ENDDO … … 1477 1488 ENDDO 1478 1489 ENDIF 1490 1479 1491 IF (prt_level >=10) print *,'clcdrag -> ycdragh ', ycdragh 1480 1492 ELSE !(iflag_split .eq.0) … … 1560 1572 print *,' args coef_diff_turb: ycdragh ', ycdragh 1561 1573 print *,' args coef_diff_turb: ytke ', ytke 1574 1562 1575 ENDIF 1563 1576 CALL coef_diff_turb(dtime, nsrf, knon, ni, & … … 1589 1602 print *,' args coef_diff_turb: ycdragh_x ', ycdragh_x 1590 1603 print *,' args coef_diff_turb: ytke_x ', ytke_x 1604 1591 1605 ENDIF 1592 1606 CALL coef_diff_turb(dtime, nsrf, knon, ni, & … … 2037 2051 ! 2038 2052 !**************************************************************************************** 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 2042 2064 !!! 2043 2065 IF (ok_flux_surf) THEN … … 2468 2490 tke_x(i,k,nsrf) = ytke(j,k) 2469 2491 tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j) 2492 2470 2493 !>jyg 2471 2494 ENDDO … … 2481 2504 !! tke(i,k,is_ave) = tke(i,k,is_ave) + tke(i,k,nsrf)*ypct(j) 2482 2505 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) 2484 2507 wake_dltke(i,k,is_ave) = wake_dltke(i,k,is_ave) + wake_dltke(i,k,nsrf)*ypct(j) 2508 2485 2509 2486 2510 !>jyg
Note: See TracChangeset
for help on using the changeset viewer.