Changeset 4457 for palm/trunk
- Timestamp:
- Mar 11, 2020 2:20:43 PM (5 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 1 deleted
- 31 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/Makefile
r4453 r4457 25 25 # ----------------- 26 26 # $Id$ 27 # exchange horiz has been modularized and exchange horiz 2d has been merged, dependencies updated 28 # accordingly 29 # 30 # 4453 2020-03-11 08:10:13Z raasch 27 31 # dependencies for exchange horiz modified 28 32 # … … 192 196 disturb_heatflux.f90 \ 193 197 dynamics_mod.f90 \ 194 exchange_horiz_2d.f90 \ 195 exchange_horiz.f90 \ 198 exchange_horiz_mod.f90 \ 196 199 fft_xy_mod.f90 \ 197 200 flow_statistics.f90 \ … … 352 355 modules.o 353 356 advec_ws.o: \ 357 exchange_horiz_mod.o \ 354 358 mod_kinds.o \ 355 359 modules.o … … 362 366 average_3d_data.o: \ 363 367 cpulog_mod.o \ 364 exchange_horiz_ 2d.o \368 exchange_horiz_mod.o \ 365 369 mod_kinds.o \ 366 370 module_interface.o \ … … 383 387 advec_s_up.o \ 384 388 diffusion_s.o \ 389 exchange_horiz_mod.o \ 385 390 mod_kinds.o \ 386 391 modules.o \ … … 431 436 chem_photolysis_mod.o \ 432 437 diffusion_s.o \ 438 exchange_horiz_mod.o \ 433 439 mod_kinds.o \ 434 440 modules.o \ … … 477 483 data_output_binary_module.o: \ 478 484 mod_kinds.o 485 data_output_mask.o: \ 486 basic_constants_and_equations_mod.o \ 487 bulk_cloud_model_mod.o \ 488 chemistry_model_mod.o \ 489 cpulog_mod.o \ 490 diagnostic_output_quantities_mod.o \ 491 exchange_horiz_mod.o \ 492 mod_kinds.o \ 493 mod_particle_attributes.o \ 494 modules.o \ 495 netcdf_interface_mod.o \ 496 salsa_mod.o 479 497 data_output_module.o: \ 480 498 data_output_binary_module.o \ 481 499 data_output_netcdf4_module.o \ 482 500 mod_kinds.o 483 data_output_mask.o: \484 basic_constants_and_equations_mod.o \485 bulk_cloud_model_mod.o \486 chemistry_model_mod.o \487 cpulog_mod.o \488 diagnostic_output_quantities_mod.o \489 mod_kinds.o \490 mod_particle_attributes.o \491 modules.o \492 netcdf_interface_mod.o \493 salsa_mod.o494 501 data_output_netcdf4_module.o: \ 495 502 mod_kinds.o … … 521 528 bulk_cloud_model_mod.o \ 522 529 cpulog_mod.o \ 530 exchange_horiz_mod.o \ 523 531 land_surface_model_mod.o \ 524 532 mod_kinds.o \ … … 533 541 bulk_cloud_model_mod.o \ 534 542 cpulog_mod.o \ 543 exchange_horiz_mod.o \ 535 544 land_surface_model_mod.o \ 536 545 mod_kinds.o \ … … 543 552 urban_surface_mod.o 544 553 diagnostic_output_quantities_mod.o: \ 554 exchange_horiz_mod.o \ 545 555 mod_kinds.o \ 546 556 modules.o \ … … 570 580 disturb_heatflux.o: \ 571 581 cpulog_mod.o \ 582 exchange_horiz_mod.o \ 572 583 mod_kinds.o \ 573 584 modules.o \ … … 580 591 pmc_interface_mod.o \ 581 592 modules.o 582 exchange_horiz.o: \ 583 cpulog_mod.o \ 584 mod_kinds.o \ 585 modules.o 586 exchange_horiz_2d.o: \ 593 exchange_horiz_mod.o: \ 587 594 cpulog_mod.o \ 588 595 mod_kinds.o \ … … 673 680 vertical_nesting_mod.o 674 681 init_grid.o: \ 682 exchange_horiz_mod.o \ 675 683 mod_kinds.o \ 676 684 modules.o \ … … 692 700 vertical_nesting_mod.o 693 701 init_pt_anomaly.o: \ 702 exchange_horiz_mod.o \ 694 703 mod_kinds.o \ 695 704 modules.o 696 705 init_rankine.o: \ 697 706 basic_constants_and_equations_mod.o \ 707 exchange_horiz_mod.o \ 698 708 mod_kinds.o \ 699 709 modules.o … … 708 718 basic_constants_and_equations_mod.o \ 709 719 cpulog_mod.o \ 720 exchange_horiz_mod.o \ 710 721 mod_kinds.o \ 711 722 mod_particle_attributes.o \ … … 803 814 mod_particle_attributes.o: \ 804 815 mod_kinds.o 816 nesting_offl_mod.o: \ 817 chem_modules.o \ 818 cpulog_mod.o \ 819 exchange_horiz_mod.o \ 820 mod_kinds.o \ 821 modules.o \ 822 netcdf_data_input_mod.o \ 823 salsa_mod.o 805 824 netcdf_data_input_mod.o: \ 806 825 chem_modules.o \ 807 826 cpulog_mod.o \ 827 exchange_horiz_mod.o \ 808 828 mod_kinds.o \ 809 829 modules.o \ … … 828 848 urban_surface_mod.o \ 829 849 user_module.o 830 nesting_offl_mod.o: \831 chem_modules.o \832 cpulog_mod.o \833 mod_kinds.o \834 modules.o \835 netcdf_data_input_mod.o \836 salsa_mod.o837 850 ocean_mod.o: \ 838 851 advec_s_pw.o \ … … 855 868 cpulog_mod.o \ 856 869 diagnostic_output_quantities_mod.o \ 870 exchange_horiz_mod.o \ 857 871 land_surface_model_mod.o \ 858 872 mod_kinds.o \ … … 886 900 plant_canopy_model_mod.o: \ 887 901 bulk_cloud_model_mod.o \ 902 exchange_horiz_mod.o \ 888 903 mod_kinds.o \ 889 904 modules.o \ … … 936 951 poismg_mod.o: \ 937 952 cpulog_mod.o \ 953 exchange_horiz_mod.o \ 938 954 mod_kinds.o \ 939 955 modules.o 940 956 poismg_noopt_mod.o: \ 941 957 cpulog_mod.o \ 958 exchange_horiz_mod.o \ 942 959 mod_kinds.o \ 943 960 modules.o … … 946 963 pres.o: \ 947 964 cpulog_mod.o \ 965 exchange_horiz_mod.o \ 948 966 mod_kinds.o \ 949 967 modules.o \ … … 997 1015 bulk_cloud_model_mod.o \ 998 1016 calc_mean_profile.o \ 1017 exchange_horiz_mod.o \ 999 1018 mod_particle_attributes.o \ 1000 1019 modules.o \ … … 1043 1062 chem_modules.o \ 1044 1063 diffusion_s.o \ 1064 exchange_horiz_mod.o \ 1045 1065 netcdf_data_input_mod.o \ 1046 1066 palm_date_time_mod.o \ … … 1051 1071 mod_kinds.o 1052 1072 sor.o: \ 1073 exchange_horiz_mod.o \ 1053 1074 mod_kinds.o \ 1054 1075 modules.o … … 1081 1102 chem_gasphase_mod.o \ 1082 1103 chem_modules.o \ 1083 exchange_horiz_ 2d.o \1104 exchange_horiz_mod.o \ 1084 1105 land_surface_model_mod.o \ 1085 1106 mod_kinds.o \ … … 1102 1123 basic_constants_and_equations_mod.o \ 1103 1124 cpulog_mod.o \ 1125 exchange_horiz_mod.o \ 1104 1126 mod_kinds.o \ 1105 1127 modules.o \ … … 1125 1147 diagnostic_output_quantities_mod.o \ 1126 1148 disturb_heatflux.o \ 1149 exchange_horiz_mod.o \ 1127 1150 indoor_model_mod.o \ 1128 1151 lagrangian_particle_model_mod.o \ … … 1156 1179 cpulog_mod.o \ 1157 1180 diagnostic_output_quantities_mod.o \ 1181 exchange_horiz_mod.o \ 1158 1182 land_surface_model_mod.o \ 1159 1183 mod_kinds.o \ … … 1194 1218 bulk_cloud_model_mod.o \ 1195 1219 cpulog_mod.o \ 1220 exchange_horiz_mod.o \ 1196 1221 mod_kinds.o \ 1197 1222 mod_particle_attributes.o \ … … 1275 1300 pmc_interface_mod.o 1276 1301 vertical_nesting_mod.o: \ 1302 exchange_horiz_mod.o \ 1277 1303 mod_kinds.o \ 1278 1304 modules.o \ … … 1305 1331 cpulog_mod.o \ 1306 1332 data_output_module.o \ 1333 exchange_horiz_mod.o \ 1307 1334 netcdf_data_input_mod.o \ 1308 1335 mod_kinds.o \ -
palm/trunk/SOURCE/advec_ws.f90
r4414 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4414 2020-02-19 20:16:04Z suehring 27 30 ! Move call for initialization of control flags to ws_init 28 31 ! … … 184 187 dt_3d 185 188 189 USE exchange_horiz_mod, & 190 ONLY: exchange_horiz_int 191 186 192 USE indices, & 187 193 ONLY: advc_flags_m, & … … 208 214 ONLY: ddx, ddy 209 215 216 USE kinds 217 210 218 USE pegrid, & 211 219 ONLY: threads_per_task 212 213 USE kinds214 220 215 221 USE statistics, & -
palm/trunk/SOURCE/average_3d_data.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added, 28 ! bugfix for call of exchange horiz 2d 29 ! 30 ! 4360 2020-01-07 11:25:50Z suehring 27 31 ! Move 2-m potential temperature output to diagnostic_output_quantities 28 32 ! … … 67 71 ONLY: cpu_log, log_point 68 72 73 USE exchange_horiz_mod, & 74 ONLY: exchange_horiz_2d 75 69 76 USE indices, & 70 ONLY: n bgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt77 ONLY: nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzt 71 78 72 79 USE kinds … … 123 130 ENDDO 124 131 ENDDO 125 CALL exchange_horiz_2d( ghf_av , nbgp)132 CALL exchange_horiz_2d( ghf_av ) 126 133 ENDIF 127 134 … … 133 140 ENDDO 134 141 ENDDO 135 CALL exchange_horiz_2d( qsws_av , nbgp)142 CALL exchange_horiz_2d( qsws_av ) 136 143 ENDIF 137 144 … … 163 170 ENDDO 164 171 ENDDO 165 CALL exchange_horiz_2d( ol_av , nbgp)172 CALL exchange_horiz_2d( ol_av ) 166 173 ENDIF 167 174 … … 284 291 ENDDO 285 292 ENDDO 286 CALL exchange_horiz_2d( r_a_av , nbgp)293 CALL exchange_horiz_2d( r_a_av ) 287 294 ENDIF 288 295 … … 305 312 ENDDO 306 313 ENDDO 307 CALL exchange_horiz_2d( shf_av , nbgp)314 CALL exchange_horiz_2d( shf_av ) 308 315 ENDIF 309 316 … … 315 322 ENDDO 316 323 ENDDO 317 CALL exchange_horiz_2d( ssws_av , nbgp)324 CALL exchange_horiz_2d( ssws_av ) 318 325 ENDIF 319 326 … … 325 332 ENDDO 326 333 ENDDO 327 CALL exchange_horiz_2d( ts_av , nbgp)334 CALL exchange_horiz_2d( ts_av ) 328 335 ENDIF 329 336 … … 335 342 ENDDO 336 343 ENDDO 337 CALL exchange_horiz_2d( tsurf_av , nbgp)344 CALL exchange_horiz_2d( tsurf_av ) 338 345 ENDIF 339 346 … … 356 363 ENDDO 357 364 ENDDO 358 CALL exchange_horiz_2d( us_av , nbgp)365 CALL exchange_horiz_2d( us_av ) 359 366 ENDIF 360 367 … … 399 406 ENDDO 400 407 ENDDO 401 CALL exchange_horiz_2d( z0_av , nbgp)408 CALL exchange_horiz_2d( z0_av ) 402 409 ENDIF 403 410 … … 409 416 ENDDO 410 417 ENDDO 411 CALL exchange_horiz_2d( z0h_av , nbgp)418 CALL exchange_horiz_2d( z0h_av ) 412 419 ENDIF 413 420 … … 419 426 ENDDO 420 427 ENDDO 421 CALL exchange_horiz_2d( z0q_av , nbgp)428 CALL exchange_horiz_2d( z0q_av ) 422 429 ENDIF 423 430 -
palm/trunk/SOURCE/bulk_cloud_model_mod.f90
r4418 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4418 2020-02-21 09:41:13Z raasch 27 30 ! bugfix for raindrop number adjustment 28 31 ! … … 1311 1314 SUBROUTINE bcm_exchange_horiz 1312 1315 1316 USE exchange_horiz_mod, & 1317 ONLY: exchange_horiz 1318 1313 1319 1314 1320 IF ( .NOT. microphysics_sat_adjust .AND. & -
palm/trunk/SOURCE/chemistry_model_mod.f90
r4442 r4457 27 27 ! ----------------- 28 28 ! $Id$ 29 ! use statement for exchange horiz added, 30 ! bugfix for call of exchange horiz 2d 31 ! 32 ! 4442 2020-03-04 19:21:13Z suehring 29 33 ! Change order of dimension in surface array %frac to allow for better 30 34 ! vectorization. … … 623 627 SUBROUTINE chem_3d_data_averaging( mode, variable ) 624 628 625 626 629 USE control_parameters 630 631 USE exchange_horiz_mod, & 632 ONLY: exchange_horiz_2d 633 627 634 628 635 CHARACTER (LEN=*) :: mode !< … … 717 724 ENDDO 718 725 ENDDO 719 CALL exchange_horiz_2d( chem_species(lsp)%cssws_av , nbgp )726 CALL exchange_horiz_2d( chem_species(lsp)%cssws_av ) 720 727 ENDIF 721 728 ENDDO … … 2760 2767 SUBROUTINE chem_exchange_horiz_bounds 2761 2768 2769 USE exchange_horiz_mod, & 2770 ONLY: exchange_horiz 2771 2762 2772 INTEGER(iwp) :: lsp !< 2763 2773 INTEGER(iwp) :: lsp_usr !< -
palm/trunk/SOURCE/data_output_2d.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 112 115 ONLY: cpu_log, log_point 113 116 117 USE exchange_horiz_mod, & 118 ONLY: exchange_horiz 119 114 120 USE indices, & 115 121 ONLY: nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, & -
palm/trunk/SOURCE/data_output_3d.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 105 108 USE cpulog, & 106 109 ONLY: log_point, cpu_log 110 111 USE exchange_horiz_mod, & 112 ONLY: exchange_horiz 107 113 108 114 USE indices, & -
palm/trunk/SOURCE/data_output_mask.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 105 108 #endif 106 109 110 USE cpulog, & 111 ONLY: cpu_log, log_point 112 107 113 USE diagnostic_output_quantities_mod, & 108 114 ONLY: doq_output_mask 109 115 110 USE cpulog,&111 ONLY: cpu_log, log_point116 USE exchange_horiz_mod, & 117 ONLY: exchange_horiz 112 118 113 119 USE indices, & -
palm/trunk/SOURCE/diagnostic_output_quantities_mod.f90
r4431 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added, 28 ! bugfix for call of exchange horiz 2d 29 ! 30 ! 4431 2020-02-27 23:23:01Z gronemeier 27 31 ! added wspeed and wdir output; bugfix: set fill_value in case of masked output 28 32 ! … … 110 114 ! USE cpulog, & 111 115 ! ONLY: cpu_log, log_point 116 117 USE exchange_horiz_mod, & 118 ONLY: exchange_horiz_2d 112 119 113 120 USE grid_variables, & … … 598 605 ENDDO 599 606 ENDDO 600 CALL exchange_horiz_2d( pt_2m_av , nbgp)607 CALL exchange_horiz_2d( pt_2m_av ) 601 608 ENDIF 602 609 … … 608 615 ENDDO 609 616 ENDDO 610 CALL exchange_horiz_2d( uv_10m_av , nbgp)617 CALL exchange_horiz_2d( uv_10m_av ) 611 618 ENDIF 612 619 -
palm/trunk/SOURCE/disturb_field.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Introduction of wall_flags_total_0, which currently sets bits based on static 28 31 ! topography information used in wall_flags_static_0 … … 64 67 ONLY: cpu_log, log_point 65 68 69 USE exchange_horiz_mod, & 70 ONLY: exchange_horiz 71 66 72 USE indices, & 67 73 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nzb, nzb_max, & -
palm/trunk/SOURCE/exchange_horiz_mod.f90
r4456 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! routine has been modularized, file exchange_horiz_2d has been merged 28 ! 29 ! 4429 2020-02-27 15:24:30Z raasch 27 30 ! bugfix: cpp-directives added for serial mode 28 31 ! … … 45 48 !> lateral boundary conditions, respectively. 46 49 !------------------------------------------------------------------------------! 50 MODULE exchange_horiz_mod 51 52 USE kinds 53 54 USE pegrid 55 56 IMPLICIT NONE 57 58 PRIVATE 59 PUBLIC exchange_horiz, exchange_horiz_int, exchange_horiz_2d, exchange_horiz_2d_byte, & 60 exchange_horiz_2d_int 61 62 INTERFACE exchange_horiz 63 MODULE PROCEDURE exchange_horiz 64 END INTERFACE exchange_horiz 65 66 INTERFACE exchange_horiz_int 67 MODULE PROCEDURE exchange_horiz_int 68 END INTERFACE exchange_horiz_int 69 70 INTERFACE exchange_horiz_2d 71 MODULE PROCEDURE exchange_horiz_2d 72 END INTERFACE exchange_horiz_2d 73 74 INTERFACE exchange_horiz_2d_byte 75 MODULE PROCEDURE exchange_horiz_2d_byte 76 END INTERFACE exchange_horiz_2d_byte 77 78 INTERFACE exchange_horiz_2d_int 79 MODULE PROCEDURE exchange_horiz_2d_int 80 END INTERFACE exchange_horiz_2d_int 81 82 83 CONTAINS 84 85 47 86 SUBROUTINE exchange_horiz( ar, nbgp_local) 48 49 87 50 88 USE control_parameters, & … … 62 100 ONLY: nxl, nxr, nyn, nys, nzb, nzt 63 101 64 USE kinds65 66 USE pegrid67 68 IMPLICIT NONE69 70 102 71 103 #if defined( _OPENACC ) … … 293 325 USE indices, & 294 326 ONLY: nzb 295 296 USE kinds297 298 USE pegrid299 300 IMPLICIT NONE301 327 302 328 INTEGER(iwp) :: nxl_l !< local index bound at current grid level, left side … … 379 405 #endif 380 406 381 382 407 END SUBROUTINE exchange_horiz_int 408 409 ! Description: 410 ! ------------ 411 !> Exchange of lateral (ghost) boundaries (parallel computers) and cyclic 412 !> boundary conditions, respectively, for 2D-arrays. 413 !------------------------------------------------------------------------------! 414 SUBROUTINE exchange_horiz_2d( ar ) 415 416 USE control_parameters, & 417 ONLY : bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r, & 418 bc_dirichlet_s, bc_radiation_l, & 419 bc_radiation_n, bc_radiation_r, bc_radiation_s 420 421 USE cpulog, & 422 ONLY : cpu_log, log_point_s 423 424 USE indices, & 425 ONLY : nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg 426 427 #if ! defined( __parallel ) 428 USE control_parameters, & 429 ONLY: bc_lr_cyc, bc_ns_cyc 430 #endif 431 432 433 INTEGER(iwp) :: i !< 434 435 REAL(wp) :: ar(nysg:nyng,nxlg:nxrg) !< 436 437 438 CALL cpu_log( log_point_s(13), 'exchange_horiz_2d', 'start' ) 439 440 #if defined( __parallel ) 441 442 ! 443 !-- Exchange of lateral boundary values for parallel computers 444 IF ( pdims(1) == 1 ) THEN 445 446 ! 447 !-- One-dimensional decomposition along y, boundary values can be exchanged 448 !-- within the PE memory 449 ar(:,nxlg:nxl-1) = ar(:,nxr-nbgp+1:nxr) 450 ar(:,nxr+1:nxrg) = ar(:,nxl:nxl+nbgp-1) 451 452 ELSE 453 ! 454 !-- Send left boundary, receive right one 455 456 CALL MPI_SENDRECV( ar(nysg,nxl), 1, type_y, pleft, 0, & 457 ar(nysg,nxr+1), 1, type_y, pright, 0, & 458 comm2d, status, ierr ) 459 ! 460 !-- Send right boundary, receive left one 461 CALL MPI_SENDRECV( ar(nysg,nxr+1-nbgp), 1, type_y, pright, 1, & 462 ar(nysg,nxlg), 1, type_y, pleft, 1, & 463 comm2d, status, ierr ) 464 465 466 ENDIF 467 468 IF ( pdims(2) == 1 ) THEN 469 ! 470 !-- One-dimensional decomposition along x, boundary values can be exchanged 471 !-- within the PE memory 472 ar(nysg:nys-1,:) = ar(nyn-nbgp+1:nyn,:) 473 ar(nyn+1:nyng,:) = ar(nys:nys+nbgp-1,:) 474 475 ELSE 476 ! 477 !-- Send front boundary, receive rear one 478 479 CALL MPI_SENDRECV( ar(nys,nxlg), 1, type_x, psouth, 0, & 480 ar(nyn+1,nxlg), 1, type_x, pnorth, 0, & 481 comm2d, status, ierr ) 482 ! 483 !-- Send rear boundary, receive front one 484 CALL MPI_SENDRECV( ar(nyn+1-nbgp,nxlg), 1, type_x, pnorth, 1, & 485 ar(nysg,nxlg), 1, type_x, psouth, 1, & 486 comm2d, status, ierr ) 487 488 ENDIF 489 490 #else 491 492 ! 493 !-- Lateral boundary conditions in the non-parallel case 494 IF ( bc_lr_cyc ) THEN 495 ar(:,nxlg:nxl-1) = ar(:,nxr-nbgp+1:nxr) 496 ar(:,nxr+1:nxrg) = ar(:,nxl:nxl+nbgp-1) 497 ENDIF 498 499 IF ( bc_ns_cyc ) THEN 500 ar(nysg:nys-1,:) = ar(nyn-nbgp+1:nyn,:) 501 ar(nyn+1:nyng,:) = ar(nys:nys+nbgp-1,:) 502 ENDIF 503 504 #endif 505 506 ! 507 !-- Neumann-conditions at inflow/outflow/nested boundaries 508 IF ( bc_dirichlet_l .OR. bc_radiation_l ) THEN 509 DO i = nbgp, 1, -1 510 ar(:,nxl-i) = ar(:,nxl) 511 ENDDO 512 ENDIF 513 IF ( bc_dirichlet_r .OR. bc_radiation_r ) THEN 514 DO i = 1, nbgp 515 ar(:,nxr+i) = ar(:,nxr) 516 ENDDO 517 ENDIF 518 IF ( bc_dirichlet_s .OR. bc_radiation_s ) THEN 519 DO i = nbgp, 1, -1 520 ar(nys-i,:) = ar(nys,:) 521 ENDDO 522 ENDIF 523 IF ( bc_dirichlet_n .OR. bc_radiation_n ) THEN 524 DO i = 1, nbgp 525 ar(nyn+i,:) = ar(nyn,:) 526 ENDDO 527 ENDIF 528 529 CALL cpu_log( log_point_s(13), 'exchange_horiz_2d', 'stop' ) 530 531 END SUBROUTINE exchange_horiz_2d 532 533 534 !------------------------------------------------------------------------------! 535 ! Description: 536 ! ------------ 537 !> Exchange of lateral (ghost) boundaries (parallel computers) and cyclic 538 !> boundary conditions, respectively, for 2D 8-bit integer arrays. 539 !------------------------------------------------------------------------------! 540 SUBROUTINE exchange_horiz_2d_byte( ar, nys_l, nyn_l, nxl_l, nxr_l, nbgp_local ) 541 542 543 USE control_parameters, & 544 ONLY: bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r, bc_dirichlet_s, & 545 bc_radiation_l, bc_radiation_n, bc_radiation_r, bc_radiation_s, & 546 bc_radiation_l, bc_radiation_n, bc_radiation_r, bc_radiation_s 547 548 USE cpulog, & 549 ONLY: cpu_log, log_point_s 550 551 #if ! defined( __parallel ) 552 USE control_parameters, & 553 ONLY: bc_lr_cyc, bc_ns_cyc 554 #endif 555 556 INTEGER(iwp) :: i !< dummy index to zero-gradient conditions at in/outflow boundaries 557 INTEGER(iwp) :: nxl_l !< local index bound at current grid level, left side 558 INTEGER(iwp) :: nxr_l !< local index bound at current grid level, right side 559 INTEGER(iwp) :: nyn_l !< local index bound at current grid level, north side 560 INTEGER(iwp) :: nys_l !< local index bound at current grid level, south side 561 INTEGER(iwp) :: nbgp_local !< number of ghost layers to be exchanged 562 563 INTEGER(KIND=1), DIMENSION(nys_l-nbgp_local:nyn_l+nbgp_local, & 564 nxl_l-nbgp_local:nxr_l+nbgp_local) :: ar !< treated array 565 566 CALL cpu_log( log_point_s(13), 'exchange_horiz_2d', 'start' ) 567 568 #if defined( __parallel ) 569 570 ! 571 !-- Exchange of lateral boundary values for parallel computers 572 IF ( pdims(1) == 1 ) THEN 573 574 ! 575 !-- One-dimensional decomposition along y, boundary values can be exchanged 576 !-- within the PE memory 577 ar(:,nxl_l-nbgp_local:nxl_l-1) = ar(:,nxr_l-nbgp_local+1:nxr_l) 578 ar(:,nxr_l+1:nxr_l+nbgp_local) = ar(:,nxl_l:nxl_l+nbgp_local-1) 579 580 ELSE 581 ! 582 !-- Send left boundary, receive right one 583 CALL MPI_SENDRECV( ar(nys_l-nbgp_local,nxl_l), 1, & 584 type_y_byte, pleft, 0, & 585 ar(nys_l-nbgp_local,nxr_l+1), 1, & 586 type_y_byte, pright, 0, & 587 comm2d, status, ierr ) 588 ! 589 !-- Send right boundary, receive left one 590 CALL MPI_SENDRECV( ar(nys_l-nbgp_local,nxr_l+1-nbgp_local), 1, & 591 type_y_byte, pright, 1, & 592 ar(nys_l-nbgp_local,nxl_l-nbgp_local), 1, & 593 type_y_byte, pleft, 1, & 594 comm2d, status, ierr ) 595 596 ENDIF 597 598 IF ( pdims(2) == 1 ) THEN 599 ! 600 !-- One-dimensional decomposition along x, boundary values can be exchanged 601 !-- within the PE memory 602 ar(nys_l-nbgp_local:nys_l-1,:) = ar(nyn_l+1-nbgp_local:nyn_l,:) 603 ar(nyn_l+1:nyn_l+nbgp_local,:) = ar(nys_l:nys_l-1+nbgp_local,:) 604 605 606 ELSE 607 ! 608 !-- Send front boundary, receive rear one 609 CALL MPI_SENDRECV( ar(nys_l,nxl_l-nbgp_local), 1, & 610 type_x_byte, psouth, 0, & 611 ar(nyn_l+1,nxl_l-nbgp_local), 1, & 612 type_x_byte, pnorth, 0, & 613 comm2d, status, ierr ) 614 615 ! 616 !-- Send rear boundary, receive front one 617 CALL MPI_SENDRECV( ar(nyn_l+1-nbgp_local,nxl_l-nbgp_local), 1, & 618 type_x_byte, pnorth, 1, & 619 ar(nys_l-nbgp_local,nxl_l-nbgp_local), 1, & 620 type_x_byte, psouth, 1, & 621 comm2d, status, ierr ) 622 623 ENDIF 624 625 #else 626 627 ! 628 !-- Lateral boundary conditions in the non-parallel case 629 IF ( bc_lr_cyc ) THEN 630 ar(:,nxl_l-nbgp_local:nxl_l-1) = ar(:,nxr_l-nbgp_local+1:nxr_l) 631 ar(:,nxr_l+1:nxr_l+nbgp_local) = ar(:,nxl_l:nxl_l+nbgp_local-1) 632 ENDIF 633 634 IF ( bc_ns_cyc ) THEN 635 ar(nys_l-nbgp_local:nys_l-1,:) = ar(nyn_l+1-nbgp_local:nyn_l,:) 636 ar(nyn_l+1:nyn_l+nbgp_local,:) = ar(nys_l:nys_l-1+nbgp_local,:) 637 ENDIF 638 639 #endif 640 ! 641 !-- Neumann-conditions at inflow/outflow/nested boundaries 642 IF ( bc_dirichlet_l .OR. bc_radiation_l ) THEN 643 DO i = nbgp_local, 1, -1 644 ar(:,nxl_l-i) = ar(:,nxl_l) 645 ENDDO 646 ENDIF 647 IF ( bc_dirichlet_r .OR. bc_radiation_r ) THEN 648 DO i = 1, nbgp_local 649 ar(:,nxr_l+i) = ar(:,nxr_l) 650 ENDDO 651 ENDIF 652 IF ( bc_dirichlet_s .OR. bc_radiation_s ) THEN 653 DO i = nbgp_local, 1, -1 654 ar(nys_l-i,:) = ar(nys_l,:) 655 ENDDO 656 ENDIF 657 IF ( bc_dirichlet_n .OR. bc_radiation_n ) THEN 658 DO i = 1, nbgp_local 659 ar(nyn_l+i,:) = ar(nyn_l,:) 660 ENDDO 661 ENDIF 662 663 CALL cpu_log( log_point_s(13), 'exchange_horiz_2d', 'stop' ) 664 665 END SUBROUTINE exchange_horiz_2d_byte 666 667 668 !------------------------------------------------------------------------------! 669 ! Description: 670 ! ------------ 671 !> Exchange of lateral (ghost) boundaries (parallel computers) and cyclic 672 !> boundary conditions, respectively, for 2D 32-bit integer arrays. 673 !------------------------------------------------------------------------------! 674 SUBROUTINE exchange_horiz_2d_int( ar, nys_l, nyn_l, nxl_l, nxr_l, nbgp_local ) 675 676 677 USE control_parameters, & 678 ONLY: bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r, bc_dirichlet_s, & 679 bc_radiation_l, bc_radiation_n, bc_radiation_r, bc_radiation_s, & 680 bc_radiation_l, bc_radiation_n, bc_radiation_r, bc_radiation_s 681 682 #if defined( __parallel ) 683 USE control_parameters, & 684 ONLY: grid_level 685 #endif 686 687 USE cpulog, & 688 ONLY: cpu_log, log_point_s 689 690 #if ! defined( __parallel ) 691 USE control_parameters, & 692 ONLY: bc_lr_cyc, bc_ns_cyc 693 #endif 694 695 INTEGER(iwp) :: i !< dummy index to zero-gradient conditions at in/outflow boundaries 696 INTEGER(iwp) :: nxl_l !< local index bound at current grid level, left side 697 INTEGER(iwp) :: nxr_l !< local index bound at current grid level, right side 698 INTEGER(iwp) :: nyn_l !< local index bound at current grid level, north side 699 INTEGER(iwp) :: nys_l !< local index bound at current grid level, south side 700 INTEGER(iwp) :: nbgp_local !< number of ghost layers to be exchanged 701 702 INTEGER(iwp), DIMENSION(nys_l-nbgp_local:nyn_l+nbgp_local, & 703 nxl_l-nbgp_local:nxr_l+nbgp_local) :: ar !< treated array 704 705 CALL cpu_log( log_point_s(13), 'exchange_horiz_2d', 'start' ) 706 707 #if defined( __parallel ) 708 709 ! 710 !-- Exchange of lateral boundary values for parallel computers 711 IF ( pdims(1) == 1 ) THEN 712 713 ! 714 !-- One-dimensional decomposition along y, boundary values can be exchanged 715 !-- within the PE memory 716 ar(:,nxl_l-nbgp_local:nxl_l-1) = ar(:,nxr_l-nbgp_local+1:nxr_l) 717 ar(:,nxr_l+1:nxr_l+nbgp_local) = ar(:,nxl_l:nxl_l+nbgp_local-1) 718 719 ELSE 720 ! 721 !-- Send left boundary, receive right one 722 CALL MPI_SENDRECV( ar(nys_l-nbgp_local,nxl_l), 1, & 723 type_y_int(grid_level), pleft, 0, & 724 ar(nys_l-nbgp_local,nxr_l+1), 1, & 725 type_y_int(grid_level), pright, 0, & 726 comm2d, status, ierr ) 727 ! 728 !-- Send right boundary, receive left one 729 CALL MPI_SENDRECV( ar(nys_l-nbgp_local,nxr_l+1-nbgp_local), 1, & 730 type_y_int(grid_level), pright, 1, & 731 ar(nys_l-nbgp_local,nxl_l-nbgp_local), 1, & 732 type_y_int(grid_level), pleft, 1, & 733 comm2d, status, ierr ) 734 735 ENDIF 736 737 IF ( pdims(2) == 1 ) THEN 738 ! 739 !-- One-dimensional decomposition along x, boundary values can be exchanged 740 !-- within the PE memory 741 ar(nys_l-nbgp_local:nys_l-1,:) = ar(nyn_l+1-nbgp_local:nyn_l,:) 742 ar(nyn_l+1:nyn_l+nbgp_local,:) = ar(nys_l:nys_l-1+nbgp_local,:) 743 744 745 ELSE 746 ! 747 !-- Send front boundary, receive rear one 748 CALL MPI_SENDRECV( ar(nys_l,nxl_l-nbgp_local), 1, & 749 type_x_int(grid_level), psouth, 0, & 750 ar(nyn_l+1,nxl_l-nbgp_local), 1, & 751 type_x_int(grid_level), pnorth, 0, & 752 comm2d, status, ierr ) 753 754 ! 755 !-- Send rear boundary, receive front one 756 CALL MPI_SENDRECV( ar(nyn_l+1-nbgp_local,nxl_l-nbgp_local), 1, & 757 type_x_int(grid_level), pnorth, 1, & 758 ar(nys_l-nbgp_local,nxl_l-nbgp_local), 1, & 759 type_x_int(grid_level), psouth, 1, & 760 comm2d, status, ierr ) 761 762 ENDIF 763 764 #else 765 766 ! 767 !-- Lateral boundary conditions in the non-parallel case 768 IF ( bc_lr_cyc ) THEN 769 ar(:,nxl_l-nbgp_local:nxl_l-1) = ar(:,nxr_l-nbgp_local+1:nxr_l) 770 ar(:,nxr_l+1:nxr_l+nbgp_local) = ar(:,nxl_l:nxl_l+nbgp_local-1) 771 ENDIF 772 773 IF ( bc_ns_cyc ) THEN 774 ar(nys_l-nbgp_local:nys_l-1,:) = ar(nyn_l+1-nbgp_local:nyn_l,:) 775 ar(nyn_l+1:nyn_l+nbgp_local,:) = ar(nys_l:nys_l-1+nbgp_local,:) 776 ENDIF 777 778 #endif 779 ! 780 !-- Neumann-conditions at inflow/outflow/nested boundaries 781 IF ( bc_dirichlet_l .OR. bc_radiation_l ) THEN 782 DO i = nbgp_local, 1, -1 783 ar(:,nxl_l-i) = ar(:,nxl_l) 784 ENDDO 785 ENDIF 786 IF ( bc_dirichlet_r .OR. bc_radiation_r ) THEN 787 DO i = 1, nbgp_local 788 ar(:,nxr_l+i) = ar(:,nxr_l) 789 ENDDO 790 ENDIF 791 IF ( bc_dirichlet_s .OR. bc_radiation_s ) THEN 792 DO i = nbgp_local, 1, -1 793 ar(nys_l-i,:) = ar(nys_l,:) 794 ENDDO 795 ENDIF 796 IF ( bc_dirichlet_n .OR. bc_radiation_n ) THEN 797 DO i = 1, nbgp_local 798 ar(nyn_l+i,:) = ar(nyn_l,:) 799 ENDDO 800 ENDIF 801 802 CALL cpu_log( log_point_s(13), 'exchange_horiz_2d', 'stop' ) 803 804 END SUBROUTINE exchange_horiz_2d_int 805 806 807 END MODULE exchange_horiz_mod -
palm/trunk/SOURCE/init_grid.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added, 28 ! bugfix for call of exchange horiz 2d 29 ! 30 ! 4444 2020-03-05 15:59:50Z raasch 27 31 ! bugfix: cpp-directives for serial mode added 28 32 ! … … 934 938 ONLY: bc_lr_cyc, bc_ns_cyc, message_string, ocean_mode 935 939 940 USE exchange_horiz_mod, & 941 ONLY: exchange_horiz_int, exchange_horiz_2d 942 936 943 USE indices, & 937 944 ONLY: nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb, & … … 1315 1322 !-- initialization of building-surface properties. 1316 1323 IF ( ALLOCATED( buildings_f%oro_max ) ) THEN 1317 CALL exchange_horiz_2d( buildings_f%oro_max(:,:) , nbgp)1324 CALL exchange_horiz_2d( buildings_f%oro_max(:,:) ) 1318 1325 ENDIF 1319 1326 ! … … 1377 1384 USE control_parameters, & 1378 1385 ONLY: bc_lr_cyc, bc_ns_cyc, message_string 1386 1387 USE exchange_horiz_mod, & 1388 ONLY: exchange_horiz_int, exchange_horiz_2d_byte, exchange_horiz_2d_int 1379 1389 1380 1390 USE indices, & … … 1592 1602 tunnel_wall_depth 1593 1603 1604 USE exchange_horiz_mod, & 1605 ONLY: exchange_horiz_int 1606 1594 1607 USE grid_variables, & 1595 1608 ONLY: dx, dy … … 2182 2195 scalar_advec, topography, use_surface_fluxes, use_top_fluxes 2183 2196 2197 USE exchange_horiz_mod, & 2198 ONLY: exchange_horiz_int 2199 2184 2200 USE indices, & 2185 2201 ONLY: nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb, & -
palm/trunk/SOURCE/init_pt_anomaly.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Introduction of wall_flags_total_0, which currently sets bits based on static 28 31 ! topography information used in wall_flags_static_0 … … 52 55 53 56 USE control_parameters 57 58 USE exchange_horiz_mod, & 59 ONLY: exchange_horiz 54 60 55 61 USE grid_variables, & -
palm/trunk/SOURCE/init_rankine.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Corrected "Former revisions" section 28 31 ! … … 50 53 USE basic_constants_and_equations_mod, & 51 54 ONLY: pi 55 56 USE exchange_horiz_mod, & 57 ONLY: exchange_horiz 52 58 53 59 USE grid_variables, & -
palm/trunk/SOURCE/lagrangian_particle_model_mod.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 1772 1775 SUBROUTINE lpm_init_sgs_tke 1773 1776 1777 USE exchange_horiz_mod, & 1778 ONLY: exchange_horiz 1779 1774 1780 USE statistics, & 1775 1781 ONLY: flow_statistics_called, hom, sums, sums_l … … 2014 2020 !------------------------------------------------------------------------------! 2015 2021 SUBROUTINE lpm_actions( location ) 2022 2023 USE exchange_horiz_mod, & 2024 ONLY: exchange_horiz 2016 2025 2017 2026 CHARACTER (LEN=*), INTENT(IN) :: location !< call location string -
palm/trunk/SOURCE/nesting_offl_mod.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Bugfix, time coordinate is relative to origin_time rather than to 00:00:00 28 31 ! UTC. … … 947 950 !------------------------------------------------------------------------------! 948 951 SUBROUTINE nesting_offl_bc 952 953 USE exchange_horiz_mod, & 954 ONLY: exchange_horiz 949 955 950 956 INTEGER(iwp) :: i !< running index x-direction -
palm/trunk/SOURCE/netcdf_data_input_mod.f90
r4435 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added, 28 ! bugfixes for calls of exchange horiz 2d 29 ! 30 ! 4435 2020-03-03 10:38:41Z raasch 27 31 ! temporary bugfix to avoid compile problems with older NetCDFD libraries on IMUK machines 28 32 ! … … 1532 1536 ONLY: land_surface, urban_surface 1533 1537 1538 USE exchange_horiz_mod, & 1539 ONLY: exchange_horiz_2d, exchange_horiz_2d_byte, exchange_horiz_2d_int 1540 1534 1541 USE indices, & 1535 1542 ONLY: nbgp, nxl, nxr, nyn, nys … … 2053 2060 nys, nyn, nxl, nxr ) 2054 2061 DO k = 0, nz_soil 2055 CALL exchange_horiz_2d_ int( &2062 CALL exchange_horiz_2d_byte( & 2056 2063 soil_type_f%var_3d(k,:,:), nys, nyn, nxl, nxr, nbgp ) 2057 2064 ENDDO … … 2063 2070 nys, nyn, nxl, nxr ) 2064 2071 DO k = 0, surface_fraction_f%nf-1 2065 CALL exchange_horiz_2d( surface_fraction_f%frac(k,:,:) , nbgp)2072 CALL exchange_horiz_2d( surface_fraction_f%frac(k,:,:) ) 2066 2073 ENDDO 2067 2074 ENDIF … … 2072 2079 nys, nyn, nxl, nxr ) 2073 2080 DO k = 0, building_pars_f%np-1 2074 CALL exchange_horiz_2d( building_pars_f%pars_xy(k,:,:) , nbgp)2081 CALL exchange_horiz_2d( building_pars_f%pars_xy(k,:,:) ) 2075 2082 ENDDO 2076 2083 ENDIF … … 2081 2088 nys, nyn, nxl, nxr ) 2082 2089 DO k = 0, albedo_pars_f%np-1 2083 CALL exchange_horiz_2d( albedo_pars_f%pars_xy(k,:,:) , nbgp)2090 CALL exchange_horiz_2d( albedo_pars_f%pars_xy(k,:,:) ) 2084 2091 ENDDO 2085 2092 ENDIF … … 2090 2097 nys, nyn, nxl, nxr ) 2091 2098 DO k = 0, pavement_pars_f%np-1 2092 CALL exchange_horiz_2d( pavement_pars_f%pars_xy(k,:,:) , nbgp)2099 CALL exchange_horiz_2d( pavement_pars_f%pars_xy(k,:,:) ) 2093 2100 ENDDO 2094 2101 ENDIF … … 2099 2106 nys, nyn, nxl, nxr ) 2100 2107 DO k = 0, vegetation_pars_f%np-1 2101 CALL exchange_horiz_2d( vegetation_pars_f%pars_xy(k,:,:) , nbgp)2108 CALL exchange_horiz_2d( vegetation_pars_f%pars_xy(k,:,:) ) 2102 2109 ENDDO 2103 2110 ENDIF … … 2108 2115 nys, nyn, nxl, nxr ) 2109 2116 DO k = 0, water_pars_f%np-1 2110 CALL exchange_horiz_2d( water_pars_f%pars_xy(k,:,:) , nbgp)2117 CALL exchange_horiz_2d( water_pars_f%pars_xy(k,:,:) ) 2111 2118 ENDDO 2112 2119 ENDIF … … 2117 2124 nys, nyn, nxl, nxr ) 2118 2125 DO k = 0, root_area_density_lsm_f%nz-1 2119 CALL exchange_horiz_2d( root_area_density_lsm_f%var(k,:,:) , nbgp)2126 CALL exchange_horiz_2d( root_area_density_lsm_f%var(k,:,:) ) 2120 2127 ENDDO 2121 2128 ENDIF … … 2128 2135 nys, nyn, nxl, nxr ) 2129 2136 DO k = 0, soil_pars_f%np-1 2130 CALL exchange_horiz_2d( soil_pars_f%pars_xy(k,:,:) , nbgp)2137 CALL exchange_horiz_2d( soil_pars_f%pars_xy(k,:,:) ) 2131 2138 ENDDO 2132 2139 … … 2139 2146 DO k2 = 0, soil_pars_f%nz-1 2140 2147 DO k = 0, soil_pars_f%np-1 2141 CALL exchange_horiz_2d( soil_pars_f%pars_xyz(k,k2,:,:), & 2142 nbgp ) 2148 CALL exchange_horiz_2d( soil_pars_f%pars_xyz(k,k2,:,:) ) 2143 2149 ENDDO 2144 2150 ENDDO … … 2155 2161 DO k = 0, pavement_subsurface_pars_f%np-1 2156 2162 CALL exchange_horiz_2d( & 2157 pavement_subsurface_pars_f%pars_xyz(k,k2,:,:) , nbgp)2163 pavement_subsurface_pars_f%pars_xyz(k,k2,:,:) ) 2158 2164 ENDDO 2159 2165 ENDDO … … 2287 2293 USE control_parameters, & 2288 2294 ONLY: message_string, topography 2295 2296 USE exchange_horiz_mod, & 2297 ONLY: exchange_horiz_2d_byte, exchange_horiz_2d_int 2289 2298 2290 2299 USE grid_variables, & -
palm/trunk/SOURCE/palm.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 105 108 106 109 #if defined( __parallel ) 110 USE exchange_horiz_mod, & 111 ONLY: exchange_horiz 112 107 113 USE indices, & 108 114 ONLY: nbgp -
palm/trunk/SOURCE/plant_canopy_model_mod.f90
r4448 r4457 27 27 ! ----------------- 28 28 ! 29 ! use statement for exchange horiz added 30 ! 31 ! 29 32 ! $Id$ 30 33 ! (salim) removed the error message PA0672 to consider PC 3d data via ascii file … … 972 975 SUBROUTINE pcm_init 973 976 977 USE exchange_horiz_mod, & 978 ONLY: exchange_horiz 979 974 980 INTEGER(iwp) :: i !< running index 975 981 INTEGER(iwp) :: j !< running index … … 1540 1546 SUBROUTINE pcm_read_plant_canopy_3d 1541 1547 1548 USE exchange_horiz_mod, & 1549 ONLY: exchange_horiz 1550 1542 1551 INTEGER(iwp) :: dtype !< type of input data (1=lad) 1543 1552 INTEGER(iwp) :: pctype !< type of plant canopy (deciduous,non-deciduous,...) -
palm/trunk/SOURCE/poismg_mod.f90
r4432 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4432 2020-02-28 07:43:21Z raasch 27 30 ! bugfix for previous revision (vector directive was changed by mistake) 28 31 ! … … 73 76 USE cpulog, & 74 77 ONLY: cpu_log, log_point_s 78 79 USE exchange_horiz_mod, & 80 ONLY: exchange_horiz 75 81 76 82 USE kinds -
palm/trunk/SOURCE/poismg_noopt_mod.f90
r4429 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4429 2020-02-27 15:24:30Z raasch 27 30 ! bugfix: cpp-directives added for serial mode 28 31 ! … … 70 73 USE cpulog, & 71 74 ONLY: cpu_log, log_point_s 75 76 USE exchange_horiz_mod, & 77 ONLY: exchange_horiz, exchange_horiz_int 72 78 73 79 USE kinds -
palm/trunk/SOURCE/pres.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Introduction of wall_flags_total_0, which currently sets bits based on static 28 31 ! topography information used in wall_flags_static_0 … … 69 72 USE cpulog, & 70 73 ONLY: cpu_log, log_point, log_point_s 74 75 USE exchange_horiz_mod, & 76 ONLY: exchange_horiz 71 77 72 78 USE grid_variables, & -
palm/trunk/SOURCE/radiation_model_mod.f90
r4452 r4457 28 28 ! ----------------- 29 29 ! $Id$ 30 ! use statement for exchange horiz added 31 ! 32 ! 4452 2020-03-10 20:15:32Z suehring 30 33 ! Bugfix in calc_albedo 31 34 ! … … 3994 3997 3995 3998 #if defined ( __rrtmg ) 3999 USE exchange_horiz_mod, & 4000 ONLY: exchange_horiz 4001 3996 4002 USE indices, & 3997 4003 ONLY: nbgp -
palm/trunk/SOURCE/salsa_mod.f90
r4442 r4457 26 26 ! ----------------- 27 27 ! $Id$ 28 ! use statement for exchange horiz added 29 ! 30 ! 4442 2020-03-04 19:21:13Z suehring 28 31 ! Change order of dimension in surface array %frac to allow for better 29 32 ! vectorization. … … 7871 7874 ONLY: cpu_log, log_point_s 7872 7875 7876 USE exchange_horiz_mod, & 7877 ONLY: exchange_horiz 7878 7873 7879 IMPLICIT NONE 7874 7880 … … 12390 12396 ONLY: bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r, bc_dirichlet_s, dt_3d, & 12391 12397 time_since_reference_point 12398 12399 USE exchange_horiz_mod, & 12400 ONLY: exchange_horiz 12392 12401 12393 12402 USE indices, & -
palm/trunk/SOURCE/sor.f90
r4360 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4360 2020-01-07 11:25:50Z suehring 27 30 ! Corrected "Former revisions" section 28 31 ! … … 43 46 ONLY: rho_air, rho_air_zw 44 47 45 USE grid_variables, &46 ONLY: ddx2, ddy247 48 USE indices, &49 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nz, nzb, nzt50 51 USE kinds52 53 48 USE control_parameters, & 54 49 ONLY: bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r, & … … 56 51 bc_radiation_n, bc_radiation_r, bc_radiation_s, ibc_p_b, & 57 52 ibc_p_t, n_sor, omega_sor 53 54 USE exchange_horiz_mod, & 55 ONLY: exchange_horiz 56 57 USE grid_variables, & 58 ONLY: ddx2, ddy2 59 60 USE indices, & 61 ONLY: nbgp, nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg, nz, nzb, nzt 62 63 USE kinds 58 64 59 65 IMPLICIT NONE -
palm/trunk/SOURCE/synthetic_turbulence_generator_mod.f90
r4444 r4457 1257 1257 !------------------------------------------------------------------------------! 1258 1258 SUBROUTINE stg_main 1259 1260 USE exchange_horiz_mod, & 1261 ONLY: exchange_horiz 1259 1262 1260 1263 INTEGER(iwp) :: i !< grid index in x-direction -
palm/trunk/SOURCE/time_integration.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 276 279 ONLY: doq_calculate, & 277 280 timestep_number_at_prev_calc 281 282 USE exchange_horiz_mod, & 283 ONLY: exchange_horiz 278 284 279 285 USE flight_mod, & -
palm/trunk/SOURCE/time_integration_spinup.f90
r4444 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4444 2020-03-05 15:59:50Z raasch 27 30 ! bugfix: cpp-directives for serial mode added 28 31 ! … … 90 93 USE diagnostic_output_quantities_mod, & 91 94 ONLY: doq_calculate 95 96 USE exchange_horiz_mod, & 97 ONLY: exchange_horiz 92 98 93 99 USE indices, & -
palm/trunk/SOURCE/turbulence_closure_mod.f90
r4433 r4457 25 25 ! ----------------- 26 26 ! $Id$ 27 ! use statement for exchange horiz added 28 ! 29 ! 4433 2020-02-28 22:14:43Z gronemeier 27 30 ! remove warning for newly implemented RANS mode 28 31 ! … … 1366 1369 USE control_parameters, & 1367 1370 ONLY: f, message_string, wall_adjustment, wall_adjustment_factor 1371 1372 USE exchange_horiz_mod, & 1373 ONLY: exchange_horiz, exchange_horiz_int 1368 1374 1369 1375 USE grid_variables, & … … 4439 4445 e_min 4440 4446 4447 USE exchange_horiz_mod, & 4448 ONLY: exchange_horiz 4449 4441 4450 USE surface_layer_fluxes_mod, & 4442 4451 ONLY: phi_m -
palm/trunk/SOURCE/urban_surface_mod.f90
r4442 r4457 28 28 ! ----------------- 29 29 ! $Id$ 30 ! use statement for exchange horiz added 31 ! 32 ! 4442 2020-03-04 19:21:13Z suehring 30 33 ! Change order of dimension in surface arrays %frac, %emissivity and %albedo 31 34 ! to allow for better vectorization in the radiation interactions. … … 7752 7755 !------------------------------------------------------------------------------! 7753 7756 SUBROUTINE usm_surface_energy_balance( during_spinup ) 7757 7758 USE exchange_horiz_mod, & 7759 ONLY: exchange_horiz 7754 7760 7755 7761 -
palm/trunk/SOURCE/vertical_nesting_mod.f90
r4444 r4457 26 26 ! ----------------- 27 27 ! $Id$ 28 ! use statement for exchange horiz added 29 ! 30 ! 4444 2020-03-05 15:59:50Z raasch 28 31 ! bugfix: cpp-directives for serial mode added 29 32 ! … … 76 79 !------------------------------------------------------------------------------! 77 80 MODULE vertical_nesting_mod 81 82 USE exchange_horiz_mod, & 83 ONLY: exchange_horiz, exchange_horiz_2d 78 84 79 85 USE kinds -
palm/trunk/SOURCE/wind_turbine_model_mod.f90
r4447 r4457 26 26 ! ----------------- 27 27 ! $Id$ 28 ! use statement for exchange horiz added 29 ! 30 ! 4447 2020-03-06 11:05:30Z oliver.maas 28 31 ! renamed wind_turbine_parameters namelist variables 29 32 ! … … 978 981 ONLY: dz_stretch_level_start 979 982 983 USE exchange_horiz_mod, & 984 ONLY: exchange_horiz 985 980 986 IMPLICIT NONE 981 987
Note: See TracChangeset
for help on using the changeset viewer.