Changeset 3943 for palm/trunk/SOURCE/urban_surface_mod.f90
- Timestamp:
- May 2, 2019 9:50:41 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/urban_surface_mod.f90
r3933 r3943 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Removed qsws_eb. Bugfix in calculation of qsws. 31 ! 32 ! 3933 2019-04-25 12:33:20Z kanani 30 33 ! Remove allocation of pt_2m, this is done in surface_mod now (surfaces%pt_2m) 31 34 ! … … 1161 1164 ALLOCATE ( surf_usm_h%r_canopy(1:surf_usm_h%ns) ) 1162 1165 ALLOCATE ( surf_usm_h%r_canopy_min(1:surf_usm_h%ns) ) 1163 ALLOCATE ( surf_usm_h%qsws_eb(1:surf_usm_h%ns) )1164 1166 ALLOCATE ( surf_usm_h%pt_10cm(1:surf_usm_h%ns) ) 1165 1167 … … 1171 1173 ALLOCATE ( surf_usm_v(l)%qsws_liq(1:surf_usm_v(l)%ns) ) 1172 1174 ALLOCATE ( surf_usm_v(l)%qsws_veg(1:surf_usm_v(l)%ns) ) 1173 ALLOCATE ( surf_usm_v(l)%qsws_eb(1:surf_usm_v(l)%ns) )1174 1175 ALLOCATE ( surf_usm_v(l)%r_canopy(1:surf_usm_v(l)%ns) ) 1175 1176 ALLOCATE ( surf_usm_v(l)%r_canopy_min(1:surf_usm_v(l)%ns) ) … … 1532 1533 !-- array of latent heat flux from surfaces 1533 1534 !-- land surfaces 1534 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%qsws_ eb_av) ) THEN1535 ALLOCATE ( surf_usm_h%qsws_ eb_av(1:surf_usm_h%ns) )1536 surf_usm_h%qsws_ eb_av = 0.0_wp1535 IF ( l == -1 .AND. .NOT. ALLOCATED(surf_usm_h%qsws_av) ) THEN 1536 ALLOCATE ( surf_usm_h%qsws_av(1:surf_usm_h%ns) ) 1537 surf_usm_h%qsws_av = 0.0_wp 1537 1538 ELSE 1538 IF ( .NOT. ALLOCATED(surf_usm_v(l)%qsws_ eb_av) ) THEN1539 ALLOCATE ( surf_usm_v(l)%qsws_ eb_av(1:surf_usm_v(l)%ns) )1540 surf_usm_v(l)%qsws_ eb_av = 0.0_wp1539 IF ( .NOT. ALLOCATED(surf_usm_v(l)%qsws_av) ) THEN 1540 ALLOCATE ( surf_usm_v(l)%qsws_av(1:surf_usm_v(l)%ns) ) 1541 surf_usm_v(l)%qsws_av = 0.0_wp 1541 1542 ENDIF 1542 1543 ENDIF … … 1797 1798 IF ( l == -1 ) THEN 1798 1799 DO m = 1, surf_usm_h%ns 1799 surf_usm_h%qsws_ eb_av(m) = &1800 surf_usm_h%qsws_ eb_av(m) + &1801 surf_usm_h%qsws _eb(m)1800 surf_usm_h%qsws_av(m) = & 1801 surf_usm_h%qsws_av(m) + & 1802 surf_usm_h%qsws(m) * l_v 1802 1803 ENDDO 1803 1804 ELSE 1804 1805 DO m = 1, surf_usm_v(l)%ns 1805 surf_usm_v(l)%qsws_ eb_av(m) = &1806 surf_usm_v(l)%qsws_ eb_av(m) + &1807 surf_usm_v(l)%qsws _eb(m)1806 surf_usm_v(l)%qsws_av(m) = & 1807 surf_usm_v(l)%qsws_av(m) + & 1808 surf_usm_v(l)%qsws(m) * l_v 1808 1809 ENDDO 1809 1810 ENDIF … … 2095 2096 IF ( l == -1 ) THEN 2096 2097 DO m = 1, surf_usm_h%ns 2097 surf_usm_h%qsws_ eb_av(m) = &2098 surf_usm_h%qsws_ eb_av(m) / &2098 surf_usm_h%qsws_av(m) = & 2099 surf_usm_h%qsws_av(m) / & 2099 2100 REAL( average_count_3d, kind=wp ) 2100 2101 ENDDO 2101 2102 ELSE 2102 2103 DO m = 1, surf_usm_v(l)%ns 2103 surf_usm_v(l)%qsws_ eb_av(m) = &2104 surf_usm_v(l)%qsws_ eb_av(m) / &2104 surf_usm_v(l)%qsws_av(m) = & 2105 surf_usm_v(l)%qsws_av(m) / & 2105 2106 REAL( average_count_3d, kind=wp ) 2106 2107 ENDDO … … 2432 2433 CHARACTER(LEN=2) :: ls 2433 2434 CHARACTER(LEN=varnamelength) :: var !< TRIM(variable) 2434 INTEGER(iwp), PARAMETER :: nl1 = 1 4!< number of directional usm variables2435 INTEGER(iwp), PARAMETER :: nl1 = 15 !< number of directional usm variables 2435 2436 CHARACTER(LEN=varnamelength), DIMENSION(nl1) :: varlist1 = & !< list of directional usm variables 2436 2437 (/'usm_wshf ', & … … 2447 2448 'usm_t_surf_green ', & 2448 2449 'usm_t_green ', & 2450 'usm_qsws ', & 2449 2451 'usm_theta_10cm '/) 2450 2452 … … 2801 2803 j = surf_usm_h%j(m) 2802 2804 k = surf_usm_h%k(m) 2803 temp_pf(k,j,i) = surf_usm_h%qsws _eb(m)2805 temp_pf(k,j,i) = surf_usm_h%qsws(m) * l_v 2804 2806 ENDDO 2805 2807 ELSE … … 2809 2811 j = surf_usm_v(l)%j(m) 2810 2812 k = surf_usm_v(l)%k(m) 2811 temp_pf(k,j,i) = surf_usm_v(l)%qsws _eb(m)2813 temp_pf(k,j,i) = surf_usm_v(l)%qsws(m) * l_v 2812 2814 ENDDO 2813 2815 ENDIF … … 2818 2820 j = surf_usm_h%j(m) 2819 2821 k = surf_usm_h%k(m) 2820 temp_pf(k,j,i) = surf_usm_h%qsws_ eb_av(m)2822 temp_pf(k,j,i) = surf_usm_h%qsws_av(m) 2821 2823 ENDDO 2822 2824 ELSE … … 2826 2828 j = surf_usm_v(l)%j(m) 2827 2829 k = surf_usm_v(l)%k(m) 2828 temp_pf(k,j,i) = surf_usm_v(l)%qsws_ eb_av(m)2830 temp_pf(k,j,i) = surf_usm_v(l)%qsws_av(m) 2829 2831 ENDDO 2830 2832 ENDIF … … 8073 8075 8074 8076 IF (surf_usm_h%frac(ind_pav_green,m) > 0.0_wp) THEN 8075 8077 8078 8076 8079 IF ( humidity ) THEN 8077 surf_usm_h%qsws _eb(m) = - f_qsws * ( qv1 - q_s + dq_s_dt&8080 surf_usm_h%qsws(m) = - f_qsws * ( qv1 - q_s + dq_s_dt & 8078 8081 * t_surf_green_h(m) - dq_s_dt * & 8079 8082 t_surf_green_h_p(m) ) 8080 8081 surf_usm_h%qsws(m) = surf_usm_h%qsws_eb(m) / rho_lv8082 8083 8083 8084 surf_usm_h%qsws_veg(m) = - f_qsws_veg * ( qv1 - q_s & … … 8088 8089 + dq_s_dt * t_surf_green_h(m) - dq_s_dt & 8089 8090 * t_surf_green_h_p(m) ) 8091 8090 8092 ENDIF 8091 8093 … … 8528 8530 8529 8531 IF ( humidity ) THEN 8530 surf_usm_v(l)%qsws _eb(m) = - f_qsws * ( qv1 - q_s + dq_s_dt&8532 surf_usm_v(l)%qsws(m) = - f_qsws * ( qv1 - q_s + dq_s_dt & 8531 8533 * t_surf_green_v(l)%t(m) - dq_s_dt * & 8532 8534 t_surf_green_v_p(l)%t(m) ) 8533 8535 8534 surf_usm_v(l)%qsws(m) = surf_usm_v(l)%qsws _eb(m) / rho_lv8536 surf_usm_v(l)%qsws(m) = surf_usm_v(l)%qsws(m) / l_v 8535 8537 8536 8538 surf_usm_v(l)%qsws_veg(m) = - f_qsws_veg * ( qv1 - q_s &
Note: See TracChangeset
for help on using the changeset viewer.