program test_dyrektyw integer, parameter :: lba_iter=100 real, dimension(lba_iter) :: a,b integer, dimension(lba_iter) :: ind_lok integer, dimension(2*lba_iter) :: tab_it_wyk do i=1,lba_iter a(i)=i;b(i)=i+2 enddo sum = 0.0 it_wpis=0 !$OMP PARALLEL PRIVATE(xsum,i,iter_no,ind_lok,j), & !$OMP SHARED(sum,a,b,it_wpis, tab_it_wyk) xsum = 0.0 iter_no=0 !$OMP DO do i = 1,lba_iter xsum = xsum+(a(i)*b(i)) iter_no=iter_no+1 ind_lok(iter_no) = i enddo !$OMP CRITICAL do j=1, iter_no tab_it_wyk(it_wpis+j) = ind_lok(j) enddo it_wpis = it_wpis + iter_no sum = sum + xsum !$OMP END CRITICAL !$OMP END PARALLEL open(100,file='wyniki.dat',access='sequential', & form='formatted',status='unknown') write(100,'(" Iteracje: ")') write(100, '(1x,15(i5))') (tab_it_wyk(j), j=1,it_wpis) write(100,'(" suma = ",f10.2)') sum end