Blame test/mpi/f90/rma/c2f2cwinf90.f90

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