Changeset 888


Ignore:
Timestamp:
Apr 20, 2012 3:03:46 PM (13 years ago)
Author:
suehring
Message:

IBITS() calls with identical arguments are replaced by a temporary variable

File:
1 edited

Legend:

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

    r863 r888  
    44! Current revisions:
    55! ------------------
     6! Number of IBITS() calls with identical arguments is reduced.
    67!
    78! Former revisions:
     
    274275       IMPLICIT NONE
    275276
    276        INTEGER ::  i, i_omp, j, k, k_mm, k_pp, k_ppp,  tn
     277       INTEGER ::  i, ibit0, ibit1, ibit2, ibit3, ibit4, ibit5, ibit6,        &
     278                   ibit7, ibit8, i_omp, j, k, k_mm, k_pp, k_ppp,  tn
    277279       REAL    ::  diss_d, div, flux_d, u_comp, v_comp
    278280       REAL, DIMENSION(:,:,:), POINTER    :: sk
     
    293295          DO  k = nzb+1, nzb_max
    294296
     297             ibit5 = IBITS(wall_flags_0(k,j,i),5,1)
     298             ibit4 = IBITS(wall_flags_0(k,j,i),4,1)
     299             ibit3 = IBITS(wall_flags_0(k,j,i),3,1)
     300
    295301             v_comp                  = v(k,j,i) - v_gtrans
    296302             swap_flux_y_local(k,tn) = v_comp * (                             &
    297                          ( 37.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    298                       +     7.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    299                       +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1  &
    300                          ) *                                                  &
    301                                      ( sk(k,j,i)  + sk(k,j-1,i)     )         &
    302                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    303                       +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    304                          ) *                                                  &
    305                                      ( sk(k,j+1,i) + sk(k,j-2,i)    )         &
    306                   +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    307                          ) *                                                  &
    308                                      ( sk(k,j+2,i) + sk(k,j-3,i)    )         &
     303                                                  ( 37.0 * ibit5 * adv_sca_5  &
     304                                               +     7.0 * ibit4 * adv_sca_3  &
     305                                               +           ibit3 * adv_sca_1  &
     306                                                  ) *                         &
     307                                           ( sk(k,j,i)  + sk(k,j-1,i)     )   &
     308                                            -     (  8.0 * ibit5 * adv_sca_5  &
     309                                               +           ibit4 * adv_sca_3  &
     310                                                   ) *                        &
     311                                           ( sk(k,j+1,i) + sk(k,j-2,i)    )   &
     312                                           +      (        ibit5 * adv_sca_5  &
     313                                                  ) *                         &
     314                                           ( sk(k,j+2,i) + sk(k,j-3,i)    )   &
    309315                                                )
    310316
    311317             swap_diss_y_local(k,tn) = -ABS( v_comp ) * (                     &
    312                          ( 10.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    313                       +     3.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    314                       +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1  &
    315                          ) *                                                  &
    316                                      ( sk(k,j,i)   - sk(k,j-1,i)    )         &
    317                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    318                       +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    319                          ) *                                                  &
    320                                      ( sk(k,j+1,i) - sk(k,j-2,i)  )           &
    321                   +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    322                          ) *                                                  &
    323                                      ( sk(k,j+2,i) - sk(k,j-3,i) )            &
     318                                                  ( 10.0 * ibit5 * adv_sca_5  &
     319                                               +     3.0 * ibit4 * adv_sca_3  &
     320                                               +           ibit3 * adv_sca_1  &
     321                                                  ) *                         &
     322                                            ( sk(k,j,i)   - sk(k,j-1,i)    )  &
     323                                           -      (  5.0 * ibit5 * adv_sca_5  &
     324                                               +           ibit4 * adv_sca_3  &
     325                                            ) *                               &
     326                                            ( sk(k,j+1,i) - sk(k,j-2,i)  )    &
     327                                           +      (        ibit5 * adv_sca_5  &
     328                                                  ) *                         &
     329                                            ( sk(k,j+2,i) - sk(k,j-3,i) )     &
    324330                                                        )
    325331
     
    329335          DO  k = nzb_max+1, nzt
    330336
    331              v_comp               = v(k,j,i) - v_gtrans
     337             v_comp                  = v(k,j,i) - v_gtrans
    332338             swap_flux_y_local(k,tn) = v_comp * (                            &
    333339                                    37.0 * ( sk(k,j,i)   + sk(k,j-1,i) )     &
     
    350356          DO  k = nzb+1, nzb_max
    351357
    352              u_comp                 = u(k,j,i) - u_gtrans
     358             ibit2 = IBITS(wall_flags_0(k,j,i),2,1)
     359             ibit1 = IBITS(wall_flags_0(k,j,i),1,1)
     360             ibit0 = IBITS(wall_flags_0(k,j,i),0,1)
     361
     362             u_comp                     = u(k,j,i) - u_gtrans
    353363             swap_flux_x_local(k,j,tn) = u_comp * (                           &
    354                          ( 37.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    355                       +     7.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    356                       +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1  &
    357                          ) *                                                  &
    358                                      ( sk(k,j,i)   + sk(k,j,i-1)    )         &
    359                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    360                       +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    361                          ) *                                                  &
    362                                      ( sk(k,j,i+1) + sk(k,j,i-2)    )         &
    363                   +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    364                          ) *         ( sk(k,j,i+2) + sk(k,j,i-3)    )         &
     364                                                  ( 37.0 * ibit2 * adv_sca_5  &
     365                                               +     7.0 * ibit1 * adv_sca_3  &
     366                                               +           ibit0 * adv_sca_1  &
     367                                                  ) *                         &
     368                                            ( sk(k,j,i)   + sk(k,j,i-1)    )  &
     369                                           -      (  8.0 * ibit2 * adv_sca_5  &
     370                                               +           ibit1 * adv_sca_3  &
     371                                                  ) *                         &
     372                                            ( sk(k,j,i+1) + sk(k,j,i-2)    )  &
     373                                           +      (        ibit2 * adv_sca_5  &
     374                                                  ) *                         &
     375                                            ( sk(k,j,i+2) + sk(k,j,i-3)    )  &
    365376                                                  )
    366377
    367378              swap_diss_x_local(k,j,tn) = -ABS( u_comp ) * (                  &
    368                          ( 10.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    369                       +     3.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    370                       +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1  &
    371                          ) *                                                  &
    372                                      ( sk(k,j,i)   - sk(k,j,i-1)    )         &
    373                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    374                       +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    375                          ) *                                                  &
    376                                      ( sk(k,j,i+1) - sk(k,j,i-2)  )           &
    377                   +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    378                          ) *                                                  &
    379                                      ( sk(k,j,i+2) - sk(k,j,i-3) )            &
     379                                                  ( 10.0 * ibit2 * adv_sca_5  &
     380                                               +     3.0 * ibit1 * adv_sca_3  &
     381                                               +           ibit0 * adv_sca_1  &
     382                                                  ) *                         &
     383                                            ( sk(k,j,i)   - sk(k,j,i-1)    )  &
     384                                           -      (  5.0 * ibit2 * adv_sca_5  &
     385                                               +           ibit1 * adv_sca_3  &
     386                                                  ) *                         &
     387                                            ( sk(k,j,i+1) - sk(k,j,i-2)  )    &
     388                                           +      (        ibit2 * adv_sca_5  &
     389                                                  ) *                         &
     390                                            ( sk(k,j,i+2) - sk(k,j,i-3) )     &
    380391                                                           )
    381392
     
    412423!--       Note: It is faster to conduct all multiplications explicitly, e.g.
    413424!--       * adv_sca_5 ... than to determine a factor and multiplicate the
    414 !--       flux at the end. Indeed, per loop the first requires 6
    415 !--       multiplications more, but the the second requires 9 more internal
    416 !--       calls of IBITS().
     425!--       flux at the end.
     426
     427          ibit2 = IBITS(wall_flags_0(k,j,i),2,1)
     428          ibit1 = IBITS(wall_flags_0(k,j,i),1,1)
     429          ibit0 = IBITS(wall_flags_0(k,j,i),0,1)
     430
    417431          u_comp    = u(k,j,i+1) - u_gtrans
    418432          flux_r(k) = u_comp * (                                            &
    419                      ( 37.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    420                   +     7.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
    421                   +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1    &
     433                     ( 37.0 * ibit2 * adv_sca_5                             &
     434                  +     7.0 * ibit1 * adv_sca_3                             &
     435                  +           ibit0 * adv_sca_1                             &
    422436                     ) *                                                    &
    423437                             ( sk(k,j,i+1) + sk(k,j,i)   )                  &
    424               -      (  8.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    425                   +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
     438              -      (  8.0 * ibit2 * adv_sca_5                             &
     439                  +           ibit1 * adv_sca_3                             &
    426440                     ) *                                                    &
    427441                             ( sk(k,j,i+2) + sk(k,j,i-1) )                  &
    428               +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    429                      ) *     ( sk(k,j,i+3) + sk(k,j,i-2) )                  &
     442              +      (        ibit2 * adv_sca_5                             &
     443                     ) *                                                    &
     444                             ( sk(k,j,i+3) + sk(k,j,i-2) )                  &
    430445                               )
    431446
    432447          diss_r(k) = -ABS( u_comp ) * (                                    &
    433                      ( 10.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    434                   +     3.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
    435                   +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1    &
     448                     ( 10.0 * ibit2 * adv_sca_5                             &
     449                  +     3.0 * ibit1 * adv_sca_3                             &
     450                  +           ibit0 * adv_sca_1                             &
    436451                     ) *                                                    &
    437452                             ( sk(k,j,i+1) - sk(k,j,i)  )                   &
    438               -      (  5.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    439                   +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
     453              -      (  5.0 * ibit2 * adv_sca_5                             &
     454                  +           ibit1 * adv_sca_3                             &
    440455                     ) *                                                    &
    441456                             ( sk(k,j,i+2) - sk(k,j,i-1) )                  &
    442               +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
     457              +      (        ibit2 * adv_sca_5                             &
    443458                     ) *                                                    &
    444459                             ( sk(k,j,i+3) - sk(k,j,i-2) )                  &
    445460                                       )
    446461
     462          ibit5 = IBITS(wall_flags_0(k,j,i),5,1)
     463          ibit4 = IBITS(wall_flags_0(k,j,i),4,1)
     464          ibit3 = IBITS(wall_flags_0(k,j,i),3,1)
     465
    447466          v_comp    = v(k,j+1,i) - v_gtrans
    448467          flux_n(k) = v_comp * (                                            &
    449                      ( 37.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    450                   +     7.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
    451                   +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1    &
     468                     ( 37.0 * ibit5 * adv_sca_5                             &
     469                  +     7.0 * ibit4 * adv_sca_3                             &
     470                  +           ibit3 * adv_sca_1                             &
    452471                     ) *                                                    &
    453472                             ( sk(k,j+1,i) + sk(k,j,i)   )                  &
    454               -      (  8.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    455                   +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
     473              -      (  8.0 * ibit5 * adv_sca_5                             &
     474                  +           ibit4 * adv_sca_3                             &
    456475                     ) *                                                    &
    457476                             ( sk(k,j+2,i) + sk(k,j-1,i) )                  &
    458               +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
     477              +      (        ibit5 * adv_sca_5                             &
    459478                     ) *                                                    &
    460479                             ( sk(k,j+3,i) + sk(k,j-2,i) )                  &
     
    462481
    463482          diss_n(k) = -ABS( v_comp ) * (                                    &
    464                      ( 10.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    465                   +     3.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
    466                   +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1    &
     483                     ( 10.0 * ibit5 * adv_sca_5                             &
     484                  +     3.0 * ibit4 * adv_sca_3                             &
     485                  +           ibit3 * adv_sca_1                             &
    467486                     ) *                                                    &
    468487                             ( sk(k,j+1,i) - sk(k,j,i)    )                 &
    469               -      (  5.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    470                   +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
     488              -      (  5.0 * ibit5 * adv_sca_5                             &
     489                  +           ibit4 * adv_sca_3                             &
    471490                     ) *                                                    &
    472491                             ( sk(k,j+2,i) - sk(k,j-1,i)  )                 &
    473               +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
     492              +      (        ibit5 * adv_sca_5                             &
    474493                     ) *                                                    &
    475494                             ( sk(k,j+3,i) - sk(k,j-2,i) )                  &
     
    478497!--       k index has to be modified near bottom and top, else array
    479498!--       subscripts will be exceeded.
    480           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),8,1)
    481           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),6,1)  )
    482           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),8,1)
     499          ibit8 = IBITS(wall_flags_0(k,j,i),8,1)
     500          ibit7 = IBITS(wall_flags_0(k,j,i),7,1)
     501          ibit6 = IBITS(wall_flags_0(k,j,i),6,1)
     502
     503          k_ppp = k + 3 * ibit8
     504          k_pp  = k + 2 * ( 1 - ibit6  )
     505          k_mm  = k - 2 * ibit8
    483506
    484507
    485508          flux_t(k) = w(k,j,i) * (                                          &
    486                      ( 37.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    487                   +     7.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    488                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
     509                     ( 37.0 * ibit8 * adv_sca_5                             &
     510                  +     7.0 * ibit7 * adv_sca_3                             &
     511                  +           ibit6 * adv_sca_1                             &
    489512                     ) *                                                    &
    490513                             ( sk(k+1,j,i)  + sk(k,j,i)   )                 &
    491               -      (  8.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    492                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
     514              -      (  8.0 * ibit8 * adv_sca_5                             &
     515                  +           ibit7 * adv_sca_3                             &
    493516                     ) *                                                    &
    494517                             ( sk(k_pp,j,i) + sk(k-1,j,i) )                 &
    495               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
     518              +      (        ibit8 * adv_sca_5                             &
    496519                     ) *     ( sk(k_ppp,j,i)+ sk(k_mm,j,i) )                &
    497520                                 )
    498521
    499522          diss_t(k) = -ABS( w(k,j,i) ) * (                                  &
    500                      ( 10.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    501                   +     3.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    502                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
     523                     ( 10.0 * ibit8 * adv_sca_5                             &
     524                  +     3.0 * ibit7 * adv_sca_3                             &
     525                  +           ibit6 * adv_sca_1                             &
    503526                     ) *                                                    &
    504527                             ( sk(k+1,j,i)   - sk(k,j,i)    )               &
    505               -      (  5.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    506                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
     528              -      (  5.0 * ibit8 * adv_sca_5                             &
     529                  +           ibit7 * adv_sca_3                             &
    507530                     ) *                                                    &
    508531                             ( sk(k_pp,j,i)  - sk(k-1,j,i)  )               &
    509               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
     532              +      (        ibit8 * adv_sca_5                             &
    510533                     ) *                                                    &
    511534                             ( sk(k_ppp,j,i) - sk(k_mm,j,i) )               &
     
    564587!--       k index has to be modified near bottom and top, else array
    565588!--       subscripts will be exceeded.
    566           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),8,1)
    567           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),6,1)  )
    568           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),8,1)
     589          ibit8 = IBITS(wall_flags_0(k,j,i),8,1)
     590          ibit7 = IBITS(wall_flags_0(k,j,i),7,1)
     591          ibit6 = IBITS(wall_flags_0(k,j,i),6,1)
     592
     593          k_ppp = k + 3 * ibit8
     594          k_pp  = k + 2 * ( 1 - ibit6  )
     595          k_mm  = k - 2 * ibit8
     596
    569597
    570598          flux_t(k) = w(k,j,i) * (                                          &
    571                      ( 37.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    572                   +     7.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    573                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
     599                     ( 37.0 * ibit8 * adv_sca_5                             &
     600                  +     7.0 * ibit7 * adv_sca_3                             &
     601                  +           ibit6 * adv_sca_1                             &
    574602                     ) *                                                    &
    575603                             ( sk(k+1,j,i)  + sk(k,j,i)   )                 &
    576               -      (  8.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    577                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
     604              -      (  8.0 * ibit8 * adv_sca_5                             &
     605                  +           ibit7 * adv_sca_3                             &
    578606                     ) *                                                    &
    579607                             ( sk(k_pp,j,i) + sk(k-1,j,i) )                 &
    580               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
     608              +      (        ibit8 * adv_sca_5                             &
    581609                     ) *     ( sk(k_ppp,j,i)+ sk(k_mm,j,i) )                &
    582610                                 )
    583611
    584612          diss_t(k) = -ABS( w(k,j,i) ) * (                                  &
    585                      ( 10.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    586                   +     3.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    587                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
     613                     ( 10.0 * ibit8 * adv_sca_5                             &
     614                  +     3.0 * ibit7 * adv_sca_3                             &
     615                  +           ibit6 * adv_sca_1                             &
    588616                     ) *                                                    &
    589617                             ( sk(k+1,j,i)   - sk(k,j,i)    )               &
    590               -      (  5.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    591                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
     618              -      (  5.0 * ibit8 * adv_sca_5                             &
     619                  +           ibit7 * adv_sca_3                             &
    592620                     ) *                                                    &
    593621                             ( sk(k_pp,j,i)  - sk(k-1,j,i)  )               &
    594               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
     622              +      (        ibit8 * adv_sca_5                             &
    595623                     ) *                                                    &
    596624                             ( sk(k_ppp,j,i) - sk(k_mm,j,i) )               &
     
    671699       IMPLICIT NONE
    672700
    673        INTEGER ::  i, i_omp, j, k, k_mm, k_pp, k_ppp, tn
     701       INTEGER ::  i, ibit9, ibit10, ibit11, ibit12, ibit13, ibit14, ibit15,  &
     702                   ibit16, ibit17, i_omp, j, k, k_mm, k_pp, k_ppp, tn
    674703       REAL    ::  diss_d, div, flux_d, gu, gv, u_comp_l, v_comp, w_comp
    675704       REAL, DIMENSION(nzb:nzt+1) :: diss_n, diss_r, diss_t, flux_n, flux_r,  &
     
    684713          DO  k = nzb+1, nzb_max
    685714
     715             ibit14 = IBITS(wall_flags_0(k,j,i),14,1)
     716             ibit13 = IBITS(wall_flags_0(k,j,i),13,1)
     717             ibit12 = IBITS(wall_flags_0(k,j,i),12,1)
     718
    686719             v_comp      = v(k,j,i) + v(k,j,i-1) - gv
    687720             flux_s_u(k,tn) = v_comp * (                                      &
    688                          ( 37.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    689                       +     7.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    690                       +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1 &
    691                          ) *                                                  &
     721                            ( 37.0 * ibit14 * adv_mom_5                      &
     722                         +     7.0 * ibit13 * adv_mom_3                      &
     723                         +           ibit12 * adv_mom_1                      &
     724                            ) *                                               &
    692725                                     ( u(k,j,i)   + u(k,j-1,i) )              &
    693                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    694                       +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    695                          ) *                                                  &
     726                     -      (  8.0 * ibit14 * adv_mom_5                      &
     727                         +           ibit13 * adv_mom_3                      &
     728                            ) *                                               &
    696729                                     ( u(k,j+1,i) + u(k,j-2,i) )              &
    697                   +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    698                          ) *                                                  &
     730                     +      (        ibit14 * adv_mom_5                      &
     731                            ) *                                               &
    699732                                     ( u(k,j+2,i) + u(k,j-3,i) )              &
    700733                                       )
    701734
    702735             diss_s_u(k,tn) = - ABS ( v_comp ) * (                            &
    703                          ( 10.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    704                       +     3.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    705                       +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1 &
    706                          ) *                                                  &
     736                            ( 10.0 * ibit14 * adv_mom_5                      &
     737                         +     3.0 * ibit13 * adv_mom_3                      &
     738                         +           ibit12 * adv_mom_1                      &
     739                            ) *                                               &
    707740                                     ( u(k,j,i)   - u(k,j-1,i) )              &
    708                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    709                       +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    710                          ) *                                                  &
     741                     -      (  5.0 * ibit14 * adv_mom_5                      &
     742                         +           ibit13 * adv_mom_3                      &
     743                            ) *                                               &
    711744                                     ( u(k,j+1,i) - u(k,j-2,i) )              &
    712                   +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    713                          ) *                                                  &
     745                     +      (        ibit14 * adv_mom_5                      &
     746                            ) *                                               &
    714747                                     ( u(k,j+2,i) - u(k,j-3,i) )              &
    715748                                                 )
     
    738771          DO  k = nzb+1, nzb_max
    739772
     773             ibit11 = IBITS(wall_flags_0(k,j,i),11,1)
     774             ibit10 = IBITS(wall_flags_0(k,j,i),10,1)
     775             ibit9  = IBITS(wall_flags_0(k,j,i),9,1)
     776
    740777             u_comp_l         = u(k,j,i) + u(k,j,i-1) - gu
    741778             flux_l_u(k,j,tn) = u_comp_l * (                                   &
    742                           ( 37.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    743                        +     7.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    744                        +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1 &
    745                           ) *                                                  &
     779                              ( 37.0 * ibit11 * adv_mom_5                      &
     780                           +     7.0 * ibit10 * adv_mom_3                      &
     781                           +           ibit9  * adv_mom_1                      &
     782                              ) *                                              &
    746783                                     ( u(k,j,i)   + u(k,j,i-1) )               &
    747                    -      (  8.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    748                        +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    749                           ) *                                                  &
     784                       -      (  8.0 * ibit11 * adv_mom_5                      &
     785                           +           ibit10 * adv_mom_3                      &
     786                              ) *                                              &
    750787                                     ( u(k,j,i+1) + u(k,j,i-2) )               &
    751                    +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    752                           ) *                                                  &
     788                       +      (        ibit11 * adv_mom_5                      &
     789                              ) *                                              &
    753790                                     ( u(k,j,i+2) + u(k,j,i-3) )               &
    754791                                           )
    755792
    756793              diss_l_u(k,j,tn) = - ABS( u_comp_l ) * (                         &
    757                           ( 10.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    758                        +     3.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    759                        +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1 &
    760                           ) *                                                  &
     794                              ( 10.0 * ibit11 * adv_mom_5                      &
     795                           +     3.0 * ibit10 * adv_mom_3                      &
     796                           +           ibit9  * adv_mom_1                      &
     797                              ) *                                              &
    761798                                     ( u(k,j,i)   - u(k,j,i-1) )               &
    762                    -      (  5.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    763                        +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    764                           ) *                                                  &
     799                       -      (  5.0 * ibit11 * adv_mom_5                      &
     800                           +           ibit10 * adv_mom_3                      &
     801                              ) *                                              &
    765802                                     ( u(k,j,i+1) - u(k,j,i-2) )               &
    766                    +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    767                           ) *                                                  &
     803                       +      (        ibit11 * adv_mom_5                      &
     804                              ) *                                              &
    768805                                     ( u(k,j,i+2) - u(k,j,i-3) )               &
    769806                                                     )
     
    796833       DO  k = nzb+1, nzb_max
    797834
     835          ibit11 = IBITS(wall_flags_0(k,j,i),11,1)
     836          ibit10 = IBITS(wall_flags_0(k,j,i),10,1)
     837          ibit9  = IBITS(wall_flags_0(k,j,i),9,1)
     838
    798839          u_comp(k) = u(k,j,i+1) + u(k,j,i)
    799840          flux_r(k) = ( u_comp(k) - gu ) * (                                 &
    800                      ( 37.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    801                   +     7.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
    802                   +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1    &
     841                     ( 37.0 * ibit11 * adv_mom_5                             &
     842                  +     7.0 * ibit10 * adv_mom_3                             &
     843                  +           ibit9  * adv_mom_1                             &
    803844                     ) *                                                     &
    804845                                 ( u(k,j,i+1) + u(k,j,i)   )                 &
    805               -      (  8.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    806                   +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
     846              -      (  8.0 * ibit11 * adv_mom_5                             &
     847                  +           ibit10 * adv_mom_3                             &
    807848                     ) *                                                     &
    808849                                 ( u(k,j,i+2) + u(k,j,i-1) )                 &
    809               +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
     850              +      (        ibit11 * adv_mom_5                             &
    810851                     ) *                                                     &
    811852                                 ( u(k,j,i+3) + u(k,j,i-2) )                 &
     
    813854
    814855          diss_r(k) = - ABS( u_comp(k) - gu ) * (                            &
    815                      ( 10.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    816                   +     3.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
    817                   +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1    &
     856                     ( 10.0 * ibit11 * adv_mom_5                             &
     857                  +     3.0 * ibit10 * adv_mom_3                             &
     858                  +           ibit9  * adv_mom_1                             &
    818859                     ) *                                                     &
    819860                                 ( u(k,j,i+1) - u(k,j,i)  )                  &
    820               -      (  5.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    821                   +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
     861              -      (  5.0 * ibit11 * adv_mom_5                             &
     862                  +           ibit10 * adv_mom_3                             &
    822863                     ) *                                                     &
    823864                                 ( u(k,j,i+2) - u(k,j,i-1) )                 &
    824               +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
     865              +      (        ibit11 * adv_mom_5                             &
    825866                     ) *                                                     &
    826867                                 ( u(k,j,i+3) - u(k,j,i-2) )                 &
    827868                                                )
    828869
     870          ibit14 = IBITS(wall_flags_0(k,j,i),14,1)
     871          ibit13 = IBITS(wall_flags_0(k,j,i),13,1)
     872          ibit12 = IBITS(wall_flags_0(k,j,i),12,1)
     873
    829874          v_comp    = v(k,j+1,i) + v(k,j+1,i-1) - gv
    830875          flux_n(k) = v_comp * (                                             &
    831                      ( 37.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    832                   +     7.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
    833                   +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1    &
     876                     ( 37.0 * ibit14 * adv_mom_5                             &
     877                  +     7.0 * ibit13 * adv_mom_3                             &
     878                  +           ibit12 * adv_mom_1                             &
    834879                     ) *                                                     &
    835880                                 ( u(k,j+1,i) + u(k,j,i)   )                 &
    836               -      (  8.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    837                   +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
     881              -      (  8.0 * ibit14 * adv_mom_5                             &
     882                  +           ibit13 * adv_mom_3                             &
    838883                     ) *                                                     &
    839884                                 ( u(k,j+2,i) + u(k,j-1,i) )                 &
    840               +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
     885              +      (        ibit14 * adv_mom_5                             &
    841886                     ) *                                                     &
    842887                                 ( u(k,j+3,i) + u(k,j-2,i) )                 &
    843                                            )
     888                               )
    844889
    845890          diss_n(k) = - ABS ( v_comp ) * (                                   &
    846                      ( 10.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    847                   +     3.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
    848                   +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1    &
     891                     ( 10.0 * ibit14 * adv_mom_5                             &
     892                  +     3.0 * ibit13 * adv_mom_3                             &
     893                  +           ibit12 * adv_mom_1                             &
    849894                     ) *                                                     &
    850895                                 ( u(k,j+1,i) - u(k,j,i)  )                  &
    851               -      (  5.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    852                   +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
     896              -      (  5.0 * ibit14 * adv_mom_5                             &
     897                  +           ibit13 * adv_mom_3                             &
    853898                     ) *                                                     &
    854899                                 ( u(k,j+2,i) - u(k,j-1,i) )                 &
    855               +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
     900              +      (        ibit14 * adv_mom_5                             &
    856901                     ) *                                                     &
    857902                                 ( u(k,j+3,i) - u(k,j-2,i) )                 &
    858                                                 )
     903                                         )
    859904!
    860905!--       k index has to be modified near bottom and top, else array
    861906!--       subscripts will be exceeded.
    862           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),17,1)
    863           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),15,1)  )
    864           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),17,1)
     907          ibit17 = IBITS(wall_flags_0(k,j,i),17,1)
     908          ibit16 = IBITS(wall_flags_0(k,j,i),16,1)
     909          ibit15 = IBITS(wall_flags_0(k,j,i),15,1)
     910
     911          k_ppp = k + 3 * ibit17
     912          k_pp  = k + 2 * ( 1 - ibit15 )
     913          k_mm  = k - 2 * ibit17
    865914
    866915          w_comp    = w(k,j,i) + w(k,j,i-1)
    867916          flux_t(k) = w_comp  * (                                            &
    868                      ( 37.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    869                   +     7.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    870                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
     917                     ( 37.0 * ibit17 * adv_mom_5                             &
     918                  +     7.0 * ibit16 * adv_mom_3                             &
     919                  +           ibit15 * adv_mom_1                             &
    871920                     ) *                                                     &
    872921                             ( u(k+1,j,i)  + u(k,j,i)     )                  &
    873               -      (  8.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    874                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
     922              -      (  8.0 * ibit17 * adv_mom_5                             &
     923                  +           ibit16 * adv_mom_3                             &
    875924                     ) *                                                     &
    876925                             ( u(k_pp,j,i) + u(k-1,j,i)   )                  &
    877               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
     926              +      (        ibit17 * adv_mom_5                             &
    878927                     ) *                                                     &
    879928                             ( u(k_ppp,j,i) + u(k_mm,j,i) )                  &
     
    881930
    882931          diss_t(k) = - ABS( w_comp ) * (                                    &
    883                      ( 10.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    884                   +     3.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    885                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
     932                     ( 10.0 * ibit17 * adv_mom_5                             &
     933                  +     3.0 * ibit16 * adv_mom_3                             &
     934                  +           ibit15 * adv_mom_1                             &
    886935                     ) *                                                     &
    887936                             ( u(k+1,j,i)   - u(k,j,i)    )                  &
    888               -      (  5.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    889                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
     937              -      (  5.0 * ibit17 * adv_mom_5                             &
     938                  +           ibit16 * adv_mom_3                             &
    890939                     ) *                                                     &
    891940                             ( u(k_pp,j,i)  - u(k-1,j,i)  )                  &
    892               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
     941              +      (        ibit17 * adv_mom_5                             &
    893942                     ) *                                                     &
    894943                             ( u(k_ppp,j,i) - u(k_mm,j,i) )                  &
     
    9601009!--       k index has to be modified near bottom and top, else array
    9611010!--       subscripts will be exceeded.
    962           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),17,1)
    963           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),15,1)  )
    964           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),17,1)
     1011          ibit17 = IBITS(wall_flags_0(k,j,i),17,1)
     1012          ibit16 = IBITS(wall_flags_0(k,j,i),16,1)
     1013          ibit15 = IBITS(wall_flags_0(k,j,i),15,1)
     1014
     1015          k_ppp = k + 3 * ibit17
     1016          k_pp  = k + 2 * ( 1 - ibit15 )
     1017          k_mm  = k - 2 * ibit17
    9651018
    9661019          w_comp    = w(k,j,i) + w(k,j,i-1)
    9671020          flux_t(k) = w_comp  * (                                            &
    968                      ( 37.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    969                   +     7.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    970                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
     1021                     ( 37.0 * ibit17 * adv_mom_5                             &
     1022                  +     7.0 * ibit16 * adv_mom_3                             &
     1023                  +           ibit15 * adv_mom_1                             &
    9711024                     ) *                                                     &
    9721025                             ( u(k+1,j,i)  + u(k,j,i)     )                  &
    973               -      (  8.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    974                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
     1026              -      (  8.0 * ibit17 * adv_mom_5                             &
     1027                  +           ibit16 * adv_mom_3                             &
    9751028                     ) *                                                     &
    9761029                             ( u(k_pp,j,i) + u(k-1,j,i)   )                  &
    977               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
     1030              +      (        ibit17 * adv_mom_5                             &
    9781031                     ) *                                                     &
    9791032                             ( u(k_ppp,j,i) + u(k_mm,j,i) )                  &
     
    9811034
    9821035          diss_t(k) = - ABS( w_comp ) * (                                    &
    983                      ( 10.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    984                   +     3.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    985                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
     1036                     ( 10.0 * ibit17 * adv_mom_5                             &
     1037                  +     3.0 * ibit16 * adv_mom_3                             &
     1038                  +           ibit15 * adv_mom_1                             &
    9861039                     ) *                                                     &
    9871040                             ( u(k+1,j,i)   - u(k,j,i)    )                  &
    988               -      (  5.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    989                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
     1041              -      (  5.0 * ibit17 * adv_mom_5                             &
     1042                  +           ibit16 * adv_mom_3                             &
    9901043                     ) *                                                     &
    9911044                             ( u(k_pp,j,i)  - u(k-1,j,i)  )                  &
    992               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
     1045              +      (        ibit17 * adv_mom_5                             &
    9931046                     ) *                                                     &
    9941047                             ( u(k_ppp,j,i) - u(k_mm,j,i) )                  &
     
    10581111       IMPLICIT NONE
    10591112
    1060        INTEGER  ::  i, i_omp, j, k, k_mm, k_pp, k_ppp, tn
     1113       INTEGER  ::  i, ibit18, ibit19, ibit20, ibit21, ibit22, ibit23, ibit24, &
     1114                    ibit25, ibit26, i_omp, j, k, k_mm, k_pp, k_ppp, tn
    10611115       REAL     ::  diss_d, div, flux_d, gu, gv, u_comp, v_comp_l, w_comp
    10621116       REAL, DIMENSION(nzb:nzt+1)  :: diss_n, diss_r, diss_t, flux_n, flux_r,  &
     
    10721126          DO  k = nzb+1, nzb_max
    10731127
     1128             ibit20 = IBITS(wall_flags_0(k,j,i),20,1)
     1129             ibit19 = IBITS(wall_flags_0(k,j,i),19,1)
     1130             ibit18 = IBITS(wall_flags_0(k,j,i),18,1)
     1131
    10741132             u_comp           = u(k,j-1,i) + u(k,j,i) - gu
    10751133             flux_l_v(k,j,tn) = u_comp * (                                     &
    1076                           ( 37.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    1077                        +     7.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    1078                        +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1 &
    1079                           ) *                                                  &
     1134                              ( 37.0 * ibit20 * adv_mom_5                      &
     1135                           +     7.0 * ibit19 * adv_mom_3                      &
     1136                           +           ibit18 * adv_mom_1                      &
     1137                              ) *                                              &
    10801138                                     ( v(k,j,i)   + v(k,j,i-1) )               &
    1081                    -      (  8.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    1082                        +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    1083                           ) *                                                  &
     1139                       -      (  8.0 * ibit20 * adv_mom_5                      &
     1140                           +           ibit19 * adv_mom_3                      &
     1141                              ) *                                              &
    10841142                                     ( v(k,j,i+1) + v(k,j,i-2) )               &
    1085                    +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    1086                           ) *                                                  &
     1143                       +      (        ibit20 * adv_mom_5                      &
     1144                              ) *                                              &
    10871145                                     ( v(k,j,i+2) + v(k,j,i-3) )               &
    10881146                                         )
    10891147
    10901148              diss_l_v(k,j,tn) = - ABS( u_comp ) * (                           &
    1091                           ( 10.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    1092                        +     3.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    1093                        +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1 &
    1094                           ) *                                                  &
     1149                              ( 10.0 * ibit20 * adv_mom_5                      &
     1150                           +     3.0 * ibit19 * adv_mom_3                      &
     1151                           +           ibit18 * adv_mom_1                      &
     1152                              ) *                                              &
    10951153                                     ( v(k,j,i)   - v(k,j,i-1) )               &
    1096                    -      (  5.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    1097                        +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    1098                           ) *                                                  &
     1154                       -      (  5.0 * ibit20 * adv_mom_5                      &
     1155                           +           ibit19 * adv_mom_3                      &
     1156                              ) *                                              &
    10991157                                     ( v(k,j,i+1) - v(k,j,i-2) )               &
    1100                    +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    1101                           ) *                                                  &
     1158                       +      (        ibit20 * adv_mom_5                      &
     1159                              ) *                                              &
    11021160                                     ( v(k,j,i+2) - v(k,j,i-3) )               &
    11031161                                                   )
     
    11261184          DO  k = nzb+1, nzb_max
    11271185
     1186             ibit23 = IBITS(wall_flags_0(k,j,i),23,1)
     1187             ibit22 = IBITS(wall_flags_0(k,j,i),22,1)
     1188             ibit21 = IBITS(wall_flags_0(k,j,i),21,1)
     1189
    11281190             v_comp_l       = v(k,j,i) + v(k,j-1,i) - gv
    11291191             flux_s_v(k,tn) = v_comp_l * (                                    &
    1130                          ( 37.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    1131                       +     7.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    1132                       +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1 &
    1133                          ) *                                                  &
     1192                            ( 37.0 * ibit23 * adv_mom_5                      &
     1193                         +     7.0 * ibit22 * adv_mom_3                      &
     1194                         +           ibit21 * adv_mom_1                      &
     1195                            ) *                                               &
    11341196                                     ( v(k,j,i)   + v(k,j-1,i) )              &
    1135                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    1136                       +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    1137                          ) *                                                  &
     1197                     -      (  8.0 * ibit23 * adv_mom_5                      &
     1198                         +           ibit22 * adv_mom_3                      &
     1199                            ) *                                               &
    11381200                                     ( v(k,j+1,i) + v(k,j-2,i) )              &
    1139                   +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    1140                          ) *                                                  &
     1201                     +      (        ibit23 * adv_mom_5                      &
     1202                            ) *                                               &
    11411203                                     ( v(k,j+2,i) + v(k,j-3,i) )              &
    11421204                                         )
    11431205
    11441206             diss_s_v(k,tn) = - ABS( v_comp_l ) * (                           &
    1145                          ( 10.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    1146                       +     3.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    1147                       +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1 &
    1148                          ) *                                                  &
     1207                            ( 10.0 * ibit23 * adv_mom_5                      &
     1208                         +     3.0 * ibit22 * adv_mom_3                      &
     1209                         +           ibit21 * adv_mom_1                      &
     1210                            ) *                                               &
    11491211                                     ( v(k,j,i)   - v(k,j-1,i) )              &
    1150                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    1151                       +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    1152                          ) *                                                  &
     1212                     -      (  5.0 * ibit23 * adv_mom_5                      &
     1213                         +           ibit22 * adv_mom_3                      &
     1214                            ) *                                               &
    11531215                                     ( v(k,j+1,i) - v(k,j-2,i) )              &
    1154                   +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    1155                          ) *                                                  &
     1216                     +      (        ibit23 * adv_mom_5                      &
     1217                            ) *                                               &
    11561218                                     ( v(k,j+2,i) - v(k,j-3,i) )              &
    11571219                                                 )
     
    11841246       DO  k = nzb+1, nzb_max
    11851247
     1248          ibit20 = IBITS(wall_flags_0(k,j,i),20,1)
     1249          ibit19 = IBITS(wall_flags_0(k,j,i),19,1)
     1250          ibit18 = IBITS(wall_flags_0(k,j,i),18,1)
     1251 
    11861252          u_comp    = u(k,j-1,i+1) + u(k,j,i+1) - gu
    11871253          flux_r(k) = u_comp * (                                             &
    1188                      ( 37.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    1189                   +     7.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
    1190                   +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1    &
     1254                     ( 37.0 * ibit20 * adv_mom_5                             &
     1255                  +     7.0 * ibit19 * adv_mom_3                             &
     1256                  +           ibit18 * adv_mom_1                             &
    11911257                     ) *                                                     &
    11921258                                 ( v(k,j,i+1) + v(k,j,i)   )                 &
    1193               -      (  8.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    1194                   +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
     1259              -      (  8.0 * ibit20 * adv_mom_5                             &
     1260                  +           ibit19 * adv_mom_3                             &
    11951261                     ) *                                                     &
    11961262                                 ( v(k,j,i+2) + v(k,j,i-1) )                 &
    1197               +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
     1263              +      (        ibit20 * adv_mom_5                             &
    11981264                     ) *                                                     &
    11991265                                 ( v(k,j,i+3) + v(k,j,i-2) )                 &
     
    12011267
    12021268          diss_r(k) = - ABS( u_comp ) * (                                    &
    1203                      ( 10.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    1204                   +     3.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
    1205                   +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1    &
     1269                     ( 10.0 * ibit20 * adv_mom_5                             &
     1270                  +     3.0 * ibit19 * adv_mom_3                             &
     1271                  +           ibit18 * adv_mom_1                             &
    12061272                     ) *                                                     &
    12071273                                 ( v(k,j,i+1) - v(k,j,i)  )                  &
    1208               -      (  5.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    1209                   +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
     1274              -      (  5.0 * ibit20 * adv_mom_5                             &
     1275                  +           ibit19 * adv_mom_3                             &
    12101276                     ) *                                                     &
    12111277                                 ( v(k,j,i+2) - v(k,j,i-1) )                 &
    1212               +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
     1278              +      (        ibit20 * adv_mom_5                             &
    12131279                     ) *                                                     &
    12141280                                 ( v(k,j,i+3) - v(k,j,i-2) )                 &
    12151281                                        )
    12161282
     1283          ibit23 = IBITS(wall_flags_0(k,j,i),23,1)
     1284          ibit22 = IBITS(wall_flags_0(k,j,i),22,1)
     1285          ibit21 = IBITS(wall_flags_0(k,j,i),21,1)
     1286
     1287
    12171288          v_comp(k) = v(k,j+1,i) + v(k,j,i)
    12181289          flux_n(k) = ( v_comp(k) - gv ) * (                                 &
    1219                      ( 37.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    1220                   +     7.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
    1221                   +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1    &
     1290                     ( 37.0 * ibit23 * adv_mom_5                             &
     1291                  +     7.0 * ibit22 * adv_mom_3                             &
     1292                  +           ibit21 * adv_mom_1                             &
    12221293                     ) *                                                     &
    12231294                                 ( v(k,j+1,i) + v(k,j,i)   )                 &
    1224               -      (  8.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    1225                   +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
     1295              -      (  8.0 * ibit23 * adv_mom_5                             &
     1296                  +           ibit22 * adv_mom_3                             &
    12261297                     ) *                                                     &
    12271298                                 ( v(k,j+2,i) + v(k,j-1,i) )                 &
    1228               +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
     1299              +      (        ibit23 * adv_mom_5                             &
    12291300                     ) *                                                     &
    12301301                                 ( v(k,j+3,i) + v(k,j-2,i) )                 &
     
    12321303
    12331304          diss_n(k) = - ABS( v_comp(k) - gv ) * (                            &
    1234                      ( 10.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    1235                   +     3.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
    1236                   +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1    &
     1305                     ( 10.0 * ibit23 * adv_mom_5                             &
     1306                  +     3.0 * ibit22 * adv_mom_3                             &
     1307                  +           ibit21 * adv_mom_1                             &
    12371308                     ) *                                                     &
    12381309                                 ( v(k,j+1,i) - v(k,j,i)  )                  &
    1239               -      (  5.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    1240                   +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
     1310              -      (  5.0 * ibit23 * adv_mom_5                             &
     1311                  +           ibit22 * adv_mom_3                             &
    12411312                     ) *                                                     &
    12421313                                 ( v(k,j+2,i) - v(k,j-1,i) )                 &
    1243               +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
     1314              +      (        ibit23 * adv_mom_5                             &
    12441315                     ) *                                                     &
    12451316                                 ( v(k,j+3,i) - v(k,j-2,i) )                 &
     
    12481319!--       k index has to be modified near bottom and top, else array
    12491320!--       subscripts will be exceeded.
    1250           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),26,1)
    1251           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),24,1)  )
    1252           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),26,1)
     1321          ibit26 = IBITS(wall_flags_0(k,j,i),26,1)
     1322          ibit25 = IBITS(wall_flags_0(k,j,i),25,1)
     1323          ibit24 = IBITS(wall_flags_0(k,j,i),24,1)
     1324
     1325          k_ppp = k + 3 * ibit26
     1326          k_pp  = k + 2 * ( 1 - ibit24  )
     1327          k_mm  = k - 2 * ibit26
    12531328
    12541329          w_comp    = w(k,j-1,i) + w(k,j,i)
    12551330          flux_t(k) = w_comp  * (                                            &
    1256                      ( 37.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1257                   +     7.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    1258                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
     1331                     ( 37.0 * ibit26 * adv_mom_5                             &
     1332                  +     7.0 * ibit25 * adv_mom_3                             &
     1333                  +           ibit24 * adv_mom_1                             &
    12591334                     ) *                                                     &
    12601335                             ( v(k+1,j,i)   + v(k,j,i)    )                  &
    1261               -      (  8.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1262                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
     1336              -      (  8.0 * ibit26 * adv_mom_5                             &
     1337                  +           ibit25 * adv_mom_3                             &
    12631338                     ) *                                                     &
    12641339                             ( v(k_pp,j,i)  + v(k-1,j,i)  )                  &
    1265               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
     1340              +      (        ibit26 * adv_mom_5                             &
    12661341                     ) *                                                     &
    12671342                             ( v(k_ppp,j,i) + v(k_mm,j,i) )                  &
     
    12691344
    12701345          diss_t(k) = - ABS( w_comp ) * (                                    &
    1271                      ( 10.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1272                   +     3.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    1273                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
     1346                     ( 10.0 * ibit26 * adv_mom_5                             &
     1347                  +     3.0 * ibit25 * adv_mom_3                             &
     1348                  +           ibit24 * adv_mom_1                             &
    12741349                     ) *                                                     &
    12751350                             ( v(k+1,j,i)   - v(k,j,i)    )                  &
    1276               -      (  5.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1277                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
     1351              -      (  5.0 * ibit26 * adv_mom_5                             &
     1352                  +           ibit25 * adv_mom_3                             &
    12781353                     ) *                                                     &
    12791354                             ( v(k_pp,j,i)  - v(k-1,j,i)  )                  &
    1280               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
     1355              +      (        ibit26 * adv_mom_5                             &
    12811356                     ) *                                                     &
    12821357                             ( v(k_ppp,j,i) - v(k_mm,j,i) )                  &
     
    13531428!--       k index has to be modified near bottom and top, else array
    13541429!--       subscripts will be exceeded.
    1355           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),26,1)
    1356           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),24,1)  )
    1357           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),26,1)
     1430          ibit26 = IBITS(wall_flags_0(k,j,i),26,1)
     1431          ibit25 = IBITS(wall_flags_0(k,j,i),25,1)
     1432          ibit24 = IBITS(wall_flags_0(k,j,i),24,1)
     1433
     1434          k_ppp = k + 3 * ibit26
     1435          k_pp  = k + 2 * ( 1 - ibit24  )
     1436          k_mm  = k - 2 * ibit26
    13581437
    13591438          w_comp    = w(k,j-1,i) + w(k,j,i)
    13601439          flux_t(k) = w_comp  * (                                            &
    1361                      ( 37.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1362                   +     7.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    1363                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
     1440                     ( 37.0 * ibit26 * adv_mom_5                             &
     1441                  +     7.0 * ibit25 * adv_mom_3                             &
     1442                  +           ibit24 * adv_mom_1                             &
    13641443                     ) *                                                     &
    13651444                             ( v(k+1,j,i)   + v(k,j,i)    )                  &
    1366               -      (  8.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1367                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
     1445              -      (  8.0 * ibit26 * adv_mom_5                             &
     1446                  +           ibit25 * adv_mom_3                             &
    13681447                     ) *                                                     &
    13691448                             ( v(k_pp,j,i)  + v(k-1,j,i)  )                  &
    1370               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
     1449              +      (        ibit26 * adv_mom_5                             &
    13711450                     ) *                                                     &
    13721451                             ( v(k_ppp,j,i) + v(k_mm,j,i) )                  &
     
    13741453
    13751454          diss_t(k) = - ABS( w_comp ) * (                                    &
    1376                      ( 10.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1377                   +     3.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    1378                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
     1455                     ( 10.0 * ibit26 * adv_mom_5                             &
     1456                  +     3.0 * ibit25 * adv_mom_3                             &
     1457                  +           ibit24 * adv_mom_1                             &
    13791458                     ) *                                                     &
    13801459                             ( v(k+1,j,i)   - v(k,j,i)    )                  &
    1381               -      (  5.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    1382                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
     1460              -      (  5.0 * ibit26 * adv_mom_5                             &
     1461                  +           ibit25 * adv_mom_3                             &
    13831462                     ) *                                                     &
    13841463                             ( v(k_pp,j,i)  - v(k-1,j,i)  )                  &
    1385               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
     1464              +      (        ibit26 * adv_mom_5                             &
    13861465                     ) *                                                     &
    13871466                             ( v(k_ppp,j,i) - v(k_mm,j,i) )                  &
     
    14511530       IMPLICIT NONE
    14521531
    1453        INTEGER ::  i, i_omp, j, k, k_mm, k_pp, k_ppp, tn
     1532       INTEGER ::  i, ibit27, ibit28, ibit29, ibit30, ibit31, ibit32, ibit33, &
     1533                   ibit34, ibit35, i_omp, j, k, k_mm, k_pp, k_ppp, tn
    14541534       REAL    ::  diss_d, div, flux_d, gu, gv, u_comp, v_comp, w_comp
    14551535       REAL, DIMENSION(nzb:nzt+1)  :: diss_n, diss_r, diss_t, flux_n, flux_r, &
     
    14641544
    14651545          DO  k = nzb+1, nzb_max
     1546             ibit32 = IBITS(wall_flags_0(k,j,i),32,1)
     1547             ibit31 = IBITS(wall_flags_0(k,j,i),31,1)
     1548             ibit30 = IBITS(wall_flags_0(k,j,i),30,1)
    14661549
    14671550             v_comp         = v(k+1,j,i) + v(k,j,i) - gv
    14681551             flux_s_w(k,tn) = v_comp * (                                      &
    1469                          ( 37.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    1470                       +     7.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    1471                       +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1 &
    1472                          ) *                                                  &
     1552                            ( 37.0 * ibit32 * adv_mom_5                      &
     1553                         +     7.0 * ibit31 * adv_mom_3                      &
     1554                         +           ibit30 * adv_mom_1                      &
     1555                            ) *                                               &
    14731556                                     ( w(k,j,i)   + w(k,j-1,i) )              &
    1474                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    1475                       +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    1476                          ) *                                                  &
     1557                     -      (  8.0 * ibit32 * adv_mom_5                      &
     1558                         +           ibit31 * adv_mom_3                      &
     1559                            ) *                                               &
    14771560                                     ( w(k,j+1,i) + w(k,j-2,i) )              &
    1478                   +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    1479                          ) *                                                  &
     1561                     +      (        ibit32 * adv_mom_5                      &
     1562                            ) *                                               &
    14801563                                     ( w(k,j+2,i) + w(k,j-3,i) )              &
    14811564                                         )
    14821565
    14831566             diss_s_w(k,tn) = - ABS( v_comp ) * (                             &
    1484                          ( 10.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    1485                       +     3.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    1486                       +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1 &
    1487                          ) *                                                  &
     1567                            ( 10.0 * ibit32 * adv_mom_5                      &
     1568                         +     3.0 * ibit31 * adv_mom_3                      &
     1569                         +           ibit30 * adv_mom_1                      &
     1570                            ) *                                               &
    14881571                                     ( w(k,j,i)   - w(k,j-1,i) )              &
    1489                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    1490                       +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    1491                          ) *                                                  &
     1572                     -      (  5.0 * ibit32 * adv_mom_5                      &
     1573                         +           ibit31 * adv_mom_3                      &
     1574                            ) *                                               &
    14921575                                     ( w(k,j+1,i) - w(k,j-2,i) )              &
    1493                   +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    1494                          ) *                                                  &
     1576                     +      (        ibit32 * adv_mom_5                      &
     1577                            ) *                                               &
    14951578                                     ( w(k,j+2,i) - w(k,j-3,i) )              &
    14961579                                                 )
     
    15191602          DO  k = nzb+1, nzb_max
    15201603
     1604             ibit29 = IBITS(wall_flags_0(k,j,i),29,1)
     1605             ibit28 = IBITS(wall_flags_0(k,j,i),28,1)
     1606             ibit27 = IBITS(wall_flags_0(k,j,i),27,1)
     1607
    15211608             u_comp           = u(k+1,j,i) + u(k,j,i) - gu
    15221609             flux_l_w(k,j,tn) = u_comp * (                                     &
    1523                           ( 37.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    1524                        +     7.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    1525                        +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1 &
    1526                           ) *                                                  &
     1610                             ( 37.0 * ibit29 * adv_mom_5                      &
     1611                          +     7.0 * ibit28 * adv_mom_3                      &
     1612                          +           ibit27 * adv_mom_1                      &
     1613                             ) *                                               &
    15271614                                     ( w(k,j,i)   + w(k,j,i-1) )               &
    1528                    -      (  8.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    1529                        +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    1530                           ) *                                                  &
     1615                      -      (  8.0 * ibit29 * adv_mom_5                      &
     1616                          +           ibit28 * adv_mom_3                      &
     1617                             ) *                                               &
    15311618                                     ( w(k,j,i+1) + w(k,j,i-2) )               &
    1532                    +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    1533                           ) *                                                  &
     1619                      +      (        ibit29 * adv_mom_5                      &
     1620                             ) *                                               &
    15341621                                     ( w(k,j,i+2) + w(k,j,i-3) )               &
    15351622                                         )
    15361623
    15371624               diss_l_w(k,j,tn) = - ABS( u_comp ) * (                          &
    1538                           ( 10.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    1539                        +     3.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    1540                        +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1 &
    1541                           ) *                                                  &
     1625                             ( 10.0 * ibit29 * adv_mom_5                      &
     1626                          +     3.0 * ibit28 * adv_mom_3                      &
     1627                          +           ibit27 * adv_mom_1                      &
     1628                             ) *                                               &
    15421629                                     ( w(k,j,i)   - w(k,j,i-1) )               &
    1543                    -      (  5.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    1544                        +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    1545                           ) *                                                  &
     1630                      -      (  5.0 * ibit29 * adv_mom_5                      &
     1631                          +           ibit28 * adv_mom_3                      &
     1632                             ) *                                               &
    15461633                                     ( w(k,j,i+1) - w(k,j,i-2) )               &
    1547                    +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    1548                           ) *                                                  &
     1634                      +      (        ibit29 * adv_mom_5                      &
     1635                             ) *                                               &
    15491636                                     ( w(k,j,i+2) - w(k,j,i-3) )               &
    15501637                                                    )
     
    15821669       DO  k = nzb+1, nzb_max
    15831670
     1671          ibit29 = IBITS(wall_flags_0(k,j,i),29,1)
     1672          ibit28 = IBITS(wall_flags_0(k,j,i),28,1)
     1673          ibit27 = IBITS(wall_flags_0(k,j,i),27,1)
     1674
    15841675          u_comp    = u(k+1,j,i+1) + u(k,j,i+1) - gu
    15851676          flux_r(k) = u_comp * (                                             &
    1586                      ( 37.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    1587                   +     7.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
    1588                   +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1    &
     1677                     ( 37.0 * ibit29 * adv_mom_5                             &
     1678                  +     7.0 * ibit28 * adv_mom_3                             &
     1679                  +           ibit27 * adv_mom_1                             &
    15891680                     ) *                                                     &
    15901681                                 ( w(k,j,i+1) + w(k,j,i)   )                 &
    1591               -      (  8.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    1592                   +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
     1682              -      (  8.0 * ibit29 * adv_mom_5                             &
     1683                  +           ibit28 * adv_mom_3                             &
    15931684                     ) *                                                     &
    15941685                                 ( w(k,j,i+2) + w(k,j,i-1) )                 &
    1595               +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
     1686              +      (        ibit29 * adv_mom_5                             &
    15961687                     ) *                                                     &
    15971688                                 ( w(k,j,i+3) + w(k,j,i-2) )                 &
    1598                                )
     1689                                )
    15991690
    16001691          diss_r(k) = - ABS( u_comp ) * (                                    &
    1601                      ( 10.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    1602                   +     3.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
    1603                   +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1    &
     1692                     ( 10.0 * ibit29 * adv_mom_5                             &
     1693                  +     3.0 * ibit28 * adv_mom_3                             &
     1694                  +           ibit27 * adv_mom_1                             &
    16041695                     ) *                                                     &
    16051696                                 ( w(k,j,i+1) - w(k,j,i)  )                  &
    1606               -      (  5.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    1607                   +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
     1697              -      (  5.0 * ibit29 * adv_mom_5                             &
     1698                  +           ibit28 * adv_mom_3                             &
    16081699                     ) *                                                     &
    16091700                                 ( w(k,j,i+2) - w(k,j,i-1) )                 &
    1610               +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
     1701              +      (        ibit29 * adv_mom_5                             &
    16111702                     ) *                                                     &
    16121703                                 ( w(k,j,i+3) - w(k,j,i-2) )                 &
    16131704                                        )
    16141705
     1706          ibit32 = IBITS(wall_flags_0(k,j,i),32,1)
     1707          ibit31 = IBITS(wall_flags_0(k,j,i),31,1)
     1708          ibit30 = IBITS(wall_flags_0(k,j,i),30,1)
     1709
    16151710          v_comp    = v(k+1,j+1,i) + v(k,j+1,i) - gv
    16161711          flux_n(k) = v_comp * (                                             &
    1617                      ( 37.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    1618                   +     7.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
    1619                   +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1    &
     1712                     ( 37.0 * ibit32 * adv_mom_5                             &
     1713                  +     7.0 * ibit31 * adv_mom_3                             &
     1714                  +           ibit30 * adv_mom_1                             &
    16201715                     ) *                                                     &
    16211716                                 ( w(k,j+1,i) + w(k,j,i)   )                 &
    1622               -      (  8.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    1623                   +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
     1717              -      (  8.0 * ibit32 * adv_mom_5                             &
     1718                  +           ibit31 * adv_mom_3                             &
    16241719                     ) *                                                     &
    16251720                                 ( w(k,j+2,i) + w(k,j-1,i) )                 &
    1626               +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
     1721              +      (        ibit32 * adv_mom_5                             &
    16271722                     ) *                                                     &
    16281723                                 ( w(k,j+3,i) + w(k,j-2,i) )                 &
     
    16301725
    16311726          diss_n(k) = - ABS( v_comp ) * (                                    &
    1632                      ( 10.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    1633                   +     3.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
    1634                   +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1    &
     1727                     ( 10.0 * ibit32 * adv_mom_5                             &
     1728                  +     3.0 * ibit31 * adv_mom_3                             &
     1729                  +           ibit30 * adv_mom_1                             &
    16351730                     ) *                                                     &
    16361731                                 ( w(k,j+1,i) - w(k,j,i)  )                  &
    1637               -      (  5.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    1638                   +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
     1732              -      (  5.0 * ibit32 * adv_mom_5                             &
     1733                  +           ibit31 * adv_mom_3                             &
    16391734                     ) *                                                     &
    16401735                                 ( w(k,j+2,i) - w(k,j-1,i) )                 &
    1641               +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
     1736              +      (        ibit32 * adv_mom_5                             &
    16421737                     ) *                                                     &
    16431738                                 ( w(k,j+3,i) - w(k,j-2,i) )                 &
     
    16461741!--       k index has to be modified near bottom and top, else array
    16471742!--       subscripts will be exceeded.
    1648           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),35,1)
    1649           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),33,1)  )
    1650           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),35,1)
     1743          ibit35 = IBITS(wall_flags_0(k,j,i),35,1)
     1744          ibit34 = IBITS(wall_flags_0(k,j,i),34,1)
     1745          ibit33 = IBITS(wall_flags_0(k,j,i),33,1)
     1746
     1747          k_ppp = k + 3 * ibit35
     1748          k_pp  = k + 2 * ( 1 - ibit33  )
     1749          k_mm  = k - 2 * ibit35
    16511750
    16521751          w_comp    = w(k+1,j,i) + w(k,j,i)
    16531752          flux_t(k) = w_comp  * (                                            &
    1654                      ( 37.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1655                   +     7.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    1656                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
     1753                     ( 37.0 * ibit35 * adv_mom_5                             &
     1754                  +     7.0 * ibit34 * adv_mom_3                             &
     1755                  +           ibit33 * adv_mom_1                             &
    16571756                     ) *                                                     &
    16581757                             ( w(k+1,j,i)  + w(k,j,i)     )                  &
    1659               -      (  8.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1660                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
     1758              -      (  8.0 * ibit35 * adv_mom_5                             &
     1759                  +           ibit34 * adv_mom_3                             &
    16611760                     ) *                                                     &
    16621761                             ( w(k_pp,j,i)  + w(k-1,j,i)  )                  &
    1663               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
     1762              +      (        ibit35 * adv_mom_5                             &
    16641763                     ) *                                                     &
    16651764                             ( w(k_ppp,j,i) + w(k_mm,j,i) )                  &
     
    16671766
    16681767          diss_t(k) = - ABS( w_comp ) * (                                    &
    1669                      ( 10.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1670                   +     3.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    1671                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
     1768                     ( 10.0 * ibit35 * adv_mom_5                             &
     1769                  +     3.0 * ibit34 * adv_mom_3                             &
     1770                  +           ibit33 * adv_mom_1                             &
    16721771                     ) *                                                     &
    16731772                             ( w(k+1,j,i)   - w(k,j,i)    )                  &
    1674               -      (  5.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1675                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
     1773              -      (  5.0 * ibit35 * adv_mom_5                             &
     1774                  +           ibit34 * adv_mom_3                             &
    16761775                     ) *                                                     &
    16771776                             ( w(k_pp,j,i)  - w(k-1,j,i)  )                  &
    1678               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
     1777              +      (        ibit35 * adv_mom_5                             &
    16791778                     ) *                                                     &
    16801779                             ( w(k_ppp,j,i) - w(k_mm,j,i) )                  &
     
    17391838!--       k index has to be modified near bottom and top, else array
    17401839!--       subscripts will be exceeded.
    1741           k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),35,1)
    1742           k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),33,1)  )
    1743           k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),35,1)
     1840          ibit35 = IBITS(wall_flags_0(k,j,i),35,1)
     1841          ibit34 = IBITS(wall_flags_0(k,j,i),34,1)
     1842          ibit33 = IBITS(wall_flags_0(k,j,i),33,1)
     1843
     1844          k_ppp = k + 3 * ibit35
     1845          k_pp  = k + 2 * ( 1 - ibit33  )
     1846          k_mm  = k - 2 * ibit35
    17441847
    17451848          w_comp    = w(k+1,j,i) + w(k,j,i)
    17461849          flux_t(k) = w_comp  * (                                            &
    1747                      ( 37.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1748                   +     7.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    1749                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
     1850                     ( 37.0 * ibit35 * adv_mom_5                             &
     1851                  +     7.0 * ibit34 * adv_mom_3                             &
     1852                  +           ibit33 * adv_mom_1                             &
    17501853                     ) *                                                     &
    17511854                             ( w(k+1,j,i)  + w(k,j,i)     )                  &
    1752               -      (  8.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1753                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
     1855              -      (  8.0 * ibit35 * adv_mom_5                             &
     1856                  +           ibit34 * adv_mom_3                             &
    17541857                     ) *                                                     &
    17551858                             ( w(k_pp,j,i)  + w(k-1,j,i)  )                  &
    1756               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
     1859              +      (        ibit35 * adv_mom_5                             &
    17571860                     ) *                                                     &
    17581861                             ( w(k_ppp,j,i) + w(k_mm,j,i) )                  &
     
    17601863
    17611864          diss_t(k) = - ABS( w_comp ) * (                                    &
    1762                      ( 10.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1763                   +     3.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    1764                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
     1865                     ( 10.0 * ibit35 * adv_mom_5                             &
     1866                  +     3.0 * ibit34 * adv_mom_3                             &
     1867                  +           ibit33 * adv_mom_1                             &
    17651868                     ) *                                                     &
    17661869                             ( w(k+1,j,i)   - w(k,j,i)    )                  &
    1767               -      (  5.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    1768                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
     1870              -      (  5.0 * ibit35 * adv_mom_5                             &
     1871                  +           ibit34 * adv_mom_3                             &
    17691872                     ) *                                                     &
    17701873                             ( w(k_pp,j,i)  - w(k-1,j,i)  )                  &
    1771               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
     1874              +      (        ibit35 * adv_mom_5                             &
    17721875                     ) *                                                     &
    17731876                             ( w(k_ppp,j,i) - w(k_mm,j,i) )                  &
     
    18231926       IMPLICIT NONE
    18241927
    1825        INTEGER ::  i, j, k, k_mm, k_pp, k_ppp, tn = 0
     1928       INTEGER ::  i, ibit0, ibit1, ibit2, ibit3, ibit4, ibit5, ibit6,        &
     1929                   ibit7, ibit8, j, k, k_mm, k_pp, k_ppp, tn = 0
    18261930       REAL, DIMENSION(:,:,:), POINTER ::  sk
    18271931       REAL    :: diss_d, div, flux_d, u_comp, v_comp
     
    18401944          DO  k = nzb+1, nzb_max
    18411945
     1946             ibit2 = IBITS(wall_flags_0(k,j,i),2,1)
     1947             ibit1 = IBITS(wall_flags_0(k,j,i),1,1)
     1948             ibit0 = IBITS(wall_flags_0(k,j,i),0,1)
     1949
    18421950             u_comp                 = u(k,j,i) - u_gtrans
    18431951             swap_flux_x_local(k,j) = u_comp * (                              &
    1844                          ( 37.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    1845                       +     7.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    1846                       +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1  &
    1847                          ) *                                                  &
    1848                                      ( sk(k,j,i)   + sk(k,j,i-1)    )         &
    1849                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    1850                       +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    1851                          ) *                                                  &
    1852                                      ( sk(k,j,i+1) + sk(k,j,i-2)    )         &
    1853                   +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    1854                          ) *         ( sk(k,j,i+2) + sk(k,j,i-3)    )         &
    1855                                                   )
     1952                                                  ( 37.0 * ibit2 * adv_sca_5  &
     1953                                               +     7.0 * ibit1 * adv_sca_3  &
     1954                                               +           ibit0 * adv_sca_1  &
     1955                                                  ) *                         &
     1956                                            ( sk(k,j,i)   + sk(k,j,i-1)    )  &
     1957                                           -      (  8.0 * ibit2 * adv_sca_5  &
     1958                                               +           ibit1 * adv_sca_3  &
     1959                                                  ) *                         &
     1960                                            ( sk(k,j,i+1) + sk(k,j,i-2)    )  &
     1961                                           +      (        ibit2 * adv_sca_5  &
     1962                                                  ) *                         &
     1963                                            ( sk(k,j,i+2) + sk(k,j,i-3)    )  &
     1964                                               )
    18561965
    18571966              swap_diss_x_local(k,j) = -ABS( u_comp ) * (                     &
    1858                          ( 10.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    1859                       +     3.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    1860                       +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1  &
    1861                          ) *                                                  &
    1862                                      ( sk(k,j,i)   - sk(k,j,i-1)    )         &
    1863                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    1864                       +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3  &
    1865                          ) *                                                  &
    1866                                      ( sk(k,j,i+1) - sk(k,j,i-2)  )           &
    1867                   +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5  &
    1868                          ) *                                                  &
    1869                                      ( sk(k,j,i+2) - sk(k,j,i-3) )            &
    1870                                                            )
     1967                                                  ( 10.0 * ibit2 * adv_sca_5  &
     1968                                               +     3.0 * ibit1 * adv_sca_3  &
     1969                                               +           ibit0 * adv_sca_1  &
     1970                                                  ) *                         &
     1971                                            ( sk(k,j,i)   - sk(k,j,i-1)    )  &
     1972                                           -      (  5.0 * ibit2 * adv_sca_5  &
     1973                                               +           ibit1 * adv_sca_3  &
     1974                                                  ) *                         &
     1975                                            ( sk(k,j,i+1) - sk(k,j,i-2)  )    &
     1976                                           +      (        ibit2 * adv_sca_5  &
     1977                                                  ) *                         &
     1978                                            ( sk(k,j,i+2) - sk(k,j,i-3) )     &
     1979                                                        )
    18711980
    18721981          ENDDO
     
    18791988                                    -  8.0 * ( sk(k,j,i+1) + sk(k,j,i-2) )   &
    18801989                                    +        ( sk(k,j,i+2) + sk(k,j,i-3) )   &
    1881                                                   ) * adv_sca_5
     1990                                               ) * adv_sca_5
    18821991
    18831992             swap_diss_x_local(k,j) = -ABS( u_comp ) * (                     &
     
    18851994                                    -  5.0 * ( sk(k,j,i+1) - sk(k,j,i-2) )   &
    18861995                                    +        ( sk(k,j,i+2) - sk(k,j,i-3) )   &
    1887                                                           ) * adv_sca_5
     1996                                                       ) * adv_sca_5
    18881997
    18891998          ENDDO
     
    18962005          DO  k = nzb+1, nzb_max
    18972006
    1898              v_comp                  = v(k,j,i) - v_gtrans
     2007             ibit5 = IBITS(wall_flags_0(k,j,i),5,1)
     2008             ibit4 = IBITS(wall_flags_0(k,j,i),4,1)
     2009             ibit3 = IBITS(wall_flags_0(k,j,i),3,1)
     2010
     2011             v_comp               = v(k,j,i) - v_gtrans
    18992012             swap_flux_y_local(k) = v_comp * (                                &
    1900                          ( 37.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    1901                       +     7.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    1902                       +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1  &
    1903                          ) *                                                  &
    1904                                      ( sk(k,j,i)  + sk(k,j-1,i)     )         &
    1905                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    1906                       +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    1907                          ) *                                                  &
    1908                                      ( sk(k,j+1,i) + sk(k,j-2,i)    )         &
    1909                   +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    1910                          ) *                                                  &
    1911                                      ( sk(k,j+2,i) + sk(k,j-3,i)    )         &
     2013                                                  ( 37.0 * ibit5 * adv_sca_5  &
     2014                                               +     7.0 * ibit4 * adv_sca_3  &
     2015                                               +           ibit3 * adv_sca_1  &
     2016                                                  ) *                         &
     2017                                           ( sk(k,j,i)  + sk(k,j-1,i)     )   &
     2018                                            -     (  8.0 * ibit5 * adv_sca_5  &
     2019                                               +           ibit4 * adv_sca_3  &
     2020                                                   ) *                        &
     2021                                           ( sk(k,j+1,i) + sk(k,j-2,i)    )   &
     2022                                           +      (        ibit5 * adv_sca_5  &
     2023                                                  ) *                         &
     2024                                           ( sk(k,j+2,i) + sk(k,j-3,i)    )   &
    19122025                                             )
    19132026
    19142027             swap_diss_y_local(k) = -ABS( v_comp ) * (                        &
    1915                          ( 10.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    1916                       +     3.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    1917                       +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1  &
    1918                          ) *                                                  &
    1919                                      ( sk(k,j,i)   - sk(k,j-1,i)    )         &
    1920                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    1921                       +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3  &
    1922                          ) *                                                  &
    1923                                      ( sk(k,j+1,i) - sk(k,j-2,i)  )           &
    1924                   +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5  &
    1925                          ) *                                                  &
    1926                                      ( sk(k,j+2,i) - sk(k,j-3,i) )            &
     2028                                                  ( 10.0 * ibit5 * adv_sca_5  &
     2029                                               +     3.0 * ibit4 * adv_sca_3  &
     2030                                               +           ibit3 * adv_sca_1  &
     2031                                                  ) *                         &
     2032                                            ( sk(k,j,i)   - sk(k,j-1,i)    )  &
     2033                                           -      (  5.0 * ibit5 * adv_sca_5  &
     2034                                               +           ibit4 * adv_sca_3  &
     2035                                            ) *                               &
     2036                                            ( sk(k,j+1,i) - sk(k,j-2,i)  )    &
     2037                                           +      (        ibit5 * adv_sca_5  &
     2038                                                  ) *                         &
     2039                                            ( sk(k,j+2,i) - sk(k,j-3,i) )     &
    19272040                                                     )
    19282041
     
    19552068             DO  k = nzb+1, nzb_max
    19562069
     2070                ibit2 = IBITS(wall_flags_0(k,j,i),2,1)
     2071                ibit1 = IBITS(wall_flags_0(k,j,i),1,1)
     2072                ibit0 = IBITS(wall_flags_0(k,j,i),0,1)
     2073
    19572074                u_comp    = u(k,j,i+1) - u_gtrans
    19582075                flux_r(k) = u_comp * (                                      &
    1959                      ( 37.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    1960                   +     7.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
    1961                   +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1    &
    1962                      ) *                                                    &
     2076                          ( 37.0 * ibit2 * adv_sca_5                        &
     2077                      +      7.0 * ibit1 * adv_sca_3                        &
     2078                      +           ibit0 * adv_sca_1                         &
     2079                          ) *                                               &
    19632080                             ( sk(k,j,i+1) + sk(k,j,i)   )                  &
    1964               -      (  8.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    1965                   +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
    1966                      ) *                                                    &
     2081                   -      (  8.0 * ibit2 * adv_sca_5                        &
     2082                       +           ibit1 * adv_sca_3                        &
     2083                          ) *                                               &
    19672084                             ( sk(k,j,i+2) + sk(k,j,i-1) )                  &
    1968               +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    1969                      ) *     ( sk(k,j,i+3) + sk(k,j,i-2) )                  &
     2085                   +      (        ibit2 * adv_sca_5                        &
     2086                          ) *                                               &
     2087                             ( sk(k,j,i+3) + sk(k,j,i-2) )                  &
    19702088                                     )
    19712089
    19722090                diss_r(k) = -ABS( u_comp ) * (                              &
    1973                      ( 10.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    1974                   +     3.0 * IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
    1975                   +           IBITS(wall_flags_0(k,j,i),0,1) * adv_sca_1    &
    1976                      ) *                                                    &
     2091                          ( 10.0 * ibit2 * adv_sca_5                        &
     2092                       +     3.0 * ibit1 * adv_sca_3                        &
     2093                       +           ibit0 * adv_sca_1                        &
     2094                          ) *                                               &
    19772095                             ( sk(k,j,i+1) - sk(k,j,i)  )                   &
    1978               -      (  5.0 * IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    1979                   +           IBITS(wall_flags_0(k,j,i),1,1) * adv_sca_3    &
    1980                      ) *                                                    &
     2096                   -      (  5.0 * ibit2 * adv_sca_5                        &
     2097                       +           ibit1 * adv_sca_3                        &
     2098                          ) *                                               &
    19812099                             ( sk(k,j,i+2) - sk(k,j,i-1) )                  &
    1982               +      (        IBITS(wall_flags_0(k,j,i),2,1) * adv_sca_5    &
    1983                      ) *                                                    &
     2100                   +      (        ibit2 * adv_sca_5                        &
     2101                          ) *                                               &
    19842102                             ( sk(k,j,i+3) - sk(k,j,i-2) )                  &
    19852103                                             )
    19862104
     2105                ibit5 = IBITS(wall_flags_0(k,j,i),5,1)
     2106                ibit4 = IBITS(wall_flags_0(k,j,i),4,1)
     2107                ibit3 = IBITS(wall_flags_0(k,j,i),3,1)
     2108
    19872109                v_comp    = v(k,j+1,i) - v_gtrans
    19882110                flux_n(k) = v_comp * (                                      &
    1989                      ( 37.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    1990                   +     7.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
    1991                   +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1    &
    1992                      ) *                                                    &
     2111                          ( 37.0 * ibit5 * adv_sca_5                        &
     2112                       +     7.0 * ibit4 * adv_sca_3                        &
     2113                       +           ibit3 * adv_sca_1                        &
     2114                          ) *                                               &
    19932115                             ( sk(k,j+1,i) + sk(k,j,i)   )                  &
    1994               -      (  8.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    1995                   +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
    1996                      ) *                                                    &
     2116                   -      (  8.0 * ibit5 * adv_sca_5                        &
     2117                       +           ibit4 * adv_sca_3                        &
     2118                          ) *                                               &
    19972119                             ( sk(k,j+2,i) + sk(k,j-1,i) )                  &
    1998               +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    1999                      ) *                                                    &
     2120                   +      (        ibit5 * adv_sca_5                        &
     2121                          ) *                                               &
    20002122                             ( sk(k,j+3,i) + sk(k,j-2,i) )                  &
    20012123                                     )
    20022124
    20032125                diss_n(k) = -ABS( v_comp ) * (                              &
    2004                      ( 10.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    2005                   +     3.0 * IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
    2006                   +           IBITS(wall_flags_0(k,j,i),3,1) * adv_sca_1    &
    2007                      ) *                                                    &
     2126                          ( 10.0 * ibit5 * adv_sca_5                        &
     2127                       +     3.0 * ibit4 * adv_sca_3                        &
     2128                       +           ibit3 * adv_sca_1                        &
     2129                          ) *                                               &
    20082130                             ( sk(k,j+1,i) - sk(k,j,i)    )                 &
    2009               -      (  5.0 * IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    2010                   +           IBITS(wall_flags_0(k,j,i),4,1) * adv_sca_3    &
    2011                      ) *                                                    &
     2131                   -      (  5.0 * ibit5 * adv_sca_5                        &
     2132                       +           ibit4 * adv_sca_3                        &
     2133                          ) *                                               &
    20122134                             ( sk(k,j+2,i) - sk(k,j-1,i)  )                 &
    2013               +      (        IBITS(wall_flags_0(k,j,i),5,1) * adv_sca_5    &
    2014                      ) *                                                    &
     2135                   +      (        ibit5 * adv_sca_5                        &
     2136                          ) *                                               &
    20152137                             ( sk(k,j+3,i) - sk(k,j-2,i) )                  &
    20162138                                             )
     
    20182140!--             k index has to be modified near bottom and top, else array
    20192141!--             subscripts will be exceeded.
    2020                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),8,1)
    2021                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),6,1)  )
    2022                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),8,1)
    2023 
    2024 
    2025                 flux_t(k) = w(k,j,i) * (                                    &
    2026                      ( 37.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2027                   +     7.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2028                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
    2029                      ) *                                                    &
    2030                              ( sk(k+1,j,i)  + sk(k,j,i)   )                 &
    2031               -      (  8.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2032                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2033                      ) *                                                    &
    2034                              ( sk(k_pp,j,i) + sk(k-1,j,i) )                 &
    2035               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2036                      ) *     ( sk(k_ppp,j,i)+ sk(k_mm,j,i) )                &
     2142                ibit8 = IBITS(wall_flags_0(k,j,i),8,1)
     2143                ibit7 = IBITS(wall_flags_0(k,j,i),7,1)
     2144                ibit6 = IBITS(wall_flags_0(k,j,i),6,1)
     2145
     2146                k_ppp = k + 3 * ibit8
     2147                k_pp  = k + 2 * ( 1 - ibit6  )
     2148                k_mm  = k - 2 * ibit8
     2149
     2150
     2151                flux_t(k) = w(k,j,i) * (                                      &
     2152                           ( 37.0 * ibit8 * adv_sca_5                         &
     2153                        +     7.0 * ibit7 * adv_sca_3                         &
     2154                        +           ibit6 * adv_sca_1                         &
     2155                           ) *                                                &
     2156                                   ( sk(k+1,j,i)  + sk(k,j,i)   )             &
     2157                          -      (  8.0 * ibit8 * adv_sca_5                   &
     2158                        +           ibit7 * adv_sca_3                         &
     2159                           ) *                                                &
     2160                                   ( sk(k_pp,j,i) + sk(k-1,j,i) )             &
     2161                    +      (        ibit8 * adv_sca_5                         &
     2162                           ) *     ( sk(k_ppp,j,i)+ sk(k_mm,j,i) )            &
    20372163                                       )
    20382164
    2039                 diss_t(k) = -ABS( w(k,j,i) ) * (                            &
    2040                      ( 10.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2041                   +     3.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2042                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
    2043                      ) *                                                    &
    2044                              ( sk(k+1,j,i)   - sk(k,j,i)    )               &
    2045               -      (  5.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2046                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2047                      ) *                                                    &
    2048                              ( sk(k_pp,j,i)  - sk(k-1,j,i)  )               &
    2049               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2050                      ) *                                                    &
    2051                              ( sk(k_ppp,j,i) - sk(k_mm,j,i) )               &
    2052                                                )
     2165                diss_t(k) = -ABS( w(k,j,i) ) * (                              &
     2166                           ( 10.0 * ibit8 * adv_sca_5                         &
     2167                        +     3.0 * ibit7 * adv_sca_3                         &
     2168                        +           ibit6 * adv_sca_1                         &
     2169                           ) *                                                &
     2170                                   ( sk(k+1,j,i)   - sk(k,j,i)    )           &
     2171                    -      (  5.0 * ibit8 * adv_sca_5                         &
     2172                        +           ibit7 * adv_sca_3                         &
     2173                           ) *                                                &
     2174                                   ( sk(k_pp,j,i)  - sk(k-1,j,i)  )           &
     2175                    +      (        ibit8 * adv_sca_5                         &
     2176                           ) *                                                &
     2177                                   ( sk(k_ppp,j,i) - sk(k_mm,j,i) )           &
     2178                                         )
    20532179!
    20542180!--             Calculate the divergence of the velocity field. A respective
     
    21012227!--             k index has to be modified near bottom and top, else array
    21022228!--             subscripts will be exceeded.
    2103                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),8,1)
    2104                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),6,1)  )
    2105                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),8,1)
    2106 
    2107                 flux_t(k) = w(k,j,i) * (                                    &
    2108                      ( 37.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2109                   +     7.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2110                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
    2111                      ) *                                                    &
    2112                              ( sk(k+1,j,i)  + sk(k,j,i)   )                 &
    2113               -      (  8.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2114                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2115                      ) *                                                    &
    2116                              ( sk(k_pp,j,i) + sk(k-1,j,i) )                 &
    2117               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2118                      ) *     ( sk(k_ppp,j,i)+ sk(k_mm,j,i) )                &
     2229                ibit8 = IBITS(wall_flags_0(k,j,i),8,1)
     2230                ibit7 = IBITS(wall_flags_0(k,j,i),7,1)
     2231                ibit6 = IBITS(wall_flags_0(k,j,i),6,1)
     2232
     2233                k_ppp = k + 3 * ibit8
     2234                k_pp  = k + 2 * ( 1 - ibit6  )
     2235                k_mm  = k - 2 * ibit8
     2236
     2237
     2238                flux_t(k) = w(k,j,i) * (                                      &
     2239                           ( 37.0 * ibit8 * adv_sca_5                         &
     2240                        +     7.0 * ibit7 * adv_sca_3                         &
     2241                        +           ibit6 * adv_sca_1                         &
     2242                           ) *                                                &
     2243                                   ( sk(k+1,j,i)  + sk(k,j,i)   )             &
     2244                          -      (  8.0 * ibit8 * adv_sca_5                   &
     2245                        +           ibit7 * adv_sca_3                         &
     2246                           ) *                                                &
     2247                                   ( sk(k_pp,j,i) + sk(k-1,j,i) )             &
     2248                    +      (        ibit8 * adv_sca_5                         &
     2249                           ) *     ( sk(k_ppp,j,i)+ sk(k_mm,j,i) )            &
    21192250                                       )
    21202251
    2121                 diss_t(k) = -ABS( w(k,j,i) ) * (                            &
    2122                      ( 10.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2123                   +     3.0 * IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2124                   +           IBITS(wall_flags_0(k,j,i),6,1) * adv_sca_1    &
    2125                      ) *                                                    &
    2126                              ( sk(k+1,j,i)   - sk(k,j,i)    )               &
    2127               -      (  5.0 * IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2128                   +           IBITS(wall_flags_0(k,j,i),7,1) * adv_sca_3    &
    2129                      ) *                                                    &
    2130                              ( sk(k_pp,j,i)  - sk(k-1,j,i)  )               &
    2131               +      (        IBITS(wall_flags_0(k,j,i),8,1) * adv_sca_5    &
    2132                      ) *                                                    &
    2133                              ( sk(k_ppp,j,i) - sk(k_mm,j,i) )               &
    2134                                                )
     2252                diss_t(k) = -ABS( w(k,j,i) ) * (                              &
     2253                           ( 10.0 * ibit8 * adv_sca_5                         &
     2254                        +     3.0 * ibit7 * adv_sca_3                         &
     2255                        +           ibit6 * adv_sca_1                         &
     2256                           ) *                                                &
     2257                                   ( sk(k+1,j,i)   - sk(k,j,i)    )           &
     2258                    -      (  5.0 * ibit8 * adv_sca_5                         &
     2259                        +           ibit7 * adv_sca_3                         &
     2260                           ) *                                                &
     2261                                   ( sk(k_pp,j,i)  - sk(k-1,j,i)  )           &
     2262                    +      (        ibit8 * adv_sca_5                         &
     2263                           ) *                                                &
     2264                                   ( sk(k_ppp,j,i) - sk(k_mm,j,i) )           &
     2265                                         )
    21352266!
    21362267!--             Calculate the divergence of the velocity field. A respective
     
    22032334       IMPLICIT NONE
    22042335
    2205        INTEGER ::  i, j, k, k_mm, k_pp, k_ppp, tn = 0
     2336       INTEGER ::  i, ibit9, ibit10, ibit11, ibit12, ibit13, ibit14, ibit15,   &
     2337                   ibit16, ibit17, j, k, k_mm, k_pp, k_ppp, tn = 0
    22062338       REAL    ::  diss_d, div, flux_d, gu, gv, v_comp, w_comp
    22072339       REAL, DIMENSION(nzb+1:nzt) :: swap_diss_y_local_u, swap_flux_y_local_u
     
    22202352          DO  k = nzb+1, nzb_max
    22212353
     2354             ibit11 = IBITS(wall_flags_0(k,j,i),11,1)
     2355             ibit10 = IBITS(wall_flags_0(k,j,i),10,1)
     2356             ibit9  = IBITS(wall_flags_0(k,j,i),9,1)
     2357
    22222358             u_comp(k)                = u(k,j,i) + u(k,j,i-1) - gu
    22232359             swap_flux_x_local_u(k,j) = u_comp(k) * (                          &
    2224                           ( 37.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    2225                        +     7.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    2226                        +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1 &
    2227                           ) *                                                  &
     2360                                       ( 37.0 * ibit11 * adv_mom_5            &
     2361                                    +     7.0 * ibit10 * adv_mom_3            &
     2362                                    +           ibit9  * adv_mom_1            &
     2363                                       ) *                                     &
    22282364                                     ( u(k,j,i)   + u(k,j,i-1) )               &
    2229                    -      (  8.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    2230                        +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    2231                           ) *                                                  &
     2365                                -      (  8.0 * ibit11 * adv_mom_5            &
     2366                                    +           ibit10 * adv_mom_3            &
     2367                                       ) *                                     &
    22322368                                     ( u(k,j,i+1) + u(k,j,i-2) )               &
    2233                    +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    2234                           ) *                                                  &
     2369                                +      (        ibit11 * adv_mom_5            &
     2370                                       ) *                                     &
    22352371                                     ( u(k,j,i+2) + u(k,j,i-3) )               &
    22362372                                                   )
    22372373
    22382374              swap_diss_x_local_u(k,j) = - ABS( u_comp(k) ) * (                &
    2239                           ( 10.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    2240                        +     3.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    2241                        +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1 &
    2242                           ) *                                                  &
     2375                                       ( 10.0 * ibit11 * adv_mom_5            &
     2376                                    +     3.0 * ibit10 * adv_mom_3            &
     2377                                    +           ibit9  * adv_mom_1            &
     2378                                       ) *                                     &
    22432379                                     ( u(k,j,i)   - u(k,j,i-1) )               &
    2244                    -      (  5.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    2245                        +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3 &
    2246                           ) *                                                  &
     2380                                -      (  5.0 * ibit11 * adv_mom_5            &
     2381                                    +           ibit10 * adv_mom_3            &
     2382                                       ) *                                     &
    22472383                                     ( u(k,j,i+1) - u(k,j,i-2) )               &
    2248                    +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5 &
    2249                           ) *                                                  &
     2384                                +      (        ibit11 * adv_mom_5            &
     2385                                       ) *                                     &
    22502386                                     ( u(k,j,i+2) - u(k,j,i-3) )               &
    22512387                                                             )
     
    22742410          DO  k = nzb+1, nzb_max
    22752411
     2412             ibit14 = IBITS(wall_flags_0(k,j,i),14,1)
     2413             ibit13 = IBITS(wall_flags_0(k,j,i),13,1)
     2414             ibit12 = IBITS(wall_flags_0(k,j,i),12,1)
     2415
    22762416             v_comp                 = v(k,j,i) + v(k,j,i-1) - gv
    22772417             swap_flux_y_local_u(k) = v_comp * (                              &
    2278                          ( 37.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    2279                       +     7.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    2280                       +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1 &
    2281                          ) *                                                  &
     2418                                   ( 37.0 * ibit14 * adv_mom_5                &
     2419                                +     7.0 * ibit13 * adv_mom_3                &
     2420                                +           ibit12 * adv_mom_1                &
     2421                                   ) *                                        &
    22822422                                     ( u(k,j,i)   + u(k,j-1,i) )              &
    2283                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    2284                       +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    2285                          ) *                                                  &
     2423                            -      (  8.0 * ibit14 * adv_mom_5                &
     2424                            +           ibit13 * adv_mom_3                    &
     2425                                   ) *                                        &
    22862426                                     ( u(k,j+1,i) + u(k,j-2,i) )              &
    2287                   +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    2288                          ) *                                                  &
     2427                        +      (        ibit14 * adv_mom_5                    &
     2428                               ) *                                            &
    22892429                                     ( u(k,j+2,i) + u(k,j-3,i) )              &
    22902430                                               )
    22912431
    22922432             swap_diss_y_local_u(k) = - ABS ( v_comp ) * (                    &
    2293                          ( 10.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    2294                       +     3.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    2295                       +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1 &
    2296                          ) *                                                  &
     2433                                   ( 10.0 * ibit14 * adv_mom_5                &
     2434                                +     3.0 * ibit13 * adv_mom_3                &
     2435                                +           ibit12 * adv_mom_1                &
     2436                                   ) *                                        &
    22972437                                     ( u(k,j,i)   - u(k,j-1,i) )              &
    2298                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    2299                       +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3 &
    2300                          ) *                                                  &
     2438                            -      (  5.0 * ibit14 * adv_mom_5                &
     2439                                +           ibit13 * adv_mom_3                &
     2440                                   ) *                                        &
    23012441                                     ( u(k,j+1,i) - u(k,j-2,i) )              &
    2302                   +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5 &
    2303                          ) *                                                  &
     2442                            +      (        ibit14 * adv_mom_5                &
     2443                                   ) *                                        &
    23042444                                     ( u(k,j+2,i) - u(k,j-3,i) )              &
    23052445                                                         )
     
    23312471             DO  k = nzb+1, nzb_max
    23322472
     2473                ibit11 = IBITS(wall_flags_0(k,j,i),11,1)
     2474                ibit10 = IBITS(wall_flags_0(k,j,i),10,1)
     2475                ibit9  = IBITS(wall_flags_0(k,j,i),9,1)
     2476
    23332477                u_comp(k) = u(k,j,i+1) + u(k,j,i)
    23342478                flux_r(k) = ( u_comp(k) - gu ) * (                           &
    2335                      ( 37.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    2336                   +     7.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
    2337                   +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1    &
    2338                      ) *                                                     &
     2479                          ( 37.0 * ibit11 * adv_mom_5                        &
     2480                       +     7.0 * ibit10 * adv_mom_3                        &
     2481                       +           ibit9  * adv_mom_1                        &
     2482                          ) *                                                &
    23392483                                 ( u(k,j,i+1) + u(k,j,i)   )                 &
    2340               -      (  8.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    2341                   +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
    2342                      ) *                                                     &
     2484                   -      (  8.0 * ibit11 * adv_mom_5                        &
     2485                       +           ibit10 * adv_mom_3                        &
     2486                          ) *                                                &
    23432487                                 ( u(k,j,i+2) + u(k,j,i-1) )                 &
    2344               +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    2345                      ) *                                                     &
     2488                   +      (        ibit11 * adv_mom_5                        &
     2489                          ) *                                                &
    23462490                                 ( u(k,j,i+3) + u(k,j,i-2) )                 &
    23472491                                                 )
    23482492
    23492493                diss_r(k) = - ABS( u_comp(k) - gu ) * (                      &
    2350                      ( 10.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    2351                   +     3.0 * IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
    2352                   +           IBITS(wall_flags_0(k,j,i),9,1)  * adv_mom_1    &
    2353                      ) *                                                     &
     2494                          ( 10.0 * ibit11 * adv_mom_5                        &
     2495                       +     3.0 * ibit10 * adv_mom_3                        &
     2496                       +           ibit9  * adv_mom_1                        &
     2497                          ) *                                                &
    23542498                                 ( u(k,j,i+1) - u(k,j,i)  )                  &
    2355               -      (  5.0 * IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    2356                   +           IBITS(wall_flags_0(k,j,i),10,1) * adv_mom_3    &
    2357                      ) *                                                     &
     2499                   -      (  5.0 * ibit11 * adv_mom_5                        &
     2500                       +           ibit10 * adv_mom_3                        &
     2501                          ) *                                                &
    23582502                                 ( u(k,j,i+2) - u(k,j,i-1) )                 &
    2359               +      (        IBITS(wall_flags_0(k,j,i),11,1) * adv_mom_5    &
    2360                      ) *                                                     &
     2503                   +      (        ibit11 * adv_mom_5                        &
     2504                          ) *                                                &
    23612505                                 ( u(k,j,i+3) - u(k,j,i-2) )                 &
    23622506                                                     )
    23632507
     2508                ibit14 = IBITS(wall_flags_0(k,j,i),14,1)
     2509                ibit13 = IBITS(wall_flags_0(k,j,i),13,1)
     2510                ibit12 = IBITS(wall_flags_0(k,j,i),12,1)
     2511
    23642512                v_comp    = v(k,j+1,i) + v(k,j+1,i-1) - gv
    23652513                flux_n(k) = v_comp * (                                       &
    2366                      ( 37.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    2367                   +     7.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
    2368                   +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1    &
    2369                      ) *                                                     &
     2514                          ( 37.0 * ibit14 * adv_mom_5                        &
     2515                       +     7.0 * ibit13 * adv_mom_3                        &
     2516                       +           ibit12 * adv_mom_1                        &
     2517                          ) *                                                &
    23702518                                 ( u(k,j+1,i) + u(k,j,i)   )                 &
    2371               -      (  8.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    2372                   +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
    2373                      ) *                                                     &
     2519                   -      (  8.0 * ibit14 * adv_mom_5                        &
     2520                       +           ibit13 * adv_mom_3                        &
     2521                          ) *                                                &
    23742522                                 ( u(k,j+2,i) + u(k,j-1,i) )                 &
    2375               +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    2376                      ) *                                                     &
     2523                   +      (        ibit14 * adv_mom_5                        &
     2524                          ) *                                                &
    23772525                                 ( u(k,j+3,i) + u(k,j-2,i) )                 &
    23782526                                                 )
    23792527
    23802528                diss_n(k) = - ABS ( v_comp ) * (                             &
    2381                      ( 10.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    2382                   +     3.0 * IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
    2383                   +           IBITS(wall_flags_0(k,j,i),12,1) * adv_mom_1    &
    2384                      ) *                                                     &
     2529                          ( 10.0 * ibit14 * adv_mom_5                        &
     2530                       +     3.0 * ibit13 * adv_mom_3                        &
     2531                       +           ibit12 * adv_mom_1                        &
     2532                          ) *                                                &
    23852533                                 ( u(k,j+1,i) - u(k,j,i)  )                  &
    2386               -      (  5.0 * IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    2387                   +           IBITS(wall_flags_0(k,j,i),13,1) * adv_mom_3    &
    2388                      ) *                                                     &
     2534                   -      (  5.0 * ibit14 * adv_mom_5                        &
     2535                       +           ibit13 * adv_mom_3                        &
     2536                          ) *                                                &
    23892537                                 ( u(k,j+2,i) - u(k,j-1,i) )                 &
    2390               +      (        IBITS(wall_flags_0(k,j,i),14,1) * adv_mom_5    &
    2391                      ) *                                                     &
     2538                   +      (        ibit14 * adv_mom_5                        &
     2539                          ) *                                                &
    23922540                                 ( u(k,j+3,i) - u(k,j-2,i) )                 &
    23932541                                                      )
     
    23952543!--             k index has to be modified near bottom and top, else array
    23962544!--             subscripts will be exceeded.
    2397                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),17,1)
    2398                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),15,1)  )
    2399                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),17,1)
     2545                ibit17 = IBITS(wall_flags_0(k,j,i),17,1)
     2546                ibit16 = IBITS(wall_flags_0(k,j,i),16,1)
     2547                ibit15 = IBITS(wall_flags_0(k,j,i),15,1)
     2548
     2549                k_ppp = k + 3 * ibit17
     2550                k_pp  = k + 2 * ( 1 - ibit15  )
     2551                k_mm  = k - 2 * ibit17
    24002552
    24012553                w_comp    = w(k,j,i) + w(k,j,i-1)
    24022554                flux_t(k) = w_comp  * (                                      &
    2403                      ( 37.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2404                   +     7.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2405                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
    2406                      ) *                                                     &
     2555                          ( 37.0 * ibit17 * adv_mom_5                        &
     2556                       +     7.0 * ibit16 * adv_mom_3                        &
     2557                       +           ibit15 * adv_mom_1                        &
     2558                          ) *                                                &
    24072559                             ( u(k+1,j,i)  + u(k,j,i)     )                  &
    2408               -      (  8.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2409                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2410                      ) *                                                     &
     2560                   -      (  8.0 * ibit17 * adv_mom_5                        &
     2561                       +           ibit16 * adv_mom_3                        &
     2562                          ) *                                                &
    24112563                             ( u(k_pp,j,i) + u(k-1,j,i)   )                  &
    2412               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2413                      ) *                                                     &
     2564                   +      (        ibit17 * adv_mom_5                        &
     2565                          ) *                                                &
    24142566                             ( u(k_ppp,j,i) + u(k_mm,j,i) )                  &
    24152567                                      )
    24162568
    24172569                diss_t(k) = - ABS( w_comp ) * (                              &
    2418                      ( 10.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2419                   +     3.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2420                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
    2421                      ) *                                                     &
     2570                          ( 10.0 * ibit17 * adv_mom_5                        &
     2571                       +     3.0 * ibit16 * adv_mom_3                        &
     2572                       +           ibit15 * adv_mom_1                        &
     2573                          ) *                                                &
    24222574                             ( u(k+1,j,i)   - u(k,j,i)    )                  &
    2423               -      (  5.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2424                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2425                      ) *                                                     &
     2575                   -      (  5.0 * ibit17 * adv_mom_5                        &
     2576                       +           ibit16 * adv_mom_3                        &
     2577                          ) *                                                &
    24262578                             ( u(k_pp,j,i)  - u(k-1,j,i)  )                  &
    2427               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2428                      ) *                                                     &
     2579                   +      (        ibit17 * adv_mom_5                        &
     2580                           ) *                                               &
    24292581                             ( u(k_ppp,j,i) - u(k_mm,j,i) )                  &
    24302582                                              )
     
    24972649!--             k index has to be modified near bottom and top, else array
    24982650!--             subscripts will be exceeded.
    2499                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),17,1)
    2500                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),15,1)  )
    2501                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),17,1)
     2651                ibit17 = IBITS(wall_flags_0(k,j,i),17,1)
     2652                ibit16 = IBITS(wall_flags_0(k,j,i),16,1)
     2653                ibit15 = IBITS(wall_flags_0(k,j,i),15,1)
     2654
     2655                k_ppp = k + 3 * ibit17
     2656                k_pp  = k + 2 * ( 1 - ibit15  )
     2657                k_mm  = k - 2 * ibit17
    25022658
    25032659                w_comp    = w(k,j,i) + w(k,j,i-1)
    25042660                flux_t(k) = w_comp  * (                                      &
    2505                      ( 37.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2506                   +     7.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2507                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
    2508                      ) *                                                     &
     2661                          ( 37.0 * ibit17 * adv_mom_5                        &
     2662                       +     7.0 * ibit16 * adv_mom_3                        &
     2663                       +           ibit15 * adv_mom_1                        &
     2664                          ) *                                                &
    25092665                             ( u(k+1,j,i)  + u(k,j,i)     )                  &
    2510               -      (  8.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2511                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2512                      ) *                                                     &
     2666                   -      (  8.0 * ibit17 * adv_mom_5                        &
     2667                       +           ibit16 * adv_mom_3                        &
     2668                          ) *                                                &
    25132669                             ( u(k_pp,j,i) + u(k-1,j,i)   )                  &
    2514               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2515                      ) *                                                     &
     2670                   +      (        ibit17 * adv_mom_5                        &
     2671                          ) *                                                &
    25162672                             ( u(k_ppp,j,i) + u(k_mm,j,i) )                  &
    25172673                                      )
    25182674
    2519                  diss_t(k) = - ABS( w_comp ) * (                             &
    2520                      ( 10.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2521                   +     3.0 * IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2522                   +           IBITS(wall_flags_0(k,j,i),15,1) * adv_mom_1    &
    2523                      ) *                                                     &
     2675                diss_t(k) = - ABS( w_comp ) * (                              &
     2676                          ( 10.0 * ibit17 * adv_mom_5                        &
     2677                       +     3.0 * ibit16 * adv_mom_3                        &
     2678                       +           ibit15 * adv_mom_1                        &
     2679                          ) *                                                &
    25242680                             ( u(k+1,j,i)   - u(k,j,i)    )                  &
    2525               -      (  5.0 * IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2526                   +           IBITS(wall_flags_0(k,j,i),16,1) * adv_mom_3    &
    2527                      ) *                                                     &
     2681                   -      (  5.0 * ibit17 * adv_mom_5                        &
     2682                       +           ibit16 * adv_mom_3                        &
     2683                          ) *                                                &
    25282684                             ( u(k_pp,j,i)  - u(k-1,j,i)  )                  &
    2529               +      (        IBITS(wall_flags_0(k,j,i),17,1) * adv_mom_5    &
    2530                      ) *                                                     &
     2685                   +      (        ibit17 * adv_mom_5                        &
     2686                           ) *                                               &
    25312687                             ( u(k_ppp,j,i) - u(k_mm,j,i) )                  &
    2532                                                )
     2688                                              )
    25332689!
    25342690!--             Calculate the divergence of the velocity field. A respective
     
    25972753
    25982754
    2599        INTEGER ::  i, j, k, k_mm, k_pp, k_ppp, tn = 0
     2755       INTEGER ::  i, ibit18, ibit19, ibit20, ibit21, ibit22, ibit23, ibit24, &
     2756                    ibit25, ibit26, j, k, k_mm, k_pp, k_ppp, tn = 0
    26002757       REAL    ::  diss_d, div, flux_d, gu, gv, u_comp, w_comp
    26012758       REAL, DIMENSION(nzb+1:nzt) :: swap_diss_y_local_v, swap_flux_y_local_v
     
    26132770          DO  k = nzb+1, nzb_max
    26142771
     2772             ibit20 = IBITS(wall_flags_0(k,j,i),20,1)
     2773             ibit19 = IBITS(wall_flags_0(k,j,i),19,1)
     2774             ibit18 = IBITS(wall_flags_0(k,j,i),18,1)
     2775
    26152776             u_comp                   = u(k,j-1,i) + u(k,j,i) - gu
    26162777             swap_flux_x_local_v(k,j) = u_comp * (                             &
    2617                           ( 37.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    2618                        +     7.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    2619                        +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1 &
    2620                           ) *                                                  &
     2778                                      ( 37.0 * ibit20 * adv_mom_5              &
     2779                                   +     7.0 * ibit19 * adv_mom_3              &
     2780                                   +           ibit18 * adv_mom_1              &
     2781                                      ) *                                      &
    26212782                                     ( v(k,j,i)   + v(k,j,i-1) )               &
    2622                    -      (  8.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    2623                        +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    2624                           ) *                                                  &
     2783                               -      (  8.0 * ibit20 * adv_mom_5              &
     2784                                   +           ibit19 * adv_mom_3              &
     2785                                      ) *                                      &
    26252786                                     ( v(k,j,i+1) + v(k,j,i-2) )               &
    2626                    +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    2627                           ) *                                                  &
     2787                               +      (        ibit20 * adv_mom_5              &
     2788                                      ) *                                      &
    26282789                                     ( v(k,j,i+2) + v(k,j,i-3) )               &
    26292790                                                 )
    26302791
    26312792              swap_diss_x_local_v(k,j) = - ABS( u_comp ) * (                   &
    2632                           ( 10.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    2633                        +     3.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    2634                        +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1 &
    2635                           ) *                                                  &
     2793                                      ( 10.0 * ibit20 * adv_mom_5              &
     2794                                   +     3.0 * ibit19 * adv_mom_3              &
     2795                                   +           ibit18 * adv_mom_1              &
     2796                                      ) *                                      &
    26362797                                     ( v(k,j,i)   - v(k,j,i-1) )               &
    2637                    -      (  5.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    2638                        +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3 &
    2639                           ) *                                                  &
     2798                               -      (  5.0 * ibit20 * adv_mom_5              &
     2799                                   +           ibit19 * adv_mom_3              &
     2800                                      ) *                                      &
    26402801                                     ( v(k,j,i+1) - v(k,j,i-2) )               &
    2641                    +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5 &
    2642                           ) *                                                  &
     2802                               +      (        ibit20 * adv_mom_5              &
     2803                                      ) *                                      &
    26432804                                     ( v(k,j,i+2) - v(k,j,i-3) )               &
    26442805                                                           )
     
    26672828          DO  k = nzb+1, nzb_max
    26682829
     2830             ibit23 = IBITS(wall_flags_0(k,j,i),23,1)
     2831             ibit22 = IBITS(wall_flags_0(k,j,i),22,1)
     2832             ibit21 = IBITS(wall_flags_0(k,j,i),21,1)
     2833
    26692834             v_comp(k)              = v(k,j,i) + v(k,j-1,i) - gv
    26702835             swap_flux_y_local_v(k) = v_comp(k) * (                           &
    2671                          ( 37.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    2672                       +     7.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    2673                       +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1 &
    2674                          ) *                                                  &
     2836                                   ( 37.0 * ibit23 * adv_mom_5                &
     2837                                +     7.0 * ibit22 * adv_mom_3                &
     2838                                +           ibit21 * adv_mom_1                &
     2839                                   ) *                                        &
    26752840                                     ( v(k,j,i)   + v(k,j-1,i) )              &
    2676                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    2677                       +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    2678                          ) *                                                  &
     2841                            -      (  8.0 * ibit23 * adv_mom_5                &
     2842                                +           ibit22 * adv_mom_3                &
     2843                                   ) *                                        &
    26792844                                     ( v(k,j+1,i) + v(k,j-2,i) )              &
    2680                   +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    2681                          ) *                                                  &
     2845                            +      (        ibit23 * adv_mom_5                &
     2846                                   ) *                                        &
    26822847                                     ( v(k,j+2,i) + v(k,j-3,i) )              &
    26832848                                                 )
    26842849
    26852850             swap_diss_y_local_v(k) = - ABS( v_comp(k) ) * (                  &
    2686                          ( 10.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    2687                       +     3.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    2688                       +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1 &
    2689                          ) *                                                  &
     2851                                   ( 10.0 * ibit23 * adv_mom_5                &
     2852                                +     3.0 * ibit22 * adv_mom_3                &
     2853                                +           ibit21 * adv_mom_1                &
     2854                                   ) *                                        &
    26902855                                     ( v(k,j,i)   - v(k,j-1,i) )              &
    2691                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    2692                       +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3 &
    2693                          ) *                                                  &
     2856                            -      (  5.0 * ibit23 * adv_mom_5                &
     2857                                +           ibit22 * adv_mom_3                &
     2858                                   ) *                                        &
    26942859                                     ( v(k,j+1,i) - v(k,j-2,i) )              &
    2695                   +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5 &
    2696                          ) *                                                  &
     2860                            +      (        ibit23 * adv_mom_5                &
     2861                                   ) *                                        &
    26972862                                     ( v(k,j+2,i) - v(k,j-3,i) )              &
    26982863                                                          )
     
    27232888             DO  k = nzb+1, nzb_max
    27242889
     2890                ibit20 = IBITS(wall_flags_0(k,j,i),20,1)
     2891                ibit19 = IBITS(wall_flags_0(k,j,i),19,1)
     2892                ibit18 = IBITS(wall_flags_0(k,j,i),18,1)
     2893
    27252894                u_comp    = u(k,j-1,i+1) + u(k,j,i+1) - gu
    27262895                flux_r(k) = u_comp * (                                       &
    2727                      ( 37.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    2728                   +     7.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
    2729                   +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1    &
    2730                      ) *                                                     &
     2896                          ( 37.0 * ibit20 * adv_mom_5                        &
     2897                       +     7.0 * ibit19 * adv_mom_3                        &
     2898                       +           ibit18 * adv_mom_1                        &
     2899                          ) *                                                &
    27312900                                 ( v(k,j,i+1) + v(k,j,i)   )                 &
    2732               -      (  8.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    2733                   +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
    2734                      ) *                                                     &
     2901                   -      (  8.0 * ibit20 * adv_mom_5                        &
     2902                       +           ibit19 * adv_mom_3                        &
     2903                          ) *                                                &
    27352904                                 ( v(k,j,i+2) + v(k,j,i-1) )                 &
    2736               +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    2737                      ) *                                                     &
     2905                   +      (        ibit20 * adv_mom_5                        &
     2906                          ) *                                                &
    27382907                                 ( v(k,j,i+3) + v(k,j,i-2) )                 &
    27392908                                     )
    27402909
    27412910                diss_r(k) = - ABS( u_comp ) * (                              &
    2742                      ( 10.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    2743                   +     3.0 * IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
    2744                   +           IBITS(wall_flags_0(k,j,i),18,1) * adv_mom_1    &
    2745                      ) *                                                     &
     2911                          ( 10.0 * ibit20 * adv_mom_5                        &
     2912                       +     3.0 * ibit19 * adv_mom_3                        &
     2913                       +           ibit18 * adv_mom_1                        &
     2914                          ) *                                                &
    27462915                                 ( v(k,j,i+1) - v(k,j,i)  )                  &
    2747               -      (  5.0 * IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    2748                   +           IBITS(wall_flags_0(k,j,i),19,1) * adv_mom_3    &
    2749                      ) *                                                     &
     2916                   -      (  5.0 * ibit20 * adv_mom_5                        &
     2917                       +           ibit19 * adv_mom_3                        &
     2918                          ) *                                                &
    27502919                                 ( v(k,j,i+2) - v(k,j,i-1) )                 &
    2751               +      (        IBITS(wall_flags_0(k,j,i),20,1) * adv_mom_5    &
    2752                      ) *                                                     &
     2920                   +      (        ibit20 * adv_mom_5                        &
     2921                          ) *                                                &
    27532922                                 ( v(k,j,i+3) - v(k,j,i-2) )                 &
    27542923                                              )
    27552924
     2925                ibit23 = IBITS(wall_flags_0(k,j,i),23,1)
     2926                ibit22 = IBITS(wall_flags_0(k,j,i),22,1)
     2927                ibit21 = IBITS(wall_flags_0(k,j,i),21,1)
     2928
    27562929                v_comp(k) = v(k,j+1,i) + v(k,j,i)
    27572930                flux_n(k) = ( v_comp(k) - gv ) * (                           &
    2758                      ( 37.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    2759                   +     7.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
    2760                   +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1    &
    2761                      ) *                                                     &
     2931                          ( 37.0 * ibit23 * adv_mom_5                        &
     2932                       +     7.0 * ibit22 * adv_mom_3                        &
     2933                       +           ibit21 * adv_mom_1                        &
     2934                          ) *                                                &
    27622935                                 ( v(k,j+1,i) + v(k,j,i)   )                 &
    2763               -      (  8.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    2764                   +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
    2765                      ) *                                                     &
     2936                   -      (  8.0 * ibit23 * adv_mom_5                        &
     2937                       +           ibit22 * adv_mom_3                        &
     2938                          ) *                                                &
    27662939                                 ( v(k,j+2,i) + v(k,j-1,i) )                 &
    2767               +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    2768                      ) *                                                     &
     2940                   +      (        ibit23 * adv_mom_5                        &
     2941                          ) *                                                &
    27692942                                 ( v(k,j+3,i) + v(k,j-2,i) )                 &
    27702943                                     )
    27712944
    27722945                diss_n(k) = - ABS( v_comp(k) - gv ) * (                      &
    2773                      ( 10.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    2774                   +     3.0 * IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
    2775                   +           IBITS(wall_flags_0(k,j,i),21,1) * adv_mom_1    &
    2776                      ) *                                                     &
     2946                          ( 10.0 * ibit23 * adv_mom_5                        &
     2947                       +     3.0 * ibit22 * adv_mom_3                        &
     2948                       +           ibit21 * adv_mom_1                        &
     2949                          ) *                                                &
    27772950                                 ( v(k,j+1,i) - v(k,j,i)  )                  &
    2778               -      (  5.0 * IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    2779                   +           IBITS(wall_flags_0(k,j,i),22,1) * adv_mom_3    &
    2780                      ) *                                                     &
     2951                   -      (  5.0 * ibit23 * adv_mom_5                        &
     2952                       +           ibit22 * adv_mom_3                        &
     2953                          ) *                                                &
    27812954                                 ( v(k,j+2,i) - v(k,j-1,i) )                 &
    2782               +      (        IBITS(wall_flags_0(k,j,i),23,1) * adv_mom_5    &
    2783                      ) *                                                     &
     2955                   +      (        ibit23 * adv_mom_5                        &
     2956                          ) *                                                &
    27842957                                 ( v(k,j+3,i) - v(k,j-2,i) )                 &
    27852958                                                      )
     
    27872960!--             k index has to be modified near bottom and top, else array
    27882961!--             subscripts will be exceeded.
    2789                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),26,1)
    2790                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),24,1)  )
    2791                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),26,1)
     2962                ibit26 = IBITS(wall_flags_0(k,j,i),26,1)
     2963                ibit25 = IBITS(wall_flags_0(k,j,i),25,1)
     2964                ibit24 = IBITS(wall_flags_0(k,j,i),24,1)
     2965
     2966                k_ppp = k + 3 * ibit26
     2967                k_pp  = k + 2 * ( 1 - ibit24  )
     2968                k_mm  = k - 2 * ibit26
    27922969
    27932970                w_comp    = w(k,j-1,i) + w(k,j,i)
    27942971                flux_t(k) = w_comp  * (                                      &
    2795                      ( 37.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2796                   +     7.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2797                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
    2798                      ) *                                                     &
     2972                          ( 37.0 * ibit26 * adv_mom_5                        &
     2973                       +     7.0 * ibit25 * adv_mom_3                        &
     2974                       +           ibit24 * adv_mom_1                        &
     2975                          ) *                                                &
    27992976                             ( v(k+1,j,i)   + v(k,j,i)    )                  &
    2800               -      (  8.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2801                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2802                      ) *                                                     &
     2977                   -      (  8.0 * ibit26 * adv_mom_5                        &
     2978                       +           ibit25 * adv_mom_3                        &
     2979                          ) *                                                &
    28032980                             ( v(k_pp,j,i)  + v(k-1,j,i)  )                  &
    2804               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2805                      ) *                                                     &
     2981                   +      (        ibit26 * adv_mom_5                        &
     2982                          ) *                                                &
    28062983                             ( v(k_ppp,j,i) + v(k_mm,j,i) )                  &
    28072984                                      )
    28082985
    28092986                diss_t(k) = - ABS( w_comp ) * (                              &
    2810                      ( 10.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2811                   +     3.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2812                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
    2813                      ) *                                                     &
     2987                          ( 10.0 * ibit26 * adv_mom_5                        &
     2988                       +     3.0 * ibit25 * adv_mom_3                        &
     2989                       +           ibit24 * adv_mom_1                        &
     2990                          ) *                                                &
    28142991                             ( v(k+1,j,i)   - v(k,j,i)    )                  &
    2815               -      (  5.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2816                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2817                      ) *                                                     &
     2992                   -      (  5.0 * ibit26 * adv_mom_5                        &
     2993                       +           ibit25 * adv_mom_3                        &
     2994                          ) *                                                &
    28182995                             ( v(k_pp,j,i)  - v(k-1,j,i)  )                  &
    2819               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2820                      ) *                                                     &
     2996                   +      (        ibit26 * adv_mom_5                        &
     2997                          ) *                                                &
    28212998                             ( v(k_ppp,j,i) - v(k_mm,j,i) )                  &
    28222999                                               )
     
    28963073!--             k index has to be modified near bottom and top, else array
    28973074!--             subscripts will be exceeded.
    2898                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),26,1)
    2899                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),24,1)  )
    2900                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),26,1)
     3075                ibit26 = IBITS(wall_flags_0(k,j,i),26,1)
     3076                ibit25 = IBITS(wall_flags_0(k,j,i),25,1)
     3077                ibit24 = IBITS(wall_flags_0(k,j,i),24,1)
     3078
     3079                k_ppp = k + 3 * ibit26
     3080                k_pp  = k + 2 * ( 1 - ibit24  )
     3081                k_mm  = k - 2 * ibit26
    29013082
    29023083                w_comp    = w(k,j-1,i) + w(k,j,i)
    29033084                flux_t(k) = w_comp  * (                                      &
    2904                      ( 37.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2905                   +     7.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2906                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
    2907                      ) *                                                     &
     3085                          ( 37.0 * ibit26 * adv_mom_5                        &
     3086                       +     7.0 * ibit25 * adv_mom_3                        &
     3087                       +           ibit24 * adv_mom_1                        &
     3088                          ) *                                                &
    29083089                             ( v(k+1,j,i)   + v(k,j,i)    )                  &
    2909               -      (  8.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2910                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2911                      ) *                                                     &
     3090                   -      (  8.0 * ibit26 * adv_mom_5                        &
     3091                       +           ibit25 * adv_mom_3                        &
     3092                          ) *                                                &
    29123093                             ( v(k_pp,j,i)  + v(k-1,j,i)  )                  &
    2913               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2914                      ) *                                                     &
     3094                   +      (        ibit26 * adv_mom_5                        &
     3095                          ) *                                                &
    29153096                             ( v(k_ppp,j,i) + v(k_mm,j,i) )                  &
    2916                                  )
     3097                                      )
    29173098
    29183099                diss_t(k) = - ABS( w_comp ) * (                              &
    2919                      ( 10.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2920                   +     3.0 * IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2921                   +           IBITS(wall_flags_0(k,j,i),24,1) * adv_mom_1    &
    2922                      ) *                                                     &
     3100                          ( 10.0 * ibit26 * adv_mom_5                        &
     3101                       +     3.0 * ibit25 * adv_mom_3                        &
     3102                       +           ibit24 * adv_mom_1                        &
     3103                          ) *                                                &
    29233104                             ( v(k+1,j,i)   - v(k,j,i)    )                  &
    2924               -      (  5.0 * IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2925                   +           IBITS(wall_flags_0(k,j,i),25,1) * adv_mom_3    &
    2926                      ) *                                                     &
     3105                   -      (  5.0 * ibit26 * adv_mom_5                        &
     3106                       +           ibit25 * adv_mom_3                        &
     3107                          ) *                                                &
    29273108                             ( v(k_pp,j,i)  - v(k-1,j,i)  )                  &
    2928               +      (        IBITS(wall_flags_0(k,j,i),26,1) * adv_mom_5    &
    2929                      ) *                                                     &
     3109                   +      (        ibit26 * adv_mom_5                        &
     3110                          ) *                                                &
    29303111                             ( v(k_ppp,j,i) - v(k_mm,j,i) )                  &
    2931                                          )
     3112                                               )
    29323113!
    29333114!--             Calculate the divergence of the velocity field. A respective
     
    29993180       IMPLICIT NONE
    30003181
    3001        INTEGER ::  i, j, k, k_mm, k_pp, k_ppp, tn = 0
     3182       INTEGER ::  i, ibit27, ibit28, ibit29, ibit30, ibit31, ibit32, ibit33, &
     3183                   ibit34, ibit35, j, k, k_mm, k_pp, k_ppp, tn = 0
    30023184       REAL    ::  diss_d, div, flux_d, gu, gv, u_comp, v_comp, w_comp
    30033185       REAL, DIMENSION(nzb:nzt)    ::  diss_t, flux_t
     
    30163198          DO  k = nzb+1, nzb_max
    30173199
     3200             ibit29 = IBITS(wall_flags_0(k,j,i),29,1)
     3201             ibit28 = IBITS(wall_flags_0(k,j,i),28,1)
     3202             ibit27 = IBITS(wall_flags_0(k,j,i),27,1)
     3203
    30183204             u_comp                   = u(k+1,j,i) + u(k,j,i) - gu
    30193205             swap_flux_x_local_w(k,j) = u_comp * (                             &
    3020                           ( 37.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    3021                        +     7.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    3022                        +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1 &
    3023                           ) *                                                  &
     3206                                      ( 37.0 * ibit29 * adv_mom_5              &
     3207                                   +     7.0 * ibit28 * adv_mom_3              &
     3208                                   +           ibit27 * adv_mom_1              &
     3209                                      ) *                                      &
    30243210                                     ( w(k,j,i)   + w(k,j,i-1) )               &
    3025                    -      (  8.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    3026                        +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    3027                           ) *                                                  &
     3211                               -      (  8.0 * ibit29 * adv_mom_5              &
     3212                                   +           ibit28 * adv_mom_3              &
     3213                                      ) *                                      &
    30283214                                     ( w(k,j,i+1) + w(k,j,i-2) )               &
    3029                    +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    3030                           ) *                                                  &
     3215                               +      (        ibit29 * adv_mom_5              &
     3216                                      ) *                                      &
    30313217                                     ( w(k,j,i+2) + w(k,j,i-3) )               &
    30323218                                                 )
    30333219
    30343220               swap_diss_x_local_w(k,j) = - ABS( u_comp ) * (                  &
    3035                           ( 10.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    3036                        +     3.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    3037                        +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1 &
    3038                           ) *                                                  &
     3221                                        ( 10.0 * ibit29 * adv_mom_5            &
     3222                                     +     3.0 * ibit28 * adv_mom_3            &
     3223                                     +           ibit27 * adv_mom_1            &
     3224                                        ) *                                    &
    30393225                                     ( w(k,j,i)   - w(k,j,i-1) )               &
    3040                    -      (  5.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    3041                        +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3 &
    3042                           ) *                                                  &
     3226                                 -      (  5.0 * ibit29 * adv_mom_5            &
     3227                                     +           ibit28 * adv_mom_3            &
     3228                                        ) *                                    &
    30433229                                     ( w(k,j,i+1) - w(k,j,i-2) )               &
    3044                    +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5 &
    3045                           ) *                                                  &
     3230                                 +      (        ibit29 * adv_mom_5            &
     3231                                        ) *                                    &
    30463232                                     ( w(k,j,i+2) - w(k,j,i-3) )               &
    30473233                                                            )
     
    30703256          DO  k = nzb+1, nzb_max
    30713257
     3258             ibit32 = IBITS(wall_flags_0(k,j,i),32,1)
     3259             ibit31 = IBITS(wall_flags_0(k,j,i),31,1)
     3260             ibit30 = IBITS(wall_flags_0(k,j,i),30,1)
     3261
    30723262             v_comp                 = v(k+1,j,i) + v(k,j,i) - gv
    30733263             swap_flux_y_local_w(k) = v_comp * (                              &
    3074                          ( 37.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    3075                       +     7.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    3076                       +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1 &
    3077                          ) *                                                  &
     3264                                    ( 37.0 * ibit32 * adv_mom_5              &
     3265                                 +     7.0 * ibit31 * adv_mom_3              &
     3266                                 +           ibit30 * adv_mom_1              &
     3267                                    ) *                                       &
    30783268                                     ( w(k,j,i)   + w(k,j-1,i) )              &
    3079                   -      (  8.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    3080                       +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    3081                          ) *                                                  &
     3269                             -      (  8.0 * ibit32 * adv_mom_5              &
     3270                                 +           ibit31 * adv_mom_3              &
     3271                                    ) *                                       &
    30823272                                     ( w(k,j+1,i) + w(k,j-2,i) )              &
    3083                   +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    3084                          ) *                                                  &
     3273                             +      (        ibit32 * adv_mom_5              &
     3274                                    ) *                                       &
    30853275                                     ( w(k,j+2,i) + w(k,j-3,i) )              &
    30863276                                               )
    30873277
    30883278             swap_diss_y_local_w(k) = - ABS( v_comp ) * (                     &
    3089                          ( 10.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    3090                       +     3.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    3091                       +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1 &
    3092                          ) *                                                  &
     3279                                    ( 10.0 * ibit32 * adv_mom_5              &
     3280                                 +     3.0 * ibit31 * adv_mom_3              &
     3281                                 +           ibit30 * adv_mom_1              &
     3282                                    ) *                                       &
    30933283                                     ( w(k,j,i)   - w(k,j-1,i) )              &
    3094                   -      (  5.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    3095                       +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3 &
    3096                          ) *                                                  &
     3284                             -      (  5.0 * ibit32 * adv_mom_5              &
     3285                                 +           ibit31 * adv_mom_3              &
     3286                                    ) *                                       &
    30973287                                     ( w(k,j+1,i) - w(k,j-2,i) )              &
    3098                   +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5 &
    3099                          ) *                                                  &
     3288                             +      (        ibit32 * adv_mom_5              &
     3289                                    ) *                                       &
    31003290                                     ( w(k,j+2,i) - w(k,j-3,i) )              &
    31013291                                                        )
     
    31323322             DO  k = nzb+1, nzb_max
    31333323
     3324                ibit29 = IBITS(wall_flags_0(k,j,i),29,1)
     3325                ibit28 = IBITS(wall_flags_0(k,j,i),28,1)
     3326                ibit27 = IBITS(wall_flags_0(k,j,i),27,1)
     3327
    31343328                u_comp    = u(k+1,j,i+1) + u(k,j,i+1) - gu
    31353329                flux_r(k) = u_comp * (                                       &
    3136                      ( 37.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    3137                   +     7.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
    3138                   +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1    &
    3139                      ) *                                                     &
     3330                          ( 37.0 * ibit29 * adv_mom_5                        &
     3331                       +     7.0 * ibit28 * adv_mom_3                        &
     3332                       +           ibit27 * adv_mom_1                        &
     3333                          ) *                                                &
    31403334                                 ( w(k,j,i+1) + w(k,j,i)   )                 &
    3141               -      (  8.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    3142                   +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
    3143                      ) *                                                     &
     3335                   -      (  8.0 * ibit29 * adv_mom_5                        &
     3336                       +           ibit28 * adv_mom_3                        &
     3337                          ) *                                                &
    31443338                                 ( w(k,j,i+2) + w(k,j,i-1) )                 &
    3145               +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    3146                      ) *                                                     &
     3339                   +      (        ibit29 * adv_mom_5                        &
     3340                          ) *                                                &
    31473341                                 ( w(k,j,i+3) + w(k,j,i-2) )                 &
    31483342                                     )
    31493343
    31503344                diss_r(k) = - ABS( u_comp ) * (                              &
    3151                      ( 10.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    3152                   +     3.0 * IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
    3153                   +           IBITS(wall_flags_0(k,j,i),27,1) * adv_mom_1    &
    3154                      ) *                                                     &
     3345                          ( 10.0 * ibit29 * adv_mom_5                        &
     3346                       +     3.0 * ibit28 * adv_mom_3                        &
     3347                       +           ibit27 * adv_mom_1                        &
     3348                          ) *                                                &
    31553349                                 ( w(k,j,i+1) - w(k,j,i)  )                  &
    3156               -      (  5.0 * IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    3157                   +           IBITS(wall_flags_0(k,j,i),28,1) * adv_mom_3    &
    3158                      ) *                                                     &
     3350                   -      (  5.0 * ibit29 * adv_mom_5                        &
     3351                       +           ibit28 * adv_mom_3                        &
     3352                          ) *                                                &
    31593353                                 ( w(k,j,i+2) - w(k,j,i-1) )                 &
    3160               +      (        IBITS(wall_flags_0(k,j,i),29,1) * adv_mom_5    &
    3161                      ) *                                                     &
     3354                   +      (        ibit29 * adv_mom_5                        &
     3355                          ) *                                                &
    31623356                                 ( w(k,j,i+3) - w(k,j,i-2) )                 &
    31633357                                              )
    31643358
     3359                ibit32 = IBITS(wall_flags_0(k,j,i),32,1)
     3360                ibit31 = IBITS(wall_flags_0(k,j,i),31,1)
     3361                ibit30 = IBITS(wall_flags_0(k,j,i),30,1)
     3362
    31653363                v_comp    = v(k+1,j+1,i) + v(k,j+1,i) - gv
    31663364                flux_n(k) = v_comp * (                                       &
    3167                      ( 37.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    3168                   +     7.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
    3169                   +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1    &
    3170                      ) *                                                     &
     3365                          ( 37.0 * ibit32 * adv_mom_5                        &
     3366                       +     7.0 * ibit31 * adv_mom_3                        &
     3367                       +           ibit30 * adv_mom_1                        &
     3368                          ) *                                                &
    31713369                                 ( w(k,j+1,i) + w(k,j,i)   )                 &
    3172               -      (  8.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    3173                   +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
    3174                      ) *                                                     &
     3370                   -      (  8.0 * ibit32 * adv_mom_5                        &
     3371                       +           ibit31 * adv_mom_3                        &
     3372                          ) *                                                &
    31753373                                 ( w(k,j+2,i) + w(k,j-1,i) )                 &
    3176               +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    3177                      ) *                                                     &
     3374                   +      (        ibit32 * adv_mom_5                        &
     3375                          ) *                                                &
    31783376                                 ( w(k,j+3,i) + w(k,j-2,i) )                 &
    31793377                                     )
    31803378
    31813379                diss_n(k) = - ABS( v_comp ) * (                              &
    3182                      ( 10.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    3183                   +     3.0 * IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
    3184                   +           IBITS(wall_flags_0(k,j,i),30,1) * adv_mom_1    &
    3185                      ) *                                                     &
     3380                          ( 10.0 * ibit32 * adv_mom_5                        &
     3381                       +     3.0 * ibit31 * adv_mom_3                        &
     3382                       +           ibit30 * adv_mom_1                        &
     3383                          ) *                                                &
    31863384                                 ( w(k,j+1,i) - w(k,j,i)  )                  &
    3187               -      (  5.0 * IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    3188                   +           IBITS(wall_flags_0(k,j,i),31,1) * adv_mom_3    &
    3189                      ) *                                                     &
     3385                   -      (  5.0 * ibit32 * adv_mom_5                        &
     3386                       +           ibit31 * adv_mom_3                        &
     3387                          ) *                                                &
    31903388                                 ( w(k,j+2,i) - w(k,j-1,i) )                 &
    3191               +      (        IBITS(wall_flags_0(k,j,i),32,1) * adv_mom_5    &
    3192                      ) *                                                     &
     3389                   +      (        ibit32 * adv_mom_5                        &
     3390                          ) *                                                &
    31933391                                 ( w(k,j+3,i) - w(k,j-2,i) )                 &
    31943392                                              )
     
    31963394!--             k index has to be modified near bottom and top, else array
    31973395!--             subscripts will be exceeded.
    3198                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),35,1)
    3199                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),33,1)  )
    3200                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),35,1)
     3396                ibit35 = IBITS(wall_flags_0(k,j,i),35,1)
     3397                ibit34 = IBITS(wall_flags_0(k,j,i),34,1)
     3398                ibit33 = IBITS(wall_flags_0(k,j,i),33,1)
     3399
     3400                k_ppp = k + 3 * ibit35
     3401                k_pp  = k + 2 * ( 1 - ibit33  )
     3402                k_mm  = k - 2 * ibit35
    32013403
    32023404                w_comp    = w(k+1,j,i) + w(k,j,i)
    32033405                flux_t(k) = w_comp  * (                                      &
    3204                      ( 37.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3205                   +     7.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3206                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
    3207                      ) *                                                     &
     3406                          ( 37.0 * ibit35 * adv_mom_5                        &
     3407                       +     7.0 * ibit34 * adv_mom_3                        &
     3408                       +           ibit33 * adv_mom_1                        &
     3409                          ) *                                                &
    32083410                             ( w(k+1,j,i)  + w(k,j,i)     )                  &
    3209               -      (  8.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3210                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3211                      ) *                                                     &
     3411                   -      (  8.0 * ibit35 * adv_mom_5                        &
     3412                       +           ibit34 * adv_mom_3                        &
     3413                          ) *                                                &
    32123414                             ( w(k_pp,j,i)  + w(k-1,j,i)  )                  &
    3213               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3214                      ) *                                                     &
     3415                   +      (        ibit35 * adv_mom_5                        &
     3416                          ) *                                                &
    32153417                             ( w(k_ppp,j,i) + w(k_mm,j,i) )                  &
    32163418                                       )
    32173419
    32183420                diss_t(k) = - ABS( w_comp ) * (                              &
    3219                      ( 10.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3220                   +     3.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3221                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
    3222                      ) *                                                     &
     3421                          ( 10.0 * ibit35 * adv_mom_5                        &
     3422                       +     3.0 * ibit34 * adv_mom_3                        &
     3423                       +           ibit33 * adv_mom_1                        &
     3424                          ) *                                                &
    32233425                             ( w(k+1,j,i)   - w(k,j,i)    )                  &
    3224               -      (  5.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3225                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3226                      ) *                                                     &
     3426                   -      (  5.0 * ibit35 * adv_mom_5                        &
     3427                       +           ibit34 * adv_mom_3                        &
     3428                          ) *                                                &
    32273429                             ( w(k_pp,j,i)  - w(k-1,j,i)  )                  &
    3228               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3229                      ) *                                                     &
     3430                   +      (        ibit35 * adv_mom_5                        &
     3431                          ) *                                                &
    32303432                             ( w(k_ppp,j,i) - w(k_mm,j,i) )                  &
    32313433                                               )
     
    32913493!--             k index has to be modified near bottom and top, else array
    32923494!--             subscripts will be exceeded.
    3293                 k_ppp = k + 3 * IBITS(wall_flags_0(k,j,i),35,1)
    3294                 k_pp  = k + 2 * ( 1 - IBITS(wall_flags_0(k,j,i),33,1)  )
    3295                 k_mm  = k - 2 * IBITS(wall_flags_0(k,j,i),35,1)
     3495                ibit35 = IBITS(wall_flags_0(k,j,i),35,1)
     3496                ibit34 = IBITS(wall_flags_0(k,j,i),34,1)
     3497                ibit33 = IBITS(wall_flags_0(k,j,i),33,1)
     3498
     3499                k_ppp = k + 3 * ibit35
     3500                k_pp  = k + 2 * ( 1 - ibit33  )
     3501                k_mm  = k - 2 * ibit35
    32963502
    32973503                w_comp    = w(k+1,j,i) + w(k,j,i)
    32983504                flux_t(k) = w_comp  * (                                      &
    3299                      ( 37.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3300                   +     7.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3301                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
    3302                      ) *                                                     &
     3505                          ( 37.0 * ibit35 * adv_mom_5                        &
     3506                       +     7.0 * ibit34 * adv_mom_3                        &
     3507                       +           ibit33 * adv_mom_1                        &
     3508                          ) *                                                &
    33033509                             ( w(k+1,j,i)  + w(k,j,i)     )                  &
    3304               -      (  8.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3305                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3306                      ) *                                                     &
     3510                   -      (  8.0 * ibit35 * adv_mom_5                        &
     3511                       +           ibit34 * adv_mom_3                        &
     3512                          ) *                                                &
    33073513                             ( w(k_pp,j,i)  + w(k-1,j,i)  )                  &
    3308               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3309                      ) *                                                     &
     3514                   +      (        ibit35 * adv_mom_5                        &
     3515                          ) *                                                &
    33103516                             ( w(k_ppp,j,i) + w(k_mm,j,i) )                  &
    3311                                       )
     3517                                       )
    33123518
    33133519                diss_t(k) = - ABS( w_comp ) * (                              &
    3314                      ( 10.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3315                   +     3.0 * IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3316                   +           IBITS(wall_flags_0(k,j,i),33,1) * adv_mom_1    &
    3317                      ) *                                                     &
     3520                          ( 10.0 * ibit35 * adv_mom_5                        &
     3521                       +     3.0 * ibit34 * adv_mom_3                        &
     3522                       +           ibit33 * adv_mom_1                        &
     3523                          ) *                                                &
    33183524                             ( w(k+1,j,i)   - w(k,j,i)    )                  &
    3319               -      (  5.0 * IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3320                   +           IBITS(wall_flags_0(k,j,i),34,1) * adv_mom_3    &
    3321                      ) *                                                     &
     3525                   -      (  5.0 * ibit35 * adv_mom_5                        &
     3526                       +           ibit34 * adv_mom_3                        &
     3527                          ) *                                                &
    33223528                             ( w(k_pp,j,i)  - w(k-1,j,i)  )                  &
    3323               +      (        IBITS(wall_flags_0(k,j,i),35,1) * adv_mom_5    &
    3324                      ) *                                                     &
     3529                   +      (        ibit35 * adv_mom_5                        &
     3530                          ) *                                                &
    33253531                             ( w(k_ppp,j,i) - w(k_mm,j,i) )                  &
    3326                                               )
     3532                                               )
    33273533!
    33283534!--             Calculate the divergence of the velocity field. A respective
Note: See TracChangeset for help on using the changeset viewer.