! -*- 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