`TYPE(*), DIMENSION(..)` is a Fortran 2008 idiom. Using it in this module causes issues downstream in Fortran 90 projects. See, e.g.: https://github.com/ElmerCSC/elmerfem/pull/559 Use an extension of gfortran to mark polymorphic types in a way that is compatible with Fortran 90. Flang doesn't support polymorphic types currently. It fails when trying to use them with an error like the following: ``` error: loc("C:/msys64/home/Markus/test_ignore_flang.f90":43:3): C:/M/B/src/flang-18.1.8.src/lib/Lower/CallInterface.cpp:949: not yet implemented: support for polymorphic types LLVM ERROR: aborting PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: C:/msys64/clang64/bin/flang -fc1 -triple x86_64-w64-windows-gnu -emit-obj -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -target-cpu x86-64 -mframe-pointer=none -o test_ignore_flang.o -x f95-cpp-input test_ignore_flang.f90 ``` Don't include subroutines with polymorphic types in the MPI module for LLVM Flang for the time being.
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=0) ! 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
|