Blame test/mpi/f90/profile/profile1f90.f90

Packit 0848f5
! This file created from test/mpi/f77/profile/profile1f.f with f77tof90
Packit 0848f5
! -*- Mode: Fortran; -*-
Packit 0848f5
!
Packit 0848f5
!  (C) 2013 by Argonne National Laboratory.
Packit 0848f5
!      See COPYRIGHT in top-level directory.
Packit 0848f5
!
Packit 0848f5
       program main
Packit 0848f5
       use mpi
Packit 0848f5
       integer ierr
Packit 0848f5
       integer smsg(3), rmsg(3), toterrs, wsize, wrank
Packit 0848f5
       common /myinfo/ calls, amount, rcalls, ramount
Packit 0848f5
       integer calls, amount, rcalls, ramount
Packit 0848f5
Packit 0848f5
       toterrs = 0
Packit 0848f5
       call mpi_init( ierr )
Packit 0848f5
       call init_counts()
Packit 0848f5
       call mpi_comm_rank( MPI_COMM_WORLD, wrank, ierr )
Packit 0848f5
       call mpi_comm_size( MPI_COMM_WORLD, wsize, ierr )
Packit 0848f5
Packit 0848f5
       if (wrank .eq. 0) then
Packit 0848f5
           smsg(1) = 3
Packit 0848f5
           call mpi_send( smsg, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, ierr )
Packit 0848f5
       else if (wrank .eq. 1) then
Packit 0848f5
          call mpi_recv( rmsg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &
Packit 0848f5
      &         MPI_STATUS_IGNORE, ierr ) 
Packit 0848f5
          if (rmsg(1) .ne. 3) then
Packit 0848f5
             toterrs = toterrs + 1
Packit 0848f5
             print *, "Unexpected received value ", rmsg(1)
Packit 0848f5
          endif
Packit 0848f5
       endif
Packit 0848f5
!
Packit 0848f5
!     check that we used the profiling versions of the routines
Packit 0848f5
       toterrs = 0
Packit 0848f5
       if (wrank .eq. 0) then
Packit 0848f5
          if (calls.ne.1) then
Packit 0848f5
             toterrs = toterrs + 1
Packit 0848f5
             print *, "Sender calls is ", calls
Packit 0848f5
          endif
Packit 0848f5
          if (amount.ne.1) then
Packit 0848f5
             toterrs = toterrs + 1
Packit 0848f5
             print *, "Sender amount is ", amount
Packit 0848f5
          endif
Packit 0848f5
       else if (wrank .eq. 1) then
Packit 0848f5
          if (rcalls.ne.1) then
Packit 0848f5
             toterrs = toterrs + 1
Packit 0848f5
             print *, "Receiver calls is ", rcalls
Packit 0848f5
          endif
Packit 0848f5
          if (ramount.ne.1) then
Packit 0848f5
             toterrs = toterrs + 1
Packit 0848f5
             print *, "Receiver amount is ", ramount
Packit 0848f5
          endif
Packit 0848f5
       endif
Packit 0848f5
Packit 0848f5
       call mpi_allreduce( MPI_IN_PLACE, toterrs, 1, MPI_INT, 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
!
Packit 0848f5
       subroutine mpi_send( smsg, count, dtype, dest, tag, comm, ierr )
Packit 0848f5
       use mpi
Packit 0848f5
       integer count, dtype, dest, tag, comm, ierr
Packit 0848f5
       integer smsg(count)
Packit 0848f5
       common /myinfo/ calls, amount, rcalls, ramount
Packit 0848f5
       integer calls, amount, rcalls, ramount
Packit 0848f5
!
Packit 0848f5
       calls = calls + 1
Packit 0848f5
       amount = amount + count
Packit 0848f5
       call pmpi_send( smsg, count, dtype, dest, tag, comm, ierr )
Packit 0848f5
       return
Packit 0848f5
       end
Packit 0848f5
!
Packit 0848f5
      subroutine mpi_recv( rmsg, count, dtype, src, tag, comm, status, &
Packit 0848f5
      &     ierr ) 
Packit 0848f5
       use mpi
Packit 0848f5
       integer count, dtype, src, tag, comm, status(MPI_STATUS_SIZE), &
Packit 0848f5
      &      ierr 
Packit 0848f5
       integer rmsg(count)
Packit 0848f5
       common /myinfo/ calls, amount, rcalls, ramount
Packit 0848f5
       integer calls, amount, rcalls, ramount
Packit 0848f5
       rcalls = rcalls + 1
Packit 0848f5
       ramount = ramount + 1
Packit 0848f5
       call pmpi_recv( rmsg, count, dtype, src, tag, comm, status, ierr &
Packit 0848f5
      &      ) 
Packit 0848f5
       return
Packit 0848f5
       end
Packit 0848f5
!
Packit 0848f5
       subroutine init_counts()
Packit 0848f5
       common /myinfo/ calls, amount, rcalls, ramount
Packit 0848f5
       integer calls, amount, rcalls, ramount
Packit 0848f5
       calls = 0
Packit 0848f5
       amount = 0
Packit 0848f5
       rcalls = 0
Packit 0848f5
       ramount = 0
Packit 0848f5
       end
Packit 0848f5
!
Packit 0848f5
       subroutine mpi_pcontrol( ierr )
Packit 0848f5
       integer ierr
Packit 0848f5
       return
Packit 0848f5
       end