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?

Reply via email to