c---------------------------------------------------------------------
c---------------------------------------------------------------------

      subroutine bcast_inputs

c---------------------------------------------------------------------
c---------------------------------------------------------------------

      implicit none

      integer profiler(2)
      save profiler

      include 'mpinpb.h'
      include 'applu.incl'

c---------------------------------------------------------------------
c  local variables
c---------------------------------------------------------------------
      integer IERR

c---------------------------------------------------------------------
c   root broadcasts the data
c   The data isn't contiguous or of the same type, so it's not
c   clear how to send it in the "MPI" way. 
c   We could pack the info into a buffer or we could create
c   an obscene datatype to handle it all at once. Since we only
c   broadcast the data once, just use a separate broadcast for
c   each piece. 
c---------------------------------------------------------------------
      call TAU_PROFILE_TIMER(profiler, 'bcast_inputs');
      call TAU_PROFILE_START(profiler);
      call MPI_BCAST(ipr, 1, MPI_INTEGER, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(inorm, 1, MPI_INTEGER, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(itmax, 1, MPI_INTEGER, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(dt, 1, dp_type, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(omega, 1, dp_type, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(tolrsd, 5, dp_type, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(nx0, 1, dp_type, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(ny0, 1, dp_type, root, MPI_COMM_WORLD, ierr)
      call MPI_BCAST(nz0, 1, dp_type, root, MPI_COMM_WORLD, ierr)

      call TAU_PROFILE_STOP(profiler);
      return
      end


