From 0fcd96486a5a433430a62a1bbfc27f70cfa42611 Mon Sep 17 00:00:00 2001 From: KAWASHIMA Takahiro Date: Fri, 21 Apr 2017 22:18:41 +0900 Subject: [PATCH] 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 --- ompi/mpi/fortran/base/gen-mpi-mangling.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ompi/mpi/fortran/base/gen-mpi-mangling.pl b/ompi/mpi/fortran/base/gen-mpi-mangling.pl index 96294f9fa9..94e3b24e64 100755 --- a/ompi/mpi/fortran/base/gen-mpi-mangling.pl +++ b/ompi/mpi/fortran/base/gen-mpi-mangling.pl @@ -77,13 +77,13 @@ $fortran->{weights_empty} = { $fortran->{argv_null} = { c_type => "char *", c_name => "mpi_fortran_argv_null", - f_type => "integer", + f_type => "character, dimension(1)", f_name => "MPI_ARGV_NULL", }; $fortran->{argvs_null} = { c_type => "char *", c_name => "mpi_fortran_argvs_null", - f_type => "integer", + f_type => "character, dimension(1, 1)", f_name => "MPI_ARGVS_NULL", };