Ignore:
Timestamp:
Sep 9, 2020 8:27:58 PM (4 years ago)
Author:
pavelkrc
Message:

Radiative transfer model RTM version 4.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/time_integration_spinup.f90

    r4669 r4671  
    2525! -----------------
    2626! $Id$
     27! Implementation of downward facing USM and LSM surfaces
     28!
     29! 4669 2020-09-09 13:43:47Z pavelkrc
    2730! - Fix missing call of radiation after spinup
    2831! - Fix calculation of force_radiation_call
     
    101104    USE control_parameters,                                                                        &
    102105        ONLY:  averaging_interval_pr,                                                              &
    103                calc_soil_moisture_during_spinup,                                                   &
    104106               constant_diffusion,                                                                 &
    105107               constant_flux_layer,                                                                &
     
    161163    USE land_surface_model_mod,                                                                    &
    162164        ONLY:  lsm_energy_balance,                                                                 &
    163                lsm_soil_model,                                                                     &
    164165               lsm_swap_timelevel
    165166
     
    204205
    205206    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
    211209
    212210
     
    261259!-- unknown. A minimum velocity of 0.1 m/s is used to maintain turbulent transfer at the surface.
    262260    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
    269269       ENDDO
    270270
     
    281281
    282282    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
    289291       ENDDO
    290292
     
    343345!--       Map air temperature to all grid points in the vicinity of a surface element
    344346          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
    350354             ENDDO
    351355
     
    361365
    362366          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
    371377             ENDDO
    372378
     
    430436             IF ( land_surface )  THEN
    431437
    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. )
    452439
    453440             ENDIF
     
    457444             IF (urban_surface) THEN
    458445
    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. )
    464447
    465448             ENDIF
Note: See TracChangeset for help on using the changeset viewer.