LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: choy hau yan (choyhauyan_at_[hidden])
Date: 2003-04-22 00:52:30


I am using 4 processor to run it, how to write an
answer in slave (write(7,*)). Here is the simple
source code,

Hope that someone can help me for this problem. I face
this problem for one a long time. You also can modifie
my source code. thanks.

        include 'mpif.h'
        integer Iam,pa,ierr
        double precision time1,time2,time3,time4
        integer status(MPI_STATUS_SIZE)
        real a(210,210),u(210,1),f(210,1)

5150 OPEN(UNIT=7,STATUS='NEW',FILE='ada.dat'
        ,ERR=5151)
        GOTO 5152
5151 OPEN(UNIT=7,STATUS='OLD',FILE='ada.dat')
        CLOSE(UNIT=7,STATUS='DELETE')
        GOTO 5150
5152 CONTINUE

        call mpi_init(ierr)
        call mpi_comm_rank(mpi_comm_world,Iam,ierr)
        call mpi_comm_size(mpi_comm_world,pa,ierr)

        if (Iam .eq.0) then
c time1=mpi_wtime()
        do ia=1,210
        do ja=1,210
        a(ia,ja)=1
        enddo
        u(ia,1)=2
        enddo
        ! initial function
        do ir=1,210
        f(ir,1)=0
        enddo
        time1=mpi_wtime()
        call mpi_bcast(a,44100,mpi_real,0,
        mpi_comm_world,ierr)
        call mpi_bcast(u,210,mpi_real,0,
        mpi_comm_world,ierr)
        call mpi_bcast(f,210,mpi_real,0,
        mpi_comm_world,ierr)

        do ik=1,(pa-1)
        call mpi_recv(f,210,mpi_real,ik,
     &ik,mpi_comm_world,status,ierr)
       enddo
        time2=mpi_wtime()
        print*,time2-time1,' seconds'

        else
        call mpi_bcast(a,44100,mpi_real,0,
        mpi_comm_world,ierr)
        call mpi_bcast(u,210,mpi_real,0,
        mpi_comm_world,ierr)
        call mpi_bcast(f,210,mpi_real,0,
        mpi_comm_world,ierr)
        do i=1,210
        do j=1,210
        f(i,1)=f(i,1)+a(i,j)*u(j,1)
        enddo
        enddo
c print*,f(2,1),Iam
        write(7,*) f(2,1),Iam
        write(6,*) f(2,1),Iam
        call mpi_send(f,210,mpi_real,0,Iam,
        mpi_comm_world,ierr)
        endif
        call mpi_finalize(ierr)
        stop
        end

__________________________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo
http://search.yahoo.com