Ignore:
Timestamp:
Dec 10, 2019 3:46:36 PM (4 years ago)
Author:
motisi
Message:

Renamed wall_flags_0 to wall_flags_static_0

File:
1 edited

Legend:

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

    r4182 r4329  
    2525! -----------------
    2626! $Id$
     27! Renamed wall_flags_0 to wall_flags_static_0
     28!
     29! 4182 2019-08-22 15:20:23Z scharf
    2730! Corrected "Former revisions" section
    2831!
     
    137140               nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt,    &
    138141               topo_top_ind,                                                  &
    139                wall_flags_0
     142               wall_flags_static_0
    140143
    141144    USE kinds
     
    923926                local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i),                &
    924927                                         REAL( fill_value, KIND = wp ),        &
    925                                          BTEST( wall_flags_0(k,j,i), flag_nr ) )
     928                                         BTEST( wall_flags_static_0(k,j,i), flag_nr ) )
    926929             ENDDO
    927930          ENDDO
     
    10191022                                   to_be_resorted(k,j,i),                &
    10201023                                   REAL( fill_value, KIND = wp ),        &
    1021                                    BTEST( wall_flags_0(k,j,i), flag_nr ) )
     1024                                   BTEST( wall_flags_static_0(k,j,i), flag_nr ) )
    10221025             ENDDO
    10231026          ENDDO
     
    13081311                DO  k = nzb, nzt
    13091312                   e(k,j,i)     = MERGE( e(k,j,i), 0.0_wp,                     &
    1310                                          BTEST( wall_flags_0(k,j,i), 0 ) )
     1313                                         BTEST( wall_flags_static_0(k,j,i), 0 ) )
    13111314                ENDDO
    13121315             ENDDO
     
    13181321                   DO  k = nzb, nzt
    13191322                      diss(k,j,i)    = MERGE( diss(k,j,i), 0.0_wp,             &
    1320                                               BTEST( wall_flags_0(k,j,i), 0 ) )
     1323                                              BTEST( wall_flags_static_0(k,j,i), 0 ) )
    13211324                   ENDDO
    13221325                ENDDO
     
    13641367    USE indices,                                                               &
    13651368        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb,  &
    1366                nzt, wall_flags_0
     1369               nzt, wall_flags_static_0
    13671370
    13681371    USE kinds
     
    14381441!
    14391442!--                Check if current gridpoint belongs to the atmosphere
    1440                    IF ( BTEST( wall_flags_0(k,j,i), 0 ) )  THEN
     1443                   IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )  THEN
    14411444!
    14421445!--                   Check for neighbouring grid-points.
    14431446!--                   Vertical distance, down
    1444                       IF ( .NOT. BTEST( wall_flags_0(k-1,j,i), 0 ) )             &
     1447                      IF ( .NOT. BTEST( wall_flags_static_0(k-1,j,i), 0 ) )             &
    14451448                         l_wall(k,j,i) = MIN( l_grid(k), zu(k) - zw(k-1) )
    14461449!
    14471450!--                   Vertical distance, up
    1448                       IF ( .NOT. BTEST( wall_flags_0(k+1,j,i), 0 ) )             &
     1451                      IF ( .NOT. BTEST( wall_flags_static_0(k+1,j,i), 0 ) )             &
    14491452                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), zw(k) - zu(k) )
    14501453!
    14511454!--                   y-distance
    1452                       IF ( .NOT. BTEST( wall_flags_0(k,j-1,i), 0 )  .OR.         &
    1453                            .NOT. BTEST( wall_flags_0(k,j+1,i), 0 ) )             &
     1455                      IF ( .NOT. BTEST( wall_flags_static_0(k,j-1,i), 0 )  .OR.         &
     1456                           .NOT. BTEST( wall_flags_static_0(k,j+1,i), 0 ) )             &
    14541457                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), 0.5_wp * dy )
    14551458!
    14561459!--                   x-distance
    1457                       IF ( .NOT. BTEST( wall_flags_0(k,j,i-1), 0 )  .OR.         &
    1458                            .NOT. BTEST( wall_flags_0(k,j,i+1), 0 ) )             &
     1460                      IF ( .NOT. BTEST( wall_flags_static_0(k,j,i-1), 0 )  .OR.         &
     1461                           .NOT. BTEST( wall_flags_static_0(k,j,i+1), 0 ) )             &
    14591462                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k), 0.5_wp * dx )
    14601463!
    14611464!--                   yz-distance (vertical edges, down)
    1462                       IF ( .NOT. BTEST( wall_flags_0(k-1,j-1,i), 0 )  .OR.       &
    1463                            .NOT. BTEST( wall_flags_0(k-1,j+1,i), 0 )  )          &
     1465                      IF ( .NOT. BTEST( wall_flags_static_0(k-1,j-1,i), 0 )  .OR.       &
     1466                           .NOT. BTEST( wall_flags_static_0(k-1,j+1,i), 0 )  )          &
    14641467                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),          &
    14651468                                              SQRT( 0.25_wp * dy**2 +            &
     
    14671470!
    14681471!--                   yz-distance (vertical edges, up)
    1469                       IF ( .NOT. BTEST( wall_flags_0(k+1,j-1,i), 0 )  .OR.       &
    1470                            .NOT. BTEST( wall_flags_0(k+1,j+1,i), 0 )  )          &
     1472                      IF ( .NOT. BTEST( wall_flags_static_0(k+1,j-1,i), 0 )  .OR.       &
     1473                           .NOT. BTEST( wall_flags_static_0(k+1,j+1,i), 0 )  )          &
    14711474                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),          &
    14721475                                              SQRT( 0.25_wp * dy**2 +            &
     
    14741477!
    14751478!--                   xz-distance (vertical edges, down)
    1476                       IF ( .NOT. BTEST( wall_flags_0(k-1,j,i-1), 0 )  .OR.       &
    1477                            .NOT. BTEST( wall_flags_0(k-1,j,i+1), 0 )  )          &
     1479                      IF ( .NOT. BTEST( wall_flags_static_0(k-1,j,i-1), 0 )  .OR.       &
     1480                           .NOT. BTEST( wall_flags_static_0(k-1,j,i+1), 0 )  )          &
    14781481                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),          &
    14791482                                              SQRT( 0.25_wp * dx**2 +            &
     
    14811484!
    14821485!--                   xz-distance (vertical edges, up)
    1483                       IF ( .NOT. BTEST( wall_flags_0(k+1,j,i-1), 0 )  .OR.       &
    1484                            .NOT. BTEST( wall_flags_0(k+1,j,i+1), 0 )  )          &
     1486                      IF ( .NOT. BTEST( wall_flags_static_0(k+1,j,i-1), 0 )  .OR.       &
     1487                           .NOT. BTEST( wall_flags_static_0(k+1,j,i+1), 0 )  )          &
    14851488                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),          &
    14861489                                              SQRT( 0.25_wp * dx**2 +            &
     
    14881491!
    14891492!--                   xy-distance (horizontal edges)
    1490                       IF ( .NOT. BTEST( wall_flags_0(k,j-1,i-1), 0 )  .OR.        &
    1491                            .NOT. BTEST( wall_flags_0(k,j+1,i-1), 0 )  .OR.        &
    1492                            .NOT. BTEST( wall_flags_0(k,j-1,i+1), 0 )  .OR.        &
    1493                            .NOT. BTEST( wall_flags_0(k,j+1,i+1), 0 ) )            &
     1493                      IF ( .NOT. BTEST( wall_flags_static_0(k,j-1,i-1), 0 )  .OR.        &
     1494                           .NOT. BTEST( wall_flags_static_0(k,j+1,i-1), 0 )  .OR.        &
     1495                           .NOT. BTEST( wall_flags_static_0(k,j-1,i+1), 0 )  .OR.        &
     1496                           .NOT. BTEST( wall_flags_static_0(k,j+1,i+1), 0 ) )            &
    14941497                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),           &
    14951498                                              SQRT( 0.25_wp * ( dx**2 + dy**2 ) ) )
    14961499!
    14971500!--                   xyz distance (vertical and horizontal edges, down)
    1498                       IF ( .NOT. BTEST( wall_flags_0(k-1,j-1,i-1), 0 )  .OR.      &
    1499                            .NOT. BTEST( wall_flags_0(k-1,j+1,i-1), 0 )  .OR.      &
    1500                            .NOT. BTEST( wall_flags_0(k-1,j-1,i+1), 0 )  .OR.      &
    1501                            .NOT. BTEST( wall_flags_0(k-1,j+1,i+1), 0 ) )          &
     1501                      IF ( .NOT. BTEST( wall_flags_static_0(k-1,j-1,i-1), 0 )  .OR.      &
     1502                           .NOT. BTEST( wall_flags_static_0(k-1,j+1,i-1), 0 )  .OR.      &
     1503                           .NOT. BTEST( wall_flags_static_0(k-1,j-1,i+1), 0 )  .OR.      &
     1504                           .NOT. BTEST( wall_flags_static_0(k-1,j+1,i+1), 0 ) )          &
    15021505                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),           &
    15031506                                              SQRT( 0.25_wp * ( dx**2 + dy**2 )   &
     
    15051508!
    15061509!--                   xyz distance (vertical and horizontal edges, up)
    1507                       IF ( .NOT. BTEST( wall_flags_0(k+1,j-1,i-1), 0 )  .OR.      &
    1508                            .NOT. BTEST( wall_flags_0(k+1,j+1,i-1), 0 )  .OR.      &
    1509                            .NOT. BTEST( wall_flags_0(k+1,j-1,i+1), 0 )  .OR.      &
    1510                            .NOT. BTEST( wall_flags_0(k+1,j+1,i+1), 0 ) )          &
     1510                      IF ( .NOT. BTEST( wall_flags_static_0(k+1,j-1,i-1), 0 )  .OR.      &
     1511                           .NOT. BTEST( wall_flags_static_0(k+1,j+1,i-1), 0 )  .OR.      &
     1512                           .NOT. BTEST( wall_flags_static_0(k+1,j-1,i+1), 0 )  .OR.      &
     1513                           .NOT. BTEST( wall_flags_static_0(k+1,j+1,i+1), 0 ) )          &
    15111514                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),           &
    15121515                                              SQRT( 0.25_wp * ( dx**2 + dy**2 )   &
     
    15501553          DO  j = nysg, nyng
    15511554             DO  k = nzb+1, nzt-1
    1552                 IF ( .NOT. BTEST( wall_flags_0(k,j,i), 0 ) .AND.  &
     1555                IF ( .NOT. BTEST( wall_flags_static_0(k,j,i), 0 ) .AND.  &
    15531556                     k > k_max_topo )  &
    15541557                   k_max_topo = k
     
    16161619!
    16171620!--                Start search only if (i/j/k) belongs to atmosphere
    1618                    IF ( BTEST( wall_flags_0(k,j,i), 0 )  )  THEN
     1621                   IF ( BTEST( wall_flags_static_0(k,j,i), 0 )  )  THEN
    16191622!
    16201623!--                   Reset topography within vicinity
     
    18361839! ------------
    18371840!> Copy a subarray of size (kb:kt,js:jn,il:ir) centered around grid point
    1838 !> (kp,jp,ip) containing the first bit of wall_flags_0 into the array
     1841!> (kp,jp,ip) containing the first bit of wall_flags_static_0 into the array
    18391842!> 'vicinity'. Only copy first bit as this indicates the presence of topography.
    18401843!------------------------------------------------------------------------------!
     
    18611864             DO  k = kb, kt
    18621865                vicinity(k,j,i) = MERGE( 0, 1,               &
    1863                        BTEST( wall_flags_0(kp+k,jp+j,ip+i), 0 ) )
     1866                       BTEST( wall_flags_static_0(kp+k,jp+j,ip+i), 0 ) )
    18641867             ENDDO
    18651868          ENDDO
     
    22602263!--    value is reduced by 90%.
    22612264       !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
    2262        !$ACC PRESENT(e, tend, te_m, wall_flags_0) &
     2265       !$ACC PRESENT(e, tend, te_m, wall_flags_static_0) &
    22632266       !$ACC PRESENT(tsc(3:3)) &
    22642267       !$ACC PRESENT(e_p)
     
    22702273                                        )                                      &
    22712274                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    2272                                              BTEST( wall_flags_0(k,j,i), 0 )   &
     2275                                             BTEST( wall_flags_static_0(k,j,i), 0 )   &
    22732276                                          )
    22742277                IF ( e_p(k,j,i) < 0.0_wp )  e_p(k,j,i) = 0.1_wp * e(k,j,i)
     
    23772380                                        )                                      &
    23782381                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    2379                                              BTEST( wall_flags_0(k,j,i), 0 )   &
     2382                                             BTEST( wall_flags_static_0(k,j,i), 0 )   &
    23802383                                          )
    23812384                IF ( diss_p(k,j,i) < 0.0_wp )                                  &
     
    24922495                                  )                                            &
    24932496                                 * MERGE( 1.0_wp, 0.0_wp,                      &
    2494                                           BTEST( wall_flags_0(k,j,i), 0 )      &
     2497                                          BTEST( wall_flags_static_0(k,j,i), 0 )      &
    24952498                                        )
    24962499          IF ( e_p(k,j,i) <= 0.0_wp )  e_p(k,j,i) = 0.1_wp * e(k,j,i)
     
    25592562                                        )                                      &
    25602563                                        * MERGE( 1.0_wp, 0.0_wp,               &
    2561                                                 BTEST( wall_flags_0(k,j,i), 0 )&
     2564                                                BTEST( wall_flags_static_0(k,j,i), 0 )&
    25622565                                               )
    25632566       ENDDO
     
    26542657    !$ACC PRIVATE(surf_s, surf_e) &
    26552658    !$ACC PRIVATE(dudx(:), dudy(:), dudz(:), dvdx(:), dvdy(:), dvdz(:), dwdx(:), dwdy(:), dwdz(:)) &
    2656     !$ACC PRESENT(e, u, v, w, diss, dd2zu, ddzw, km, wall_flags_0) &
     2659    !$ACC PRESENT(e, u, v, w, diss, dd2zu, ddzw, km, wall_flags_static_0) &
    26572660    !$ACC PRESENT(tend) &
    26582661    !$ACC PRESENT(surf_def_h(0:1), surf_def_v(0:3)) &
     
    27142717!--                -1.0 for right-facing wall, 1.0 for left-facing wall
    27152718                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    2716                                      BTEST( wall_flags_0(k,j-1,i), flag_nr ) )
     2719                                     BTEST( wall_flags_static_0(k,j-1,i), flag_nr ) )
    27172720                   dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
    27182721                   dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
     
    27332736!--                -1.0 for right-facing wall, 1.0 for left-facing wall
    27342737                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    2735                                      BTEST( wall_flags_0(k,j-1,i), flag_nr ) )
     2738                                     BTEST( wall_flags_static_0(k,j-1,i), flag_nr ) )
    27362739                   dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
    27372740                   dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
     
    27522755!--                -1.0 for right-facing wall, 1.0 for left-facing wall
    27532756                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    2754                                      BTEST( wall_flags_0(k,j-1,i), flag_nr ) )
     2757                                     BTEST( wall_flags_static_0(k,j-1,i), flag_nr ) )
    27552758                   dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
    27562759                   dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
     
    27732776!--                -1.0 for right-facing wall, 1.0 for left-facing wall
    27742777                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    2775                                      BTEST( wall_flags_0(k,j,i-1), flag_nr ) )
     2778                                     BTEST( wall_flags_static_0(k,j,i-1), flag_nr ) )
    27762779                   dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
    27772780                   dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
     
    27922795!--                -1.0 for right-facing wall, 1.0 for left-facing wall
    27932796                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    2794                                      BTEST( wall_flags_0(k,j,i-1), flag_nr ) )
     2797                                     BTEST( wall_flags_static_0(k,j,i-1), flag_nr ) )
    27952798                   dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
    27962799                   dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
     
    28112814!--                -1.0 for right-facing wall, 1.0 for left-facing wall
    28122815                   sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    2813                                      BTEST( wall_flags_0(k,j,i-1), flag_nr ) )
     2816                                     BTEST( wall_flags_static_0(k,j,i-1), flag_nr ) )
    28142817                   dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
    28152818                   dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
     
    28862889             IF ( def < 0.0_wp )  def = 0.0_wp
    28872890
    2888              flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),flag_nr) )
     2891             flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),flag_nr) )
    28892892
    28902893             IF ( .NOT. diss_production )  THEN
     
    29502953!--                   Compute tendency for TKE-production from shear
    29512954                      DO  k = nzb+1, nzt
    2952                          flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     2955                         flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    29532956                         tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    29542957                                       MERGE( rho_reference, prho(k,j,i),       &
     
    29602963!--                   RANS mode: Compute tendency for dissipation-rate-production from shear
    29612964                      DO  k = nzb+1, nzt
    2962                          flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     2965                         flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    29632966                         tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    29642967                                       MERGE( rho_reference, prho(k,j,i),       &
     
    29782981             !$ACC PRIVATE(surf_s, surf_e) &
    29792982             !$ACC PRIVATE(tmp_flux(nzb+1:nzt)) &
    2980              !$ACC PRESENT(e, diss, kh, pt, dd2zu, drho_air_zw, wall_flags_0) &
     2983             !$ACC PRESENT(e, diss, kh, pt, dd2zu, drho_air_zw, wall_flags_static_0) &
    29812984             !$ACC PRESENT(tend) &
    29822985             !$ACC PRESENT(surf_def_h(0:2)) &
     
    30383041                     !$ACC LOOP PRIVATE(k, flag)
    30393042                      DO  k = nzb+1, nzt
    3040                          flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3043                         flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    30413044                         tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    30423045                                       MERGE( pt_reference, pt(k,j,i),          &
     
    30483051!--                   RANS mode: Compute tendency for dissipation-rate-production from shear
    30493052                      DO  k = nzb+1, nzt
    3050                          flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3053                         flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    30513054                         tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    30523055                                       MERGE( pt_reference, pt(k,j,i),          &
     
    32533256!--                Compute tendency for TKE-production from shear
    32543257                   DO  k = nzb+1, nzt
    3255                       flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3258                      flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    32563259                      tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    32573260                                    MERGE( vpt_reference, vpt(k,j,i),          &
     
    32633266!--                RANS mode: Compute tendency for dissipation-rate-production from shear
    32643267                   DO  k = nzb+1, nzt
    3265                       flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3268                      flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    32663269                      tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g /   &
    32673270                                    MERGE( vpt_reference, vpt(k,j,i),          &
     
    33983401!--          -1.0 for right-facing wall, 1.0 for left-facing wall
    33993402             sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    3400                                BTEST( wall_flags_0(k,j-1,i), flag_nr ) )
     3403                               BTEST( wall_flags_static_0(k,j-1,i), flag_nr ) )
    34013404             dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
    34023405             dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
     
    34163419!--          -1.0 for right-facing wall, 1.0 for left-facing wall
    34173420             sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    3418                                BTEST( wall_flags_0(k,j-1,i), flag_nr ) )
     3421                               BTEST( wall_flags_static_0(k,j-1,i), flag_nr ) )
    34193422             dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
    34203423             dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
     
    34343437!--          -1.0 for right-facing wall, 1.0 for left-facing wall
    34353438             sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    3436                                BTEST( wall_flags_0(k,j-1,i), flag_nr ) )
     3439                               BTEST( wall_flags_static_0(k,j-1,i), flag_nr ) )
    34373440             dudy(k) = sign_dir * usvs / ( km_neutral + 1E-10_wp )
    34383441             dwdy(k) = sign_dir * wsvs / ( km_neutral + 1E-10_wp )
     
    34543457!--          -1.0 for right-facing wall, 1.0 for left-facing wall
    34553458             sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    3456                                BTEST( wall_flags_0(k,j,i-1), flag_nr ) )
     3459                               BTEST( wall_flags_static_0(k,j,i-1), flag_nr ) )
    34573460             dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
    34583461             dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
     
    34723475!--          -1.0 for right-facing wall, 1.0 for left-facing wall
    34733476             sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    3474                                BTEST( wall_flags_0(k,j,i-1), flag_nr ) )
     3477                               BTEST( wall_flags_static_0(k,j,i-1), flag_nr ) )
    34753478             dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
    34763479             dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
     
    34903493!--          -1.0 for right-facing wall, 1.0 for left-facing wall
    34913494             sign_dir = MERGE( 1.0_wp, -1.0_wp,                          &
    3492                                BTEST( wall_flags_0(k,j,i-1), flag_nr ) )
     3495                               BTEST( wall_flags_static_0(k,j,i-1), flag_nr ) )
    34933496             dvdx(k) = sign_dir * vsus / ( km_neutral + 1E-10_wp )
    34943497             dwdx(k) = sign_dir * wsus / ( km_neutral + 1E-10_wp )
     
    35583561       IF ( def < 0.0_wp )  def = 0.0_wp
    35593562
    3560        flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),flag_nr) )
     3563       flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),flag_nr) )
    35613564
    35623565       IF ( .NOT. diss_production )  THEN
     
    36153618!--             Compute tendency for TKE-production from shear
    36163619                DO  k = nzb+1, nzt
    3617                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3620                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    36183621                   tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    36193622                                 MERGE( rho_reference, prho(k,j,i),       &
     
    36253628!--             RANS mode: Compute tendency for dissipation-rate-production from shear
    36263629                DO  k = nzb+1, nzt
    3627                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3630                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    36283631                   tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    36293632                                 MERGE( rho_reference, prho(k,j,i),       &
     
    36843687!--             Compute tendency for TKE-production from shear
    36853688                DO  k = nzb+1, nzt
    3686                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3689                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    36873690                   tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    36883691                                 MERGE( pt_reference, pt(k,j,i),          &
     
    36943697!--             RANS mode: Compute tendency for dissipation-rate-production from shear
    36953698                DO  k = nzb+1, nzt
    3696                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3699                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    36973700                   tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    36983701                                 MERGE( pt_reference, pt(k,j,i),          &
     
    38933896!--          Compute tendency for TKE-production from shear
    38943897             DO  k = nzb+1, nzt
    3895                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3898                flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    38963899                tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g / &
    38973900                              MERGE( vpt_reference, vpt(k,j,i),          &
     
    39033906!--          RANS mode: Compute tendency for dissipation-rate-production from shear
    39043907             DO  k = nzb+1, nzt
    3905                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_0(k,j,i),0) )
     3908                flag = MERGE( 1.0_wp, 0.0_wp, BTEST(wall_flags_static_0(k,j,i),0) )
    39063909                tend(k,j,i) = tend(k,j,i) + flag * tmp_flux(k) * ( g /   &
    39073910                              MERGE( vpt_reference, vpt(k,j,i),          &
     
    39693972       !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j) &
    39703973       !$ACC PRIVATE(l, l_stable, dvar_dz) &
    3971        !$ACC PRESENT(diss, e, var, wall_flags_0) &
     3974       !$ACC PRESENT(diss, e, var, wall_flags_static_0) &
    39723975       !$ACC PRESENT(dd2zu, l_grid, l_wall)
    39733976       DO  i = nxl, nxr
     
    39994002                diss(k,j,i) = ( 0.19_wp + 0.74_wp * l / l_wall(k,j,i) )                &
    40004003                              * e(k,j,i) * SQRT( e(k,j,i) ) / l                        &
    4001                               * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4004                              * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    40024005
    40034006             ENDDO
     
    40104013      !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j) &
    40114014      !$ACC PRIVATE(l_stable, duv2_dz2, rif, dvar_dz) &
    4012       !$ACC PRESENT(diss, e, u, v, var, wall_flags_0) &
     4015      !$ACC PRESENT(diss, e, u, v, var, wall_flags_static_0) &
    40134016      !$ACC PRESENT(dd2zu, l_black, l_wall)
    40144017       DO  i = nxl, nxr
     
    40574060
    40584061                diss(k,j,i) = c_0**3 * e(k,j,i) * SQRT( e(k,j,i) ) / l_stable(k)     &
    4059                             * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4062                            * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    40604063
    40614064             ENDDO
     
    40694072
    40704073    !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
    4071     !$ACC PRESENT(diss, e, km, tend, wall_flags_0) &
     4074    !$ACC PRESENT(diss, e, km, tend, wall_flags_static_0) &
    40724075    !$ACC PRESENT(ddzu, ddzw, rho_air_zw, drho_air)
    40734076    DO  i = nxl, nxr
     
    40924095                                         ) * dsig_e                                   &
    40934096                                           * MERGE( 1.0_wp, 0.0_wp,                   &
    4094                                                     BTEST( wall_flags_0(k,j,i), 0 ) ) &
     4097                                                    BTEST( wall_flags_static_0(k,j,i), 0 ) ) &
    40954098                          - diss(k,j,i)
    40964099
     
    41984201          diss(k,j,i) = ( 0.19_wp + 0.74_wp * l / l_wall(k,j,i) )              &
    41994202                        * e(k,j,i) * SQRT( e(k,j,i) ) / l                      &
    4200                         * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4203                        * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    42014204       ENDDO
    42024205
     
    42424245       DO  k = nzb+1, nzt
    42434246          diss(k,j,i) = c_0**3 * e(k,j,i) * SQRT( e(k,j,i) ) / l_stable(k)     &
    4244                       * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4247                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    42454248       ENDDO
    42464249
     
    42714274                                   ) * dsig_e                                  &
    42724275                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    4273                                               BTEST( wall_flags_0(k,j,i), 0 ) )&
     4276                                              BTEST( wall_flags_static_0(k,j,i), 0 ) )&
    42744277                                 - diss(k,j,i)
    42754278
     
    43344337!
    43354338!--          Predetermine flag to mask topography
    4336              flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4339             flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    43374340
    43384341             tend(k,j,i) = tend(k,j,i) +                                       &
     
    43904393!
    43914394!--    Predetermine flag to mask topography
    4392        flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4395       flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    43934396
    43944397!
     
    44514454             DO  k = nzb+1, nzt
    44524455                e(k,j,i) = MAX( e(k,j,i), e_min ) *                            &
    4453                         MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4456                        MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    44544457             ENDDO
    44554458          ENDDO
     
    46624665       !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j) &
    46634666       !$ACC PRIVATE(dvar_dz, l, l_stable, l_v) &
    4664        !$ACC PRESENT(wall_flags_0, var, dd2zu, e, l_wall, l_grid, rmask) &
     4667       !$ACC PRESENT(wall_flags_static_0, var, dd2zu, e, l_wall, l_grid, rmask) &
    46654668       !$ACC PRESENT(kh, km, sums_l_l)
    46664669       DO  i = nxlg, nxrg
     
    46944697
    46954698                l_v(k) = MIN( l_wall(k,j,i), l_stable(k) )                      &
    4696                        * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4699                       * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    46974700                l = l_v(k)
    46984701!
     
    47194722       !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j) &
    47204723       !$ACC PRIVATE(dvar_dz, duv2_dz2, l_stable, l_v, rif) &
    4721        !$ACC PRESENT(wall_flags_0, var, dd2zu, e, u, v, l_wall, l_black, rmask) &
     4724       !$ACC PRESENT(wall_flags_static_0, var, dd2zu, e, u, v, l_wall, l_black, rmask) &
    47224725       !$ACC PRESENT(kh, km, sums_l_l)
    47234726       DO  i = nxlg, nxrg
     
    47674770             !DIR$ IVDEP
    47684771             DO  k = nzb+1, nzt
    4769                 l_v(k)    = l_stable(k) * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4772                l_v(k)    = l_stable(k) * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    47704773                km(k,j,i) = c_0 * l_v(k) * SQRT( e(k,j,i) )
    47714774                kh(k,j,i) = km(k,j,i) / prandtl_number
     
    47884791       !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j) &
    47894792       !$ACC PRIVATE(l_v) &
    4790        !$ACC PRESENT(wall_flags_0, e, diss, rmask) &
     4793       !$ACC PRESENT(wall_flags_static_0, e, diss, rmask) &
    47914794       !$ACC PRESENT(kh, km, sums_l_l)
    47924795       DO  i = nxlg, nxrg
     
    47994802
    48004803                l_v(k) = c_0**3 * e(k,j,i) * SQRT(e(k,j,i)) / ( diss(k,j,i) + 1.0E-30_wp ) &
    4801                        * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4804                       * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    48024805
    48034806                km(k,j,i) = c_0 * SQRT( e(k,j,i) ) * l_v(k)
     
    49364939          DO  k = nzb+1, nzt
    49374940
    4938              flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_0(k,j,i), 0 ) )
     4941             flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
    49394942
    49404943!
Note: See TracChangeset for help on using the changeset viewer.