1
1

79 Коммитов

Автор SHA1 Сообщение Дата
Fangrui Song
02f3795299 Make C and Fortran types for MPI sentinels agree in size
Fix the C types for the following:

* MPI_UNWEIGHTED
* MPI_WEIGHTS_EMPTY
* MPI_ARGV_NULL
* MPI_ARGVS_NULL
* MPI_ERRCODES_IGNORE

There is lengthy discussion on
https://github.com/open-mpi/ompi/pull/7210 describing the issue; the
gist of it is that the C and Fortran types for several MPI global
sentenial values should agree (specifically: their sizes must(**)
agree).  We erroneously had several of these array-like sentinel
values be "array-like" values in C.  E.g., MPI_ERRCODES_IGNORE was an
(int *) in C while its corresponding Fortran type was "integer,
dimension(1)".  On a 64 bit platform, this resulted in C expecting the
symbol size to be sizeof(int*)==8 while Fortran expected the symbol
size to be sizeof(INTEGER, DIMENSION(1))==4.

That is incorrect -- the corresponding C type needed to be (int).
Then both C and Fortran expect the size of the symbol to be the same.

(**) NOTE: This code has been wrong for years.  This mismatch of types
typically worked because, due to Fortran's call-by-reference
semantics, Open MPI was comparing the *addresses* of these instances,
not their *types* (or sizes) -- so even if C expected the size of the
symbol to be X and Fortran expected the size of the symbol to be Y
(where X!=Y), all we really checked at run time was that the addresses
of the symbols were the same.  But it caused linker warning messages,
and even caused errors in some cases.

Specifically: due to a GNU ld bug
(https://sourceware.org/bugzilla/show_bug.cgi?id=25236), the 5 common
symbols are incorrectly versioned VER_NDX_LOCAL because their
definitions in Fortran sources have smaller st_size than those in
libmpi.so.

This makes the Fortran library not linkable with lld in distributions
that ship openmpi built with -Wl,--version-script
(https://bugs.llvm.org/show_bug.cgi?id=43748):

  % mpifort -fuse-ld=lld /dev/null
  ld.lld: error: corrupt input file: version definition index 0 for symbol
  mpi_fortran_argv_null_ is out of bounds
  >>> defined in /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_usempif08.so
  ...

If we fix the C and Fortran symbols to actually be the same size, the
problem goes away and the GNU ld bug does not come into play.

This commit also fixes a minor issue that MPI_UNWEIGHTED and
MPI_WEIGHTS_EMPTY were not declared as Fortran arrays (not fully fixed
by commit 107c0073dd11fb90d18122c521686f692a32cdd8).

Fixes open-mpi/ompi#7209

Signed-off-by: Fangrui Song <i@maskray.me>
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 5609268e90cb0ff7b2431d29041c10a700fd6996)
2020-02-02 13:57:50 -08:00
Mark Allen
36583df689 in-place conversion macro writes into INPUT argument
In fint_2_int.h there are some conversion macros for logicals. It has
one path for OMPI_SIZEOF_FORTRAN_LOGICAL != SIZEOF_INT where a new array
would be allocated and the conversions then might expand to
    c_array[i] = (array[i] == 0 ? 0 : 1)
and another path for OMPI_SIZEOF_FORTRAN_LOGICAL == SIZEOF_INT where it
does things "in place", so the same conversion there would just be
    array[i] = (array[i] == 0 ? 0 : 1)

The problem is some of the logical arrays being converted are INPUT
arguments. And it's possible for some compilers to even put the argument
in read-only memory so the above "in place" conversion SEGV's.  A
testcase I have used
    call MPI_CART_SUB(oldcomm, (/.true.,.false./), newcomm, ierr)
and gfortran put the second arg in read-only mem.

In cart_sub_f.c you can trace the ompi_fortran_logical_t *remain_dims arg.
remain_dims[] is for input only, but the file uses
    OMPI_LOGICAL_ARRAY_NAME_DECL(remain_dims);
    OMPI_ARRAY_LOGICAL_2_INT(remain_dims, ndims);
    PMPI_Cart_sub(..., OMPI_LOGICAL_ARRAY_NAME_CONVERT(remain_dims), ...);
    OMPI_ARRAY_INT_2_LOGICAL(remain_dims, ndims);
to convert it to c-ints make a C call then restore it to Fortran logicals
before returning.

It's not always wrong to convert purely in-place, eg cart_get_f.c has
a periods[] that's exclusively for OUTPUT and it would be fine with the
macros as they were. But I still say the macros are invalid because they
don't distinguish whether they're being used on INPUT or OUTPUT args and
thus they can't be used in a way that's legal for both cases.

It might be possible to fix the macros by adding more of them so that
cart_create_f.c and cart_get_f.c would use different macros that give
more context. But my fix here is just to turn off the first block and
make all paths run as if OMPI_SIZEOF_FORTRAN_LOGICAL != SIZEOF_INT.

The main macros that get enlarged by this change are
    define OMPI_ARRAY_LOGICAL_2_INT_ALLOC : mallocs now
    define OMPI_ARRAY_LOGICAL_2_INT : also mallocs now
But these are only used in 4 places, three of which are the purpose of
this checkin, to avoid the former in-place expansion of an INPUT arg:
    cart_create_f.c
    cart_map_f.c
    cart_sub_f.c
and one of which is an OUPUT arg that was fine and that gets
unnecessarily expanded into a separate array by this checkin.
    cart_get_f.c

So I think an unnecessary malloc in cart_get_f.c is the only downside
to this change, where the logicals array argument could have been used
and converted in place.

Signed-off-by: Mark Allen <markalle@us.ibm.com>

Update provided by Gilles Gouaillardet to keep the in-place option
if OMPI_FORTRAN_VALUE_TRUE == 1 where no conversion is needed.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
(cherry picked from commit 0a7f1e3cc58dabe536df00ae9c97f7e9d27103ad)
2019-04-05 13:34:09 -04:00
Gilles Gouaillardet
2b5a7ca816 fortran: add CHARACTER and LOGICAL support to MPI_Sizeof()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>

(cherry picked from commit open-mpi/ompi@e4001040b4)
2018-10-12 14:10:45 +09:00
Themos Tsikas
4d126c16fa mpi/fortran: use conformant dummy names for Fortran bindings
The MPI spec defines that the "mpi" and "mpi_f08" module Fortran
bindings support passing by parameters by name.  Hence, we need to use
the MPI-spec-defined parameter names ("dummy variables", in Fortran
parlance) for the "mpi" and "mpi_f08" modules.

Specifically, Fortran allows calls to procedures to be written with
keyword arguments, e.g., "call mpi_sizeof(x=x,size=rsize,ierror=ier)"
An "explicit interface" for the procedure must be in scope for this to
be allowed in a Fortran program unit.  Therefore, the explicit
interface blocks we provide in the "mpi" and "mpi_f08" modules must
match the MPI published standard, including the names of the dummy
variables (i.e., parameter names), as that is how Fortran programs may
call them.

Note that we didn't find this issue previously because even though the
MPI spec *allows* for name-based parameter passing, not many people
actually use it.  I suspect that we might have some more incorrect
parameter names -- we should probably do a full "mpi" / "mpi_f08"
module parameter name audit someday.

Thanks to Themos Tsikas for reporting the issue and supplying the
initial fix.

Signed-off-by: themos.tsikas@nag.co.uk
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2018-05-02 09:42:19 +09:00
Jeff Squyres
0ab6b201fe mpi/fortran: fix parsing arrays of Fortran strings
MPI defines the "argv" param to Fortran MPI_COMM_SPAWN as being
terminated by a blank string.  While not precisely defined (except
through a non-binding example, Example 10.2, MPI-3.1 p382:6-29), one
can infer that the "array_of_argv" param to Fortran
MPI_COMM_SPAWN_MULTIPLE is also a set of argv, each of which are
terminated by a blank line.

The "array_of_commands" argument to Fortran MPI_COMM_SPAWN_MULTIPLE is
a little less well-defined.  It is *assumed* to be of length "count"
(another parameter to MPI_COMM_SPAWN_MULTIPLE) -- and *not* be
terminated by a blank string.  This is also given credence by the same
example 10.2 in MPI-3.1.

The previous code assumed that "array_of_commands" should also be
terminated by a blank line -- but per the above, this is incorrect.
Instead, we should just parse our "count" number of strings from
"array_of_commands" and *not* look for a blank line termination.

This commit separates these two cases:

* ompi_fortran_argv_blank_f2c(): parse a Fortran array of strings out
  and stop when reaching a blank string.
* ompi_fortran_argv_count_f2c(): parse a Fortran array of strings out
  and stop when "count" number of strings have been parsed.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2018-04-04 18:56:44 -07:00
Nathan T. Weeks
3158d2c5ed Fix type of mpi_f08 MPI_ERRCODES_IGNORE
Signed-off-by: Nathan T. Weeks <weeks@iastate.edu>
2018-01-07 05:36:41 -08:00
Joshua Hursey
c81795cbda Revert "Fix MPI_SIZEOF for gfortran 4.8"
This reverts commit 5de3d5dde688d1af4fc7c6c33636d5d808f40c0a.

 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-07-11 11:09:17 -05:00
Chris Ward
5de3d5dde6 Fix MPI_SIZEOF for gfortran 4.8
Add copyrights.

Revise the README to take out the 'most notably' statement about GNU Fortran 4.8

Signed-off-by: Chris Ward <tjcw@uk.ibm.com>
2017-07-07 13:47:35 +01:00
Gilles Gouaillardet
08526e8adc fortran/base: rename strings.h into fortran_base_strings.h
rename ompi/mpi/fortran/base/strings.h so it does not get pulled
when /usr/include/strings.h is expected.

Refs open-mpi/ompi#3639

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-06-02 09:46:20 +09:00
KAWASHIMA Takahiro
0fcd96486a fortran: Fix MPI_ARGV(S)_NULL compilation error
Fortran constants `MPI_ARGV_NULL` and `MPI_ARGVS_NULL` are defined
in MPI-3.1 p.680 as below.

> `MPI_ARGVS_NULL`
>   2-dim. array of `CHARACTER*(*)`
> `MPI_ARGV_NULL`
>   array of `CHARACTER*(*)`

`MPI_ARGV_NULL` and `MPI_ARGVS_NULL` are used as an argument of
`MPI_COMM_SPAWN` and `MPI_COMM_SPAWN_MULTIPLE` respectively and
their argument `argv` and `array_of_argv` are defined as below
for `USE mpi_f08` binding in MPI-3.1.

```
CHARACTER(LEN=*), INTENT(IN) :: argv(*)
CHARACTER(LEN=*), INTENT(IN) :: array_of_argv(count, *)
```

Defining them as `INTEGER` in `mpi_f08` module will cause
a compilation error of user programs like
"There is no specific subroutine for the generic 'mpi_comm_spawn'".

Signed-off-by: KAWASHIMA Takahiro <t-kawashima@jp.fujitsu.com>
2017-04-24 13:53:12 +09:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b7817d5891ff06a447ea190b0e77479.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
KAWASHIMA Takahiro
334c63cf0a fortran: Change subroutine declaration order
Same order for `comm`, `type`, and `win`.

No code change.
2016-04-12 20:10:15 +09:00
KAWASHIMA Takahiro
10c11ff5b5 fortran: Add missing MPI_DUP_FN subroutine
Though the `MPI_DUP_FN` subroutine is depricated, it is not yet removed
as of MPI-3.1.
2016-04-12 20:06:50 +09:00
Gilles Gouaillardet
26b2ed1069 fortran: add missing MPI_xxx_DUP_FN bindings in use-mpi-tkr
- MPI_COMM_DUP_FN
- MPI_TYPE_DUP_FN
- MPI_WIN_DUP_FN
2015-12-07 09:10:48 +09:00
KAWASHIMA Takahiro
107c0073dd fortran: Fix: MPI_UNWEIGHTED and MPI_WEIGHTS_EMPTY should be arrays.
Without this modification, gfortran throw the following error
if these variables are used for `MPI_DIST_GRAPH_CREATE_ADJACENT` or
`MPI_DIST_GRAPH_CREATE_ADJACENT`.

  Error: There is no specific subroutine for the generic
  'mpi_dist_graph_create_adjacent' at (1)
2015-11-04 10:38:25 +09:00
Gilles Gouaillardet
40b57ff347 fortran: only generate the correct symbol based on the compiler mangling. 2015-10-13 08:52:03 +09:00
Jeff Squyres
0f3a3e52ba gen-mpi-sizeof: minor style change
Suggested by Paul Hargrove.
2015-08-22 03:07:44 -07:00
Jeff Squyres
9f345bd22f fortran: moar fixes for the Fortran MPI_SIZEOF debacle
Ensure to define ompi/pompi versions for platforms that don't have
weak symbols.  Also make fortran/mpif-h/profile build a separate
sizeof library, just like fortran/mpifh-h does.
2015-08-21 14:35:18 -07:00
Jeff Squyres
ede9fc17b0 gen-mpi-sizeof.pl: don't generate sub for headers
We only need the dummy subroutine when we're generating the body of a
file -- not when we're generating headers.
2015-08-20 14:24:45 -07:00
Jeff Squyres
edf485716e gen-mpi-sizeof.pl: restore execute permission
Somehow the "x" bit got reset in the last commit.
2015-08-20 13:31:02 -07:00
--quiet
d5763a8288 fortran sizeof: ensure mpi_sizeof*f90 is not empty
Per http://www.open-mpi.org/community/lists/devel/2015/08/17775.php,
some compilers don't like it when there's a .f90 file that only
contains comments (and no actual Fortran code).  So if OMPI determines
that the Fortran compiler does not support enough Fortran mojo to
support MPI_SIZEOF, generate at least one dummy Fortran subroutine
that can be compiled in an otherwise barren Fortran landscape that is
devoid of life and hope.
2015-08-20 13:01:14 -07:00
Gilles Gouaillardet
9c77c6b66d fortran: fix f08 bindings
only define the unique fortran symbol depending on
 - CAPS
 - PLAIN
 - SINGLE_UNDERSCORE
 - DOUBLE_UNDERSCORE
and bind the f08 symbol to the uniquely defined C symbol.

Use real data structures to make the code simpler.
(perl script written by Jeff)
2015-07-27 16:28:57 +09:00
Nathan Hjelm
458cd9d611 Merge pull request #629 from hjelmn/aint_math
Add support for MPI-3.1 MPI_Aint functions
2015-06-24 10:52:44 -07:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Nathan Hjelm
062de45899 Add support for MPI-3.1 MPI_Aint functions
This commit adds support for MPI_Aint_add and MPI_Aint_diff. These
functions are implemented as macros in C (explicitly allowed by
MPI-3.1). The fortran implementations are a similar mess to the
MPI_Wtime implementations.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-06-09 09:31:33 -06:00
Jeff Squyres
cab1379dfb Fortran: only emit real16 and complex32 if supported
This is the master version of @ggouaillardet's patch from
open-mpi/ompi-release#148 (there was a minor conflict to fix and
several fuzzings of line numbers).
2015-01-06 09:47:26 -08:00
Jeff Squyres
d13034d0b0 fortran: add configury to check for storage_size()
gfortran 4.8 does not support storage_size() on all relevant types
that we need.  So add a configure test to check and see if the
compiler's storage_size() intrinsic supports enough types for us to do
MPI_SIZEOF.

Also remove an accidentally redundant check for fortran INTERFACE.

Refs trac:4917

This commit was SVN r32790.

The following Trac tickets were found above:
  Ticket 4917 --> https://svn.open-mpi.org/trac/ompi/ticket/4917
2014-09-25 00:17:29 +00:00
Jeff Squyres
040611556f fortran: don't complain about script args if we're not building fortran
refs trac:4917

This commit was SVN r32766.

The following Trac tickets were found above:
  Ticket 4917 --> https://svn.open-mpi.org/trac/ompi/ticket/4917
2014-09-20 01:22:40 +00:00
Jeff Squyres
d7eaca83fa Fortran: Fix MPI_SIZEOF. What a disaster. :-(
What started as a simple ticket ended up reaching the way up to the
MPI Forum.
    
It turns out that we are supposed to have MPI_SIZEOF for all Fortran
interfaces: mpif.h, the mpi module, and the mpi_f08 module.
    
It further turns out that to properly support MPI_SIZEOF, your Fortran
compiler *has* support the INTERFACE keyword and ISO_FORTRAN_ENV.  We
can't use "ignore TKR" functionality, because the whole point of
MPI_SIZEOF is that the implementation knows what type was passed to it
("ignore TKR" functionality, by definition, throws that information
away).  Hence, we have to have an MPI_SIZEOF interface+implementation
for all intrinsic types, kinds, and ranks.

This commit therefore adds a perl script that generates both the
interfaces and implementations for MPI_SIZEOF in each of mpif.h, the
mpi module, and mpi_f08 module (yay consolidation!).

The perl script uses the results of some new configure tests:

* check if the Fortran compiler supports the INTERFACE keyword
* check if the Fortran compiler supports ISO_FORTRAN_ENV
* find the max array rank (i.e., dimension) that the compiler supports

If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV,
then we'll build the MPI_SIZEOF interfaces.  If not, we'll skip
MPI_SIZEOF in mpif.h and the mpi module.  Note that we won't build the
mpi_f08 module -- to include the MPI_SIZEOF interfaces -- if the
Fortran compiler doesn't support INTERFACE, ISO_FORTRAN_ENV, and a
whole bunch of ther modern Fortran stuff.

Since MPI_SIZEOF interfaces are now generated by the perl script, this
commit also removes all the old MPI_SIZEOF implementations (which were
laden with a zillion #if blocks).

cmr=v1.8.3

This commit was SVN r32764.
2014-09-19 13:44:52 +00:00
Ralph Castain
d50c8ba65f Per patch from Gilles, cleanup some errors that surface when building with PGI. Verified by Tetsuya, reviewed okay by Jeff.
RM-approved

cmr=v1.8.3:reviewer=ompi-gk1.8

This commit was SVN r32745.
2014-09-16 19:07:02 +00:00
Jeff Squyres
134c527f18 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
2014-06-19 13:44:08 +00:00
Jeff Squyres
fa764c1567 Fortran: add missing implementation of win_allocate_shared and win_shared_query
Thanks to Michael Rachner for pointing out the issue.

cmr=v1.8.2:ticket=trac:4736

This commit was SVN r32042.

The following Trac tickets were found above:
  Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
2014-06-19 13:38:25 +00:00
George Bosilca
750c6c7861 Update the UTK copyright on the topology related files.
This commit was SVN r31805.
2014-05-16 22:23:52 +00:00
Jeff Squyres
0fac9781b3 Assume we always have fortran PROCEDURE support
Per #4590, we now ''require'' the PROCEDURE keyword support in Fortran
for the mpi_f08 module.  So if the Fortran compiler doesn't support
it, then we won't build the mpi_f08 module.

Fixes trac:4590

This commit was SVN r31588.

The following Trac tickets were found above:
  Ticket 4590 --> https://svn.open-mpi.org/trac/ompi/ticket/4590
2014-05-01 18:18:38 +00:00
Jeff Squyres
5551e78275 fortran: Separate pre-defined attribute and conversion interfaces
Differentiate the pre-defined attribute and conversion interfaces into
those with INTEGER handles and those with TYPE(MPI_*) handles.

Refs trac:4157

cmr=v1.8.1:ticket=trac:4512

This commit was SVN r31372.

The following Trac tickets were found above:
  Ticket 4157 --> https://svn.open-mpi.org/trac/ompi/ticket/4157
  Ticket 4512 --> https://svn.open-mpi.org/trac/ompi/ticket/4512
2014-04-11 21:01:16 +00:00
Jeff Squyres
12e82daa78 mpi_f08: Fix param name and string length for MPI_GET_LIBRARY_VERSION
Junchao Zhang pointed out to me that we had the wrong parameter name
and string length specification for the "version" parameter.  This
matters because Fortran allows passing by parameter name
(vs. parameter ordering).  Specifically, we had the interface as:

{{{
subroutine MPI_Get_library_version_f08(name,resultlen,ierror)
   character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name
...etc.
}}}

but it should be:

{{{
subroutine MPI_Get_library_version_f08(version,resultlen,ierror)
   character(len=MPI_MAX_LIBRARY_VERSION_STRING), intent(out) :: version
...etc.
}}}

Thankfully, MPI_MAX_PROCESSOR_NAME and MPI_MAX_LIBRARY_VERSION_STRING
are both 255 in OMPI, so there's no ABI issue caused by changing the
length from MMPN --> MMLVS.

The ABI is also unaffected by the parameter name change: if you
compile/link an MPI application calling MPI_GET_LIBRARY_VERSION with
1.8, it'll still run-time link with this change.

However, if an MPI program compiled using parameter name passing with
the old/incorrect parameter name ("name"), it won't be able to compile
with the new/correct parameter name ("version").  But this will only
happen for an incorrect MPI application (because the MPI-3 mandated
parameter name is "version", not "name"), so they deserve what they
get.

cmr=v1.8.1:reviewer=dgoodell

This commit was SVN r31365.
2014-04-10 14:45:36 +00:00
George Bosilca
95a4f219ea This commit fixes some of the Coverity reported warnings. I addressed
some of the collective modules, the shared memory and the profiling
interface. I left out VT, dynamic fcoll and seq rmaps.

cmr=v1.8.1:reviewer=jsquyres:subject=silence Coverity reported warnings

This commit was SVN r31309.
2014-04-06 18:23:49 +00:00
Nathan Hjelm
595a6e94e6 Fix typos in r31260
Also added some missing values and sentinels.

cmr=v1.8:ticket=trac:4470

This commit was SVN r31263.

The following SVN revision numbers were found above:
  r31260 --> open-mpi/ompi@69036437b7

The following Trac tickets were found above:
  Ticket 4470 --> https://svn.open-mpi.org/trac/ompi/ticket/4470
2014-03-27 22:34:28 +00:00
Jeff Squyres
24f7bd327e MPI-3: Add missing MPI_Comm_get|set_info functions
Thanks to Lisandro Dalcin for pointing out the issue.

cmr=v1.8:reviewer=hjelmn

This commit was SVN r31262.
2014-03-27 21:41:59 +00:00
Nathan Hjelm
69036437b7 Add missing MPI_WEIGHTS_EMPTY constant
cmr=v1.8:reviewer=jsquyres

This commit was SVN r31260.
2014-03-27 20:59:52 +00:00
Jeff Squyres
8a5a832085 Refs trac:4372: Addendum to Fortran API fixes for the RMA functions
These parameters should not be marked as INTENT(OUT) (they aren't in
the MPI-3 standard).

This commit was SVN r31048.

The following Trac tickets were found above:
  Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
2014-03-12 19:59:04 +00:00
Jeff Squyres
b8cd2878e7 Fix more pragma argument names to match dummy argument names.
Issue found by Absoft MTT runs.

cmr=v1.7.5:ticket=trac:4372

This commit was SVN r31028.

The following Trac tickets were found above:
  Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
2014-03-12 14:30:51 +00:00
Jeff Squyres
f3b5670dce Fix pragma argument names to match dummy argument names.
Issue found by Absoft MTT runs.

cmr=v1.7.5:ticket=trac:4372

This commit was SVN r31027.

The following Trac tickets were found above:
  Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
2014-03-12 14:27:43 +00:00
Nathan Hjelm
c4de1aa1ce osc: add fortran bindings for new RMA function
I have only checked that these bindings compile without warnings. They
appear to work with both intel's compilers and gfortran.

cmr=v1.7.5:reviewer=jsquyres

This commit was SVN r31010.
2014-03-11 23:02:27 +00:00
Jeff Squyres
db41d749c1 Remove ASYNCHRONOUS from the ignore TKR mpi_f08 module.
It turns out that ASYNCHRONOUS should not be used with ignore TKR
dummy parameters (some compilers will [correctly] warn about this).

Many thanks to Rolf Rabenseifner and Christoph Niethammer, who noticed
the problem.

Submitted by Rolf Rabenseifner, reviewed by Jeff.

cmr=v1.7.5:reviewer=ompi-rm1.7:subject=Remove ASYNCHRONOUS from the ignore TKR mpi_f08 module.

This commit was SVN r30665.
2014-02-11 13:19:30 +00:00
Jeff Squyres
caaab7e8a3 Fix Fortran delcarations of MPI_SUBARRAYS_SUPPORTED and MPI_ASYNC_PROTECTES_NONBLOCKING
Ensure that these two flags are in all of mpif.h, the mpi module, and
the mpi_f08 module.  Thanks to Rolf Rabenseifner for pointing out the
issue.

cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r30519.
2014-01-31 15:22:12 +00:00
Jeff Squyres
772afc760e Shift .h files from one Makefile.am to another to enable "make dist"
cmr=v1.7.4:ticket=4162

This commit was SVN r30384.

The following Trac tickets were found above:
  Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
2014-01-23 02:00:05 +00:00
Jeff Squyres
7515d2caa9 Add Emacs mode at the top of the file
cmr=v1.7.5:ticket=4163

This commit was SVN r30381.

The following Trac tickets were found above:
  Ticket 4163 --> https://svn.open-mpi.org/trac/ompi/ticket/4163
2014-01-23 01:32:26 +00:00
Jeff Squyres
aa0ceaa78b Move common code to ompi/mpi/fortran/base.
The attribute and conversion callback subroutine interfaces
are used by all 3 modules, and belong in the fortran/base directory,
not the directory of a specific module.

Also clean up some comments.

cmr=v1.7.4:ticket=4162

This commit was SVN r30378.

The following Trac tickets were found above:
  Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
2014-01-23 01:28:04 +00:00