https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81205
--- Comment #4 from Harald Anlauf <anlauf at gmx dot de> --- (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? > 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?