TABLE OF CONTENTS


ABINIT/xmpi_recv [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv

FUNCTION

  This module contains functions that call MPI routine MPI_RECV,
  to receive data on one processor sent by another,
  if we compile the code using the MPI CPP flags.
  xmpi_recv is the generic function.

COPYRIGHT

  Copyright (C) 2001-2018 ABINIT group
  This file is distributed under the terms of the
  GNU General Public License, see ~ABINIT/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

TODO

SOURCE


ABINIT/xmpi_recv_char [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_char

FUNCTION

  Receives data from one proc sent by another.
  Target: character.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

47 subroutine xmpi_recv_char(xval,source,tag,spaceComm,ier)
48 
49 
50 !This section has been created automatically by the script Abilint (TD).
51 !Do not modify the following lines by hand.
52 #undef ABI_FUNC
53 #define ABI_FUNC 'xmpi_recv_char'
54 !End of the abilint section
55 
56  implicit none
57 
58 !Arguments-------------------------
59  character(len=*), intent(inout) :: xval
60  integer ,intent(in) :: source,tag,spaceComm
61  integer ,intent(out) :: ier
62 
63 !Local variables-------------------
64 #if defined HAVE_MPI
65  integer :: my_tag
66 #endif
67 
68 ! *************************************************************************
69 
70  ier=0
71 #if defined HAVE_MPI
72  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
73    my_tag = MOD(tag,xmpi_tag_ub)
74    call MPI_RECV(xval,len(xval),MPI_CHARACTER,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
75  end if
76 #endif
77 
78 end subroutine xmpi_recv_char

ABINIT/xmpi_recv_dp [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_dp

FUNCTION

  Receives data from one proc sent by another.
  Target: double precision value.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

386 subroutine xmpi_recv_dp(xval,source,tag,spaceComm,ier)
387 
388 
389 !This section has been created automatically by the script Abilint (TD).
390 !Do not modify the following lines by hand.
391 #undef ABI_FUNC
392 #define ABI_FUNC 'xmpi_recv_dp'
393 !End of the abilint section
394 
395  implicit none
396 
397 !Arguments-------------------------
398  real(dp), DEV_CONTARRD intent(inout) :: xval
399  integer ,intent(in) :: source,tag,spaceComm
400  integer ,intent(out) :: ier
401 
402 !Local variables-------------------
403 #if defined HAVE_MPI
404  integer :: my_tag
405 #endif
406 
407 ! *************************************************************************
408 
409  ier=0
410 #if defined HAVE_MPI
411  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
412    my_tag = MOD(tag,xmpi_tag_ub)
413    call MPI_RECV(xval,1,MPI_DOUBLE_PRECISION,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
414  end if
415 #endif
416 
417 end subroutine xmpi_recv_dp

ABINIT/xmpi_recv_dp1d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_dp1d

FUNCTION

  Receives data from one proc sent by another.
  Target: double precision one-dimensional arrays.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

444 subroutine xmpi_recv_dp1d(xval,source,tag,spaceComm,ier)
445 
446 
447 !This section has been created automatically by the script Abilint (TD).
448 !Do not modify the following lines by hand.
449 #undef ABI_FUNC
450 #define ABI_FUNC 'xmpi_recv_dp1d'
451 !End of the abilint section
452 
453  implicit none
454 
455 !Arguments-------------------------
456  real(dp), DEV_CONTARRD intent(inout) :: xval(:)
457  integer ,intent(in) :: source,tag,spaceComm
458  integer ,intent(out) :: ier
459 
460 !Local variables-------------------
461 #if defined HAVE_MPI
462  integer :: n1,my_tag
463 #endif
464 
465 ! *************************************************************************
466 
467  ier=0
468 #if defined HAVE_MPI
469  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
470    n1=size(xval,dim=1)
471    my_tag = MOD(tag,xmpi_tag_ub)
472    call MPI_RECV(xval,n1,MPI_DOUBLE_PRECISION,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
473  end if
474 #endif
475 
476 end subroutine xmpi_recv_dp1d

ABINIT/xmpi_recv_dp2d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_dp2d

FUNCTION

  Receives data from one proc sent by another.
  Target: double precision two-dimensional arrays.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

503 subroutine xmpi_recv_dp2d(xval,source,tag,spaceComm,ier)
504 
505 
506 
507 !This section has been created automatically by the script Abilint (TD).
508 !Do not modify the following lines by hand.
509 #undef ABI_FUNC
510 #define ABI_FUNC 'xmpi_recv_dp2d'
511 !End of the abilint section
512 
513  implicit none
514 
515 !Arguments-------------------------
516  real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
517  integer ,intent(in) :: source,tag,spaceComm
518  integer ,intent(out) :: ier
519 
520 !Local variables-------------------
521 #if defined HAVE_MPI
522  integer :: n1,n2,my_tag
523 #endif
524 
525 ! *************************************************************************
526 
527  ier=0
528 #if defined HAVE_MPI
529  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
530    n1=size(xval,dim=1)
531    n2=size(xval,dim=2)
532    my_tag=MOD(tag,xmpi_tag_ub)
533    call MPI_RECV(xval,n1*n2,MPI_DOUBLE_PRECISION,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
534  end if
535 #endif
536 
537 end subroutine xmpi_recv_dp2d

ABINIT/xmpi_recv_dp3d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_dp3d

FUNCTION

  Receives data from one proc sent by another.
  Target: double precision three-dimensional arrays.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

564 subroutine xmpi_recv_dp3d(xval,source,tag,spaceComm,ier)
565 
566 
567 !This section has been created automatically by the script Abilint (TD).
568 !Do not modify the following lines by hand.
569 #undef ABI_FUNC
570 #define ABI_FUNC 'xmpi_recv_dp3d'
571 !End of the abilint section
572 
573  implicit none
574 
575 !Arguments-------------------------
576  real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
577  integer ,intent(in) :: source,tag,spaceComm
578  integer ,intent(out)   :: ier
579 
580 !Local variables-------------------
581 #if defined HAVE_MPI
582  integer :: n1,n2,n3,my_tag
583 #endif
584 
585 ! *************************************************************************
586 
587  ier=0
588 #if defined HAVE_MPI
589  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
590    n1=size(xval,dim=1)
591    n2=size(xval,dim=2)
592    n3=size(xval,dim=3)
593    my_tag=MOD(tag,xmpi_tag_ub)
594    call MPI_RECV(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
595  end if
596 #endif
597 
598 end subroutine xmpi_recv_dp3d

ABINIT/xmpi_recv_int1d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_int1d

FUNCTION

  Receives data from one proc sent by another.
  Target: integer one-dimensional arrays.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

179 subroutine xmpi_recv_int1d(xval,source,tag,spaceComm,ier)
180 
181 
182 
183 !This section has been created automatically by the script Abilint (TD).
184 !Do not modify the following lines by hand.
185 #undef ABI_FUNC
186 #define ABI_FUNC 'xmpi_recv_int1d'
187 !End of the abilint section
188 
189  implicit none
190 
191 !Arguments-------------------------
192  integer, DEV_CONTARRD intent(inout) :: xval(:)
193  integer,intent(in) :: source,tag,spaceComm
194  integer,intent(out) :: ier
195 
196 !Local variables-------------------
197 #if defined HAVE_MPI
198  integer :: my_tag, n1
199 #endif
200 
201 ! *************************************************************************
202 
203  ier=0
204 #if defined HAVE_MPI
205  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
206    n1=size(xval,dim=1)
207    my_tag = MOD(tag,xmpi_tag_ub)
208    call MPI_RECV(xval,n1,MPI_INTEGER,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
209  end if
210 #endif
211 
212  end subroutine xmpi_recv_int1d

ABINIT/xmpi_recv_int2d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_int2d

FUNCTION

  Receives data from one proc sent by another.
  Target: integer two-dimensional arrays.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

PARENTS

CHILDREN

      mpi_recv

SOURCE

243 subroutine xmpi_recv_int2d(xval,source,tag,spaceComm,ier)
244 
245 
246  use defs_basis
247 #if defined HAVE_MPI2 && ! defined HAVE_MPI_INCLUDED_ONCE
248  use mpi
249 #endif
250 
251 !This section has been created automatically by the script Abilint (TD).
252 !Do not modify the following lines by hand.
253 #undef ABI_FUNC
254 #define ABI_FUNC 'xmpi_recv_int2d'
255 !End of the abilint section
256 
257  implicit none
258 
259 #if defined HAVE_MPI1
260  include 'mpif.h'
261 #endif
262 
263 !Arguments-------------------------
264  integer,intent(inout) :: xval(:,:)
265  integer ,intent(in) :: source,tag,spaceComm
266  integer ,intent(out)   :: ier
267 
268 !Local variables-------------------
269 #if defined HAVE_MPI
270  integer :: n1,n2,my_tag
271 #endif
272 
273 ! *************************************************************************
274 
275  ier=0
276 #if defined HAVE_MPI
277  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
278    n1=size(xval,dim=1)
279    n2=size(xval,dim=2)
280    my_tag=MOD(tag,xmpi_tag_ub)
281    call MPI_RECV(xval,n1*n2,MPI_INTEGER,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
282  end if
283 #endif
284 
285 end subroutine xmpi_recv_int2d

ABINIT/xmpi_recv_int3d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_int3d

FUNCTION

  Receives data from one proc sent by another.
  Target: integer three-dimensional arrays.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

PARENTS

CHILDREN

      mpi_recv

SOURCE

316 subroutine xmpi_recv_int3d(xval,source,tag,spaceComm,ier)
317 
318 
319  use defs_basis
320 #if defined HAVE_MPI2 && ! defined HAVE_MPI_INCLUDED_ONCE
321  use mpi
322 #endif
323 
324 !This section has been created automatically by the script Abilint (TD).
325 !Do not modify the following lines by hand.
326 #undef ABI_FUNC
327 #define ABI_FUNC 'xmpi_recv_int3d'
328 !End of the abilint section
329 
330  implicit none
331 
332 #if defined HAVE_MPI1
333  include 'mpif.h'
334 #endif
335 
336 !Arguments-------------------------
337  integer,intent(inout) :: xval(:,:,:)
338  integer ,intent(in) :: source,tag,spaceComm
339  integer ,intent(out)   :: ier
340 
341 !Local variables-------------------
342 #if defined HAVE_MPI
343  integer :: n1,n2,n3,my_tag
344 #endif
345 
346 ! *************************************************************************
347 
348  ier=0
349 #if defined HAVE_MPI
350  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
351    n1=size(xval,dim=1)
352    n2=size(xval,dim=2)
353    n3=size(xval,dim=3)
354    my_tag=MOD(tag,xmpi_tag_ub)
355    call MPI_RECV(xval,n1*n2*n3,MPI_INTEGER,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
356  end if
357 #endif
358 
359 end subroutine xmpi_recv_int3d

ABINIT/xmpi_recv_intv [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_recv_intv

FUNCTION

  Receives data from one processor sent by another.
  Target: single integer.

INPUTS

  source :: rank of source process
  tag :: integer message tag
  spaceComm :: MPI communicator

OUTPUT

  ier= exit status, a non-zero value meaning there is an error

SIDE EFFECTS

  xval= buffer array

NOTES

  status of MPI_RECV is explicitly ignored

SOURCE

105 subroutine xmpi_recv_intv(xval,source,tag,spaceComm,ier)
106 
107 
108 
109 !This section has been created automatically by the script Abilint (TD).
110 !Do not modify the following lines by hand.
111 #undef ABI_FUNC
112 #define ABI_FUNC 'xmpi_recv_intv'
113 !End of the abilint section
114 
115  implicit none
116 
117 !Arguments-------------------------
118  integer,intent(inout) :: xval
119  integer,intent(in) :: source,tag,spaceComm
120  integer,intent(out)   :: ier
121 
122 !Local variables-------------------
123 #if defined HAVE_MPI
124   integer :: my_tag
125 #endif
126 
127 ! *************************************************************************
128 
129  ier=0
130 #if defined HAVE_MPI
131  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
132    my_tag=MOD(tag,xmpi_tag_ub)
133    call MPI_RECV(xval,1,MPI_INTEGER,source,my_tag,spaceComm,MPI_STATUS_IGNORE,ier)
134  end if
135 #endif
136 
137  end subroutine xmpi_recv_intv