Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] openmpi 1.7.4rc1 and f08 interface
From: Åke Sandgren (ake.sandgren_at_[hidden])
Date: 2014-01-27 09:28:33


I just started trying to build 1.7.4rc1 with the new Pathscale EkoPath5
compiler and stumbled onto this.

When building without --enable-mpi-f08-subarray-prototype i get into
problems with ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h

It defines
ompi_comm_create_keyval_f(comm_copy_attr_fn,comm_delete_attr_fn, &
                                      comm_keyval,extra_state,ierror) &
    BIND(C, name="ompi_comm_create_keyval_f")
    use :: mpi_f08_types, only : MPI_ADDRESS_KIND
    use :: mpi_f08_interfaces_callbacks, only : MPI_Comm_copy_attr_function
    use :: mpi_f08_interfaces_callbacks, only :
    implicit none
    OMPI_PROCEDURE(MPI_Comm_copy_attr_function) :: comm_copy_attr_fn
    OMPI_PROCEDURE(MPI_Comm_delete_attr_function) :: comm_delete_attr_fn
    INTEGER, INTENT(OUT) :: comm_keyval
    INTEGER, INTENT(OUT) :: ierror
end subroutine ompi_comm_create_keyval_f

But at least the F2k3 specs says that
"Each dummy argument of an interoperable procedure or interface must be
an interoperable variable or an interoperable procedure."

The code above violates that since comm_copy_attr_fn is not
interoperable as far as i can see.
If I'm reading this wrong then please let me know...

The only definition of OMPI_PROCEDURE i can find is this one in

#define OMPI_PROCEDURE(name) PROCEDURE(name)

I currently don't have any F2k8 specs to check so if this is changed
there I'll try to get this sorted in the compiler.

Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden
Internet: ake_at_[hidden]   Phone: +46 90 7866134 Fax: +46 90 7866126
Mobile: +46 70 7716134 WWW: