Except that LEN=* is not permitted with Bind(C), either. For Bind(C), using CHARACTER(len=1),dimension(*) would be fine, though.
Tobias, If I understand TS29113 correctly, then your sentence - is valid for Fortran 2003 and 2008 - is not correct for TS29113: TS29113 allows CHARACTER(LEN=*). As you wrote on March 18:
TS 29113 allows in addtion len=* and len=: for dummy arguments of BIND(C) procedures. However, that doesn't help for LEN=MPI_MAX_OBJECT_NAME, either. (For len=*/len=:, TS 29113 requires that an array descriptor is used; cf. "8.7 Interoperability of procedures and procedure interfaces", p.31, (6)(b) and the paragraph below (6)(d).).
BIND(C) was never expected to be usable with MPI-3.0 before TS 29113 is available (in any of the three Fortran support methods). Best regards Rolf ----- Original Message -----
From: "Rolf Rabenseifner" <[email protected]> To: "Tobias Burnus" <[email protected]> Cc: "MPI-3 Fortran working group" <[email protected]>, "Hubert Ritzdorf" <[email protected]>, "Martin Schulz" <[email protected]> Sent: Thursday, March 28, 2013 8:19:38 PM Subject: Re: [MPI3 Fortran] [Mpi-comments] MPI 3.0: Fortran 2008 interface - issue with the LOGICAL kind Good.
Then the very short summary should be okay:
Due to the 22 routines with LEN=*, BIND(C) on the MPI API level should be fully removed. BIND(C) makes sense only on this internal interface, which should be optional.
Best regards and happy easter Rolf
----- Original Message -----
From: "Tobias Burnus" <[email protected]> To: "Rolf Rabenseifner" <[email protected]> Cc: "MPI-3 Fortran working group" <[email protected]>, [email protected], "Craig Rasmussen" <[email protected]>, "Hubert Ritzdorf" <[email protected]>, "Martin Schulz" <[email protected]>, "Jeff Squyres (jsquyres)" <[email protected]> Sent: Thursday, March 28, 2013 8:15:45 PM Subject: Re: [MPI3 Fortran] [Mpi-comments] MPI 3.0: Fortran 2008 interface - issue with the LOGICAL kind Rolf Rabenseifner wrote:
Can I summarize your analysis to: - 2 routines with CHARACTER(LEN=*),INTENT(OUT) arguments These routines works with non-BIND(C) and BIND(C), because the application must provide a string-buffer that is large enough.
Except that LEN=* is not permitted with Bind(C), either. For Bind(C), using CHARACTER(len=1),dimension(*) would be fine, though.
Tobias
-- Dr. Rolf Rabenseifner . . . . . . . . . .. email [email protected] High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307) _______________________________________________ mpi3-fortran mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
-- Dr. Rolf Rabenseifner . . . . . . . . . .. email [email protected] High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)