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

UptoLike

120
summ=dabs((xx(i)-x(i)))
max_err=dmax1(max_err,summ)
end do
!$omp end do
!$omp do private (summ) reduction(max:drmax)
do i=1, m_size
x(i) = xx(i)
summ=a(i,m_size+1)
do j=1,m_size
summ=summ-a(i,j)*x(j)
end do
drmax=dmax1(drmax,dabs(summ))
end do
!$omp end do
!$omp end parallel
!
count1=count1+1
if (count1.gt.300) goto 11
end do
!$ tm0=omp_get_wtime()-tm0
!
! проверка
open(16, file='res.dat')
write(16,*) 'Vector x ', 'Absolute error '
do i=1,m_size
summ=0.0
do j=1,m_size
summ=summ+x(j)*a(i,j)
end do
write(16,'(2e18.7)') x(i), summ - a(i,m_size+1)
end do
!
write(6,'(a, i4)') 'Count of iteration = ', count1
write(6,'(a, e14.6)') 'Residual norm =', drmax
!
! фиксируется время окончания счета и выдается время работы
! программы
!$ write(6,*) 'Time of calculation =', tm0
write(6,'(a)') 'Correct finish'
close(16)