Ignore:
Timestamp:
Dec 18, 2019 11:55:56 AM (4 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/init_grid.f90

    r4340 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! 4340 2019-12-16 08:17:03Z Giersch
    2731! Topography closed channel flow with symmetric boundaries implemented
    2832!
     
    23532357    USE indices,                                                               &
    23542358        ONLY:  nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb,  &
    2355                nzt, topo_top_ind, wall_flags_static_0
     2359               nzt, topo_top_ind, wall_flags_static_0, wall_flags_total_0
    23562360
    23572361    USE kinds
     
    24072411
    24082412    CALL exchange_horiz_int( wall_flags_static_0, nys, nyn, nxl, nxr, nzt, nbgp )
     2413
    24092414!
    24102415!-- Set outer array for scalars to mask near-surface grid points. Note, on
    24112416!-- basis of flag 24 futher flags will be derived which are used to control
    24122417!-- production of subgrid TKE production near walls.
     2418   
     2419    ALLOCATE( wall_flags_total_0(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     2420    wall_flags_total_0 = 0
     2421                                   
    24132422    DO i = nxl, nxr
    24142423       DO j = nys, nyn
    24152424          DO k = nzb, nzt+1
    2416              IF ( BTEST( wall_flags_static_0(k,j-1,i), 0 )    .AND.                   &
    2417                   BTEST( wall_flags_static_0(k,j+1,i), 0 )    .AND.                   &
    2418                   BTEST( wall_flags_static_0(k,j,i-1), 0 )    .AND.                   &
    2419                   BTEST( wall_flags_static_0(k,j,i+1), 0 )    .AND.                   &
    2420                   BTEST( wall_flags_static_0(k,j-1,i-1), 0 )  .AND.                   &
    2421                   BTEST( wall_flags_static_0(k,j+1,i-1), 0 )  .AND.                   &
    2422                   BTEST( wall_flags_static_0(k,j-1,i+1), 0 )  .AND.                   &
    2423                   BTEST( wall_flags_static_0(k,j+1,i+1), 0 ) )                        &
    2424                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 24 )
     2425             wall_flags_total_0(k,j,i) = IOR( wall_flags_total_0(k,j,i), wall_flags_static_0(k,j,i) )
     2426          ENDDO
     2427       ENDDO
     2428    ENDDO
     2429   
     2430    CALL exchange_horiz_int( wall_flags_total_0, nys, nyn, nxl, nxr, nzt, nbgp )
     2431   
     2432    DO i = nxl, nxr
     2433       DO j = nys, nyn
     2434          DO k = nzb, nzt+1
     2435             IF ( BTEST( wall_flags_total_0(k,j-1,i), 0 )    .AND.                   &
     2436                  BTEST( wall_flags_total_0(k,j+1,i), 0 )    .AND.                   &
     2437                  BTEST( wall_flags_total_0(k,j,i-1), 0 )    .AND.                   &
     2438                  BTEST( wall_flags_total_0(k,j,i+1), 0 )    .AND.                   &
     2439                  BTEST( wall_flags_total_0(k,j-1,i-1), 0 )  .AND.                   &
     2440                  BTEST( wall_flags_total_0(k,j+1,i-1), 0 )  .AND.                   &
     2441                  BTEST( wall_flags_total_0(k,j-1,i+1), 0 )  .AND.                   &
     2442                  BTEST( wall_flags_total_0(k,j+1,i+1), 0 ) )                        &
     2443                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 24 )
    24252444          ENDDO
    24262445       ENDDO
     
    24462465!--          effect on the flow is negligible.
    24472466             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2448                 IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )                         &
    2449                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 8 )
     2467                IF ( BTEST( wall_flags_total_0(k,j,i), 0 ) )                         &
     2468                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 8 )
    24502469             ELSE
    2451                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 8 )
     2470                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 8 )
    24522471             ENDIF
    24532472
     
    24562475!--       Special flag to control vertical diffusion at model top - former
    24572476!--       nzt_diff
    2458           wall_flags_static_0(:,j,i) = IBSET( wall_flags_static_0(:,j,i), 9 )
     2477          wall_flags_total_0(:,j,i) = IBSET( wall_flags_total_0(:,j,i), 9 )
    24592478          IF ( use_top_fluxes )                                                &
    2460              wall_flags_static_0(nzt+1,j,i) = IBCLR( wall_flags_static_0(nzt+1,j,i), 9 )
     2479             wall_flags_total_0(nzt+1,j,i) = IBCLR( wall_flags_total_0(nzt+1,j,i), 9 )
    24612480
    24622481
     
    24672486!--          topography, as well as initialize u with zero one grid point outside
    24682487!--          of topography.
    2469              IF ( BTEST( wall_flags_static_0(k-1,j,i), 1 )  .AND.                     &
    2470                   BTEST( wall_flags_static_0(k,j,i),   1 )  .AND.                     &
    2471                   BTEST( wall_flags_static_0(k+1,j,i), 1 ) )                          &
    2472                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 20 )
     2488             IF ( BTEST( wall_flags_total_0(k-1,j,i), 1 )  .AND.                     &
     2489                  BTEST( wall_flags_total_0(k,j,i),   1 )  .AND.                     &
     2490                  BTEST( wall_flags_total_0(k+1,j,i), 1 ) )                          &
     2491                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 20 )
    24732492!
    24742493!--          Special flag on v grid, former nzb_v_inner + 1, required   
     
    24762495!--          topography, as well as initialize v with zero one grid point outside
    24772496!--          of topography.
    2478              IF ( BTEST( wall_flags_static_0(k-1,j,i), 2 )  .AND.                     &
    2479                   BTEST( wall_flags_static_0(k,j,i),   2 )  .AND.                     &
    2480                   BTEST( wall_flags_static_0(k+1,j,i), 2 ) )                          &
    2481                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 21 )
     2497             IF ( BTEST( wall_flags_total_0(k-1,j,i), 2 )  .AND.                     &
     2498                  BTEST( wall_flags_total_0(k,j,i),   2 )  .AND.                     &
     2499                  BTEST( wall_flags_total_0(k+1,j,i), 2 ) )                          &
     2500                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 21 )
    24822501!
    24832502!--          Special flag on scalar grid, former nzb_s_inner+1. Used for
    24842503!--          lpm_sgs_tke
    2485              IF ( BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.                     &
    2486                   BTEST( wall_flags_static_0(k-1,j,i), 0 )  .AND.                     &
    2487                   BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                          &
    2488                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 25 )
     2504             IF ( BTEST( wall_flags_total_0(k,j,i),   0 )  .AND.                     &
     2505                  BTEST( wall_flags_total_0(k-1,j,i), 0 )  .AND.                     &
     2506                  BTEST( wall_flags_total_0(k+1,j,i), 0 ) )                          &
     2507                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 25 )
    24892508!
    24902509!--          Special flag on scalar grid, nzb_diff_s_outer - 1, required in
    24912510!--          in production_e
    24922511             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2493                 IF ( BTEST( wall_flags_static_0(k,j,i),   24 )  .AND.                 &
    2494                      BTEST( wall_flags_static_0(k-1,j,i), 24 )  .AND.                 &
    2495                      BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                       &
    2496                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 29 )
     2512                IF ( BTEST( wall_flags_total_0(k,j,i),   24 )  .AND.                 &
     2513                     BTEST( wall_flags_total_0(k-1,j,i), 24 )  .AND.                 &
     2514                     BTEST( wall_flags_total_0(k+1,j,i), 0 ) )                       &
     2515                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 29 )
    24972516             ELSE
    2498                 IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )                         &
    2499                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 29 )
     2517                IF ( BTEST( wall_flags_total_0(k,j,i), 0 ) )                         &
     2518                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 29 )
    25002519             ENDIF
    25012520!
     
    25032522!--          in production_e
    25042523             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2505                 IF ( BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.                  &
    2506                      BTEST( wall_flags_static_0(k-1,j,i), 0 )  .AND.                  &
    2507                      BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                       &
    2508                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 30 )
     2524                IF ( BTEST( wall_flags_total_0(k,j,i),   0 )  .AND.                  &
     2525                     BTEST( wall_flags_total_0(k-1,j,i), 0 )  .AND.                  &
     2526                     BTEST( wall_flags_total_0(k+1,j,i), 0 ) )                       &
     2527                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 30 )
    25092528             ELSE
    2510                 IF ( BTEST( wall_flags_static_0(k,j,i), 0 ) )                         &
    2511                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 30 )
     2529                IF ( BTEST( wall_flags_total_0(k,j,i), 0 ) )                         &
     2530                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 30 )
    25122531             ENDIF
    25132532          ENDDO
     
    25172536!
    25182537!--          Scalar grid
    2519              IF ( BTEST( wall_flags_static_0(k-1,j,i), 0 )  .AND.                     &
    2520             .NOT. BTEST( wall_flags_static_0(k,j,i), 0   ) )                          &
    2521                  wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 13 )
     2538             IF ( BTEST( wall_flags_total_0(k-1,j,i), 0 )  .AND.                     &
     2539            .NOT. BTEST( wall_flags_total_0(k,j,i), 0   ) )                          &
     2540                 wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 13 )
    25222541!
    25232542!--          Downward facing wall on u grid
    2524              IF ( BTEST( wall_flags_static_0(k-1,j,i), 1 )  .AND.                     &
    2525             .NOT. BTEST( wall_flags_static_0(k,j,i), 1   ) )                          &
    2526                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 15 )
     2543             IF ( BTEST( wall_flags_total_0(k-1,j,i), 1 )  .AND.                     &
     2544            .NOT. BTEST( wall_flags_total_0(k,j,i), 1   ) )                          &
     2545                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 15 )
    25272546!
    25282547!--          Downward facing wall on v grid
    2529              IF ( BTEST( wall_flags_static_0(k-1,j,i), 2 )  .AND.                     &
    2530             .NOT. BTEST( wall_flags_static_0(k,j,i), 2   ) )                          &
    2531                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 17 )
     2548             IF ( BTEST( wall_flags_total_0(k-1,j,i), 2 )  .AND.                     &
     2549            .NOT. BTEST( wall_flags_total_0(k,j,i), 2   ) )                          &
     2550                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 17 )
    25322551!
    25332552!--          Downward facing wall on w grid
    2534              IF ( BTEST( wall_flags_static_0(k-1,j,i), 3 )  .AND.                     &
    2535             .NOT. BTEST( wall_flags_static_0(k,j,i), 3 ) )                            &
    2536                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 19 )
     2553             IF ( BTEST( wall_flags_total_0(k-1,j,i), 3 )  .AND.                     &
     2554            .NOT. BTEST( wall_flags_total_0(k,j,i), 3 ) )                            &
     2555                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 19 )
    25372556          ENDDO
    25382557!
     
    25412560!
    25422561!--          Upward facing wall on scalar grid
    2543              IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.               &
    2544                         BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                    &
    2545                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 12 )
     2562             IF ( .NOT. BTEST( wall_flags_total_0(k,j,i),   0 )  .AND.               &
     2563                        BTEST( wall_flags_total_0(k+1,j,i), 0 ) )                    &
     2564                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 12 )
    25462565!
    25472566!--          Upward facing wall on u grid
    2548              IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   1 )  .AND.               &
    2549                         BTEST( wall_flags_static_0(k+1,j,i), 1 ) )                    &
    2550                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 14 )
     2567             IF ( .NOT. BTEST( wall_flags_total_0(k,j,i),   1 )  .AND.               &
     2568                        BTEST( wall_flags_total_0(k+1,j,i), 1 ) )                    &
     2569                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 14 )
    25512570
    25522571!   
    25532572!--          Upward facing wall on v grid
    2554              IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   2 )  .AND.               &
    2555                         BTEST( wall_flags_static_0(k+1,j,i), 2 ) )                    &
    2556                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 16 )
     2573             IF ( .NOT. BTEST( wall_flags_total_0(k,j,i),   2 )  .AND.               &
     2574                        BTEST( wall_flags_total_0(k+1,j,i), 2 ) )                    &
     2575                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 16 )
    25572576   
    25582577!
    25592578!--          Upward facing wall on w grid
    2560              IF ( .NOT. BTEST( wall_flags_static_0(k,j,i),   3 )  .AND.               &
    2561                         BTEST( wall_flags_static_0(k+1,j,i), 3 ) )                    &
    2562                 wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 18 )
     2579             IF ( .NOT. BTEST( wall_flags_total_0(k,j,i),   3 )  .AND.               &
     2580                        BTEST( wall_flags_total_0(k+1,j,i), 3 ) )                    &
     2581                wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 18 )
    25632582!
    25642583!--          Special flag on scalar grid, former nzb_s_inner
    2565              IF ( BTEST( wall_flags_static_0(k,j,i), 0 )  .OR.                        &
    2566                   BTEST( wall_flags_static_0(k,j,i), 12 ) .OR.                        &
    2567                   BTEST( wall_flags_static_0(k,j,i), 13 ) )                           &
    2568                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 22 )
     2584             IF ( BTEST( wall_flags_total_0(k,j,i), 0 )  .OR.                        &
     2585                  BTEST( wall_flags_total_0(k,j,i), 12 ) .OR.                        &
     2586                  BTEST( wall_flags_total_0(k,j,i), 13 ) )                           &
     2587                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 22 )
    25692588!
    25702589!--          Special flag on scalar grid, nzb_diff_s_inner - 1, required for
    25712590!--          flow_statistics
    25722591             IF ( constant_flux_layer  .OR.  use_surface_fluxes )  THEN
    2573                 IF ( BTEST( wall_flags_static_0(k,j,i),   0 )  .AND.                  &
    2574                      BTEST( wall_flags_static_0(k+1,j,i), 0 ) )                       &
    2575                   wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 23 )
     2592                IF ( BTEST( wall_flags_total_0(k,j,i),   0 )  .AND.                  &
     2593                     BTEST( wall_flags_total_0(k+1,j,i), 0 ) )                       &
     2594                  wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 23 )
    25762595             ELSE
    2577                 IF ( BTEST( wall_flags_static_0(k,j,i), 22 ) )                        &
    2578                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 23 )
     2596                IF ( BTEST( wall_flags_total_0(k,j,i), 22 ) )                        &
     2597                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 23 )
    25792598             ENDIF
    25802599   
    25812600
    25822601          ENDDO
    2583           wall_flags_static_0(nzt+1,j,i) = IBSET( wall_flags_static_0(nzt+1,j,i), 22 )
    2584           wall_flags_static_0(nzt+1,j,i) = IBSET( wall_flags_static_0(nzt+1,j,i), 23 )
     2602          wall_flags_total_0(nzt+1,j,i) = IBSET( wall_flags_total_0(nzt+1,j,i), 22 )
     2603          wall_flags_total_0(nzt+1,j,i) = IBSET( wall_flags_total_0(nzt+1,j,i), 23 )
    25852604!
    25862605!--       Set flags indicating that topography is close by in horizontal
     
    25932612          IF ( scalar_advec == 'ws-scheme' )  THEN
    25942613             DO k = nzb, nzt
    2595                 IF ( BTEST( wall_flags_static_0(k,j,i), 0 )  .AND. (                   &
    2596                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i-1), 0 ) )  .OR.&
    2597                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i-2), 0 ) )  .OR.&
    2598                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i-3), 0 ) )  .OR.&
    2599                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i+1), 0 ) )  .OR.&
    2600                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i+2), 0 ) )  .OR.&
    2601                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3:j+3,i+3), 0 ) )  .OR.&
    2602                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-1,i-3:i+3), 0 ) )  .OR.&
    2603                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-2,i-3:i+3), 0 ) )  .OR.&
    2604                      ANY( .NOT. BTEST( wall_flags_static_0(k,j-3,i-3:i+3), 0 ) )  .OR.&
    2605                      ANY( .NOT. BTEST( wall_flags_static_0(k,j+1,i-3:i+3), 0 ) )  .OR.&
    2606                      ANY( .NOT. BTEST( wall_flags_static_0(k,j+2,i-3:i+3), 0 ) )  .OR.&
    2607                      ANY( .NOT. BTEST( wall_flags_static_0(k,j+3,i-3:i+3), 0 ) )      &
    2608                                                             ) )                &
    2609                    wall_flags_static_0(k,j,i) = IBSET( wall_flags_static_0(k,j,i), 31 )
     2614                IF ( BTEST( wall_flags_total_0(k,j,i), 0 )  .AND. (                  &
     2615                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3:j+3,i-1), 0 ) )  .OR.&
     2616                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3:j+3,i-2), 0 ) )  .OR.&
     2617                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3:j+3,i-3), 0 ) )  .OR.&
     2618                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3:j+3,i+1), 0 ) )  .OR.&
     2619                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3:j+3,i+2), 0 ) )  .OR.&
     2620                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3:j+3,i+3), 0 ) )  .OR.&
     2621                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-1,i-3:i+3), 0 ) )  .OR.&
     2622                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-2,i-3:i+3), 0 ) )  .OR.&
     2623                     ANY( .NOT. BTEST( wall_flags_total_0(k,j-3,i-3:i+3), 0 ) )  .OR.&
     2624                     ANY( .NOT. BTEST( wall_flags_total_0(k,j+1,i-3:i+3), 0 ) )  .OR.&
     2625                     ANY( .NOT. BTEST( wall_flags_total_0(k,j+2,i-3:i+3), 0 ) )  .OR.&
     2626                     ANY( .NOT. BTEST( wall_flags_total_0(k,j+3,i-3:i+3), 0 ) )      &
     2627                                                            ) )                      &
     2628                   wall_flags_total_0(k,j,i) = IBSET( wall_flags_total_0(k,j,i), 31 )
    26102629                     
    26112630             ENDDO
     
    26562675       ENDDO
    26572676    ENDDO
     2677   
     2678    CALL exchange_horiz_int( wall_flags_static_0, nys, nyn, nxl, nxr, nzt, nbgp )
     2679   
     2680    DO i = nxl, nxr
     2681       DO j = nys, nyn
     2682          DO k = nzb, nzt+1
     2683             wall_flags_total_0(k,j,i) = IOR( wall_flags_total_0(k,j,i), wall_flags_static_0(k,j,i) )
     2684          ENDDO
     2685       ENDDO
     2686    ENDDO
    26582687!
    26592688!-- Exchange ghost points for wall flags
    2660     CALL exchange_horiz_int( wall_flags_static_0, nys, nyn, nxl, nxr, nzt, nbgp )
     2689    CALL exchange_horiz_int( wall_flags_total_0, nys, nyn, nxl, nxr, nzt, nbgp )
    26612690!
    26622691!-- Set boundary conditions also for flags. Can be interpreted as Neumann
     
    26652694       IF ( nys == 0  )  THEN
    26662695          DO  i = 1, nbgp     
    2667              wall_flags_static_0(:,nys-i,:)   = wall_flags_static_0(:,nys,:)
     2696             wall_flags_total_0(:,nys-i,:)   = wall_flags_total_0(:,nys,:)
    26682697          ENDDO
    26692698       ENDIF
    26702699       IF ( nyn == ny )  THEN
    26712700          DO  i = 1, nbgp 
    2672              wall_flags_static_0(:,nyn+i,:) = wall_flags_static_0(:,nyn,:)
     2701             wall_flags_total_0(:,nyn+i,:) = wall_flags_total_0(:,nyn,:)
    26732702          ENDDO
    26742703       ENDIF
     
    26772706       IF ( nxl == 0  )  THEN
    26782707          DO  i = 1, nbgp   
    2679              wall_flags_static_0(:,:,nxl-i)   = wall_flags_static_0(:,:,nxl)
     2708             wall_flags_total_0(:,:,nxl-i)   = wall_flags_total_0(:,:,nxl)
    26802709          ENDDO
    26812710       ENDIF
    26822711       IF ( nxr == nx )  THEN
    26832712          DO  i = 1, nbgp   
    2684              wall_flags_static_0(:,:,nxr+i) = wall_flags_static_0(:,:,nxr)     
     2713             wall_flags_total_0(:,:,nxr+i) = wall_flags_total_0(:,:,nxr)     
    26852714          ENDDO
    26862715       ENDIF     
     
    26952724    topo_top_ind(:,:,0) = MAXLOC(                                              &
    26962725                                  MERGE( 1, 0,                                 &
    2697                                           BTEST( wall_flags_static_0(:,:,:), ibit )   &
     2726                                    BTEST( wall_flags_total_0(:,:,:), ibit )   &
    26982727                                       ), DIM = 1                              &
    26992728                                ) - 1
     
    27032732    topo_top_ind(:,:,1) = MAXLOC(                                              &
    27042733                                  MERGE( 1, 0,                                 &
    2705                                           BTEST( wall_flags_static_0(:,:,:), ibit )   &
     2734                                    BTEST( wall_flags_total_0(:,:,:), ibit )   &
    27062735                                       ), DIM = 1                              &
    27072736                                ) - 1
     
    27112740    topo_top_ind(:,:,2) = MAXLOC(                                              &
    27122741                                  MERGE( 1, 0,                                 &
    2713                                           BTEST( wall_flags_static_0(:,:,:), ibit )   &
     2742                                    BTEST( wall_flags_total_0(:,:,:), ibit )   &
    27142743                                       ), DIM = 1                              &
    27152744                                ) - 1
     
    27192748    topo_top_ind(:,:,3) = MAXLOC(                                              &
    27202749                                  MERGE( 1, 0,                                 &
    2721                                           BTEST( wall_flags_static_0(:,:,:), ibit )   &
     2750                                    BTEST( wall_flags_total_0(:,:,:), ibit )   &
    27222751                                       ), DIM = 1                              &
    27232752                                ) - 1
     
    27272756    topo_top_ind(:,:,4) = MAXLOC(                                              &
    27282757                                  MERGE( 1, 0,                                 &
    2729                                           BTEST( wall_flags_static_0(:,:,:), ibit )   &
     2758                                    BTEST( wall_flags_total_0(:,:,:), ibit )   &
    27302759                                       ), DIM = 1                              &
    27312760                                ) - 1                           
    2732 
     2761       
    27332762 END SUBROUTINE set_topo_flags
    27342763
Note: See TracChangeset for help on using the changeset viewer.