|
Packit Service |
c5cf8c |
! This file created from f77/spawn/namepubf.f with f77tof90
|
|
Packit Service |
c5cf8c |
! -*- Mode: Fortran; -*-
|
|
Packit Service |
c5cf8c |
!
|
|
Packit Service |
c5cf8c |
! (C) 2003 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
! See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
!
|
|
Packit Service |
c5cf8c |
program main
|
|
Packit Service |
c5cf8c |
use mpi
|
|
Packit Service |
c5cf8c |
integer errs
|
|
Packit Service |
c5cf8c |
character*(MPI_MAX_PORT_NAME) port_name
|
|
Packit Service |
c5cf8c |
character*(MPI_MAX_PORT_NAME) port_name_out
|
|
Packit Service |
c5cf8c |
character*(256) serv_name
|
|
Packit Service |
c5cf8c |
integer merr, mclass
|
|
Packit Service |
c5cf8c |
character*(MPI_MAX_ERROR_STRING) errmsg
|
|
Packit Service |
c5cf8c |
integer msglen, rank
|
|
Packit Service |
c5cf8c |
integer ierr
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
errs = 0
|
|
Packit Service |
c5cf8c |
call MTest_Init( ierr )
|
|
Packit Service |
c5cf8c |
call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr )
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
! Note that according to the MPI standard, port_name must
|
|
Packit Service |
c5cf8c |
! have been created by MPI_Open_port. For current testing
|
|
Packit Service |
c5cf8c |
! purposes, we'll use a fake name. This test should eventually use
|
|
Packit Service |
c5cf8c |
! a valid name from Open_port
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
port_name = 'otherhost:122'
|
|
Packit Service |
c5cf8c |
serv_name = 'MyTest'
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
call MPI_Comm_set_errhandler( MPI_COMM_WORLD, MPI_ERRORS_RETURN, &
|
|
Packit Service |
c5cf8c |
& ierr )
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
if (rank .eq. 0) then
|
|
Packit Service |
c5cf8c |
merr = -1
|
|
Packit Service |
c5cf8c |
call MPI_Publish_name( serv_name, MPI_INFO_NULL, port_name, &
|
|
Packit Service |
c5cf8c |
& merr )
|
|
Packit Service |
c5cf8c |
if (merr .ne. MPI_SUCCESS) then
|
|
Packit Service |
c5cf8c |
errs = errs + 1
|
|
Packit Service |
c5cf8c |
call MPI_Error_string( merr, errmsg, msglen, ierr )
|
|
Packit Service |
c5cf8c |
print *, "Error in Publish_name ", errmsg(1:msglen)
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
call MPI_Barrier(MPI_COMM_WORLD, ierr )
|
|
Packit Service |
c5cf8c |
call MPI_Barrier(MPI_COMM_WORLD, ierr )
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
merr = -1
|
|
Packit Service |
c5cf8c |
call MPI_Unpublish_name( serv_name, MPI_INFO_NULL, port_name, &
|
|
Packit Service |
c5cf8c |
& merr)
|
|
Packit Service |
c5cf8c |
if (merr .ne. MPI_SUCCESS) then
|
|
Packit Service |
c5cf8c |
errs = errs + 1
|
|
Packit Service |
c5cf8c |
call MPI_Error_string( merr, errmsg, msglen, ierr )
|
|
Packit Service |
c5cf8c |
print *, "Error in Unpublish name ", errmsg(1:msglen)
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
call MPI_Barrier(MPI_COMM_WORLD, ierr )
|
|
Packit Service |
c5cf8c |
merr = -1
|
|
Packit Service |
c5cf8c |
call MPI_Lookup_name( serv_name, MPI_INFO_NULL, port_name_out, &
|
|
Packit Service |
c5cf8c |
& merr)
|
|
Packit Service |
c5cf8c |
if (merr .ne. MPI_SUCCESS) then
|
|
Packit Service |
c5cf8c |
errs = errs + 1
|
|
Packit Service |
c5cf8c |
call MPI_Error_string( merr, errmsg, msglen, ierr )
|
|
Packit Service |
c5cf8c |
print *, "Error in Lookup name", errmsg(1:msglen)
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
if (port_name .ne. port_name_out) then
|
|
Packit Service |
c5cf8c |
errs = errs + 1
|
|
Packit Service |
c5cf8c |
print *, "Lookup name returned the wrong value (", &
|
|
Packit Service |
c5cf8c |
& port_name_out, "), expected (", port_name, ")"
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
call MPI_Barrier(MPI_COMM_WORLD, ierr )
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
call MPI_Barrier(MPI_COMM_WORLD, ierr )
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
merr = -1
|
|
Packit Service |
c5cf8c |
call MPI_Lookup_name( serv_name, MPI_INFO_NULL, port_name_out, &
|
|
Packit Service |
c5cf8c |
& merr )
|
|
Packit Service |
c5cf8c |
if (merr .eq. MPI_SUCCESS) then
|
|
Packit Service |
c5cf8c |
errs = errs + 1
|
|
Packit Service |
c5cf8c |
print *, "Lookup name returned name after it was unpublished"
|
|
Packit Service |
c5cf8c |
else
|
|
Packit Service |
c5cf8c |
! Must be class MPI_ERR_NAME
|
|
Packit Service |
c5cf8c |
call MPI_Error_class( merr, mclass, ierr )
|
|
Packit Service |
c5cf8c |
if (mclass .ne. MPI_ERR_NAME) then
|
|
Packit Service |
c5cf8c |
errs = errs + 1
|
|
Packit Service |
c5cf8c |
call MPI_Error_string( merr, errmsg, msglen, ierr )
|
|
Packit Service |
c5cf8c |
print *, "Lookup name returned the wrong error class &
|
|
Packit Service |
c5cf8c |
& (",mclass,"), msg ", errmsg
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
endif
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
call MTest_Finalize( errs )
|
|
Packit Service |
c5cf8c |
end
|