Changeset 3449 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- Oct 29, 2018 7:36:56 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r3435 r3449 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Bugfix: Fix average arrays allocations in usm_average_3d_data (J.Resler) 31 ! Bugfix: Fix reading wall temperatures (J.Resler) 32 ! Bugfix: Fix treating of outputs for wall temperature and sky view factors (J.Resler) 33 ! 34 ! 35 ! 3435 2018-10-26 18:25:44Z gronemeier 30 36 ! Bugfix: allocate gamma_w_green_sat until nzt_wall+1 31 37 ! … … 411 417 412 418 USE plant_canopy_model_mod, & 413 ONLY: pc_heating_rate, pc_transpiration_rate 419 ONLY: pc_heating_rate, pc_transpiration_rate, pc_latent_rate 414 420 415 421 USE radiation_model_mod, & … … 1845 1851 CASE ( 'usm_rad_net' ) 1846 1852 !-- array of complete radiation balance 1847 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%rad_net_av) ) THEN 1848 ALLOCATE( surf_usm_h%rad_net_av(1:surf_usm_h%ns) ) 1849 surf_usm_h%rad_net_av = 0.0_wp 1853 IF ( l == -1 ) THEN 1854 IF ( .NOT. ALLOCATED(surf_usm_h%rad_net_av) ) THEN 1855 ALLOCATE( surf_usm_h%rad_net_av(1:surf_usm_h%ns) ) 1856 surf_usm_h%rad_net_av = 0.0_wp 1857 ENDIF 1850 1858 ELSE 1851 1859 IF ( .NOT. ALLOCATED(surf_usm_v(l)%rad_net_av) ) THEN … … 1968 1976 CASE ( 'usm_rad_hf' ) 1969 1977 !-- array of heat flux from radiation for surfaces after i-th reflection 1970 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%surfhf_av) ) THEN 1971 ALLOCATE( surf_usm_h%surfhf_av(1:surf_usm_h%ns) ) 1972 surf_usm_h%surfhf_av = 0.0_wp 1978 IF ( l == -1 ) THEN 1979 IF ( .NOT. ALLOCATED(surf_usm_h%surfhf_av) ) THEN 1980 ALLOCATE( surf_usm_h%surfhf_av(1:surf_usm_h%ns) ) 1981 surf_usm_h%surfhf_av = 0.0_wp 1982 ENDIF 1973 1983 ELSE 1974 1984 IF ( .NOT. ALLOCATED(surf_usm_v(l)%surfhf_av) ) THEN … … 1981 1991 !-- array of sensible heat flux from surfaces 1982 1992 !-- land surfaces 1983 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%wshf_eb_av) ) THEN 1984 ALLOCATE( surf_usm_h%wshf_eb_av(1:surf_usm_h%ns) ) 1985 surf_usm_h%wshf_eb_av = 0.0_wp 1993 IF ( l == -1 ) THEN 1994 IF ( .NOT. ALLOCATED(surf_usm_h%wshf_eb_av) ) THEN 1995 ALLOCATE( surf_usm_h%wshf_eb_av(1:surf_usm_h%ns) ) 1996 surf_usm_h%wshf_eb_av = 0.0_wp 1997 ENDIF 1986 1998 ELSE 1987 1999 IF ( .NOT. ALLOCATED(surf_usm_v(l)%wshf_eb_av) ) THEN … … 2036 2048 CASE ( 'usm_wghf' ) 2037 2049 !-- array of heat flux from ground (wall, roof, land) 2038 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%wghf_eb_av) ) THEN 2039 ALLOCATE( surf_usm_h%wghf_eb_av(1:surf_usm_h%ns) ) 2040 surf_usm_h%wghf_eb_av = 0.0_wp 2050 IF ( l == -1 ) THEN 2051 IF ( .NOT. ALLOCATED(surf_usm_h%wghf_eb_av) ) THEN 2052 ALLOCATE( surf_usm_h%wghf_eb_av(1:surf_usm_h%ns) ) 2053 surf_usm_h%wghf_eb_av = 0.0_wp 2054 ENDIF 2041 2055 ELSE 2042 2056 IF ( .NOT. ALLOCATED(surf_usm_v(l)%wghf_eb_av) ) THEN … … 2048 2062 CASE ( 'usm_wghf_window' ) 2049 2063 !-- array of heat flux from window ground (wall, roof, land) 2050 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%wghf_eb_window_av) ) THEN 2051 ALLOCATE( surf_usm_h%wghf_eb_window_av(1:surf_usm_h%ns) ) 2052 surf_usm_h%wghf_eb_window_av = 0.0_wp 2064 IF ( l == -1 ) THEN 2065 IF ( .NOT. ALLOCATED(surf_usm_h%wghf_eb_window_av) ) THEN 2066 ALLOCATE( surf_usm_h%wghf_eb_window_av(1:surf_usm_h%ns) ) 2067 surf_usm_h%wghf_eb_window_av = 0.0_wp 2068 ENDIF 2053 2069 ELSE 2054 2070 IF ( .NOT. ALLOCATED(surf_usm_v(l)%wghf_eb_window_av) ) THEN … … 2060 2076 CASE ( 'usm_wghf_green' ) 2061 2077 !-- array of heat flux from green ground (wall, roof, land) 2062 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%wghf_eb_green_av) ) THEN 2063 ALLOCATE( surf_usm_h%wghf_eb_green_av(1:surf_usm_h%ns) ) 2064 surf_usm_h%wghf_eb_green_av = 0.0_wp 2078 IF ( l == -1 ) THEN 2079 IF ( .NOT. ALLOCATED(surf_usm_h%wghf_eb_green_av) ) THEN 2080 ALLOCATE( surf_usm_h%wghf_eb_green_av(1:surf_usm_h%ns) ) 2081 surf_usm_h%wghf_eb_green_av = 0.0_wp 2082 ENDIF 2065 2083 ELSE 2066 2084 IF ( .NOT. ALLOCATED(surf_usm_v(l)%wghf_eb_green_av) ) THEN … … 2072 2090 CASE ( 'usm_iwghf' ) 2073 2091 !-- array of heat flux from indoor ground (wall, roof, land) 2074 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%iwghf_eb_av) ) THEN 2075 ALLOCATE( surf_usm_h%iwghf_eb_av(1:surf_usm_h%ns) ) 2076 surf_usm_h%iwghf_eb_av = 0.0_wp 2092 IF ( l == -1 ) THEN 2093 IF ( .NOT. ALLOCATED(surf_usm_h%iwghf_eb_av) ) THEN 2094 ALLOCATE( surf_usm_h%iwghf_eb_av(1:surf_usm_h%ns) ) 2095 surf_usm_h%iwghf_eb_av = 0.0_wp 2096 ENDIF 2077 2097 ELSE 2078 2098 IF ( .NOT. ALLOCATED(surf_usm_v(l)%iwghf_eb_av) ) THEN … … 2084 2104 CASE ( 'usm_iwghf_window' ) 2085 2105 !-- array of heat flux from indoor window ground (wall, roof, land) 2086 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%iwghf_eb_window_av) ) THEN 2087 ALLOCATE( surf_usm_h%iwghf_eb_window_av(1:surf_usm_h%ns) ) 2088 surf_usm_h%iwghf_eb_window_av = 0.0_wp 2106 IF ( l == -1 ) THEN 2107 IF ( .NOT. ALLOCATED(surf_usm_h%iwghf_eb_window_av) ) THEN 2108 ALLOCATE( surf_usm_h%iwghf_eb_window_av(1:surf_usm_h%ns) ) 2109 surf_usm_h%iwghf_eb_window_av = 0.0_wp 2110 ENDIF 2089 2111 ELSE 2090 2112 IF ( .NOT. ALLOCATED(surf_usm_v(l)%iwghf_eb_window_av) ) THEN … … 2093 2115 ENDIF 2094 2116 ENDIF 2095 2117 2096 2118 CASE ( 'usm_t_surf_wall' ) 2097 2119 !-- surface temperature for surfaces 2098 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_surf_wall_av) ) THEN 2099 ALLOCATE( surf_usm_h%t_surf_wall_av(1:surf_usm_h%ns) ) 2100 surf_usm_h%t_surf_wall_av = 0.0_wp 2120 IF ( l == -1 ) THEN 2121 IF ( .NOT. ALLOCATED(surf_usm_h%t_surf_wall_av) ) THEN 2122 ALLOCATE( surf_usm_h%t_surf_wall_av(1:surf_usm_h%ns) ) 2123 surf_usm_h%t_surf_wall_av = 0.0_wp 2124 ENDIF 2101 2125 ELSE 2102 2126 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_surf_wall_av) ) THEN … … 2108 2132 CASE ( 'usm_t_surf_window' ) 2109 2133 !-- surface temperature for window surfaces 2110 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_surf_window_av) ) THEN 2111 ALLOCATE( surf_usm_h%t_surf_window_av(1:surf_usm_h%ns) ) 2112 surf_usm_h%t_surf_window_av = 0.0_wp 2134 IF ( l == -1 ) THEN 2135 IF ( .NOT. ALLOCATED(surf_usm_h%t_surf_window_av) ) THEN 2136 ALLOCATE( surf_usm_h%t_surf_window_av(1:surf_usm_h%ns) ) 2137 surf_usm_h%t_surf_window_av = 0.0_wp 2138 ENDIF 2113 2139 ELSE 2114 2140 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_surf_window_av) ) THEN … … 2120 2146 CASE ( 'usm_t_surf_green' ) 2121 2147 !-- surface temperature for green surfaces 2122 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_surf_green_av) ) THEN 2123 ALLOCATE( surf_usm_h%t_surf_green_av(1:surf_usm_h%ns) ) 2124 surf_usm_h%t_surf_green_av = 0.0_wp 2148 IF ( l == -1 ) THEN 2149 IF ( .NOT. ALLOCATED(surf_usm_h%t_surf_green_av) ) THEN 2150 ALLOCATE( surf_usm_h%t_surf_green_av(1:surf_usm_h%ns) ) 2151 surf_usm_h%t_surf_green_av = 0.0_wp 2152 ENDIF 2125 2153 ELSE 2126 2154 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_surf_green_av) ) THEN … … 2132 2160 CASE ( 'usm_t_surf_10cm' ) 2133 2161 !-- near surface temperature for whole surfaces 2134 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_surf_10cm_av) ) THEN 2135 ALLOCATE( surf_usm_h%t_surf_10cm_av(1:surf_usm_h%ns) ) 2136 surf_usm_h%t_surf_10cm_av = 0.0_wp 2162 IF ( l == -1 ) THEN 2163 IF ( .NOT. ALLOCATED(surf_usm_h%t_surf_10cm_av) ) THEN 2164 ALLOCATE( surf_usm_h%t_surf_10cm_av(1:surf_usm_h%ns) ) 2165 surf_usm_h%t_surf_10cm_av = 0.0_wp 2166 ENDIF 2137 2167 ELSE 2138 2168 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_surf_10cm_av) ) THEN … … 2144 2174 CASE ( 'usm_t_wall' ) 2145 2175 !-- wall temperature for iwl layer of walls and land 2146 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_wall_av) ) THEN 2147 ALLOCATE( surf_usm_h%t_wall_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) ) 2148 surf_usm_h%t_wall_av = 0.0_wp 2176 IF ( l == -1 ) THEN 2177 IF ( .NOT. ALLOCATED(surf_usm_h%t_wall_av) ) THEN 2178 ALLOCATE( surf_usm_h%t_wall_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) ) 2179 surf_usm_h%t_wall_av = 0.0_wp 2180 ENDIF 2149 2181 ELSE 2150 2182 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_wall_av) ) THEN … … 2156 2188 CASE ( 'usm_t_window' ) 2157 2189 !-- window temperature for iwl layer of walls and land 2158 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_window_av) ) THEN 2159 ALLOCATE( surf_usm_h%t_window_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) ) 2160 surf_usm_h%t_window_av = 0.0_wp 2190 IF ( l == -1 ) THEN 2191 IF ( .NOT. ALLOCATED(surf_usm_h%t_window_av) ) THEN 2192 ALLOCATE( surf_usm_h%t_window_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) ) 2193 surf_usm_h%t_window_av = 0.0_wp 2194 ENDIF 2161 2195 ELSE 2162 2196 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_window_av) ) THEN … … 2168 2202 CASE ( 'usm_t_green' ) 2169 2203 !-- green temperature for iwl layer of walls and land 2170 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%t_green_av) ) THEN 2171 ALLOCATE( surf_usm_h%t_green_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) ) 2172 surf_usm_h%t_green_av = 0.0_wp 2204 IF ( l == -1 ) THEN 2205 IF ( .NOT. ALLOCATED(surf_usm_h%t_green_av) ) THEN 2206 ALLOCATE( surf_usm_h%t_green_av(nzb_wall:nzt_wall,1:surf_usm_h%ns) ) 2207 surf_usm_h%t_green_av = 0.0_wp 2208 ENDIF 2173 2209 ELSE 2174 2210 IF ( .NOT. ALLOCATED(surf_usm_v(l)%t_green_av) ) THEN … … 3091 3127 CHARACTER(LEN=*),INTENT(OUT) :: unit !< 3092 3128 3093 INTEGER(iwp) :: i,j !< index 3129 INTEGER(iwp) :: i,j,l !< index 3130 CHARACTER(LEN=2) :: ls 3094 3131 CHARACTER(LEN=varnamelength) :: var !< TRIM(variable) 3095 INTEGER(iwp), PARAMETER :: nl1 = 3 2!< number of directional usm variables3132 INTEGER(iwp), PARAMETER :: nl1 = 31 !< number of directional usm variables 3096 3133 CHARACTER(LEN=varnamelength), DIMENSION(nl1) :: varlist1 = & !< list of directional usm variables 3097 3134 (/'usm_rad_net ', & … … 3119 3156 'usm_surfalb ', & 3120 3157 'usm_surfemis ', & 3121 'usm_t_surf 3158 'usm_t_surf_wall ', & 3122 3159 'usm_t_surf_window ', & 3123 3160 'usm_t_surf_green ', & 3124 3161 'usm_t_green ', & 3125 3162 'usm_t_surf_10cm ', & 3126 'usm_t_wall ', & 3127 'usm_t_window ', & 3128 'usm_t_green '/) 3129 3130 INTEGER(iwp), PARAMETER :: nl2 = 9 !< number of other variables 3163 'usm_skyvf ', & 3164 'usm_skyvft '/) 3165 3166 INTEGER(iwp), PARAMETER :: nl2 = 7 !< number of other variables 3131 3167 CHARACTER(LEN=varnamelength), DIMENSION(nl2) :: varlist2 = & !< list of other usm variables 3132 (/'usm_skyvf ', & 3133 'usm_skyvft ', & 3134 'usm_svf ', & 3168 (/'usm_svf ', & 3135 3169 'usm_dif ', & 3136 3170 'usm_rad_pc_inlw ', & … … 3139 3173 'usm_rad_pc_inswdif ', & 3140 3174 'usm_rad_pc_inswref '/) 3175 3176 INTEGER(iwp), PARAMETER :: nl3 = 3 !< number of directional layer usm variables 3177 CHARACTER(LEN=varnamelength), DIMENSION(nl3) :: varlist3 = & !< list of directional layer usm variables 3178 (/'usm_t_wall ', & 3179 'usm_t_window ', & 3180 'usm_t_green '/) 3141 3181 3142 3182 INTEGER(iwp), PARAMETER :: nd = 5 !< number of directions … … 3158 3198 EXIT 3159 3199 ENDIF 3200 IF ( lfound ) EXIT 3201 ENDDO 3202 ENDDO 3203 IF ( lfound ) GOTO 10 3204 ! directional layer variables 3205 DO i = 1, nl3 3206 DO j = 1, nd 3207 DO l = nzb_wall, nzt_wall 3208 WRITE(ls,'(A1,I1)') '_',l 3209 IF ( TRIM(var) == TRIM(varlist3(i))//TRIM(ls)//TRIM(dirname(j)) ) THEN 3210 lfound = .TRUE. 3211 EXIT 3212 ENDIF 3213 ENDDO 3160 3214 IF ( lfound ) EXIT 3161 3215 ENDDO … … 4503 4557 var(1:9) == 'usm_qsws_' .OR. var(1:13) == 'usm_qsws_veg_' .OR. & 4504 4558 var(1:13) == 'usm_qsws_liq_' .OR. & 4505 var(1:1 0) == 'usm_t_surf_wall' .OR. var(1:10) == 'usm_t_wall' .OR. &4559 var(1:15) == 'usm_t_surf_wall' .OR. var(1:10) == 'usm_t_wall' .OR. & 4506 4560 var(1:17) == 'usm_t_surf_window' .OR. var(1:12) == 'usm_t_window' .OR. & 4507 4561 var(1:16) == 'usm_t_surf_green' .OR. var(1:11) == 'usm_t_green' .OR. & … … 5910 5964 ENDIF 5911 5965 5912 IF ( plant_canopy ) THEN5913 5914 IF ( .NOT. ALLOCATED( pc_heating_rate) ) THEN5915 !-- then pc_heating_rate is allocated in init_plant_canopy5916 !-- in case of cthf /= 0 => we need to allocate it for our use here5917 ALLOCATE( pc_heating_rate(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )5918 5919 pc_heating_rate = 0.0_wp5920 5921 ENDIF5922 5923 IF ( .NOT. ALLOCATED( pc_transpiration_rate) ) THEN5924 !-- then pc_heating_rate is allocated in init_plant_canopy5925 !-- in case of cthf /= 0 => we need to allocate it for our use here5926 ALLOCATE( pc_transpiration_rate(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )5927 5928 pc_transpiration_rate = 0.0_wp5929 5930 5931 ENDIF5932 ENDIF5933 5966 ! 5934 5967 !-- Check for consistent initialization. … … 6092 6125 ENDDO 6093 6126 ENDDO 6094 ELSE6095 !-- If specified, replace constant wall temperatures with fully 3D values from file6096 IF ( read_wall_temp_3d ) CALL usm_read_wall_temperature()6097 !6098 6127 ENDIF 6099 6100 !-- 6128 6129 !-- If specified, replace constant wall temperatures with fully 3D values from file 6130 IF ( read_wall_temp_3d ) CALL usm_read_wall_temperature() 6131 6132 !-- 6101 6133 !-- Possibly DO user-defined actions (e.g. define heterogeneous wall surface) 6102 6134 CALL user_init_urban_surface … … 8870 8902 !> x, y, d, z coordinates 8871 8903 !------------------------------------------------------------------------------! 8872 PURE FUNCTION advance_surface(isurfl_start, isurfl_stop, x, y, z, d) & 8873 result(isurfl) 8874 8875 INTEGER(iwp), INTENT(in) :: isurfl_start, isurfl_stop 8904 PURE FUNCTION find_surface( x, y, z, d ) result(isurfl) 8905 8876 8906 INTEGER(iwp), INTENT(in) :: x, y, z, d 8877 INTEGER(iwp) :: isx, isy, isz, isd8878 8907 INTEGER(iwp) :: isurfl 8879 8880 DO isurfl = isurfl_start, isurfl_stop 8881 isx = surfl(ix, isurfl) 8882 isy = surfl(iy, isurfl) 8883 isz = surfl(iz, isurfl) 8884 isd = surfl(id, isurfl) 8885 IF ( isx==x .and. isy==y .and. isz==z .and. isd==d ) RETURN 8886 ENDDO 8908 INTEGER(iwp) :: isx, isy, isz 8909 8910 IF ( d == 0 ) THEN 8911 DO isurfl = 1, surf_usm_h%ns 8912 isx = surf_usm_h%i(isurfl) 8913 isy = surf_usm_h%j(isurfl) 8914 isz = surf_usm_h%k(isurfl) 8915 IF ( isx==x .and. isy==y .and. isz==z ) RETURN 8916 ENDDO 8917 ELSE 8918 DO isurfl = 1, surf_usm_v(d-1)%ns 8919 isx = surf_usm_v(d-1)%i(isurfl) 8920 isy = surf_usm_v(d-1)%j(isurfl) 8921 isz = surf_usm_v(d-1)%k(isurfl) 8922 IF ( isx==x .and. isy==y .and. isz==z ) RETURN 8923 ENDDO 8924 ENDIF 8887 8925 8888 8926 !-- coordinate not found … … 8927 8965 nys <= j .and. j <= nyn) THEN !< local processor 8928 8966 !-- identify surface id 8929 isurfl = advance_surface(isurfl+1, nsurfl, i, j, k, d)8967 isurfl = find_surface( i, j, k, d ) 8930 8968 IF ( isurfl == -1 ) THEN 8931 8969 WRITE(message_string, '(a,4i5,a,i5,a)') 'Coordinates (xyzd) ', i, j, k, d, & … … 8939 8977 t_surf_wall_h(isurfl) = rtsurf 8940 8978 t_wall_h(:,isurfl) = rtwall(:) 8979 t_window_h(:,isurfl) = rtwall(:) 8980 t_green_h(:,isurfl) = rtwall(:) 8941 8981 ELSE 8942 8982 t_surf_wall_v(d-1)%t(isurfl) = rtsurf 8943 8983 t_wall_v(d-1)%t(:,isurfl) = rtwall(:) 8984 t_window_v(d-1)%t(:,isurfl) = rtwall(:) 8985 t_green_v(d-1)%t(:,isurfl) = rtwall(:) 8944 8986 ENDIF 8945 8987 ENDIF … … 9663 9705 surf_usm_v(l)%rad_lw_out(m) 9664 9706 9665 if ((abs(t_surf_wall_v(l)%t(m)-276.).gt.100.).or.(abs(t_surf_window_v(l)%t(m)-276.).gt.300.) &9666 .or.(abs(t_surf_green_v(l)%t(m)-276.).gt.100)) then9667 print*, "tsurfvvvv",m,t_surf_wall_v(l)%t(m),t_surf_window_v(l)%t(m),t_surf_green_v(l)%t(m)9668 print*, "params", surf_usm_v(l)%emissivity(ind_veg_wall,m),lambda_surface, t_wall_v(l)%t(nzb_wall:nzt_wall,m), &9669 surf_usm_v(l)%emissivity(ind_wat_win,m),lambda_surface_window,t_window_v(l)%t(nzb_wall:nzt_wall,m),t_green_v(l)%t(nzb_wall:nzt_wall,m)9670 print*, "dicken",surf_usm_v(l)%zw(nzb_wall:nzt_wall,m),surf_usm_v(l)%zw_window(nzb_wall:nzt_wall,m),surf_usm_v(l)%zw_green(nzb_wall:nzt_wall,m)9671 print*, "c",surf_usm_v(l)%c_surface_window(m),surf_usm_v(l)%c_surface(m)9672 !if ((abs(t_surf_v(l)%t(m)-276.).gt.10.).or.(abs(t_surf_window_v(l)%t(m)-276.).gt.10.)) then9673 stop9674 endif9675 9707 !-- numerator of the prognostic equation 9676 9708 coef_1 = surf_usm_v(l)%rad_net_l(m) + & ! coef +1 corresponds to -lwout included in calculation of radnet_l
Note: See TracChangeset
for help on using the changeset viewer.