Changeset 208 for palm/trunk
 Timestamp:
 Oct 20, 2008 6:02:59 AM (15 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

palm/trunk/SOURCE/production_e.f90
r198 r208 4 4 ! Actual revisions: 5 5 !  6 ! 6 ! Bugfix concerning the calculation of velocity gradients at vertical walls 7 ! in case of diabatic conditions 7 8 ! 8 9 ! Former revisions: … … 92 93 93 94 REAL :: def, dudx, dudy, dudz, dvdx, dvdy, dvdz, dwdx, dwdy, dwdz, & 94 k1, k2, theta, temp95 k1, k2, km_neutral, theta, temp 95 96 96 97 ! REAL, DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr) :: usvs, vsus, wsus, wsvs … … 166 167 167 168 IF ( wall_e_y(j,i) /= 0.0 ) THEN 169 ! 170 ! Inconsistency removed: as the thermal stratification is 171 ! not taken into account for the evaluation of the wall 172 ! fluxes at vertical walls, the eddy viscosity km must not 173 ! be used for the evaluation of the velocity gradients dudy 174 ! and dwdy 175 ! Note: The validity of the new method has not yet been 176 ! shown, as so far no suitable data for a validation 177 ! has been available 168 178 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 169 179 usvs, 1.0, 0.0, 0.0, 0.0 ) 170 dudy =  wall_e_y(j,i) * usvs(k) / km(k,j,i)171 ! dudy =  wall_e_y(j,i) * usvs(k,j,i) / km(k,j,i)172 180 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 173 181 wsvs, 0.0, 0.0, 1.0, 0.0 ) 174 dwdy =  wall_e_y(j,i) * wsvs(k) / km(k,j,i) 175 ! dwdy =  wall_e_y(j,i) * wsvs(k,j,i) / km(k,j,i) 182 km_neutral = kappa * ( usvs(k)**2 + wsvs(k)**2 )**0.25 * & 183 0.5 * dy 184 dudy =  wall_e_y(j,i) * usvs(k) / km_neutral 185 dwdy =  wall_e_y(j,i) * wsvs(k) / km_neutral 176 186 ELSE 177 187 dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1)  & … … 182 192 183 193 IF ( wall_e_x(j,i) /= 0.0 ) THEN 194 ! 195 ! Inconsistency removed: as the thermal stratification is 196 ! not taken into account for the evaluation of the wall 197 ! fluxes at vertical walls, the eddy viscosity km must not 198 ! be used for the evaluation of the velocity gradients dvdx 199 ! and dwdx 200 ! Note: The validity of the new method has not yet been 201 ! shown, as so far no suitable data for a validation 202 ! has been available 184 203 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 185 204 vsus, 0.0, 1.0, 0.0, 0.0 ) 186 dvdx =  wall_e_x(j,i) * vsus(k) / km(k,j,i)187 ! dvdx =  wall_e_x(j,i) * vsus(k,j,i) / km(k,j,i)188 205 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 189 206 wsus, 0.0, 0.0, 0.0, 1.0 ) 190 dwdx =  wall_e_x(j,i) * wsus(k) / km(k,j,i) 191 ! dwdx =  wall_e_x(j,i) * wsus(k,j,i) / km(k,j,i) 207 km_neutral = kappa * ( vsus(k)**2 + wsus(k)**2 )**0.25 * & 208 0.5 * dx 209 dvdx =  wall_e_x(j,i) * vsus(k) / km_neutral 210 dwdx =  wall_e_x(j,i) * wsus(k) / km_neutral 192 211 ELSE 193 212 dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1)  & … … 224 243 225 244 IF ( wall_e_y(j,i) /= 0.0 ) THEN 226 dudy =  wall_e_y(j,i) * usvs(k) / km(k,j,i) 227 ! dudy =  wall_e_y(j,i) * usvs(k,j,i) / km(k,j,i) 228 dwdy =  wall_e_y(j,i) * wsvs(k) / km(k,j,i) 229 ! dwdy =  wall_e_y(j,i) * wsvs(k,j,i) / km(k,j,i) 245 ! 246 ! Inconsistency removed: as the thermal stratification 247 ! is not taken into account for the evaluation of the 248 ! wall fluxes at vertical walls, the eddy viscosity km 249 ! must not be used for the evaluation of the velocity 250 ! gradients dudy and dwdy 251 ! Note: The validity of the new method has not yet 252 ! been shown, as so far no suitable data for a 253 ! validation has been available 254 km_neutral = kappa * ( usvs(k)**2 + & 255 wsvs(k)**2 )**0.25 * 0.5 * dy 256 dudy =  wall_e_y(j,i) * usvs(k) / km_neutral 257 dwdy =  wall_e_y(j,i) * wsvs(k) / km_neutral 230 258 ELSE 231 259 dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1)  & … … 236 264 237 265 IF ( wall_e_x(j,i) /= 0.0 ) THEN 238 dvdx =  wall_e_x(j,i) * vsus(k) / km(k,j,i) 239 ! dvdx =  wall_e_x(j,i) * vsus(k,j,i) / km(k,j,i) 240 dwdx =  wall_e_x(j,i) * wsus(k) / km(k,j,i) 241 ! dwdx =  wall_e_x(j,i) * wsus(k,j,i) / km(k,j,i) 266 ! 267 ! Inconsistency removed: as the thermal stratification 268 ! is not taken into account for the evaluation of the 269 ! wall fluxes at vertical walls, the eddy viscosity km 270 ! must not be used for the evaluation of the velocity 271 ! gradients dvdx and dwdx 272 ! Note: The validity of the new method has not yet 273 ! been shown, as so far no suitable data for a 274 ! validation has been available 275 km_neutral = kappa * ( vsus(k)**2 + & 276 wsus(k)**2 )**0.25 * 0.5 * dx 277 dvdx =  wall_e_x(j,i) * vsus(k) / km_neutral 278 dwdx =  wall_e_x(j,i) * wsus(k) / km_neutral 242 279 ELSE 243 280 dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1)  & … … 576 613 577 614 REAL :: def, dudx, dudy, dudz, dvdx, dvdy, dvdz, dwdx, dwdy, dwdz, & 578 k1, k2, theta, temp615 k1, k2, km_neutral, theta, temp 579 616 580 617 REAL, DIMENSION(nzb:nzt+1) :: usvs, vsus, wsus, wsvs … … 631 668 632 669 IF ( wall_e_y(j,i) /= 0.0 ) THEN 670 ! 671 ! Inconsistency removed: as the thermal stratification 672 ! is not taken into account for the evaluation of the 673 ! wall fluxes at vertical walls, the eddy viscosity km 674 ! must not be used for the evaluation of the velocity 675 ! gradients dudy and dwdy 676 ! Note: The validity of the new method has not yet 677 ! been shown, as so far no suitable data for a 678 ! validation has been available 633 679 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 634 680 usvs, 1.0, 0.0, 0.0, 0.0 ) 635 dudy =  wall_e_y(j,i) * usvs(k) / km(k,j,i)636 681 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 637 682 wsvs, 0.0, 0.0, 1.0, 0.0 ) 638 dwdy =  wall_e_y(j,i) * wsvs(k) / km(k,j,i) 683 km_neutral = kappa * ( usvs(k)**2 + wsvs(k)**2 )**0.25 * & 684 0.5 * dy 685 dudy =  wall_e_y(j,i) * usvs(k) / km_neutral 686 dwdy =  wall_e_y(j,i) * wsvs(k) / km_neutral 639 687 ELSE 640 688 dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1)  & … … 645 693 646 694 IF ( wall_e_x(j,i) /= 0.0 ) THEN 695 ! 696 ! Inconsistency removed: as the thermal stratification 697 ! is not taken into account for the evaluation of the 698 ! wall fluxes at vertical walls, the eddy viscosity km 699 ! must not be used for the evaluation of the velocity 700 ! gradients dvdx and dwdx 701 ! Note: The validity of the new method has not yet 702 ! been shown, as so far no suitable data for a 703 ! validation has been available 647 704 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 648 705 vsus, 0.0, 1.0, 0.0, 0.0 ) 649 dvdx =  wall_e_x(j,i) * vsus(k) / km(k,j,i)650 706 CALL wall_fluxes_e( i, j, k, nzb_diff_s_outer(j,i)2, & 651 707 wsus, 0.0, 0.0, 0.0, 1.0 ) 652 dwdx =  wall_e_x(j,i) * wsus(k) / km(k,j,i) 708 km_neutral = kappa * ( vsus(k)**2 + wsus(k)**2 )**0.25 * & 709 0.5 * dx 710 dvdx =  wall_e_x(j,i) * vsus(k) / km_neutral 711 dwdx =  wall_e_x(j,i) * wsus(k) / km_neutral 653 712 ELSE 654 713 dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1)  & … … 683 742 684 743 IF ( wall_e_y(j,i) /= 0.0 ) THEN 685 dudy =  wall_e_y(j,i) * usvs(k) / km(k,j,i) 686 dwdy =  wall_e_y(j,i) * wsvs(k) / km(k,j,i) 744 ! 745 ! Inconsistency removed: as the thermal stratification 746 ! is not taken into account for the evaluation of the 747 ! wall fluxes at vertical walls, the eddy viscosity km 748 ! must not be used for the evaluation of the velocity 749 ! gradients dudy and dwdy 750 ! Note: The validity of the new method has not yet 751 ! been shown, as so far no suitable data for a 752 ! validation has been available 753 km_neutral = kappa * ( usvs(k)**2 + & 754 wsvs(k)**2 )**0.25 * 0.5 * dy 755 dudy =  wall_e_y(j,i) * usvs(k) / km_neutral 756 dwdy =  wall_e_y(j,i) * wsvs(k) / km_neutral 687 757 ELSE 688 758 dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1)  & … … 693 763 694 764 IF ( wall_e_x(j,i) /= 0.0 ) THEN 695 dvdx =  wall_e_x(j,i) * vsus(k) / km(k,j,i) 696 dwdx =  wall_e_x(j,i) * wsus(k) / km(k,j,i) 765 ! 766 ! Inconsistency removed: as the thermal stratification 767 ! is not taken into account for the evaluation of the 768 ! wall fluxes at vertical walls, the eddy viscosity km 769 ! must not be used for the evaluation of the velocity 770 ! gradients dvdx and dwdx 771 ! Note: The validity of the new method has not yet 772 ! been shown, as so far no suitable data for a 773 ! validation has been available 774 km_neutral = kappa * ( vsus(k)**2 + & 775 wsus(k)**2 )**0.25 * 0.5 * dx 776 dvdx =  wall_e_x(j,i) * vsus(k) / km_neutral 777 dwdx =  wall_e_x(j,i) * wsus(k) / km_neutral 697 778 ELSE 698 779 dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1)  &
Note: See TracChangeset
for help on using the changeset viewer.