Hi,
Here is the sample program snippet:
--------
#include "intrinsic_sizes.h"
#include "redef.h"
module module1_m
use mod1_m, only: some__example2
use mod2_m, only: some__example3
use mod3_m, only: some__example4
use mpi
use, intrinsic :: iso_c_binding
implicit none
private
public :: some__example___memory
type, public, extends(some__example5) :: some__example6
logical, public :: some__example7 = .False.
class(some__example8), private, pointer :: some__example9
contains
...
...
end type some__example6
contains
....
some_pure_functions here
....
subroutine recv(this,lmb)
class(some__example6), intent(inout) :: this
integer, intent(in) :: lmb(2,2)
integer :: cs3, ierr
integer(kind=C_LONG) :: size
! receive only from buffer at different process
if(this%is_bf_referred) return
cs3=this%uspecifier%get_recv_buff_3rd_dim_size(this%xb,this%vwb,lmb)
if(cs3.eq.0) return ! nothing to recv
size = this%size_dim(this%gi)*this%size_dim(this%gj)*cs3
if(this%is_exchange_off) then
call this%update_stats(size)
this%bf(:,:,1:cs3) = cmplx(0.,0.)
else
call MPI_Irecv(this%bf(:,:,1:cs3),size,MPI_COMPLEX_TYPE,&
this%nrank,this%tag,this%comm_xvw,this%request,ierr)
end if
end subroutine recv
Hope this helps.
On Mon, Aug 19, 2019 at 3:21 PM Gilles Gouaillardet via users <
[email protected]> wrote:
> Thanks,
>
> and your reproducer is ?
>
> Cheers,
>
> Gilles
>
> On Mon, Aug 19, 2019 at 6:42 PM Sangam B via users
> <[email protected]> wrote:
> >
> > Hi,
> >
> > OpenMPI is configured as follows:
> >
> > export CC=`which clang`
> > export CXX=`which clang++`
> > export FC=`which flang`
> > export F90=`which flang`
> >
> > ../configure --prefix=/sw/openmpi/3.1.1/aocc20hpcx210-mpifort
> --enable-mpi-fortran --enable-mpi-cxx --without-psm --without-psm2
> --without-knem --without-libfabric --without-lsf --with-verbs=/usr
> --with-mxm=/sw/hpcx/hpcx-v2.1.0-gcc-MLNX_OFED_LINUX-4.3-1.0.1.0-redhat7.4-x86_64/mxm
> >
> >
> > ..
> >
> > On Mon, Aug 19, 2019 at 2:43 PM Sangam B <[email protected]> wrote:
> >>
> >> Hi,
> >>
> >> I get following error if the application is compiled with openmpi-3.1.1:
> >>
> >> mpifort -O3 -march=native -funroll-loops -finline-aggressive -flto
> -J./bin/obj_amd64aocc20 -std=f2008 -O3 -march=native -funroll-loops
> -finline-aggressive -flto -fallow-fortran-gnu-ext -ffree-form
> -fdefault-real-8 example_program.F90
> >> F90-S-0155-Could not resolve generic procedure mpi_irecv (
> example_program.F90 : 97)
> >> 0 inform, 0 warnings, 1 severes, 0 fatal for recv
> >>
> >> Following is the line causing this error:
> >>
> >> call MPI_Irecv(this%bf(:,:,1:cs3),size,MPI_COMPLEX_TYPE,&
> >> this%nrank,this%tag,this%comm_xvw,this%request,ierr)
> >>
> >> The program has following module mentioned in the beginning:
> >> use mpi
> >>
> >> The openmpi has following module files in lib folder:
> >> $ ls *.mod
> >> mpi_ext.mod mpi_f08_ext.mod
> mpi_f08_interfaces.mod mpi_f08_types.mod pmpi_f08_interfaces.mod
> >> mpi_f08_callbacks.mod mpi_f08_interfaces_callbacks.mod mpi_f08.mod
> mpi.mod
> >>
> >> The same program works with Intel MPI (gcc/intel as base compilers).
> >> But fails with OpenMPI, whether gcc-8.1.0 or AOCC are used as base
> compilers. What could be the reason for it?
> >>
> >> ..
> >
> > _______________________________________________
> > users mailing list
> > [email protected]
> > https://lists.open-mpi.org/mailman/listinfo/users
> _______________________________________________
> users mailing list
> [email protected]
> https://lists.open-mpi.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
[email protected]
https://lists.open-mpi.org/mailman/listinfo/users