Jeff,

Actually, we have a functional test suite that used to pass for these 
types and it fails now with v2.x. So I thought it was a regression.

But from what you're saying, the new standard doesn't have a strong 
requirement on LOGICAL and CHARACTER. So I really don't mind, since I 
don't know whether these types are widely used in client applications. I 
guess no?

Regards,


On 04/15/2016 02:34 PM, Jeff Squyres (jsquyres) wrote:
> 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
>
>

-- 
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

Reply via email to