diff --git a/examples/Makefile_serial b/examples/Makefile_serial
index c8ae045..9d9dcdb 100644
--- a/examples/Makefile_serial
+++ b/examples/Makefile_serial
@@ -1,124 +1,133 @@
#
# @file Makefile
#
# @brief Makefile for futils library examples
#
# @copyright
# Copyright (©) 2021 EPFL (Ecole Polytechnique Fédérale de Lausanne)
# SPC (Swiss Plasma Center)
#
# futils is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# futils is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
#
# @authors
# (in alphabetical order)
+# @author Emmanuel Lanti
# @author Trach-Minh Tran
#
-F90 = ifort
-F90FLAGS = -g -CB -traceback -I../src/ -I${HDF5_serial}/include
+FC = ifort
+ifeq ($(FC), ifort)
+ FFLAGS = -g -check bounds -traceback
+else ifeq ($(FC), gfortran)
+ FFLAGS = -g -fcheck=bounds -fbacktrace
+endif
+
+HDF5_serial = $(HDF5_ROOT)
+F90 = $(FC)
+F90FLAGS = $(FFLAGS) -I../src/ -I${HDF5_serial}/include
CC = cc
CFLAGS = -O2 -I../src/mpiuni
LDFLAGS = -L. -L${HDF5_serial}/lib
LIBS = -lfutils -lhdf5_fortran -lhdf5 -lz -L../src -lmpiuni
SERIAL = ex1 ex2 ex3 ex4 ex7 ex8 ex9 ex11 ex12 ex13 ex14
.SUFFIXES:
.SUFFIXES: .o .c .f90
.f90.o:
$(F90) $(F90FLAGS) -c $<
all: $(SERIAL) ex5 ex6
lib:
make -C ../src -f Makefile_serial
touch lib
ex1: ex1.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex2: ex2.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex3: ex3.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex4: ex4.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex5: ex5.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex6: ex6.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex7: ex7.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex8: ex8.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex9: ex9.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex10: ex10.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex11: ex11.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex12: ex12.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex13: ex13.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
ex14: ex14.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
testmem: testmem.o cutils.o
$(F90) $(LDFLAGS) -o $@ $< cutils.o
test_s: $(SERIAL) ex5
@for x in $(SERIAL); do \
echo === Running $$x ===;\
./$$x ;\
echo ;\
done
@echo === Running ex5 ===;\
./ex5 < ex5.in ;\
echo ;\
ex1.o: lib
ex2.o: lib
ex3.o: lib
ex4.o: lib
ex5.o: lib
ex6.o: lib
ex7.o: lib
ex8.o: lib
ex9.o: lib
ex10.o: lib
ex11.o: lib
ex12.o: lib
ex13.o: lib
ex14.o: lib
clean:
make -C ../src -f Makefile_serial clean
rm -f *.o *~ a.out *.h5*
distclean: clean
make -C ../src -f Makefile_serial distclean
rm -f lib
rm -f $(SERIAL) ex5 ex6 *.mod TAGS
diff --git a/src/Makefile_serial b/src/Makefile_serial
index 3160a7c..3ce331f 100644
--- a/src/Makefile_serial
+++ b/src/Makefile_serial
@@ -1,46 +1,77 @@
+#
+# @file Makefile_serial
+#
+# @brief Makefile for serial version of futils
+#
+# @copyright
+# Copyright (©) 2021 EPFL (Ecole Polytechnique Fédérale de Lausanne)
+# SPC (Swiss Plasma Center)
+#
+# futils is free software: you can redistribute it and/or modify it under
+# the terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# futils is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see .
+#
+# @authors
+# (in alphabetical order)
+# @author Emmanuel Lanti
+# @author Trach-Minh Tran
+#
PREFIX=$(HOME)
-F90 = ifort
-F90FLAGS = -g -CB -traceback -I${HDF5_serial}/include
+FC = ifort
+ifeq ($(FC), ifort)
+ FFLAGS = -g -check bounds -traceback
+else ifeq ($(FC), gfortran)
+ FFLAGS = -g -fcheck=bounds -fbacktrace
+endif
+
+HDF5_serial = $(HDF5_ROOT)
+F90 = $(FC)
+F90FLAGS = $(FFLAGS) -I${HDF5_serial}/include
CC = cc
CFLAGS = -O2 -Impiuni
LDFLAGS = -L. -L${HDF5_serial}/lib
LIBS = -lfutils -lhdf5_fortran -lhdf5 -lz -lgcc_s -lcrypt -lssl
LIBS = -lfutils -lhdf5_fortran -lhdf5 -lz -lmpiuni
.SUFFIXES:
.SUFFIXES: .o .c .f90
.f90.o:
$(F90) $(F90FLAGS) -c $<
lib: libfutils.a getfile
getfile: getfile.o
$(F90) $(LDFLAGS) -o $@ $< $(LIBS)
-libfutils.a: futils.o cutils.o buffer.o vis3d.o uniproc.o
+libfutils.a: futils.o cutils.o buffer.o uniproc.o
ar r $@ $?
ranlib $@
make -C mpiuni lib
futils.o: append.tpl zappend.tpl \
putarr.tpl cputarr.tpl \
getarr.tpl cgetarr.tpl
$(F90) $(F90FLAGS) -Impiuni -c futils.f90
buffer.o: futils.o
$(F90) $(F90FLAGS) -Impiuni -c buffer.f90
-vis3d.o: futils.o
- $(F90) $(F90FLAGS) -Impiuni -c vis3d.f90
-
getfile.o: libfutils.a
clean:
rm -f *.o *~ a.out
make -C mpiuni clean
distclean: clean
- rm -f $(SERIAL) ex6 getfile *.h5 *.a *.mod
+ rm -f getfile *.a *.mod
make -C mpiuni distclean
diff --git a/src/mpiuni/Makefile b/src/mpiuni/Makefile
index 06ddfef..9e709aa 100644
--- a/src/mpiuni/Makefile
+++ b/src/mpiuni/Makefile
@@ -1,48 +1,55 @@
#
# @file Makefile
#
# @brief Makefile for mpiuni library
#
# @copyright
# Copyright (©) 2021 EPFL (Ecole Polytechnique Fédérale de Lausanne)
# SPC (Swiss Plasma Center)
#
# futils is free software: you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# futils is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
#
# @authors
# (in alphabetical order)
+# @author Emmanuel Lanti
# @author Trach-Minh Tran
#
FC = ifort
-FFLAGS = -g -CB -traceback
+ifeq ($(FC), ifort)
+ FFLAGS = -g -check bounds -traceback
+else ifeq ($(FC), gfortran)
+ FFLAGS = -g -fcheck=bounds -fbacktrace
+endif
+
F90 = $(FC)
F90FLAGS = $(FFLAGS)
-CC = icc
+CC = gcc
CFLAGS = -O2 -w
.SUFFIXES: .o .c .f90
.f90.o:
$(F90) $(F90FLAGS) -c $<
lib: libmpiuni.a
-libmpiuni.a: mpi_stubsf.o second.o
+libmpiuni.a: mpi_stubsf.o mpi_mod.o second.o
ar r $@ $?
ranlib $@
cp -a $@ ../
clean:
rm -f *.o *~ a.out
+
distclean: clean
rm -f *.a
diff --git a/src/mpiuni/mpi_mod.f90 b/src/mpiuni/mpi_mod.f90
new file mode 100644
index 0000000..ee1bb33
--- /dev/null
+++ b/src/mpiuni/mpi_mod.f90
@@ -0,0 +1,425 @@
+! /* -*- Mode: Fortran; -*- */
+!
+! (C) 2001 by Argonne National Laboratory.
+! See COPYRIGHT in top-level directory.
+!
+! DO NOT EDIT
+! This file created by buildiface
+!
+MODULE MPI
+ 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_COMM_WORLD
+ PARAMETER (MPI_COMM_WORLD=1140850688)
+ INTEGER MPI_COMM_SELF
+ PARAMETER (MPI_COMM_SELF=1140850689)
+ INTEGER MPI_GROUP_EMPTY
+ PARAMETER (MPI_GROUP_EMPTY=1207959552)
+ INTEGER MPI_COMM_NULL
+ PARAMETER (MPI_COMM_NULL=67108864)
+ INTEGER MPI_WIN_NULL
+ PARAMETER (MPI_WIN_NULL=536870912)
+ INTEGER MPI_FILE_NULL
+ PARAMETER (MPI_FILE_NULL=0)
+ INTEGER MPI_GROUP_NULL
+ PARAMETER (MPI_GROUP_NULL=134217728)
+ INTEGER MPI_OP_NULL
+ PARAMETER (MPI_OP_NULL=402653184)
+ INTEGER MPI_DATATYPE_NULL
+ PARAMETER (MPI_DATATYPE_NULL=201326592)
+ 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_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_NAME_STRING
+ PARAMETER (MPI_MAX_NAME_STRING=62)
+ 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_UNDEFINED, MPI_UNDEFINED_RANK
+ PARAMETER (MPI_UNDEFINED=(-32766))
+ PARAMETER (MPI_UNDEFINED_RANK=(-32766))
+ INTEGER MPI_KEYVAL_INVALID
+ PARAMETER (MPI_KEYVAL_INVALID=603979776)
+ INTEGER MPI_BSEND_OVERHEAD
+ PARAMETER (MPI_BSEND_OVERHEAD=59)
+ 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_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_COMPLEX
+ PARAMETER (MPI_COMPLEX=1275070494)
+ INTEGER MPI_DOUBLE_COMPLEX
+ PARAMETER (MPI_DOUBLE_COMPLEX=1275072546)
+ INTEGER MPI_LOGICAL
+ PARAMETER (MPI_LOGICAL=1275069469)
+ INTEGER MPI_REAL
+ PARAMETER (MPI_REAL=1275069468)
+ INTEGER MPI_DOUBLE_PRECISION
+ PARAMETER (MPI_DOUBLE_PRECISION=1275070495)
+ INTEGER MPI_INTEGER
+ PARAMETER (MPI_INTEGER=1275069467)
+ INTEGER MPI_2INTEGER
+ PARAMETER (MPI_2INTEGER=1275070496)
+ INTEGER MPI_2COMPLEX
+ PARAMETER (MPI_2COMPLEX=1275072548)
+ INTEGER MPI_2DOUBLE_PRECISION
+ PARAMETER (MPI_2DOUBLE_PRECISION=1275072547)
+ INTEGER MPI_2REAL
+ PARAMETER (MPI_2REAL=1275070497)
+ INTEGER MPI_2DOUBLE_COMPLEX
+ PARAMETER (MPI_2DOUBLE_COMPLEX=1275076645)
+ INTEGER MPI_CHARACTER
+ PARAMETER (MPI_CHARACTER=1275068698)
+ INTEGER MPI_BYTE
+ PARAMETER (MPI_BYTE=1275068685)
+ INTEGER MPI_UB
+ PARAMETER (MPI_UB=1275068433)
+ INTEGER MPI_LB
+ PARAMETER (MPI_LB=1275068432)
+ INTEGER MPI_PACKED
+ PARAMETER (MPI_PACKED=1275068687)
+ INTEGER MPI_INTEGER1
+ PARAMETER (MPI_INTEGER1=1275068717)
+ INTEGER MPI_INTEGER2
+ PARAMETER (MPI_INTEGER2=1275068975)
+ INTEGER MPI_INTEGER4
+ PARAMETER (MPI_INTEGER4=1275069488)
+ INTEGER MPI_INTEGER8
+ PARAMETER (MPI_INTEGER8=1275070513)
+ INTEGER MPI_INTEGER16
+ PARAMETER (MPI_INTEGER16=MPI_DATATYPE_NULL)
+ INTEGER MPI_REAL4
+ PARAMETER (MPI_REAL4=1275069479)
+ INTEGER MPI_REAL8
+ PARAMETER (MPI_REAL8=1275070505)
+ INTEGER MPI_REAL16
+ PARAMETER (MPI_REAL16=MPI_DATATYPE_NULL)
+ INTEGER MPI_COMPLEX8
+ PARAMETER (MPI_COMPLEX8=1275070504)
+ INTEGER MPI_COMPLEX16
+ PARAMETER (MPI_COMPLEX16=1275072554)
+ INTEGER MPI_COMPLEX32
+ PARAMETER (MPI_COMPLEX32=MPI_DATATYPE_NULL)
+ INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
+ PARAMETER (MPI_ADDRESS_KIND=4)
+ PARAMETER (MPI_OFFSET_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_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*8 MPI_DISPLACEMENT_CURRENT
+ PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278)
+ INTEGER MPI_BOTTOM, MPI_IN_PLACE
+ !$$$ EXTERNAL MPI_DUP_FN, MPI_NULL_DELETE_FN, MPI_NULL_COPY_FN
+ !$$$ EXTERNAL MPI_WTIME, MPI_WTICK
+ !$$$ EXTERNAL PMPI_WTIME, PMPI_WTICK
+ !$$$ EXTERNAL MPI_COMM_DUP_FN, MPI_COMM_NULL_DELETE_FN
+ !$$$ EXTERNAL MPI_COMM_NULL_COPY_FN
+ !$$$ EXTERNAL MPI_WIN_DUP_FN, MPI_WIN_NULL_DELETE_FN
+ !$$$ EXTERNAL MPI_WIN_NULL_COPY_FN
+ !$$$ EXTERNAL MPI_TYPE_DUP_FN, MPI_TYPE_NULL_DELETE_FN
+ !$$$ EXTERNAL MPI_TYPE_NULL_COPY_FN
+ !$$$ EXTERNAL MPI_CONVERSION_FN_NULL
+ DOUBLE PRECISION MPI_WTIME, MPI_WTICK
+ DOUBLE PRECISION PMPI_WTIME, PMPI_WTICK
+
+
+ COMMON /MPIPRIV1/ MPI_BOTTOM, MPI_IN_PLACE, MPI_STATUS_IGNORE
+
+ COMMON /MPIPRIV2/ MPI_STATUSES_IGNORE, MPI_ERRCODES_IGNORE
+ SAVE /MPIPRIV1/,/MPIPRIV2/
+
+ COMMON /MPIPRIVC/ MPI_ARGVS_NULL, MPI_ARGV_NULL
+ SAVE /MPIPRIVC/
+END MODULE MPI