LAM/MPI logo

LAM/MPI General User's Mailing List Archives

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

From: abc abc (ballo_gujar_at_[hidden])
Date: 2006-06-07 06:42:41


hi everybody,
can u pls help me parallelize the following code by inserting MPI calls. There are 2 DO loops that I am trying to parallelize but I am confused a bit. thanks for your time.
ballo.
-------------------------------------------------------------------------------------------------------
 subroutine mpi_code_f77
      integer step,deltim,dmptim,iseed
      parameter (n=4096)
      parameter (nlayer=128)
      common /control/ seth,setl,dt,yxrat,yxrat2,rnd,delr,
     & nsp1,nstep,mcstep,ndump,deltim,dmptim,step,iseed
      common /posvel/ isp(n),rx(n),ry(n),rz(n),
     & vx(n),vy(n),vz(n),ax(n),ay(n),az(n)
      common /potential/ s11,s12,s22,
     & rc11,rc11sq,rc12,rc12sq,rc22,rc22sq,
     & ep11,ep12,ep22,xm(2),grav

      dt2=dt/2.0d0

      do 1000 i=1,n

        if (rx(i).gt.0.5) then
          ax(i)=ax(i)-grav
         else
          ax(i)=ax(i)+grav
         endif

        vx(i)=vx(i)+ax(i)*dt2
        vy(i)=vy(i)+ay(i)*dt2
        vz(i)=vz(i)+az(i)*dt2
        rx(i)=rx(i)+vx(i)*dt
        if (rx(i).ge.1.0d0) rx(i)=rx(i)-1.0d0
        if (rx(i).lt.0.0d0) rx(i)=rx(i)+1.0d0
        ry(i)=ry(i)+vy(i)*dt
        if (ry(i).ge.yxrat) ry(i)=ry(i)-yxrat
        if (ry(i).lt.0.0d0) ry(i)=ry(i)+yxrat
        rz(i)=rz(i)+vz(i)*dt
        if (rz(i).ge.yxrat) rz(i)=rz(i)-yxrat
        if (rz(i).lt.0.0d0) rz(i)=rz(i)+yxrat

1000 continue

      call force

      do 1100 i=1,n
        vx(i)=vx(i)+ax(i)*dt2
        vy(i)=vy(i)+ay(i)*dt2
        vz(i)=vz(i)+az(i)*dt2
1100 continue
      return
      end
---------------------------------------------------------------------------------------------------------

 __________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com