Changeset 2924 for LMDZ5/branches
- Timestamp:
- Jun 30, 2017, 12:00:23 PM (7 years ago)
- Location:
- LMDZ5/branches/LMDZ_tree_FC
- Files:
-
- 19 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/LMDZ_tree_FC/DefLists/field_def_lmdz.xml
r2860 r2924 463 463 <field id="l_mix_oce" long_name="PBL mixing length oce" unit="m" /> 464 464 <field id="l_mix_sic" long_name="PBL mixing length sic" unit="m" /> 465 <field id="treedrg_ter" long_name="tree drag profile ter " unit="-" /> 466 <field id="treedrg_lic" long_name="tree drag profile ter " unit="-" /> 467 <field id="treedrg_oce" long_name="tree drag profile ter " unit="-" /> 468 <field id="treedrg_sic" long_name="tree drag profile ter " unit="-" /> 465 469 <field id="l_mixmin_ter" long_name="min PBL mixing length ter" unit="m" /> 466 470 <field id="l_mixmin_lic" long_name="min PBL mixing length lic" unit="m" /> -
LMDZ5/branches/LMDZ_tree_FC/DefLists/file_def_histday_lmdz.xml
r2854 r2924 28 28 <field field_ref="t2m_oce" level="6" /> 29 29 <field field_ref="t2m_sic" level="6" /> 30 <field field_ref="treedrg_ter" level="6" /> 31 <field field_ref="treedrg_lic" level="6" /> 32 <field field_ref="treedrg_oce" level="6" /> 33 <field field_ref="treedrg_sic" level="6" /> 30 34 <field field_ref="gusts" level="1" /> 31 35 <field field_ref="wind10m" level="1" /> -
LMDZ5/branches/LMDZ_tree_FC/DefLists/file_def_histhf_lmdz.xml
r2855 r2924 28 28 <field field_ref="t2m_oce" level="10" /> 29 29 <field field_ref="t2m_sic" level="10" /> 30 <field field_ref="treedrg_ter" level="5" /> 31 <field field_ref="treedrg_lic" level="5" /> 32 <field field_ref="treedrg_oce" level="5" /> 33 <field field_ref="treedrg_sic" level="5" /> 30 34 <field field_ref="gusts" level="10" /> 31 35 <field field_ref="wind10m" level="10" /> … … 285 289 <field field_ref="tpot" level="10" /> 286 290 <field field_ref="tpote" level="10" /> 287 <field field_ref="tke" level=" 10" />291 <field field_ref="tke" level="5" /> 288 292 <field field_ref="tke_ter" level="10" /> 289 293 <field field_ref="tke_lic" level="10" /> … … 533 537 <field field_ref="wake_deltaq" level="10" /> 534 538 <field field_ref="wake_omg" level="10" /> 535 <field field_ref="wdtrainA" level=" 4" />536 <field field_ref="wdtrainM" level=" 4" />539 <field field_ref="wdtrainA" level="10" /> 540 <field field_ref="wdtrainM" level="10" /> 537 541 <field field_ref="Vprecip" level="10" /> 538 542 <field field_ref="ftd" level="10" /> -
LMDZ5/branches/LMDZ_tree_FC/DefLists/file_def_histmth_lmdz.xml
r2854 r2924 48 48 <field field_ref="t2m_oce" level="10" /> 49 49 <field field_ref="t2m_sic" level="10" /> 50 <field field_ref="treedrg_ter" level="10" /> 51 <field field_ref="treedrg_lic" level="10" /> 52 <field field_ref="treedrg_oce" level="10" /> 53 <field field_ref="treedrg_sic" level="10" /> 50 54 <field field_ref="gusts" level="1" /> 51 55 <field field_ref="wind10m" level="1" /> -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/clesphys.h
r2788 r2924 1 2 !3 1 ! $Id$ 4 2 ! … … 15 13 INTEGER nbapp_rad, iflag_con, nbapp_cv, nbapp_wk, iflag_ener_conserv 16 14 REAL co2_ppm, co2_ppm0, solaire 15 !FC 16 REAL Cd_frein 17 17 LOGICAL ok_suntime_rrtm 18 18 REAL(kind=8) RCO2, RCH4, RN2O, RCFC11, RCFC12 … … 109 109 & , qsol0,albsno0,evap0 & 110 110 & , co2_ppm0 & 111 !FC 112 & , Cd_frein & 111 113 & , ecrit_LES & 112 114 & , ecrit_ins, ecrit_hf, ecrit_day & -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/coef_diff_turb_mod.F90
r2561 r2924 14 14 SUBROUTINE coef_diff_turb(dtime, nsrf, knon, ni, & 15 15 ypaprs, ypplay, yu, yv, yq, yt, yts, yqsurf, ycdragm, & 16 ycoefm, ycoefh ,yq2 )16 ycoefm, ycoefh ,yq2, ydrgpro) 17 17 18 18 USE dimphy … … 37 37 REAL, DIMENSION(klon), INTENT(IN) :: yts, yqsurf 38 38 REAL, DIMENSION(klon), INTENT(IN) :: ycdragm 39 !FC 40 REAL, DIMENSION(klon,klev), INTENT(IN) :: ydrgpro 41 39 42 40 43 ! InOutput arguments … … 167 170 yzlev,yzlay,yu,yv,yteta, & 168 171 ycdragm,yq2,ykmm,ykmn,ykmq,yustar, & 169 iflag_pbl) 172 iflag_pbl,ydrgpro) 173 !FC 170 174 ENDIF 171 175 -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/compbl.h
r2455 r2924 5 5 !! integer iflag_pbl,iflag_pbl_split 6 6 !! common/compbl/iflag_pbl,iflag_pbl_split 7 integer iflag_pbl, iflag_pbl_split, iflag_order2_sollw 8 common/compbl/iflag_pbl, iflag_pbl_split, iflag_order2_sollw 7 !!FC integer iflag_pbl, iflag_pbl_split, iflag_order2_sollw 8 !FC common/compbl/iflag_pbl, iflag_pbl_split, iflag_order2_sollw 9 integer iflag_pbl, iflag_pbl_split, iflag_order2_sollw, ifl_pbltree 10 common/compbl/iflag_pbl, iflag_pbl_split, iflag_order2_sollw, ifl_pbltree 9 11 !>jyg+al1 10 12 !$OMP THREADPRIVATE(/compbl/) -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/conf_phys_m.F90
r2852 r2924 186 186 INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp 187 187 INTEGER,SAVE :: iflag_pbl_split_omp 188 !FC 189 INTEGER,SAVE :: ifl_pbltree_omp 190 REAL,SAVE :: Cd_frein_omp 191 !FC 188 192 INTEGER,SAVE :: iflag_order2_sollw_omp 189 193 INTEGER, SAVE :: lev_histins_omp, lev_histLES_omp … … 1367 1371 iflag_pbl_omp = 1 1368 1372 CALL getin('iflag_pbl',iflag_pbl_omp) 1373 1374 !FC 1375 !Config Key = ifl_pbltree 1376 !Config Desc = drag from trees 0 no activated 1377 !Config Def = 0 1378 !Config Help = 1379 ! 1380 ifl_pbltree_omp = 0 1381 CALL getin('ifl_pbltree',ifl_pbltree_omp) 1382 !FC 1383 !Config Key = Cd_frein 1384 !Config Desc = drag from trees 1385 !Config Def = 7.5E-02 (valeur Masson mais fait planter avec des LAI eleves) 1386 !Config Help = 1387 ! 1388 Cd_frein_omp = 7.5E-02 1389 CALL getin('Cd_frein',Cd_frein_omp) 1390 1369 1391 ! 1370 1392 !Config Key = iflag_pbl_split … … 2159 2181 iflag_pbl = iflag_pbl_omp 2160 2182 iflag_pbl_split = iflag_pbl_split_omp 2183 !FC 2184 ifl_pbltree = ifl_pbltree_omp 2185 Cd_frein =Cd_frein_omp 2161 2186 iflag_order2_sollw = iflag_order2_sollw_omp 2162 2187 lev_histhf = lev_histhf_omp … … 2525 2550 write(lunout,*)' freq_calNMC = ',freq_calNMC 2526 2551 write(lunout,*)' iflag_pbl = ', iflag_pbl 2552 !FC 2553 write(lunout,*)' ifl_pbltree = ', ifl_pbltree 2527 2554 write(lunout,*)' iflag_pbl_split = ', iflag_pbl_split 2528 2555 write(lunout,*)' iflag_order2_sollw = ', iflag_order2_sollw -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/indice_sol_mod.F90
r1918 r2924 8 8 9 9 CHARACTER(len=3), DIMENSION(nbsrf), PARAMETER :: clnsurf = (/'ter', 'lic', 'oce', 'sic'/) 10 !FC 11 INTEGER, SAVE :: nvm_orch ! Nombre de type de vegetation ds ORCHIDEE 10 12 11 13 END MODULE indice_sol_mod -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/pbl_surface_mod.F90
r2898 r2924 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 .eq. 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 .eq. 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 endif 2245 !FC 2184 2246 2185 2247 flux_t(i,k,nsrf) = y_flux_t(j,k) -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/phyetat0.F90
r2656 r2924 18 18 wake_deltat, wake_delta_pbl_TKE, delta_tsurf, wake_fip, wake_pe, & 19 19 wake_s, wake_dens, zgam, zmax0, zmea, zpic, zsig, & 20 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m 20 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg 21 !FC 21 22 USE geometry_mod, ONLY : longitude_deg, latitude_deg 22 23 USE iostart, ONLY : close_startphy, get_field, get_var, open_startphy … … 319 320 found=phyetat0_srf(1,z0h,"Z0h","Roughness length, enthalpy ",0.001) 320 321 ENDIF 322 !FC 323 !lecture du profile de freinage des arbres 324 IF (.not. found ) then 325 treedrg(:,1:klev,1:nbsrf)= 0.0 326 else 327 found=phyetat0_srf(klev,treedrg,"treedrg","freinage arbres",0.) 328 ENDIF 329 321 330 322 331 ! Lecture de l'age de la neige: -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/phyredem.F90
r2656 r2924 22 22 wake_pe, wake_fip, fm_therm, entr_therm, & 23 23 detr_therm, Ale_bl, Ale_bl_trig, Alp_bl, & 24 du_gwd_rando, du_gwd_front, u10m, v10m 24 du_gwd_rando, du_gwd_front, u10m, v10m, & 25 treedrg 25 26 USE geometry_mod, ONLY : longitude_deg, latitude_deg 26 27 USE iostart, ONLY: open_restartphy, close_restartphy, put_field, put_var … … 160 161 ! ================== Tsoil ========================================= 161 162 CALL put_field_srf2("Tsoil","Temperature",tsoil(:,:,:)) 163 !FC 164 CALL put_field_srf2("treedrg","freinage arbres",treedrg(:,:,:)) 165 162 166 163 167 CALL put_field_srf1("QS" , "Humidite",qsurf(:,:)) -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/phys_output_ctrlout_mod.F90
r2876 r2924 961 961 ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'tke_sic', & 962 962 "Max Turb. Kinetic Energy "//clnsurf(4),"m2/s2", (/ ('', i=1, 10) /)) /) 963 !FC 964 ! TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_treedrg_srf = (/ & 965 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_ter', & 966 ! "Drag from trees "//clnsurf(1),"-", (/ ('', i=1, 10) /)), & 967 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_lic', & 968 ! "Drag from trees "//clnsurf(2),"-", (/ ('', i=1, 10) /)), & 969 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_oce', & 970 ! "Drag from trees "//clnsurf(3),"-", (/ ('', i=1, 10) /)), & 971 ! ctrl_out((/ 10, 4, 10, 10, 10, 10, 11, 11, 11, 11/),'treedrg_sic', & 972 ! "Drag from trees "//clnsurf(4),"-", (/ ('', i=1, 10) /)) /) 973 !FC 974 963 975 964 976 TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_l_mixmin = (/ & -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/phys_output_write_mod.F90
r2854 r2924 99 99 o_SWdownOR, o_LWdownOR, o_snowl, & 100 100 o_solldown, o_dtsvdfo, o_dtsvdft, & 101 o_dtsvdfg, o_dtsvdfi, o_z0m, o_z0h, o_od443aer, o_od550aer, &101 o_dtsvdfg, o_dtsvdfi, o_z0m, o_z0h, o_od443aer, o_od550aer, & 102 102 o_dryod550aer, o_od865aer, o_abs550aer, o_od550lt1aer, & 103 103 o_sconcso4, o_sconcno3, o_sconcoa, o_sconcbc, & … … 834 834 ENDIF 835 835 !>jyg 836 ! IF (iflag_pbl > 1 .AND. ifl_pbltree >=1 ) THEN 837 ! CALL histwrite_phy(o_treedrg_srf(nsrf), treedrg(:,1:klev,nsrf)) 838 ! ENDIF 839 836 840 837 841 ENDDO … … 1165 1169 CALL histwrite_phy(o_z0m, z0m(:,nbsrf+1)) 1166 1170 CALL histwrite_phy(o_z0h, z0h(:,nbsrf+1)) 1171 1167 1172 ! od550 per species 1168 1173 !--OLIVIER -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/phys_state_var_mod.F90
r2825 r2924 32 32 REAL,ALLOCATABLE,SAVE :: qsol(:),fevap(:,:),z0m(:,:),z0h(:,:),agesno(:,:) 33 33 !$OMP THREADPRIVATE(qsol,fevap,z0m,z0h,agesno) 34 !FC drag des arbres 35 REAL, ALLOCATABLE, SAVE :: treedrg(:,:,:) 36 !$OMP THREADPRIVATE(treedrg) 37 34 38 ! character(len=6), SAVE :: ocean 35 39 !!!!!!$OMP THREADPRIVATE(ocean) … … 430 434 ALLOCATE(qsol(klon),fevap(klon,nbsrf)) 431 435 ALLOCATE(z0m(klon,nbsrf+1),z0h(klon,nbsrf+1),agesno(klon,nbsrf)) 436 !FC 437 ALLOCATE(treedrg(klon,klev,nbsrf)) 432 438 ALLOCATE(falb1(klon,nbsrf)) 433 439 ALLOCATE(falb2(klon,nbsrf)) … … 603 609 deallocate(pctsrf, ftsol, falb1, falb2) 604 610 deallocate(qsol,fevap,z0m,z0h,agesno) 611 !FC 612 deallocate(treedrg) 605 613 deallocate(rain_fall, snow_fall, solsw, sollw, radsol, swradcorr) 606 614 deallocate(zmea, zstd, zsig, zgam) -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/physiq_mod.F90
r2897 r2924 2242 2242 zxfluxt, zxfluxq, q2m, fluxq, pbl_tke, & 2243 2243 !nrlmd+jyg< 2244 wake_delta_pbl_TKE &2244 wake_delta_pbl_TKE, & 2245 2245 !>nrlmd+jyg 2246 ) 2246 treedrg ) 2247 !FC 2247 2248 ! 2248 2249 ! Add turbulent diffusion tendency to the wake difference variables -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/surf_land_mod.F90
r2571 r2924 1 1 ! 2 2 MODULE surf_land_mod 3 3 #ifndef LMDZ_nofrein 4 4 5 IMPLICIT NONE 5 6 … … 19 20 z0m, z0h, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, & 20 21 qsurf, tsurf_new, dflux_s, dflux_l, & 21 flux_u1, flux_v1 ) 22 flux_u1, flux_v1 , & 23 veget,lai,height) 24 25 !FCveget,lai,height, & 22 26 23 27 USE dimphy … … 33 37 USE surf_land_orchidee_noz0h_mod 34 38 #else 35 ! Compilation with default interface 39 #if ORCHIDEE_NOFREIN 40 ! Compilation with cpp key ORCHIDEE_NOFREIN 41 USE surf_land_orchidee_nofrein_mod 42 #else 36 43 USE surf_land_orchidee_mod 44 #endif 37 45 #endif 38 46 #endif … … 47 55 INCLUDE "clesphys.h" 48 56 !albedo SB <<< 57 !FC 58 INCLUDE "dimpft.h" 59 49 60 50 61 ! Input variables … … 96 107 REAL, DIMENSION(klon), INTENT(OUT) :: dflux_s, dflux_l 97 108 REAL, DIMENSION(klon), INTENT(OUT) :: flux_u1, flux_v1 ! flux for U and V at first model level 109 !FC 110 REAL, DIMENSION(klon,nvm_lmdz), INTENT(OUT) :: veget,lai 111 REAL, DIMENSION(klon,nvm_lmdz), INTENT(OUT) :: height 98 112 99 113 ! Local variables … … 150 164 evap, fluxsens, fluxlat, & 151 165 tsol_rad, tsurf_new, alb1_new, alb2_new, & 152 emis_new, z0m, z0h, qsurf) 166 emis_new, z0m, z0h, qsurf, & 167 veget, lai, height) 168 169 ! print*, " FC SORTIE surf_land_orchidee" ,height(1:100,2) 170 !FC 171 153 172 154 173 ! … … 217 236 !**************************************************************************************** 218 237 ! 238 #endif 219 239 END MODULE surf_land_mod 220 240 ! -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/surf_land_orchidee_mod.F90
r2571 r2924 3 3 #ifndef ORCHIDEE_NOOPENMP 4 4 #ifndef ORCHIDEE_NOZ0H 5 #ifndef ORCHIDEE_NOFREIN 6 !FC la derniere ligne et la fin 5 7 ! 6 8 ! This module controles the interface towards the model ORCHIDEE. … … 44 46 evap, fluxsens, fluxlat, & 45 47 tsol_rad, tsurf_new, alb1_new, alb2_new, & 46 emis_new, z0m_new, z0h_new, qsurf) 48 emis_new, z0m_new, z0h_new, qsurf, & 49 veget, lai, height ) 50 !FC 51 47 52 48 53 USE mod_surf_para … … 109 114 ! 110 115 INCLUDE "YOMCST.h" 116 !FC 117 INCLUDE "dimpft.h" 118 119 111 120 112 121 ! … … 139 148 REAL, DIMENSION(klon), INTENT(OUT) :: alb1_new, alb2_new 140 149 REAL, DIMENSION(klon), INTENT(OUT) :: emis_new, z0m_new, z0h_new 150 !FC 151 REAL, DIMENSION (klon,nvm_lmdz),INTENT(OUT) :: veget 152 REAL, DIMENSION (klon,nvm_lmdz),INTENT(OUT) :: lai 153 REAL, DIMENSION (klon,nvm_lmdz) ,INTENT(OUT) :: height 154 141 155 142 156 ! Local … … 217 231 ! Test of coherence between variable ok_veget and cpp key CPP_VEGET 218 232 #ifndef CPP_VEGET 233 print* , "nvm_orch FC ", nvm_orch 234 print* , "nvm_lmdz FC ", nvm_lmdz 235 219 236 abort_message='Pb de coherence: ok_veget = .true. mais CPP_VEGET = .false.' 220 237 CALL abort_physic(modname,abort_message,1) … … 409 426 cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 410 427 precip_rain, precip_snow, lwdown, swnet, swdown, ps, & 411 evap, fluxsens, fluxlat, coastalflow, riverflow, &428 nvm_orch, evap, fluxsens, fluxlat, coastalflow, riverflow, & 412 429 tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0m_new, & 413 430 lon_scat, lat_scat, q2m, t2m, z0h_new) … … 427 444 IF (knon > 0) THEN 428 445 #ifdef CPP_VEGET 446 !FC 447 if(nvm_orch .ne.nvm_lmdz ) then 448 abort_message='Pb de dimensiosn PFT: nvm_orch et nvm_lmdz differents.' 449 CALL abort_physic(modname,abort_message,1) 450 endif 451 !FC 452 429 453 CALL intersurf_main_gathered (itime+itau_phy, nbp_lon, nbp_lat, knon, ktindex, dtime, & 430 454 lrestart_read, lrestart_write, lalo, & … … 435 459 evap(1:knon), fluxsens(1:knon), fluxlat(1:knon), coastalflow(1:knon), riverflow(1:knon), & 436 460 tsol_rad(1:knon), tsurf_new(1:knon), qsurf(1:knon), albedo_out(1:knon,:), emis_new(1:knon), z0m_new(1:knon), & 437 lon_scat, lat_scat, q2m, t2m, z0h_new(1:knon), coszang=yrmu0(1:knon)) 461 lon_scat, lat_scat, q2m, t2m, z0h_new(1:knon),& 462 veget(1:knon,:),lai(1:knon,:),height(1:knon,:),& 463 coszang=yrmu0(1:knon)) 438 464 #endif 465 !FC on doit mettre nvm_orch la ??? 439 466 ENDIF 440 467 … … 665 692 #endif 666 693 #endif 694 #endif 667 695 END MODULE surf_land_orchidee_mod -
LMDZ5/branches/LMDZ_tree_FC/libf/phylmd/yamada4.F90
r2891 r2924 2 2 3 3 SUBROUTINE yamada4(ni, nsrf, ngrid, dt, g, rconst, plev, temp, zlev, zlay, u, v, teta, & 4 cd, tke, km, kn, kq, ustar, iflag_pbl )4 cd, tke, km, kn, kq, ustar, iflag_pbl, drgpro) 5 5 6 6 USE dimphy … … 101 101 INTEGER ni(klon) 102 102 103 !FC 104 REAL drgpro(klon,klev) 105 REAL winds(klon,klev) 103 106 104 107 ! Local … … 479 482 DO ig=1,ngrid 480 483 tkeprov=q2(ig,k)/ydeux 481 disseff=dissip(ig,k)-min(0.,buoy(ig,k)) 484 485 ! if(ifl_pbltree .eq. 0) then 486 ! disseff=dissip(ig,k)-min(0.,buoy(ig,k)) 487 ! tkeexp=exp(-dt*disseff/tkeprov) 488 ! tkeprov= shear(ig,k)*tkeprov/disseff*(1.-tkeexp)+tkeprov*tkeexp 489 ! else 490 !FC on ajoute la dissipation due aux arbres 491 disseff=dissip(ig,k)-min(0.,buoy(ig,k)) + drgpro(ig,k)*tkeprov 482 492 tkeexp=exp(-dt*disseff/tkeprov) 483 tkeprov= shear(ig,k)*tkeprov/disseff*(1.-tkeexp)+tkeprov*tkeexp 493 ! on prend en compte la tke cree par les arbres 494 winds(ig,k)=sqrt(u(ig,k)**2+v(ig,k)**2) 495 tkeprov= (shear(ig,k)+ & 496 & drgpro(ig,k)*(winds(ig,k))**3)*tkeprov/disseff*(1.-tkeexp)+tkeprov*tkeexp 497 ! endif 498 484 499 q2(ig,k)=tkeprov*ydeux 500 485 501 ! En cas stable, on traite la flotabilite comme la 486 502 ! dissipation, en supposant que buoy/q2^3 est constant.
Note: See TracChangeset
for help on using the changeset viewer.