Changeset 1007 for palm/trunk/SOURCE/flow_statistics.f90
- Timestamp:
- Sep 19, 2012 2:30:36 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/flow_statistics.f90
r802 r1007 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Calculation of buoyancy flux for humidity in case of WS-scheme is now using 7 ! turbulent fluxes of WS-scheme 8 ! Bugfix: Calculation of subgridscale buoyancy flux for humidity and cloud 9 ! droplets at nzb and nzt added 6 10 ! 7 11 ! Former revisions: … … 151 155 'timestep' 152 156 CALL message( 'flow_statistics', 'PA0190', 1, 2, 0, 6, 0 ) 153 157 154 158 ENDIF 155 159 … … 176 180 IF ( ws_scheme_mom .AND. sr == 0 ) THEN 177 181 178 ! 182 ! 179 183 !-- According to the Neumann bc for the horizontal velocity components, 180 184 !-- the corresponding fluxes has to satisfiy the same bc. 181 185 IF ( ocean ) THEN 182 186 sums_us2_ws_l(nzt+1,:) = sums_us2_ws_l(nzt,:) 183 sums_vs2_ws_l(nzt+1,:) = sums_vs2_ws_l(nzt,:) 187 sums_vs2_ws_l(nzt+1,:) = sums_vs2_ws_l(nzt,:) 184 188 ENDIF 185 189 186 190 DO i = 0, threads_per_task-1 187 ! 191 ! 188 192 !-- Swap the turbulent quantities evaluated in advec_ws. 189 193 sums_l(:,13,i) = sums_wsus_ws_l(:,i) ! w*u* … … 453 457 ( q(k,j,i)-hom(k,1,41,sr) )**2 * rmask(j,i,sr) 454 458 ENDIF 455 459 456 460 ! 457 461 !-- Higher moments … … 578 582 * ( q(k+1,j,i) - q(k,j,i) ) & 579 583 * ddzu(k+1) * rmask(j,i,sr) 584 580 585 IF ( cloud_physics ) THEN 581 586 sums_l(k,51,tn) = sums_l(k,51,tn) & … … 618 623 sums_l(nzb,48,tn) = sums_l(nzb,48,tn) + & 619 624 qsws(j,i) * rmask(j,i,sr) ! w"q" (w"qv") 625 sums_l(nzb,45,tn) = sums_l(nzb,45,tn) + ( & 626 ( 1.0 + 0.61 * q(nzb,j,i) ) * & 627 shf(j,i) + 0.61 * pt(nzb,j,i) * & 628 qsws(j,i) ) 629 IF ( cloud_droplets ) THEN 630 sums_l(nzb,45,tn) = sums_l(nzb,45,tn) + ( & 631 ( 1.0 + 0.61 * q(nzb,j,i) - & 632 ql(nzb,j,i) ) * shf(j,i) + & 633 0.61 * pt(nzb,j,i) * qsws(j,i) ) 634 ENDIF 620 635 IF ( cloud_physics ) THEN 621 sums_l(nzb,45,tn) = sums_l(nzb,45,tn) + ( &622 ( 1.0 + 0.61 * q(nzb,j,i) ) * &623 shf(j,i) + 0.61 * pt(nzb,j,i) * &624 qsws(j,i) &625 )626 636 ! 627 637 !-- Formula does not work if ql(nzb) /= 0.0 … … 657 667 sums_l(nzt,48,tn) = sums_l(nzt,48,tn) + & 658 668 qswst(j,i) * rmask(j,i,sr) ! w"q" (w"qv") 669 sums_l(nzt,45,tn) = sums_l(nzt,45,tn) + ( & 670 ( 1.0 + 0.61 * q(nzt,j,i) ) * & 671 tswst(j,i) + 0.61 * pt(nzt,j,i) * & 672 qswst(j,i) ) 673 IF ( cloud_droplets ) THEN 674 sums_l(nzt,45,tn) = sums_l(nzt,45,tn) + ( & 675 ( 1.0 + 0.61 * q(nzt,j,i) - & 676 ql(nzt,j,i) ) * tswst(j,i) + & 677 0.61 * pt(nzt,j,i) * qswst(j,i) ) 678 ENDIF 659 679 IF ( cloud_physics ) THEN 660 sums_l(nzt,45,tn) = sums_l(nzt,45,tn) + ( &661 ( 1.0 + 0.61 * q(nzt,j,i) ) * &662 tswst(j,i) + 0.61 * pt(nzt,j,i) * &663 qsws(j,i) &664 )665 680 ! 666 681 !-- Formula does not work if ql(nzb) /= 0.0 … … 714 729 !-- content 715 730 IF ( humidity ) THEN 716 pts = 0.5 * ( vpt(k,j,i) - hom(k,1,44,sr) + & 717 vpt(k+1,j,i) - hom(k+1,1,44,sr) ) 718 sums_l(k,46,tn) = sums_l(k,46,tn) + pts * w(k,j,i) * & 719 rmask(j,i,sr) 720 721 IF ( cloud_physics .OR. cloud_droplets ) THEN 722 pts = 0.5 * & 723 ( ( q(k,j,i) - ql(k,j,i) ) - hom(k,1,42,sr) & 724 + ( q(k+1,j,i) - ql(k+1,j,i) ) - hom(k+1,1,42,sr) ) 725 sums_l(k,52,tn) = sums_l(k,52,tn) + pts * w(k,j,i) * & 731 IF ( cloud_physics .OR. cloud_droplets ) THEN 732 pts = 0.5 * ( vpt(k,j,i) - hom(k,1,44,sr) + & 733 vpt(k+1,j,i) - hom(k+1,1,44,sr) ) 734 sums_l(k,46,tn) = sums_l(k,46,tn) + pts * w(k,j,i) * & 726 735 rmask(j,i,sr) 727 736 sums_l(k,54,tn) = sums_l(k,54,tn) + ql(k,j,i) * & 728 737 rmask(j,i,sr) 729 ENDIF 730 ENDIF 731 738 ELSE 739 IF( .NOT. ws_scheme_sca .OR. sr /= 0 ) THEN 740 pts = 0.5 * ( vpt(k,j,i) - hom(k,1,44,sr) + & 741 vpt(k+1,j,i) - hom(k+1,1,44,sr) ) 742 sums_l(k,46,tn) = sums_l(k,46,tn) + pts * w(k,j,i) * & 743 rmask(j,i,sr) 744 ELSE IF ( ws_scheme_sca .AND. sr == 0 ) THEN 745 sums_l(k,46,tn) = ( 1.0 + 0.61 * hom(k,1,41,sr) ) * & 746 sums_l(k,17,tn) + & 747 0.61 * hom(k,1,4,sr) * sums_l(k,49,tn) 748 END IF 749 END IF 750 ENDIF 732 751 ! 733 752 !-- Passive scalar flux … … 762 781 vst = 0.5 * ( v(k,j,i) - hom(k,1,2,sr) + & 763 782 v(k+1,j,i) - hom(k+1,1,2,sr) ) 764 ! 783 ! 765 784 !-- Momentum flux w*u* 766 785 sums_l(k,13,tn) = sums_l(k,13,tn) + 0.5 * & … … 1002 1021 ENDDO 1003 1022 ENDIF 1023 1004 1024 ! 1005 1025 !-- Collect horizontal average in hom.
Note: See TracChangeset
for help on using the changeset viewer.