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 ir(np), jr(np), kr(np), dx(np), dy(np), dz(np)<br />
dimension aux(np)<br />
common /tsc/ a(-1:1), b(-1:1), c(-1:1)<br />
on=1./float(n)<br />
do m=1,np<br />
x=r(m,1)<br />
y=r(m,2)<br />
z=r(m,3)<br />
ir(m)=int(n*x)<br />
jr(m)=int(n*y)<br />
kr(m)=int(n*z)<br />
dx(m)=x-ir*on<br />
dy(m)=y-jr*on<br />
dz(m)=z-kr*on<br />
enddo<br />
do i=-1,1<br />
do j=-1,1<br />
do k=-1,1<br />
do m=1,np<br />
t1=b(i)+dx(m)*(c(i)+dx(m)*a(i))<br />
t2=b(j)+dy(m)*(c(j)+dy(m)*a(j))<br />
t3=b(k)+dz(m)*(c(k)+dz(m)*a(k))<br />
aux(np)=t1*t2*t3<br />
enddo<br />
do m=1,np<br />
ii=ir(m)+i<br />
jj=jr(m)+j<br />
kk=kr(m)+k<br />
b(ii,jj,kk)=b(ii,jj,kk)+aux(np)<br />
enddo<br />
enddo<br />
enddo<br />
enddo<br />
return<br />
end