Nadia --

I believe that the character and logical types are not in this script already 
because the description of MPI_SIZEOF in MPI-3.1 says that the input choice 
buffer parameter is:

IN x     a Fortran variable of numeric intrinsic type (choice)

As I understand it (and my usual disclaimer here: I am *not* a Fortran expert), 
CHARACTER and LOGICAL types are not numeric in Fortran.

However, we could add such interfaces as an extension.

I just checked MPICH 3.2, and they *do* include MPI_SIZEOF interfaces for 
CHARACTER and LOGICAL, but they are missing many of the other MPI_SIZEOF 
interfaces that we have in OMPI.  Meaning: OMPI and MPICH already diverge 
wildly on MPI_SIZEOF.  :-\

I guess I don't have a strong opinion here.  If you file a PR for this patch, I 
won't object.  :-)


> On Apr 15, 2016, at 3:22 AM, DERBEY, NADIA <nadia.der...@atos.net> wrote:
> 
> Hi,
> 
> The following trivial example doesn't compile because of 2 missing types 
> in the MPI_SIZEOF subroutines (in mpi_sizeof.f90).
> 
> [derbeyn@btp0 test]$ cat mpi_sizeof.f90
>           program main
> !        use mpi
>           include 'mpif.h'
> 
>           integer ierr, sz, mpisize
>           real r1
>           integer i1
>           character ch1
>           logical l1
> 
>           call MPI_INIT(ierr)
>           call MPI_SIZEOF(r1, sz, ierr)
>           call MPI_SIZEOF(i1, sz, ierr)
>           call MPI_SIZEOF(l1, sz, ierr)
>           call MPI_SIZEOF(ch1, sz, ierr)
>           call MPI_FINALIZE(ierr)
> 
>           end
> [derbeyn@btp0 test]$ mpif90 -o mpi_sizeof mpi_sizeof.f90
> mpi_sizeof.f90(14): error #6285: There is no matching specific 
> subroutine for this generic subroutine call.   [MPI_SIZEOF]
>           call MPI_SIZEOF(ch1, sz, ierr)
> -------------^
> mpi_sizeof.f90(15): error #6285: There is no matching specific
> subroutine for this generic subroutine call.   [MPI_SIZEOF]
>           call MPI_SIZEOF(l1, sz, ierr)
> -------------^
> compilation aborted for mpi_sizeof.f90 (code 1)
> 
> 
> This problem happens both on master and v2.x. The following patch seems
> to solve the issue:
> 
> diff --git a/ompi/mpi/fortran/base/gen-mpi-sizeof.pl
> b/ompi/mpi/fortran/base/gen-mpi-sizeof.pl
> index 5ea3dca3..a2a99924 100755
> --- a/ompi/mpi/fortran/base/gen-mpi-sizeof.pl
> +++ b/ompi/mpi/fortran/base/gen-mpi-sizeof.pl
> @@ -145,6 +145,9 @@ sub generate {
>    # Main
> 
> #############################################################################
> 
> +queue_sub("character", "char", "character_kinds");
> +queue_sub("logical", "logical", "logical_kinds");
> +
>    for my $size (qw/8 16 32 64/) {
>        queue_sub("integer(int${size})", "int${size}", "int${size}");
>    }
> 
> Regards,
> Nadia
> 
> -- 
> Nadia Derbey - B1-387
> HPC R&D - MPI
> Tel: +33 4 76 29 77 62
> nadia.der...@atos.net
> 1 Rue de Provence BP 208
> 38130 Echirolles Cedex, France
> www.atos.com
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2016/04/18765.php


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to