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
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