LAM/MPI logo

LAM/MPI General User's Mailing List Archives

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

From: Tim Prince (timothyprince_at_[hidden])
Date: 2006-05-30 10:09:44


KHOJ HAI wrote:
> Dear programers, i need yours help to convert DO loop
> into MPICH , code is pasted below. Pls help me in
> this issue. i want to run this code in parallel using
> mpich-2. i just want to parallise DO LOOP . THNAKS for
> yours coperation.
>
>
>
> subroutine move
> implicit real*8 (a-h,o-z)
> 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
> 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
>
How do you expect this list to be able to help you do with mpich what
you couldn't do with OpenMP or lam?