1
1

Fortran: Move all f08-related modules out of fortran/base

Move them all to fortran/use-mpi-f08, since that's the only directory
that uses them (the use-mpi-f08-desc directory has been disabled).

cmr=v1.8.2:ticket=trac:4736

This commit was SVN r32045.

The following Trac tickets were found above:
  Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
Этот коммит содержится в:
Jeff Squyres 2014-06-19 13:44:08 +00:00
родитель f33cc84ac6
Коммит 134c527f18
6 изменённых файлов: 89 добавлений и 128 удалений

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

@ -48,72 +48,3 @@ libmpi_fortran_base_la_SOURCES = \
strings.c \ strings.c \
test_constants_f.c test_constants_f.c
endif endif
#-----------------------------------------------------------------------------
# If we're building the mpi_f08 bindings, this glue needs to be built
# first because it is needed by both the mpi_f08 module itself and the
# mpi_f08-based MPI extensions. We don't really care about the actual
# library that is built -- we just want to force the fortran modules
# to be built.
if OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS
noinst_LTLIBRARIES += \
libforce_usempif08_internal_modules_to_be_built.la
libforce_usempif08_internal_modules_to_be_built_la_SOURCES = \
mpi-f08-types.F90 \
mpi-f08-interfaces.F90 \
mpi-f08-interfaces-callbacks.F90 \
pmpi-f08-interfaces.F90
#
# Clean up all module files and all generated files
#
MOSTLYCLEANFILES = *.mod
#
# Automake doesn't do Fortran dependency analysis, so must list them
# manually here. Bummer!
#
config_h = \
$(top_builddir)/ompi/mpi/fortran/configure-fortran-output.h \
$(top_srcdir)/ompi/mpi/fortran/configure-fortran-output-bottom.h
mpi-f08-types.lo: $(config_h)
mpi-f08-types.lo: mpi-f08-types.F90
mpi-f08-interfaces.lo: $(config_h)
mpi-f08-interfaces.lo: mpi-f08-interfaces.F90
mpi-f08-interfaces.lo: mpi-f08-interfaces-callbacks.lo
mpi-f08-interfaces-callbacks.lo: $(config_h)
mpi-f08-interfaces-callbacks.lo: mpi-f08-interfaces-callbacks.F90
mpi-f08-interfaces-callbacks.lo: mpi-f08-types.lo
pmpi-f08-interfaces.lo: $(config_h)
pmpi-f08-interfaces.lo: pmpi-f08-interfaces.F90
pmpi-f08-interfaces.lo: mpi-f08-interfaces-callbacks.lo
# Install the generated .mod files. Unfortunately, each F90 compiler
# may generate different filenames, so we have to use a glob. :-(
install-exec-hook:
@ for file in `ls *.mod`; do \
echo $(INSTALL) $$file $(DESTDIR)$(libdir); \
$(INSTALL) $$file $(DESTDIR)$(libdir); \
done
uninstall-local:
@ for file in `ls *.mod`; do \
echo rm -f $(DESTDIR)$(libdir)/$$file; \
rm -f $(DESTDIR)$(libdir)/$$file; \
done
else
# Need to have empty targets because AM can't handle having an
# AM_CONDITIONAL was targets in the "if" statement but not in the
# "else". :-(
install-exec-hook:
uninstall-local:
endif

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

@ -19,14 +19,21 @@
# MPI bindings. # MPI bindings.
if OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS if OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS
AM_FCFLAGS = -I$(top_builddir)/ompi/include -I$(top_srcdir)/ompi/include \ AM_FCFLAGS = -I$(top_builddir)/ompi/include \
$(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/mpi/fortran/base \ -I$(top_srcdir)/ompi/include \
$(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \ $(OMPI_FC_MODULE_FLAG)$(top_builddir)/ompi/$(OMPI_FORTRAN_USEMPI_DIR) \
$(OMPI_FC_MODULE_FLAG). \ $(OMPI_FC_MODULE_FLAG). \
-I$(top_srcdir) $(FCFLAGS_f90) -I$(top_srcdir) $(FCFLAGS_f90)
MOSTLYCLEANFILES = *.mod
lib_LTLIBRARIES = libmpi_usempif08.la lib_LTLIBRARIES = libmpi_usempif08.la
module_sentinel_file = \
libforce_usempif08_internal_modules_to_be_built.la
noinst_LTLIBRARIES = $(module_sentinel_file)
mpi_api_files = \ mpi_api_files = \
abort_f08.F90 \ abort_f08.F90 \
accumulate_f08.F90 \ accumulate_f08.F90 \
@ -705,7 +712,6 @@ endif
libmpi_usempif08_la_SOURCES = \ libmpi_usempif08_la_SOURCES = \
$(mpi_api_files) \ $(mpi_api_files) \
$(pmpi_api_files) \ $(pmpi_api_files) \
mpi-f08-sizeof.F90 \
mpi-f-interfaces-bind.h \ mpi-f-interfaces-bind.h \
pmpi-f-interfaces-bind.h \ pmpi-f-interfaces-bind.h \
attr-fn-f08-callback-interfaces.h \ attr-fn-f08-callback-interfaces.h \
@ -718,21 +724,12 @@ libmpi_usempif08_la_SOURCES = \
# Include the mpi_f08-based MPI extensions in libmpi_usempif08, too. # Include the mpi_f08-based MPI extensions in libmpi_usempif08, too.
# #
module_sentinel_file = \
$(top_builddir)/ompi/mpi/fortran/base/libforce_usempif08_internal_modules_to_be_built.la
libmpi_usempif08_la_LIBADD = \ libmpi_usempif08_la_LIBADD = \
$(module_sentinel_file) \
$(OMPI_MPIEXT_USEMPIF08_LIBS) \ $(OMPI_MPIEXT_USEMPIF08_LIBS) \
$(top_builddir)/ompi/libmpi.la $(top_builddir)/ompi/libmpi.la
libmpi_usempif08_la_DEPENDENCIES = $(module_sentinel_file)
libmpi_usempif08_la_LDFLAGS = -version-info $(libmpi_usempif08_so_version) libmpi_usempif08_la_LDFLAGS = -version-info $(libmpi_usempif08_so_version)
#
# Clean up all module files
#
MOSTLYCLEANFILES = *.mod
# #
# Automake doesn't do Fortran dependency analysis, so must list them # Automake doesn't do Fortran dependency analysis, so must list them
# manually here. Bummer! # manually here. Bummer!
@ -753,6 +750,38 @@ mpi-f08.lo: mpi-f-interfaces-bind.h pmpi-f-interfaces-bind.h
mpi-f08.lo: attr-fn-f08-callback-interfaces.h mpi-f08.lo: attr-fn-f08-callback-interfaces.h
mpi-f08.lo: conversion-fn-null-f08-interface.h mpi-f08.lo: conversion-fn-null-f08-interface.h
###########################################################################
# f08 support modules
libforce_usempif08_internal_modules_to_be_built_la_SOURCES = \
mpi-f08-types.F90 \
mpi-f08-interfaces.F90 \
mpi-f08-interfaces-callbacks.F90 \
pmpi-f08-interfaces.F90
config_h = \
$(top_builddir)/ompi/mpi/fortran/configure-fortran-output.h \
$(top_srcdir)/ompi/mpi/fortran/configure-fortran-output-bottom.h
#
# Automake doesn't do Fortran dependency analysis, so must list them
# manually here. Bummer!
#
mpi-f08-types.lo: $(config_h)
mpi-f08-types.lo: mpi-f08-types.F90
mpi-f08-interfaces.lo: $(config_h)
mpi-f08-interfaces.lo: mpi-f08-interfaces.F90
mpi-f08-interfaces.lo: mpi-f08-interfaces-callbacks.lo
mpi-f08-interfaces-callbacks.lo: $(config_h)
mpi-f08-interfaces-callbacks.lo: mpi-f08-interfaces-callbacks.F90
mpi-f08-interfaces-callbacks.lo: mpi-f08-types.lo
pmpi-f08-interfaces.lo: $(config_h)
pmpi-f08-interfaces.lo: pmpi-f08-interfaces.F90
pmpi-f08-interfaces.lo: mpi-f08-interfaces-callbacks.lo
###########################################################################
# Install the generated .mod files. Unfortunately, each F90 compiler # Install the generated .mod files. Unfortunately, each F90 compiler
# may generate different filenames, so we have to use a glob. :-( # may generate different filenames, so we have to use a glob. :-(

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

@ -34,14 +34,15 @@ END INTERFACE
! end if ! end if
! end subroutine my_function ! end subroutine my_function
! !
!The MPI library may internally store such callbacks in a global array All_MPI_Ops: ! The MPI library may internally store such callbacks in a global array
! All_MPI_Ops:
! !
! type, private :: Internal_MPI_op ! type, private :: Internal_MPI_op
! procedure(user_function), nopass, pointer :: user_fn ! procedure(user_function), nopass, pointer :: user_fn
! end type ! end type
! type(Internal_MPI_op), private :: All_MPI_Ops(Max_Operations) ! type(Internal_MPI_op), private :: All_MPI_Ops(Max_Operations)
! !
!Within MPI_Op_create, the user_fn is stored in All_MPI_Ops: ! Within MPI_Op_create, the user_fn is stored in All_MPI_Ops:
! !
! subroutine MPI_Op_create( user_fn, commute, op ) bind(C) ! subroutine MPI_Op_create( user_fn, commute, op ) bind(C)
! procedure(user_function) :: user_fn ! procedure(user_function) :: user_fn
@ -51,8 +52,8 @@ END INTERFACE
! op%MPI_VAL = Registered_Operations ! op%MPI_VAL = Registered_Operations
! All_MPI_Ops(Registered_Operations)%user_fn => user_fn ! All_MPI_Ops(Registered_Operations)%user_fn => user_fn
! !
!Within MPI_Reduce, the stored user_fn is used to, e.g., to combine ! Within MPI_Reduce, the stored user_fn is used to, e.g., to combine
!recvbuf = sendbuf+recvbuf ! recvbuf = sendbuf+recvbuf
! !
! subroutine MPI_Reduce( sendbuf, recvbuf, count, datatype, op ) bind(C) ! subroutine MPI_Reduce( sendbuf, recvbuf, count, datatype, op ) bind(C)
! use, intrinsic :: iso_c_binding, only : c_loc ! use, intrinsic :: iso_c_binding, only : c_loc