        program array
        integer a(16), b(16), c(16), nbuf(4)
        integer numtask, taskid, src, msglen, allgrp

        open(unit=8, file='array.in', status='old')

        call MP_ENVIRON(numtask, taskid)
        
        src = numtask -1

        do 5 i = 1, 16
           read(8,*) a(i) 
5       continue
 
           call MP_BCAST(a, 64 , src, allgrp)

        do 15 i = 1, (16/numtask)
            b(i) = a((taskid*16/numtask)+i )
            write(6,*) 'node # = ', taskid
15      continue
        
            call MP_CONCAT( b, c, 32 , allgrp)
      
          do 25 i = 1, 16
            write(6,*) 'c(i) = ', c(i) 
25        continue


        stop
        end
