Высокопроизводительные вычисления на кластерах. Беликов Д.А - 191 стр.

UptoLike

191
Do i=0,is+1
T(i,ks+1)=10.0d0
End do
End if
c Подготовка к расчетам
tau = 0.2*(hx*hx*hy*hy)/(alfa*(hx**2+hy**2))
ae=alfa*tau/(hx*hx)
aw=alfa*tau/(hx*hx)
an=alfa*tau/(hy*hy)
as=alfa*tau/(hy*hy)
ap=ae+aw+an+as
time = 0
If (rank.eq.0) then
open (2,file='rezult1.dat')
timeStart = MPI_Wtime()
timeStop1=0.0
timeStop2=0.0
End if
c Движение по временной оси
Do while (time.lt.timefin)
If (rank.eq.0) timeStart1 = MPI_Wtime()
c Расчет значений с нового временного слоя
Do j=1,ks
Do i=1,is
Tnew(i,j) = T(i,j)*(1-ap) + T(i+1,j)*ae + T(i-1,j)*aw
1 + T(i,j+1)*an + T(i,j-1)*as
End do
End do
time =time + tau
c Переприсваивание внутренних узлов области
Do j=1,ks
Do i=1,is
T(i,j)=Tnew(i,j)
End do
End do
c Пересылка граничных значений на соседние ПЭ
tag =100
If (rank.eq.0) timeStop1=timeStop1+MPI_Wtime()-timeStart1
If (rank.eq.0) timeStart2 = MPI_Wtime()
tag=10