Ignore:
Timestamp:
Aug 18, 2011 4:10:16 PM (10 years ago)
Author:
suehring
Message:

Calculation of turbulent fluxes with WS-scheme only for the whole model domain, not for user-defined subregions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/flow_statistics.f90

    r710 r743  
    44! Current revisions:
    55! -----------------
    6 !
     6! Calculation of turbulent fluxes with WS-scheme only for the whole model
     7! domain, not for user-defined subregions.
    78!
    89! Former revisions:
     
    168169!--    Copy the turbulent quantities, evaluated in the advection routines to
    169170!--    the local array sums_l() for further computations
    170        IF ( ws_scheme_mom )  THEN
     171       IF ( ws_scheme_mom .AND. sr == 0 )  THEN
    171172
    172173!       
     
    174175!--       the corresponding fluxes has to satisfiy the same bc.
    175176          IF ( ocean )  THEN
    176              sums_us2_ws_l(nzt+1,sr) = sums_us2_ws_l(nzt,sr)
    177              sums_vs2_ws_l(nzt+1,sr) = sums_vs2_ws_l(nzt,sr)   
     177             sums_us2_ws_l(nzt+1) = sums_us2_ws_l(nzt)
     178             sums_vs2_ws_l(nzt+1) = sums_vs2_ws_l(nzt)   
    178179          ENDIF
    179180
     
    181182!         
    182183!--          Swap the turbulent quantities evaluated in advec_ws.
    183              sums_l(:,13,i) = sums_wsus_ws_l(:,sr)       ! w*u*
    184              sums_l(:,15,i) = sums_wsvs_ws_l(:,sr)       ! w*v*
    185              sums_l(:,30,i) = sums_us2_ws_l(:,sr)        ! u*2
    186              sums_l(:,31,i) = sums_vs2_ws_l(:,sr)        ! v*2
    187              sums_l(:,32,i) = sums_ws2_ws_l(:,sr)        ! w*2
     184             sums_l(:,13,i) = sums_wsus_ws_l(:)       ! w*u*
     185             sums_l(:,15,i) = sums_wsvs_ws_l(:)       ! w*v*
     186             sums_l(:,30,i) = sums_us2_ws_l(:)        ! u*2
     187             sums_l(:,31,i) = sums_vs2_ws_l(:)        ! v*2
     188             sums_l(:,32,i) = sums_ws2_ws_l(:)        ! w*2
    188189             sums_l(:,34,i) = sums_l(:,34,i) + 0.5 *                        &
    189                               ( sums_us2_ws_l(:,sr) + sums_vs2_ws_l(:,sr) + &
    190                                 sums_ws2_ws_l(:,sr) )    ! e*
     190                              ( sums_us2_ws_l(:) + sums_vs2_ws_l(:) +      &
     191                                sums_ws2_ws_l(:) )    ! e*
    191192             DO  k = nzb, nzt
    192193                sums_l(nzb+5,pr_palm,i) = sums_l(nzb+5,pr_palm,i) + 0.5 * (  &
    193                                                       sums_us2_ws_l(k,sr) +  &
    194                                                       sums_vs2_ws_l(k,sr) +  &
    195                                                       sums_ws2_ws_l(k,sr) )
     194                                                      sums_us2_ws_l(k) +     &
     195                                                      sums_vs2_ws_l(k) +     &
     196                                                      sums_ws2_ws_l(k) )
    196197             ENDDO
    197198          ENDDO
     
    199200       ENDIF
    200201
    201        IF ( ws_scheme_sca )  THEN
     202       IF ( ws_scheme_sca .AND. sr == 0 )  THEN
    202203
    203204          DO  i = 0, threads_per_task-1
    204              sums_l(:,17,i) = sums_wspts_ws_l(:,sr)      ! w*pt* from advec_s_ws
    205              IF ( ocean ) sums_l(:,66,i) = sums_wssas_ws_l(:,sr) ! w*sa*
     205             sums_l(:,17,i) = sums_wspts_ws_l(:)      ! w*pt* from advec_s_ws
     206             IF ( ocean ) sums_l(:,66,i) = sums_wssas_ws_l(:) ! w*sa*
    206207             IF ( humidity .OR. passive_scalar ) sums_l(:,49,i) =              &
    207                                                    sums_wsqs_ws_l(:,sr) !w*q*
     208                                                   sums_wsqs_ws_l(:) !w*q*
    208209          ENDDO
    209210
     
    483484!--    Computation of statistics when ws-scheme is not used. Else these
    484485!--    quantities are evaluated in the advection routines.
    485        IF ( .NOT. ws_scheme_mom )  THEN
     486       IF ( .NOT. ws_scheme_mom .OR. sr /= 0 )  THEN
    486487          !$OMP DO
    487488          DO  i = nxl, nxr
     
    692693!--             but so far there is no other suitable place to calculate)
    693694                IF ( ocean )  THEN
    694                    IF( .NOT. ws_scheme_sca )  THEN
     695                   IF( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
    695696                      pts = 0.5 * ( sa(k,j,i)   - hom(k,1,23,sr) + &
    696697                                 sa(k+1,j,i) - hom(k+1,1,23,sr) )
     
    726727!
    727728!--             Passive scalar flux
    728                 IF ( passive_scalar .AND. ( .NOT. ws_scheme_sca ))  THEN
     729                IF ( passive_scalar .AND. ( .NOT. ws_scheme_sca   &
     730                     .OR. sr /= 0 ) )  THEN
    729731                   pts = 0.5 * ( q(k,j,i)   - hom(k,1,41,sr) + &
    730732                                 q(k+1,j,i) - hom(k+1,1,41,sr) )
     
    746748!--    inside the WS advection routines are treated seperatly
    747749!--    Momentum fluxes first:
    748        IF ( .NOT. ws_scheme_mom )  THEN
     750       IF ( .NOT. ws_scheme_mom .OR. sr /= 0  )  THEN
    749751         !$OMP DO
    750752         DO  i = nxl, nxr
     
    770772
    771773       ENDIF
    772        IF ( .NOT. ws_scheme_sca )  THEN
     774       IF ( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
    773775         !$OMP DO
    774776         DO  i = nxl, nxr
Note: See TracChangeset for help on using the changeset viewer.