SURFEX v8.1
General documentation of Surfex
mpi4to8_s.F90
Go to the documentation of this file.
1 MODULE mpi4to8_s
2 #ifdef USE_8_BYTE_WORDS
3 
4 USE parkind1, ONLY : jpim
5 USE mpl_mpif
6 
7 IMPLICIT NONE
8 
9 PRIVATE :: status8
10  INTEGER(KIND=8), DIMENSION(MPI_STATUS_SIZE) :: status8
11 
12 INTERFACE mpi_get_count8
13  MODULE PROCEDURE mpi_get_count8_i4, mpi_get_count8_i4_1
14 END INTERFACE mpi_get_count8
15 
16 INTERFACE mpi_waitall8
17  MODULE PROCEDURE mpi_waitall8_i4, mpi_waitall8_i4_1
18 END INTERFACE mpi_waitall8
19 
20 INTERFACE mpi_wait8
21  MODULE PROCEDURE mpi_wait8_i4, mpi_wait8_i4_1
22 END INTERFACE mpi_wait8
23 
24 PUBLIC
25 
26 CONTAINS
27 
28 ! ---------------------------------------------------------
29 SUBROUTINE mpi_abort8(COMM, ERRORCODE, IERROR)
30 
31  INTEGER(KIND=JPIM), INTENT(IN) :: &
32  COMM, ERRORCODE
33  INTEGER(KIND=JPIM), INTENT(OUT) :: &
34  IERROR
35 
36  INTEGER(KIND=8) :: &
37  COMM8, ERRORCODE8, IERROR8
38 
39  comm8 = comm
40  errorcode8 = errorcode
41 
42  CALL mpi_abort(comm8, errorcode8, ierror8)
43 
44  ierror = ierror8
45 
46 END SUBROUTINE mpi_abort8
47 
48 ! ---------------------------------------------------------
49 SUBROUTINE mpi_barrier8(COMM, IERROR)
50 
51  INTEGER(KIND=JPIM), INTENT(IN) :: &
52  COMM
53  INTEGER(KIND=JPIM), INTENT(OUT) :: &
54  IERROR
55 
56  INTEGER(KIND=8) :: &
57  COMM8, IERROR8
58 
59  comm8 = comm
60 
61  CALL mpi_barrier(comm8, ierror8)
62 
63  ierror = ierror8
64 
65 END SUBROUTINE mpi_barrier8
66 
67 ! ---------------------------------------------------------
68 SUBROUTINE mpi_buffer_detach8(BUFFER_ADDR, SZ, IERROR)
69 
70  INTEGER(KIND=JPIM), DIMENSION(:), INTENT(OUT) :: &
71  BUFFER_ADDR
72  INTEGER(KIND=JPIM), INTENT(OUT) :: &
73  SZ, IERROR
74 
75  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: &
76  BUFFER_ADDR8
77  INTEGER(KIND=8) :: &
78  SZ8, IERROR8
79 
80  ALLOCATE(buffer_addr8(SIZE(buffer_addr)))
81 
82  CALL mpi_buffer_detach(buffer_addr8, sz8, ierror8)
83 
84  buffer_addr = buffer_addr8
85  sz = sz8
86  ierror = ierror8
87 
88  DEALLOCATE(buffer_addr8)
89 
90 END SUBROUTINE mpi_buffer_detach8
91 
92 ! ---------------------------------------------------------
93 SUBROUTINE mpi_buffer_attach8(BUFFER_ADDR, SZ, IERROR)
94 
95  INTEGER(KIND=JPIM), DIMENSION(:), INTENT(IN) :: &
96  BUFFER_ADDR
97  INTEGER(KIND=JPIM), INTENT(IN) :: &
98  SZ
99  INTEGER(KIND=JPIM), INTENT(OUT) :: &
100  IERROR
101 
102  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: &
103  BUFFER_ADDR8
104  INTEGER(KIND=8) :: &
105  SZ8, IERROR8
106 
107  ALLOCATE(buffer_addr8(SIZE(buffer_addr)))
108 
109  buffer_addr8 = buffer_addr
110  sz8 = sz
111 
112  CALL mpi_buffer_attach(buffer_addr8, sz8, ierror8)
113 
114  ierror = ierror8
115 
116  DEALLOCATE(buffer_addr8)
117 
118 END SUBROUTINE mpi_buffer_attach8
119 
120 ! ---------------------------------------------------------
121 SUBROUTINE mpi_cart_coords8(COMM, RANK, MAXDIMS, COORDS, IERROR)
123  INTEGER(KIND=JPIM), INTENT(IN) :: &
124  COMM, RANK, MAXDIMS
125  INTEGER(KIND=JPIM), INTENT(OUT) :: &
126  IERROR
127  INTEGER(KIND=JPIM), DIMENSION(:), INTENT(OUT) :: COORDS
128 
129  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: COORDS8
130  INTEGER(KIND=8) :: &
131  COMM8, RANK8, MAXDIMS8, IERROR8
132 
133  ALLOCATE(coords8(SIZE(coords)))
134 
135  comm8 = comm
136  rank8 = rank
137  maxdims8 = maxdims
138 
139  CALL mpi_cart_coords(comm8, rank8, maxdims8, coords8, ierror8)
140 
141  coords = coords8
142  ierror = ierror8
143 
144  DEALLOCATE(coords8)
145 
146 END SUBROUTINE mpi_cart_coords8
147 
148 ! ---------------------------------------------------------
149 SUBROUTINE mpi_cart_create8(COMM_OLD, NDIMS, DIMS, PERIODS, REORDER, COMM_CART, IERROR)
151  INTEGER(KIND=JPIM), INTENT(IN) :: &
152  COMM_OLD, NDIMS, DIMS(:)
153  LOGICAL(KIND=JPIM), INTENT(IN) :: &
154  PERIODS(:), REORDER
155  INTEGER(KIND=JPIM), INTENT(OUT) :: &
156  COMM_CART, IERROR
157 
158  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: &
159  DIMS8
160  INTEGER(KIND=8) :: &
161  COMM_OLD8, NDIMS8, COMM_CART8, IERROR8
162  LOGICAL(KIND=8), DIMENSION(:), ALLOCATABLE :: &
163  PERIODS8
164  LOGICAL(KIND=8) :: &
165  REORDER8
166 
167  ALLOCATE(dims8(SIZE(dims)))
168  ALLOCATE(periods8(SIZE(periods)))
169 
170  comm_old8 = comm_old
171  ndims8 = ndims
172  dims8 = dims
173  periods8 = periods
174  reorder8 = reorder
175 
176  CALL mpi_cart_create(comm_old8, ndims8, dims8, periods8, reorder8, comm_cart8, ierror8)
177 
178  comm_cart = comm_cart8
179  ierror = ierror8
180 
181  DEALLOCATE(dims8)
182  DEALLOCATE(periods8)
183 
184 END SUBROUTINE mpi_cart_create8
185 
186 ! ---------------------------------------------------------
187 SUBROUTINE mpi_cart_rank8(COMM, COORDS, RANK, IERROR)
189  INTEGER(KIND=JPIM), INTENT(IN) :: &
190  COMM
191  INTEGER(KIND=JPIM), INTENT(IN), DIMENSION(:) :: COORDS
192  INTEGER(KIND=JPIM), INTENT(OUT) :: &
193  RANK, IERROR
194 
195  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: COORDS8
196  INTEGER(KIND=8) :: &
197  COMM8, RANK8, IERROR8
198 
199  ALLOCATE(coords8(SIZE(coords)))
200 
201  comm8 = comm
202  coords8 = coords
203 
204  CALL mpi_cart_rank(comm8, coords8, rank8, ierror8)
205 
206  rank = rank8
207  ierror = ierror8
208 
209  DEALLOCATE(coords8)
210 
211 END SUBROUTINE mpi_cart_rank8
212 
213 ! ---------------------------------------------------------
214 SUBROUTINE mpi_cart_sub8(COMM, REMAIN_DIMS, NEWCOMM, IERROR)
216  INTEGER(KIND=JPIM), INTENT(IN) :: &
217  COMM
218  LOGICAL(KIND=JPIM), INTENT(IN), DIMENSION(:) :: &
219  REMAIN_DIMS
220  INTEGER(KIND=JPIM), INTENT(OUT) :: &
221  NEWCOMM, IERROR
222 
223  INTEGER(KIND=8) :: &
224  COMM8, NEWCOMM8, IERROR8
225  LOGICAL(KIND=8), DIMENSION(:), ALLOCATABLE :: &
226  REMAIN_DIMS8
227 
228  ALLOCATE(remain_dims8(SIZE(remain_dims)))
229 
230  comm8 = comm
231  remain_dims8 = remain_dims
232 
233  CALL mpi_cart_sub(comm8, remain_dims8, newcomm8, ierror8)
234 
235  newcomm = newcomm8
236  ierror = ierror8
237 
238  DEALLOCATE(remain_dims8)
239 
240 END SUBROUTINE mpi_cart_sub8
241 
242 ! ---------------------------------------------------------
243 SUBROUTINE mpi_comm_create8(COMM, GROUP, NEWCOMM, IERROR)
245  INTEGER(KIND=JPIM), INTENT(IN) :: &
246  COMM, GROUP
247  INTEGER(KIND=JPIM), INTENT(OUT) :: &
248  NEWCOMM, IERROR
249 
250  INTEGER(KIND=8) :: &
251  COMM8, GROUP8, NEWCOMM8, IERROR8
252 
253  comm8 = comm
254  group8 = group
255 
256  CALL mpi_comm_create(comm8, group8, newcomm8, ierror8)
257 
258  newcomm = newcomm8
259  ierror = ierror8
260 
261 END SUBROUTINE mpi_comm_create8
262 
263 ! ---------------------------------------------------------
264 SUBROUTINE mpi_comm_group8(COMM, GROUP, IERROR)
266  INTEGER(KIND=JPIM), INTENT(IN) :: &
267  COMM
268  INTEGER(KIND=JPIM), INTENT(OUT) :: &
269  GROUP, IERROR
270 
271  INTEGER(KIND=8) :: &
272  COMM8, GROUP8, IERROR8
273 
274  comm8 = comm
275 
276  CALL mpi_comm_group(comm8, group8, ierror8)
277 
278  group = group8
279  ierror = ierror8
280 
281 END SUBROUTINE mpi_comm_group8
282 
283 ! ---------------------------------------------------------
284 SUBROUTINE mpi_comm_rank8(COMM, RANK, IERROR)
286  INTEGER(KIND=JPIM), INTENT(IN) :: &
287  COMM
288  INTEGER(KIND=JPIM), INTENT(OUT) :: &
289  RANK, IERROR
290 
291  INTEGER(KIND=8) :: &
292  COMM8, RANK8, IERROR8
293 
294  comm8 = comm
295 
296  CALL mpi_comm_rank(comm8, rank8, ierror8)
297 
298  rank = rank8
299  ierror = ierror8
300 
301 END SUBROUTINE mpi_comm_rank8
302 
303 ! ---------------------------------------------------------
304 SUBROUTINE mpi_comm_size8(COMM, SIZE, IERROR)
306  INTEGER(KIND=JPIM), INTENT(IN) :: &
307  COMM
308  INTEGER(KIND=JPIM), INTENT(OUT) :: &
309  SIZE, IERROR
310 
311  INTEGER(KIND=8) :: &
312  COMM8, SIZE8, IERROR8
313 
314  comm8 = comm
315 
316  CALL mpi_comm_size(comm8, size8, ierror8)
317 
318  SIZE = size8
319  ierror = ierror8
320 
321 END SUBROUTINE mpi_comm_size8
322 
323 ! ---------------------------------------------------------
324 SUBROUTINE mpi_comm_split8(COMM, COLOR, KEY, NEWCOMM, IERROR)
326  INTEGER(KIND=JPIM), INTENT(IN) :: &
327  COMM, COLOR, KEY
328  INTEGER(KIND=JPIM), INTENT(OUT) :: &
329  NEWCOMM, IERROR
330 
331  INTEGER(KIND=8) :: &
332  COMM8, COLOR8, KEY8, NEWCOMM8, IERROR8
333 
334  comm8 = comm
335  color8 = color
336  key8 = key
337 
338  CALL mpi_comm_split(comm8, color8, key8, newcomm8, ierror8)
339 
340  newcomm = newcomm8
341  ierror = ierror8
342 
343 END SUBROUTINE mpi_comm_split8
344 
345 ! ---------------------------------------------------------
346 SUBROUTINE mpi_error_string8(ERRORCODE, STRING, RESULTLEN, IERROR)
348  INTEGER(KIND=JPIM), INTENT(IN) :: &
349  ERRORCODE
350  CHARACTER(LEN=*), INTENT(OUT) :: &
351  STRING
352  INTEGER(KIND=JPIM), INTENT(OUT) :: &
353  RESULTLEN, IERROR
354 
355  INTEGER(KIND=8) :: &
356  ERRORCODE8, RESULTLEN8, IERROR8
357 
358  errorcode8 = errorcode
359 
360  CALL mpi_error_string(errorcode8, string, resultlen8, ierror8)
361 
362  resultlen = resultlen8
363  ierror = ierror8
364 
365 END SUBROUTINE mpi_error_string8
366 
367 ! ---------------------------------------------------------
368 SUBROUTINE mpi_file_close8(FH, IERROR)
370  INTEGER(KIND=JPIM), INTENT(IN) :: &
371  FH
372  INTEGER(KIND=JPIM), INTENT(OUT) :: &
373  IERROR
374 
375  INTEGER(KIND=8) :: &
376  FH8, IERROR8
377 
378  fh8 = fh
379 
380  CALL mpi_file_close(fh8, ierror8)
381 
382  ierror = ierror8
383 
384 END SUBROUTINE mpi_file_close8
385 
386 ! ---------------------------------------------------------
387 SUBROUTINE mpi_file_open8(COMM, FILENAME, AMODE, INFO, FH, IERROR)
389  INTEGER(KIND=JPIM), INTENT(IN) :: &
390  COMM, AMODE, INFO
391  CHARACTER(LEN=*), INTENT(IN) :: &
392  FILENAME
393  INTEGER(KIND=JPIM), INTENT(OUT) :: &
394  FH, IERROR
395 
396  INTEGER(KIND=8) :: &
397  COMM8, AMODE8, INFO8, FH8, IERROR8
398 
399  comm8 = comm
400  amode8 = amode
401  info8 = info
402 
403  CALL mpi_file_open(comm8, filename, amode8, info8, fh8, ierror8)
404 
405  fh = fh8
406  ierror = ierror8
407 
408 END SUBROUTINE mpi_file_open8
409 
410 ! ---------------------------------------------------------
411 SUBROUTINE mpi_finalize8(IERROR)
413  INTEGER(KIND=JPIM), INTENT(OUT) :: &
414  IERROR
415 
416  INTEGER(KIND=8) :: &
417  IERROR8
418 
419  CALL mpi_finalize(ierror8)
420 
421  ierror = ierror8
422 
423 END SUBROUTINE mpi_finalize8
424 
425 ! ---------------------------------------------------------
426 SUBROUTINE mpi_get_count8_i4(STATUS, DATATYPE, COUNT, IERROR)
428  INTEGER(KIND=JPIM), INTENT(IN) :: &
429  STATUS(:), DATATYPE
430  INTEGER(KIND=JPIM), INTENT(OUT) :: &
431  COUNT, IERROR
432 
433  INTEGER(KIND=8) :: &
434  DATATYPE8, COUNT8, IERROR8
435 
436  status8 = status
437  datatype8 = datatype
438 
439  CALL mpi_get_count(status8, datatype8, count8, ierror8)
440 
441  count = count8
442  ierror = ierror8
443 
444 END SUBROUTINE mpi_get_count8_i4
445 
446 ! ---------------------------------------------------------
447 SUBROUTINE mpi_get_count8_i4_1(STATUS, DATATYPE, COUNT, IERROR)
449  INTEGER(KIND=JPIM), INTENT(IN) :: &
450  STATUS, DATATYPE
451  INTEGER(KIND=JPIM), INTENT(OUT) :: &
452  COUNT, IERROR
453 
454  INTEGER(KIND=8) :: &
455  DATATYPE8, COUNT8, IERROR8, STATUS8
456 
457  status8 = status
458  datatype8 = datatype
459 
460  CALL mpi_get_count(status8, datatype8, count8, ierror8)
461 
462  count = count8
463  ierror = ierror8
464 
465 END SUBROUTINE mpi_get_count8_i4_1
466 
467 ! ---------------------------------------------------------
468 SUBROUTINE mpi_group_incl8(GROUP1, N, RANKS, NEWGROUP, IERROR)
470  INTEGER(KIND=JPIM), INTENT(IN) :: &
471  GROUP1, N, RANKS(:)
472  INTEGER(KIND=JPIM), INTENT(OUT) :: &
473  NEWGROUP, IERROR
474 
475  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: &
476  RANKS8
477  INTEGER(KIND=8) :: &
478  GROUP18, N8, NEWGROUP8, IERROR8
479 
480  ALLOCATE(ranks8(SIZE(ranks)))
481 
482  group18 = group1
483  n8 = n
484  ranks8 = ranks
485 
486  CALL mpi_group_incl(group18, n8, ranks8, newgroup8, ierror8)
487 
488  newgroup = newgroup8
489  ierror = ierror8
490 
491  DEALLOCATE(ranks8)
492 
493 END SUBROUTINE mpi_group_incl8
494 
495 ! ---------------------------------------------------------
496 SUBROUTINE mpi_init8(IERROR)
498  INTEGER(KIND=JPIM), INTENT(OUT) :: &
499  IERROR
500 
501  INTEGER(KIND=8) :: &
502  IERROR8
503 
504  CALL mpi_init(ierror8)
505 
506  ierror = ierror8
507 
508 END SUBROUTINE mpi_init8
509 
510 ! ---------------------------------------------------------
511 SUBROUTINE mpi_initialized8(FLAG, IERROR)
513  INTEGER(KIND=JPIM), INTENT(OUT) :: &
514  FLAG
515  INTEGER(KIND=JPIM), INTENT(OUT) :: &
516  IERROR
517 
518  INTEGER(KIND=8) :: &
519  FLAG8
520  INTEGER(KIND=8) :: &
521  IERROR8
522 
523 
524  CALL mpi_initialized(flag8, ierror8)
525 
526  flag = flag8
527  ierror = ierror8
528 
529 END SUBROUTINE mpi_initialized8
530 
531 ! ---------------------------------------------------------
532 SUBROUTINE mpi_iprobe8(SOURCE, TAG, COMM, FLAG, STATUS, IERROR)
534  INTEGER(KIND=JPIM), INTENT(IN) :: &
535  SOURCE, TAG, COMM
536  INTEGER(KIND=JPIM), INTENT(OUT) :: &
537  FLAG
538  INTEGER(KIND=JPIM), INTENT(OUT) :: &
539  STATUS(:), IERROR
540 
541  INTEGER(KIND=8) :: &
542  SOURCE8, TAG8, COMM8, IERROR8
543  INTEGER(KIND=8) :: &
544  FLAG8
545 
546  source8 = source
547  tag8 = tag
548  comm8 = comm
549 
550  CALL mpi_iprobe(source8, tag8, comm8, flag8, status8, ierror8)
551 
552  flag = flag8
553  status = status8
554  ierror = ierror8
555 
556 END SUBROUTINE mpi_iprobe8
557 
558 ! ---------------------------------------------------------
559 SUBROUTINE mpi_probe8(SOURCE, TAG, COMM, STATUS, IERROR)
561  INTEGER(KIND=JPIM), INTENT(IN) :: &
562  SOURCE, TAG, COMM
563  INTEGER(KIND=JPIM), INTENT(OUT) :: &
564  STATUS(:), IERROR
565 
566  INTEGER(KIND=8) :: &
567  SOURCE8, TAG8, COMM8, IERROR8
568 
569  source8 = source
570  tag8 = tag
571  comm8 = comm
572 
573  CALL mpi_probe(source8, tag8, comm8, status8, ierror8)
574 
575  status = status8
576  ierror = ierror8
577 
578 END SUBROUTINE mpi_probe8
579 
580 ! ---------------------------------------------------------
581 SUBROUTINE mpi_wait8_i4(REQUEST, STATUS, IERROR)
583  INTEGER(KIND=JPIM), INTENT(INOUT) :: &
584  REQUEST
585  INTEGER(KIND=JPIM), INTENT(OUT) :: &
586  STATUS(:), IERROR
587 
588  INTEGER(KIND=8) :: &
589  REQUEST8, IERROR8
590  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: STATUS8
591 
592  ALLOCATE(status8(SIZE(status)))
593 
594  request8 = request
595 
596  CALL mpi_wait(request8, status8, ierror8)
597 
598  request = request8
599  status = status8
600  ierror = ierror8
601 
602  DEALLOCATE(status8)
603 
604 END SUBROUTINE mpi_wait8_i4
605 
606 ! ---------------------------------------------------------
607 SUBROUTINE mpi_wait8_i4_1(REQUEST, STATUS, IERROR)
609  INTEGER(KIND=JPIM) :: &
610  REQUEST
611  INTEGER(KIND=JPIM), INTENT(OUT) :: &
612  STATUS, IERROR
613 
614  INTEGER(KIND=8) :: &
615  REQUEST8, IERROR8, STATUS8
616 
617  request8 = request
618 
619  CALL mpi_wait(request8, status8, ierror8)
620 
621  request = request8
622  status = status8
623  ierror = ierror8
624 
625 END SUBROUTINE mpi_wait8_i4_1
626 
627 ! ---------------------------------------------------------
628 SUBROUTINE mpi_waitall8_i4(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
630  INTEGER(KIND=JPIM), INTENT(IN) :: &
631  COUNT
632  INTEGER(KIND=JPIM), DIMENSION(:), INTENT(INOUT) :: &
633  ARRAY_OF_REQUESTS
634  INTEGER(KIND=JPIM), DIMENSION(:,:), INTENT(OUT) :: &
635  ARRAY_OF_STATUSES
636  INTEGER(KIND=JPIM), INTENT(OUT) :: &
637  IERROR
638 
639  INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE :: &
640  ARRAY_OF_REQUESTS8
641  INTEGER(KIND=8), DIMENSION(:,:), ALLOCATABLE :: &
642  ARRAY_OF_STATUSES8
643  INTEGER(KIND=8) :: &
644  COUNT8, IERROR8
645 
646  INTEGER :: N
647 
648  count8 = count
649 
650  ALLOCATE(array_of_requests8(SIZE(array_of_requests)))
651  n = SIZE(array_of_statuses) / mpi_status_size
652  ALLOCATE(array_of_statuses8(mpi_status_size,n))
653 
654  array_of_requests8 = array_of_requests
655 
656  CALL mpi_waitall(count8, array_of_requests8, array_of_statuses8, ierror8)
657 
658  array_of_requests = array_of_requests8
659  array_of_statuses = array_of_statuses8
660 
661  DEALLOCATE(array_of_requests8)
662  DEALLOCATE(array_of_statuses8)
663 
664  ierror = ierror8
665 
666 END SUBROUTINE mpi_waitall8_i4
667 
668 ! ---------------------------------------------------------
669 SUBROUTINE mpi_waitall8_i4_1(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
671  INTEGER(KIND=JPIM), INTENT(IN) :: &
672  COUNT
673  INTEGER(KIND=JPIM) :: &
674  ARRAY_OF_REQUESTS
675  INTEGER(KIND=JPIM), DIMENSION(:,:), INTENT(OUT) :: &
676  ARRAY_OF_STATUSES
677  INTEGER(KIND=JPIM), INTENT(OUT) :: &
678  IERROR
679 
680  INTEGER(KIND=8) :: &
681  ARRAY_OF_REQUESTS8
682  INTEGER(KIND=8), DIMENSION(:,:), ALLOCATABLE :: &
683  ARRAY_OF_STATUSES8
684  INTEGER(KIND=8) :: &
685  COUNT8, IERROR8
686 
687  INTEGER :: N
688 
689  count8 = count
690 
691  n = SIZE(array_of_statuses) / mpi_status_size
692  ALLOCATE(array_of_statuses8(mpi_status_size,n))
693 
694  array_of_requests8 = array_of_requests
695 
696  CALL mpi_waitall(count8, array_of_requests8, array_of_statuses8, ierror8)
697 
698  array_of_requests = array_of_requests8
699  array_of_statuses = array_of_statuses8
700 
701  DEALLOCATE(array_of_statuses8)
702 
703  ierror = ierror8
704 
705 END SUBROUTINE mpi_waitall8_i4_1
706 
707 #endif
708 END MODULE mpi4to8_s
subroutine mpi_cart_coords8(COMM, RANK, MAXDIMS, COORDS, IERROR)
Definition: mpi4to8_s.F90:122
subroutine mpi_file_close8(FH, IERROR)
Definition: mpi4to8_s.F90:369
integer, parameter jpim
Definition: parkind1.F90:13
subroutine mpi_cart_rank8(COMM, COORDS, RANK, IERROR)
Definition: mpi4to8_s.F90:188
subroutine mpi_error_string8(ERRORCODE, STRING, RESULTLEN, IERROR)
Definition: mpi4to8_s.F90:347
subroutine mpi_cart_create8(COMM_OLD, NDIMS, DIMS, PERIODS, REORDER, COMM_CART, IERROR)
Definition: mpi4to8_s.F90:150
subroutine mpi_file_open8(COMM, FILENAME, AMODE, INFO, FH, IERROR)
Definition: mpi4to8_s.F90:388
subroutine mpi_waitall8_i4(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
Definition: mpi4to8_s.F90:629
subroutine mpi_comm_create8(COMM, GROUP, NEWCOMM, IERROR)
Definition: mpi4to8_s.F90:244
subroutine mpi_comm_size8(COMM, SIZE, IERROR)
Definition: mpi4to8_s.F90:305
subroutine mpi_probe8(SOURCE, TAG, COMM, STATUS, IERROR)
Definition: mpi4to8_s.F90:560
subroutine mpi_comm_split8(COMM, COLOR, KEY, NEWCOMM, IERROR)
Definition: mpi4to8_s.F90:325
subroutine mpi_group_incl8(GROUP1, N, RANKS, NEWGROUP, IERROR)
Definition: mpi4to8_s.F90:469
subroutine mpi_barrier8(COMM, IERROR)
Definition: mpi4to8_s.F90:50
integer(kind=8), dimension(mpi_status_size), private status8
Definition: mpi4to8_s.F90:10
subroutine mpi_buffer_attach8(BUFFER_ADDR, SZ, IERROR)
Definition: mpi4to8_s.F90:94
subroutine mpi_iprobe8(SOURCE, TAG, COMM, FLAG, STATUS, IERROR)
Definition: mpi4to8_s.F90:533
subroutine mpi_buffer_detach8(BUFFER_ADDR, SZ, IERROR)
Definition: mpi4to8_s.F90:69
subroutine mpi_abort8(COMM, ERRORCODE, IERROR)
Definition: mpi4to8_s.F90:30
subroutine mpi_comm_group8(COMM, GROUP, IERROR)
Definition: mpi4to8_s.F90:265
subroutine mpi_waitall8_i4_1(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
Definition: mpi4to8_s.F90:670
subroutine mpi_init8(IERROR)
Definition: mpi4to8_s.F90:497
subroutine mpi_get_count8_i4(STATUS, DATATYPE, COUNT, IERROR)
Definition: mpi4to8_s.F90:427
subroutine mpi_wait8_i4_1(REQUEST, STATUS, IERROR)
Definition: mpi4to8_s.F90:608
subroutine mpi_finalize8(IERROR)
Definition: mpi4to8_s.F90:412
subroutine mpi_wait8_i4(REQUEST, STATUS, IERROR)
Definition: mpi4to8_s.F90:582
subroutine mpi_initialized8(FLAG, IERROR)
Definition: mpi4to8_s.F90:512
subroutine mpi_get_count8_i4_1(STATUS, DATATYPE, COUNT, IERROR)
Definition: mpi4to8_s.F90:448
subroutine mpi_cart_sub8(COMM, REMAIN_DIMS, NEWCOMM, IERROR)
Definition: mpi4to8_s.F90:215
subroutine mpi_comm_rank8(COMM, RANK, IERROR)
Definition: mpi4to8_s.F90:285