Changeset 2696 for palm/trunk/SOURCE/poismg_mod.f90
- Timestamp:
- Dec 14, 2017 5:12:51 PM (6 years ago)
- Location:
- palm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk
-
palm/trunk/SOURCE
-
palm/trunk/SOURCE/poismg_mod.f90
r2298 r2696 1 1 !> @file poismg.f90 2 2 !------------------------------------------------------------------------------! 3 ! This file is part of PALM.3 ! This file is part of the PALM model system. 4 4 ! 5 5 ! PALM is free software: you can redistribute it and/or modify it under the … … 25 25 ! ----------------- 26 26 ! $Id$ 27 ! - Large-scale forcing implemented (MS) 28 ! 29 ! 2298 2017-06-29 09:28:18Z raasch 27 30 ! sendrecv_in_background related parts removed 28 31 ! … … 96 99 MODULE poismg_mod 97 100 101 USE control_parameters, & 102 ONLY: grid_level, force_bound_l, force_bound_n, force_bound_r, & 103 force_bound_s, forcing, inflow_l, inflow_n, inflow_r, inflow_s, & 104 nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s, & 105 outflow_l, outflow_n, outflow_r, outflow_s 98 106 99 107 USE cpulog, & … … 274 282 275 283 USE control_parameters, & 276 ONLY: bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,& 277 inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n, & 278 nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r, & 279 outflow_s 280 284 ONLY: bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t 281 285 USE grid_variables, & 282 286 ONLY: ddx2_mg, ddy2_mg … … 347 351 348 352 IF ( .NOT. bc_lr_cyc ) THEN 349 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l ) THEN 353 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. & 354 force_bound_l ) THEN 350 355 r(:,:,nxl_mg(l)-1) = r(:,:,nxl_mg(l)) 351 356 ENDIF 352 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r ) THEN 357 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. & 358 force_bound_r ) THEN 353 359 r(:,:,nxr_mg(l)+1) = r(:,:,nxr_mg(l)) 354 360 ENDIF … … 356 362 357 363 IF ( .NOT. bc_ns_cyc ) THEN 358 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n ) THEN 364 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. & 365 force_bound_n ) THEN 359 366 r(:,nyn_mg(l)+1,:) = r(:,nyn_mg(l),:) 360 367 ENDIF 361 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s ) THEN 368 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. & 369 force_bound_s ) THEN 362 370 r(:,nys_mg(l)-1,:) = r(:,nys_mg(l),:) 363 371 ENDIF … … 398 406 399 407 USE control_parameters, & 400 ONLY: bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,& 401 inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n, & 402 nest_bound_r, nest_bound_s, outflow_l, outflow_n, outflow_r, & 403 outflow_s 408 ONLY: bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t 404 409 405 410 USE indices, & … … 481 486 !-- Horizontal boundary conditions 482 487 IF ( .NOT. bc_lr_cyc ) THEN 483 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l ) THEN 488 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. & 489 force_bound_l ) THEN 484 490 f_mg(:,:,nxl_mg(l)-1) = f_mg(:,:,nxl_mg(l)) 485 491 ENDIF 486 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r ) THEN 492 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. & 493 force_bound_r ) THEN 487 494 f_mg(:,:,nxr_mg(l)+1) = f_mg(:,:,nxr_mg(l)) 488 495 ENDIF … … 490 497 491 498 IF ( .NOT. bc_ns_cyc ) THEN 492 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n ) THEN 499 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. & 500 force_bound_n ) THEN 493 501 f_mg(:,nyn_mg(l)+1,:) = f_mg(:,nyn_mg(l),:) 494 502 ENDIF 495 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s ) THEN 503 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. & 504 force_bound_s ) THEN 496 505 f_mg(:,nys_mg(l)-1,:) = f_mg(:,nys_mg(l),:) 497 506 ENDIF … … 535 544 536 545 USE control_parameters, & 537 ONLY: bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,& 538 inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n, & 539 nest_bound_r, nest_bound_s, outflow_l, outflow_n, & 540 outflow_r, outflow_s 541 546 ONLY: bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t 542 547 USE indices, & 543 548 ONLY: nxl_mg, nxr_mg, nys_mg, nyn_mg, nzb, nzt_mg … … 652 657 653 658 IF ( .NOT. bc_lr_cyc ) THEN 654 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l ) THEN 659 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. & 660 force_bound_l ) THEN 655 661 temp(:,:,nxl_mg(l)-1) = temp(:,:,nxl_mg(l)) 656 662 ENDIF 657 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r ) THEN 663 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. & 664 force_bound_r ) THEN 658 665 temp(:,:,nxr_mg(l)+1) = temp(:,:,nxr_mg(l)) 659 666 ENDIF … … 661 668 662 669 IF ( .NOT. bc_ns_cyc ) THEN 663 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n ) THEN 670 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. & 671 force_bound_n ) THEN 664 672 temp(:,nyn_mg(l)+1,:) = temp(:,nyn_mg(l),:) 665 673 ENDIF 666 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s ) THEN 674 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. & 675 force_bound_s ) THEN 667 676 temp(:,nys_mg(l)-1,:) = temp(:,nys_mg(l),:) 668 677 ENDIF … … 705 714 706 715 USE control_parameters, & 707 ONLY: bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, inflow_l,& 708 inflow_n, inflow_r, inflow_s, nest_bound_l, nest_bound_n, & 709 nest_bound_r, nest_bound_s, ngsrb, outflow_l, outflow_n, & 710 outflow_r, outflow_s 716 ONLY: bc_lr_cyc, bc_ns_cyc, ibc_p_b, ibc_p_t, ngsrb 711 717 712 718 USE grid_variables, & … … 961 967 962 968 IF ( .NOT. bc_lr_cyc ) THEN 963 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l ) THEN 969 IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. & 970 force_bound_l ) THEN 964 971 p_mg(:,:,nxl_mg(l)-1) = p_mg(:,:,nxl_mg(l)) 965 972 ENDIF 966 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r ) THEN 973 IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. & 974 force_bound_r ) THEN 967 975 p_mg(:,:,nxr_mg(l)+1) = p_mg(:,:,nxr_mg(l)) 968 976 ENDIF … … 970 978 971 979 IF ( .NOT. bc_ns_cyc ) THEN 972 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n ) THEN 980 IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. & 981 force_bound_n ) THEN 973 982 p_mg(:,nyn_mg(l)+1,:) = p_mg(:,nyn_mg(l),:) 974 983 ENDIF 975 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s ) THEN 984 IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. & 985 force_bound_s ) THEN 976 986 p_mg(:,nys_mg(l)-1,:) = p_mg(:,nys_mg(l),:) 977 987 ENDIF … … 1389 1399 USE control_parameters, & 1390 1400 ONLY: bc_lr_dirrad, bc_lr_raddir, bc_ns_dirrad, bc_ns_raddir, & 1391 gamma_mg, grid_level, grid_level_count, ibc_p_b, ibc_p_t, & 1392 inflow_l, inflow_n, inflow_r, inflow_s, maximum_grid_level, & 1393 mg_switch_to_pe0_level, mg_switch_to_pe0, nest_domain, & 1394 nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s, & 1395 ngsrb, outflow_l, outflow_n, outflow_r, outflow_s 1401 gamma_mg, grid_level_count, ibc_p_b, ibc_p_t, & 1402 maximum_grid_level, mg_switch_to_pe0_level, & 1403 mg_switch_to_pe0, nest_domain, ngsrb 1396 1404 1397 1405 USE indices, & … … 1544 1552 nest_bound_l = .TRUE. 1545 1553 nest_bound_r = .TRUE. 1554 ELSEIF ( forcing ) THEN 1555 force_bound_l = .TRUE. 1556 force_bound_r = .TRUE. 1546 1557 ENDIF 1547 1558 … … 1559 1570 nest_bound_s = .TRUE. 1560 1571 nest_bound_n = .TRUE. 1572 ELSEIF ( forcing ) THEN 1573 force_bound_s = .TRUE. 1574 force_bound_n = .TRUE. 1561 1575 ENDIF 1562 1576 … … 1626 1640 outflow_n = .FALSE.; outflow_s = .FALSE. 1627 1641 ! 1628 !-- In case of nesting , restore lateral boundary conditions1642 !-- In case of nesting or forcing, restore lateral boundary conditions 1629 1643 IF ( nest_domain ) THEN 1630 1644 nest_bound_l = .FALSE. … … 1632 1646 nest_bound_s = .FALSE. 1633 1647 nest_bound_n = .FALSE. 1648 ENDIF 1649 IF ( forcing ) THEN 1650 force_bound_l = .FALSE. 1651 force_bound_r = .FALSE. 1652 force_bound_s = .FALSE. 1653 force_bound_n = .FALSE. 1634 1654 ENDIF 1635 1655 … … 1641 1661 ELSEIF ( nest_domain ) THEN 1642 1662 nest_bound_l = .TRUE. 1663 ELSEIF ( forcing ) THEN 1664 force_bound_l = .TRUE. 1643 1665 ENDIF 1644 1666 ENDIF … … 1651 1673 ELSEIF ( nest_domain ) THEN 1652 1674 nest_bound_r = .TRUE. 1675 ELSEIF ( forcing ) THEN 1676 force_bound_r = .TRUE. 1653 1677 ENDIF 1654 1678 ENDIF … … 1661 1685 ELSEIF ( nest_domain ) THEN 1662 1686 nest_bound_s = .TRUE. 1687 ELSEIF ( forcing ) THEN 1688 force_bound_s = .TRUE. 1663 1689 ENDIF 1664 1690 ENDIF … … 1671 1697 ELSEIF ( nest_domain ) THEN 1672 1698 nest_bound_n = .TRUE. 1699 ELSEIF ( forcing ) THEN 1700 force_bound_n = .TRUE. 1673 1701 ENDIF 1674 1702 ENDIF … … 1821 1849 USE control_parameters, & 1822 1850 ONLY: bc_lr_cyc, bc_ns_cyc, grid_level, ibc_p_b, ibc_p_t, & 1823 inflow_l, inflow_n, inflow_r, inflow_s, maximum_grid_level, & 1824 mg_switch_to_pe0_level, outflow_l, outflow_n, outflow_r, & 1825 outflow_s, synchronous_exchange 1851 maximum_grid_level, & 1852 mg_switch_to_pe0_level, synchronous_exchange 1826 1853 1827 1854 USE indices, &
Note: See TracChangeset
for help on using the changeset viewer.