Changeset 1865
- Timestamp:
- Sep 13, 2013, 10:26:46 AM (11 years ago)
- Location:
- LMDZ5/trunk
- Files:
-
- 16 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/bld.cfg
r1802 r1865 24 24 src::dyn %SRC_PATH/%DYN 25 25 src::phys %SRC_PATH/%PHYS 26 src::sisvat %SRC_PATH/%PHYS/sisvat 26 27 src::grid %SRC_PATH/grid 27 28 src::filtrez %SRC_PATH/filtrez … … 91 92 bld::outfile_ext::mod .mod 92 93 bld::tool::SHELL /bin/bash 94 bld::tool::SHELL /bin/ksh -
LMDZ5/trunk/create_make_gcm
r1810 r1865 194 194 strlib=`echo $libstr | awk -F/ ' { print $1 } '` 195 195 str2='$(LIBO)/lib'$strlib'.a('$strj'.o)' 196 elif [ -f $dirinc/$stri.F90 ] || [ -f $dirinc/$stri.F ] ; then 197 strlib=`echo $libstr | awk -F/ ' { print $1 } '` 198 str2='$(LIBO)/lib'$strlib'.a('$stri'.o)' 196 199 fi 197 200 done -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r1849 r1865 83 83 character (len = 10),SAVE :: type_veget_omp 84 84 CHARACTER(len = 8),SAVE :: aer_type_omp 85 logical,SAVE :: ok_snow_omp 85 86 logical,SAVE :: ok_newmicro_omp 86 87 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp … … 227 228 call getin('VEGET', type_veget_omp) 228 229 ! 230 231 ! Martin 232 !Config Key = ok_snow 233 !Config Desc = Flag to activate snow model SISVAT 234 !Config Def = .false. 235 ok_snow_omp = .false. 236 call getin('ok_snow', ok_snow_omp) 237 ! Martin 238 229 239 !Config Key = OK_journe 230 240 !Config Desc = Pour des sorties journalieres … … 1737 1747 ok_veget=.false. 1738 1748 endif 1749 ! Martin 1750 ok_snow = ok_snow_omp 1751 ! Martin 1739 1752 1740 1753 ok_newmicro = ok_newmicro_omp … … 1860 1873 write(lunout,*)' Version ocean = ', version_ocean 1861 1874 write(lunout,*)' Config veget = ', ok_veget,type_veget 1875 write(lunout,*)' Snow model SISVAT : ok_snow = ', ok_snow 1862 1876 write(lunout,*)' Sortie journaliere = ', ok_journe 1863 1877 write(lunout,*)' Sortie haute frequence = ', ok_hf -
LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90
r1816 r1865 171 171 debut, lafin, & 172 172 rlon, rlat, rugoro, rmu0, & 173 zsig, sollwd_m, pphi, cldt, & 173 174 rain_f, snow_f, solsw_m, sollw_m, & 174 175 t, q, u, v, & … … 177 178 lwdown_m, cdragh, cdragm, zu1, zv1, & 178 179 alb1_m, alb2_m, zxsens, zxevap, & 180 alb3_lic, runoff, snowhgt, qsnow, to_ice, sissnow, & 179 181 zxtsol, zxfluxlat, zt2m, qsat2m, & 180 182 d_t, d_q, d_u, d_v, d_t_diss, & … … 224 226 ! rlat-----input-R- latitude en degree 225 227 ! rugos----input-R- longeur de rugosite (en m) 228 ! Martin 229 ! zsig-----input-R- slope 230 ! cldt-----input-R- total cloud fraction 231 ! pphi-----input-R- geopotentiel de chaque couche (g z) (reference sol) 232 ! Martin 226 233 ! 227 234 ! d_t------output-R- le changement pour "t" … … 287 294 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs ! pression between layers (Pa) 288 295 REAL, DIMENSION(klon, nbsrf), INTENT(IN) :: pctsrf ! sub-surface fraction 296 ! Martin 297 REAL, DIMENSION(klon), INTENT(IN) :: zsig ! slope 298 REAL, DIMENSION(klon), INTENT(IN) :: sollwd_m ! net longwave radiation at mean s 299 REAL, DIMENSION(klon), INTENT(IN) :: cldt ! total cloud fraction 300 REAL, DIMENSION(klon,klev), INTENT(IN) :: pphi ! geopotential (m2/s2) 301 ! Martin 289 302 290 303 ! Input/Output variables … … 298 311 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: v10m ! v speed at 10m 299 312 REAL, DIMENSION(klon, klev+1, nbsrf+1), INTENT(INOUT) :: tke 300 301 313 ! Output variables 302 314 !**************************************************************************************** … … 308 320 REAL, DIMENSION(klon), INTENT(OUT) :: alb1_m ! mean albedo in visible SW interval 309 321 REAL, DIMENSION(klon), INTENT(OUT) :: alb2_m ! mean albedo in near IR SW interval 322 ! Martin 323 REAL, DIMENSION(klon), INTENT(OUT) :: alb3_lic 324 ! Martin 310 325 REAL, DIMENSION(klon), INTENT(OUT) :: zxsens ! sensible heat flux at surface with inversed sign 311 326 ! (=> positive sign upwards) … … 370 385 REAL, DIMENSION(klon, klev, nbsrf), INTENT(OUT) :: flux_q ! water vapour flux(latent flux) (kg/m**2/s) 371 386 387 ! Martin 388 ! sisvat 389 REAL, DIMENSION(klon), INTENT(OUT) :: qsnow ! snow water content 390 REAL, DIMENSION(klon), INTENT(OUT) :: snowhgt ! snow height 391 REAL, DIMENSION(klon), INTENT(OUT) :: to_ice ! snow passed to ice 392 REAL, DIMENSION(klon), INTENT(OUT) :: sissnow ! snow in snow model 393 REAL, DIMENSION(klon), INTENT(OUT) :: runoff ! runoff on land ice 394 ! Martin 372 395 373 396 ! Local variables with attribute SAVE … … 429 452 REAL, DIMENSION(klon) :: AcoefU, AcoefV, BcoefU, BcoefV 430 453 REAL, DIMENSION(klon) :: ypsref 431 REAL, DIMENSION(klon) :: yevap, ytsurf_new, yalb1_new, yalb2_new 454 REAL, DIMENSION(klon) :: yevap, ytsurf_new, yalb1_new, yalb2_new, yalb3_new 432 455 REAL, DIMENSION(klon) :: ztsol 433 456 REAL, DIMENSION(klon) :: alb_m ! mean albedo for whole SW interval … … 475 498 476 499 REAL :: zx_qs1, zcor1, zdelta1 500 501 ! Martin 502 REAL, DIMENSION(klon, nbsrf) :: sollwd ! net longwave radiation at surface 503 REAL, DIMENSION(klon) :: ysollwd 504 REAL, DIMENSION(klon) :: ytoice 505 REAL, DIMENSION(klon) :: ysnowhgt, yqsnow, ysissnow, yrunoff 506 REAL, DIMENSION(klon) :: yzsig 507 REAL, DIMENSION(klon,klev) :: ypphi 508 REAL, DIMENSION(klon) :: ycldt 509 REAL, DIMENSION(klon) :: yrmu0 510 ! Martin 477 511 478 512 !**************************************************************************************** … … 556 590 d_t_diss= 0.0 ;d_u = 0.0 ; d_v = 0.0 ; yqsol = 0.0 557 591 ytherm = 0.0 ; ytke=0. 592 ! Martin 593 ysnowhgt = 0.0; yqsnow = 0.0 ; yrunoff = 0.0 ; ytoice =0.0 594 yalb3_new = 0.0 ; ysissnow = 0.0 ; ysollwd = 0.0 595 ypphi = 0.0 ; ycldt = 0.0 ; yrmu0 = 0.0 596 ! Martin 558 597 559 598 tke(:,:,is_ave)=0. … … 644 683 DO i = 1, klon 645 684 sollw(i,nsrf) = sollw_m(i) + 4.0*RSIGMA*ztsol(i)**3 * (ztsol(i)-ts(i,nsrf)) 685 ! Martin 686 sollwd(i,nsrf)= sollwd_m(i) 687 ! Martin 646 688 solsw(i,nsrf) = solsw_m(i) * (1.-alb(i,nsrf)) / (1.-alb_m(i)) 647 689 ENDDO … … 712 754 ypaprs(j,klev+1) = paprs(i,klev+1) 713 755 ywindsp(j) = SQRT(u10m(i,nsrf)**2 + v10m(i,nsrf)**2 ) 756 ! Martin 757 yzsig(j) = zsig(i) 758 ycldt(j) = cldt(i) 759 yrmu0(j) = rmu0(i) 760 ! Martin 714 761 END DO 715 762 … … 862 909 863 910 CASE(is_lic) 911 ! Martin 864 912 CALL surf_landice(itap, dtime, knon, ni, & 913 rlon, rlat, debut, lafin, & 914 yrmu0, ysollwd, yalb, ypphi(:,1), & 865 915 ysolsw, ysollw, yts, ypplay(:,1), & 866 916 ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),& … … 871 921 ytsoil, yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, & 872 922 ytsurf_new, y_dflux_t, y_dflux_q, & 923 yzsig, ycldt, & 924 ysnowhgt, yqsnow, ytoice, ysissnow, & 925 yalb3_new, yrunoff, & 873 926 y_flux_u1, y_flux_v1) 927 !CALL surf_landice(itap, dtime, knon, ni, & 928 ! ysolsw, ysollw, yts, ypplay(:,1), & 929 ! ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),& 930 ! AcoefH, AcoefQ, BcoefH, BcoefQ, & 931 ! AcoefU, AcoefV, BcoefU, BcoefV, & 932 ! ypsref, yu1, yv1, yrugoro, pctsrf, & 933 ! ysnow, yqsurf, yqsol, yagesno, & 934 ! ytsoil, yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, & 935 ! ytsurf_new, y_dflux_t, y_dflux_q, & 936 ! y_flux_u1, y_flux_v1) 937 938 alb3_lic(i)=0. 939 DO j = 1, knon 940 i = ni(j) 941 alb3_lic(i) = yalb3_new(j) 942 snowhgt(i) = ysnowhgt(j) 943 qsnow(i) = yqsnow(j) 944 to_ice(i) = ytoice(j) 945 sissnow(i) = ysissnow(j) 946 runoff(i) = yrunoff(j) 947 END DO 948 ! Martin 874 949 875 950 CASE(is_oce) -
LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90
r1828 r1865 264 264 !$OMP THREADPRIVATE(rneb) 265 265 266 ! variables de sorties MM 267 REAL, ALLOCATABLE,DIMENSION(:) :: zxsnow,snowhgt,qsnow,to_ice 268 REAL, ALLOCATABLE,DIMENSION(:) :: sissnow,runoff,albsol3_lic 269 266 270 CONTAINS 267 271 … … 414 418 415 419 420 ALLOCATE (zxsnow(klon),snowhgt(klon),qsnow(klon),to_ice(klon),sissnow(klon),runoff(klon),albsol3_lic(klon)) 421 422 423 416 424 END SUBROUTINE phys_local_var_init 417 425 … … 554 562 DEALLOCATE(beta_prec) 555 563 DEALLOCATE(rneb) 564 DEALLOCATE (zxsnow,snowhgt,qsnow,to_ice,sissnow,runoff,albsol3_lic) 556 565 557 566 END SUBROUTINE phys_local_var_end -
LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r1852 r1865 1153 1153 TYPE(ctrl_out), SAVE :: o_rldcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10, 11, 11, 11 /), & 1154 1154 'rldcs4co2', 'Downwelling CS LW 4xCO2 atmosphere', 'W/m2', (/ ('', i=1, 9) /)) 1155 TYPE(ctrl_out), SAVE :: o_snowsrf = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 /), & 1156 'snowsrf', 'Snow mass at surface', 'kg/m2', (/ ('', i=1, 9) /)) 1157 TYPE(ctrl_out), SAVE :: o_qsnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 /), & 1158 'qsnow', 'Water contained in snow', 'kg/m2', (/ ('', i=1, 9) /)) 1159 TYPE(ctrl_out), SAVE :: o_snowhgt = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 /), & 1160 'snowhgt', 'Snow height at surface', 'm', (/ ('', i=1, 9) /)) 1161 TYPE(ctrl_out), SAVE :: o_toice = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 /), & 1162 'to_ice', 'Snow passed to ice model', 'kg/m2', (/ ('', i=1, 9) /)) 1163 TYPE(ctrl_out), SAVE :: o_sissnow = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 /), & 1164 'sissnow', 'Snow in snow model', 'kg/m2', (/ ('', i=1, 9) /)) 1165 TYPE(ctrl_out), SAVE :: o_runoff = ctrl_out((/ 1, 1, 10, 1, 10, 10, 11, 11, 11 /), & 1166 'runoff', 'Run-off rate land ice', 'kg/m2/s', (/ ('', i=1, 9) /)) 1167 TYPE(ctrl_out), SAVE :: o_albslw3 = ctrl_out((/ 1, 1, 1, 1, 10, 10, 11, 11, 11 /), & 1168 'albslw3', 'Surface albedo LW3', '-', (/ ('', i=1, 9) /)) 1155 1169 1156 1170 !!!!!!!!!!!!! Sorties niveaux standards de pression NMC -
LMDZ5/trunk/libf/phylmd/phys_output_mod.F90
r1852 r1865 41 41 USE mod_phys_lmdz_para 42 42 USE aero_mod, only : naero_spc,name_aero 43 !Martin 44 USE surface_data, ONLY : ok_snow 43 45 USE phys_output_ctrlout_mod 44 46 -
LMDZ5/trunk/libf/phylmd/phys_output_var_mod.F90
r1828 r1865 23 23 REAL, ALLOCATABLE :: bils_latent(:) ! bilan de chaleur au sol 24 24 !$OMP THREADPRIVATE(bils_ec,bils_tke,bils_diss,bils_kinetic,bils_enthalp,bils_latent) 25 25 26 26 27 ! ug Plein de variables venues de phys_output_mod -
LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
r1852 r1865 31 31 USE phys_state_var_mod 32 32 USE phys_local_var_mod 33 USE phys_output_var_mod 33 34 USE indice_sol_mod 34 35 USE infotrac 35 36 USE comgeomphy 36 USE surface_data, ONLY : type_ocean, ok_veget 37 USE surface_data, ONLY : type_ocean, ok_veget, ok_snow 37 38 USE aero_mod 38 39 USE ioipsl … … 296 297 ENDIF 297 298 CALL histwrite_phy(o_tauy, zx_tmp_fi2d) 299 300 IF (ok_snow) THEN 301 CALL histwrite_phy(o_snowsrf, zxsnow) 302 CALL histwrite_phy(o_qsnow, qsnow) 303 CALL histwrite_phy(o_snowhgt,snowhgt) 304 CALL histwrite_phy(o_toice,to_ice) 305 CALL histwrite_phy(o_sissnow,sissnow) 306 CALL histwrite_phy(o_runoff,runoff) 307 CALL histwrite_phy(o_albslw3,albsol3_lic) 308 ENDIF 298 309 299 310 -
LMDZ5/trunk/libf/phylmd/physiq.F90
r1863 r1865 25 25 USE pbl_surface_mod, ONLY : pbl_surface 26 26 USE change_srf_frac_mod 27 USE surface_data, ONLY : type_ocean, ok_veget 27 USE surface_data, ONLY : type_ocean, ok_veget, ok_snow 28 28 USE phys_local_var_mod ! Variables internes non sauvegardees de la physique 29 29 USE phys_state_var_mod ! Variables sauvegardees de la physique … … 773 773 774 774 ! 775 REAL zxsnow(klon)775 ! REAL zxsnow(klon) 776 776 REAL zxsnow_dummy(klon) 777 777 ! … … 1997 1997 debut, lafin, & 1998 1998 rlon, rlat, rugoro, rmu0, & 1999 zsig, sollwdown, pphi, cldt, & 1999 2000 rain_fall, snow_fall, solsw, sollw, & 2000 2001 t_seri, q_seri, u_seri, v_seri, & … … 2003 2004 sollwdown, cdragh, cdragm, u1, v1, & 2004 2005 albsol1, albsol2, sens, evap, & 2006 albsol3_lic,runoff, snowhgt, qsnow, to_ice, sissnow, & 2005 2007 zxtsol, zxfluxlat, zt2m, qsat2m, & 2006 2008 d_t_vdf, d_q_vdf, d_u_vdf, d_v_vdf, d_t_diss, & -
LMDZ5/trunk/libf/phylmd/surf_landice_mod.F90
r1785 r1865 9 9 ! 10 10 SUBROUTINE surf_landice(itime, dtime, knon, knindex, & 11 rlon, rlat, debut, lafin, & 12 rmu0, lwdownm, albedo, pphi1, & 11 13 swnet, lwnet, tsurf, p1lay, & 12 14 cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, & … … 17 19 tsoil, z0_new, alb1, alb2, evap, fluxsens, fluxlat, & 18 20 tsurf_new, dflux_s, dflux_l, & 21 slope, cloudf, & 22 snowhgt, qsnow, to_ice, sissnow, & 23 alb3, runoff, & 19 24 flux_u1, flux_v1) 20 25 21 26 USE dimphy 22 USE surface_data, ONLY : type_ocean, calice, calsno 27 USE surface_data, ONLY : type_ocean, calice, calsno, ok_snow 23 28 USE fonte_neige_mod, ONLY : fonte_neige, run_off_lic 24 29 USE cpl_mod, ONLY : cpl_send_landice_fields 25 30 USE calcul_fluxs_mod 26 31 USE phys_output_var_mod 32 #ifdef CPP_SISVAT 33 USE surf_sisvat_mod, ONLY : surf_sisvat 34 #endif 27 35 USE indice_sol_mod 28 36 … … 52 60 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf 53 61 62 LOGICAL, INTENT(IN) :: debut !true if first step 63 LOGICAL, INTENT(IN) :: lafin !true if last step 64 REAL, DIMENSION(klon), INTENT(IN) :: rlon, rlat 65 REAL, DIMENSION(klon), INTENT(IN) :: rmu0 66 REAL, DIMENSION(klon), INTENT(IN) :: lwdownm !ylwdown 67 REAL, DIMENSION(klon), INTENT(IN) :: albedo !mean albedo 68 REAL, DIMENSION(klon), INTENT(IN) :: pphi1 69 REAL, DIMENSION(klon), INTENT(IN) :: slope !mean slope in grid box 70 REAL, DIMENSION(klon), INTENT(IN) :: cloudf !total cloud fraction 71 54 72 ! In/Output variables 55 73 !**************************************************************************************** … … 69 87 REAL, DIMENSION(klon), INTENT(OUT) :: flux_u1, flux_v1 70 88 89 REAL, DIMENSION(klon), INTENT(OUT) :: alb3 90 REAL, DIMENSION(klon), INTENT(OUT) :: qsnow !column water in snow [kg/m2] 91 REAL, DIMENSION(klon), INTENT(OUT) :: snowhgt !Snow height (m) 92 REAL, DIMENSION(klon), INTENT(OUT) :: to_ice 93 REAL, DIMENSION(klon), INTENT(OUT) :: sissnow 94 REAL, DIMENSION(klon), INTENT(OUT) :: runoff !Land ice runoff 95 96 71 97 ! Local variables 72 98 !**************************************************************************************** … … 78 104 INTEGER :: i,j 79 105 106 REAL, DIMENSION(klon) :: emis_new !Emissivity 107 REAL, DIMENSION(klon) :: swdown,lwdown 108 REAL, DIMENSION(klon) :: precip_snow_adv, snow_adv !Snow Drift precip./advection 109 REAL, DIMENSION(klon) :: bl_height, wind_velo !height boundary layer, wind spd 110 REAL, DIMENSION(klon) :: dens_air, snow_cont_air !air density; snow content air 111 REAL, DIMENSION(klon) :: alb_soil !albedo of underlying ice 112 REAL, DIMENSION(klon) :: pexner !Exner potential 113 REAL :: pref 114 REAL, DIMENSION(klon,nsoilmx) :: tsoil0 !modfi 115 116 CHARACTER (len = 20) :: modname = 'surf_landice' 117 CHARACTER (len = 80) :: abort_message 118 80 119 ! End definition 81 120 !**************************************************************************************** 82 121 ! 83 122 ! Initialize output variables 123 alb3(:) = 999999. 84 124 alb2(:) = 999999. 85 125 alb1(:) = 999999. 86 126 127 runoff(:) = 0. 87 128 !**************************************************************************************** 88 129 ! Calculate total absorbed radiance at surface … … 91 132 radsol(:) = 0.0 92 133 radsol(1:knon) = swnet(1:knon) + lwnet(1:knon) 134 135 !**************************************************************************************** 136 ! ok_snow = TRUE : prepare and call SISVAT snow model 137 ! ok_snow = FALSE : soil_model, calcul_flux, fonte_neige, ... 138 ! 139 !**************************************************************************************** 140 IF (ok_snow) THEN 141 #ifdef CPP_SISVAT 142 ! Prepare for calling SISVAT 143 144 ! Calculate incoming flux for SW and LW interval: swdown, lwdown 145 swdown(:) = 0.0 146 lwdown(:) = 0.0 147 DO i = 1, knon 148 swdown(i) = swnet(i)/(1-albedo(i)) 149 lwdown(i) = lwdownm(i) 150 END DO 151 152 ! Set constants and compute some input for SISVAT 153 snow_adv(:) = 0. ! no snow blown in for now 154 snow_cont_air(:) = 0. 155 alb_soil(:) = albedo(:) 156 pref = 100000. ! = 1000 hPa 157 DO i = 1, knon 158 wind_velo(i) = u1(i)**2 + v1(i)**2 159 wind_velo(i) = wind_velo(i)**0.5 160 pexner(i) = (p1lay(i)/pref)**(RD/RCPD) 161 dens_air(i) = p1lay(i)/RD/temp_air(i) ! dry air density 162 bl_height(i) = pphi1(i)/RG 163 END DO 164 165 !**************************************************************************************** 166 ! CALL to SISVAT interface 167 ! 168 !**************************************************************************************** 169 ! config: compute everything with SV but temperatures afterwards with soil/calculfluxs 170 DO i = 1, knon 171 tsoil0(i,:)=tsoil(i,:) 172 END DO 173 ! Martin 174 PRINT*, 'on appelle surf_sisvat' 175 ! Martin 176 CALL surf_sisvat(knon, rlon, rlat, knindex, itime, dtime, debut, lafin, & 177 rmu0, swdown, lwdown, pexner, ps, p1lay, & 178 precip_rain, precip_snow, precip_snow_adv, snow_adv, & 179 bl_height, wind_velo, temp_air, dens_air, spechum, tsurf, & 180 rugoro, snow_cont_air, alb_soil, slope, cloudf, & 181 radsol, qsol, tsoil0, snow, snowhgt, qsnow, to_ice,sissnow, agesno, & 182 AcoefH, AcoefQ, BcoefH, BcoefQ, cdragh, & 183 run_off_lic, evap, fluxsens, fluxlat, dflux_s, dflux_l, & 184 tsurf_new, alb1, alb2, alb3, & 185 emis_new, z0_new, qsurf) 186 187 ! Suppose zero surface speed 188 u0(:) = 0.0 189 v0(:) = 0.0 190 ! The calculation of heat/water fluxes, otherwise done by "CALL calcul_fluxs" is 191 ! integrated in SISVAT, using the same method. It can be found in "sisvat.f", in the 192 ! subroutine "SISVAT_TS2". 193 ! u0, v0=0., dif_grnd=0. and beta=1 are assumed there! 194 195 CALL calcul_flux_wind(knon, dtime, & 196 u0, v0, u1, v1, cdragm, & 197 AcoefU, AcoefV, BcoefU, BcoefV, & 198 p1lay, temp_air, & 199 flux_u1, flux_v1) 200 #else 201 abort_message='Pb de coherence: ok_snow = .true. mais CPP_SISVAT = .false.' 202 CALL abort_gcm(modname,abort_message,1) 203 #endif 204 ELSE ! ok_snow=FALSE 93 205 94 206 !**************************************************************************************** … … 168 280 !**************************************************************************************** 169 281 z0_new(:) = MAX(1.E-3,rugoro(:)) 282 END IF ! ok_snow 283 170 284 171 285 !**************************************************************************************** 172 286 ! Send run-off on land-ice to coupler if coupled ocean. 173 ! run_off_lic has been calculated in fonte_neige 287 ! run_off_lic has been calculated in fonte_neige or surf_sisvat 174 288 ! 175 289 !**************************************************************************************** … … 177 291 CALL cpl_send_landice_fields(itime, knon, knindex, run_off_lic) 178 292 ENDIF 293 294 ! transfer runoff rate [kg/m2/s](!) to physiq for output 295 runoff(1:knon)=run_off_lic(1:knon)/dtime 296 179 297 180 298 !**************************************************************************************** -
LMDZ5/trunk/libf/phylmd/surface_data.F90
r1724 r1865 11 11 CHARACTER(len=10), SAVE :: type_veget ! orchidee/y/bucket/n/betaclim 12 12 !$OMP THREADPRIVATE(ok_veget) 13 ! Martin 14 LOGICAL, SAVE :: ok_snow ! true for coupling to snow model SISVAT 15 !$OMP THREADPRIVATE(ok_snow) 16 ! Martin 13 17 14 18 CHARACTER(len=6), SAVE :: type_ocean ! force/slab/couple -
LMDZ5/trunk/makegcm
r1839 r1865 27 27 set io=ioipsl 28 28 set cosp=false 29 set sisvat=false 29 30 30 31 set FC_LINUX=gfortran … … 491 492 set cosp="$2"; shift ; shift ; goto top 492 493 494 case -sisvat 495 set sisvat="$2" ; shift ; shift ; goto top 496 493 497 case -filtre 494 498 set filtre=$2 ; shift ; shift ; goto top … … 566 570 endif 567 571 572 if ( "$sisvat" == 'true' ) then 573 set cppflags="$cppflags -DCPP_SISVAT" 574 endif 575 568 576 if ( "$physique" == 'nophys' ) then 569 577 set phys="L_PHY= LIBPHY=" -
LMDZ5/trunk/makelmdz
r1838 r1865 25 25 fcm_path=none 26 26 cosp=false 27 sisvat=false 27 28 28 29 # guess a default 'arch' … … 173 174 cosp="$2" ; shift ; shift ;; 174 175 176 "-sisvat") 177 sisvat="$2" ; shift ; shift ;; 178 175 179 "-mem") 176 180 paramem="mem" ; shift ;; … … 396 400 INCLUDE="$INCLUDE"' -I$(LIBF)/cosp' 397 401 fi 402 403 if [[ "$sisvat" == "true" ]] 404 then 405 CPP_KEY="$CPP_KEY CPP_SISVAT" 406 fi 407 398 408 399 409 INCLUDE="$INCLUDE ${NETCDF_INCDIR}" -
LMDZ5/trunk/makelmdz_fcm
r1854 r1865 22 22 couple=false 23 23 veget=false 24 sisvat=false 24 25 chimie=false 25 26 parallel=none … … 117 118 veget="$2" ; shift ; shift ;; 118 119 120 "-sisvat") 121 sisvat="$2" ; shift ; shift ;; 122 119 123 "-chimie") 120 124 chimie="$2" ; shift ; shift ;; … … 284 288 fi 285 289 290 if [[ "$sisvat" == "true" ]] 291 then 292 CPP_KEY="$CPP_KEY CPP_SISVAT" 293 fi 294 286 295 if [[ $io == ioipsl ]] 287 296 then
Note: See TracChangeset
for help on using the changeset viewer.