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/pmc_interface_mod.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!
     
    208212    USE indices,                                                               &
    209213        ONLY:  nbgp, nx, nxl, nxlg, nxlu, nxr, nxrg, ny, nyn, nyng, nys, nysg, &
    210                nysv, nz, nzb, nzt, topo_top_ind, wall_flags_static_0
     214               nysv, nz, nzb, nzt, topo_top_ind, wall_flags_total_0
    211215
    212216    USE bulk_cloud_model_mod,                                                  &
     
    15291533       INTEGER(iwp) ::  istart    !<
    15301534       INTEGER(iwp) ::  ir        !<
    1531        INTEGER(iwp) ::  iw        !< Child-grid index limited to -1 <= iw <= nx+1 for wall_flags_static_0
     1535       INTEGER(iwp) ::  iw        !< Child-grid index limited to -1 <= iw <= nx+1 for wall_flags_total_0
    15321536       INTEGER(iwp) ::  j         !< Child-grid index in the y-direction
    15331537       INTEGER(iwp) ::  jj        !< Parent-grid index in the y-direction
    15341538       INTEGER(iwp) ::  jstart    !<
    15351539       INTEGER(iwp) ::  jr        !<
    1536        INTEGER(iwp) ::  jw        !< Child-grid index limited to -1 <= jw <= ny+1 for wall_flags_static_0
     1540       INTEGER(iwp) ::  jw        !< Child-grid index limited to -1 <= jw <= ny+1 for wall_flags_total_0
    15371541       INTEGER(iwp) ::  k         !< Child-grid index in the z-direction
    15381542       INTEGER(iwp) ::  kk        !< Parent-grid index in the z-direction
    15391543       INTEGER(iwp) ::  kstart    !<
    1540        INTEGER(iwp) ::  kw        !< Child-grid index limited to kw <= nzt+1 for wall_flags_static_0
     1544       INTEGER(iwp) ::  kw        !< Child-grid index limited to kw <= nzt+1 for wall_flags_total_0
    15411545
    15421546       REAL(wp)     ::  tolex     !< Tolerance for grid-line matching in x-direction   
     
    17791783!--    Note that ii, jj, and kk are parent-grid indices.
    17801784!--    This information is needed in the anterpolation.
    1781 !--    The indices for wall_flags_static_0 (kw,jw,iw) must be limited to the range
     1785!--    The indices for wall_flags_total_0 (kw,jw,iw) must be limited to the range
    17821786!--    [-1,...,nx/ny/nzt+1] in order to avoid zero values on the outer ghost nodes.
    17831787       DO  ii = ipla, ipra
     
    17931797                         kw = MIN( k, nzt+1 )               
    17941798                         ijkfc_u(kk,jj,ii) = ijkfc_u(kk,jj,ii)                                      &
    1795                               + MERGE( 1, 0, BTEST( wall_flags_static_0(kw,jw,iw), 1 ) )
     1799                              + MERGE( 1, 0, BTEST( wall_flags_total_0(kw,jw,iw), 1 ) )
    17961800                      ENDDO
    17971801                   ENDDO
     
    18061810                         kw = MIN( k, nzt+1 )                                       
    18071811                         ijkfc_v(kk,jj,ii) = ijkfc_v(kk,jj,ii)                                      &
    1808                               + MERGE( 1, 0, BTEST( wall_flags_static_0(kw,jw,iw), 2 ) )
     1812                              + MERGE( 1, 0, BTEST( wall_flags_total_0(kw,jw,iw), 2 ) )
    18091813                      ENDDO
    18101814                   ENDDO
     
    18191823                         kw = MIN( k, nzt+1 )
    18201824                         ijkfc_s(kk,jj,ii) = ijkfc_s(kk,jj,ii)                                      &
    1821                               + MERGE( 1, 0, BTEST( wall_flags_static_0(kw,jw,iw), 0 ) )
     1825                              + MERGE( 1, 0, BTEST( wall_flags_total_0(kw,jw,iw), 0 ) )
    18221826                      ENDDO
    18231827                   ENDDO
     
    18321836                         kw = MIN( k, nzt+1 )
    18331837                         ijkfc_w(kk,jj,ii) = ijkfc_w(kk,jj,ii)                                      &
    1834                               + MERGE( 1, 0, BTEST( wall_flags_static_0(kw,jw,iw), 3 ) )
     1838                              + MERGE( 1, 0, BTEST( wall_flags_total_0(kw,jw,iw), 3 ) )
    18351839                      ENDDO
    18361840                   ENDDO
     
    27532757             DO  jc = nysg, nyng
    27542758                DO  kc = nzb, nzt
    2755                    u(kc,jc,ic)   = MERGE( u(kc,jc,ic), 0.0_wp, BTEST( wall_flags_static_0(kc,jc,ic), 1 ) )
    2756                    v(kc,jc,ic)   = MERGE( v(kc,jc,ic), 0.0_wp, BTEST( wall_flags_static_0(kc,jc,ic), 2 ) )
    2757                    w(kc,jc,ic)   = MERGE( w(kc,jc,ic), 0.0_wp, BTEST( wall_flags_static_0(kc,jc,ic), 3 ) )
    2758                    u_p(kc,jc,ic) = MERGE( u_p(kc,jc,ic), 0.0_wp, BTEST( wall_flags_static_0(kc,jc,ic), 1 ) )
    2759                    v_p(kc,jc,ic) = MERGE( v_p(kc,jc,ic), 0.0_wp, BTEST( wall_flags_static_0(kc,jc,ic), 2 ) )
    2760                    w_p(kc,jc,ic) = MERGE( w_p(kc,jc,ic), 0.0_wp, BTEST( wall_flags_static_0(kc,jc,ic), 3 ) )
     2759                   u(kc,jc,ic)   = MERGE( u(kc,jc,ic), 0.0_wp, BTEST( wall_flags_total_0(kc,jc,ic), 1 ) )
     2760                   v(kc,jc,ic)   = MERGE( v(kc,jc,ic), 0.0_wp, BTEST( wall_flags_total_0(kc,jc,ic), 2 ) )
     2761                   w(kc,jc,ic)   = MERGE( w(kc,jc,ic), 0.0_wp, BTEST( wall_flags_total_0(kc,jc,ic), 3 ) )
     2762                   u_p(kc,jc,ic) = MERGE( u_p(kc,jc,ic), 0.0_wp, BTEST( wall_flags_total_0(kc,jc,ic), 1 ) )
     2763                   v_p(kc,jc,ic) = MERGE( v_p(kc,jc,ic), 0.0_wp, BTEST( wall_flags_total_0(kc,jc,ic), 2 ) )
     2764                   w_p(kc,jc,ic) = MERGE( w_p(kc,jc,ic), 0.0_wp, BTEST( wall_flags_total_0(kc,jc,ic), 3 ) )
    27612765                ENDDO
    27622766             ENDDO
     
    32713275                DO   j = nysg, nyng
    32723276                   DO  k = nzb, nzt+1
    3273                       u(k,j,i) = MERGE( u(k,j,i), 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 1 ) )
    3274                       v(k,j,i) = MERGE( v(k,j,i), 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 2 ) )
    3275                       w(k,j,i) = MERGE( w(k,j,i), 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 3 ) )
     3277                      u(k,j,i) = MERGE( u(k,j,i), 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 1 ) )
     3278                      v(k,j,i) = MERGE( v(k,j,i), 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 2 ) )
     3279                      w(k,j,i) = MERGE( w(k,j,i), 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 3 ) )
    32763280!
    32773281!--                 TO_DO: zero setting of temperature within topography creates
     
    46334637                     DO  kc = kfl(kp), kfu(kp)
    46344638                        cellsum = cellsum + MERGE( child_array(kc,jc,ic), 0.0_wp,                   &
    4635                              BTEST( wall_flags_static_0(kc,jc,ic), var_flag ) )
     4639                             BTEST( wall_flags_total_0(kc,jc,ic), var_flag ) )
    46364640                     ENDDO
    46374641                  ENDDO
     
    49244928          DO   k = nzb+1, nzt
    49254929             sub_sum = sub_sum + innor * u(k,j,i) * dzw(k)                                          &
    4926                                * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 1 ) )
     4930                               * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 1 ) )
    49274931          ENDDO
    49284932          volume_flux_local = volume_flux_local + sub_sum
     
    49474951          DO   k = nzb+1, nzt
    49484952             sub_sum = sub_sum + innor * u(k,j,i) * dzw(k)                                          &
    4949                                * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 1 ) )
     4953                               * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 1 ) )
    49504954          ENDDO
    49514955          volume_flux_local = volume_flux_local + sub_sum
     
    49704974          DO   k = nzb+1, nzt
    49714975             sub_sum = sub_sum + innor * v(k,j,i) * dzw(k)                                          &
    4972                                * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 2 ) )
     4976                               * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 2 ) )
    49734977          ENDDO
    49744978          volume_flux_local = volume_flux_local + sub_sum
     
    49934997          DO  k = nzb+1, nzt
    49944998             sub_sum = sub_sum + innor * v(k,j,i) * dzw(k)                                          &
    4995                                * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 2 ) )
     4999                               * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 2 ) )
    49965000          ENDDO
    49975001          volume_flux_local = volume_flux_local + sub_sum
     
    50635067             DO  k = nzb + 1, nzt
    50645068                u(k,j,i) = u(k,j,i) + u_corr_left                              &
    5065                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 1 ) )
     5069                     * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 1 ) )
    50665070             ENDDO
    50675071          ENDDO
     
    50755079             DO  k = nzb + 1, nzt
    50765080                u(k,j,i) = u(k,j,i) + u_corr_right                              &
    5077                       * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 1 ) )
     5081                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 1 ) )
    50785082             ENDDO
    50795083          ENDDO
     
    50875091             DO  k = nzb + 1, nzt
    50885092                v(k,j,i) = v(k,j,i) + v_corr_south                              &
    5089                       * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 2 ) )
     5093                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 2 ) )
    50905094             ENDDO
    50915095          ENDDO
     
    50995103             DO  k = nzb + 1, nzt
    51005104                v(k,j,i) = v(k,j,i) + v_corr_north                              &
    5101                       * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 2 ) )
     5105                      * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 2 ) )
    51025106             ENDDO
    51035107          ENDDO
Note: See TracChangeset for help on using the changeset viewer.