|
Packit |
0848f5 |
! This file created from test/mpi/f77/rma/c2f2cwinf.f with f77tof90
|
|
Packit |
0848f5 |
! -*- Mode: Fortran; -*-
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! (C) 2003 by Argonne National Laboratory.
|
|
Packit |
0848f5 |
! See COPYRIGHT in top-level directory.
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! Test just MPI-RMA
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
program main
|
|
Packit |
0848f5 |
use mpi
|
|
Packit |
0848f5 |
integer errs, toterrs, ierr
|
|
Packit |
0848f5 |
integer wrank, wsize
|
|
Packit |
0848f5 |
integer wgroup, info, req, win
|
|
Packit |
0848f5 |
integer result
|
|
Packit |
0848f5 |
integer c2fwin
|
|
Packit |
0848f5 |
! The integer asize must be of ADDRESS_KIND size
|
|
Packit |
0848f5 |
integer (kind=MPI_ADDRESS_KIND) asize
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
errs = 0
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
call mpi_init( ierr )
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! Test passing a Fortran MPI object to C
|
|
Packit |
0848f5 |
call mpi_comm_rank( MPI_COMM_WORLD, wrank, ierr )
|
|
Packit |
0848f5 |
asize = 0
|
|
Packit |
0848f5 |
call mpi_win_create( 0, asize, 1, MPI_INFO_NULL, &
|
|
Packit |
0848f5 |
& MPI_COMM_WORLD, win, ierr )
|
|
Packit |
0848f5 |
errs = errs + c2fwin( win )
|
|
Packit |
0848f5 |
call mpi_win_free( win, ierr )
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! Test using a C routine to provide the Fortran handle
|
|
Packit |
0848f5 |
call f2cwin( win )
|
|
Packit |
0848f5 |
! no info, in comm world, created with no memory (base address 0,
|
|
Packit |
0848f5 |
! displacement unit 1
|
|
Packit |
0848f5 |
call mpi_win_free( win, ierr )
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
! Summarize the errors
|
|
Packit |
0848f5 |
!
|
|
Packit |
0848f5 |
call mpi_allreduce( errs, toterrs, 1, MPI_INTEGER, MPI_SUM, &
|
|
Packit |
0848f5 |
& MPI_COMM_WORLD, ierr )
|
|
Packit |
0848f5 |
if (wrank .eq. 0) then
|
|
Packit |
0848f5 |
if (toterrs .eq. 0) then
|
|
Packit |
0848f5 |
print *, ' No Errors'
|
|
Packit |
0848f5 |
else
|
|
Packit |
0848f5 |
print *, ' Found ', toterrs, ' errors'
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
endif
|
|
Packit |
0848f5 |
|
|
Packit |
0848f5 |
call mpi_finalize( ierr )
|
|
Packit |
0848f5 |
end
|
|
Packit |
0848f5 |
|