			program main

      include 'mpif.h'

      double precision  PI25DT
      parameter        (PI25DT = 3.141592653589793238462643d0)

      integer n, id, numprocs, i, rc
      integer newcom, handle
      integer status (MPI_STATUS_SIZE)
      integer ooor (10)

      double precision d1, d2
      complex c1, c2
      real c1r, c1i
      real c2r, c2i

      call MPI_INIT( ierr )
      call MPI_COMM_RANK( MPI_COMM_WORLD, id, ierr )
      call MPI_COMM_SIZE( MPI_COMM_WORLD, numprocs, ierr )

      print *, "Process ", id, " of ", numprocs, " is alive"
			print *, "MPI_COMM_WORLD is ", MPI_COMM_WORLD
			print *, "Dup comm is ", newcom

      call MPI_CONN_REGISTER ("TESTC", MPI_COMM_WORLD, handle, ierr)
      call MPI_CONN_INTERCOMM_CREATE (handle, "TESTA", newcom, ierr)


      d1 = 0.0
      d2 = -1.0
      c1 = (0.0, 0.0)
      c2 = (-1.0, -2.0)
      c1r = 0.0
      c1i = 0.0
      c2r = 0.0
      c2i = 0.0

      call MPI_SEND (d2,1,MPI_DOUBLE_PRECISION,id,30,newcom,ierr)
      call MPI_SEND (c2,1,MPI_COMPLEX,id,40,newcom,ierr)


      call MPI_CONN_LEAVE (ierr)

 30   call MPI_FINALIZE(rc)
      stop
      end




