The value was incorrectly converted in the header and module for the changes in 66462c2fcd.
Use the correct file extension for a Fortran source file that needs to be preprocessed (and remove a flag that is no longer needed in the compile command).
Add a check function to make it easier to run the tests. This requires that Microsoft MPI is installed on the system where the tests are run.
3799 lines
137 KiB
Fortran
3799 lines
137 KiB
Fortran
! -*- Mode: F90; -*-
|
|
! Copyright(c) Microsoft Corporation.All rights reserved.
|
|
! Licensed under the MIT License.
|
|
!
|
|
! (C) 2004 by Argonne National Laboratory.
|
|
! (C) 2015 by Microsoft Corporation
|
|
!
|
|
! MPICH COPYRIGHT
|
|
!
|
|
! The following is a notice of limited availability of the code, and disclaimer
|
|
! which must be included in the prologue of the code and in all source listings
|
|
! of the code.
|
|
!
|
|
! Copyright Notice
|
|
! + 2002 University of Chicago
|
|
!
|
|
! Permission is hereby granted to use, reproduce, prepare derivative works, and
|
|
! to redistribute to others. This software was authored by:
|
|
!
|
|
! Mathematics and Computer Science Division
|
|
! Argonne National Laboratory, Argonne IL 60439
|
|
!
|
|
! (and)
|
|
!
|
|
! Department of Computer Science
|
|
! University of Illinois at Urbana-Champaign
|
|
!
|
|
!
|
|
! GOVERNMENT LICENSE
|
|
!
|
|
! Portions of this material resulted from work developed under a U.S.
|
|
! Government Contract and are subject to the following license: the Government
|
|
! is granted for itself and others acting on its behalf a paid-up, nonexclusive,
|
|
! irrevocable worldwide license in this computer software to reproduce, prepare
|
|
! derivative works, and perform publicly and display publicly.
|
|
!
|
|
! DISCLAIMER
|
|
!
|
|
! This computer code material was prepared, in part, as an account of work
|
|
! sponsored by an agency of the United States Government. Neither the United
|
|
! States, nor the University of Chicago, nor any of their employees, makes any
|
|
! warranty express or implied, or assumes any legal liability or responsibility
|
|
! for the accuracy, completeness, or usefulness of any information, apparatus,
|
|
! product, or process disclosed, or represents that its use would not infringe
|
|
! privately owned rights.
|
|
!
|
|
!
|
|
MODULE MPI_CONSTANTS
|
|
IMPLICIT NONE
|
|
|
|
INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR
|
|
PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5)
|
|
INTEGER MPI_STATUS_SIZE
|
|
PARAMETER (MPI_STATUS_SIZE=5)
|
|
INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
|
|
INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1)
|
|
INTEGER MPI_ERRCODES_IGNORE(1)
|
|
CHARACTER*1 MPI_ARGVS_NULL(1,1)
|
|
CHARACTER*1 MPI_ARGV_NULL(1)
|
|
INTEGER MPI_SUCCESS
|
|
PARAMETER (MPI_SUCCESS=0)
|
|
INTEGER MPI_ERR_OTHER
|
|
PARAMETER (MPI_ERR_OTHER=15)
|
|
INTEGER MPI_ERR_WIN
|
|
PARAMETER (MPI_ERR_WIN=45)
|
|
INTEGER MPI_ERR_FILE
|
|
PARAMETER (MPI_ERR_FILE=27)
|
|
INTEGER MPI_ERR_COUNT
|
|
PARAMETER (MPI_ERR_COUNT=2)
|
|
INTEGER MPI_ERR_SPAWN
|
|
PARAMETER (MPI_ERR_SPAWN=42)
|
|
INTEGER MPI_ERR_BASE
|
|
PARAMETER (MPI_ERR_BASE=46)
|
|
INTEGER MPI_ERR_RMA_CONFLICT
|
|
PARAMETER (MPI_ERR_RMA_CONFLICT=49)
|
|
INTEGER MPI_ERR_IN_STATUS
|
|
PARAMETER (MPI_ERR_IN_STATUS=17)
|
|
INTEGER MPI_ERR_INFO_KEY
|
|
PARAMETER (MPI_ERR_INFO_KEY=29)
|
|
INTEGER MPI_ERR_LOCKTYPE
|
|
PARAMETER (MPI_ERR_LOCKTYPE=47)
|
|
INTEGER MPI_ERR_OP
|
|
PARAMETER (MPI_ERR_OP=9)
|
|
INTEGER MPI_ERR_ARG
|
|
PARAMETER (MPI_ERR_ARG=12)
|
|
INTEGER MPI_ERR_READ_ONLY
|
|
PARAMETER (MPI_ERR_READ_ONLY=40)
|
|
INTEGER MPI_ERR_SIZE
|
|
PARAMETER (MPI_ERR_SIZE=51)
|
|
INTEGER MPI_ERR_BUFFER
|
|
PARAMETER (MPI_ERR_BUFFER=1)
|
|
INTEGER MPI_ERR_DUP_DATAREP
|
|
PARAMETER (MPI_ERR_DUP_DATAREP=24)
|
|
INTEGER MPI_ERR_UNSUPPORTED_DATAREP
|
|
PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43)
|
|
INTEGER MPI_ERR_LASTCODE
|
|
PARAMETER (MPI_ERR_LASTCODE=1073741823)
|
|
INTEGER MPI_ERR_TRUNCATE
|
|
PARAMETER (MPI_ERR_TRUNCATE=14)
|
|
INTEGER MPI_ERR_DISP
|
|
PARAMETER (MPI_ERR_DISP=52)
|
|
INTEGER MPI_ERR_PORT
|
|
PARAMETER (MPI_ERR_PORT=38)
|
|
INTEGER MPI_ERR_INFO_NOKEY
|
|
PARAMETER (MPI_ERR_INFO_NOKEY=31)
|
|
INTEGER MPI_ERR_ASSERT
|
|
PARAMETER (MPI_ERR_ASSERT=53)
|
|
INTEGER MPI_ERR_FILE_EXISTS
|
|
PARAMETER (MPI_ERR_FILE_EXISTS=25)
|
|
INTEGER MPI_ERR_PENDING
|
|
PARAMETER (MPI_ERR_PENDING=18)
|
|
INTEGER MPI_ERR_COMM
|
|
PARAMETER (MPI_ERR_COMM=5)
|
|
INTEGER MPI_ERR_KEYVAL
|
|
PARAMETER (MPI_ERR_KEYVAL=48)
|
|
INTEGER MPI_ERR_NAME
|
|
PARAMETER (MPI_ERR_NAME=33)
|
|
INTEGER MPI_ERR_REQUEST
|
|
PARAMETER (MPI_ERR_REQUEST=19)
|
|
INTEGER MPI_ERR_GROUP
|
|
PARAMETER (MPI_ERR_GROUP=8)
|
|
INTEGER MPI_ERR_TOPOLOGY
|
|
PARAMETER (MPI_ERR_TOPOLOGY=10)
|
|
INTEGER MPI_ERR_TYPE
|
|
PARAMETER (MPI_ERR_TYPE=3)
|
|
INTEGER MPI_ERR_TAG
|
|
PARAMETER (MPI_ERR_TAG=4)
|
|
INTEGER MPI_ERR_INFO_VALUE
|
|
PARAMETER (MPI_ERR_INFO_VALUE=30)
|
|
INTEGER MPI_ERR_NOT_SAME
|
|
PARAMETER (MPI_ERR_NOT_SAME=35)
|
|
INTEGER MPI_ERR_RMA_SYNC
|
|
PARAMETER (MPI_ERR_RMA_SYNC=50)
|
|
INTEGER MPI_ERR_INFO
|
|
PARAMETER (MPI_ERR_INFO=28)
|
|
INTEGER MPI_ERR_NO_MEM
|
|
PARAMETER (MPI_ERR_NO_MEM=34)
|
|
INTEGER MPI_ERR_BAD_FILE
|
|
PARAMETER (MPI_ERR_BAD_FILE=22)
|
|
INTEGER MPI_ERR_FILE_IN_USE
|
|
PARAMETER (MPI_ERR_FILE_IN_USE=26)
|
|
INTEGER MPI_ERR_UNKNOWN
|
|
PARAMETER (MPI_ERR_UNKNOWN=13)
|
|
INTEGER MPI_ERR_UNSUPPORTED_OPERATION
|
|
PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44)
|
|
INTEGER MPI_ERR_QUOTA
|
|
PARAMETER (MPI_ERR_QUOTA=39)
|
|
INTEGER MPI_ERR_AMODE
|
|
PARAMETER (MPI_ERR_AMODE=21)
|
|
INTEGER MPI_ERR_ROOT
|
|
PARAMETER (MPI_ERR_ROOT=7)
|
|
INTEGER MPI_ERR_RANK
|
|
PARAMETER (MPI_ERR_RANK=6)
|
|
INTEGER MPI_ERR_DIMS
|
|
PARAMETER (MPI_ERR_DIMS=11)
|
|
INTEGER MPI_ERR_NO_SUCH_FILE
|
|
PARAMETER (MPI_ERR_NO_SUCH_FILE=37)
|
|
INTEGER MPI_ERR_SERVICE
|
|
PARAMETER (MPI_ERR_SERVICE=41)
|
|
INTEGER MPI_ERR_INTERN
|
|
PARAMETER (MPI_ERR_INTERN=16)
|
|
INTEGER MPI_ERR_IO
|
|
PARAMETER (MPI_ERR_IO=32)
|
|
INTEGER MPI_ERR_ACCESS
|
|
PARAMETER (MPI_ERR_ACCESS=20)
|
|
INTEGER MPI_ERR_NO_SPACE
|
|
PARAMETER (MPI_ERR_NO_SPACE=36)
|
|
INTEGER MPI_ERR_CONVERSION
|
|
PARAMETER (MPI_ERR_CONVERSION=23)
|
|
INTEGER MPI_ERRORS_ARE_FATAL
|
|
PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144)
|
|
INTEGER MPI_ERRORS_RETURN
|
|
PARAMETER (MPI_ERRORS_RETURN=1409286145)
|
|
INTEGER MPI_IDENT
|
|
PARAMETER (MPI_IDENT=0)
|
|
INTEGER MPI_CONGRUENT
|
|
PARAMETER (MPI_CONGRUENT=1)
|
|
INTEGER MPI_SIMILAR
|
|
PARAMETER (MPI_SIMILAR=2)
|
|
INTEGER MPI_UNEQUAL
|
|
PARAMETER (MPI_UNEQUAL=3)
|
|
INTEGER MPI_MAX
|
|
PARAMETER (MPI_MAX=1476395009)
|
|
INTEGER MPI_MIN
|
|
PARAMETER (MPI_MIN=1476395010)
|
|
INTEGER MPI_SUM
|
|
PARAMETER (MPI_SUM=1476395011)
|
|
INTEGER MPI_PROD
|
|
PARAMETER (MPI_PROD=1476395012)
|
|
INTEGER MPI_LAND
|
|
PARAMETER (MPI_LAND=1476395013)
|
|
INTEGER MPI_BAND
|
|
PARAMETER (MPI_BAND=1476395014)
|
|
INTEGER MPI_LOR
|
|
PARAMETER (MPI_LOR=1476395015)
|
|
INTEGER MPI_BOR
|
|
PARAMETER (MPI_BOR=1476395016)
|
|
INTEGER MPI_LXOR
|
|
PARAMETER (MPI_LXOR=1476395017)
|
|
INTEGER MPI_BXOR
|
|
PARAMETER (MPI_BXOR=1476395018)
|
|
INTEGER MPI_MINLOC
|
|
PARAMETER (MPI_MINLOC=1476395019)
|
|
INTEGER MPI_MAXLOC
|
|
PARAMETER (MPI_MAXLOC=1476395020)
|
|
INTEGER MPI_REPLACE
|
|
PARAMETER (MPI_REPLACE=1476395021)
|
|
INTEGER MPI_NO_OP
|
|
PARAMETER (MPI_NO_OP=1476395022)
|
|
INTEGER MPI_COMM_WORLD
|
|
PARAMETER (MPI_COMM_WORLD=1140850688)
|
|
INTEGER MPI_COMM_SELF
|
|
PARAMETER (MPI_COMM_SELF=1140850689)
|
|
INTEGER MPI_COMM_TYPE_SHARED
|
|
PARAMETER (MPI_COMM_TYPE_SHARED=1)
|
|
INTEGER MPI_GROUP_EMPTY
|
|
PARAMETER (MPI_GROUP_EMPTY=1207959552)
|
|
INTEGER MPI_COMM_NULL
|
|
PARAMETER (MPI_COMM_NULL=67108864)
|
|
INTEGER MPI_WIN_NULL
|
|
PARAMETER (MPI_WIN_NULL=536870912)
|
|
INTEGER MPI_FILE_NULL
|
|
PARAMETER (MPI_FILE_NULL=0)
|
|
INTEGER MPI_GROUP_NULL
|
|
PARAMETER (MPI_GROUP_NULL=134217728)
|
|
INTEGER MPI_OP_NULL
|
|
PARAMETER (MPI_OP_NULL=402653184)
|
|
INTEGER MPI_DATATYPE_NULL
|
|
PARAMETER (MPI_DATATYPE_NULL=201326592) ! MPI_DATATYPE_NULL=z'0c000000'
|
|
INTEGER MPI_REQUEST_NULL
|
|
PARAMETER (MPI_REQUEST_NULL=738197504)
|
|
INTEGER MPI_ERRHANDLER_NULL
|
|
PARAMETER (MPI_ERRHANDLER_NULL=335544320)
|
|
INTEGER MPI_INFO_NULL
|
|
PARAMETER (MPI_INFO_NULL=469762048)
|
|
INTEGER MPI_MESSAGE_NULL
|
|
PARAMETER (MPI_MESSAGE_NULL=805306368)
|
|
INTEGER MPI_MESSAGE_NO_PROC
|
|
PARAMETER (MPI_MESSAGE_NO_PROC=1879048192)
|
|
INTEGER MPI_TAG_UB
|
|
PARAMETER (MPI_TAG_UB=1681915906)
|
|
INTEGER MPI_HOST
|
|
PARAMETER (MPI_HOST=1681915908)
|
|
INTEGER MPI_IO
|
|
PARAMETER (MPI_IO=1681915910)
|
|
INTEGER MPI_WTIME_IS_GLOBAL
|
|
PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912)
|
|
INTEGER MPI_UNIVERSE_SIZE
|
|
PARAMETER (MPI_UNIVERSE_SIZE=1681915914)
|
|
INTEGER MPI_LASTUSEDCODE
|
|
PARAMETER (MPI_LASTUSEDCODE=1681915916)
|
|
INTEGER MPI_APPNUM
|
|
PARAMETER (MPI_APPNUM=1681915918)
|
|
INTEGER MPI_WIN_BASE
|
|
PARAMETER (MPI_WIN_BASE=1711276034)
|
|
INTEGER MPI_WIN_SIZE
|
|
PARAMETER (MPI_WIN_SIZE=1711276036)
|
|
INTEGER MPI_WIN_DISP_UNIT
|
|
PARAMETER (MPI_WIN_DISP_UNIT=1711276038)
|
|
INTEGER MPI_MAX_ERROR_STRING
|
|
PARAMETER (MPI_MAX_ERROR_STRING=511)
|
|
INTEGER MPI_MAX_PORT_NAME
|
|
PARAMETER (MPI_MAX_PORT_NAME=255)
|
|
INTEGER MPI_MAX_OBJECT_NAME
|
|
PARAMETER (MPI_MAX_OBJECT_NAME=127)
|
|
INTEGER MPI_MAX_INFO_KEY
|
|
PARAMETER (MPI_MAX_INFO_KEY=254)
|
|
INTEGER MPI_MAX_INFO_VAL
|
|
PARAMETER (MPI_MAX_INFO_VAL=1023)
|
|
INTEGER MPI_MAX_PROCESSOR_NAME
|
|
PARAMETER (MPI_MAX_PROCESSOR_NAME=128-1)
|
|
INTEGER MPI_MAX_DATAREP_STRING
|
|
PARAMETER (MPI_MAX_DATAREP_STRING=127)
|
|
INTEGER MPI_MAX_LIBRARY_VERSION_STRING
|
|
PARAMETER (MPI_MAX_LIBRARY_VERSION_STRING=64-1)
|
|
INTEGER MPI_UNDEFINED
|
|
PARAMETER (MPI_UNDEFINED=(-32766))
|
|
INTEGER MPI_KEYVAL_INVALID
|
|
PARAMETER (MPI_KEYVAL_INVALID=603979776)
|
|
INTEGER MPI_BSEND_OVERHEAD
|
|
PARAMETER (MPI_BSEND_OVERHEAD=(95))
|
|
INTEGER MPI_PROC_NULL
|
|
PARAMETER (MPI_PROC_NULL=-1)
|
|
INTEGER MPI_ANY_SOURCE
|
|
PARAMETER (MPI_ANY_SOURCE=-2)
|
|
INTEGER MPI_ANY_TAG
|
|
PARAMETER (MPI_ANY_TAG=-1)
|
|
INTEGER MPI_ROOT
|
|
PARAMETER (MPI_ROOT=-3)
|
|
INTEGER MPI_GRAPH
|
|
PARAMETER (MPI_GRAPH=1)
|
|
INTEGER MPI_CART
|
|
PARAMETER (MPI_CART=2)
|
|
INTEGER MPI_DIST_GRAPH
|
|
PARAMETER (MPI_DIST_GRAPH=3)
|
|
INTEGER MPI_VERSION
|
|
PARAMETER (MPI_VERSION=2)
|
|
INTEGER MPI_SUBVERSION
|
|
PARAMETER (MPI_SUBVERSION=0)
|
|
INTEGER MPI_LOCK_EXCLUSIVE
|
|
PARAMETER (MPI_LOCK_EXCLUSIVE=234)
|
|
INTEGER MPI_LOCK_SHARED
|
|
PARAMETER (MPI_LOCK_SHARED=235)
|
|
INTEGER MPI_CHAR
|
|
PARAMETER (MPI_CHAR=1275068673) ! MPI_CHAR=z'4c000101'
|
|
INTEGER MPI_UNSIGNED_CHAR
|
|
PARAMETER (MPI_UNSIGNED_CHAR=1275068674) ! MPI_UNSIGNED_CHAR=z'4c000102'
|
|
INTEGER MPI_SHORT
|
|
PARAMETER (MPI_SHORT=1275068931) ! MPI_SHORT=z'4c000203'
|
|
INTEGER MPI_UNSIGNED_SHORT
|
|
PARAMETER (MPI_UNSIGNED_SHORT=1275068932) ! MPI_UNSIGNED_SHORT=z'4c000204'
|
|
INTEGER MPI_INT
|
|
PARAMETER (MPI_INT=1275069445) ! MPI_INT=z'4c000405'
|
|
INTEGER MPI_UNSIGNED
|
|
PARAMETER (MPI_UNSIGNED=1275069446) ! MPI_UNSIGNED=z'4c000406'
|
|
INTEGER MPI_LONG
|
|
PARAMETER (MPI_LONG=1275069447) ! MPI_LONG=z'4c000407'
|
|
INTEGER MPI_UNSIGNED_LONG
|
|
PARAMETER (MPI_UNSIGNED_LONG=1275069448) ! MPI_UNSIGNED_LONG=z'4c000408'
|
|
INTEGER MPI_LONG_LONG
|
|
PARAMETER (MPI_LONG_LONG=1275070473) ! MPI_LONG_LONG=z'4c000809'
|
|
INTEGER MPI_LONG_LONG_INT
|
|
PARAMETER (MPI_LONG_LONG_INT=1275070473) ! MPI_LONG_LONG_INT=z'4c000809'
|
|
INTEGER MPI_FLOAT
|
|
PARAMETER (MPI_FLOAT=1275069450) ! MPI_FLOAT=z'4c00040a'
|
|
INTEGER MPI_DOUBLE
|
|
PARAMETER (MPI_DOUBLE=1275070475) ! MPI_DOUBLE=z'4c00080b'
|
|
INTEGER MPI_LONG_DOUBLE
|
|
PARAMETER (MPI_LONG_DOUBLE=1275070476) ! MPI_LONG_DOUBLE=z'4c00080c'
|
|
INTEGER MPI_BYTE
|
|
PARAMETER (MPI_BYTE=1275068685) ! MPI_BYTE=z'4c00010d'
|
|
INTEGER MPI_WCHAR
|
|
PARAMETER (MPI_WCHAR=1275068942) ! MPI_WCHAR=z'4c00020e'
|
|
INTEGER MPI_PACKED
|
|
PARAMETER (MPI_PACKED=1275068687) ! MPI_PACKED=z'4c00010f'
|
|
INTEGER MPI_LB
|
|
PARAMETER (MPI_LB=1275068432) ! MPI_LB=z'4c000010'
|
|
INTEGER MPI_UB
|
|
PARAMETER (MPI_UB=1275068433) ! MPI_UB=z'4c000011'
|
|
INTEGER MPI_2INT
|
|
PARAMETER (MPI_2INT=1275070486) ! MPI_2INT=z'4c000816'
|
|
INTEGER MPI_SIGNED_CHAR
|
|
PARAMETER (MPI_SIGNED_CHAR=1275068696) ! MPI_SIGNED_CHAR=z'4c000118'
|
|
INTEGER MPI_UNSIGNED_LONG_LONG
|
|
PARAMETER (MPI_UNSIGNED_LONG_LONG=1275070489) ! MPI_UNSIGNED_LONG_LONG=z'4c000819'
|
|
INTEGER MPI_CHARACTER
|
|
PARAMETER (MPI_CHARACTER=1275068698) ! MPI_CHARACTER=z'4c00011a'
|
|
INTEGER MPI_INTEGER
|
|
PARAMETER (MPI_INTEGER=1275069467) ! MPI_INTEGER=z'4c00041b'
|
|
INTEGER MPI_REAL
|
|
PARAMETER (MPI_REAL=1275069468) ! MPI_REAL=z'4c00041c'
|
|
INTEGER MPI_LOGICAL
|
|
PARAMETER (MPI_LOGICAL=1275069469) ! MPI_LOGICAL=z'4c00041d'
|
|
INTEGER MPI_COMPLEX
|
|
PARAMETER (MPI_COMPLEX=1275070494) ! MPI_COMPLEX=z'4c00081e'
|
|
INTEGER MPI_DOUBLE_PRECISION
|
|
PARAMETER (MPI_DOUBLE_PRECISION=1275070495) ! MPI_DOUBLE_PRECISION=z'4c00081f'
|
|
INTEGER MPI_2INTEGER
|
|
PARAMETER (MPI_2INTEGER=1275070496) ! MPI_2INTEGER=z'4c000820'
|
|
INTEGER MPI_2REAL
|
|
PARAMETER (MPI_2REAL=1275070497) ! MPI_2REAL=z'4c000821'
|
|
INTEGER MPI_DOUBLE_COMPLEX
|
|
PARAMETER (MPI_DOUBLE_COMPLEX=1275072546) ! MPI_DOUBLE_COMPLEX=z'4c001022'
|
|
INTEGER MPI_2DOUBLE_PRECISION
|
|
PARAMETER (MPI_2DOUBLE_PRECISION=1275072547) ! MPI_2DOUBLE_PRECISION=z'4c001023'
|
|
INTEGER MPI_2COMPLEX
|
|
PARAMETER (MPI_2COMPLEX=1275072548) ! MPI_2COMPLEX=z'4c001024'
|
|
INTEGER MPI_2DOUBLE_COMPLEX
|
|
PARAMETER (MPI_2DOUBLE_COMPLEX=1275072549) ! MPI_2DOUBLE_COMPLEX=z'4c002025'
|
|
INTEGER MPI_REAL2
|
|
PARAMETER (MPI_REAL2=201326592) ! MPI_REAL2=z'0c000000'
|
|
INTEGER MPI_REAL4
|
|
PARAMETER (MPI_REAL4=1275069479) ! MPI_REAL4=z'4c000427'
|
|
INTEGER MPI_COMPLEX8
|
|
PARAMETER (MPI_COMPLEX8=1275070504) ! MPI_COMPLEX8=z'4c000828'
|
|
INTEGER MPI_REAL8
|
|
PARAMETER (MPI_REAL8=1275070505) ! MPI_REAL8=z'4c000829'
|
|
INTEGER MPI_COMPLEX16
|
|
PARAMETER (MPI_COMPLEX16=1275072554) ! MPI_COMPLEX16=z'4c00102a'
|
|
INTEGER MPI_REAL16
|
|
PARAMETER (MPI_REAL16=201326592) ! MPI_REAL16=z'0c000000'
|
|
INTEGER MPI_COMPLEX32
|
|
PARAMETER (MPI_COMPLEX32=201326592) ! MPI_COMPLEX32=z'0c000000'
|
|
INTEGER MPI_INTEGER1
|
|
PARAMETER (MPI_INTEGER1=1275068717) ! MPI_INTEGER1=z'4c00012d'
|
|
INTEGER MPI_COMPLEX4
|
|
PARAMETER (MPI_COMPLEX4=201326592) ! MPI_COMPLEX4=z'0c000000'
|
|
INTEGER MPI_INTEGER2
|
|
PARAMETER (MPI_INTEGER2=1275068975) ! MPI_INTEGER2=z'4c00022f'
|
|
INTEGER MPI_INTEGER4
|
|
PARAMETER (MPI_INTEGER4=1275069488) ! MPI_INTEGER4=z'4c000430'
|
|
INTEGER MPI_INTEGER8
|
|
PARAMETER (MPI_INTEGER8=1275070513) ! MPI_INTEGER8=z'4c000831'
|
|
INTEGER MPI_INTEGER16
|
|
PARAMETER (MPI_INTEGER16=201326592) ! MPI_INTEGER16=z'0c000000'
|
|
|
|
INCLUDE 'mpifptr.h'
|
|
|
|
INTEGER MPI_OFFSET
|
|
PARAMETER (MPI_OFFSET=1275070524) ! MPI_OFFSET=z'4c00083c'
|
|
INTEGER MPI_COUNT
|
|
PARAMETER (MPI_COUNT=1275070525) ! MPI_COUNT=z'4c00083d'
|
|
INTEGER MPI_FLOAT_INT
|
|
PARAMETER (MPI_FLOAT_INT=-1946157056) ! MPI_FLOAT_INT=z'8c000000'
|
|
INTEGER MPI_DOUBLE_INT
|
|
PARAMETER (MPI_DOUBLE_INT=-1946157055) ! MPI_DOUBLE_INT=z'8c000001'
|
|
INTEGER MPI_LONG_INT
|
|
PARAMETER (MPI_LONG_INT=-1946157054) ! MPI_LONG_INT=z'8c000002'
|
|
INTEGER MPI_SHORT_INT
|
|
PARAMETER (MPI_SHORT_INT=-1946157053) ! MPI_SHORT_INT=z'8c000003'
|
|
INTEGER MPI_LONG_DOUBLE_INT
|
|
PARAMETER (MPI_LONG_DOUBLE_INT=-1946157052) ! MPI_LONG_DOUBLE_INT=z'8c000004'
|
|
INTEGER MPI_INTEGER_KIND
|
|
PARAMETER (MPI_INTEGER_KIND=4)
|
|
INTEGER MPI_OFFSET_KIND
|
|
PARAMETER (MPI_OFFSET_KIND=8)
|
|
INTEGER MPI_COUNT_KIND
|
|
PARAMETER (MPI_COUNT_KIND=8)
|
|
INTEGER MPI_COMBINER_NAMED
|
|
PARAMETER (MPI_COMBINER_NAMED=1)
|
|
INTEGER MPI_COMBINER_DUP
|
|
PARAMETER (MPI_COMBINER_DUP=2)
|
|
INTEGER MPI_COMBINER_CONTIGUOUS
|
|
PARAMETER (MPI_COMBINER_CONTIGUOUS=3)
|
|
INTEGER MPI_COMBINER_VECTOR
|
|
PARAMETER (MPI_COMBINER_VECTOR=4)
|
|
INTEGER MPI_COMBINER_HVECTOR_INTEGER
|
|
PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5)
|
|
INTEGER MPI_COMBINER_HVECTOR
|
|
PARAMETER (MPI_COMBINER_HVECTOR=6)
|
|
INTEGER MPI_COMBINER_INDEXED
|
|
PARAMETER (MPI_COMBINER_INDEXED=7)
|
|
INTEGER MPI_COMBINER_HINDEXED_INTEGER
|
|
PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8)
|
|
INTEGER MPI_COMBINER_HINDEXED
|
|
PARAMETER (MPI_COMBINER_HINDEXED=9)
|
|
INTEGER MPI_COMBINER_INDEXED_BLOCK
|
|
PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10)
|
|
INTEGER MPI_COMBINER_STRUCT_INTEGER
|
|
PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11)
|
|
INTEGER MPI_COMBINER_STRUCT
|
|
PARAMETER (MPI_COMBINER_STRUCT=12)
|
|
INTEGER MPI_COMBINER_SUBARRAY
|
|
PARAMETER (MPI_COMBINER_SUBARRAY=13)
|
|
INTEGER MPI_COMBINER_DARRAY
|
|
PARAMETER (MPI_COMBINER_DARRAY=14)
|
|
INTEGER MPI_COMBINER_F90_REAL
|
|
PARAMETER (MPI_COMBINER_F90_REAL=15)
|
|
INTEGER MPI_COMBINER_F90_COMPLEX
|
|
PARAMETER (MPI_COMBINER_F90_COMPLEX=16)
|
|
INTEGER MPI_COMBINER_F90_INTEGER
|
|
PARAMETER (MPI_COMBINER_F90_INTEGER=17)
|
|
INTEGER MPI_COMBINER_RESIZED
|
|
PARAMETER (MPI_COMBINER_RESIZED=18)
|
|
INTEGER MPI_COMBINER_HINDEXED_BLOCK
|
|
PARAMETER (MPI_COMBINER_HINDEXED_BLOCK=19)
|
|
INTEGER MPI_MODE_NOCHECK
|
|
PARAMETER (MPI_MODE_NOCHECK=1024)
|
|
INTEGER MPI_MODE_NOSTORE
|
|
PARAMETER (MPI_MODE_NOSTORE=2048)
|
|
INTEGER MPI_MODE_NOPUT
|
|
PARAMETER (MPI_MODE_NOPUT=4096)
|
|
INTEGER MPI_MODE_NOPRECEDE
|
|
PARAMETER (MPI_MODE_NOPRECEDE=8192)
|
|
INTEGER MPI_MODE_NOSUCCEED
|
|
PARAMETER (MPI_MODE_NOSUCCEED=16384)
|
|
INTEGER MPI_THREAD_SINGLE
|
|
PARAMETER (MPI_THREAD_SINGLE=0)
|
|
INTEGER MPI_THREAD_FUNNELED
|
|
PARAMETER (MPI_THREAD_FUNNELED=1)
|
|
INTEGER MPI_THREAD_SERIALIZED
|
|
PARAMETER (MPI_THREAD_SERIALIZED=2)
|
|
INTEGER MPI_THREAD_MULTIPLE
|
|
PARAMETER (MPI_THREAD_MULTIPLE=3)
|
|
INTEGER MPI_MODE_RDONLY
|
|
PARAMETER (MPI_MODE_RDONLY=2)
|
|
INTEGER MPI_MODE_RDWR
|
|
PARAMETER (MPI_MODE_RDWR=8)
|
|
INTEGER MPI_MODE_WRONLY
|
|
PARAMETER (MPI_MODE_WRONLY=4)
|
|
INTEGER MPI_MODE_DELETE_ON_CLOSE
|
|
PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16)
|
|
INTEGER MPI_MODE_UNIQUE_OPEN
|
|
PARAMETER (MPI_MODE_UNIQUE_OPEN=32)
|
|
INTEGER MPI_MODE_CREATE
|
|
PARAMETER (MPI_MODE_CREATE=1)
|
|
INTEGER MPI_MODE_EXCL
|
|
PARAMETER (MPI_MODE_EXCL=64)
|
|
INTEGER MPI_MODE_APPEND
|
|
PARAMETER (MPI_MODE_APPEND=128)
|
|
INTEGER MPI_MODE_SEQUENTIAL
|
|
PARAMETER (MPI_MODE_SEQUENTIAL=256)
|
|
INTEGER MPI_SEEK_SET
|
|
PARAMETER (MPI_SEEK_SET=600)
|
|
INTEGER MPI_SEEK_CUR
|
|
PARAMETER (MPI_SEEK_CUR=602)
|
|
INTEGER MPI_SEEK_END
|
|
PARAMETER (MPI_SEEK_END=604)
|
|
INTEGER MPI_ORDER_C
|
|
PARAMETER (MPI_ORDER_C=56)
|
|
INTEGER MPI_ORDER_FORTRAN
|
|
PARAMETER (MPI_ORDER_FORTRAN=57)
|
|
INTEGER MPI_DISTRIBUTE_BLOCK
|
|
PARAMETER (MPI_DISTRIBUTE_BLOCK=121)
|
|
INTEGER MPI_DISTRIBUTE_CYCLIC
|
|
PARAMETER (MPI_DISTRIBUTE_CYCLIC=122)
|
|
INTEGER MPI_DISTRIBUTE_NONE
|
|
PARAMETER (MPI_DISTRIBUTE_NONE=123)
|
|
INTEGER MPI_DISTRIBUTE_DFLT_DARG
|
|
PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767)
|
|
INTEGER (KIND=8) MPI_DISPLACEMENT_CURRENT
|
|
PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278)
|
|
INTEGER MPI_BOTTOM, MPI_IN_PLACE
|
|
INTEGER MPI_UNWEIGHTED, MPI_WEIGHTS_EMPTY
|
|
|
|
COMMON /MPIPRIV1/ MPI_BOTTOM, MPI_IN_PLACE, MPI_STATUS_IGNORE
|
|
|
|
COMMON /MPIPRIV2/ MPI_STATUSES_IGNORE, MPI_ERRCODES_IGNORE
|
|
!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIV1/, /MPIPRIV2/
|
|
|
|
COMMON /MPIFCMB5/ MPI_UNWEIGHTED
|
|
COMMON /MPIFCMB9/ MPI_WEIGHTS_EMPTY
|
|
!DEC$ ATTRIBUTES DLLIMPORT :: /MPIFCMB5/, /MPIFCMB9/
|
|
|
|
COMMON /MPIPRIVC/ MPI_ARGVS_NULL, MPI_ARGV_NULL
|
|
!DEC$ ATTRIBUTES DLLIMPORT :: /MPIPRIVC/
|
|
|
|
END MODULE MPI_CONSTANTS
|
|
|
|
MODULE MPI_BASE
|
|
IMPLICIT NONE
|
|
INTERFACE
|
|
SUBROUTINE MPI_TYPE_CREATE_DARRAY(v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,ierror)
|
|
INTEGER v0, v1, v2, v3(*), v4(*), v5(*), v6(*), v7, v8, v9
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_DARRAY
|
|
|
|
SUBROUTINE MPI_COMM_FREE_KEYVAL(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_FREE_KEYVAL
|
|
|
|
SUBROUTINE MPI_TYPE_EXTENT(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_EXTENT
|
|
|
|
SUBROUTINE MPI_TYPE_GET_NAME(v0,v1,v2,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_NAME
|
|
|
|
SUBROUTINE MPI_GROUP_INTERSECTION(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_INTERSECTION
|
|
|
|
SUBROUTINE MPI_WIN_LOCK(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2, v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_LOCK
|
|
|
|
SUBROUTINE MPI_CARTDIM_GET(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_CARTDIM_GET
|
|
|
|
SUBROUTINE MPI_WIN_GET_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_GET_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_COMM_SPLIT(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2, v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SPLIT
|
|
|
|
SUBROUTINE MPI_COMM_SPLIT_TYPE(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2, v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SPLIT_TYPE
|
|
|
|
SUBROUTINE MPI_CANCEL(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_CANCEL
|
|
|
|
SUBROUTINE MPI_WIN_POST(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_POST
|
|
|
|
SUBROUTINE MPI_WIN_COMPLETE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_COMPLETE
|
|
|
|
SUBROUTINE MPI_TEST_CANCELLED(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0(MPI_STATUS_SIZE)
|
|
LOGICAL v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TEST_CANCELLED
|
|
|
|
SUBROUTINE MPI_GROUP_SIZE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_SIZE
|
|
|
|
SUBROUTINE MPI_ADD_ERROR_STRING(v0,v1,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ADD_ERROR_STRING
|
|
|
|
SUBROUTINE MPI_PACK_SIZE(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2, v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_PACK_SIZE
|
|
|
|
SUBROUTINE MPI_GET_ELEMENTS(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0(MPI_STATUS_SIZE), v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GET_ELEMENTS
|
|
|
|
SUBROUTINE MPI_GET_ELEMENTS_X(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE,MPI_COUNT_KIND
|
|
INTEGER v0(MPI_STATUS_SIZE), v1
|
|
INTEGER(KIND=MPI_COUNT_KIND) v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GET_ELEMENTS_X
|
|
|
|
SUBROUTINE MPI_ERRHANDLER_GET(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ERRHANDLER_GET
|
|
|
|
SUBROUTINE MPI_FILE_GET_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_FILE_GET_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_TYPE_LB(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_LB
|
|
|
|
SUBROUTINE MPI_REQUEST_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_REQUEST_FREE
|
|
|
|
SUBROUTINE MPI_GROUP_RANGE_INCL(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2(3,*), v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_RANGE_INCL
|
|
|
|
SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT
|
|
|
|
SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_COUNT_KIND) v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_TRUE_EXTENT_X
|
|
|
|
SUBROUTINE MPI_BARRIER(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_BARRIER
|
|
|
|
SUBROUTINE MPI_IS_THREAD_MAIN(v0,ierror)
|
|
LOGICAL v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_IS_THREAD_MAIN
|
|
|
|
SUBROUTINE MPI_WIN_FREE_KEYVAL(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_FREE_KEYVAL
|
|
|
|
SUBROUTINE MPI_TYPE_COMMIT(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_COMMIT
|
|
|
|
SUBROUTINE MPI_GROUP_RANGE_EXCL(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2(3,*), v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_RANGE_EXCL
|
|
|
|
SUBROUTINE MPI_REQUEST_GET_STATUS(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0
|
|
LOGICAL v1
|
|
INTEGER v2(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_REQUEST_GET_STATUS
|
|
|
|
SUBROUTINE MPI_QUERY_THREAD(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_QUERY_THREAD
|
|
|
|
SUBROUTINE MPI_ERRHANDLER_CREATE(v0,v1,ierror)
|
|
INTERFACE
|
|
SUBROUTINE v0(vv0,vv1)
|
|
INTEGER vv0,vv1
|
|
END SUBROUTINE
|
|
END INTERFACE
|
|
INTEGER v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ERRHANDLER_CREATE
|
|
|
|
SUBROUTINE MPI_COMM_SPAWN_MULTIPLE(v0,v1,v2,v3,v4,v5,v6,v7,v8,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1(*), v2(v0,*)
|
|
INTEGER v3(*), v4(*), v5, v6, v7, v8(*)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SPAWN_MULTIPLE
|
|
|
|
SUBROUTINE MPI_COMM_REMOTE_GROUP(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_REMOTE_GROUP
|
|
|
|
SUBROUTINE MPI_TYPE_GET_EXTENT(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_EXTENT
|
|
|
|
SUBROUTINE MPI_TYPE_GET_EXTENT_X(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_COUNT_KIND) v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_EXTENT_X
|
|
|
|
SUBROUTINE MPI_COMM_COMPARE(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_COMPARE
|
|
|
|
SUBROUTINE MPI_INFO_GET_VALUELEN(v0,v1,v2,v3,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER v2
|
|
LOGICAL v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_GET_VALUELEN
|
|
|
|
SUBROUTINE MPI_INFO_GET(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER v2
|
|
CHARACTER (LEN=*) v3
|
|
LOGICAL v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_GET
|
|
|
|
SUBROUTINE MPI_OP_COMMUTATIVE(v0,v1,ierror)
|
|
INTEGER v0
|
|
LOGICAL v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_OP_COMMUTATIVE
|
|
|
|
SUBROUTINE MPI_OP_CREATE(v0,v1,v2,ierror)
|
|
EXTERNAL v0
|
|
LOGICAL v1
|
|
INTEGER v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_OP_CREATE
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_STRUCT(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0, v1(*)
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v2(*)
|
|
INTEGER v3(*), v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_STRUCT
|
|
|
|
SUBROUTINE MPI_TYPE_VECTOR(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2, v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_VECTOR
|
|
|
|
SUBROUTINE MPI_WIN_GET_GROUP(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_GET_GROUP
|
|
|
|
SUBROUTINE MPI_GROUP_COMPARE(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_COMPARE
|
|
|
|
SUBROUTINE MPI_CART_SHIFT(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2, v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_CART_SHIFT
|
|
|
|
SUBROUTINE MPI_WIN_SET_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_SET_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_COMM_SPAWN(v0,v1,v2,v3,v4,v5,v6,v7,ierror)
|
|
CHARACTER (LEN=*) v0, v1(*)
|
|
INTEGER v2, v3, v4, v5, v6, v7(*)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SPAWN
|
|
|
|
SUBROUTINE MPI_COMM_GROUP(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_GROUP
|
|
|
|
SUBROUTINE MPI_WIN_CALL_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_CALL_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_LOOKUP_NAME(v0,v1,v2,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1
|
|
CHARACTER (LEN=*) v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_LOOKUP_NAME
|
|
|
|
SUBROUTINE MPI_INFO_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_FREE
|
|
|
|
SUBROUTINE MPI_COMM_SET_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SET_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_GRAPH_GET(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2, v3(*), v4(*)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GRAPH_GET
|
|
|
|
SUBROUTINE MPI_GROUP_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_FREE
|
|
|
|
SUBROUTINE MPI_STATUS_SET_ELEMENTS(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0(MPI_STATUS_SIZE), v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_STATUS_SET_ELEMENTS
|
|
|
|
SUBROUTINE MPI_STATUS_SET_ELEMENTS_X(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE,MPI_COUNT_KIND
|
|
INTEGER v0(MPI_STATUS_SIZE), v1
|
|
INTEGER(KIND=MPI_COUNT_KIND) v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_STATUS_SET_ELEMENTS_X
|
|
|
|
SUBROUTINE MPI_WIN_TEST(v0,v1,ierror)
|
|
INTEGER v0
|
|
LOGICAL v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_TEST
|
|
|
|
SUBROUTINE MPI_WIN_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_FREE
|
|
|
|
SUBROUTINE MPI_GRAPH_MAP(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2(*), v3(*), v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GRAPH_MAP
|
|
|
|
SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2
|
|
LOGICAL v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_DIST_GRAPH_NEIGHBORS_COUNT
|
|
|
|
SUBROUTINE MPI_PACK_EXTERNAL_SIZE(v0,v1,v2,v3,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1, v2
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_PACK_EXTERNAL_SIZE
|
|
|
|
SUBROUTINE MPI_PUBLISH_NAME(v0,v1,v2,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1
|
|
CHARACTER (LEN=*) v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_PUBLISH_NAME
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_F90_REAL(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_F90_REAL
|
|
|
|
SUBROUTINE MPI_OPEN_PORT(v0,v1,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_OPEN_PORT
|
|
|
|
SUBROUTINE MPI_GROUP_UNION(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_UNION
|
|
|
|
SUBROUTINE MPI_COMM_ACCEPT(v0,v1,v2,v3,v4,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1, v2, v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_ACCEPT
|
|
|
|
SUBROUTINE MPI_FILE_CREATE_ERRHANDLER(v0,v1,ierror)
|
|
INTERFACE
|
|
SUBROUTINE v0(vv0,vv1)
|
|
INTEGER vv0,vv1
|
|
END SUBROUTINE
|
|
END INTERFACE
|
|
INTEGER v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_FILE_CREATE_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_WIN_GET_NAME(v0,v1,v2,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_GET_NAME
|
|
|
|
SUBROUTINE MPI_INFO_CREATE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_CREATE
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_F90_INTEGER
|
|
|
|
SUBROUTINE MPI_TYPE_SET_NAME(v0,v1,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_SET_NAME
|
|
|
|
SUBROUTINE MPI_ATTR_DELETE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ATTR_DELETE
|
|
|
|
SUBROUTINE MPI_GROUP_INCL(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2(*), v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_INCL
|
|
|
|
SUBROUTINE MPI_COMM_CREATE_ERRHANDLER(v0,v1,ierror)
|
|
INTERFACE
|
|
SUBROUTINE v0(vv0,vv1)
|
|
INTEGER vv0,vv1
|
|
END SUBROUTINE
|
|
END INTERFACE
|
|
INTEGER v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_CREATE_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_COMM_CONNECT(v0,v1,v2,v3,v4,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1, v2, v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_CONNECT
|
|
|
|
SUBROUTINE MPI_ERROR_STRING(v0,v1,v2,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ERROR_STRING
|
|
|
|
SUBROUTINE MPI_TYPE_GET_CONTENTS(v0,v1,v2,v3,v4,v5,v6,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0, v1, v2, v3, v4(*)
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v5(*)
|
|
INTEGER v6(*)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_CONTENTS
|
|
|
|
SUBROUTINE MPI_TYPE_STRUCT(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1(*), v2(*), v3(*), v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_STRUCT
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2(*), v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_INDEXED_BLOCK
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_HVECTOR(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0, v1
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v2
|
|
INTEGER v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_HVECTOR
|
|
|
|
SUBROUTINE MPI_TYPE_FREE_KEYVAL(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_FREE_KEYVAL
|
|
|
|
SUBROUTINE MPI_START(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_START
|
|
|
|
SUBROUTINE MPI_ABORT(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ABORT
|
|
|
|
SUBROUTINE MPI_INTERCOMM_CREATE(v0,v1,v2,v3,v4,v5,ierror)
|
|
INTEGER v0, v1, v2, v3, v4, v5
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INTERCOMM_CREATE
|
|
|
|
SUBROUTINE MPI_COMM_RANK(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_RANK
|
|
|
|
SUBROUTINE MPI_COMM_GET_PARENT(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_GET_PARENT
|
|
|
|
SUBROUTINE MPI_FINALIZED(v0,ierror)
|
|
LOGICAL v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_FINALIZED
|
|
|
|
SUBROUTINE MPI_INTERCOMM_MERGE(v0,v1,v2,ierror)
|
|
INTEGER v0
|
|
LOGICAL v1
|
|
INTEGER v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INTERCOMM_MERGE
|
|
|
|
SUBROUTINE MPI_INFO_GET_NTHKEY(v0,v1,v2,ierror)
|
|
INTEGER v0, v1
|
|
CHARACTER (LEN=*) v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_GET_NTHKEY
|
|
|
|
SUBROUTINE MPI_TYPE_MATCH_SIZE(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_MATCH_SIZE
|
|
|
|
SUBROUTINE MPI_STATUS_SET_CANCELLED(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0(MPI_STATUS_SIZE), v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_STATUS_SET_CANCELLED
|
|
|
|
SUBROUTINE MPI_FILE_SET_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_FILE_SET_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_INFO_DELETE(v0,v1,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_DELETE
|
|
|
|
SUBROUTINE MPI_UNPUBLISH_NAME(v0,v1,v2,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1
|
|
CHARACTER (LEN=*) v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_UNPUBLISH_NAME
|
|
|
|
SUBROUTINE MPI_TYPE_CONTIGUOUS(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CONTIGUOUS
|
|
|
|
SUBROUTINE MPI_INITIALIZED(v0,ierror)
|
|
LOGICAL v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INITIALIZED
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_RESIZED(v0,v1,v2,v3,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v1, v2
|
|
INTEGER v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_RESIZED
|
|
|
|
SUBROUTINE MPI_TYPE_UB(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_UB
|
|
|
|
SUBROUTINE MPI_INFO_DUP(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_DUP
|
|
|
|
SUBROUTINE MPI_TYPE_DUP(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_DUP
|
|
|
|
SUBROUTINE MPI_ERRHANDLER_SET(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ERRHANDLER_SET
|
|
|
|
SUBROUTINE MPI_WIN_DELETE_ATTR(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_DELETE_ATTR
|
|
|
|
SUBROUTINE MPI_INFO_GET_NKEYS(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_GET_NKEYS
|
|
|
|
SUBROUTINE MPI_GROUP_EXCL(v0,v1,v2,v3,ierror)
|
|
INTEGER v0, v1, v2(*), v3
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_EXCL
|
|
|
|
SUBROUTINE MPI_INFO_SET(v0,v1,v2,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INFO_SET
|
|
|
|
SUBROUTINE MPI_WAIT(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0, v1(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WAIT
|
|
|
|
SUBROUTINE MPI_COMM_DELETE_ATTR(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_DELETE_ATTR
|
|
|
|
SUBROUTINE MPI_COMM_GET_NAME(v0,v1,v2,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_GET_NAME
|
|
|
|
SUBROUTINE MPI_TEST(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0
|
|
LOGICAL v1
|
|
INTEGER v2(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TEST
|
|
|
|
SUBROUTINE MPI_GET_COUNT(v0,v1,v2,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0(MPI_STATUS_SIZE), v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GET_COUNT
|
|
|
|
SUBROUTINE MPI_ADD_ERROR_CLASS(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ADD_ERROR_CLASS
|
|
|
|
SUBROUTINE MPI_COMM_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_FREE
|
|
|
|
SUBROUTINE MPI_COMM_SET_NAME(v0,v1,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SET_NAME
|
|
|
|
SUBROUTINE MPI_COMM_DISCONNECT(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_DISCONNECT
|
|
|
|
SUBROUTINE MPI_IPROBE(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0, v1, v2
|
|
LOGICAL v3
|
|
INTEGER v4(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_IPROBE
|
|
|
|
SUBROUTINE MPI_IMPROBE(v0,v1,v2,v3,v4,v5,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0, v1, v2, v3, v4
|
|
INTEGER v5(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_IMPROBE
|
|
|
|
SUBROUTINE MPI_MPROBE(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0, v1, v2, v3
|
|
INTEGER v4(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_MPROBE
|
|
|
|
SUBROUTINE MPI_ADD_ERROR_CODE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ADD_ERROR_CODE
|
|
|
|
SUBROUTINE MPI_COMM_GET_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_GET_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_COMM_CREATE(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_CREATE
|
|
|
|
SUBROUTINE MPI_OP_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_OP_FREE
|
|
|
|
SUBROUTINE MPI_TOPO_TEST(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TOPO_TEST
|
|
|
|
SUBROUTINE MPI_GET_PROCESSOR_NAME(v0,v1,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GET_PROCESSOR_NAME
|
|
|
|
SUBROUTINE MPI_COMM_SIZE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_SIZE
|
|
|
|
SUBROUTINE MPI_WIN_UNLOCK(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_UNLOCK
|
|
|
|
SUBROUTINE MPI_WIN_FLUSH(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_FLUSH
|
|
|
|
SUBROUTINE MPI_WIN_FLUSH_LOCAL(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_FLUSH_LOCAL
|
|
|
|
SUBROUTINE MPI_ERRHANDLER_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ERRHANDLER_FREE
|
|
|
|
SUBROUTINE MPI_COMM_REMOTE_SIZE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_REMOTE_SIZE
|
|
|
|
SUBROUTINE MPI_PROBE(v0,v1,v2,v3,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_STATUS_SIZE
|
|
INTEGER v0, v1, v2, v3(MPI_STATUS_SIZE)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_PROBE
|
|
|
|
SUBROUTINE MPI_TYPE_HINDEXED(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1(*), v2(*), v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_HINDEXED
|
|
|
|
SUBROUTINE MPI_WIN_WAIT(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_WAIT
|
|
|
|
SUBROUTINE MPI_WIN_SET_NAME(v0,v1,ierror)
|
|
INTEGER v0
|
|
CHARACTER (LEN=*) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_SET_NAME
|
|
|
|
SUBROUTINE MPI_TYPE_SIZE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_SIZE
|
|
|
|
SUBROUTINE MPI_TYPE_SIZE_X(v0,v1,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_COUNT_KIND
|
|
INTEGER v0
|
|
INTEGER(KIND=MPI_COUNT_KIND) v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_SIZE_X
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_SUBARRAY(v0,v1,v2,v3,v4,v5,v6,ierror)
|
|
INTEGER v0, v1(*), v2(*), v3(*), v4, v5, v6
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_SUBARRAY
|
|
|
|
SUBROUTINE MPI_WIN_CREATE_ERRHANDLER(v0,v1,ierror)
|
|
INTERFACE
|
|
SUBROUTINE v0(vv0,vv1)
|
|
INTEGER vv0,vv1
|
|
END SUBROUTINE
|
|
END INTERFACE
|
|
INTEGER v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_CREATE_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_WIN_START(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_START
|
|
|
|
SUBROUTINE MPI_TYPE_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_FREE
|
|
|
|
SUBROUTINE MPI_WIN_FENCE(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_WIN_FENCE
|
|
|
|
SUBROUTINE MPI_GRAPHDIMS_GET(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GRAPHDIMS_GET
|
|
|
|
SUBROUTINE MPI_FILE_CALL_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_FILE_CALL_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_TYPE_GET_ENVELOPE(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1, v2, v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_GET_ENVELOPE
|
|
|
|
SUBROUTINE MPI_TYPE_DELETE_ATTR(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_DELETE_ATTR
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_HINDEXED(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0, v1(*)
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v2(*)
|
|
INTEGER v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_HINDEXED
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0, v1
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v2(*)
|
|
INTEGER v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_HINDEXED_BLOCK
|
|
|
|
SUBROUTINE MPI_TYPE_INDEXED(v0,v1,v2,v3,v4,ierror)
|
|
INTEGER v0, v1(*), v2(*), v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_INDEXED
|
|
|
|
SUBROUTINE MPI_GREQUEST_COMPLETE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GREQUEST_COMPLETE
|
|
|
|
SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GRAPH_NEIGHBORS_COUNT
|
|
|
|
SUBROUTINE MPI_GET_VERSION(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GET_VERSION
|
|
|
|
SUBROUTINE MPI_GET_LIBRARY_VERSION(v0,v1,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GET_LIBRARY_VERSION
|
|
|
|
SUBROUTINE MSMPI_GET_BSEND_OVERHEAD(size)
|
|
INTEGER size
|
|
END SUBROUTINE MSMPI_GET_BSEND_OVERHEAD
|
|
|
|
SUBROUTINE MSMPI_GET_VERSION(version)
|
|
INTEGER version
|
|
END SUBROUTINE MSMPI_GET_VERSION
|
|
|
|
SUBROUTINE MPI_TYPE_HVECTOR(v0,v1,v2,v3,v4,ierror)
|
|
USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
|
|
INTEGER v0, v1
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) v2
|
|
INTEGER v3, v4
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_HVECTOR
|
|
|
|
SUBROUTINE MPI_KEYVAL_FREE(v0,ierror)
|
|
INTEGER v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_KEYVAL_FREE
|
|
|
|
SUBROUTINE MPI_COMM_CALL_ERRHANDLER(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_CALL_ERRHANDLER
|
|
|
|
SUBROUTINE MPI_COMM_JOIN(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_JOIN
|
|
|
|
SUBROUTINE MPI_COMM_TEST_INTER(v0,v1,ierror)
|
|
INTEGER v0
|
|
LOGICAL v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_TEST_INTER
|
|
|
|
SUBROUTINE MPI_CLOSE_PORT(v0,ierror)
|
|
CHARACTER (LEN=*) v0
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_CLOSE_PORT
|
|
|
|
SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_TYPE_CREATE_F90_COMPLEX
|
|
|
|
SUBROUTINE MPI_GROUP_DIFFERENCE(v0,v1,v2,ierror)
|
|
INTEGER v0, v1, v2
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_DIFFERENCE
|
|
|
|
SUBROUTINE MPI_COMM_DUP(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_COMM_DUP
|
|
|
|
SUBROUTINE MPI_ERROR_CLASS(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_ERROR_CLASS
|
|
|
|
SUBROUTINE MPI_GROUP_RANK(v0,v1,ierror)
|
|
INTEGER v0, v1
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_GROUP_RANK
|
|
|
|
|
|
SUBROUTINE MPI_INIT(ierror)
|
|
INTEGER ierror
|
|
END SUBROUTINE MPI_INIT
|
|
|
|
SUBROUTINE MPI_INIT_THREAD(v0,v1,ierror)
|
|
INTEGER v0, v1, ierror
|
|
END SUBROUTINE MPI_INIT_THREAD
|
|
|
|
FUNCTION MPI_WTIME()
|
|
DOUBLE PRECISION MPI_WTIME
|
|
END FUNCTION MPI_WTIME
|
|
|
|
FUNCTION MPI_WTICK()
|
|
DOUBLE PRECISION MPI_WTICK
|
|
END FUNCTION MPI_WTICK
|
|
|
|
FUNCTION PMPI_WTIME()
|
|
DOUBLE PRECISION PMPI_WTIME
|
|
END FUNCTION PMPI_WTIME
|
|
|
|
FUNCTION PMPI_WTICK()
|
|
DOUBLE PRECISION PMPI_WTICK
|
|
END FUNCTION PMPI_WTICK
|
|
|
|
SUBROUTINE MPI_NULL_DELETE_FN(a,b,c,d,e)
|
|
INTEGER a,b,c,d,e
|
|
END SUBROUTINE MPI_NULL_DELETE_FN
|
|
|
|
SUBROUTINE MPI_DUP_FN(a,b,c,d,e,f,g)
|
|
INTEGER a,b,c,d,e,g
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_DUP_FN
|
|
|
|
SUBROUTINE MPI_NULL_COPY_FN(a,b,c,d,e,f,g)
|
|
INTEGER a,b,c,d,e,g
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_NULL_COPY_FN
|
|
|
|
SUBROUTINE MPI_COMM_NULL_DELETE_FN(a,b,c,d,e)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,e
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c, d
|
|
END SUBROUTINE MPI_COMM_NULL_DELETE_FN
|
|
|
|
SUBROUTINE MPI_COMM_DUP_FN(a,b,c,d,e,f,g)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,g
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_COMM_DUP_FN
|
|
|
|
SUBROUTINE MPI_COMM_NULL_COPY_FN(a,b,c,d,e,f,g)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,g
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_COMM_NULL_COPY_FN
|
|
|
|
SUBROUTINE MPI_TYPE_NULL_DELETE_FN(a,b,c,d,e)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,e
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c, d
|
|
END SUBROUTINE MPI_TYPE_NULL_DELETE_FN
|
|
|
|
SUBROUTINE MPI_TYPE_DUP_FN(a,b,c,d,e,f,g)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,g
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_TYPE_DUP_FN
|
|
|
|
SUBROUTINE MPI_TYPE_NULL_COPY_FN(a,b,c,d,e,f,g)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,g
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_TYPE_NULL_COPY_FN
|
|
|
|
SUBROUTINE MPI_WIN_NULL_DELETE_FN(a,b,c,d,e)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,e
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c, d
|
|
END SUBROUTINE MPI_WIN_NULL_DELETE_FN
|
|
|
|
SUBROUTINE MPI_WIN_DUP_FN(a,b,c,d,e,f,g)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,g
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_WIN_DUP_FN
|
|
|
|
SUBROUTINE MPI_WIN_NULL_COPY_FN(a,b,c,d,e,f,g)
|
|
USE MPI_CONSTANTS,ONLY: MPI_ADDRESS_KIND
|
|
INTEGER a,b,g
|
|
INTEGER (KIND=MPI_ADDRESS_KIND) c,d,e
|
|
LOGICAL f
|
|
END SUBROUTINE MPI_WIN_NULL_COPY_FN
|
|
|
|
SUBROUTINE MPI_Comm_create_keyval(comm_copy_attr_fn, &
|
|
comm_delete_attr_fn, comm_keyval, extra_state, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
EXTERNAL :: comm_copy_attr_fn
|
|
EXTERNAL :: comm_delete_attr_fn
|
|
INTEGER :: comm_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: extra_state
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Comm_create_keyval
|
|
|
|
SUBROUTINE MPI_Comm_get_attr(comm, comm_keyval, attribute_val, flag, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: comm_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: attribute_val
|
|
LOGICAL :: flag
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Comm_get_attr
|
|
|
|
SUBROUTINE MPI_Comm_set_attr(comm, comm_keyval, attribute_val, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: comm_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: attribute_val
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Comm_set_attr
|
|
|
|
SUBROUTINE MPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state, ierror)
|
|
IMPLICIT NONE
|
|
EXTERNAL :: copy_fn
|
|
EXTERNAL :: delete_fn
|
|
INTEGER :: keyval
|
|
INTEGER :: extra_state
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Keyval_create
|
|
|
|
SUBROUTINE MPI_Type_create_keyval(type_copy_attr_fn, type_delete_attr_fn, &
|
|
type_keyval, extra_state, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
EXTERNAL :: type_copy_attr_fn
|
|
EXTERNAL :: type_delete_attr_fn
|
|
INTEGER :: type_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: extra_state
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Type_create_keyval
|
|
|
|
SUBROUTINE MPI_Type_get_attr(datatype, type_keyval, attribute_val, flag, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: datatype
|
|
INTEGER :: type_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: attribute_val
|
|
LOGICAL :: flag
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Type_get_attr
|
|
|
|
SUBROUTINE MPI_Type_set_attr(datatype, type_keyval, attribute_val, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: datatype
|
|
INTEGER :: type_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: attribute_val
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Type_set_attr
|
|
|
|
SUBROUTINE MPI_Win_create_keyval(win_copy_attr_fn, win_delete_attr_fn, &
|
|
win_keyval, extra_state, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
EXTERNAL :: win_copy_attr_fn
|
|
EXTERNAL :: win_delete_attr_fn
|
|
INTEGER :: win_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: extra_state
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_create_keyval
|
|
|
|
SUBROUTINE MPI_Win_get_attr(win, win_keyval, attribute_val, flag, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: win_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: attribute_val
|
|
LOGICAL :: flag
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_get_attr
|
|
|
|
SUBROUTINE MPI_Win_set_attr(win, win_keyval, attribute_val, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: win_keyval
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: attribute_val
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_set_attr
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_Allgather(sendbuf, sendcount, sendtype, recvbuf, &
|
|
recvcount, recvtype, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Allgather
|
|
|
|
SUBROUTINE MPI_Allgatherv(sendbuf, sendcount, sendtype, recvbuf, &
|
|
recvcounts, displs, recvtype, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcounts(*)
|
|
INTEGER, INTENT(in) :: displs(*)
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Allgatherv
|
|
|
|
SUBROUTINE MPI_Allreduce(sendbuf, recvbuf, count, datatype, op, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Allreduce
|
|
|
|
SUBROUTINE MPI_Alltoall(sendbuf, sendcount, sendtype, recvbuf, &
|
|
recvcount, recvtype, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Alltoall
|
|
|
|
SUBROUTINE MPI_Alltoallv(sendbuf, sendcounts, sdispls, sendtype, &
|
|
recvbuf, recvcounts, rdispls, recvtype, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcounts(*)
|
|
INTEGER, INTENT(in) :: sdispls(*)
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcounts(*)
|
|
INTEGER, INTENT(in) :: rdispls(*)
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Alltoallv
|
|
|
|
SUBROUTINE MPI_Alltoallw(sendbuf, sendcounts, sdispls, sendtypes, &
|
|
recvbuf, recvcounts, rdispls, recvtypes, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcounts(*)
|
|
INTEGER, INTENT(in) :: sdispls(*)
|
|
INTEGER, INTENT(in) :: sendtypes(*)
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcounts(*)
|
|
INTEGER, INTENT(in) :: rdispls(*)
|
|
INTEGER, INTENT(in) :: recvtypes(*)
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Alltoallw
|
|
|
|
SUBROUTINE MPI_Bcast(buffer, count, datatype, root, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer
|
|
TYPE(*), DIMENSION(*), INTENT(inout) :: buffer
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Bcast
|
|
|
|
SUBROUTINE MPI_Exscan(sendbuf, recvbuf, count, datatype, op, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Exscan
|
|
|
|
SUBROUTINE MPI_Gather(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
|
|
recvtype, root, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Gather
|
|
|
|
SUBROUTINE MPI_Gatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
|
|
displs, recvtype, root, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcounts(*)
|
|
INTEGER, INTENT(in) :: displs(*)
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Gatherv
|
|
|
|
SUBROUTINE MPI_Iallgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
|
|
recvtype, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iallgather
|
|
|
|
SUBROUTINE MPI_Iallgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
|
|
displs, recvtype, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: recvcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: displs(*)
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iallgatherv
|
|
|
|
SUBROUTINE MPI_Iallreduce(sendbuf, recvbuf, count, datatype, op, comm, &
|
|
request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iallreduce
|
|
|
|
SUBROUTINE MPI_Ialltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
|
|
recvtype, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ialltoall
|
|
|
|
SUBROUTINE MPI_Ialltoallv(sendbuf, sendcounts, sdispls, sendtype, &
|
|
recvbuf, recvcounts, rdispls, recvtype, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: sendcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: sdispls(*)
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: recvcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: rdispls(*)
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ialltoallv
|
|
|
|
SUBROUTINE MPI_Ialltoallw(sendbuf, sendcounts, sdispls, sendtypes, &
|
|
recvbuf, recvcounts, rdispls, recvtypes, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: sendcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: sdispls(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: sendtypes(*)
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: recvcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: rdispls(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: recvtypes(*)
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ialltoallw
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Ibarrier(comm, request, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: request
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Ibarrier
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_Ibcast(buffer, count, datatype, root, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer
|
|
TYPE(*), DIMENSION(*), INTENT(inout), ASYNCHRONOUS :: buffer
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ibcast
|
|
|
|
SUBROUTINE MPI_Iexscan(sendbuf, recvbuf, count, datatype, op, comm,&
|
|
request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iexscan
|
|
|
|
SUBROUTINE MPI_Igather(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
|
|
recvtype, root, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Igather
|
|
|
|
SUBROUTINE MPI_Igatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
|
|
displs, recvtype, root, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: recvcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: displs(*)
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Igatherv
|
|
|
|
SUBROUTINE MPI_Ireduce(sendbuf, recvbuf, count, datatype, op, root, &
|
|
comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ireduce
|
|
|
|
SUBROUTINE MPI_Ireduce_scatter(sendbuf, recvbuf, recvcounts, datatype, &
|
|
op, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: recvcounts(*)
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ireduce_scatter
|
|
|
|
SUBROUTINE MPI_Ireduce_scatter_block(sendbuf, recvbuf, recvcount, datatype, &
|
|
op, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ireduce_scatter_block
|
|
|
|
SUBROUTINE MPI_Iscan(sendbuf, recvbuf, count, datatype, op, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iscan
|
|
|
|
SUBROUTINE MPI_Iscatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
|
|
recvtype, root, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iscatter
|
|
|
|
SUBROUTINE MPI_Iscatterv(sendbuf, sendcounts, displs, sendtype, recvbuf, &
|
|
recvcount, recvtype, root, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: sendbuf
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: sendcounts(*)
|
|
INTEGER, INTENT(in), ASYNCHRONOUS :: displs(*)
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Iscatterv
|
|
|
|
SUBROUTINE MPI_Reduce(sendbuf, recvbuf, count, datatype, op, root, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Reduce
|
|
|
|
SUBROUTINE MPI_Reduce_local(inbuf, inoutbuf, count, datatype, op, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: inbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: inoutbuf
|
|
TYPE(*), DIMENSION(*), INTENT(inout) :: inoutbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Reduce_local
|
|
|
|
SUBROUTINE MPI_Reduce_scatter(sendbuf, recvbuf, recvcounts, datatype, &
|
|
op, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcounts(*)
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Reduce_scatter
|
|
|
|
SUBROUTINE MPI_Reduce_scatter_block(sendbuf, recvbuf, recvcount, datatype, &
|
|
op, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Reduce_scatter_block
|
|
|
|
SUBROUTINE MPI_Scan(sendbuf, recvbuf, count, datatype, op, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Scan
|
|
|
|
SUBROUTINE MPI_Scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
|
|
recvtype, root, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Scatter
|
|
|
|
SUBROUTINE MPI_Scatterv(sendbuf, sendcounts, displs, sendtype, recvbuf, &
|
|
recvcount, recvtype, root, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcounts(*)
|
|
INTEGER, INTENT(in) :: displs(*)
|
|
INTEGER, INTENT(in) :: sendtype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: root
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Scatterv
|
|
|
|
SUBROUTINE MPI_Get_address(location, address, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: location
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: location
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(out) :: address
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Get_address
|
|
|
|
SUBROUTINE MPI_Pack(inbuf, incount, datatype, outbuf, outsize, position, &
|
|
comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: inbuf
|
|
INTEGER, INTENT(in) :: incount
|
|
INTEGER, INTENT(in) :: datatype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf
|
|
TYPE(*), DIMENSION(*) :: outbuf
|
|
INTEGER, INTENT(in) :: outsize
|
|
INTEGER, INTENT(inout) :: position
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Pack
|
|
|
|
SUBROUTINE MPI_Pack_external(datarep, inbuf, incount, datatype, outbuf, &
|
|
outsize, position, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
CHARACTER(len=*), INTENT(in) :: datarep
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: inbuf
|
|
INTEGER, INTENT(in) :: incount
|
|
INTEGER, INTENT(in) :: datatype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf
|
|
TYPE(*), DIMENSION(*) :: outbuf
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: outsize
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(inout) :: position
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Pack_external
|
|
|
|
SUBROUTINE MPI_Unpack(inbuf, insize, position, outbuf, outcount, &
|
|
datatype, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: inbuf
|
|
INTEGER, INTENT(in) :: insize
|
|
INTEGER, INTENT(inout) :: position
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf
|
|
TYPE(*), DIMENSION(*) :: outbuf
|
|
INTEGER, INTENT(in) :: outcount
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Unpack
|
|
|
|
SUBROUTINE MPI_Unpack_external(datarep, inbuf, insize, position, &
|
|
outbuf, outcount, datatype, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
CHARACTER(len=*), INTENT(in) :: datarep
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: inbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: inbuf
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: insize
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(inout) :: position
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: outbuf
|
|
TYPE(*), DIMENSION(*) :: outbuf
|
|
INTEGER, INTENT(in) :: outcount
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Unpack_external
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Group_translate_ranks(group1, n, ranks1, group2, ranks2, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: group1
|
|
INTEGER :: n
|
|
INTEGER :: ranks1(n)
|
|
INTEGER :: group2
|
|
INTEGER :: ranks2(n)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Group_translate_ranks
|
|
|
|
SUBROUTINE MPI_Finalize(ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Finalize
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_Bsend(buf, count, datatype, dest, tag, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Bsend
|
|
|
|
SUBROUTINE MPI_Bsend_init(buf, count, datatype, dest, tag, comm, &
|
|
request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Bsend_init
|
|
|
|
SUBROUTINE MPI_Buffer_attach(buffer, size, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buffer
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buffer
|
|
INTEGER, INTENT(in) :: size
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Buffer_attach
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Buffer_detach(buffer_addr, size, ierror)
|
|
USE, intrinsic :: iso_c_binding, ONLY : C_PTR
|
|
IMPLICIT NONE
|
|
TYPE(C_PTR), INTENT(out) :: buffer_addr
|
|
INTEGER, INTENT(out) :: size
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Buffer_detach
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_Ibsend(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ibsend
|
|
|
|
SUBROUTINE MPI_Imrecv(buf, count, datatype, message, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(inout) :: message
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Imrecv
|
|
|
|
SUBROUTINE MPI_Irecv(buf, count, datatype, source, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: source
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Irecv
|
|
|
|
SUBROUTINE MPI_Irsend(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Irsend
|
|
|
|
SUBROUTINE MPI_Isend(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Isend
|
|
|
|
SUBROUTINE MPI_Issend(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Issend
|
|
|
|
SUBROUTINE MPI_Mrecv(buf, count, datatype, message, status, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(inout) :: message
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Mrecv
|
|
|
|
SUBROUTINE MPI_Recv(buf, count, datatype, source, tag, comm, status, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: source
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Recv
|
|
|
|
SUBROUTINE MPI_Recv_init(buf, count, datatype, source, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: source
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Recv_init
|
|
|
|
SUBROUTINE MPI_Rsend(buf, count, datatype, dest, tag, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Rsend
|
|
|
|
SUBROUTINE MPI_Rsend_init(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Rsend_init
|
|
|
|
SUBROUTINE MPI_Send(buf, count, datatype, dest, tag, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Send
|
|
|
|
SUBROUTINE MPI_Send_init(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Send_init
|
|
|
|
SUBROUTINE MPI_Sendrecv(sendbuf, sendcount, sendtype, dest, sendtag, &
|
|
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: sendbuf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: sendbuf
|
|
INTEGER, INTENT(in) :: sendcount
|
|
INTEGER, INTENT(in) :: sendtype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: sendtag
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: recvbuf
|
|
TYPE(*), DIMENSION(*) :: recvbuf
|
|
INTEGER, INTENT(in) :: recvcount
|
|
INTEGER, INTENT(in) :: recvtype
|
|
INTEGER, INTENT(in) :: source
|
|
INTEGER, INTENT(in) :: recvtag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Sendrecv
|
|
|
|
SUBROUTINE MPI_Sendrecv_replace(buf, count, datatype, dest, sendtag, &
|
|
source, recvtag, comm, status, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(inout) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: sendtag
|
|
INTEGER, INTENT(in) :: source
|
|
INTEGER, INTENT(in) :: recvtag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Sendrecv_replace
|
|
|
|
SUBROUTINE MPI_Ssend(buf, count, datatype, dest, tag, comm, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ssend
|
|
|
|
SUBROUTINE MPI_Ssend_init(buf, count, datatype, dest, tag, comm, request, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: dest
|
|
INTEGER, INTENT(in) :: tag
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Ssend_init
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Grequest_start(query_fn, free_fn, cancel_fn, extra_state, &
|
|
request, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
EXTERNAL :: query_fn
|
|
EXTERNAL :: free_fn
|
|
EXTERNAL :: cancel_fn
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: extra_state
|
|
INTEGER :: request
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Grequest_start
|
|
|
|
SUBROUTINE MPI_Startall(count, array_of_requests, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: count
|
|
INTEGER :: array_of_requests(count)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Startall
|
|
|
|
SUBROUTINE MPI_Testall(count, array_of_requests, flag, array_of_statuses, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER :: count
|
|
INTEGER :: array_of_requests(count)
|
|
LOGICAL :: flag
|
|
INTEGER :: array_of_statuses(MPI_STATUS_SIZE, *)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Testall
|
|
|
|
SUBROUTINE MPI_Testany(count, array_of_requests, indx, flag, status, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER :: count
|
|
INTEGER :: array_of_requests(count)
|
|
INTEGER :: indx
|
|
LOGICAL :: flag
|
|
INTEGER :: status(MPI_STATUS_SIZE)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Testany
|
|
|
|
SUBROUTINE MPI_Testsome(incount, array_of_requests, outcount, &
|
|
array_of_indices, array_of_statuses, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER :: incount
|
|
INTEGER :: array_of_requests(incount)
|
|
INTEGER :: outcount
|
|
INTEGER :: array_of_indices(*)
|
|
INTEGER :: array_of_statuses(MPI_STATUS_SIZE, *)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Testsome
|
|
|
|
SUBROUTINE MPI_Waitall(count, array_of_requests, array_of_statuses, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER :: count
|
|
INTEGER :: array_of_requests(count)
|
|
INTEGER :: array_of_statuses(MPI_STATUS_SIZE, *)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Waitall
|
|
|
|
SUBROUTINE MPI_Waitany(count, array_of_requests, indx, status, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER :: count
|
|
INTEGER :: array_of_requests(count)
|
|
INTEGER :: indx
|
|
INTEGER :: status(MPI_STATUS_SIZE)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Waitany
|
|
|
|
SUBROUTINE MPI_Waitsome(incount, array_of_requests, outcount, &
|
|
array_of_indices, array_of_statuses, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER :: incount
|
|
INTEGER :: array_of_requests(incount)
|
|
INTEGER :: outcount
|
|
INTEGER :: array_of_indices(*)
|
|
INTEGER :: array_of_statuses(MPI_STATUS_SIZE, *)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Waitsome
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_Accumulate(origin_addr, origin_count, origin_datatype, target_rank, &
|
|
target_disp, target_count, target_datatype, op, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Accumulate
|
|
|
|
SUBROUTINE MPI_Compare_and_swap(origin_addr, compare_addr, result_addr, &
|
|
datatype, target_rank, target_disp, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: compare_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: compare_addr
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: result_addr
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: result_addr
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Compare_and_swap
|
|
|
|
SUBROUTINE MPI_Fetch_and_op(origin_addr, result_addr, datatype, &
|
|
target_rank, target_disp, op, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: result_addr
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: result_addr
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Fetch_and_op
|
|
|
|
SUBROUTINE MPI_Free_mem(base, ierror)
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: base
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Free_mem
|
|
|
|
SUBROUTINE MPI_Get(origin_addr, origin_count, origin_datatype, target_rank, &
|
|
target_disp, target_count, target_datatype, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Get
|
|
|
|
SUBROUTINE MPI_Get_accumulate(origin_addr, origin_count, origin_datatype, &
|
|
result_addr, result_count, result_datatype, target_rank, target_disp, &
|
|
target_count, target_datatype, op, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: result_addr
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: result_addr
|
|
INTEGER, INTENT(in) :: result_count
|
|
INTEGER, INTENT(in) :: result_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Get_accumulate
|
|
|
|
SUBROUTINE MPI_Put(origin_addr, origin_count, origin_datatype, &
|
|
target_rank, target_disp, target_count, target_datatype, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Put
|
|
|
|
SUBROUTINE MPI_Raccumulate(origin_addr, origin_count, origin_datatype, target_rank, &
|
|
target_disp, target_count, target_datatype, op, win, request, &
|
|
ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Raccumulate
|
|
|
|
SUBROUTINE MPI_Rget(origin_addr, origin_count, origin_datatype, target_rank, &
|
|
target_disp, target_count, target_datatype, win, request, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Rget
|
|
|
|
SUBROUTINE MPI_Rget_accumulate(origin_addr, origin_count, origin_datatype, &
|
|
result_addr, result_count, result_datatype, target_rank, target_disp, &
|
|
target_count, target_datatype, op, win, request, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: result_addr
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: result_addr
|
|
INTEGER, INTENT(in) :: result_count
|
|
INTEGER, INTENT(in) :: result_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: op
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Rget_accumulate
|
|
|
|
SUBROUTINE MPI_Rput(origin_addr, origin_count, origin_datatype, target_rank, &
|
|
target_disp, target_count, target_datatype, win, request, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: origin_addr
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: origin_addr
|
|
INTEGER, INTENT(in) :: origin_count
|
|
INTEGER, INTENT(in) :: origin_datatype
|
|
INTEGER, INTENT(in) :: target_rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: target_disp
|
|
INTEGER, INTENT(in) :: target_count
|
|
INTEGER, INTENT(in) :: target_datatype
|
|
INTEGER, INTENT(in) :: win
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Rput
|
|
|
|
SUBROUTINE MPI_Win_attach(win, base, size, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: win
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: base
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: size
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Win_attach
|
|
|
|
SUBROUTINE MPI_Win_create(base, size, disp_unit, info, comm, win, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: base
|
|
INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(in) :: size
|
|
INTEGER, INTENT(in) :: disp_unit
|
|
INTEGER, INTENT(in) :: info
|
|
INTEGER, INTENT(in) :: comm
|
|
INTEGER, INTENT(out) :: win
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Win_create
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Win_create_dynamic(info, comm, win, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: info
|
|
INTEGER :: comm
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_create_dynamic
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_Win_detach(win, base, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: win
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: base
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: base
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_Win_detach
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Win_flush_all(win, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_flush_all
|
|
|
|
SUBROUTINE MPI_Win_flush_local_all(win, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_flush_local_all
|
|
|
|
SUBROUTINE MPI_Win_lock_all(assert, win, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: assert
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_lock_all
|
|
|
|
SUBROUTINE MPI_Win_sync(win, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_sync
|
|
|
|
SUBROUTINE MPI_Win_unlock_all(win, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_unlock_all
|
|
|
|
SUBROUTINE MPI_Cart_coords(comm, rank, maxdims, coords, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: rank
|
|
INTEGER :: maxdims
|
|
INTEGER :: coords(maxdims)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Cart_coords
|
|
|
|
SUBROUTINE MPI_Cart_create(comm_old, ndims, dims, periods, reorder, comm_cart, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm_old
|
|
INTEGER :: ndims
|
|
INTEGER :: dims(ndims)
|
|
LOGICAL :: periods(ndims)
|
|
LOGICAL :: reorder
|
|
INTEGER :: comm_cart
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Cart_create
|
|
|
|
SUBROUTINE MPI_Cart_get(comm, maxdims, dims, periods, coords, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: maxdims
|
|
INTEGER :: dims(maxdims)
|
|
LOGICAL :: periods(maxdims)
|
|
INTEGER :: coords(maxdims)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Cart_get
|
|
|
|
SUBROUTINE MPI_Cart_map(comm, ndims, dims, periods, newrank, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: ndims
|
|
INTEGER :: dims(ndims)
|
|
LOGICAL :: periods(ndims)
|
|
INTEGER :: newrank
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Cart_map
|
|
|
|
SUBROUTINE MPI_Cart_rank(comm, coords, rank, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: coords(*)
|
|
INTEGER :: rank
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Cart_rank
|
|
|
|
SUBROUTINE MPI_Cart_sub(comm, remain_dims, newcomm, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
LOGICAL :: remain_dims(*)
|
|
INTEGER :: newcomm
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Cart_sub
|
|
|
|
SUBROUTINE MPI_Dims_create(nnodes, ndims, dims, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: nnodes
|
|
INTEGER :: ndims
|
|
INTEGER :: dims(ndims)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Dims_create
|
|
|
|
SUBROUTINE MPI_Dist_graph_create(comm_old, n, sources, degrees, &
|
|
destinations, weights, info, reorder, comm_dist_graph, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm_old
|
|
INTEGER :: n
|
|
INTEGER :: sources(n)
|
|
INTEGER :: degrees(n)
|
|
INTEGER :: destinations(*)
|
|
INTEGER :: weights(*)
|
|
INTEGER :: info
|
|
LOGICAL :: reorder
|
|
INTEGER :: comm_dist_graph
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Dist_graph_create
|
|
|
|
SUBROUTINE MPI_Dist_graph_create_adjacent(comm_old, indegree, sources, &
|
|
sourceweights, outdegree, destinations, destweights, info, &
|
|
reorder, comm_dist_graph, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm_old
|
|
INTEGER :: indegree
|
|
INTEGER :: sources(indegree)
|
|
INTEGER :: sourceweights(*)
|
|
INTEGER :: outdegree
|
|
INTEGER :: destinations(outdegree)
|
|
INTEGER :: destweights(*)
|
|
INTEGER :: info
|
|
LOGICAL :: reorder
|
|
INTEGER :: comm_dist_graph
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Dist_graph_create_adjacent
|
|
|
|
SUBROUTINE MPI_Dist_graph_neighbors(comm, maxindegree, sources, &
|
|
sourceweights, maxoutdegree, destinations, destweights, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: maxindegree
|
|
INTEGER :: sources(maxindegree)
|
|
INTEGER :: sourceweights(*)
|
|
INTEGER :: maxoutdegree
|
|
INTEGER :: destinations(maxoutdegree)
|
|
INTEGER :: destweights(*)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Dist_graph_neighbors
|
|
|
|
SUBROUTINE MPI_Graph_create(comm_old, nnodes, indx, edges, reorder, &
|
|
comm_graph, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm_old
|
|
INTEGER :: nnodes
|
|
INTEGER :: indx(nnodes)
|
|
INTEGER :: edges(*)
|
|
LOGICAL :: reorder
|
|
INTEGER :: comm_graph
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Graph_create
|
|
|
|
SUBROUTINE MPI_Graph_neighbors(comm, rank, maxneighbors, neighbors, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
INTEGER :: rank
|
|
INTEGER :: maxneighbors
|
|
INTEGER :: neighbors(maxneighbors)
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Graph_neighbors
|
|
|
|
SUBROUTINE MPI_File_close(fh, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_close
|
|
|
|
SUBROUTINE MPI_File_delete(filename, info, ierror)
|
|
IMPLICIT NONE
|
|
CHARACTER*(*) :: filename
|
|
INTEGER :: info
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_delete
|
|
|
|
SUBROUTINE MPI_File_get_amode(fh, amode, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: amode
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_amode
|
|
|
|
SUBROUTINE MPI_File_get_atomicity(fh, flag, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
LOGICAL :: flag
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_atomicity
|
|
|
|
SUBROUTINE MPI_File_get_byte_offset(fh, offset, disp, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: offset
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: disp
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_byte_offset
|
|
|
|
SUBROUTINE MPI_File_get_group(fh, group, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: group
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_group
|
|
|
|
SUBROUTINE MPI_File_get_info(fh, info_used, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: info_used
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_info
|
|
|
|
SUBROUTINE MPI_File_get_position(fh, offset, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: offset
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_position
|
|
|
|
SUBROUTINE MPI_File_get_position_shared(fh, offset, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: offset
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_position_shared
|
|
|
|
SUBROUTINE MPI_File_get_size(fh, size, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: size
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_size
|
|
|
|
SUBROUTINE MPI_File_get_type_extent(fh, datatype, extent, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: datatype
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: extent
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_type_extent
|
|
|
|
SUBROUTINE MPI_File_get_view(fh, disp, etype, filetype, datarep, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: disp
|
|
INTEGER :: etype
|
|
INTEGER :: filetype
|
|
CHARACTER*(*) :: datarep
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_get_view
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_File_iread(fh, buf, count, datatype, request, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_iread
|
|
|
|
SUBROUTINE MPI_File_iread_at(fh, offset, buf, count, datatype, request, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_iread_at
|
|
|
|
SUBROUTINE MPI_File_iread_shared(fh, buf, count, datatype, request, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_iread_shared
|
|
|
|
SUBROUTINE MPI_File_iwrite(fh, buf, count, datatype, request, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_iwrite
|
|
|
|
SUBROUTINE MPI_File_iwrite_at(fh, offset, buf, count, datatype, request, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_iwrite_at
|
|
|
|
SUBROUTINE MPI_File_iwrite_shared(fh, buf, count, datatype, request, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: request
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_iwrite_shared
|
|
#endif
|
|
|
|
SUBROUTINE MPI_File_open(comm, filename, amode, info, fh, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: comm
|
|
CHARACTER*(*) :: filename
|
|
INTEGER :: amode
|
|
INTEGER :: info
|
|
INTEGER :: fh
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_open
|
|
|
|
SUBROUTINE MPI_File_preallocate(fh, size, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: size
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_preallocate
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_File_read(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read
|
|
|
|
SUBROUTINE MPI_File_read_all(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_all
|
|
|
|
SUBROUTINE MPI_File_read_all_begin(fh, buf, count, datatype, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_all_begin
|
|
|
|
SUBROUTINE MPI_File_read_all_end(fh, buf, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY: MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_all_end
|
|
|
|
SUBROUTINE MPI_File_read_at(fh, offset, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND, MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_at
|
|
|
|
SUBROUTINE MPI_File_read_at_all(fh, offset, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND, MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_at_all
|
|
|
|
SUBROUTINE MPI_File_read_at_all_begin(fh, offset, buf, count, datatype, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_at_all_begin
|
|
|
|
SUBROUTINE MPI_File_read_at_all_end(fh, buf, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_at_all_end
|
|
|
|
SUBROUTINE MPI_File_read_ordered(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_ordered
|
|
|
|
SUBROUTINE MPI_File_read_ordered_begin(fh, buf, count, datatype, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_ordered_begin
|
|
|
|
SUBROUTINE MPI_File_read_ordered_end(fh, buf, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_ordered_end
|
|
|
|
SUBROUTINE MPI_File_read_shared(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_read_shared
|
|
#endif
|
|
|
|
SUBROUTINE MPI_File_seek(fh, offset, whence, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: offset
|
|
INTEGER :: whence
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_seek
|
|
|
|
SUBROUTINE MPI_File_seek_shared(fh, offset, whence, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: offset
|
|
INTEGER :: whence
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_seek_shared
|
|
|
|
SUBROUTINE MPI_File_set_atomicity(fh, flag, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
LOGICAL :: flag
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_set_atomicity
|
|
|
|
SUBROUTINE MPI_File_set_info(fh, info, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: info
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_set_info
|
|
|
|
SUBROUTINE MPI_File_set_size(fh, size, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: size
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_set_size
|
|
|
|
SUBROUTINE MPI_File_set_view(fh, disp, etype, filetype, datarep, info, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND) :: disp
|
|
INTEGER :: etype
|
|
INTEGER :: filetype
|
|
CHARACTER*(*) :: datarep
|
|
INTEGER :: info
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_set_view
|
|
|
|
SUBROUTINE MPI_File_sync(fh, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER :: fh
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_File_sync
|
|
|
|
#ifdef __GNUC__
|
|
SUBROUTINE MPI_File_write(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write
|
|
|
|
SUBROUTINE MPI_File_write_all(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_all
|
|
|
|
SUBROUTINE MPI_File_write_all_begin(fh, buf, count, datatype, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_all_begin
|
|
|
|
SUBROUTINE MPI_File_write_all_end(fh, buf, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_all_end
|
|
|
|
SUBROUTINE MPI_File_write_at(fh, offset, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND, MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_at
|
|
|
|
SUBROUTINE MPI_File_write_at_all(fh, offset, buf, count, datatype, &
|
|
status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND, MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_at_all
|
|
|
|
SUBROUTINE MPI_File_write_at_all_begin(fh, offset, buf, count, datatype, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_OFFSET_KIND
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
INTEGER(KIND=MPI_OFFSET_KIND), INTENT(in) :: offset
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_at_all_begin
|
|
|
|
SUBROUTINE MPI_File_write_at_all_end(fh, buf, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_at_all_end
|
|
|
|
SUBROUTINE MPI_File_write_ordered(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_ordered
|
|
|
|
SUBROUTINE MPI_File_write_ordered_begin(fh, buf, count, datatype, ierror)
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_ordered_begin
|
|
|
|
SUBROUTINE MPI_File_write_ordered_end(fh, buf, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in), ASYNCHRONOUS :: buf
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_ordered_end
|
|
|
|
SUBROUTINE MPI_File_write_shared(fh, buf, count, datatype, status, ierror)
|
|
USE :: MPI_CONSTANTS, ONLY : MPI_STATUS_SIZE
|
|
IMPLICIT NONE
|
|
INTEGER, INTENT(in) :: fh
|
|
!GCC$ ATTRIBUTES NO_ARG_CHECK :: buf
|
|
TYPE(*), DIMENSION(*), INTENT(in) :: buf
|
|
INTEGER, INTENT(in) :: count
|
|
INTEGER, INTENT(in) :: datatype
|
|
INTEGER, INTENT(out), TARGET :: status(MPI_STATUS_SIZE)
|
|
INTEGER, INTENT(out) :: ierror
|
|
END SUBROUTINE MPI_File_write_shared
|
|
#endif
|
|
|
|
SUBROUTINE MPI_Register_datarep(datarep, read_conversion_fn, &
|
|
write_conversion_fn, dtype_file_extent_fn, extra_state, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
CHARACTER*(*) :: datarep
|
|
EXTERNAL :: read_conversion_fn
|
|
EXTERNAL :: write_conversion_fn
|
|
EXTERNAL :: dtype_file_extent_fn
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: extra_state
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Register_datarep
|
|
|
|
END INTERFACE
|
|
|
|
INTERFACE MPI_Alloc_mem
|
|
SUBROUTINE MPI_Alloc_mem(size, info, baseptr, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: info
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: baseptr
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Alloc_mem
|
|
SUBROUTINE MPI_Alloc_mem_cptr(size, info, baseptr, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
|
|
IMPLICIT NONE
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: info
|
|
TYPE(C_PTR) :: baseptr
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Alloc_mem_cptr
|
|
END INTERFACE
|
|
|
|
INTERFACE MPI_Win_allocate
|
|
SUBROUTINE MPI_Win_allocate(size, disp_unit, info, comm, baseptr, win, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: disp_unit
|
|
INTEGER :: info
|
|
INTEGER :: comm
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: baseptr
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_allocate
|
|
SUBROUTINE MPI_Win_allocate_cptr(size, disp_unit, info, comm, baseptr, win, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
|
|
IMPLICIT NONE
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: disp_unit
|
|
INTEGER :: info
|
|
INTEGER :: comm
|
|
TYPE(C_PTR) :: baseptr
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_allocate_cptr
|
|
END INTERFACE
|
|
|
|
INTERFACE MPI_Win_allocate_shared
|
|
SUBROUTINE MPI_Win_allocate_shared(size, disp_unit, info, comm, &
|
|
baseptr, win, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: disp_unit
|
|
INTEGER :: info
|
|
INTEGER :: comm
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: baseptr
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_allocate_shared
|
|
SUBROUTINE MPI_Win_allocate_shared_cptr(size, disp_unit, info, comm, &
|
|
baseptr, win, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
|
|
IMPLICIT NONE
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: disp_unit
|
|
INTEGER :: info
|
|
INTEGER :: comm
|
|
TYPE(C_PTR) :: baseptr
|
|
INTEGER :: win
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_allocate_shared_cptr
|
|
END INTERFACE
|
|
|
|
INTERFACE MPI_Win_shared_query
|
|
SUBROUTINE MPI_Win_shared_query(win, rank, size, disp_unit, baseptr, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: disp_unit
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: baseptr
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_shared_query
|
|
SUBROUTINE MPI_Win_shared_query_cptr(win, rank, size, disp_unit, baseptr, ierror)
|
|
USE MPI_CONSTANTS, ONLY: MPI_ADDRESS_KIND
|
|
USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
|
|
IMPLICIT NONE
|
|
INTEGER :: win
|
|
INTEGER :: rank
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) :: size
|
|
INTEGER :: disp_unit
|
|
TYPE(C_PTR) :: baseptr
|
|
INTEGER :: ierror
|
|
END SUBROUTINE MPI_Win_shared_query_cptr
|
|
END INTERFACE
|
|
|
|
END MODULE MPI_BASE
|
|
|
|
MODULE MPI_SIZEOFS
|
|
! This module contains the definitions for MPI_SIZEOF for the
|
|
! predefined, named types in Fortran 90. This is provided
|
|
! as a separate module to allow MPI_SIZEOF to supply the
|
|
! basic size information even when we do not provide the
|
|
! arbitrary choice types
|
|
IMPLICIT NONE
|
|
|
|
PUBLIC :: MPI_SIZEOF
|
|
INTERFACE MPI_SIZEOF
|
|
MODULE PROCEDURE MPI_SIZEOF_I, MPI_SIZEOF_R, &
|
|
& MPI_SIZEOF_L, MPI_SIZEOF_CH, MPI_SIZEOF_CX,&
|
|
& MPI_SIZEOF_IV, MPI_SIZEOF_RV, &
|
|
& MPI_SIZEOF_LV, MPI_SIZEOF_CHV, MPI_SIZEOF_CXV
|
|
MODULE PROCEDURE MPI_SIZEOF_D, MPI_SIZEOF_DV
|
|
END INTERFACE ! MPI_SIZEOF
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE MPI_SIZEOF_I( X, SIZE, IERROR )
|
|
INTEGER X
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_I
|
|
|
|
SUBROUTINE MPI_SIZEOF_R( X, SIZE, IERROR )
|
|
REAL X
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_R
|
|
|
|
! If reals and doubles have been forced to the same size (e.g., with
|
|
! -i8 -r8 to compilers like g95), then the compiler may refuse to
|
|
! allow interfaces that use real and double precision (failing to
|
|
! determine which one is intended)
|
|
SUBROUTINE MPI_SIZEOF_D( X, SIZE, IERROR )
|
|
DOUBLE PRECISION X
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 8
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_D
|
|
|
|
SUBROUTINE MPI_SIZEOF_L( X, SIZE, IERROR )
|
|
LOGICAL X
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_L
|
|
|
|
SUBROUTINE MPI_SIZEOF_CH( X, SIZE, IERROR )
|
|
CHARACTER X
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 1
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_CH
|
|
|
|
SUBROUTINE MPI_SIZEOF_CX( X, SIZE, IERROR )
|
|
COMPLEX X
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 2*4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_CX
|
|
|
|
SUBROUTINE MPI_SIZEOF_IV( X, SIZE, IERROR )
|
|
INTEGER X(*)
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_IV
|
|
|
|
SUBROUTINE MPI_SIZEOF_RV( X, SIZE, IERROR )
|
|
REAL X(*)
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_RV
|
|
|
|
! If reals and doubles have been forced to the same size (e.g., with
|
|
! -i8 -r8 to compilers like g95), then the compiler may refuse to
|
|
! allow interfaces that use real and double precision (failing to
|
|
! determine which one is intended)
|
|
SUBROUTINE MPI_SIZEOF_DV( X, SIZE, IERROR )
|
|
DOUBLE PRECISION X(*)
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 8
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_DV
|
|
|
|
SUBROUTINE MPI_SIZEOF_LV( X, SIZE, IERROR )
|
|
LOGICAL X(*)
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_LV
|
|
|
|
SUBROUTINE MPI_SIZEOF_CHV( X, SIZE, IERROR )
|
|
CHARACTER X(*)
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 1
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_CHV
|
|
|
|
SUBROUTINE MPI_SIZEOF_CXV( X, SIZE, IERROR )
|
|
COMPLEX X(*)
|
|
INTEGER SIZE, IERROR
|
|
SIZE = 2*4
|
|
IERROR = 0
|
|
END SUBROUTINE MPI_SIZEOF_CXV
|
|
|
|
! We don't include double complex. If we did, we'd need to include the
|
|
! same hack as for real and double above if the compiler has been forced
|
|
! to make them the same size.
|
|
END MODULE MPI_SIZEOFS
|
|
|
|
MODULE MPI
|
|
USE MPI_CONSTANTS
|
|
USE MPI_SIZEOFS
|
|
USE MPI_BASE
|
|
END MODULE MPI
|