1
1
openmpi/ompi/mpi/f90/scripts/mpi-f90-interfaces.h.sh
2005-08-25 16:42:38 +00:00

15358 строки
442 KiB
Bash
Исполняемый файл

#! /bin/sh
# -*- shell-script -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University.
# All rights reserved.
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
# All rights reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Do a little error checking
if test ! -r "$1/fortran_kinds.sh"; then
echo "ERROR: Cannot find $1/fortran_kinds.sh"
exit 1
elif test ! -s "$1/fortran_kinds.sh"; then
echo "ERROR: $1/fortran_kinds.sh appears to be empty!"
exit 1
fi
# Read the setup information
echo "Reading Fortran KIND information..." >&2
. "$1/fortran_kinds.sh"
# Do the work
echo "Generating F90 interface functions..." >&2
# Setup
rank=2
array_ranks="1"
while test "`expr $rank \\<= $max_array_rank`" = "1"; do
array_ranks="$array_ranks $rank"
rank="`expr $rank + 1`"
done
# Subroutine helper used to make dimension strings
make_dims() {
dim=":"
j=2
while test "`expr $j \\<= $rank`" = "1"; do
dim="$dim,:"
j="`expr $j + 1`"
done
}
# Work for each procedure
procedure='MPI_Abort'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, errorcode, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: errorcode"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Accumulate'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, op, win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Add_error_class'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(errorclass, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: errorclass"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Add_error_code'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(errorclass, errorcode, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: errorclass"
echo " integer, intent(out) :: errorcode"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Add_error_string'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(errorcode, string, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: errorcode"
echo " character(len=*), intent(in) :: string"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Address'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Allgather'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Allgatherv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Alloc_mem'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(size, info, baseptr, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: info"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: baseptr"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Allreduce'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Alltoall'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Alltoallv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtype, recvbuf, &
recvcounts, rdispls, recvtype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Alltoallw'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, sdispls, sendtypes, recvbuf, &
recvcounts, rdispls, recvtypes, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, dimension(*), intent(in) :: sendcounts"
echo " integer, dimension(*), intent(in) :: sdispls"
echo " integer, dimension(*), intent(in) :: sendtypes"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: rdispls"
echo " integer, dimension(*), intent(in) :: recvtypes"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Attr_delete'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Attr_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, keyval, attribute_val, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: keyval"
echo " integer, intent(out) :: attribute_val"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Attr_put'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, keyval, attribute_val, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: keyval"
echo " integer, intent(in) :: attribute_val"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Barrier'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Bcast'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buffer, count, datatype, root, comm&
, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Bsend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Bsend_init'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Buffer_attach'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buffer"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Buffer_detach'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buffer, size, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buffer"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cancel'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_coords'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, rank, maxdims, coords, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: rank"
echo " integer, intent(in) :: maxdims"
echo " integer, dimension(*), intent(out) :: coords"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(old_comm, ndims, dims, periods, reorder, &
comm_cart, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: old_comm"
echo " integer, intent(in) :: ndims"
echo " integer, dimension(*), intent(in) :: dims"
echo " integer, dimension(*), intent(in) :: periods"
echo " integer, intent(in) :: reorder"
echo " integer, intent(out) :: comm_cart"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, maxdims, dims, periods, coords&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: maxdims"
echo " integer, dimension(*), intent(out) :: dims"
echo " integer, dimension(*), intent(out) :: periods"
echo " integer, dimension(*), intent(out) :: coords"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_map'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, ndims, dims, periods, newrank&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: ndims"
echo " integer, dimension(*), intent(in) :: dims"
echo " integer, dimension(*), intent(in) :: periods"
echo " integer, intent(out) :: newrank"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_rank'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, coords, rank, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, dimension(*), intent(in) :: coords"
echo " integer, intent(out) :: rank"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_shift'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, direction, disp, rank_source, rank_dest&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: direction"
echo " integer, intent(in) :: disp"
echo " integer, intent(out) :: rank_source"
echo " integer, intent(out) :: rank_dest"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cart_sub'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, remain_dims, new_comm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, dimension(*), intent(in) :: remain_dims"
echo " integer, intent(out) :: new_comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Cartdim_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, ndims, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ndims"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_call_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, errorcode, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: errorcode"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_compare'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm1, comm2, result, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm1"
echo " integer, intent(in) :: comm2"
echo " integer, intent(out) :: result"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, group, newcomm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: group"
echo " integer, intent(out) :: newcomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_create_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(function, errhandler, ierr)"
echo " use mpi_kinds"
echo " external :: function"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_create_keyval'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval, extra_state, ierr)"
echo " use mpi_kinds"
echo " external :: comm_copy_attr_fn"
echo " external :: comm_delete_attr_fn"
echo " integer, intent(out) :: comm_keyval"
echo " integer, intent(in) :: extra_state"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_delete_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, comm_keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " integer, intent(in) :: comm_keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_dup'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, newcomm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: newcomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_free_keyval'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm_keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm_keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_get_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, comm_keyval, attribute_val, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: comm_keyval"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_get_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, erhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: erhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_get_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, comm_name, resultlen, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " character(len=*), intent(out) :: comm_name"
echo " integer, intent(out) :: resultlen"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_group'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, group, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: group"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_rank'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, rank, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: rank"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_remote_group'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, group, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: group"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_remote_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_set_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, comm_keyval, attribute_val, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " integer, intent(in) :: comm_keyval"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: attribute_val"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_set_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " integer, intent(in) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_set_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, comm_name, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " character(len=*), intent(in) :: comm_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_split'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, color, key, newcomm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: color"
echo " integer, intent(in) :: key"
echo " integer, intent(out) :: newcomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_test_inter'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " integer, intent(in) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Dims_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(nnodes, ndims, dims, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: nnodes"
echo " integer, intent(in) :: ndims"
echo " integer, dimension(*), intent(inout) :: dims"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Errhandler_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(function, errhandler, ierr)"
echo " use mpi_kinds"
echo " external :: function"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Errhandler_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Errhandler_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Errhandler_set'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Error_class'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(errorcode, errorclass, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: errorcode"
echo " integer, intent(out) :: errorclass"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Error_string'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(errorcode, string, resultlen, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: errorcode"
echo " character(len=*), intent(out) :: string"
echo " integer, intent(out) :: resultlen"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Exscan'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_call_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, errorcode, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer, intent(in) :: errorcode"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_close'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_create_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(function, errhandler, ierr)"
echo " use mpi_kinds"
echo " external :: function"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_delete'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(filename, info, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: filename"
echo " integer, intent(in) :: info"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_amode'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, amode, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer, intent(out) :: amode"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_atomicity'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_byte_offset'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, offset, disp, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_OFFSET_KIND), intent(out) :: disp"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(file, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: file"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_group'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, group, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer, intent(out) :: group"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_info'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, info_used, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer, intent(out) :: info_used"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_position'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, offset, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(out) :: offset"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_position_shared'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, offset, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(out) :: offset"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_type_extent'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, datatype, extent, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: extent"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_get_view'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, disp, etype, filetype, datarep&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(out) :: disp"
echo " integer, intent(out) :: etype"
echo " integer, intent(out) :: filetype"
echo " character(len=*), intent(out) :: datarep"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_iread'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_iread_at'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_iread_shared'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_iwrite'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_iwrite_at'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_iwrite_shared'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, request&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_open'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, filename, amode, info, fh&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " character(len=*), intent(in) :: filename"
echo " integer, intent(in) :: amode"
echo " integer, intent(in) :: info"
echo " integer, intent(out) :: fh"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_preallocate'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_all'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_all_begin'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_all_end'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_at'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_at_all'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_at_all_begin'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_at_all_end'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_ordered'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_ordered_begin'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_ordered_end'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_read_shared'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_seek'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, offset, whence, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer, intent(in) :: whence"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_seek_shared'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, offset, whence, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer, intent(in) :: whence"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_set_atomicity'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer, intent(in) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_set_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(file, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: file"
echo " integer, intent(in) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_set_info'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, info, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer, intent(in) :: info"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_set_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_set_view'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, disp, etype, filetype, datarep, &
info, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: disp"
echo " integer, intent(in) :: etype"
echo " integer, intent(in) :: filetype"
echo " character(len=*), intent(in) :: datarep"
echo " integer, intent(in) :: info"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_sync'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fh, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_all'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_all_begin'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_all_end'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_at'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_at_all'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype, &
status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_at_all_begin'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, offset, buf, count, datatype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_OFFSET_KIND), intent(in) :: offset"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_at_all_end'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_ordered'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_ordered_begin'
# allow for 2 char rank, 2 char for type, 2 char for kind and
# still be 31 characters or less
procedure="`echo ${procedure} | cut -c1-25`"
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_ordered_end'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_File_write_shared'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(fh, buf, count, datatype, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: fh"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, dimension(MPI_STATUS_SIZE), intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Finalize'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Finalized'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Free_mem'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(base, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Gather'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Gatherv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcounts, &
displs, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, dimension(*), intent(in) :: recvcounts"
echo " integer, dimension(*), intent(in) :: displs"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Get'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Get_address'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(location, address, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: location"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: address"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Get_count'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(status, datatype, count, ierr)"
echo " use mpi_kinds"
echo " integer, dimension(MPI_STATUS_SIZE), intent(in) :: status"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: count"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Get_elements'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(status, datatype, count, ierr)"
echo " use mpi_kinds"
echo " integer, dimension(MPI_STATUS_SIZE), intent(in) :: status"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: count"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Get_processor_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(name, resultlen, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(out) :: name"
echo " integer, intent(out) :: resultlen"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Get_version'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(version, subversion, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: version"
echo " integer, intent(out) :: subversion"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Graph_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm_old, nnodes, index, edges, reorder, &
comm_graph, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm_old"
echo " integer, intent(in) :: nnodes"
echo " integer, dimension(*), intent(in) :: index"
echo " integer, dimension(*), intent(in) :: edges"
echo " integer, intent(in) :: reorder"
echo " integer, intent(out) :: comm_graph"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Graph_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, maxindex, maxedges, index, edges&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: maxindex"
echo " integer, intent(in) :: maxedges"
echo " integer, dimension(*), intent(out) :: index"
echo " integer, dimension(*), intent(out) :: edges"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Graph_map'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, nnodes, index, edges, newrank&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: nnodes"
echo " integer, dimension(*), intent(in) :: index"
echo " integer, dimension(*), intent(in) :: edges"
echo " integer, intent(out) :: newrank"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Graph_neighbors'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, rank, maxneighbors, neighbors, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: rank"
echo " integer, intent(in) :: maxneighbors"
echo " integer, dimension(*), intent(out) :: neighbors"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Graph_neighbors_count'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, rank, nneighbors, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: rank"
echo " integer, intent(out) :: nneighbors"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Graphdims_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, nnodes, nedges, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: nnodes"
echo " integer, intent(out) :: nedges"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Grequest_complete'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Grequest_start'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(query_fn, free_fn, cancel_fn, extra_state, request&
, ierr)"
echo " use mpi_kinds"
echo " external :: query_fn"
echo " external :: free_fn"
echo " external :: cancel_fn"
echo " integer, intent(in) :: extra_state"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_compare'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group1, group2, result, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group1"
echo " integer, intent(in) :: group2"
echo " integer, intent(out) :: result"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_difference'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group1, group2, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group1"
echo " integer, intent(in) :: group2"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_excl'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, n, ranks, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(in) :: n"
echo " integer, dimension(*), intent(in) :: ranks"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: group"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_incl'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, n, ranks, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(in) :: n"
echo " integer, dimension(*), intent(in) :: ranks"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_intersection'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group1, group2, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group1"
echo " integer, intent(in) :: group2"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_range_excl'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, n, ranges, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(in) :: n"
echo " integer, dimension(3, *), intent(in) :: ranges"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_range_incl'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, n, ranges, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(in) :: n"
echo " integer, dimension(3, *), intent(in) :: ranges"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_rank'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, rank, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(out) :: rank"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_translate_ranks'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group1, n, ranks1, group2, ranks2&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group1"
echo " integer, intent(in) :: n"
echo " integer, dimension(*), intent(in) :: ranks1"
echo " integer, intent(in) :: group2"
echo " integer, dimension(*), intent(out) :: ranks2"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Group_union'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group1, group2, newgroup, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group1"
echo " integer, intent(in) :: group2"
echo " integer, intent(out) :: newgroup"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Ibsend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: info"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_delete'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, key, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: info"
echo " character(len=*), intent(in) :: key"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_dup'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, newinfo, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: info"
echo " integer, intent(out) :: newinfo"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: info"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_get'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, key, valuelen, value, flag&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: info"
echo " character(len=*), intent(in) :: key"
echo " integer, intent(in) :: valuelen"
echo " character(len=*), intent(out) :: value"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_get_nkeys'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, nkeys, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: info"
echo " integer, intent(out) :: nkeys"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_get_nthkey'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, n, key, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: n"
echo " character(len=*), intent(out) :: key"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_get_valuelen'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, key, valuelen, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: info"
echo " character(len=*), intent(in) :: key"
echo " integer, intent(out) :: valuelen"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Info_set'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, key, value, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: info"
echo " character(len=*), intent(in) :: key"
echo " character(len=*), intent(in) :: value"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Init'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Init_thread'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(required, provided, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: required"
echo " integer, intent(out) :: provided"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Initialized'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Intercomm_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(local_comm, local_leader, bridge_comm, remote_leader, tag, &
newintercomm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: local_comm"
echo " integer, intent(in) :: local_leader"
echo " integer, intent(in) :: bridge_comm"
echo " integer, intent(in) :: remote_leader"
echo " integer, intent(in) :: tag"
echo " integer, intent(out) :: newintercomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Intercomm_merge'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(intercomm, high, newintercomm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: intercomm"
echo " integer, intent(in) :: high"
echo " integer, intent(out) :: newintercomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Iprobe'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(source, tag, comm, flag, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: flag"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Irecv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Irsend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Is_thread_main'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Isend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Issend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Keyval_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(copy_fn, delete_fn, keyval, extra_state, ierr)"
echo " use mpi_kinds"
echo " external :: copy_fn"
echo " external :: delete_fn"
echo " integer, intent(out) :: keyval"
echo " integer, intent(in) :: extra_state"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Keyval_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Op_create'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(function, commute, op, ierr)"
echo " use mpi_kinds"
echo " external :: function"
echo " integer, intent(in) :: commute"
echo " integer, intent(out) :: op"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Op_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(op, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: op"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Pack'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(inbuf, incount, datatype, outbuf, outsize, &
position, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(out) :: outsize"
echo " integer, intent(inout) :: position"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Pack_external'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(datarep, inbuf, incount, datatype, outbuf, &
outsize, position, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: outsize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Pack_external_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(datarep, incount, datatype, size, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Pack_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(incount, datatype, comm, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: incount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Pcontrol'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(level)"
echo " use mpi_kinds"
echo " integer, intent(in) :: level"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Probe'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(source, tag, comm, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Put'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(origin_addr, origin_count, origin_datatype, target_rank, target_disp, &
target_count, target_datatype, win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: origin_addr"
echo " integer, intent(in) :: origin_count"
echo " integer, intent(in) :: origin_datatype"
echo " integer, intent(in) :: target_rank"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: target_disp"
echo " integer, intent(in) :: target_count"
echo " integer, intent(in) :: target_datatype"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Query_thread'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(provided, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: provided"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Recv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, status, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Recv_init'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, source, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Reduce'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Reduce_scatter'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, recvcounts, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcounts"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Register_datarep'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(datarep, read_conversion_fn, write_conversion_fn, dtype_file_extent_fn, extra_state&
, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " external :: read_conversion_fn"
echo " external :: write_conversion_fn"
echo " external :: dtype_file_extent_fn"
echo " integer, intent(in) :: extra_state"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Request_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Request_get_status'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, flag, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: request"
echo " integer, intent(out) :: flag"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Rsend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(ibuf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: ibuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Rsend_init'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Scan'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, recvbuf, count, datatype, op, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: op"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Scatter'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, recvbuf, recvcount, &
recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Scatterv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcounts, displs, sendtype, recvbuf, &
recvcount, recvtype, root, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcounts"
echo " integer, intent(in) :: displs"
echo " integer, intent(in) :: sendtype"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Send'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Send_init'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Sendrecv'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(sendbuf, sendcount, sendtype, dest, sendtag, &
recvbuf, recvcount, recvtype, source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: sendbuf"
echo " integer, intent(in) :: sendcount"
echo " integer, intent(in) :: sendtype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: recvbuf"
echo " integer, intent(in) :: recvcount"
echo " integer, intent(in) :: recvtype"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Sendrecv_replace'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, sendtag, &
source, recvtag, comm, status, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(inout) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: sendtag"
echo " integer, intent(in) :: source"
echo " integer, intent(in) :: recvtag"
echo " integer, intent(in) :: comm"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_SIZEOF'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(x, size, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Ssend'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Ssend_init'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(buf, count, datatype, dest, tag, &
comm, request, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: buf"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: dest"
echo " integer, intent(in) :: tag"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Start'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: request"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Startall'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_requests, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Status_set_cancelled'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(status, flag, ierr)"
echo " use mpi_kinds"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(in) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Status_set_elements'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(status, datatype, count, ierr)"
echo " use mpi_kinds"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: count"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Test'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, flag, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: request"
echo " integer, intent(out) :: flag"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Test_cancelled'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(status, flag, ierr)"
echo " use mpi_kinds"
echo " integer, dimension(MPI_STATUS_SIZE), intent(in) :: status"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Testall'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_requests, flag, array_of_statuses, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, intent(out) :: flag"
echo " integer, dimension(MPI_STATUS_SIZE,*), intent(inout) :: array_of_statuses"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Testany'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_requests, index, flag, status&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, intent(out) :: index"
echo " integer, intent(out) :: flag"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Testsome'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: incount"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, intent(out) :: outcount"
echo " integer, dimension(*), intent(out) :: array_of_indices"
echo " integer, dimension(MPI_STATUS_SIZE,*), intent(inout) :: array_of_statuses"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Topo_test'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_commit'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: type"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_contiguous'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, oldtype, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_darray'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(size, rank, ndims, gsize_array, distrib_array, &
darg_array, psize_array, order, oldtype, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: size"
echo " integer, intent(in) :: rank"
echo " integer, intent(in) :: ndims"
echo " integer, dimension(*), intent(in) :: gsize_array"
echo " integer, dimension(*), intent(in) :: distrib_array"
echo " integer, dimension(*), intent(in) :: darg_array"
echo " integer, dimension(*), intent(in) :: psize_array"
echo " integer, intent(in) :: order"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_f90_complex'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(p, r, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: p"
echo " integer, intent(in) :: r"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_f90_integer'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(r, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: r"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_f90_real'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(p, r, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: p"
echo " integer, intent(in) :: r"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_hindexed'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(in) :: array_of_blocklengths"
echo " integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_hvector'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, blocklength, stride, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: blocklength"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_indexed_block'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, blocklength, array_of_displacements, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: blocklength"
echo " integer, dimension(*), intent(in) :: array_of_displacements"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_keyval'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type_copy_attr_fn, type_delete_attr_fn, type_keyval, extra_state, ierr)"
echo " use mpi_kinds"
echo " external :: type_copy_attr_fn"
echo " external :: type_delete_attr_fn"
echo " integer, intent(out) :: type_keyval"
echo " integer, intent(in) :: extra_state"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_resized'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(oldtype, lb, extent, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: oldtype"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: lb"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: extent"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_struct'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_block_lengths, array_of_displacements, array_of_types, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(in) :: array_of_block_lengths"
echo " integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements"
echo " integer, dimension(*), intent(in) :: array_of_types"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_create_subarray'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(ndims, size_array, subsize_array, start_array, order, &
oldtype, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: ndims"
echo " integer, dimension(*), intent(in) :: size_array"
echo " integer, dimension(*), intent(in) :: subsize_array"
echo " integer, dimension(*), intent(in) :: start_array"
echo " integer, intent(in) :: order"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_delete_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, type_keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: type"
echo " integer, intent(in) :: type_keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_dup'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, newtype, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_extent'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, extent, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: extent"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: type"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_free_keyval'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type_keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: type_keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_get_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, type_keyval, attribute_val, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer, intent(in) :: type_keyval"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_get_contents'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(mtype, max_integers, max_addresses, max_datatypes, array_of_integers, &
array_of_addresses, array_of_datatypes, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: mtype"
echo " integer, intent(in) :: max_integers"
echo " integer, intent(in) :: max_addresses"
echo " integer, intent(in) :: max_datatypes"
echo " integer, dimension(*), intent(out) :: array_of_integers"
echo " integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(out) :: array_of_addresses"
echo " integer, dimension(*), intent(out) :: array_of_datatypes"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_get_envelope'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, num_integers, num_addresses, num_datatypes, combiner&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer, intent(out) :: num_integers"
echo " integer, intent(out) :: num_addresses"
echo " integer, intent(out) :: num_datatypes"
echo " integer, intent(out) :: combiner"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_get_extent'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, lb, extent, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: lb"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: extent"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_get_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, type_name, resultlen, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " character(len=*), intent(out) :: type_name"
echo " integer, intent(out) :: resultlen"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_get_true_extent'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(datatype, true_lb, true_extent, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: datatype"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_lb"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: true_extent"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_hindexed'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(in) :: array_of_blocklengths"
echo " integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_hvector'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, blocklength, stride, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: blocklength"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: stride"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_indexed'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_blocklengths, array_of_displacements, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(in) :: array_of_blocklengths"
echo " integer, dimension(*), intent(in) :: array_of_displacements"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_lb'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, lb, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: lb"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_match_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(typeclass, size, type, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: typeclass"
echo " integer, intent(in) :: size"
echo " integer, intent(out) :: type"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_set_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, type_keyval, attr_val, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: type"
echo " integer, intent(in) :: type_keyval"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: attr_val"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_set_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, type_name, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: type"
echo " character(len=*), intent(in) :: type_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_size'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(type, size, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: type"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_struct'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_blocklengths, array_of_displacements, array_of_types, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(in) :: array_of_blocklengths"
echo " integer(kind=MPI_ADDRESS_KIND), dimension(*), intent(in) :: array_of_displacements"
echo " integer, dimension(*), intent(in) :: array_of_types"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_ub'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(mtype, ub, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: mtype"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: ub"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Type_vector'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, blocklength, stride, oldtype, newtype&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, intent(in) :: blocklength"
echo " integer, intent(in) :: stride"
echo " integer, intent(in) :: oldtype"
echo " integer, intent(out) :: newtype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Unpack'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer, intent(in) :: insize"
echo " integer, intent(inout) :: position"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Unpack_external'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " real(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: datarep"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: inbuf"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize"
echo " integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(out) :: outbuf"
echo " integer, intent(in) :: outcount"
echo " integer, intent(in) :: datatype"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Wait'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(request, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: request"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Waitall'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_requests, array_of_statuses, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, dimension(MPI_STATUS_SIZE,*), intent(inout) :: array_of_statuses"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Waitany'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_requests, index, status, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, intent(out) :: index"
echo " integer, dimension(MPI_STATUS_SIZE), intent(inout) :: status"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Waitsome'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: incount"
echo " integer, dimension(*), intent(inout) :: array_of_requests"
echo " integer, intent(out) :: outcount"
echo " integer, dimension(*), intent(out) :: array_of_indices"
echo " integer, dimension(MPI_STATUS_SIZE,*), intent(inout) :: array_of_statuses"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_call_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, errorcode, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(in) :: errorcode"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_complete'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_create'
echo "interface ${procedure}"
echo
rank=0
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
rank=0
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for rank in $array_ranks
do
make_dims $rank
for kind in $lkinds
do
proc="${procedure}${rank}DL${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " logical(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " integer(kind=MPI_INTEGER${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " real(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(base, size, disp_unit, info, comm, &
win, ierr)"
echo " use mpi_kinds"
echo " complex(kind=MPI_REAL${kind}_KIND), dimension(${dim}), intent(in) :: base"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: size"
echo " integer, intent(in) :: disp_unit"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: comm"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_create_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(function, errhandler, ierr)"
echo " use mpi_kinds"
echo " external :: function"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_create_keyval'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win_copy_attr_fn, win_delete_attr_fn, win_keyval, extra_state, ierr)"
echo " use mpi_kinds"
echo " external :: win_copy_attr_fn"
echo " external :: win_delete_attr_fn"
echo " integer, intent(out) :: win_keyval"
echo " integer, intent(in) :: extra_state"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_delete_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, win_keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: win"
echo " integer, intent(in) :: win_keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_fence'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(assert, win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: assert"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_free'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_free_keyval'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win_keyval, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: win_keyval"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_get_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, win_keyval, attribute_val, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(in) :: win_keyval"
echo " integer(kind=MPI_ADDRESS_KIND), intent(out) :: attribute_val"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_get_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_get_group'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, group, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: group"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_get_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, win_name, resultlen, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " character(len=*), intent(out) :: win_name"
echo " integer, intent(out) :: resultlen"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_lock'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(lock_type, rank, assert, win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: lock_type"
echo " integer, intent(in) :: rank"
echo " integer, intent(in) :: assert"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_post'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, assert, win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(in) :: assert"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_set_attr'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, win_keyval, attribute_val, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: win"
echo " integer, intent(in) :: win_keyval"
echo " integer(kind=MPI_ADDRESS_KIND), intent(in) :: attribute_val"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_set_errhandler'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, errhandler, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: win"
echo " integer, intent(in) :: errhandler"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_set_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, win_name, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: win"
echo " character(len=*), intent(in) :: win_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_start'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(group, assert, win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: group"
echo " integer, intent(in) :: assert"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_test'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, flag, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: flag"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_unlock'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(rank, win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: rank"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Win_wait'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(win, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: win"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Close_port'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(port_name, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: port_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Lookup_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(service_name, info, port_name, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: service_name"
echo " integer, intent(in) :: info"
echo " character(len=*), intent(out) :: port_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Open_port'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(info, port_name, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: info"
echo " character(len=*), intent(out) :: port_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Publish_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(service_name, info, port_name, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: service_name"
echo " integer, intent(in) :: info"
echo " character(len=*), intent(in) :: port_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Unpublish_name'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(service_name, info, port_name, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: service_name"
echo " integer, intent(in) :: info"
echo " character(len=*), intent(in) :: port_name"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_disconnect'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(comm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(inout) :: comm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_get_parent'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(parent, ierr)"
echo " use mpi_kinds"
echo " integer, intent(out) :: parent"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_join'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(fd, intercomm, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: fd"
echo " integer, intent(out) :: intercomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_accept'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(port_name, info, root, comm, newcomm&
, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: port_name"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: newcomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_connect'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(port_name, info, root, comm, newcomm&
, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: port_name"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: newcomm"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_spawn'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(command, argv, maxprocs, info, root, &
comm, intercomm, array_of_errcodes, ierr)"
echo " use mpi_kinds"
echo " character(len=*), intent(in) :: command"
echo " character(len=*), dimension(*), intent(in) :: argv"
echo " integer, intent(in) :: maxprocs"
echo " integer, intent(in) :: info"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: intercomm"
echo " integer, dimension(*), intent(out) :: array_of_errcodes"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
procedure='MPI_Comm_spawn_multiple'
echo "interface ${procedure}"
echo
proc="${procedure}"
echo "subroutine ${proc}(count, array_of_commands, array_of_argv, array_of_maxprocs, array_of_info, &
root, comm, intercomm, array_of_errcodes, ierr)"
echo " use mpi_kinds"
echo " integer, intent(in) :: count"
echo " character(len=*), dimension(*), intent(in) :: array_of_commands"
echo " character(len=*), dimension(count,*), intent(in) :: array_of_argv"
echo " integer, dimension(*), intent(in) :: array_of_maxprocs"
echo " integer, dimension(*), intent(in) :: array_of_info"
echo " integer, intent(in) :: root"
echo " integer, intent(in) :: comm"
echo " integer, intent(out) :: intercomm"
echo " integer, dimension(*), intent(out) :: array_of_errcodes"
echo " integer, intent(out) :: ierr"
echo "end subroutine ${proc}"
echo
echo "end interface ${procedure}"
echo
echo
echo "Finished generating Fortran 90 interface functions" >&2