07.01.2013 Views

Le calcul numérique de haute performance - Université de Laval

Le calcul numérique de haute performance - Université de Laval

Le calcul numérique de haute performance - Université de Laval

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

subroutine assmass(r,b)<br />

parameter (n=256,np=2097152)<br />

dimension r(np,3), b(0:n-1,0:n-1,0:n-1)<br />

dimension aux(np)<br />

common /tsc/ a(-1:1), b(-1:1), c(-1:1)<br />

do i=-1,1<br />

do j=-1,1<br />

do k=-1,1<br />

do m=1,np<br />

x=r(m,1)<br />

y=r(m,2)<br />

z=r(m,3)<br />

ir=int(n*x)<br />

jr=int(n*y)<br />

kr=int(n*z)<br />

dx=x-ir/float(n)<br />

dy=y-jr/float(n)<br />

dz=z-kr/float(n)<br />

t1=b(i)+dx*(c(i)+dx*a(i))<br />

t2=b(j)+dy*(c(j)+dy*a(j))<br />

t3=b(k)+dz*(c(k)+dz*a(k))<br />

aux(np)=t1*t2*t3<br />

enddo<br />

do m=1,np<br />

ir=int(n*x)<br />

jr=int(n*y)<br />

kr=int(n*z)<br />

ii=ir+i<br />

jj=jr+j<br />

kk=kr+k<br />

b(ii,jj,kk)=b(ii,jj,kk)+aux(np)<br />

enddo<br />

enddo<br />

enddo<br />

enddo<br />

return<br />

end<br />

a(i) = 1.5*i*i-1<br />

b(i) = 0.75-0.625*i*i<br />

c(i) = 0.5*i

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!