Changeset 3901
- Timestamp:
- May 17, 2021, 4:05:36 PM (4 years ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/bld.cfg
r3815 r3901 111 111 bld::outfile_ext::mod .mod 112 112 bld::tool::SHELL /bin/bash 113 bld::tool::SHELL /bin/ksh -
LMDZ6/trunk/libf/phylmd/conf_phys_m.F90
r3900 r3901 330 330 ! Martin et Etienne 331 331 !Config Key = landice_opt 332 !Config Desc = which landice snow model (BULK, SISVATor INLANDSIS)332 !Config Desc = which landice snow model (BULK, or INLANDSIS) 333 333 !Config Def = 0 334 334 landice_opt_omp = 0 -
LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90
r3900 r3901 519 519 520 520 ! Martin 521 ! sisvat521 ! inlandsis 522 522 REAL, DIMENSION(klon), INTENT(OUT) :: qsnow ! snow water content 523 523 REAL, DIMENSION(klon), INTENT(OUT) :: snowhgt ! snow height -
LMDZ6/trunk/libf/phylmd/surf_landice_mod.F90
r3900 r3901 33 33 USE ioipsl_getin_p_mod, ONLY : getin_p 34 34 35 #ifdef CPP_SISVAT36 USE surf_sisvat_mod, ONLY : surf_sisvat37 #endif38 35 39 36 #ifdef CPP_INLANDSIS … … 179 176 !**************************************************************************************** 180 177 ! landice_opt = 0 : soil_model, calcul_flux, fonte_neige, ... 181 ! landice_opt = 1 : prepare and call SISVAT snow model 182 ! landice_opt = 2 : prepare and call INLANDSIS snow model 178 ! landice_opt = 1 : prepare and call INterace Lmdz SISvat (INLANDSIS) 183 179 !**************************************************************************************** 184 180 185 181 186 182 IF (landice_opt .EQ. 1) THEN 187 188 !**************************************************************************************** 189 ! CALL to SISVAT interface 190 !**************************************************************************************** 191 192 #ifdef CPP_SISVAT 193 ! Prepare for calling SISVAT 194 195 ! Calculate incoming flux for SW and LW interval: swdown, lwdown 196 swdown(:) = 0.0 197 lwdown(:) = 0.0 198 DO i = 1, knon 199 swdown(i) = swnet(i)/(1-albedo(i)) 200 lwdown(i) = lwdownm(i) 201 END DO 202 203 ! Set constants and compute some input for SISVAT 204 snow_adv(:) = 0. ! no snow blown in for now 205 snow_cont_air(:) = 0. 206 alb_soil(:) = albedo(:) 207 pref = 100000. ! = 1000 hPa 208 DO i = 1, knon 209 wind_velo(i) = u1(i)**2 + v1(i)**2 210 wind_velo(i) = wind_velo(i)**0.5 211 pexner(i) = (p1lay(i)/pref)**(RD/RCPD) 212 dens_air(i) = p1lay(i)/RD/temp_air(i) ! dry air density 213 zsl_height(i) = pphi1(i)/RG 214 END DO 215 216 217 ! config: compute everything with SV but temperatures afterwards with soil/calculfluxs 218 DO i = 1, knon 219 tsoil0(i,:)=tsoil(i,:) 220 END DO 221 ! Martin 222 PRINT*, 'on appelle surf_sisvat' 223 ! Martin 224 CALL surf_sisvat(knon, rlon, rlat, knindex, itime, dtime, debut, lafin, & 225 rmu0, swdown, lwdown, pexner, ps, p1lay, & 226 precip_rain, precip_snow, precip_snow_adv, snow_adv, & 227 zsl_height, wind_velo, temp_air, dens_air, spechum, tsurf, & 228 rugoro, snow_cont_air, alb_soil, slope, cloudf, & 229 radsol, qsol, tsoil0, snow, snowhgt, qsnow, to_ice,sissnow, agesno, & 230 AcoefH, AcoefQ, BcoefH, BcoefQ, cdragh, & 231 run_off_lic, evap, fluxsens, fluxlat, dflux_s, dflux_l, & 232 tsurf_new, alb1, alb2, alb3, emis_new, z0m, qsurf) 233 z0h(1:knon)=z0m(1:knon) ! en attendant mieux 234 235 ! Suppose zero surface speed 236 u0(:) = 0.0 237 v0(:) = 0.0 238 ! The calculation of heat/water fluxes, otherwise done by "CALL calcul_fluxs" is 239 ! integrated in SISVAT, using the same method. It can be found in "sisvat.f", in the 240 ! subroutine "SISVAT_TS2". 241 ! u0, v0=0., dif_grnd=0. and beta=1 are assumed there! 242 243 CALL calcul_flux_wind(knon, dtime, & 244 u0, v0, u1, v1, gustiness, cdragm, & 245 AcoefU, AcoefV, BcoefU, BcoefV, & 246 p1lay, temp_air, & 247 flux_u1, flux_v1) 248 #else 249 abort_message='Pb de coherence: landice_opt = 1 mais CPP_SISVAT = .false.' 250 CALL abort_physic(modname,abort_message,1) 251 #endif 252 253 !**************************************************************************************** 183 184 !**************************************************************************************** 254 185 ! CALL to INLANDSIS interface 255 186 !**************************************************************************************** 256 257 ELSE IF (landice_opt .EQ. 2) THEN258 187 #ifdef CPP_INLANDSIS 259 188 … … 330 259 331 260 #else 332 abort_message='Pb de coherence: landice_opt = 2mais CPP_INLANDSIS = .false.'261 abort_message='Pb de coherence: landice_opt = 1 mais CPP_INLANDSIS = .false.' 333 262 CALL abort_physic(modname,abort_message,1) 334 263 #endif … … 480 409 alb_dir(1:knon,6)=alb2(1:knon) 481 410 482 IF ((landice_opt .EQ. 2) .AND. (iflag_albcalc .EQ. 2)) THEN411 IF ((landice_opt .EQ. 1) .AND. (iflag_albcalc .EQ. 2)) THEN 483 412 alb_dir(1:knon,1)=alb6(1:knon,1) 484 413 alb_dir(1:knon,2)=alb6(1:knon,2) -
LMDZ6/trunk/libf/phylmd/surface_data.F90
r3900 r3901 30 30 !=============== 31 31 32 ! 1 for coupling with SISVAT, 2 for coupling with INLANDSIS and number of subtimesteps forINLANDSIS33 INTEGER, SAVE :: landice_opt ! 1 for coupling with SISVAT, 2for coupling with INLANDSIS32 ! 1 for coupling with INLANDSIS 33 INTEGER, SAVE :: landice_opt ! 1 for coupling with INLANDSIS 34 34 !$OMP THREADPRIVATE(landice_opt) 35 35 -
LMDZ6/trunk/makegcm
r3793 r3901 41 41 set cosp2=false 42 42 set cospv2=false 43 set sisvat=false44 43 set inlandsis=false 45 44 … … 517 516 case -cospv2 518 517 set cospv2="$2"; shift ; shift ; goto top 519 case -sisvat520 set sisvat="$2" ; shift ; shift ; goto top521 518 case -inlandsis 522 519 set inlandsis="$2" ; shift ; shift ; goto top … … 621 618 622 619 623 if ( "$sisvat" == 'true' ) then624 set cppflags="$cppflags -DCPP_SISVAT"625 endif626 627 620 if ( "$inlandsis" == 'true' ) then 628 621 set cppflags="$cppflags -DCPP_INLANDSIS" -
LMDZ6/trunk/makelmdz
r3835 r3901 27 27 cosp2=false 28 28 cospv2=false 29 sisvat=false30 29 inlandsis=false 31 30 rrtm=false … … 122 121 [-cosp2 true/false] : compile with/without cosp2 package (default: false) 123 122 [-cospv2 true/false] : compile with/without cospv2 package (default: false) 124 [-sisvat true/false] : compile with/without sisvat package (default: false)125 123 [-inlandsis true/false] : compile with/without inlandsis package (default: false) 126 124 [-rrtm true/false] : compile with/without rrtm package (default: false) … … 192 190 cospv2="$2" ; shift ; shift ;; 193 191 194 "-sisvat")195 sisvat="$2" ; shift ; shift ;;196 197 192 "-inlandsis") 198 193 inlandsis="$2" ; shift ; shift ;; … … 515 510 src_dirs="$src_dirs phy${physique}/cospv2" 516 511 INCLUDE="$INCLUDE"' -I$(LIBF)/'phy${physique}'/cospv2' 517 fi518 519 520 if [[ "$sisvat" == "true" ]]521 then522 CPP_KEY="$CPP_KEY CPP_SISVAT"523 src_dirs="$src_dirs phy${physique}/sisvat"524 512 fi 525 513 -
LMDZ6/trunk/makelmdz_fcm
r3815 r3901 23 23 couple=false 24 24 veget=false 25 sisvat=false26 25 inlandsis=false 27 26 rrtm=false … … 55 54 PHY_COMMON_PATH=$LMDGCM/.void_dir 56 55 RRTM_PATH=$LMDGCM/.void_dir 56 INLANDSIS_PATH=$LMDGCM/.void_dir 57 57 DUST_PATH=$LMDGCM/.void_dir 58 58 STRATAER_PATH=$LMDGCM/.void_dir 59 SISVAT_PATH=$LMDGCM/.void_dir60 59 COSP_PATH=$LMDGCM/.void_dir 61 60 fcm_path=$LMDGCM/tools/fcm/bin … … 99 98 [-cosp2 true/false] : compile with/without cosp2 package (default: false) 100 99 [-cospv2 true/false] : compile with/without cospv2 package (default: false) 101 [-sisvat true/false] : compile with/without sisvat package (default: false)102 100 [-inlandsis true/false] : compile with/without inlandsis package (default: false) 103 101 [-rrtm true/false] : compile with/without rrtm package (default: false) … … 150 148 "-v") 151 149 veget="$2" ; shift ; shift ;; 152 153 "-sisvat")154 sisvat="$2" ; shift ; shift ;;155 150 156 151 "-inlandsis") … … 414 409 fi 415 410 416 if [[ "$sisvat" == "true" ]]417 then418 CPP_KEY="$CPP_KEY CPP_SISVAT"419 SISVAT_PATH="$LIBFGCM/%PHYS/sisvat"420 fi421 422 411 if [[ "$inlandsis" == "true" ]] 423 412 then … … 697 686 echo "%DUST $DUST_PATH" >> $config_fcm 698 687 echo "%STRATAER $STRATAER_PATH" >> $config_fcm 699 echo "%SISVAT $SISVAT_PATH" >> $config_fcm700 688 echo "%INLANDSIS $INLANDSIS_PATH" >> $config_fcm 701 689 echo "%COSP $COSP_PATH" >> $config_fcm
Note: See TracChangeset
for help on using the changeset viewer.