1program test_send_recv
2  use libmpifx_module
3  implicit none
4
5  character(100) :: msg
6  type(mpifx_comm) :: mycomm
7  integer :: source
8
9  call mpifx_init()
10  call mycomm%init()
11  if (.not. mycomm%master) then
12    write(msg, "(A,I0,A)") "Hello from process ", mycomm%rank, "!"
13    call mpifx_send(mycomm, msg, mycomm%masterrank)
14  else
15    write(*, "(A)") "Master node:"
16    do source = 1, mycomm%size - 1
17      call mpifx_recv(mycomm, msg, source)
18      write(*,"(A,A)") "Message received: ", trim(msg)
19    end do
20  end if
21  call mpifx_finalize()
22
23end program test_send_recv
24