Changeset 4346 for palm/trunk/SOURCE/init_grid.f90
- Timestamp:
- Dec 18, 2019 11:55:56 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/init_grid.f90
r4340 r4346 25 25 ! ----------------- 26 26 ! $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 27 31 ! Topography closed channel flow with symmetric boundaries implemented 28 32 ! … … 2353 2357 USE indices, & 2354 2358 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 2356 2360 2357 2361 USE kinds … … 2407 2411 2408 2412 CALL exchange_horiz_int( wall_flags_static_0, nys, nyn, nxl, nxr, nzt, nbgp ) 2413 2409 2414 ! 2410 2415 !-- Set outer array for scalars to mask near-surface grid points. Note, on 2411 2416 !-- basis of flag 24 futher flags will be derived which are used to control 2412 2417 !-- 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 2413 2422 DO i = nxl, nxr 2414 2423 DO j = nys, nyn 2415 2424 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 ) 2425 2444 ENDDO 2426 2445 ENDDO … … 2446 2465 !-- effect on the flow is negligible. 2447 2466 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 ) 2450 2469 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 ) 2452 2471 ENDIF 2453 2472 … … 2456 2475 !-- Special flag to control vertical diffusion at model top - former 2457 2476 !-- 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 ) 2459 2478 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 ) 2461 2480 2462 2481 … … 2467 2486 !-- topography, as well as initialize u with zero one grid point outside 2468 2487 !-- 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 ) 2473 2492 ! 2474 2493 !-- Special flag on v grid, former nzb_v_inner + 1, required … … 2476 2495 !-- topography, as well as initialize v with zero one grid point outside 2477 2496 !-- 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 ) 2482 2501 ! 2483 2502 !-- Special flag on scalar grid, former nzb_s_inner+1. Used for 2484 2503 !-- 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 ) 2489 2508 ! 2490 2509 !-- Special flag on scalar grid, nzb_diff_s_outer - 1, required in 2491 2510 !-- in production_e 2492 2511 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 ) 2497 2516 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 ) 2500 2519 ENDIF 2501 2520 ! … … 2503 2522 !-- in production_e 2504 2523 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 ) 2509 2528 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 ) 2512 2531 ENDIF 2513 2532 ENDDO … … 2517 2536 ! 2518 2537 !-- 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 ) 2522 2541 ! 2523 2542 !-- 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 ) 2527 2546 ! 2528 2547 !-- 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 ) 2532 2551 ! 2533 2552 !-- 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 ) 2537 2556 ENDDO 2538 2557 ! … … 2541 2560 ! 2542 2561 !-- 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 ) 2546 2565 ! 2547 2566 !-- 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 ) 2551 2570 2552 2571 ! 2553 2572 !-- 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 ) 2557 2576 2558 2577 ! 2559 2578 !-- 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 ) 2563 2582 ! 2564 2583 !-- 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 ) 2569 2588 ! 2570 2589 !-- Special flag on scalar grid, nzb_diff_s_inner - 1, required for 2571 2590 !-- flow_statistics 2572 2591 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 ) 2576 2595 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 ) 2579 2598 ENDIF 2580 2599 2581 2600 2582 2601 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 ) 2585 2604 ! 2586 2605 !-- Set flags indicating that topography is close by in horizontal … … 2593 2612 IF ( scalar_advec == 'ws-scheme' ) THEN 2594 2613 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 ) 2610 2629 2611 2630 ENDDO … … 2656 2675 ENDDO 2657 2676 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 2658 2687 ! 2659 2688 !-- 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 ) 2661 2690 ! 2662 2691 !-- Set boundary conditions also for flags. Can be interpreted as Neumann … … 2665 2694 IF ( nys == 0 ) THEN 2666 2695 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,:) 2668 2697 ENDDO 2669 2698 ENDIF 2670 2699 IF ( nyn == ny ) THEN 2671 2700 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,:) 2673 2702 ENDDO 2674 2703 ENDIF … … 2677 2706 IF ( nxl == 0 ) THEN 2678 2707 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) 2680 2709 ENDDO 2681 2710 ENDIF 2682 2711 IF ( nxr == nx ) THEN 2683 2712 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) 2685 2714 ENDDO 2686 2715 ENDIF … … 2695 2724 topo_top_ind(:,:,0) = MAXLOC( & 2696 2725 MERGE( 1, 0, & 2697 BTEST( wall_flags_static_0(:,:,:), ibit ) &2726 BTEST( wall_flags_total_0(:,:,:), ibit ) & 2698 2727 ), DIM = 1 & 2699 2728 ) - 1 … … 2703 2732 topo_top_ind(:,:,1) = MAXLOC( & 2704 2733 MERGE( 1, 0, & 2705 BTEST( wall_flags_static_0(:,:,:), ibit ) &2734 BTEST( wall_flags_total_0(:,:,:), ibit ) & 2706 2735 ), DIM = 1 & 2707 2736 ) - 1 … … 2711 2740 topo_top_ind(:,:,2) = MAXLOC( & 2712 2741 MERGE( 1, 0, & 2713 BTEST( wall_flags_static_0(:,:,:), ibit ) &2742 BTEST( wall_flags_total_0(:,:,:), ibit ) & 2714 2743 ), DIM = 1 & 2715 2744 ) - 1 … … 2719 2748 topo_top_ind(:,:,3) = MAXLOC( & 2720 2749 MERGE( 1, 0, & 2721 BTEST( wall_flags_static_0(:,:,:), ibit ) &2750 BTEST( wall_flags_total_0(:,:,:), ibit ) & 2722 2751 ), DIM = 1 & 2723 2752 ) - 1 … … 2727 2756 topo_top_ind(:,:,4) = MAXLOC( & 2728 2757 MERGE( 1, 0, & 2729 BTEST( wall_flags_static_0(:,:,:), ibit ) &2758 BTEST( wall_flags_total_0(:,:,:), ibit ) & 2730 2759 ), DIM = 1 & 2731 2760 ) - 1 2732 2761 2733 2762 END SUBROUTINE set_topo_flags 2734 2763
Note: See TracChangeset
for help on using the changeset viewer.