Changeset 2952 for LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90
- Timestamp:
- Jul 14, 2017, 10:23:40 PM (8 years ago)
- Location:
- LMDZ5/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk
- Property svn:mergeinfo changed
/LMDZ5/branches/LMDZ_tree_FC (added) merged: 2924-2925,2927,2934-2940
- Property svn:mergeinfo changed
-
LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90
r2898 r2952 39 39 integer, save :: iflag_pbl_surface_t2m_bug 40 40 !$OMP THREADPRIVATE(iflag_pbl_surface_t2m_bug) 41 !FC 42 ! integer, save :: iflag_frein 43 ! !$OMP THREADPRIVATE(iflag_frein) 41 44 42 45 CONTAINS … … 138 141 iflag_pbl_surface_t2m_bug=0 139 142 CALL getin_p('iflag_pbl_surface_t2m_bug',iflag_pbl_surface_t2m_bug) 140 143 !FC 144 ! iflag_frein = 0 145 ! CALL getin_p('iflag_frein',iflag_frein) 146 ! 141 147 END SUBROUTINE pbl_surface_init 142 148 ! … … 196 202 !! tke_x, tke_w & 197 203 wake_dltke & 204 , treedrg & 205 !FC 198 206 !!! 199 207 ) … … 281 289 INCLUDE "compbl.h" 282 290 INCLUDE "flux_arp.h" 291 !FC 292 INCLUDE "dimpft.h" 293 283 294 !**************************************************************************************** 284 295 REAL, INTENT(IN) :: dtime ! time interval (s) … … 447 458 REAL, DIMENSION(klon, klev, nbsrf), INTENT(OUT) :: flux_u ! u wind tension (kg m/s)/(m**2 s) or Pascal 448 459 REAL, DIMENSION(klon, klev, nbsrf), INTENT(OUT) :: flux_v ! v wind tension (kg m/s)/(m**2 s) or Pascal 460 !FC 461 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: treedrg ! tree drag (m) 462 449 463 450 464 ! Output not needed … … 548 562 REAL, DIMENSION(klon,klev+1) :: ytke 549 563 REAL, DIMENSION(klon,nsoilmx) :: ytsoil 564 !FC 565 REAL, DIMENSION(klon,nvm_lmdz) :: yveget 566 REAL, DIMENSION(klon,nvm_lmdz) :: ylai 567 REAL, DIMENSION(klon,nvm_lmdz) :: yheight 568 REAL, DIMENSION(klon,klev) :: y_d_u_frein 569 REAL, DIMENSION(klon,klev) :: y_d_v_frein 570 REAL, DIMENSION(klon,klev) :: y_treedrg 571 !FC 572 573 550 574 CHARACTER(len=80) :: abort_message 551 575 CHARACTER(len=20) :: modname = 'pbl_surface' … … 929 953 yqsol = 0.0 930 954 ytherm = 0.0 ; ytke=0. 955 !FC 956 y_treedrg=0. 957 931 958 ! Martin 932 959 ysnowhgt = 0.0; yqsnow = 0.0 ; yrunoff = 0.0 ; ytoice =0.0 … … 952 979 !!! 953 980 ytsoil = 999999. 981 !FC 982 y_d_u_frein(:,:)=0. 983 y_d_v_frein(:,:)=0. 984 !FC 985 986 954 987 955 988 … … 1240 1273 ytke(j,k) = tke_x(i,k,nsrf) 1241 1274 !>jyg 1275 !FC 1276 y_treedrg(j,k) = treedrg(i,k,nsrf) 1277 ! print*,nsrf, "treedrg ",y_treedrg(j,k),j,k 1278 !FC 1279 1242 1280 yu(j,k) = u(i,k) 1243 1281 yv(j,k) = v(i,k) … … 1435 1473 CALL coef_diff_turb(dtime, nsrf, knon, ni, & 1436 1474 ypaprs, ypplay, yu, yv, yq, yt, yts, yqsurf, ycdragm, & 1437 ycoefm, ycoefh, ytke) 1475 ycoefm, ycoefh, ytke, y_treedrg) 1476 ! ycoefm, ycoefh, ytke) 1477 !FC y_treedrg ajouté 1438 1478 IF (iflag_pbl>=20.AND.iflag_pbl<30) THEN 1439 1479 ! In this case, coef_diff_turb is called for the Cd only … … 1462 1502 CALL coef_diff_turb(dtime, nsrf, knon, ni, & 1463 1503 ypaprs, ypplay, yu_x, yv_x, yq_x, yt_x, yts_x, yqsurf, ycdragm_x, & 1464 ycoefm_x, ycoefh_x, ytke_x) 1504 ycoefm_x, ycoefh_x, ytke_x,y_treedrg) 1505 ! ycoefm_x, ycoefh_x, ytke_x) 1506 !FC doit on le mettre ( on ne l utilise pas si il y a du spliting) 1465 1507 IF (iflag_pbl>=20.AND.iflag_pbl<30) THEN 1466 1508 ! In this case, coef_diff_turb is called for the Cd only … … 1488 1530 CALL coef_diff_turb(dtime, nsrf, knon, ni, & 1489 1531 ypaprs, ypplay, yu_w, yv_w, yq_w, yt_w, yts_w, yqsurf, ycdragm_w, & 1490 ycoefm_w, ycoefh_w, ytke_w) 1532 ycoefm_w, ycoefh_w, ytke_w,y_treedrg) 1533 ! ycoefm_w, ycoefh_w, ytke_w) 1491 1534 IF (iflag_pbl>=20.AND.iflag_pbl<30) THEN 1492 1535 ! In this case, coef_diff_turb is called for the Cd only … … 1775 1818 yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap, yfluxsens,yfluxlat,& 1776 1819 yqsurf, ytsurf_new, y_dflux_t, y_dflux_q, & 1777 y_flux_u1, y_flux_v1 ) 1820 y_flux_u1, y_flux_v1, & 1821 yveget,ylai,yheight ) 1822 !FC quid qd yveget ylai yheight ne sont pas definit 1823 !FC yveget,ylai,yheight, & 1824 if (ifl_pbltree .ge. 1) then 1825 CALL freinage(knon, yu, yv, yt, & 1826 ! yveget,ylai, yheight,ypaprs,ypplay,y_d_u_frein,y_d_v_frein) 1827 yveget,ylai, yheight,ypaprs,ypplay,y_treedrg, y_d_u_frein,y_d_v_frein) 1828 endif 1829 1778 1830 1779 1831 ! Special DICE MPL 05082013 puis BOMEX … … 2182 2234 y_d_u(j,k) = y_d_u(j,k) * ypct(j) 2183 2235 y_d_v(j,k) = y_d_v(j,k) * ypct(j) 2236 !FC 2237 if (nsrf .EQ. is_ter .and. ifl_pbltree .ge. 1 ) then 2238 ! if (y_d_u_frein(j,k).ne.0. ) then 2239 ! print*, nsrf,'IS_TER ++', y_d_u_frein(j,k)*ypct(j),y_d_u(j,k),j,k 2240 ! endif 2241 y_d_u(j,k) =y_d_u(j,k) + y_d_u_frein(j,k)*ypct(j) 2242 y_d_v(j,k) =y_d_v(j,k) + y_d_v_frein(j,k)*ypct(j) 2243 treedrg(i,k,nsrf)=y_treedrg(j,k) 2244 else 2245 treedrg(i,k,nsrf)=0. 2246 endif 2247 !FC 2184 2248 2185 2249 flux_t(i,k,nsrf) = y_flux_t(j,k)
Note: See TracChangeset
for help on using the changeset viewer.