Changeset 4888


Ignore:
Timestamp:
Mar 1, 2021 11:59:00 AM (7 months ago)
Author:
suehring
Message:

Timeseries output of ghf and r_a as sum of all horizontally upward-facing surfaces in LSM+USM simulations; virtual measurements: Reduce number of additional grid point output in z for timeseries data to a reasonable number

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

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

    r4828 r4888  
    2424! -----------------
    2525! $Id$
     26! Output ghf and r_a as sum of all horizontally upward-facing surfaces in LSM+USM simulations
     27!
     28! 4828 2021-01-05 11:21:41Z Giersch
    2629! Implement relative humidity as diagnostic output quantity
    2730!
     
    103106!>       up according to the staggered grid. However, this implies no error since staggered velocity
    104107!>       components are zero at the walls and inside buildings.
     108!> @todo Revise output steering of land-surface and urban-surface output quantities
    105109!--------------------------------------------------------------------------------------------------!
    106110 SUBROUTINE flow_statistics
     
    129133                large_scale_subsidence, max_pr_salsa, max_pr_user, message_string, neutral,        &
    130134                ocean_mode, passive_scalar, salsa, simulated_time, simulated_time_at_begin,        &
     135                urban_surface,                                                                     &
    131136                use_subsidence_tendencies, use_surface_fluxes, use_top_fluxes, ws_scheme_mom,      &
    132137                ws_scheme_sca
     
    14661471       ENDIF
    14671472!
     1473!--    Treat urban-surface quantities according to new wall model structure. Here, ghf and r_a are
     1474!--    added on top of LSM sums.
     1475       IF ( land_surface  .AND.  urban_surface )  THEN
     1476          tn = 0
     1477          !$OMP PARALLEL PRIVATE( i, j, m, tn )
     1478          !$ tn = omp_get_thread_num()
     1479          !$OMP DO
     1480          DO  m = 1, surf_usm_h(0)%ns
     1481             i = surf_usm_h(0)%i(m)
     1482             j = surf_usm_h(0)%j(m)
     1483
     1484             sums_l(nzb,93,tn)  = sums_l(nzb,93,tn) + surf_usm_h(0)%wghf_eb(m) * rmask(j,i,sr)
     1485             sums_l(nzb,97,tn)  = sums_l(nzb,97,tn) + surf_usm_h(0)%r_a(m)     * rmask(j,i,sr)
     1486          ENDDO
     1487          !$OMP END PARALLEL
     1488       ENDIF
     1489!
    14681490!--    For speed optimization fluxes which have been computed in part directly inside the WS
    14691491!--    advection routines are treated seperatly.
     
    18201842!--    Profiles:
    18211843       DO  k = nzb, nzt+1
    1822           sums(k,3)             = sums(k,3)             / ngp_2dh(sr)
    1823           sums(k,12:22)         = sums(k,12:22)         / ngp_2dh(sr)
    1824           sums(k,30:32)         = sums(k,30:32)         / ngp_2dh(sr)
    1825           sums(k,35:39)         = sums(k,35:39)         / ngp_2dh(sr)
    1826           sums(k,45:53)         = sums(k,45:53)         / ngp_2dh(sr)
    1827           sums(k,55:63)         = sums(k,55:63)         / ngp_2dh(sr)
    1828           sums(k,81:88)         = sums(k,81:88)         / ngp_2dh(sr)
    1829 
     1844          sums(k,3)             = sums(k,3)     / ngp_2dh(sr)
     1845          sums(k,12:22)         = sums(k,12:22) / ngp_2dh(sr)
     1846          sums(k,30:32)         = sums(k,30:32) / ngp_2dh(sr)
     1847          sums(k,35:39)         = sums(k,35:39) / ngp_2dh(sr)
     1848          sums(k,45:53)         = sums(k,45:53) / ngp_2dh(sr)
     1849          sums(k,55:63)         = sums(k,55:63) / ngp_2dh(sr)
     1850          sums(k,81:88)         = sums(k,81:88) / ngp_2dh(sr)
     1851!
     1852!--       Average land-surface quantities over LSM surfaces only
    18301853          IF ( land_surface  .AND.  surf_lsm_h(0)%ns_tot > 0 )  THEN
    1831              sums(k,89:98) = sums(k,89:98)              / surf_lsm_h(0)%ns_tot
     1854             sums(k,89:92) = sums(k,89:92) / surf_lsm_h(0)%ns_tot
     1855             sums(k,94:96) = sums(k,94:96) / surf_lsm_h(0)%ns_tot
     1856             sums(k,98)    = sums(k,98)    / surf_lsm_h(0)%ns_tot
     1857          ENDIF
     1858!
     1859!--       Average land/urban-surface quantities over LSM+USM surfaces. Note, at the moment this
     1860!--       only works when the land-surface model runs alone or in combination with the urban-
     1861!--       surface model. This is because the number of output quantities is defined by the LSM.
     1862!--       This needs to be revised in the future.
     1863          IF ( land_surface  .AND.  surf_lsm_h(0)%ns_tot + surf_usm_h(0)%ns_tot > 0 )  THEN
     1864           !  print*, surf_lsm_h(0)%ns_tot + surf_usm_h(0)%ns_tot, surf_lsm_h(0)%ns_tot, surf_usm_h(0)%ns_tot
     1865             sums(k,93) = sums(k,93) / ( surf_lsm_h(0)%ns_tot + surf_usm_h(0)%ns_tot )
     1866             sums(k,97) = sums(k,97) / ( surf_lsm_h(0)%ns_tot + surf_usm_h(0)%ns_tot )
    18321867          ENDIF
    18331868
  • palm/trunk/SOURCE/virtual_measurement_mod.f90

    r4843 r4888  
    2525! -----------------
    2626! $Id$
     27! Reduce number of additional grid point output in z for timeseries data to a reasonable number
     28!
     29! 4843 2021-01-15 15:22:11Z raasch
    2730! reading of namelist file and actions in case of namelist errors revised so that statement labels
    2831! and goto statements are not required any more,
     
    413416    INTEGER(iwp) ::  off_ts              = 1   !< number of neighboring grid points (in horizontal direction) where virtual profile
    414417                                               !< measurements shall be taken, in addition to the given coordinates in the driver
    415     INTEGER(iwp) ::  off_ts_z            = 50  !< number of additional grid points (in each upwardd and downward direction) where
     418    INTEGER(iwp) ::  off_ts_z            = 1   !< number of additional grid points (in each upwardd and downward direction) where
    416419                                               !< virtual profile measurements shall be taken, in addition to the given z coordinates in the driver
    417420    INTEGER(iwp) ::  off_tr              = 1   !< number of neighboring grid points (in horizontal direction) where virtual profile
Note: See TracChangeset for help on using the changeset viewer.