Ignore:
Timestamp:
Dec 18, 2019 11:55:56 AM (5 years ago)
Author:
motisi
Message:

Introduction of wall_flags_total_0, which currently sets bits based on static topography information used in wall_flags_static_0

File:
1 edited

Legend:

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

    r4329 r4346  
    2525! -----------------
    2626! $Id$
     27! Introduction of wall_flags_total_0, which currently sets bits based on static
     28! topography information used in wall_flags_static_0
     29!
     30! 4329 2019-12-10 15:46:36Z motisi
    2731! Renamed wall_flags_0 to wall_flags_static_0
    2832!
     
    7579       
    7680       USE indices,                                                            &
    77            ONLY:  nxlu, nxr, nyn, nys, nzb, nzt, wall_flags_static_0
     81           ONLY:  nxlu, nxr, nyn, nys, nzb, nzt, wall_flags_total_0
    7882     
    7983       USE kinds
     
    108112       !$ACC PRIVATE(surf_e, surf_s, flag, kmym, kmyp, kmzm, kmzp) &
    109113       !$ACC PRIVATE(mask_bottom, mask_north, mask_south, mask_top) &
    110        !$ACC PRESENT(wall_flags_static_0, km) &
     114       !$ACC PRESENT(wall_flags_total_0, km) &
    111115       !$ACC PRESENT(u, v, w) &
    112116       !$ACC PRESENT(ddzu, ddzw, drho_air, rho_air_zw) &
     
    124128!--             It is sufficient to masked only north- and south-facing surfaces, which
    125129!--             need special treatment for the u-component.
    126                 flag       = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i),   1 ) )
    127                 mask_south = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j-1,i), 1 ) )
    128                 mask_north = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j+1,i), 1 ) )
     130                flag       = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i),   1 ) )
     131                mask_south = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j-1,i), 1 ) )
     132                mask_north = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j+1,i), 1 ) )
    129133!
    130134!--             Interpolate eddy diffusivities on staggered gridpoints
     
    199203!--             momentum flux at model top. 
    200204                mask_bottom = MERGE( 1.0_wp, 0.0_wp,                           &
    201                                      BTEST( wall_flags_static_0(k-1,j,i), 8 ) )
     205                                 BTEST( wall_flags_total_0(k-1,j,i), 8 ) )
    202206                mask_top    = MERGE( 1.0_wp, 0.0_wp,                           &
    203                                      BTEST( wall_flags_static_0(k+1,j,i), 8 ) ) *     &
     207                                 BTEST( wall_flags_total_0(k+1,j,i), 8 ) ) *   &
    204208                              MERGE( 1.0_wp, 0.0_wp,                           &
    205                                      BTEST( wall_flags_static_0(k+1,j,i), 9 ) )
     209                                 BTEST( wall_flags_total_0(k+1,j,i), 9 ) )
    206210                flag        = MERGE( 1.0_wp, 0.0_wp,                           &
    207                                      BTEST( wall_flags_static_0(k,j,i), 1 ) )
     211                                 BTEST( wall_flags_total_0(k,j,i), 1 ) )
    208212!
    209213!--             Interpolate eddy diffusivities on staggered gridpoints
     
    322326       
    323327       USE indices,                                                            &
    324            ONLY:  nzb, nzt, wall_flags_static_0
     328           ONLY:  nzb, nzt, wall_flags_total_0
    325329     
    326330       USE kinds
     
    356360!--       It is sufficient to masked only north- and south-facing surfaces, which
    357361!--       need special treatment for the u-component.
    358           flag       = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i),   1 ) )
    359           mask_south = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j-1,i), 1 ) )
    360           mask_north = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j+1,i), 1 ) )
     362          flag       = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i),   1 ) )
     363          mask_south = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j-1,i), 1 ) )
     364          mask_north = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j+1,i), 1 ) )
    361365!
    362366!--       Interpolate eddy diffusivities on staggered gridpoints
     
    425429!--       momentum flux at model top.
    426430          mask_bottom = MERGE( 1.0_wp, 0.0_wp,                                 &
    427                                BTEST( wall_flags_static_0(k-1,j,i), 8 ) )
     431                               BTEST( wall_flags_total_0(k-1,j,i), 8 ) )
    428432          mask_top    = MERGE( 1.0_wp, 0.0_wp,                                 &
    429                                BTEST( wall_flags_static_0(k+1,j,i), 8 ) ) *           &
     433                               BTEST( wall_flags_total_0(k+1,j,i), 8 ) ) *     &
    430434                        MERGE( 1.0_wp, 0.0_wp,                                 &
    431                                BTEST( wall_flags_static_0(k+1,j,i), 9 ) )
     435                               BTEST( wall_flags_total_0(k+1,j,i), 9 ) )
    432436          flag        = MERGE( 1.0_wp, 0.0_wp,                                 &
    433                                BTEST( wall_flags_static_0(k,j,i), 1 ) )
     437                               BTEST( wall_flags_total_0(k,j,i), 1 ) )
    434438!
    435439!--       Interpolate eddy diffusivities on staggered gridpoints
Note: See TracChangeset for help on using the changeset viewer.