https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81205
--- Comment #5 from Pasha <pasha.313 at hotmail dot com> --- (In reply to Harald Anlauf from comment #4) > (In reply to Pasha from comment #2) > > This is my main routine for example > > . > > . > > . > > !!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(K,jL) > > DO k=1,nG3 > > DO jL=1,nL2 > > j = idx2start + jL > > Any reason you didn't declare j as private? That did not solve the problem as I have other subroutines in main which declared all of index number in main program and in subroutines but again the code Blocks. Even when I disabled OMP commands in the loop of main program, the code get inside the subroutine but again blocks in the loop of that subroutines. I used ulimit -s 10000000 or ulimit -Hd to increase the capacity of each CPU but still get nowhere. > > > IF(masque(j,k))THEN > > > > ! dudx > > CALL fvec (nG1,curC(1:nG1,jL,k), difles1C(1:nG1,jL,k)) > > CALL tridgn (ff,s1,w1,difles1C(1:nG1,jL,k), nG1,1) > > ENDIF > > ENDDO > > ENDDO > > !!$OMP END PARALLEL DO > > Have you tried some thread-checking tool to debug the code, > or cross-checked with another compiler? Some of my friends suggested to compile the code with ifort, but I do not access to that. I asked my supervisor to buy or find it on other lab to check it. Will you please offer a name of thread-checking tools? can I do it with visual studio? or you mean something else?