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/pres.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!
     
    7276        ONLY:  nbgp, ngp_2dh_outer, nx, nxl, nxlg, nxl_mg, nxr, nxrg, nxr_mg,  &
    7377               ny, nys, nysg, nys_mg, nyn, nyng, nyn_mg, nzb, nzt, nzt_mg,     &
    74                wall_flags_static_0
     78               wall_flags_total_0
    7579
    7680    USE kinds
     
    190194             volume_flow_l(1) = volume_flow_l(1) + u(k,j,i) * dzw(k)           &
    191195                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    192                                               BTEST( wall_flags_static_0(k,j,i), 1 )  &
     196                                        BTEST( wall_flags_total_0(k,j,i), 1 )  &
    193197                                            )
    194198          ENDDO
     
    209213             u(k,j,i) = u(k,j,i) + volume_flow_offset(1)                       &
    210214                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    211                                               BTEST( wall_flags_static_0(k,j,i), 1 )  &
     215                                        BTEST( wall_flags_total_0(k,j,i), 1 )  &
    212216                                            )
    213217          ENDDO
     
    235239             volume_flow_l(2) = volume_flow_l(2) + v(k,j,i) * dzw(k)           &
    236240                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    237                                               BTEST( wall_flags_static_0(k,j,i), 2 )  &
     241                                        BTEST( wall_flags_total_0(k,j,i), 2 )  &
    238242                                            )
    239243          ENDDO
     
    254258             v(k,j,i) = v(k,j,i) + volume_flow_offset(2)                       &
    255259                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    256                                               BTEST( wall_flags_static_0(k,j,i), 2 )  &
     260                                        BTEST( wall_flags_total_0(k,j,i), 2 )  &
    257261                                            )
    258262          ENDDO
     
    283287             DO  k = nzb+1, nzt
    284288                w_l_l(k) = w_l_l(k) + w(k,j,i)                                                     &
    285                                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 3 ) )
     289                                     * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 3 ) )
    286290             ENDDO
    287291          ENDDO
     
    300304             DO  k = nzb+1, nzt
    301305                w(k,j,i) = w(k,j,i) - w_l(k)                                                       &
    302                                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 3 ) )
     306                                     * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 3 ) )
    303307             ENDDO
    304308          ENDDO
     
    347351                        ) * ddt_3d * d_weight_pres                             &
    348352                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    349                                             BTEST( wall_flags_static_0(k,j,i), 0 )    &
     353                                      BTEST( wall_flags_total_0(k,j,i), 0 )    &
    350354                                          )
    351355          ENDDO
     
    355359             threadsum = threadsum + ABS( d(k,j,i) )                           &
    356360                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    357                                             BTEST( wall_flags_static_0(k,j,i), 0 )    &
     361                                      BTEST( wall_flags_total_0(k,j,i), 0 )    &
    358362                                          )
    359363          ENDDO
     
    372376    !$OMP DO SCHEDULE( STATIC )
    373377    !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
    374     !$ACC PRESENT(u, v, w, rho_air, rho_air_zw, ddzw, wall_flags_static_0) &
     378    !$ACC PRESENT(u, v, w, rho_air, rho_air_zw, ddzw, wall_flags_total_0) &
    375379    !$ACC PRESENT(d)
    376380    DO  i = nxl, nxr
     
    383387                        ) * ddt_3d * d_weight_pres                             &
    384388                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    385                                             BTEST( wall_flags_static_0(k,j,i), 0 )    &
     389                                      BTEST( wall_flags_total_0(k,j,i), 0 )    &
    386390                                          )     
    387391          ENDDO
     
    633637    !$OMP DO
    634638    !$ACC PARALLEL LOOP COLLAPSE(2) PRIVATE(i, j, k) &
    635     !$ACC PRESENT(u, v, w, tend, ddzu, wall_flags_static_0)
     639    !$ACC PRESENT(u, v, w, tend, ddzu, wall_flags_total_0)
    636640    DO  i = nxl, nxr   
    637641       DO  j = nys, nyn
     
    642646                                     * weight_pres_l                           &
    643647                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    644                                               BTEST( wall_flags_static_0(k,j,i), 3 )  &
     648                                        BTEST( wall_flags_total_0(k,j,i), 3 )  &
    645649                                            )
    646650          ENDDO
     
    651655                                     * weight_pres_l                           &
    652656                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    653                                               BTEST( wall_flags_static_0(k,j,i), 1 )  &
     657                                        BTEST( wall_flags_total_0(k,j,i), 1 )  &
    654658                                            )
    655659          ENDDO
     
    660664                                     * weight_pres_l                           &
    661665                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    662                                               BTEST( wall_flags_static_0(k,j,i), 2 )  &
     666                                        BTEST( wall_flags_total_0(k,j,i), 2 )  &
    663667                                            )
    664668          ENDDO                                                         
     
    691695             volume_flow_l(1) = volume_flow_l(1) + u(k,j,nxr) * dzw(k)         &
    692696                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    693                                               BTEST( wall_flags_static_0(k,j,nxr), 1 )&
     697                                        BTEST( wall_flags_total_0(k,j,nxr), 1 )&
    694698                                            )
    695699          ENDDO
     
    710714             volume_flow_l(2) = volume_flow_l(2) + v(k,nyn,i) * dzw(k)         &
    711715                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    712                                               BTEST( wall_flags_static_0(k,nyn,i), 2 )&
     716                                        BTEST( wall_flags_total_0(k,nyn,i), 2 )&
    713717                                            )
    714718           ENDDO
     
    741745                u(k,j,i) = u(k,j,i) + volume_flow_offset(1)                    &
    742746                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    743                                               BTEST( wall_flags_static_0(k,j,i), 1 )  &
     747                                        BTEST( wall_flags_total_0(k,j,i), 1 )  &
    744748                                            )
    745749             ENDDO
     
    747751                v(k,j,i) = v(k,j,i) + volume_flow_offset(2)                    &
    748752                                     * MERGE( 1.0_wp, 0.0_wp,                  &
    749                                               BTEST( wall_flags_static_0(k,j,i), 2 )  &
     753                                        BTEST( wall_flags_total_0(k,j,i), 2 )  &
    750754                                            )
    751755             ENDDO
     
    791795                            w(k-1,j,i) * rho_air_zw(k-1) ) * ddzw(k)           &
    792796                        ) * MERGE( 1.0_wp, 0.0_wp,                             &
    793                                    BTEST( wall_flags_static_0(k,j,i), 0 )             &
     797                             BTEST( wall_flags_total_0(k,j,i), 0 )             &
    794798                                 )
    795799             ENDDO
     
    802806       !$OMP DO SCHEDULE( STATIC )
    803807       !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
    804        !$ACC PRESENT(u, v, w, rho_air, rho_air_zw, ddzw, wall_flags_static_0) &
     808       !$ACC PRESENT(u, v, w, rho_air, rho_air_zw, ddzw, wall_flags_total_0) &
    805809       !$ACC PRESENT(d)
    806810       DO  i = nxl, nxr
     
    812816                               w(k-1,j,i) * rho_air_zw(k-1) ) * ddzw(k)        &
    813817                           ) * MERGE( 1.0_wp, 0.0_wp,                          &
    814                                    BTEST( wall_flags_static_0(k,j,i), 0 )             &
     818                             BTEST( wall_flags_total_0(k,j,i), 0 )             &
    815819                                    )
    816820             ENDDO
Note: See TracChangeset for help on using the changeset viewer.