! -*- fortran -*-
-! Copyright (c) 2010, 2012-2014. The SimGrid Team.
+! Copyright (c) 2010-2019. The SimGrid Team.
! All rights reserved.
! This program is free software; you can redistribute it and/or modify it
! under the terms of the license (GNU LGPL) which comes with this package.
! SMPI's Fortran 77 include file
-
+@MODULE_MPIF_IN@
integer MPI_THREAD_SINGLE, MPI_THREAD_FUNNELED
integer MPI_THREAD_SERIALIZED, MPI_THREAD_MULTIPLE
parameter(MPI_THREAD_SINGLE=0)
parameter(MPI_SOURCE=1)
parameter(MPI_TAG=2)
parameter(MPI_ERROR=3)
- parameter(MPI_VERSION=1)
+ parameter(MPI_VERSION=3)
parameter(MPI_SUBVERSION=1)
parameter(MPI_LOCK_EXCLUSIVE=1)
parameter(MPI_LOCK_SHARED=2)
integer MPI_COMM_NULL_COPY_FN, MPI_COMM_NULL_DELETE_FN
parameter(MPI_COMM_NULL_COPY_FN =0)
parameter(MPI_COMM_NULL_DELETE_FN =0)
- integer MPI_COMM_NULL_DUP_FN, MPI_COMM_DUP_FN
- parameter(MPI_COMM_NULL_DUP_FN =0)
- parameter(MPI_COMM_DUP_FN =0)
+ integer MPI_COMM_DUP_FN
+ parameter(MPI_COMM_DUP_FN =1)
+ integer MPI_WIN_NULL_DELETE_FN
+ parameter(MPI_WIN_NULL_DELETE_FN =0)
+ integer MPI_TYPE_NULL_COPY_FN, MPI_TYPE_NULL_DELETE_FN
+ parameter(MPI_TYPE_NULL_COPY_FN =0)
+ parameter(MPI_TYPE_NULL_DELETE_FN =0)
+ integer MPI_TYPE_DUP_FN
+ parameter(MPI_TYPE_DUP_FN =1)
- integer MPI_ROOT, MPI_INFO_NULL,MPI_COMM_TYPE_SHARED
+ integer MPI_ROOT, MPI_COMM_TYPE_SHARED
parameter(MPI_ROOT=0)
- parameter(MPI_INFO_NULL=0)
parameter(MPI_COMM_TYPE_SHARED=1)
! Attribute keys
parameter(MPI_UNIVERSE_SIZE=-7)
parameter(MPI_LASTUSEDCODE=-8)
-! These should be ordered as in smpi_f77.c
- integer MPI_COMM_NULL, MPI_COMM_WORLD, MPI_COMM_SELF
- parameter(MPI_COMM_NULL=-1)
- parameter(MPI_COMM_SELF=-2)
- parameter(MPI_COMM_WORLD=0)
-
- integer MPI_GROUP_NULL, MPI_GROUP_EMPTY
- parameter(MPI_GROUP_NULL=-1)
- parameter(MPI_GROUP_EMPTY=-2)
-
- integer MPI_WIN_NULL
- parameter(MPI_WIN_NULL=-1)
-
- integer MPI_ERRORS_RETURN, MPI_ERRORS_ARE_FATAL
- integer MPI_ERRHANDLER_NULL
- parameter(MPI_ERRORS_RETURN=0)
- parameter(MPI_ERRORS_ARE_FATAL=1)
- parameter(MPI_ERRHANDLER_NULL=2)
-
! This should be equal to the number of int fields in MPI_Status
integer MPI_STATUS_SIZE
- parameter(MPI_STATUS_SIZE=4)
-
-! These should be ordered as in smpi_f77.c
- integer MPI_IN_PLACE, MPI_BOTTOM
- integer MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
- common /smpi/ MPI_IN_PLACE, MPI_BOTTOM
- common /smpi/ MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
-
- integer MPI_REQUEST_NULL
- parameter(MPI_REQUEST_NULL=-1)
+ parameter(MPI_STATUS_SIZE=5)
integer MPI_INTEGER_KIND
parameter(MPI_INTEGER_KIND=4)
- integer MPI_DATATYPE_NULL, MPI_BYTE, MPI_CHARACTER, MPI_LOGICAL
+ external MPI_IN_PLACE, MPI_BOTTOM
+ external MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE
+
+ integer MPI_BYTE, MPI_CHARACTER, MPI_LOGICAL
integer MPI_INTEGER, MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4
integer MPI_INTEGER8, MPI_REAL, MPI_REAL4, MPI_REAL8
integer MPI_DOUBLE_PRECISION, MPI_COMPLEX, MPI_DOUBLE_COMPLEX
integer MPI_2INTEGER, MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4
integer MPI_LOGICAL8, MPI_2REAL, MPI_2DOUBLE_PRECISION
- integer MPI_AINT, MPI_OFFSET, MPI_COUNT
- integer MPI_REAL16, MPI_COMPLEX8,MPI_COMPLEX16,MPI_COMPLEX32
- integer MPI_PACKED
- parameter(MPI_DATATYPE_NULL=-1)
- parameter(MPI_BYTE=0)
- parameter(MPI_CHARACTER=1)
- parameter(MPI_LOGICAL=2)
- parameter(MPI_INTEGER=3)
- parameter(MPI_INTEGER1=4)
- parameter(MPI_INTEGER2=5)
- parameter(MPI_INTEGER4=6)
- parameter(MPI_INTEGER8=7)
- parameter(MPI_REAL=8)
- parameter(MPI_REAL4=9)
- parameter(MPI_REAL8=10)
- parameter(MPI_DOUBLE_PRECISION=11)
- parameter(MPI_COMPLEX=12)
- parameter(MPI_DOUBLE_COMPLEX=13)
- parameter(MPI_2INTEGER=14)
- parameter(MPI_LOGICAL1=15)
- parameter(MPI_LOGICAL2=16)
- parameter(MPI_LOGICAL4=17)
- parameter(MPI_LOGICAL8=18)
- parameter(MPI_2REAL=19)
- parameter(MPI_2DOUBLE_PRECISION=19)
- parameter(MPI_AINT=20)
- parameter(MPI_OFFSET=21)
- parameter(MPI_COUNT=22)
- parameter(MPI_REAL16=23)
- parameter(MPI_COMPLEX8=24)
- parameter(MPI_COMPLEX16=25)
- parameter(MPI_COMPLEX32=26)
- parameter(MPI_PACKED=27)
+ integer MPI_AINT, MPI_OFFSET, MPI_COUNT, MPI_REAL16
+ integer MPI_PACKED, MPI_COMPLEX8, MPI_COMPLEX16, MPI_COMPLEX32
-! These should be ordered as in smpi_f77.c
- integer MPI_OP_NULL,MPI_MAX, MPI_MIN, MPI_MAXLOC, MPI_MINLOC
+ integer MPI_MAX, MPI_MIN, MPI_MAXLOC, MPI_MINLOC
integer MPI_SUM, MPI_PROD, MPI_LAND, MPI_LOR, MPI_LXOR, MPI_BAND
integer MPI_BOR, MPI_BXOR
+
+! _NULL handles should be negative
+
+ integer MPI_REQUEST_NULL,MPI_DATATYPE_NULL,MPI_OP_NULL
+ integer MPI_COMM_NULL, MPI_COMM_WORLD, MPI_COMM_SELF
+ integer MPI_GROUP_NULL, MPI_GROUP_EMPTY, MPI_WIN_NULL
+ integer MPI_INFO_NULL, MPI_ERRHANDLER_NULL
+
+ parameter(MPI_REQUEST_NULL=-1)
+ parameter(MPI_DATATYPE_NULL=-1)
parameter(MPI_OP_NULL=-1)
- parameter(MPI_MAX=0)
- parameter(MPI_MIN=1)
- parameter(MPI_MAXLOC=2)
- parameter(MPI_MINLOC=3)
- parameter(MPI_SUM=4)
- parameter(MPI_PROD=5)
- parameter(MPI_LAND=6)
- parameter(MPI_LOR=7)
- parameter(MPI_LXOR=8)
- parameter(MPI_BAND=9)
- parameter(MPI_BOR=10)
- parameter(MPI_BXOR=11)
+ parameter(MPI_INFO_NULL=-1)
+ parameter(MPI_COMM_NULL=-1)
+ parameter(MPI_COMM_SELF=-2)
+ parameter(MPI_GROUP_NULL=-1)
+ parameter(MPI_GROUP_EMPTY=-2)
+ parameter(MPI_WIN_NULL=-1)
+ parameter(MPI_ERRHANDLER_NULL=-1)
+
+ integer MPI_WIN_BASE, MPI_WIN_SIZE, MPI_WIN_DISP_UNIT
+ parameter(MPI_WIN_BASE=-1)
+ parameter(MPI_WIN_SIZE=-2)
+ parameter(MPI_WIN_DISP_UNIT=-3)
+
+! These IDs have to be unique, consecutive
+! and ordered as in smpi_f77.cpp.
+ parameter(MPI_COMM_WORLD=0)
+
+ parameter(MPI_BYTE=1)
+ parameter(MPI_CHARACTER=2)
+ parameter(MPI_LOGICAL=3)
+ parameter(MPI_INTEGER=4)
+ parameter(MPI_INTEGER1=5)
+ parameter(MPI_INTEGER2=6)
+ parameter(MPI_INTEGER4=7)
+ parameter(MPI_INTEGER8=8)
+ parameter(MPI_REAL=9)
+ parameter(MPI_REAL4=10)
+ parameter(MPI_REAL8=11)
+ parameter(MPI_DOUBLE_PRECISION=12)
+ parameter(MPI_COMPLEX=13)
+ parameter(MPI_DOUBLE_COMPLEX=14)
+ parameter(MPI_2INTEGER=15)
+ parameter(MPI_LOGICAL1=16)
+ parameter(MPI_LOGICAL2=17)
+ parameter(MPI_LOGICAL4=18)
+ parameter(MPI_LOGICAL8=19)
+ parameter(MPI_2REAL=20)
+ parameter(MPI_2DOUBLE_PRECISION=21)
+ parameter(MPI_AINT=22)
+ parameter(MPI_OFFSET=23)
+ parameter(MPI_COUNT=24)
+ parameter(MPI_REAL16=25)
+ parameter(MPI_PACKED=26)
+ parameter(MPI_COMPLEX8=27)
+ parameter(MPI_COMPLEX16=28)
+ parameter(MPI_COMPLEX32=29)
+ parameter(MPI_MAX=30)
+ parameter(MPI_MIN=31)
+ parameter(MPI_MAXLOC=32)
+ parameter(MPI_MINLOC=33)
+ parameter(MPI_SUM=34)
+ parameter(MPI_PROD=35)
+ parameter(MPI_LAND=36)
+ parameter(MPI_LOR=37)
+ parameter(MPI_LXOR=38)
+ parameter(MPI_BAND=39)
+ parameter(MPI_BOR=40)
+ parameter(MPI_BXOR=41)
+
+ integer MPI_ERRORS_RETURN, MPI_ERRORS_ARE_FATAL
+ parameter(MPI_ERRORS_RETURN=42)
+ parameter(MPI_ERRORS_ARE_FATAL=43)
+
INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
PARAMETER (MPI_ADDRESS_KIND=@CMAKE_SIZEOF_VOID_P@)
PARAMETER (MPI_OFFSET_KIND=@CMAKE_SIZEOF_VOID_P@)
parameter( MPI_COMBINER_RESIZED=17)
parameter( MPI_COMBINER_HINDEXED_BLOCK=18)
+ integer MPI_MODE_RDONLY, MPI_MODE_RDWR, MPI_MODE_WRONLY
+ integer MPI_MODE_CREATE, MPI_MODE_EXCL, MPI_MODE_DELETE_ON_CLOSE
+ integer MPI_MODE_UNIQUE_OPEN, MPI_MODE_APPEND, MPI_MODE_SEQUENTIAL
+
+ parameter( MPI_MODE_RDONLY=2)
+ parameter( MPI_MODE_RDWR=8)
+ parameter( MPI_MODE_WRONLY=4)
+ parameter( MPI_MODE_CREATE=1)
+ parameter( MPI_MODE_EXCL=64)
+ parameter( MPI_MODE_DELETE_ON_CLOSE=16)
+ parameter( MPI_MODE_UNIQUE_OPEN=32)
+ parameter( MPI_MODE_APPEND=128)
+ parameter( MPI_MODE_SEQUENTIAL=256)
+
integer MPI_ORDER_C, MPI_ORDER_FORTRAN
parameter(MPI_ORDER_C=1)
parameter(MPI_ORDER_FORTRAN=0)
external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
+ external MPI_WIN_DUP_FN, MPI_WIN_NULL_COPY_FN
external MPI_WTIME
external MPI_WTICK
double precision MPI_WTIME
double precision MPI_WTICK
-
- external smpi_execute_flops
- external smpi_execute
- external smpi_get_host_power_peak_at
- external smpi_get_host_current_power_peak
- external smpi_get_host_nb_pstates
- external smpi_set_host_pstate
- external smpi_get_host_consumed_energy
-
- double precision smpi_get_host_power_peak_at
- double precision smpi_get_host_current_power_peak
- integer smpi_get_host_nb_pstates
- double precision smpi_get_host_consumed_energy
+@MODULE_MPIF_OUT@