1
1

Fortran: remove the scripts from the use-mpi-tkr implementation

This is part one of several Fortran improvements and fixes.  This
first part removes the now-defunct scripts that are used to generate
the .f90 files in the use-mpi-tkr implementation, and just commits the
output from those scripts.  This makes long-term maintenance of the
use-mpi-tkr implementation simpler.

cmr=v1.8.2:reviewer=jsquyres:subject=Various Fortran fixes/improvements

This commit was SVN r32040.
Этот коммит содержится в:
Jeff Squyres 2014-06-19 13:35:30 +00:00
родитель 65275d6326
Коммит 555073630e
23 изменённых файлов: 4756 добавлений и 12364 удалений

Просмотреть файл

@ -1,6 +1,6 @@
# -*- shell-script -*-
#
# Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2014 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -28,7 +28,6 @@ AC_DEFUN([OMPI_CONFIG_FILES],[
ompi/mpi/fortran/use-mpi-tkr/Makefile
ompi/mpi/fortran/use-mpi-tkr/fortran_sizes.h
ompi/mpi/fortran/use-mpi-tkr/fortran_kinds.sh
ompi/mpi/fortran/use-mpi-tkr/scripts/Makefile
ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile
ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-interfaces.h
ompi/mpi/fortran/use-mpi-ignore-tkr/mpi-ignore-tkr-file-interfaces.h

Просмотреть файл

@ -10,7 +10,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
@ -20,52 +20,16 @@
# $HEADER$
#
SUBDIRS = scripts
# THIS MAKEFILE IS OLD AND ONLY TO SUPPORT FORTRAN COMPILERS THAT DO
# NOT SUPPORT "IGNORE TKR" FUNCTIONALITY (cough cough gfortran cough
# cough). All reasonable Fortran compilers support ignore TKR and
# don't compile this directory -- instead, they compile
# ompi/fortran/use-mpi-ignore-tkr.
# This tree is left over to support non-ignore-tkr compilers, but
# hasn't been updated much. Indeed, many of the comments pre-date
# ignore-tkr days and haven't been updated.
# NOT SUPPORT "IGNORE TKR" FUNCTIONALITY (i.e., gfortran before v4.9).
# All other Fortran compilers support ignore TKR and don't compile
# this directory -- instead, they compile
# ompi/fortran/use-mpi-ignore-tkr.
if OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS
########################################################################
# This Makefile.am is quite complex and confusing. Part of the
# problem is that Libtool (v1.5.18) does not understand F90, so we
# have to do a few things manually (and no shared libraries). Here's a
# summary of what is happening:
#
# Depedencies / who generates whom:
#
# configure generates fortran_kinds.sh
# |
# \|/
# fortran_kinds.sh ----> sourced by scripts/* ----> generates mpi_*.f90
# | |
# \|/ |
# generates mpi-f90-interfaces.h |
# / |
# \/ |
# mpi-f90-interfaces.h |
# | |
# \|/ \|/
# used by mpi.F90 used by mpi_*.f90
# / | |
# / \|/ \|/
# / generates mpi.o generates mpi_*.o
# \/ \ /
# generates mpi module \/ \/
# (filename unknown) generates libmpi_f90.a
#
# Once you understand this diagram, this Makefile is much more clear.
#
AM_FCFLAGS = -I$(top_builddir)/ompi/include -I$(top_srcdir)/ompi/include \
$(OMPI_FC_MODULE_FLAG). -I$(srcdir) \
-I$(top_builddir)/ompi/mpi/fortran/use-mpi-tkr $(FCFLAGS_f90)
@ -80,40 +44,6 @@ if OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS
lib_LTLIBRARIES += libmpi_usempi.la
# Ensure that the F90 interfaces are re-generated based on the values
# that come in from configure
mpi-f90-interfaces.h: fortran_kinds.sh
CLEANFILES += mpi-f90-interfaces.h
# Run scripts to generate the f90 source files. We only need to
# generate the .f90 files once, so the "test" checks to see if the
# file exists before running the script. However, the
# mpi-f90-interfaces.h file may need to be generated multiple times
# (even if it already exists), such as if someone re-runs configure
# and changes the value fortran_kinds.sh (which is taken care of by
# the mpi-f90-interfaces.h dependency on fortran_kinds.sh, above).
mpi-f90-interfaces.h: $(srcdir)/scripts/mpi-f90-interfaces.h.sh
@ p="`pwd`"; \
echo $(srcdir)/scripts/mpi-f90-interfaces.h.sh $$p \> $@; \
$(srcdir)/scripts/mpi-f90-interfaces.h.sh $$p > $@
# Unbelievably, some versions of sh (cough cough Solaris 9 cough
# cough) actually seem to internally perform a "cd" into a
# subdirectory when you run "./foo/bar", such that if you try to
# source a script in the top-level directory in the bar script (e.g.,
# ". some_script" in the bar script), it will try to run it in the
# "foo" subdirectory, rather than the top-level directory! #$@#$%#$%
# So we have to pass in the pwd to the scripts so that they know where
# some_script is.
$(nodist_libmpi_usempi_la_SOURCES): fortran_kinds.sh
@ p="`pwd`"; \
echo $(srcdir)/scripts/$@.sh $$p \> $@; \
$(srcdir)/scripts/$@.sh $$p > $@ ;
# Automake doesn't know how to do F90 dependency analysis, so manually
# list this here (i.e., "mpi-f90-interfaces.h" is included in
# mpi.F90).
@ -125,31 +55,26 @@ $(nodist_libmpi_usempi_la_SOURCES): fortran_kinds.sh
mpi.o: mpi.F90 mpi-f90-interfaces.h
$(FCCOMPILE) -c -I. -o $@ $(FCFLAGS_f90) $<
BUILT_SOURCES = mpi-f90-interfaces.h
endif
# mpi.F90 is the only f90 source file directly in libmpif90 that gets
# distributed.
libmpi_usempi_la_SOURCES = mpi.F90
libmpi_usempi_la_LIBADD = \
$(top_builddir)/ompi/mpi/fortran/mpif-h/libmpi_mpifh.la
# These files are all generated by scripts in the scripts/ directory.
# Per MPI-3 p610:34-41, if we're building a TKR mpi module, we should
# not build any interfaces for MPI subroutines that take a choice
# buffer dummy argument.
# buffer dummy argument. We therefore really only need to build a
# handful of subroutines.
nodist_libmpi_usempi_la_SOURCES = \
mpi_sizeof.f90 \
libmpi_usempi_la_SOURCES = \
mpi.F90 \
mpi-f90-interfaces.h \
mpi_comm_spawn_multiple_f90.f90 \
mpi_sizeof.f90 \
mpi_testall_f90.f90 \
mpi_testsome_f90.f90 \
mpi_waitall_f90.f90 \
mpi_waitsome_f90.f90 \
mpi_wtick_f90.f90 \
mpi_wtime_f90.f90
libmpi_usempi_la_LIBADD = \
$(top_builddir)/ompi/mpi/fortran/mpif-h/libmpi_mpifh.la
# Set the library version
libmpi_usempi_la_LDFLAGS = \

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,60 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
subroutine MPI_Comm_spawn_multipleA(count, array_of_commands, array_of_argv, &
array_of_maxprocs, array_of_info, &
root, comm, intercomm, array_of_errcodes, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
character(len=*), dimension(*), intent(in) :: array_of_commands
character(len=*), dimension(count,*), intent(in) :: array_of_argv
integer, dimension(*), intent(in) :: array_of_maxprocs
integer, dimension(*), intent(in) :: array_of_info
integer, intent(in) :: root
integer, intent(in) :: comm
integer, intent(out) :: intercomm
integer, dimension(*), intent(out) :: array_of_errcodes
integer, intent(out) :: ierror
call MPI_Comm_spawn_multiple(count, array_of_commands, array_of_argv, &
array_of_maxprocs, array_of_info, root, comm, intercomm, &
array_of_errcodes, ierror)
end subroutine MPI_Comm_spawn_multipleA
subroutine MPI_Comm_spawn_multipleN(count, array_of_commands, array_of_argv, &
array_of_maxprocs, array_of_info, &
root, comm, intercomm, array_of_errcodes, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
character(len=*), dimension(*), intent(in) :: array_of_commands
double precision, intent(in) :: array_of_argv
integer, dimension(*), intent(in) :: array_of_maxprocs
integer, dimension(*), intent(in) :: array_of_info
integer, intent(in) :: root
integer, intent(in) :: comm
integer, intent(out) :: intercomm
integer, dimension(*), intent(out) :: array_of_errcodes
integer, intent(out) :: ierror
call MPI_Comm_spawn_multiple(count, array_of_commands, array_of_argv, &
array_of_maxprocs, array_of_info, root, comm, intercomm, &
array_of_errcodes, ierror)
end subroutine MPI_Comm_spawn_multipleN

990
ompi/mpi/fortran/use-mpi-tkr/mpi_sizeof.f90 Обычный файл
Просмотреть файл

@ -0,0 +1,990 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
subroutine MPI_Sizeof0DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof0DCH
subroutine MPI_Sizeof0DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof0DL
subroutine MPI_Sizeof0DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof0DI1
subroutine MPI_Sizeof0DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof0DI2
subroutine MPI_Sizeof0DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof0DI4
subroutine MPI_Sizeof0DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof0DI8
subroutine MPI_Sizeof0DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof0DR4
subroutine MPI_Sizeof0DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof0DR8
subroutine MPI_Sizeof0DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof0DR16
subroutine MPI_Sizeof0DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof0DC8
subroutine MPI_Sizeof0DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof0DC16
subroutine MPI_Sizeof0DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof0DC32
subroutine MPI_Sizeof1DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof1DCH
subroutine MPI_Sizeof1DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof1DL
subroutine MPI_Sizeof1DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof1DI1
subroutine MPI_Sizeof1DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof1DI2
subroutine MPI_Sizeof1DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof1DI4
subroutine MPI_Sizeof1DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof1DI8
subroutine MPI_Sizeof1DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof1DR4
subroutine MPI_Sizeof1DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof1DR8
subroutine MPI_Sizeof1DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof1DR16
subroutine MPI_Sizeof1DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof1DC8
subroutine MPI_Sizeof1DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof1DC16
subroutine MPI_Sizeof1DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof1DC32
subroutine MPI_Sizeof2DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof2DCH
subroutine MPI_Sizeof2DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof2DL
subroutine MPI_Sizeof2DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof2DI1
subroutine MPI_Sizeof2DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof2DI2
subroutine MPI_Sizeof2DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof2DI4
subroutine MPI_Sizeof2DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof2DI8
subroutine MPI_Sizeof2DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof2DR4
subroutine MPI_Sizeof2DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof2DR8
subroutine MPI_Sizeof2DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof2DR16
subroutine MPI_Sizeof2DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof2DC8
subroutine MPI_Sizeof2DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof2DC16
subroutine MPI_Sizeof2DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof2DC32
subroutine MPI_Sizeof3DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof3DCH
subroutine MPI_Sizeof3DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof3DL
subroutine MPI_Sizeof3DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof3DI1
subroutine MPI_Sizeof3DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof3DI2
subroutine MPI_Sizeof3DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof3DI4
subroutine MPI_Sizeof3DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof3DI8
subroutine MPI_Sizeof3DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof3DR4
subroutine MPI_Sizeof3DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof3DR8
subroutine MPI_Sizeof3DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof3DR16
subroutine MPI_Sizeof3DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof3DC8
subroutine MPI_Sizeof3DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof3DC16
subroutine MPI_Sizeof3DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof3DC32
subroutine MPI_Sizeof4DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof4DCH
subroutine MPI_Sizeof4DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof4DL
subroutine MPI_Sizeof4DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof4DI1
subroutine MPI_Sizeof4DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof4DI2
subroutine MPI_Sizeof4DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof4DI4
subroutine MPI_Sizeof4DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof4DI8
subroutine MPI_Sizeof4DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof4DR4
subroutine MPI_Sizeof4DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof4DR8
subroutine MPI_Sizeof4DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof4DR16
subroutine MPI_Sizeof4DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof4DC8
subroutine MPI_Sizeof4DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof4DC16
subroutine MPI_Sizeof4DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof4DC32
subroutine MPI_Sizeof5DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof5DCH
subroutine MPI_Sizeof5DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof5DL
subroutine MPI_Sizeof5DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof5DI1
subroutine MPI_Sizeof5DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof5DI2
subroutine MPI_Sizeof5DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof5DI4
subroutine MPI_Sizeof5DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof5DI8
subroutine MPI_Sizeof5DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof5DR4
subroutine MPI_Sizeof5DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof5DR8
subroutine MPI_Sizeof5DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof5DR16
subroutine MPI_Sizeof5DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof5DC8
subroutine MPI_Sizeof5DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof5DC16
subroutine MPI_Sizeof5DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof5DC32
subroutine MPI_Sizeof6DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof6DCH
subroutine MPI_Sizeof6DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof6DL
subroutine MPI_Sizeof6DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof6DI1
subroutine MPI_Sizeof6DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof6DI2
subroutine MPI_Sizeof6DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof6DI4
subroutine MPI_Sizeof6DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof6DI8
subroutine MPI_Sizeof6DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof6DR4
subroutine MPI_Sizeof6DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof6DR8
subroutine MPI_Sizeof6DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof6DR16
subroutine MPI_Sizeof6DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof6DC8
subroutine MPI_Sizeof6DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof6DC16
subroutine MPI_Sizeof6DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof6DC32
subroutine MPI_Sizeof7DCH(x, size, ierror)
implicit none
include 'fortran_sizes.h'
character, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_CHARACTER
ierror = 0
end subroutine MPI_Sizeof7DCH
subroutine MPI_Sizeof7DL(x, size, ierror)
implicit none
include 'fortran_sizes.h'
logical, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_LOGICAL
ierror = 0
end subroutine MPI_Sizeof7DL
subroutine MPI_Sizeof7DI1(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*1, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT1
ierror = 0
end subroutine MPI_Sizeof7DI1
subroutine MPI_Sizeof7DI2(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*2, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT2
ierror = 0
end subroutine MPI_Sizeof7DI2
subroutine MPI_Sizeof7DI4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*4, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT4
ierror = 0
end subroutine MPI_Sizeof7DI4
subroutine MPI_Sizeof7DI8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
integer*8, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_INT8
ierror = 0
end subroutine MPI_Sizeof7DI8
subroutine MPI_Sizeof7DR4(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*4, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL4
ierror = 0
end subroutine MPI_Sizeof7DR4
subroutine MPI_Sizeof7DR8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*8, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL8
ierror = 0
end subroutine MPI_Sizeof7DR8
subroutine MPI_Sizeof7DR16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
real*16, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_REAL16
ierror = 0
end subroutine MPI_Sizeof7DR16
subroutine MPI_Sizeof7DC8(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*8, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX8
ierror = 0
end subroutine MPI_Sizeof7DC8
subroutine MPI_Sizeof7DC16(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*16, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX16
ierror = 0
end subroutine MPI_Sizeof7DC16
subroutine MPI_Sizeof7DC32(x, size, ierror)
implicit none
include 'fortran_sizes.h'
complex*32, dimension(1,1,1,1,1,1,*), intent(in) :: x
integer, intent(out) :: size
integer, intent(out) :: ierror
size = OMPI_SIZEOF_F90_COMPLEX32
ierror = 0
end subroutine MPI_Sizeof7DC32

Просмотреть файл

@ -0,0 +1,43 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
subroutine MPI_TestallS(count, array_of_requests, flag, array_of_statuses, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
integer, dimension(count), intent(inout) :: array_of_requests
logical, intent(out) :: flag
integer, dimension(MPI_STATUS_SIZE, count), intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Testall(count, array_of_requests, flag, array_of_statuses, ierror)
end subroutine MPI_TestallS
subroutine MPI_TestallI(count, array_of_requests, flag, array_of_statuses, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
integer, dimension(count), intent(inout) :: array_of_requests
logical, intent(out) :: flag
double precision, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Testall(count, array_of_requests, flag, array_of_statuses, ierror)
end subroutine MPI_TestallI

Просмотреть файл

@ -0,0 +1,47 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
subroutine MPI_TestsomeS(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierror)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
integer, dimension(MPI_STATUS_SIZE, incount), intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Testsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierror)
end subroutine MPI_TestsomeS
subroutine MPI_TestsomeI(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierror)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
double precision, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Testsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierror)
end subroutine MPI_TestsomeI

Просмотреть файл

@ -0,0 +1,39 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
subroutine MPI_WaitallS(count, array_of_requests, array_of_statuses, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
integer, dimension(count), intent(inout) :: array_of_requests
integer, dimension(MPI_STATUS_SIZE, count), intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Waitall(count, array_of_requests, array_of_statuses, ierror)
end subroutine MPI_WaitallS
subroutine MPI_WaitallI(count, array_of_requests, array_of_statuses, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
integer, dimension(count), intent(inout) :: array_of_requests
double precision, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Waitall(count, array_of_requests, array_of_statuses, ierror)
end subroutine MPI_WaitallI

Просмотреть файл

@ -0,0 +1,47 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
subroutine MPI_WaitsomeS(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierror)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
integer, dimension(MPI_STATUS_SIZE, incount), intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierror)
end subroutine MPI_WaitsomeS
subroutine MPI_WaitsomeI(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierror)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
double precision, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierror)
end subroutine MPI_WaitsomeI

Просмотреть файл

@ -0,0 +1,27 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
function MPI_Wtick()
implicit none
double precision :: MPI_Wtick, foo
call MPI_Wtick_f90(foo)
MPI_Wtick = foo
end function MPI_Wtick

Просмотреть файл

@ -0,0 +1,27 @@
! -*- fortran -*-
!
! Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
! University Research and Technology
! Corporation. All rights reserved.
! Copyright (c) 2004-2005 The University of Tennessee and The University
! of Tennessee Research Foundation. 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 (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!
function MPI_Wtime()
implicit none
double precision :: MPI_Wtime, foo
call MPI_Wtime_f90(foo)
MPI_Wtime = foo
end function MPI_Wtime

Просмотреть файл

@ -1,39 +0,0 @@
# -*- makefile -*-
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. 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 (c) 2006-2013 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
fortran_scripts = \
mpi-f90-interfaces.h.sh \
mpi_comm_spawn_multiple_f90.f90.sh \
mpi_sizeof.f90.sh \
mpi_testall_f90.f90.sh \
mpi_testsome_f90.f90.sh \
mpi_unpack_external_f90.f90.sh \
mpi_unpack_f90.f90.sh \
mpi_waitall_f90.f90.sh \
mpi_waitsome_f90.f90.sh \
mpi_wtick_f90.f90.sh \
mpi_wtime_f90.f90.sh
EXTRA_DIST = $(fortran_scripts)
if OMPI_BUILD_FORTRAN_USEMPI_TKR_BINDINGS
noinst_SCRIPTS = $(fortran_scripts)
endif

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,70 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# This file generates a Fortran code to bridge between an explicit F90
# generic interface and the F77 implementation.
#
# This file is automatically generated by either of the scripts
# ../xml/create_mpi_f90_medium.f90.sh or
# ../xml/create_mpi_f90_large.f90.sh
#
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
output() {
procedure=$1
proc="$1$2"
argv_type=$3
cat <<EOF
subroutine ${proc}(count, array_of_commands, array_of_argv, &
array_of_maxprocs, array_of_info, &
root, comm, intercomm, array_of_errcodes, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
character(len=*), dimension(*), intent(in) :: array_of_commands
$argv_type, intent(in) :: array_of_argv
integer, dimension(*), intent(in) :: array_of_maxprocs
integer, dimension(*), intent(in) :: array_of_info
integer, intent(in) :: root
integer, intent(in) :: comm
integer, intent(out) :: intercomm
integer, dimension(*), intent(out) :: array_of_errcodes
integer, intent(out) :: ierror
call ${procedure}(count, array_of_commands, array_of_argv, &
array_of_maxprocs, array_of_info, root, comm, intercomm, &
array_of_errcodes, ierror)
end subroutine ${proc}
EOF
}
# A = real argv, N = ARGV_NULL
output MPI_Comm_spawn_multiple A "character(len=*), dimension(count,*)"
output MPI_Comm_spawn_multiple N "double precision"

Просмотреть файл

@ -1,179 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. 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 (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
. "$1/fortran_kinds.sh"
procedure='MPI_Sizeof'
rank=0
proc="${procedure}${rank}DCH"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " character, intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_CHARACTER"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
proc="${procedure}${rank}DL"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " logical, intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_LOGICAL"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " integer*${kind}, intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_INT${kind}"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " real*${kind}, intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_REAL${kind}"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " complex*${kind}, intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_COMPLEX${kind}"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
done
for rank in $ranks
do
case "$rank" in 1) dim='*' ; esac
case "$rank" in 2) dim='1,*' ; esac
case "$rank" in 3) dim='1,1,*' ; esac
case "$rank" in 4) dim='1,1,1,*' ; esac
case "$rank" in 5) dim='1,1,1,1,*' ; esac
case "$rank" in 6) dim='1,1,1,1,1,*' ; esac
case "$rank" in 7) dim='1,1,1,1,1,1,*' ; esac
proc="${procedure}${rank}DCH"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " character, dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_CHARACTER"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
proc="${procedure}${rank}DL"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " logical, dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_LOGICAL"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
for kind in $ikinds
do
proc="${procedure}${rank}DI${kind}"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " integer*${kind}, dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_INT${kind}"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
done
for kind in $rkinds
do
proc="${procedure}${rank}DR${kind}"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " real*${kind}, dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_REAL${kind}"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
done
for kind in $ckinds
do
proc="${procedure}${rank}DC${kind}"
echo "subroutine ${proc}(x, size, ierror)"
echo " implicit none"
echo " include 'fortran_sizes.h'"
echo " complex*${kind}, dimension(${dim}), intent(in) :: x"
echo " integer, intent(out) :: size"
echo " integer, intent(out) :: ierror"
echo " size = OMPI_SIZEOF_F90_COMPLEX${kind}"
echo " ierror = 0"
echo "end subroutine ${proc}"
echo
done
echo
done
echo
echo
echo

Просмотреть файл

@ -1,56 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
output() {
suffix=$1
status_type=$2
cat <<EOF
subroutine MPI_Testall${suffix}(count, array_of_requests, flag, array_of_statuses, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
integer, dimension(count), intent(inout) :: array_of_requests
logical, intent(out) :: flag
$status_type, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Testall(count, array_of_requests, flag, array_of_statuses, ierror)
end subroutine MPI_Testall${suffix}
EOF
}
# S = array of statuses, I = STATUSES_IGNORE
output S "integer, dimension(MPI_STATUS_SIZE, count)"
output I "double precision"

Просмотреть файл

@ -1,58 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
output() {
suffix=$1
status_type=$2
cat <<EOF
subroutine MPI_Testsome${suffix}(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierror)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
$status_type, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Testsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierror)
end subroutine MPI_Testsome${suffix}
EOF
}
# S = array of statuses, I = STATUSES_IGNORE
output S "integer, dimension(MPI_STATUS_SIZE, incount)"
output I "double precision"

Просмотреть файл

@ -1,92 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# This file generates a Fortran code to bridge between an explicit F90
# generic interface and the F77 implementation.
#
# This file is automatically generated by either of the scripts
# ../xml/create_mpi_f90_medium.f90.sh or
# ../xml/create_mpi_f90_large.f90.sh
#
. "$1/fortran_kinds.sh"
# This entire file is only generated in medium/large modules. So if
# we're not at least medium, bail now.
check_size large
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
allranks="0 $ranks"
output() {
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierror)
include "mpif-config.h"
character(len=*), intent(in) :: datarep
${type}, intent(in) :: inbuf
integer(kind=MPI_ADDRESS_KIND), intent(in) :: insize
integer(kind=MPI_ADDRESS_KIND), intent(inout) :: position
${type} :: outbuf
integer, intent(in) :: outcount
integer, intent(in) :: datatype
integer, intent(out) :: ierror
call ${procedure}(datarep, inbuf, insize, position, outbuf, &
outcount, datatype, ierror)
end subroutine ${proc}
EOF
}
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output MPI_Unpack_external ${rank} CH "character${dim}"
output MPI_Unpack_external ${rank} L "logical${dim}"
for kind in $ikinds
do
output MPI_Unpack_external ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output MPI_Unpack_external ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output MPI_Unpack_external ${rank} C${kind} "complex*${kind}${dim}"
done
done

Просмотреть файл

@ -1,92 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
#
# This file generates a Fortran code to bridge between an explicit F90
# generic interface and the F77 implementation.
#
# This file is automatically generated by either of the scripts
# ../xml/create_mpi_f90_medium.f90.sh or
# ../xml/create_mpi_f90_large.f90.sh
#
. "$1/fortran_kinds.sh"
# This entire file is only generated in medium/large modules. So if
# we're not at least medium, bail now.
check_size large
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
allranks="0 $ranks"
output() {
procedure=$1
rank=$2
type=$4
proc="$1$2D$3"
cat <<EOF
subroutine ${proc}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierror)
include "mpif-config.h"
${type}, intent(in) :: inbuf
integer, intent(in) :: insize
integer, intent(inout) :: position
${type} :: outbuf
integer, intent(in) :: outcount
integer, intent(in) :: datatype
integer, intent(in) :: comm
integer, intent(out) :: ierror
call ${procedure}(inbuf, insize, position, outbuf, outcount, &
datatype, comm, ierror)
end subroutine ${proc}
EOF
}
for rank in $allranks
do
case "$rank" in 0) dim='' ; esac
case "$rank" in 1) dim=', dimension(*)' ; esac
case "$rank" in 2) dim=', dimension(1,*)' ; esac
case "$rank" in 3) dim=', dimension(1,1,*)' ; esac
case "$rank" in 4) dim=', dimension(1,1,1,*)' ; esac
case "$rank" in 5) dim=', dimension(1,1,1,1,*)' ; esac
case "$rank" in 6) dim=', dimension(1,1,1,1,1,*)' ; esac
case "$rank" in 7) dim=', dimension(1,1,1,1,1,1,*)' ; esac
output MPI_Unpack ${rank} CH "character${dim}"
output MPI_Unpack ${rank} L "logical${dim}"
for kind in $ikinds
do
output MPI_Unpack ${rank} I${kind} "integer*${kind}${dim}"
done
for kind in $rkinds
do
output MPI_Unpack ${rank} R${kind} "real*${kind}${dim}"
done
for kind in $ckinds
do
output MPI_Unpack ${rank} C${kind} "complex*${kind}${dim}"
done
done

Просмотреть файл

@ -1,54 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
output() {
suffix=$1
status_type=$2
cat <<EOF
subroutine MPI_Waitall${suffix}(count, array_of_requests, array_of_statuses, ierror)
include 'mpif-config.h'
integer, intent(in) :: count
integer, dimension(count), intent(inout) :: array_of_requests
$status_type, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Waitall(count, array_of_requests, array_of_statuses, ierror)
end subroutine MPI_Waitall${suffix}
EOF
}
# S = array of statuses, I = STATUSES_IGNORE
output S "integer, dimension(MPI_STATUS_SIZE, count)"
output I "double precision"

Просмотреть файл

@ -1,58 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
output() {
suffix=$1
status_type=$2
cat <<EOF
subroutine MPI_Waitsome${suffix}(incount, array_of_requests, outcount, array_of_indices, array_of_statuses&
, ierror)
include 'mpif-config.h'
integer, intent(in) :: incount
integer, dimension(incount), intent(inout) :: array_of_requests
integer, intent(out) :: outcount
integer, dimension(*), intent(out) :: array_of_indices
$status_type, intent(out) :: array_of_statuses
integer, intent(out) :: ierror
call MPI_Waitsome(incount, array_of_requests, outcount, array_of_indices, array_of_statuses, ierror)
end subroutine MPI_Waitsome${suffix}
EOF
}
# S = array of statuses, I = STATUSES_IGNORE
output S "integer, dimension(MPI_STATUS_SIZE, incount)"
output I "double precision"

Просмотреть файл

@ -1,42 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
cat <<EOF
function MPI_Wtick()
implicit none
double precision :: MPI_Wtick, foo
call MPI_Wtick_f90(foo)
MPI_Wtick = foo
end function MPI_Wtick
EOF

Просмотреть файл

@ -1,42 +0,0 @@
#! /bin/sh
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006-2012 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# This flie was not generated by XML scripts; it was written by hand.
# It may be generated someday, but at this point, it was simpler to
# just write it by hand.
. "$1/fortran_kinds.sh"
# This entire file is only generated in small or larger modules. So
# if we're not at least small, bail now.
check_size small
if test "$output" = "0"; then
exit 0
fi
# Ok, we should continue.
cat <<EOF
function MPI_Wtime()
implicit none
double precision :: MPI_Wtime, foo
call MPI_Wtime_f90(foo)
MPI_Wtime = foo
end function MPI_Wtime
EOF