TABLE OF CONTENTS


ABINIT/xmpi_send [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send

FUNCTION

  This module contains functions that calls MPI routine MPI_SEND,
  to send data from one processor to another,
  if we compile the code using the MPI CPP flags.
  xmpi_send 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 .

SOURCE


ABINIT/xmpi_send_char [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_char

FUNCTION

  Sends data from one proc to another.
  Target: character.

INPUTS

  dest :: rank of destination 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

SOURCE

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

ABINIT/xmpi_send_dp [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_dp

FUNCTION

  Sends data from one proc to another.
  Target: double precision value.

INPUTS

  dest :: rank of destination 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

SOURCE

353 subroutine xmpi_send_dp(xval,dest,tag,spaceComm,ier)
354 
355 
356 
357 !This section has been created automatically by the script Abilint (TD).
358 !Do not modify the following lines by hand.
359 #undef ABI_FUNC
360 #define ABI_FUNC 'xmpi_send_dp'
361 !End of the abilint section
362 
363  implicit none
364 
365 !Arguments-------------------------
366  real(dp), DEV_CONTARRD intent(inout) :: xval
367  integer ,intent(in) :: dest,tag,spaceComm
368  integer ,intent(out) :: ier
369 
370 !Local variables-------------------
371 #if defined HAVE_MPI
372  integer :: my_tag
373 #endif
374 
375 ! *************************************************************************
376 
377  ier=0
378 #if defined HAVE_MPI
379  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
380    my_tag = MOD(tag,xmpi_tag_ub)
381    call MPI_SEND(xval,1,MPI_DOUBLE_PRECISION,dest,my_tag,spaceComm,ier)
382  end if
383 #endif
384 
385 end subroutine xmpi_send_dp

ABINIT/xmpi_send_dp1d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_dp1d

FUNCTION

  Sends data from one proc to another.
  Target: double precision one-dimensional arrays.

INPUTS

  dest :: rank of destination 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

SOURCE

409 subroutine xmpi_send_dp1d(xval,dest,tag,spaceComm,ier)
410 
411 
412 
413 !This section has been created automatically by the script Abilint (TD).
414 !Do not modify the following lines by hand.
415 #undef ABI_FUNC
416 #define ABI_FUNC 'xmpi_send_dp1d'
417 !End of the abilint section
418 
419  implicit none
420 
421 !Arguments-------------------------
422  real(dp), DEV_CONTARRD intent(inout) :: xval(:)
423  integer ,intent(in) :: dest,tag,spaceComm
424  integer ,intent(out) :: ier
425 
426 !Local variables-------------------
427 #if defined HAVE_MPI
428  integer :: n1,my_tag
429 #endif
430 
431 ! *************************************************************************
432 
433  ier=0
434 #if defined HAVE_MPI
435  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
436    n1=size(xval,dim=1)
437    my_tag = MOD(tag,xmpi_tag_ub)
438    call MPI_SEND(xval,n1,MPI_DOUBLE_PRECISION,dest,my_tag,spaceComm,ier)
439  end if
440 #endif
441 
442 end subroutine xmpi_send_dp1d

ABINIT/xmpi_send_dp2d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_dp2d

FUNCTION

  Sends data from one proc to another.
  Target: double precision two-dimensional arrays.

INPUTS

  dest :: rank of destination 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

SOURCE

465 subroutine xmpi_send_dp2d(xval,dest,tag,spaceComm,ier)
466 
467 
468 
469 !This section has been created automatically by the script Abilint (TD).
470 !Do not modify the following lines by hand.
471 #undef ABI_FUNC
472 #define ABI_FUNC 'xmpi_send_dp2d'
473 !End of the abilint section
474 
475  implicit none
476 
477 !Arguments-------------------------
478  real(dp), DEV_CONTARRD intent(inout) :: xval(:,:)
479  integer ,intent(in) :: dest,tag,spaceComm
480  integer ,intent(out) :: ier
481 
482 !Local variables-------------------
483 #if defined HAVE_MPI
484  integer :: n1,n2,my_tag
485 #endif
486 
487 ! *************************************************************************
488 
489  ier=0
490 #if defined HAVE_MPI
491  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
492    n1=size(xval,dim=1)
493    n2=size(xval,dim=2)
494    my_tag = MOD(tag,xmpi_tag_ub)
495    call MPI_SEND(xval,n1*n2,MPI_DOUBLE_PRECISION,dest,my_tag,spaceComm,ier)
496  end if
497 #endif
498 
499 end subroutine xmpi_send_dp2d

ABINIT/xmpi_send_dp3d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_dp3d

FUNCTION

  Sends data from one proc to another.
  Target: double precision three-dimensional arrays.

INPUTS

  dest :: rank of destination 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

SOURCE

523 subroutine xmpi_send_dp3d(xval,dest,tag,spaceComm,ier)
524 
525 
526 
527 !This section has been created automatically by the script Abilint (TD).
528 !Do not modify the following lines by hand.
529 #undef ABI_FUNC
530 #define ABI_FUNC 'xmpi_send_dp3d'
531 !End of the abilint section
532 
533  implicit none
534 
535 !Arguments-------------------------
536  real(dp), DEV_CONTARRD intent(inout) :: xval(:,:,:)
537  integer ,intent(in) :: dest,tag,spaceComm
538  integer ,intent(out) :: ier
539 
540 !Local variables-------------------
541 #if defined HAVE_MPI
542  integer :: n1,n2,n3,my_tag
543 #endif
544 
545 ! *************************************************************************
546 
547  ier=0
548 #if defined HAVE_MPI
549  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
550    n1=size(xval,dim=1)
551    n2=size(xval,dim=2)
552    n3=size(xval,dim=3)
553    my_tag = MOD(tag,xmpi_tag_ub)
554    call MPI_SEND(xval,n1*n2*n3,MPI_DOUBLE_PRECISION,dest,my_tag,spaceComm,ier)
555  end if
556 #endif
557 
558 end subroutine xmpi_send_dp3d

ABINIT/xmpi_send_int1d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_int1d

FUNCTION

  Sends data from one processor to another.
  Target: integer one-dimensional arrays.

INPUTS

  dest :: rank of destination 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

SOURCE

155 subroutine xmpi_send_int1d(xval,dest,tag,spaceComm,ier)
156 
157 
158 
159 !This section has been created automatically by the script Abilint (TD).
160 !Do not modify the following lines by hand.
161 #undef ABI_FUNC
162 #define ABI_FUNC 'xmpi_send_int1d'
163 !End of the abilint section
164 
165  implicit none
166 
167 !Arguments-------------------------
168  integer, DEV_CONTARRD intent(inout) :: xval(:)
169  integer,intent(in) :: dest,tag,spaceComm
170  integer,intent(out) :: ier
171 
172 !Local variables-------------------
173 #if defined HAVE_MPI
174  integer :: my_tag, n1
175 #endif
176 
177 ! *************************************************************************
178 
179  ier=0
180 #if defined HAVE_MPI
181  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
182    n1=size(xval,dim=1)
183    my_tag = MOD(tag,xmpi_tag_ub)
184    call MPI_SEND(xval,n1,MPI_INTEGER,dest,my_tag,spaceComm,ier)
185  end if
186 #endif
187 
188  end subroutine xmpi_send_int1d

ABINIT/xmpi_send_int2d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_int2d

FUNCTION

  Sends data from one proc to another.
  Target: integer two-dimensional arrays.

INPUTS

  dest :: rank of destination 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

PARENTS

CHILDREN

      mpi_send

SOURCE

216 subroutine xmpi_send_int2d(xval,dest,tag,spaceComm,ier)
217 
218 
219  use defs_basis
220 #if defined HAVE_MPI2 && ! defined HAVE_MPI_INCLUDED_ONCE
221  use mpi
222 #endif
223 
224 !This section has been created automatically by the script Abilint (TD).
225 !Do not modify the following lines by hand.
226 #undef ABI_FUNC
227 #define ABI_FUNC 'xmpi_send_int2d'
228 !End of the abilint section
229 
230  implicit none
231 
232 #if defined HAVE_MPI1
233  include 'mpif.h'
234 #endif
235 
236 !Arguments-------------------------
237  integer,intent(inout) :: xval(:,:)
238  integer ,intent(in) :: dest,tag,spaceComm
239  integer ,intent(out)   :: ier
240 
241 !Local variables-------------------
242 #if defined HAVE_MPI
243  integer :: n1,n2,my_tag
244 #endif
245 
246 ! *************************************************************************
247 
248  ier=0
249 #if defined HAVE_MPI
250  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
251    n1=size(xval,dim=1)
252    n2=size(xval,dim=2)
253    my_tag = MOD(tag,xmpi_tag_ub)
254    call MPI_SEND(xval,n1*n2,MPI_INTEGER,dest,my_tag,spaceComm,ier)
255  end if
256 #endif
257 
258 end subroutine xmpi_send_int2d

ABINIT/xmpi_send_int3d [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_int3d

FUNCTION

  Sends data from one proc to another.
  Target: integer three-dimensional arrays.

INPUTS

  dest :: rank of destination 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

PARENTS

CHILDREN

      mpi_send

SOURCE

286 subroutine xmpi_send_int3d(xval,dest,tag,spaceComm,ier)
287 
288 
289  use defs_basis
290 #if defined HAVE_MPI2 && ! defined HAVE_MPI_INCLUDED_ONCE
291  use mpi
292 #endif
293 
294 !This section has been created automatically by the script Abilint (TD).
295 !Do not modify the following lines by hand.
296 #undef ABI_FUNC
297 #define ABI_FUNC 'xmpi_send_int3d'
298 !End of the abilint section
299 
300  implicit none
301 
302 #if defined HAVE_MPI1
303  include 'mpif.h'
304 #endif
305 
306 !Arguments-------------------------
307  integer,intent(inout) :: xval(:,:,:)
308  integer ,intent(in) :: dest,tag,spaceComm
309  integer ,intent(out)   :: ier
310 
311 !Local variables-------------------
312 #if defined HAVE_MPI
313  integer :: n1,n2,n3,my_tag
314 #endif
315 
316 ! *************************************************************************
317 
318  ier=0
319 #if defined HAVE_MPI
320  if (spaceComm /= MPI_COMM_SELF .and. spaceComm /= MPI_COMM_NULL) then
321    n1=size(xval,dim=1)
322    n2=size(xval,dim=2)
323    n3=size(xval,dim=3)
324    my_tag = MOD(tag,xmpi_tag_ub)
325    call MPI_SEND(xval,n1*n2*n3,MPI_INTEGER,dest,my_tag,spaceComm,ier)
326  end if
327 #endif
328 
329 end subroutine xmpi_send_int3d

ABINIT/xmpi_send_intv [ Functions ]

[ Top ] [ Functions ]

NAME

  xmpi_send_intv

FUNCTION

  Sends data from one processor to another.
  Target: single integer.

INPUTS

  dest :: rank of destination 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

SOURCE

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