[MPIWG Fortran] [Mpi-comments] MPI_Comm_spawn_multiple: parameter description and Fortran bindings
Bill Long
longb at cray.com
Thu Feb 8 16:07:22 CST 2018
> On Feb 8, 2018, at 3:44 PM, Jeff Squyres (jsquyres) <jsquyres at cisco.com> wrote:
>
>>
>> And the Fortran binding is
>>
>> MPI_COMM_SPAWN_MULTIPLE(COUNT, ARRAY_OF_COMMANDS, ...)
>> INTEGER COUNT
>> CHARACTER*(*) ARRAY_OF_COMMANDS(*)
>>
Note that the character*(*) syntax is archaic (as of 25+ years ago). The normal way of writing this is character(*).
>>
>> Intuitively, it seems obvious that 'array_of_commands' is an array of 'count' commands.
That is what I would assume. The user would be responsible for declaring the array elements large enough to hold the longest command. (All the elements of the array have the same length).
>>
>> That being said, the standard does not state that, and it is unclear whether 'array_of_commands' should be
>>
>> NULL-terminated (so to speak) or not.
>>
Fortran characters are NOT null terminated.
>>
>> Back to the Fortran binding, the following prototype, which is somehow consistent with 'array_of_argv',
>>
>> could (help to) clear the confusion. The same comments also apply to the Fortran 2008 binding.
>>
>>
>> CHARACTER*(*) ARRAY_OF_COMMANDS(COUNT)
This is also fine, and clearer in terms of the expected minimum size of ARRAY_OF_COMMANDS.
Cheers,
Bill
>>
>>
Bill Long longb at cray.com
Principal Engineer, Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9143
Cray Inc./ 2131 Lindau Lane/ Suite 1000/ Bloomington, MN 55425
More information about the mpiwg-fortran
mailing list