Ignore:
Timestamp:
Dec 18, 2019 11:55:56 AM (23 months 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/flow_statistics.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!
     
    9599        ONLY:   ngp_2dh, ngp_2dh_s_inner, ngp_3d, ngp_3d_inner, ngp_sums,      &
    96100                ngp_sums_ls, nxl, nxr, nyn, nys, nzb, nzt, topo_min_level,     &
    97                 wall_flags_static_0
     101                wall_flags_total_0
    98102       
    99103    USE kinds
     
    257261       !$OMP DO
    258262       !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k, flag) &
    259        !$ACC PRESENT(wall_flags_static_0, u, v, pt, rmask, sums_l)
     263       !$ACC PRESENT(wall_flags_total_0, u, v, pt, rmask, sums_l)
    260264       DO  i = nxl, nxr
    261265          DO  j =  nys, nyn
    262266             DO  k = nzb, nzt+1
    263                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     267                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    264268                !$ACC ATOMIC
    265269                sums_l(k,1,tn)  = sums_l(k,1,tn)  + u(k,j,i)  * rmask(j,i,sr)  &
     
    286290                                    * rmask(j,i,sr)                            &
    287291                                    * MERGE( 1.0_wp, 0.0_wp,                   &
    288                                              BTEST( wall_flags_static_0(k,j,i), 22 ) )
     292                                             BTEST( wall_flags_total_0(k,j,i), 22 ) )
    289293                ENDDO
    290294             ENDDO
     
    301305             DO  j =  nys, nyn
    302306                DO  k = nzb, nzt+1
    303                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     307                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    304308                   sums_l(k,44,tn)  = sums_l(k,44,tn) +                        &
    305309                                      vpt(k,j,i) * rmask(j,i,sr) * flag
     
    314318                DO  j =  nys, nyn
    315319                   DO  k = nzb, nzt+1
    316                       flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     320                      flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    317321                      sums_l(k,42,tn) = sums_l(k,42,tn) +                      &
    318322                                      ( q(k,j,i) - ql(k,j,i) ) * rmask(j,i,sr) &
     
    338342                                    * rmask(j,i,sr)                            &
    339343                                    * MERGE( 1.0_wp, 0.0_wp,                   &
    340                                              BTEST( wall_flags_static_0(k,j,i), 22 ) )
     344                                             BTEST( wall_flags_total_0(k,j,i), 22 ) )
    341345                ENDDO
    342346             ENDDO
     
    479483       !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j, k, m) &
    480484       !$ACC PRIVATE(sums_l_etot, flag) &
    481        !$ACC PRESENT(wall_flags_static_0, rmask, momentumflux_output_conversion) &
     485       !$ACC PRESENT(wall_flags_total_0, rmask, momentumflux_output_conversion) &
    482486       !$ACC PRESENT(hom(:,1,4,sr)) &
    483487       !$ACC PRESENT(e, u, v, w, km, kh, p, pt) &
     
    488492             sums_l_etot = 0.0_wp
    489493             DO  k = nzb, nzt+1
    490                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     494                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    491495!
    492496!--             Prognostic and diagnostic variables
     
    656660             DO  j =  nys, nyn
    657661                DO  k = nzb, nzt+1
    658                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     662                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    659663
    660664                   u2   = u(k,j,i)**2
     
    688692       !$OMP DO
    689693       !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k, flag, w2, ust2, vst2) &
    690        !$ACC PRESENT(wall_flags_static_0, u, v, w, rmask, hom(:,1,1:2,sr)) &
     694       !$ACC PRESENT(wall_flags_total_0, u, v, w, rmask, hom(:,1,1:2,sr)) &
    691695       !$ACC PRESENT(sums_l)
    692696       DO  i = nxl, nxr
    693697          DO  j =  nys, nyn
    694698             DO  k = nzb, nzt+1
    695                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     699                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    696700
    697701                w2   = w(k,j,i)**2
     
    717721       !$ACC PRIVATE(ki, flag, ust, vst, pts) &
    718722       !$ACC PRESENT(kh, km, u, v, w, pt) &
    719        !$ACC PRESENT(wall_flags_static_0, rmask, ddzu, rho_air_zw, hom(:,1,1:4,sr)) &
     723       !$ACC PRESENT(wall_flags_total_0, rmask, ddzu, rho_air_zw, hom(:,1,1:4,sr)) &
    720724       !$ACC PRESENT(heatflux_output_conversion, momentumflux_output_conversion) &
    721725       !$ACC PRESENT(surf_def_h(0:2), surf_lsm_h, surf_usm_h) &
     
    735739             DO  k = nzb, nzt
    736740                flag = MERGE( 1.0_wp, 0.0_wp,                                  &
    737                               BTEST( wall_flags_static_0(k,j,i), 23 ) ) *             &
     741                              BTEST( wall_flags_total_0(k,j,i), 23 ) ) *       &
    738742                       MERGE( 1.0_wp, 0.0_wp,                                  &
    739                               BTEST( wall_flags_static_0(k,j,i), 9  ) )
     743                              BTEST( wall_flags_total_0(k,j,i), 9  ) )
    740744!
    741745!--             Momentum flux w"u"
     
    12091213!--                rearranged according to the staggered grid.
    12101214             DO  k = nzb, nzt
    1211                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     1215                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    12121216                ust = 0.5_wp * ( u(k,j,i)   - hom(k,1,1,sr) +                  &
    12131217                                 u(k+1,j,i) - hom(k+1,1,1,sr) )
     
    13981402!--                fluxes, which are added further below.
    13991403                   flag = MERGE( 1.0_wp, 0.0_wp,                               &
    1400                                  BTEST( wall_flags_static_0(k,j,i), 23 ) ) *          &
     1404                                 BTEST( wall_flags_total_0(k,j,i), 23 ) ) *    &
    14011405                          MERGE( 1.0_wp, 0.0_wp,                               &
    1402                                  BTEST( wall_flags_static_0(k,j,i), 9  ) )
     1406                                 BTEST( wall_flags_total_0(k,j,i), 9  ) )
    14031407
    14041408                   ust = 0.5_wp * ( u(k,j,i)   - hom(k,1,1,sr) +               &
     
    14331437                DO  k = nzb, nzt
    14341438                   flag = MERGE( 1.0_wp, 0.0_wp,                               &
    1435                                  BTEST( wall_flags_static_0(k,j,i), 23 ) ) *          &
     1439                                 BTEST( wall_flags_total_0(k,j,i), 23 ) ) *    &
    14361440                          MERGE( 1.0_wp, 0.0_wp,                               &
    1437                                  BTEST( wall_flags_static_0(k,j,i), 9  ) )
     1441                                 BTEST( wall_flags_total_0(k,j,i), 9  ) )
    14381442!
    14391443!--                Vertical heat flux
     
    14841488             DO  j = nys, nyn
    14851489                DO  k = nzb+1, nzt
    1486                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     1490                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    14871491
    14881492                   sums_ll(k,1) = sums_ll(k,1) + 0.5_wp * w(k,j,i) * (         &
     
    15261530                DO  k = nzb+1, nzt
    15271531
    1528                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     1532                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    15291533
    15301534                   sums_l(k,57,tn) = sums_l(k,57,tn) - 0.5_wp * (              &
     
    15551559             DO  j = nys, nyn
    15561560                DO  k = nzb+1, nzt
    1557                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     1561                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    15581562!
    15591563!--                Subgrid horizontal heat fluxes u"pt", v"pt"
     
    16531657             DO  j =  nys, nyn
    16541658                DO  k = nzb+1, nzt+1
    1655                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     1659                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    16561660
    16571661                   sums_l(k,100,tn)  = sums_l(k,100,tn)  + rad_lw_in(k,j,i)    &
Note: See TracChangeset for help on using the changeset viewer.