Changeset 4888
- Timestamp:
- Mar 1, 2021 11:59:00 AM (4 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/flow_statistics.f90
r4828 r4888 24 24 ! ----------------- 25 25 ! $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 26 29 ! Implement relative humidity as diagnostic output quantity 27 30 ! … … 103 106 !> up according to the staggered grid. However, this implies no error since staggered velocity 104 107 !> components are zero at the walls and inside buildings. 108 !> @todo Revise output steering of land-surface and urban-surface output quantities 105 109 !--------------------------------------------------------------------------------------------------! 106 110 SUBROUTINE flow_statistics … … 129 133 large_scale_subsidence, max_pr_salsa, max_pr_user, message_string, neutral, & 130 134 ocean_mode, passive_scalar, salsa, simulated_time, simulated_time_at_begin, & 135 urban_surface, & 131 136 use_subsidence_tendencies, use_surface_fluxes, use_top_fluxes, ws_scheme_mom, & 132 137 ws_scheme_sca … … 1466 1471 ENDIF 1467 1472 ! 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 ! 1468 1490 !-- For speed optimization fluxes which have been computed in part directly inside the WS 1469 1491 !-- advection routines are treated seperatly. … … 1820 1842 !-- Profiles: 1821 1843 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 1830 1853 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 ) 1832 1867 ENDIF 1833 1868 -
palm/trunk/SOURCE/virtual_measurement_mod.f90
r4843 r4888 25 25 ! ----------------- 26 26 ! $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 27 30 ! reading of namelist file and actions in case of namelist errors revised so that statement labels 28 31 ! and goto statements are not required any more, … … 413 416 INTEGER(iwp) :: off_ts = 1 !< number of neighboring grid points (in horizontal direction) where virtual profile 414 417 !< 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) where418 INTEGER(iwp) :: off_ts_z = 1 !< number of additional grid points (in each upwardd and downward direction) where 416 419 !< virtual profile measurements shall be taken, in addition to the given z coordinates in the driver 417 420 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.