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/init_3d_model.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!
     
    777781!--       Set velocity components at non-atmospheric / oceanic grid points to
    778782!--       zero.
    779           u = MERGE( u, 0.0_wp, BTEST( wall_flags_static_0, 1 ) )
    780           v = MERGE( v, 0.0_wp, BTEST( wall_flags_static_0, 2 ) )
    781           w = MERGE( w, 0.0_wp, BTEST( wall_flags_static_0, 3 ) )
     783          u = MERGE( u, 0.0_wp, BTEST( wall_flags_total_0, 1 ) )
     784          v = MERGE( v, 0.0_wp, BTEST( wall_flags_total_0, 2 ) )
     785          w = MERGE( w, 0.0_wp, BTEST( wall_flags_total_0, 3 ) )
    782786!
    783787!--       Initialize surface variables, e.g. friction velocity, momentum
     
    827831!
    828832!--       Set velocities back to zero
    829           u = MERGE( u, 0.0_wp, BTEST( wall_flags_static_0, 1 ) )
    830           v = MERGE( v, 0.0_wp, BTEST( wall_flags_static_0, 2 ) )         
     833          u = MERGE( u, 0.0_wp, BTEST( wall_flags_total_0, 1 ) )
     834          v = MERGE( v, 0.0_wp, BTEST( wall_flags_total_0, 2 ) )         
    831835!
    832836!--       WARNING: The extra boundary conditions set after running the
     
    871875!
    872876!--       Mask topography
    873           u = MERGE( u, 0.0_wp, BTEST( wall_flags_static_0, 1 ) )
    874           v = MERGE( v, 0.0_wp, BTEST( wall_flags_static_0, 2 ) )
     877          u = MERGE( u, 0.0_wp, BTEST( wall_flags_total_0, 1 ) )
     878          v = MERGE( v, 0.0_wp, BTEST( wall_flags_total_0, 2 ) )
    875879!
    876880!--       Set initial horizontal velocities at the lowest computational grid
     
    887891                   DO  k = nzb, nzt
    888892                      u(k,j,i) = MERGE( u(k,j,i), 0.0_wp,                      &
    889                                         BTEST( wall_flags_static_0(k,j,i), 20 ) )
     893                                     BTEST( wall_flags_total_0(k,j,i), 20 ) )
    890894                      v(k,j,i) = MERGE( v(k,j,i), 0.0_wp,                      &
    891                                         BTEST( wall_flags_static_0(k,j,i), 21 ) )
     895                                     BTEST( wall_flags_total_0(k,j,i), 21 ) )
    892896                   ENDDO
    893897                ENDDO
     
    13131317                DO  k = nzb, nzt
    13141318                   u(k,j,i)     = MERGE( u(k,j,i), 0.0_wp,                     &
    1315                                          BTEST( wall_flags_static_0(k,j,i), 1 ) )
     1319                                      BTEST( wall_flags_total_0(k,j,i), 1 ) )
    13161320                   v(k,j,i)     = MERGE( v(k,j,i), 0.0_wp,                     &
    1317                                          BTEST( wall_flags_static_0(k,j,i), 2 ) )
     1321                                      BTEST( wall_flags_total_0(k,j,i), 2 ) )
    13181322                   w(k,j,i)     = MERGE( w(k,j,i), 0.0_wp,                     &
    1319                                          BTEST( wall_flags_static_0(k,j,i), 3 ) )
     1323                                      BTEST( wall_flags_total_0(k,j,i), 3 ) )
    13201324                ENDDO
    13211325             ENDDO
     
    13951399             DO  j = nys, nyn
    13961400                DO  k = nzb+1, nzt
    1397                    volume_flow_initial_l(1) = volume_flow_initial_l(1) +       &
    1398                                               u_init(k) * dzw(k)               &
    1399                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1400                                               BTEST( wall_flags_static_0(k,j,nxr), 1 )&
     1401                   volume_flow_initial_l(1) = volume_flow_initial_l(1) +         &
     1402                                              u_init(k) * dzw(k)                 &
     1403                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1404                                          BTEST( wall_flags_total_0(k,j,nxr), 1 )&
    14011405                                            )
    14021406
    1403                    volume_flow_area_l(1)    = volume_flow_area_l(1) + dzw(k)   &
    1404                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1405                                               BTEST( wall_flags_static_0(k,j,nxr), 1 )&
     1407                   volume_flow_area_l(1)    = volume_flow_area_l(1) + dzw(k)     &
     1408                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1409                                          BTEST( wall_flags_total_0(k,j,nxr), 1 )&
    14061410                                            )
    14071411                ENDDO
     
    14121416             DO  i = nxl, nxr
    14131417                DO  k = nzb+1, nzt
    1414                    volume_flow_initial_l(2) = volume_flow_initial_l(2) +       &
    1415                                               v_init(k) * dzw(k)               &       
    1416                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1417                                               BTEST( wall_flags_static_0(k,nyn,i), 2 )&
     1418                   volume_flow_initial_l(2) = volume_flow_initial_l(2) +         &
     1419                                              v_init(k) * dzw(k)                 &       
     1420                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1421                                          BTEST( wall_flags_total_0(k,nyn,i), 2 )&
    14181422                                            )
    1419                    volume_flow_area_l(2)    = volume_flow_area_l(2) + dzw(k)   &       
    1420                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1421                                               BTEST( wall_flags_static_0(k,nyn,i), 2 )&
     1423                   volume_flow_area_l(2)    = volume_flow_area_l(2) + dzw(k)     &       
     1424                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1425                                          BTEST( wall_flags_total_0(k,nyn,i), 2 )&
    14221426                                            )
    14231427                ENDDO
     
    14441448             DO  j = nys, nyn
    14451449                DO  k = nzb+1, nzt
    1446                    volume_flow_initial_l(1) = volume_flow_initial_l(1) +       &
    1447                                               hom_sum(k,1,0) * dzw(k)          &
    1448                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1449                                               BTEST( wall_flags_static_0(k,j,nx), 1 ) &
     1450                   volume_flow_initial_l(1) = volume_flow_initial_l(1) +         &
     1451                                              hom_sum(k,1,0) * dzw(k)            &
     1452                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1453                                          BTEST( wall_flags_total_0(k,j,nx), 1 ) &
    14501454                                            )
    1451                    volume_flow_area_l(1)    = volume_flow_area_l(1) + dzw(k)   &
    1452                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1453                                               BTEST( wall_flags_static_0(k,j,nx), 1 ) &
     1455                   volume_flow_area_l(1)    = volume_flow_area_l(1) + dzw(k)     &
     1456                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1457                                          BTEST( wall_flags_total_0(k,j,nx), 1 ) &
    14541458                                            )
    14551459                ENDDO
     
    14601464             DO  i = nxl, nxr
    14611465                DO  k = nzb+1, nzt
    1462                    volume_flow_initial_l(2) = volume_flow_initial_l(2) +       &
    1463                                               hom_sum(k,2,0) * dzw(k)          &       
    1464                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1465                                               BTEST( wall_flags_static_0(k,ny,i), 2 ) &
     1466                   volume_flow_initial_l(2) = volume_flow_initial_l(2) +         &
     1467                                              hom_sum(k,2,0) * dzw(k)            &       
     1468                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1469                                          BTEST( wall_flags_total_0(k,ny,i), 2 ) &
    14661470                                            )
    1467                    volume_flow_area_l(2)    = volume_flow_area_l(2) + dzw(k)   &       
    1468                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1469                                               BTEST( wall_flags_static_0(k,ny,i), 2 ) &
     1471                   volume_flow_area_l(2)    = volume_flow_area_l(2) + dzw(k)     &       
     1472                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1473                                          BTEST( wall_flags_total_0(k,ny,i), 2 ) &
    14701474                                            )
    14711475                ENDDO
     
    14921496             DO  j = nys, nyn
    14931497                DO  k = nzb+1, nzt
    1494                    volume_flow_initial_l(1) = volume_flow_initial_l(1) +       &
    1495                                               u(k,j,nx) * dzw(k)               &
    1496                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1497                                               BTEST( wall_flags_static_0(k,j,nx), 1 ) &
     1498                   volume_flow_initial_l(1) = volume_flow_initial_l(1) +         &
     1499                                              u(k,j,nx) * dzw(k)                 &
     1500                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1501                                          BTEST( wall_flags_total_0(k,j,nx), 1 ) &
    14981502                                            )
    1499                    volume_flow_area_l(1)    = volume_flow_area_l(1) + dzw(k)   &
    1500                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1501                                               BTEST( wall_flags_static_0(k,j,nx), 1 ) &
     1503                   volume_flow_area_l(1)    = volume_flow_area_l(1) + dzw(k)     &
     1504                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1505                                          BTEST( wall_flags_total_0(k,j,nx), 1 ) &
    15021506                                            )
    15031507                ENDDO
     
    15081512             DO  i = nxl, nxr
    15091513                DO  k = nzb+1, nzt
    1510                    volume_flow_initial_l(2) = volume_flow_initial_l(2) +       &
    1511                                               v(k,ny,i) * dzw(k)               &       
    1512                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1513                                               BTEST( wall_flags_static_0(k,ny,i), 2 ) &
     1514                   volume_flow_initial_l(2) = volume_flow_initial_l(2) +         &
     1515                                              v(k,ny,i) * dzw(k)                 &       
     1516                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1517                                          BTEST( wall_flags_total_0(k,ny,i), 2 ) &
    15141518                                            )
    1515                    volume_flow_area_l(2)    = volume_flow_area_l(2) + dzw(k)   &       
    1516                                      * MERGE( 1.0_wp, 0.0_wp,                  &
    1517                                               BTEST( wall_flags_static_0(k,ny,i), 2 ) &
     1519                   volume_flow_area_l(2)    = volume_flow_area_l(2) + dzw(k)     &       
     1520                                     * MERGE( 1.0_wp, 0.0_wp,                    &
     1521                                          BTEST( wall_flags_total_0(k,ny,i), 2 ) &
    15181522                                            )
    15191523                ENDDO
     
    16961700!--                xy-grid points above topography
    16971701                   ngp_2dh_outer_l(k,sr) = ngp_2dh_outer_l(k,sr)     +         &
    1698                                   MERGE( 1, 0, BTEST( wall_flags_static_0(k,j,i), 24 ) )
     1702                             MERGE( 1, 0, BTEST( wall_flags_total_0(k,j,i), 24 ) )
    16991703
    17001704                   ngp_2dh_s_inner_l(k,sr) = ngp_2dh_s_inner_l(k,sr) +         &
    1701                                   MERGE( 1, 0, BTEST( wall_flags_static_0(k,j,i), 22 ) )
     1705                             MERGE( 1, 0, BTEST( wall_flags_total_0(k,j,i), 22 ) )
    17021706
    17031707                ENDDO
     
    17951799!$ACC COPYIN(rho_air(nzb:nzt+1), rho_air_zw(nzb:nzt+1)) &
    17961800!$ACC COPYIN(ddzu(1:nzt+1), ddzw(1:nzt+1)) &
    1797 !$ACC COPYIN(wall_flags_static_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg)) &
     1801!$ACC COPYIN(wall_flags_total_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg)) &
    17981802!$ACC COPYIN(bc_h(0:1)) &
    17991803!$ACC COPYIN(bc_h(0)%i(1:bc_h(0)%ns)) &
Note: See TracChangeset for help on using the changeset viewer.