Changeset 4671 for palm/trunk/SOURCE/time_integration_spinup.f90
- Timestamp:
- Sep 9, 2020 8:27:58 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/time_integration_spinup.f90
r4669 r4671 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Implementation of downward facing USM and LSM surfaces 28 ! 29 ! 4669 2020-09-09 13:43:47Z pavelkrc 27 30 ! - Fix missing call of radiation after spinup 28 31 ! - Fix calculation of force_radiation_call … … 101 104 USE control_parameters, & 102 105 ONLY: averaging_interval_pr, & 103 calc_soil_moisture_during_spinup, &104 106 constant_diffusion, & 105 107 constant_flux_layer, & … … 161 163 USE land_surface_model_mod, & 162 164 ONLY: lsm_energy_balance, & 163 lsm_soil_model, &164 165 lsm_swap_timelevel 165 166 … … 204 205 205 206 USE urban_surface_mod, & 206 ONLY: usm_material_heat_model, & 207 usm_material_model, & 208 usm_surface_energy_balance, & 209 usm_swap_timelevel, & 210 usm_green_heat_model 207 ONLY: usm_energy_balance, & 208 usm_swap_timelevel 211 209 212 210 … … 261 259 !-- unknown. A minimum velocity of 0.1 m/s is used to maintain turbulent transfer at the surface. 262 260 IF ( land_surface ) THEN 263 DO m = 1, surf_lsm_h%ns 264 i = surf_lsm_h%i(m) 265 j = surf_lsm_h%j(m) 266 k = surf_lsm_h%k(m) 267 u(k,j,i) = SIGN( 1.0_wp, u_init(k) ) * MAX( ABS( u_init(k) ), 0.1_wp) 268 v(k,j,i) = SIGN( 1.0_wp, v_init(k) ) * MAX( ABS( v_init(k) ), 0.1_wp) 261 DO l = 0, 1 262 DO m = 1, surf_lsm_h(l)%ns 263 i = surf_lsm_h(l)%i(m) 264 j = surf_lsm_h(l)%j(m) 265 k = surf_lsm_h(l)%k(m) 266 u(k,j,i) = SIGN( 1.0_wp, u_init(k) ) * MAX( ABS( u_init(k) ), 0.1_wp) 267 v(k,j,i) = SIGN( 1.0_wp, v_init(k) ) * MAX( ABS( v_init(k) ), 0.1_wp) 268 ENDDO 269 269 ENDDO 270 270 … … 281 281 282 282 IF ( urban_surface ) THEN 283 DO m = 1, surf_usm_h%ns 284 i = surf_usm_h%i(m) 285 j = surf_usm_h%j(m) 286 k = surf_usm_h%k(m) 287 u(k,j,i) = SIGN( 1.0_wp, u_init(k) ) * MAX( ABS( u_init(k) ), 0.1_wp) 288 v(k,j,i) = SIGN( 1.0_wp, v_init(k) ) * MAX( ABS( v_init(k) ), 0.1_wp) 283 DO l = 0, 1 284 DO m = 1, surf_usm_h(l)%ns 285 i = surf_usm_h(l)%i(m) 286 j = surf_usm_h(l)%j(m) 287 k = surf_usm_h(l)%k(m) 288 u(k,j,i) = SIGN( 1.0_wp, u_init(k) ) * MAX( ABS( u_init(k) ), 0.1_wp) 289 v(k,j,i) = SIGN( 1.0_wp, v_init(k) ) * MAX( ABS( v_init(k) ), 0.1_wp) 290 ENDDO 289 291 ENDDO 290 292 … … 343 345 !-- Map air temperature to all grid points in the vicinity of a surface element 344 346 IF ( land_surface ) THEN 345 DO m = 1, surf_lsm_h%ns 346 i = surf_lsm_h%i(m) 347 j = surf_lsm_h%j(m) 348 k = surf_lsm_h%k(m) 349 pt(k,j,i) = pt_spinup 347 DO l = 0, 1 348 DO m = 1, surf_lsm_h(l)%ns 349 i = surf_lsm_h(l)%i(m) 350 j = surf_lsm_h(l)%j(m) 351 k = surf_lsm_h(l)%k(m) 352 pt(k,j,i) = pt_spinup 353 ENDDO 350 354 ENDDO 351 355 … … 361 365 362 366 IF ( urban_surface ) THEN 363 DO m = 1, surf_usm_h%ns 364 i = surf_usm_h%i(m) 365 j = surf_usm_h%j(m) 366 k = surf_usm_h%k(m) 367 pt(k,j,i) = pt_spinup 368 !!!!!!!!!!!!!!!!HACK!!!!!!!!!!!!! 369 surf_usm_h%pt1(m) = pt_spinup 370 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 367 DO l = 0, 1 368 DO m = 1, surf_usm_h(l)%ns 369 i = surf_usm_h(l)%i(m) 370 j = surf_usm_h(l)%j(m) 371 k = surf_usm_h(l)%k(m) 372 pt(k,j,i) = pt_spinup 373 !!!!!!!!!!!!!!!!HACK!!!!!!!!!!!!! 374 surf_usm_h(l)%pt1(m) = pt_spinup 375 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 376 ENDDO 371 377 ENDDO 372 378 … … 430 436 IF ( land_surface ) THEN 431 437 432 ! 433 !-- Call for horizontal upward-facing surfaces 434 CALL lsm_energy_balance( .TRUE., -1 ) 435 CALL lsm_soil_model( .TRUE., -1, calc_soil_moisture_during_spinup ) 436 ! 437 !-- Call for northward-facing surfaces 438 CALL lsm_energy_balance( .FALSE., 0 ) 439 CALL lsm_soil_model( .FALSE., 0, calc_soil_moisture_during_spinup ) 440 ! 441 !-- Call for southward-facing surfaces 442 CALL lsm_energy_balance( .FALSE., 1 ) 443 CALL lsm_soil_model( .FALSE., 1, calc_soil_moisture_during_spinup ) 444 ! 445 !-- Call for eastward-facing surfaces 446 CALL lsm_energy_balance( .FALSE., 2 ) 447 CALL lsm_soil_model( .FALSE., 2, calc_soil_moisture_during_spinup ) 448 ! 449 !-- Call for westward-facing surfaces 450 CALL lsm_energy_balance( .FALSE., 3 ) 451 CALL lsm_soil_model( .FALSE., 3, calc_soil_moisture_during_spinup ) 438 CALL lsm_energy_balance( .TRUE. ) 452 439 453 440 ENDIF … … 457 444 IF (urban_surface) THEN 458 445 459 CALL usm_surface_energy_balance( .TRUE. ) 460 IF ( usm_material_model ) THEN 461 CALL usm_green_heat_model 462 CALL usm_material_heat_model( .TRUE. ) 463 ENDIF 446 CALL usm_energy_balance( .TRUE. ) 464 447 465 448 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.