- Timestamp:
- Oct 15, 2018 6:40:42 PM (6 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/radiation_model_mod.f90
r3337 r3351 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Do not overwrite values of spectral and broadband albedo during initialization 31 ! if they are already initialized in the urban-surface model via ASCII input. 32 ! 33 ! 3337 2018-10-12 15:17:09Z kanani 30 34 ! - New RTM version 2.9: (Pavel Krc, Jaroslav Resler, ICS, Prague) 31 35 ! added calculation of the MRT inside the RTM module … … 1753 1757 ! 1754 1758 !-- Allocate arrays for broadband albedo, and level 1 initialization 1755 !-- via namelist paramter, unless already allocated.1759 !-- via namelist paramter, unless not already allocated. 1756 1760 IF ( .NOT. ALLOCATED(surf_lsm_h%albedo) ) THEN 1757 1761 ALLOCATE( surf_lsm_h%albedo(0:2,1:surf_lsm_h%ns) ) … … 1775 1779 ! 1776 1780 !-- Level 2 initialization of broadband albedo via given albedo_type. 1777 !-- Only if albedo_type is non-zero 1781 !-- Only if albedo_type is non-zero. In case of urban surface and 1782 !-- input data is read from ASCII file, albedo_type will be zero, so that 1783 !-- albedo won't be overwritten. 1778 1784 DO m = 1, surf_lsm_h%ns 1779 1785 IF ( surf_lsm_h%albedo_type(ind_veg_wall,m) /= 0 ) & … … 1969 1975 ENDIF 1970 1976 IF ( surf_usm_h%ns > 0 ) THEN 1971 surf_usm_h%aldif = albedo_lw_dif 1972 surf_usm_h%aldir = albedo_lw_dir 1973 surf_usm_h%asdif = albedo_sw_dif 1974 surf_usm_h%asdir = albedo_sw_dir 1975 surf_usm_h%albedo = albedo_sw_dif 1977 IF ( surf_usm_h%albedo_from_ascii ) THEN 1978 surf_usm_h%aldif = surf_usm_h%albedo 1979 surf_usm_h%aldir = surf_usm_h%albedo 1980 surf_usm_h%asdif = surf_usm_h%albedo 1981 surf_usm_h%asdir = surf_usm_h%albedo 1982 ELSE 1983 surf_usm_h%aldif = albedo_lw_dif 1984 surf_usm_h%aldir = albedo_lw_dir 1985 surf_usm_h%asdif = albedo_sw_dif 1986 surf_usm_h%asdir = albedo_sw_dir 1987 surf_usm_h%albedo = albedo_sw_dif 1988 ENDIF 1976 1989 ENDIF 1977 1990 … … 1987 2000 1988 2001 IF ( surf_usm_v(l)%ns > 0 ) THEN 1989 surf_usm_v(l)%aldif = albedo_lw_dif 1990 surf_usm_v(l)%aldir = albedo_lw_dir 1991 surf_usm_v(l)%asdif = albedo_sw_dif 1992 surf_usm_v(l)%asdir = albedo_sw_dir 1993 surf_usm_v(l)%albedo = albedo_sw_dif 2002 IF ( surf_usm_v(l)%albedo_from_ascii ) THEN 2003 surf_usm_v(l)%aldif = surf_usm_v(l)%albedo 2004 surf_usm_v(l)%aldir = surf_usm_v(l)%albedo 2005 surf_usm_v(l)%asdif = surf_usm_v(l)%albedo 2006 surf_usm_v(l)%asdir = surf_usm_v(l)%albedo 2007 ELSE 2008 surf_usm_v(l)%aldif = albedo_lw_dif 2009 surf_usm_v(l)%aldir = albedo_lw_dir 2010 surf_usm_v(l)%asdif = albedo_sw_dif 2011 surf_usm_v(l)%asdir = albedo_sw_dir 2012 ENDIF 1994 2013 ENDIF 1995 2014 ENDDO … … 2019 2038 2020 2039 ENDDO 2021 2022 DO m = 1, surf_usm_h%ns 2023 ! 2024 !-- Spectral albedos for wall/green/window surfaces 2025 DO ind_type = 0, 2 2026 IF ( surf_usm_h%albedo_type(ind_type,m) /= 0 ) THEN 2027 surf_usm_h%aldif(ind_type,m) = & 2040 ! 2041 !-- For urban surface only if albedo has not been already initialized 2042 !-- in the urban-surface model via the ASCII file. 2043 IF ( .NOT. surf_usm_h%albedo_from_ascii ) THEN 2044 DO m = 1, surf_usm_h%ns 2045 ! 2046 !-- Spectral albedos for wall/green/window surfaces 2047 DO ind_type = 0, 2 2048 IF ( surf_usm_h%albedo_type(ind_type,m) /= 0 ) THEN 2049 surf_usm_h%aldif(ind_type,m) = & 2028 2050 albedo_pars(0,surf_usm_h%albedo_type(ind_type,m)) 2029 surf_usm_h%asdif(ind_type,m) =&2051 surf_usm_h%asdif(ind_type,m) = & 2030 2052 albedo_pars(1,surf_usm_h%albedo_type(ind_type,m)) 2031 surf_usm_h%aldir(ind_type,m) =&2053 surf_usm_h%aldir(ind_type,m) = & 2032 2054 albedo_pars(0,surf_usm_h%albedo_type(ind_type,m)) 2033 surf_usm_h%asdir(ind_type,m) =&2055 surf_usm_h%asdir(ind_type,m) = & 2034 2056 albedo_pars(1,surf_usm_h%albedo_type(ind_type,m)) 2035 surf_usm_h%albedo(ind_type,m) =&2057 surf_usm_h%albedo(ind_type,m) = & 2036 2058 albedo_pars(2,surf_usm_h%albedo_type(ind_type,m)) 2037 ENDIF 2059 ENDIF 2060 ENDDO 2061 2038 2062 ENDDO 2039 2040 ENDDO 2063 ENDIF 2041 2064 2042 2065 DO l = 0, 3 … … 2060 2083 ENDDO 2061 2084 ENDDO 2062 2063 DO m = 1, surf_usm_v(l)%ns 2064 ! 2065 !-- Spectral albedos for wall/green/window surfaces 2066 DO ind_type = 0, 2 2067 IF ( surf_usm_v(l)%albedo_type(ind_type,m) /= 0 ) THEN 2068 surf_usm_v(l)%aldif(ind_type,m) = & 2085 ! 2086 !-- For urban surface only if albedo has not been already initialized 2087 !-- in the urban-surface model via the ASCII file. 2088 IF ( .NOT. surf_usm_v(l)%albedo_from_ascii ) THEN 2089 DO m = 1, surf_usm_v(l)%ns 2090 ! 2091 !-- Spectral albedos for wall/green/window surfaces 2092 DO ind_type = 0, 2 2093 IF ( surf_usm_v(l)%albedo_type(ind_type,m) /= 0 ) THEN 2094 surf_usm_v(l)%aldif(ind_type,m) = & 2069 2095 albedo_pars(0,surf_usm_v(l)%albedo_type(ind_type,m)) 2070 surf_usm_v(l)%asdif(ind_type,m) =&2096 surf_usm_v(l)%asdif(ind_type,m) = & 2071 2097 albedo_pars(1,surf_usm_v(l)%albedo_type(ind_type,m)) 2072 surf_usm_v(l)%aldir(ind_type,m) =&2098 surf_usm_v(l)%aldir(ind_type,m) = & 2073 2099 albedo_pars(0,surf_usm_v(l)%albedo_type(ind_type,m)) 2074 surf_usm_v(l)%asdir(ind_type,m) =&2100 surf_usm_v(l)%asdir(ind_type,m) = & 2075 2101 albedo_pars(1,surf_usm_v(l)%albedo_type(ind_type,m)) 2076 surf_usm_v(l)%albedo(ind_type,m) =&2102 surf_usm_v(l)%albedo(ind_type,m) = & 2077 2103 albedo_pars(2,surf_usm_v(l)%albedo_type(ind_type,m)) 2078 ENDIF 2104 ENDIF 2105 ENDDO 2106 2079 2107 ENDDO 2080 2081 ENDDO 2108 ENDIF 2082 2109 ENDDO 2083 2110 ! … … 2112 2139 ENDDO 2113 2140 ENDDO 2114 2115 DO m = 1, surf_usm_h%ns 2116 i = surf_usm_h%i(m) 2117 j = surf_usm_h%j(m) 2118 ! 2119 !-- Spectral albedos for wall/green/window surfaces 2120 DO ind_type = 0, 2 2121 IF ( surf_usm_h%albedo_type(ind_type,m) == 0 ) THEN 2122 IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )& 2123 surf_usm_h%albedo(ind_type,m) = & 2141 ! 2142 !-- For urban surface only if albedo has not been already initialized 2143 !-- in the urban-surface model via the ASCII file. 2144 IF ( .NOT. surf_usm_h%albedo_from_ascii ) THEN 2145 DO m = 1, surf_usm_h%ns 2146 i = surf_usm_h%i(m) 2147 j = surf_usm_h%j(m) 2148 ! 2149 !-- Spectral albedos for wall/green/window surfaces 2150 DO ind_type = 0, 2 2151 IF ( surf_usm_h%albedo_type(ind_type,m) == 0 ) THEN 2152 IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )& 2153 surf_usm_h%albedo(ind_type,m) = & 2124 2154 albedo_pars_f%pars_xy(1,j,i) 2125 IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )&2126 surf_usm_h%aldir(ind_type,m) = &2155 IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )& 2156 surf_usm_h%aldir(ind_type,m) = & 2127 2157 albedo_pars_f%pars_xy(1,j,i) 2128 IF ( albedo_pars_f%pars_xy(2,j,i) /= albedo_pars_f%fill )&2129 surf_usm_h%aldif(ind_type,m) = &2158 IF ( albedo_pars_f%pars_xy(2,j,i) /= albedo_pars_f%fill )& 2159 surf_usm_h%aldif(ind_type,m) = & 2130 2160 albedo_pars_f%pars_xy(2,j,i) 2131 IF ( albedo_pars_f%pars_xy(3,j,i) /= albedo_pars_f%fill )&2132 surf_usm_h%asdir(ind_type,m) = &2161 IF ( albedo_pars_f%pars_xy(3,j,i) /= albedo_pars_f%fill )& 2162 surf_usm_h%asdir(ind_type,m) = & 2133 2163 albedo_pars_f%pars_xy(3,j,i) 2134 IF ( albedo_pars_f%pars_xy(4,j,i) /= albedo_pars_f%fill )&2135 surf_usm_h%asdif(ind_type,m) = &2164 IF ( albedo_pars_f%pars_xy(4,j,i) /= albedo_pars_f%fill )& 2165 surf_usm_h%asdif(ind_type,m) = & 2136 2166 albedo_pars_f%pars_xy(4,j,i) 2137 ENDIF 2167 ENDIF 2168 ENDDO 2169 2138 2170 ENDDO 2139 2140 ENDDO 2171 ENDIF 2141 2172 ! 2142 2173 !-- Vertical … … 2175 2206 ENDDO 2176 2207 ENDDO 2177 2178 ioff = surf_usm_v(l)%ioff 2179 joff = surf_usm_v(l)%joff 2180 2181 DO m = 1, surf_usm_v(l)%ns 2182 i = surf_usm_v(l)%i(m) 2183 j = surf_usm_v(l)%j(m) 2184 ! 2185 !-- Spectral albedos for wall/green/window surfaces 2186 DO ind_type = 0, 2 2187 IF ( surf_usm_v(l)%albedo_type(ind_type,m) == 0 ) THEN 2188 IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /= & 2189 albedo_pars_f%fill ) & 2190 surf_usm_v(l)%albedo(ind_type,m) = & 2191 albedo_pars_f%pars_xy(1,j+joff,i+ioff) 2192 IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /= & 2193 albedo_pars_f%fill ) & 2194 surf_usm_v(l)%aldir(ind_type,m) = & 2195 albedo_pars_f%pars_xy(1,j+joff,i+ioff) 2196 IF ( albedo_pars_f%pars_xy(2,j+joff,i+ioff) /= & 2197 albedo_pars_f%fill ) & 2198 surf_usm_v(l)%aldif(ind_type,m) = & 2199 albedo_pars_f%pars_xy(2,j+joff,i+ioff) 2200 IF ( albedo_pars_f%pars_xy(3,j+joff,i+ioff) /= & 2201 albedo_pars_f%fill ) & 2202 surf_usm_v(l)%asdir(ind_type,m) = & 2203 albedo_pars_f%pars_xy(3,j+joff,i+ioff) 2204 IF ( albedo_pars_f%pars_xy(4,j+joff,i+ioff) /= & 2205 albedo_pars_f%fill ) & 2206 surf_usm_v(l)%asdif(ind_type,m) = & 2207 albedo_pars_f%pars_xy(4,j+joff,i+ioff) 2208 ENDIF 2208 ! 2209 !-- For urban surface only if albedo has not been already initialized 2210 !-- in the urban-surface model via the ASCII file. 2211 IF ( .NOT. surf_usm_v(l)%albedo_from_ascii ) THEN 2212 ioff = surf_usm_v(l)%ioff 2213 joff = surf_usm_v(l)%joff 2214 2215 DO m = 1, surf_usm_v(l)%ns 2216 i = surf_usm_v(l)%i(m) 2217 j = surf_usm_v(l)%j(m) 2218 ! 2219 !-- Spectral albedos for wall/green/window surfaces 2220 DO ind_type = 0, 2 2221 IF ( surf_usm_v(l)%albedo_type(ind_type,m) == 0 ) THEN 2222 IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /= & 2223 albedo_pars_f%fill ) & 2224 surf_usm_v(l)%albedo(ind_type,m) = & 2225 albedo_pars_f%pars_xy(1,j+joff,i+ioff) 2226 IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /= & 2227 albedo_pars_f%fill ) & 2228 surf_usm_v(l)%aldir(ind_type,m) = & 2229 albedo_pars_f%pars_xy(1,j+joff,i+ioff) 2230 IF ( albedo_pars_f%pars_xy(2,j+joff,i+ioff) /= & 2231 albedo_pars_f%fill ) & 2232 surf_usm_v(l)%aldif(ind_type,m) = & 2233 albedo_pars_f%pars_xy(2,j+joff,i+ioff) 2234 IF ( albedo_pars_f%pars_xy(3,j+joff,i+ioff) /= & 2235 albedo_pars_f%fill ) & 2236 surf_usm_v(l)%asdir(ind_type,m) = & 2237 albedo_pars_f%pars_xy(3,j+joff,i+ioff) 2238 IF ( albedo_pars_f%pars_xy(4,j+joff,i+ioff) /= & 2239 albedo_pars_f%fill ) & 2240 surf_usm_v(l)%asdif(ind_type,m) = & 2241 albedo_pars_f%pars_xy(4,j+joff,i+ioff) 2242 ENDIF 2243 ENDDO 2244 2209 2245 ENDDO 2210 2211 ENDDO 2246 ENDIF 2212 2247 ENDDO 2213 2248 -
palm/trunk/SOURCE/surface_mod.f90
r3298 r3351 26 26 ! ----------------- 27 27 ! $Id$ 28 ! New flag indication that albedo at urban surfaces is initialized via ASCII 29 ! file 30 ! 31 ! 3298 2018-10-02 12:21:11Z kanani 28 32 ! - Minor formatting/clean-up (kanani) 29 33 ! - Removed initialization of cssws with surface_csflux values. Only the value 0 … … 260 264 TYPE surf_type 261 265 266 LOGICAL :: albedo_from_ascii = .FALSE. !< flag indicating that albedo for urban surfaces is input via ASCII format (just for a workaround) 267 262 268 INTEGER(iwp) :: ioff !< offset value in x-direction, used to determine index of surface element 263 269 INTEGER(iwp) :: joff !< offset value in y-direction, used to determine index of surface element -
palm/trunk/SOURCE/urban_surface_mod.f90
r3347 r3351 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Set flag indicating that albedo at urban surfaces is already initialized 31 ! 32 ! 3347 2018-10-15 14:21:08Z suehring 30 33 ! Enable USM initialization with default building parameters in case no static 31 34 ! input file exist. … … 7067 7070 !-- Assign the surface types to the respective data type. 7068 7071 !-- First, for horizontal upward-facing surfaces. 7072 !-- Further, set flag indicating that albedo is initialized via ASCII 7073 !-- format, else it would be overwritten in the radiation model. 7074 surf_usm_h%albedo_from_ascii = .TRUE. 7069 7075 DO m = 1, surf_usm_h%ns 7070 7076 iw = surf_usm_h%i(m) … … 7193 7199 !-- 2 -- eastward-facing, 3 -- westward-facing ) 7194 7200 DO l = 0, 3 7201 ! 7202 !-- Set flag indicating that albedo is initialized via ASCII format. 7203 !-- Else it would be overwritten in the radiation model. 7204 surf_usm_v(l)%albedo_from_ascii = .TRUE. 7195 7205 DO m = 1, surf_usm_v(l)%ns 7196 7206 i = surf_usm_v(l)%i(m) … … 7390 7400 ENDDO 7391 7401 ENDDO 7402 7392 7403 ! 7393 7404 !-- Initialize wall layer thicknesses. Please note, this will be removed
Note: See TracChangeset
for help on using the changeset viewer.