Changeset 2967 for palm/trunk/SOURCE/pmc_particle_interface.f90
- Timestamp:
- Apr 13, 2018 11:22:08 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/pmc_particle_interface.f90
r2884 r2967 26 26 ! -----------------! 27 27 ! $Id$ 28 ! bugfix: missing parallel cpp-directives added 29 ! 30 ! 2884 2018-03-14 08:33:20Z scharf 28 31 ! B: corrected KIND of variable "parsize" for some MPI calls 29 32 ! … … 47 50 USE, INTRINSIC :: ISO_C_BINDING 48 51 49 #if !defined( __mpifh )52 #if defined( __parallel ) && !defined( __mpifh ) 50 53 USE MPI 51 54 #endif … … 75 78 USE lpm_pack_and_sort_mod 76 79 80 USE lpm_exchange_horiz_mod, & 81 ONLY: realloc_particles_array 82 83 #if defined( __parallel ) 77 84 USE pmc_general, & 78 85 ONLY: pedef … … 97 104 ONLY: pmc_send_to_parent, pmc_recv_from_child 98 105 99 USE lpm_exchange_horiz_mod, & 100 ONLY: realloc_particles_array 106 #endif 101 107 102 108 IMPLICIT NONE 103 109 104 #if defined( __ mpifh )110 #if defined( __parallel ) && defined( __mpifh ) 105 111 INCLUDE "mpif.h" 106 112 #endif … … 181 187 182 188 INTEGER(iwp) :: nr_childs !< Number of child models of the current model 189 190 #if defined( __parallel ) 183 191 184 192 nr_childs = get_number_of_childs() … … 216 224 ENDIF 217 225 226 #endif 218 227 END SUBROUTINE pmcp_g_init 219 228 !------------------------------------------------------------------------------! … … 237 246 238 247 INTEGER :: parsize !< 248 TYPE(C_PTR), SAVE :: ptr !< 249 250 TYPE(particle_type),DIMENSION(:),POINTER :: win_buffer !< 251 252 INTEGER(iwp),DIMENSION(1) :: buf_shape !< 253 254 #if defined( __parallel ) 239 255 INTEGER(KIND=MPI_ADDRESS_KIND) :: parsize_mpi_address_kind !< 240 256 INTEGER(KIND=MPI_ADDRESS_KIND) :: winsize !< 241 TYPE(C_PTR), SAVE :: ptr !<242 243 TYPE(particle_type),DIMENSION(:),POINTER :: win_buffer !<244 245 INTEGER(iwp),DIMENSION(1) :: buf_shape !<246 257 247 258 ! … … 292 303 ENDIF 293 304 305 #endif 294 306 END SUBROUTINE pmcp_g_alloc_win 307 308 295 309 !------------------------------------------------------------------------------! 296 310 ! Description: … … 313 327 314 328 INTEGER :: parsize !< 329 330 #if defined( __parallel ) 331 TYPE(pedef), POINTER :: ape !< TO_DO Klaus: give a description and better name of the variable 332 315 333 INTEGER(KIND=MPI_ADDRESS_KIND) :: parsize_mpi_address_kind !< 316 334 INTEGER(KIND=MPI_ADDRESS_KIND) :: target_disp !< 317 318 TYPE(pedef), POINTER :: ape !< TO_DO Klaus: give a description and better name of the variable319 335 320 336 IF ( cpl_id > 1 ) THEN … … 361 377 ENDIF 362 378 379 #endif 363 380 END SUBROUTINE pmcp_c_get_particle_from_parent 381 382 364 383 !------------------------------------------------------------------------------! 365 384 ! Description: … … 388 407 389 408 INTEGER :: parsize !< 390 INTEGER(KIND=MPI_ADDRESS_KIND) :: parsize_mpi_address_kind !<391 INTEGER(KIND=MPI_ADDRESS_KIND) :: target_disp !<392 409 393 410 REAL(wp) :: eps=0.00001 !< used in calculations to avoid rounding errors … … 395 412 REAL(wp) :: yy !< number of fine grid cells inside a coarse grid cell in y-direction 396 413 414 ! TYPE(particle_type) :: dummy_part !< dummy particle (needed for size calculations) 415 416 #if defined( __parallel ) 397 417 TYPE(pedef), POINTER :: ape !< TO_DO Klaus: give a description and better name of the variable 398 399 ! TYPE(particle_type) :: dummy_part !< dummy particle (needed for size calculations) 418 419 INTEGER(KIND=MPI_ADDRESS_KIND) :: parsize_mpi_address_kind !< 420 INTEGER(KIND=MPI_ADDRESS_KIND) :: target_disp !< 400 421 401 422 … … 473 494 ENDIF 474 495 496 #endif 475 497 END SUBROUTINE pmcp_c_send_particle_to_parent 498 499 476 500 !------------------------------------------------------------------------------! 477 501 ! Description: … … 522 546 INTEGER(iwp),DIMENSION(1) :: buf_shape !< 523 547 548 #if defined( __parallel ) 524 549 TYPE(pedef), POINTER :: ape !< TO_DO Klaus: give a description and better name of the variable 525 550 … … 612 637 lfirst = .FALSE. 613 638 639 #endif 614 640 END SUBROUTINE pmcp_p_fill_particle_win 641 615 642 616 643 !------------------------------------------------------------------------------! … … 621 648 !------------------------------------------------------------------------------! 622 649 SUBROUTINE pmcp_p_empty_particle_win 650 623 651 IMPLICIT NONE 624 652 … … 629 657 INTEGER(iwp),DIMENSION(1) :: buf_shape !< 630 658 659 #if defined( __parallel ) 631 660 DO m = 1, get_number_of_childs() 632 661 … … 651 680 ENDDO 652 681 682 #endif 653 683 END SUBROUTINE pmcp_p_empty_particle_win 654 684 685 655 686 !------------------------------------------------------------------------------! 656 687 ! Description: … … 689 720 REAL(wp) :: z !< particle position 690 721 722 #if defined( __parallel ) 691 723 DO m = 1, get_number_of_childs() 692 724 CALL get_child_edges( m, lx_coord, lx_coord_b, rx_coord, rx_coord_b, & … … 725 757 ENDDO 726 758 759 #endif 727 760 END SUBROUTINE pmcp_p_delete_particles_in_fine_grid_area 761 762 728 763 !------------------------------------------------------------------------------! 729 764 ! Description: … … 755 790 INTEGER(iwp),DIMENSION(2) :: ivals !< integer value to be send 756 791 757 792 #if defined( __parallel ) 758 793 child_nr_particles = 0 759 794 IF ( myid == 0 ) THEN … … 779 814 ENDIF 780 815 816 #endif 781 817 END SUBROUTINE pmcp_g_print_number_of_particles 818 782 819 783 820 !------------------------------------------------------------------------------! … … 810 847 TYPE(particle_type), DIMENSION(:), ALLOCATABLE :: tmp_particles_d !< 811 848 849 #if defined( __parallel ) 812 850 with_copy_lo = .FALSE. 813 851 IF ( PRESENT( with_copy ) ) with_copy_lo = with_copy … … 843 881 ENDIF 844 882 883 #endif 845 884 END SUBROUTINE check_and_alloc_coarse_particle 885 846 886 847 887 !------------------------------------------------------------------------------! … … 873 913 REAL(wp) :: zc !< child z coordinate 874 914 915 #if defined( __parallel ) 875 916 ! 876 917 !-- Child domain boundaries in the parent index space … … 914 955 ENDDO 915 956 957 #endif 916 958 END SUBROUTINE c_copy_particle_to_child_grid 959 960 917 961 !------------------------------------------------------------------------------! 918 962 ! Description: … … 949 993 REAL(iwp) :: z !< z coordinate 950 994 995 #if defined( __parallel ) 951 996 ! 952 997 !-- Child domain boundaries in the parent index space … … 1025 1070 CALL lpm_sort_in_subboxes 1026 1071 1072 #endif 1027 1073 END SUBROUTINE c_copy_particle_to_coarse_grid 1074 1075 1028 1076 !------------------------------------------------------------------------------! 1029 1077 ! Description: … … 1054 1102 INTEGER(iwp),DIMENSION(1) :: buf_shape !< 1055 1103 1104 #if defined( __parallel ) 1056 1105 buf_shape(1) = max_nr_particle_in_rma_win 1057 1106 CALL C_F_POINTER( buf_ptr(m), particle_in_win , buf_shape ) … … 1090 1139 ENDDO 1091 1140 ENDDO 1092 1141 1142 #endif 1093 1143 END SUBROUTINE p_copy_particle_to_org_grid 1094 1144
Note: See TracChangeset
for help on using the changeset viewer.