Ignore:
Timestamp:
Dec 10, 2019 3:46:36 PM (4 years ago)
Author:
motisi
Message:

Renamed wall_flags_0 to wall_flags_static_0

File:
1 edited

Legend:

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

    r4328 r4329  
    2525! -----------------
    2626! $Id$
     27! Renamed wall_flags_0 to wall_flags_static_0
     28!
     29! 4328 2019-12-09 18:53:04Z suehring
    2730! Minor change in nzb_max computation. Commentation added.
    2831!
     
    673676!
    674677!--    Determine local topography height on scalar and w-grid. Note, setting
    675 !--    lateral boundary values is not necessary, realized via wall_flags_0
     678!--    lateral boundary values is not necessary, realized via wall_flags_static_0
    676679!--    array. Further, please note that loop bounds are different from
    677680!--    nxl to nxr and nys to nyn on south and right model boundary, hence,
     
    23182321    USE indices,                                                               &
    23192322        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb,  &
    2320                nzt, topo_top_ind, wall_flags_0
     2323               nzt, topo_top_ind, wall_flags_static_0
    23212324
    23222325    USE kinds
     
    23312334    INTEGER(iwp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  topo !< input array for 3D topography and dummy array for setting "outer"-flags
    23322335
    2333     ALLOCATE( wall_flags_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    2334     wall_flags_0 = 0
     2336    ALLOCATE( wall_flags_static_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     2337    wall_flags_static_0 = 0
    23352338!
    23362339!-- Set-up topography flags. First, set flags only for s, u, v and w-grid.
     
    23422345!--          scalar grid
    23432346             IF ( BTEST( topo(k,j,i), 0 ) )                                 &
    2344                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 0 )
     2347                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 0 )
    23452348!
    23462349!--          u grid
    23472350             IF ( BTEST( topo(k,j,i),   0 )  .AND.                          &
    23482351                  BTEST( topo(k,j,i-1), 0 ) )                               &
    2349                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 1 )
     2352                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 1 )
    23502353!
    23512354!--          v grid
    23522355             IF ( BTEST( topo(k,j,i),   0 )  .AND.                          &
    23532356                  BTEST( topo(k,j-1,i), 0 ) )                               &
    2354                  wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 2 )
     2357                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 2 )
    23552358
    23562359          ENDDO
     
    23612364             IF ( BTEST( topo(k,j,i),   0 )  .AND.                          &
    23622365                  BTEST( topo(k+1,j,i), 0 ) )                               &
    2363                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 3 )
    2364           ENDDO
    2365           wall_flags_0(nzt+1,j,i) = IBSET( wall_flags_0(nzt+1,j,i), 3 )
     2366                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 3 )
     2367          ENDDO
     2368          wall_flags_static_0(nzt+1,j,i) = IBSET( wall_flags_static_0(nzt+1,j,i), 3 )
    23662369
    23672370       ENDDO
    23682371    ENDDO
    23692372
    2370     CALL exchange_horiz_int( wall_flags_0, nys, nyn, nxl, nxr, nzt, nbgp )
     2373    CALL exchange_horiz_int( wall_flags_static_0, nys, nyn, nxl, nxr, nzt, nbgp )
    23712374!
    23722375!-- Set outer array for scalars to mask near-surface grid points. Note, on
     
    23762379       DO j = nys, nyn
    23772380          DO k = nzb, nzt+1
    2378              IF ( BTEST( wall_flags_0(k,j-1,i), 0 )    .AND.                   &
    2379                   BTEST( wall_flags_0(k,j+1,i), 0 )    .AND.                   &
    2380                   BTEST( wall_flags_0(k,j,i-1), 0 )    .AND.                   &
    2381                   BTEST( wall_flags_0(k,j,i+1), 0 )    .AND.                   &
    2382                   BTEST( wall_flags_0(k,j-1,i-1), 0 )  .AND.                   &
    2383                   BTEST( wall_flags_0(k,j+1,i-1), 0 )  .AND.                   &
    2384                   BTEST( wall_flags_0(k,j-1,i+1), 0 )  .AND.                   &
    2385                   BTEST( wall_flags_0(k,j+1,i+1), 0 ) )                        &
    2386                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 24 )
     2381             IF ( BTEST( wall_flags_static_0(k,j-1,i), 0 )    .AND.                   &
     2382                  BTEST( wall_flags_static_0(k,j+1,i), 0 )    .AND.                   &
     2383                  BTEST( wall_flags_static_0(k,j,i-1), 0 )    .AND.                   &
     2384                  BTEST( wall_flags_static_0(k,j,i+1), 0 )    .AND.                   &
     2385                  BTEST( wall_flags_static_0(k,j-1,i-1), 0 )  .AND.                   &
     2386                  BTEST( wall_flags_static_0(k,j+1,i-1), 0 )  .AND.                   &
     2387                  BTEST( wall_flags_static_0(k,j-1,i+1), 0 )  .AND.                   &
     2388                  BTEST( wall_flags_static_0(k,j+1,i+1), 0 ) )                        &
     2389                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 24 )
    23872390          ENDDO
    23882391       ENDDO
     
    24082411!--          effect on the flow is negligible.
    24092412             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2410                 IF ( BTEST( wall_flags_0(k,j,i), 0 ) )                         &
    2411                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 8 )
     2413                IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )                         &
     2414                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 8 )
    24122415             ELSE
    2413                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 8 )
     2416                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 8 )
    24142417             ENDIF
    24152418
     
    24182421!--       Special flag to control vertical diffusion at model top - former
    24192422!--       nzt_diff
    2420           wall_flags_0(:,j,i) = IBSET( wall_flags_0(:,j,i), 9 )
     2423          wall_flags_static_0(:,j,i) = IBSET( wall_flags_static_0(:,j,i), 9 )
    24212424          IF ( use_top_fluxes )                                                &
    2422              wall_flags_0(nzt+1,j,i) = IBCLR( wall_flags_0(nzt+1,j,i), 9 )
     2425             wall_flags_static_0(nzt+1,j,i) = IBCLR( wall_flags_static_0(nzt+1,j,i), 9 )
    24232426
    24242427
     
    24292432!--          topography, as well as initialize u with zero one grid point outside
    24302433!--          of topography.
    2431              IF ( BTEST( wall_flags_0(k-1,j,i), 1 )  .AND.                     &
    2432                   BTEST( wall_flags_0(k,j,i),   1 )  .AND.                     &
    2433                   BTEST( wall_flags_0(k+1,j,i), 1 ) )                          &
    2434                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 20 )
     2434             IF ( BTEST( wall_flags_static_0(k-1,j,i), 1 )  .AND.                     &
     2435                  BTEST( wall_flags_static_0(k,j,i),   1 )  .AND.                     &
     2436                  BTEST( wall_flags_static_0(k+1,j,i), 1 ) )                          &
     2437                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 20 )
    24352438!
    24362439!--          Special flag on v grid, former nzb_v_inner + 1, required   
     
    24382441!--          topography, as well as initialize v with zero one grid point outside
    24392442!--          of topography.
    2440              IF ( BTEST( wall_flags_0(k-1,j,i), 2 )  .AND.                     &
    2441                   BTEST( wall_flags_0(k,j,i),   2 )  .AND.                     &
    2442                   BTEST( wall_flags_0(k+1,j,i), 2 ) )                          &
    2443                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 21 )
     2443             IF ( BTEST( wall_flags_static_0(k-1,j,i), 2 )  .AND.                     &
     2444                  BTEST( wall_flags_static_0(k,j,i),   2 )  .AND.                     &
     2445                  BTEST( wall_flags_static_0(k+1,j,i), 2 ) )                          &
     2446                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 21 )
    24442447!
    24452448!--          Special flag on scalar grid, former nzb_s_inner+1. Used for
    24462449!--          lpm_sgs_tke
    2447              IF ( BTEST( wall_flags_0(k,j,i),   0 )  .AND.                     &
    2448                   BTEST( wall_flags_0(k-1,j,i), 0 )  .AND.                     &
    2449                   BTEST( wall_flags_0(k+1,j,i), 0 ) )                          &
    2450                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 25 )
     2450             IF ( BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.                     &
     2451                  BTEST( wall_flags_static_0(k-1,j,i), 0 )  .AND.                     &
     2452                  BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                          &
     2453                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 25 )
    24512454!
    24522455!--          Special flag on scalar grid, nzb_diff_s_outer - 1, required in
    24532456!--          in production_e
    24542457             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2455                 IF ( BTEST( wall_flags_0(k,j,i),   24 )  .AND.                 &
    2456                      BTEST( wall_flags_0(k-1,j,i), 24 )  .AND.                 &
    2457                      BTEST( wall_flags_0(k+1,j,i), 0 ) )                       &
    2458                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 29 )
     2458                IF ( BTEST( wall_flags_static_0(k,j,i),   24 )  .AND.                 &
     2459                     BTEST( wall_flags_static_0(k-1,j,i), 24 )  .AND.                 &
     2460                     BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                       &
     2461                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 29 )
    24592462             ELSE
    2460                 IF ( BTEST( wall_flags_0(k,j,i), 0 ) )                         &
    2461                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 29 )
     2463                IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )                         &
     2464                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 29 )
    24622465             ENDIF
    24632466!
     
    24652468!--          in production_e
    24662469             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2467                 IF ( BTEST( wall_flags_0(k,j,i),   0 )  .AND.                  &
    2468                      BTEST( wall_flags_0(k-1,j,i), 0 )  .AND.                  &
    2469                      BTEST( wall_flags_0(k+1,j,i), 0 ) )                       &
    2470                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 30 )
     2470                IF ( BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.                  &
     2471                     BTEST( wall_flags_static_0(k-1,j,i), 0 )  .AND.                  &
     2472                     BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                       &
     2473                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 30 )
    24712474             ELSE
    2472                 IF ( BTEST( wall_flags_0(k,j,i), 0 ) )                         &
    2473                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 30 )
     2475                IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )                         &
     2476                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 30 )
    24742477             ENDIF
    24752478          ENDDO
     
    24792482!
    24802483!--          Scalar grid
    2481              IF ( BTEST( wall_flags_0(k-1,j,i), 0 )  .AND.                     &
    2482             .NOT. BTEST( wall_flags_0(k,j,i), 0   ) )                          &
    2483                  wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 13 )
     2484             IF ( BTEST( wall_flags_static_0(k-1,j,i), 0 )  .AND.                     &
     2485            .NOT. BTEST( wall_flags_static_0(k,j,i), 0   ) )                          &
     2486                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 13 )
    24842487!
    24852488!--          Downward facing wall on u grid
    2486              IF ( BTEST( wall_flags_0(k-1,j,i), 1 )  .AND.                     &
    2487             .NOT. BTEST( wall_flags_0(k,j,i), 1   ) )                          &
    2488                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 15 )
     2489             IF ( BTEST( wall_flags_static_0(k-1,j,i), 1 )  .AND.                     &
     2490            .NOT. BTEST( wall_flags_static_0(k,j,i), 1   ) )                          &
     2491                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 15 )
    24892492!
    24902493!--          Downward facing wall on v grid
    2491              IF ( BTEST( wall_flags_0(k-1,j,i), 2 )  .AND.                     &
    2492             .NOT. BTEST( wall_flags_0(k,j,i), 2   ) )                          &
    2493                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 17 )
     2494             IF ( BTEST( wall_flags_static_0(k-1,j,i), 2 )  .AND.                     &
     2495            .NOT. BTEST( wall_flags_static_0(k,j,i), 2   ) )                          &
     2496                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 17 )
    24942497!
    24952498!--          Downward facing wall on w grid
    2496              IF ( BTEST( wall_flags_0(k-1,j,i), 3 )  .AND.                     &
    2497             .NOT. BTEST( wall_flags_0(k,j,i), 3 ) )                            &
    2498                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 19 )
     2499             IF ( BTEST( wall_flags_static_0(k-1,j,i), 3 )  .AND.                     &
     2500            .NOT. BTEST( wall_flags_static_0(k,j,i), 3 ) )                            &
     2501                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 19 )
    24992502          ENDDO
    25002503!
     
    25032506!
    25042507!--          Upward facing wall on scalar grid
    2505              IF ( .NOT. BTEST( wall_flags_0(k,j,i),   0 )  .AND.               &
    2506                         BTEST( wall_flags_0(k+1,j,i), 0 ) )                    &
    2507                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 12 )
     2508             IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.               &
     2509                        BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                    &
     2510                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 12 )
    25082511!
    25092512!--          Upward facing wall on u grid
    2510              IF ( .NOT. BTEST( wall_flags_0(k,j,i),   1 )  .AND.               &
    2511                         BTEST( wall_flags_0(k+1,j,i), 1 ) )                    &
    2512                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 14 )
     2513             IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   1 )  .AND.               &
     2514                        BTEST( wall_flags_static_0(k+1,j,i), 1 ) )                    &
     2515                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 14 )
    25132516
    25142517!   
    25152518!--          Upward facing wall on v grid
    2516              IF ( .NOT. BTEST( wall_flags_0(k,j,i),   2 )  .AND.               &
    2517                         BTEST( wall_flags_0(k+1,j,i), 2 ) )                    &
    2518                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 16 )
     2519             IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   2 )  .AND.               &
     2520                        BTEST( wall_flags_static_0(k+1,j,i), 2 ) )                    &
     2521                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 16 )
    25192522   
    25202523!
    25212524!--          Upward facing wall on w grid
    2522              IF ( .NOT. BTEST( wall_flags_0(k,j,i),   3 )  .AND.               &
    2523                         BTEST( wall_flags_0(k+1,j,i), 3 ) )                    &
    2524                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 18 )
     2525             IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   3 )  .AND.               &
     2526                        BTEST( wall_flags_static_0(k+1,j,i), 3 ) )                    &
     2527                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 18 )
    25252528!
    25262529!--          Special flag on scalar grid, former nzb_s_inner
    2527              IF ( BTEST( wall_flags_0(k,j,i), 0 )  .OR.                        &
    2528                   BTEST( wall_flags_0(k,j,i), 12 ) .OR.                        &
    2529                   BTEST( wall_flags_0(k,j,i), 13 ) )                           &
    2530                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 22 )
     2530             IF ( BTEST( wall_flags_static_0(k,j,i), 0 )  .OR.                        &
     2531                  BTEST( wall_flags_static_0(k,j,i), 12 ) .OR.                        &
     2532                  BTEST( wall_flags_static_0(k,j,i), 13 ) )                           &
     2533                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 22 )
    25312534!
    25322535!--          Special flag on scalar grid, nzb_diff_s_inner - 1, required for
    25332536!--          flow_statistics
    25342537             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2535                 IF ( BTEST( wall_flags_0(k,j,i),   0 )  .AND.                  &
    2536                      BTEST( wall_flags_0(k+1,j,i), 0 ) )                       &
    2537                   wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 23 )
     2538                IF ( BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.                  &
     2539                     BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                       &
     2540                  wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 23 )
    25382541             ELSE
    2539                 IF ( BTEST( wall_flags_0(k,j,i), 22 ) )                        &
    2540                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 23 )
     2542                IF ( BTEST( wall_flags_static_0(k,j,i), 22 ) )                        &
     2543                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 23 )
    25412544             ENDIF
    25422545   
    25432546
    25442547          ENDDO
    2545           wall_flags_0(nzt+1,j,i) = IBSET( wall_flags_0(nzt+1,j,i), 22 )
    2546           wall_flags_0(nzt+1,j,i) = IBSET( wall_flags_0(nzt+1,j,i), 23 )
     2548          wall_flags_static_0(nzt+1,j,i) = IBSET( wall_flags_static_0(nzt+1,j,i), 22 )
     2549          wall_flags_static_0(nzt+1,j,i) = IBSET( wall_flags_static_0(nzt+1,j,i), 23 )
    25472550!
    25482551!--       Set flags indicating that topography is close by in horizontal
     
    25552558          IF ( scalar_advec == 'ws-scheme' )  THEN
    25562559             DO k = nzb, nzt
    2557                 IF ( BTEST( wall_flags_0(k,j,i), 0 )  .AND. (                   &
    2558                      ANY( .NOT. BTEST( wall_flags_0(k,j-3:j+3,i-1), 0 ) )  .OR.&
    2559                      ANY( .NOT. BTEST( wall_flags_0(k,j-3:j+3,i-2), 0 ) )  .OR.&
    2560                      ANY( .NOT. BTEST( wall_flags_0(k,j-3:j+3,i-3), 0 ) )  .OR.&
    2561                      ANY( .NOT. BTEST( wall_flags_0(k,j-3:j+3,i+1), 0 ) )  .OR.&
    2562                      ANY( .NOT. BTEST( wall_flags_0(k,j-3:j+3,i+2), 0 ) )  .OR.&
    2563                      ANY( .NOT. BTEST( wall_flags_0(k,j-3:j+3,i+3), 0 ) )  .OR.&
    2564                      ANY( .NOT. BTEST( wall_flags_0(k,j-1,i-3:i+3), 0 ) )  .OR.&
    2565                      ANY( .NOT. BTEST( wall_flags_0(k,j-2,i-3:i+3), 0 ) )  .OR.&
    2566                      ANY( .NOT. BTEST( wall_flags_0(k,j-3,i-3:i+3), 0 ) )  .OR.&
    2567                      ANY( .NOT. BTEST( wall_flags_0(k,j+1,i-3:i+3), 0 ) )  .OR.&
    2568                      ANY( .NOT. BTEST( wall_flags_0(k,j+2,i-3:i+3), 0 ) )  .OR.&
    2569                      ANY( .NOT. BTEST( wall_flags_0(k,j+3,i-3:i+3), 0 ) )      &
     2560                IF ( BTEST( wall_flags_static_0(k,j,i), 0 )  .AND. (                   &
     2561                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i-1), 0 ) )  .OR.&
     2562                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i-2), 0 ) )  .OR.&
     2563                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i-3), 0 ) )  .OR.&
     2564                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i+1), 0 ) )  .OR.&
     2565                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i+2), 0 ) )  .OR.&
     2566                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i+3), 0 ) )  .OR.&
     2567                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-1,i-3:i+3), 0 ) )  .OR.&
     2568                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-2,i-3:i+3), 0 ) )  .OR.&
     2569                     ANY( .NOT. BTEST( wall_flags_static_0(k,j-3,i-3:i+3), 0 ) )  .OR.&
     2570                     ANY( .NOT. BTEST( wall_flags_static_0(k,j+1,i-3:i+3), 0 ) )  .OR.&
     2571                     ANY( .NOT. BTEST( wall_flags_static_0(k,j+2,i-3:i+3), 0 ) )  .OR.&
     2572                     ANY( .NOT. BTEST( wall_flags_static_0(k,j+3,i-3:i+3), 0 ) )      &
    25702573                                                            ) )                &
    2571                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 31 )
     2574                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 31 )
    25722575                     
    25732576             ENDDO
     
    25852588!-- If no topography is initialized, the land-surface is at k = nzb.
    25862589    IF ( TRIM( topography ) /= 'read_from_file' )  THEN
    2587        wall_flags_0(nzb,:,:) = IBSET( wall_flags_0(nzb,:,:), 5 )
     2590       wall_flags_static_0(nzb,:,:) = IBSET( wall_flags_static_0(nzb,:,:), 5 )
    25882591    ELSE
    25892592       DO i = nxl, nxr
     
    25932596!--             Natural terrain grid point
    25942597                IF ( BTEST( topo(k,j,i), 1 ) )                                 &
    2595                    wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 5 )
     2598                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 5 )
    25962599             ENDDO
    25972600          ENDDO
     
    26042607          DO k = nzb, nzt+1
    26052608             IF ( BTEST( topo(k,j,i), 2 ) )                                    &
    2606                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 6 )
     2609                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 6 )
    26072610          ENDDO
    26082611       ENDDO
     
    26142617          DO k = nzb, nzt+1
    26152618             IF ( BTEST( topo(k,j,i), 4 ) )                                    &
    2616                 wall_flags_0(k,j,i) = IBSET( wall_flags_0(k,j,i), 4 )
     2619                wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 4 )
    26172620          ENDDO
    26182621       ENDDO
     
    26202623!
    26212624!-- Exchange ghost points for wall flags
    2622     CALL exchange_horiz_int( wall_flags_0, nys, nyn, nxl, nxr, nzt, nbgp )
     2625    CALL exchange_horiz_int( wall_flags_static_0, nys, nyn, nxl, nxr, nzt, nbgp )
    26232626!
    26242627!-- Set boundary conditions also for flags. Can be interpreted as Neumann
     
    26272630       IF ( nys == 0  )  THEN
    26282631          DO  i = 1, nbgp     
    2629              wall_flags_0(:,nys-i,:)   = wall_flags_0(:,nys,:)
     2632             wall_flags_static_0(:,nys-i,:)   = wall_flags_static_0(:,nys,:)
    26302633          ENDDO
    26312634       ENDIF
    26322635       IF ( nyn == ny )  THEN
    26332636          DO  i = 1, nbgp 
    2634              wall_flags_0(:,nyn+i,:) = wall_flags_0(:,nyn,:)
     2637             wall_flags_static_0(:,nyn+i,:) = wall_flags_static_0(:,nyn,:)
    26352638          ENDDO
    26362639       ENDIF
     
    26392642       IF ( nxl == 0  )  THEN
    26402643          DO  i = 1, nbgp   
    2641              wall_flags_0(:,:,nxl-i)   = wall_flags_0(:,:,nxl)
     2644             wall_flags_static_0(:,:,nxl-i)   = wall_flags_static_0(:,:,nxl)
    26422645          ENDDO
    26432646       ENDIF
    26442647       IF ( nxr == nx )  THEN
    26452648          DO  i = 1, nbgp   
    2646              wall_flags_0(:,:,nxr+i) = wall_flags_0(:,:,nxr)     
     2649             wall_flags_static_0(:,:,nxr+i) = wall_flags_static_0(:,:,nxr)     
    26472650          ENDDO
    26482651       ENDIF     
     
    26572660    topo_top_ind(:,:,0) = MAXLOC(                                              &
    26582661                                  MERGE( 1, 0,                                 &
    2659                                           BTEST( wall_flags_0(:,:,:), ibit )   &
     2662                                          BTEST( wall_flags_static_0(:,:,:), ibit )   &
    26602663                                       ), DIM = 1                              &
    26612664                                ) - 1
     
    26652668    topo_top_ind(:,:,1) = MAXLOC(                                              &
    26662669                                  MERGE( 1, 0,                                 &
    2667                                           BTEST( wall_flags_0(:,:,:), ibit )   &
     2670                                          BTEST( wall_flags_static_0(:,:,:), ibit )   &
    26682671                                       ), DIM = 1                              &
    26692672                                ) - 1
     
    26732676    topo_top_ind(:,:,2) = MAXLOC(                                              &
    26742677                                  MERGE( 1, 0,                                 &
    2675                                           BTEST( wall_flags_0(:,:,:), ibit )   &
     2678                                          BTEST( wall_flags_static_0(:,:,:), ibit )   &
    26762679                                       ), DIM = 1                              &
    26772680                                ) - 1
     
    26812684    topo_top_ind(:,:,3) = MAXLOC(                                              &
    26822685                                  MERGE( 1, 0,                                 &
    2683                                           BTEST( wall_flags_0(:,:,:), ibit )   &
     2686                                          BTEST( wall_flags_static_0(:,:,:), ibit )   &
    26842687                                       ), DIM = 1                              &
    26852688                                ) - 1
     
    26892692    topo_top_ind(:,:,4) = MAXLOC(                                              &
    26902693                                  MERGE( 1, 0,                                 &
    2691                                           BTEST( wall_flags_0(:,:,:), ibit )   &
     2694                                          BTEST( wall_flags_static_0(:,:,:), ibit )   &
    26922695                                       ), DIM = 1                              &
    26932696                                ) - 1                           
Note: See TracChangeset for help on using the changeset viewer.