!$OMP PARALLEL DO PRIVATE(thread,subs,tile) SHARED(ng,numthreads)
      DO thread=0,numthreads-1
        subs=NtileX(ng)*NtileE(ng)/numthreads
        DO tile=subs*(thread+1)-1,subs*thread,-1
          CALL step3d_uv (ng, TILE)
        END DO
      END DO
!$OMP END PARALLEL DO
codes like that, in define distribute situation, NtileX=NtileE=1, numthreads=1, subs=1, thread=0, 
it seems that tile always equals 0, so what the multiple processes really runs?
is there any different between the lowercase tile and the Capital TILE? 
in the get_grid.F, tile=myrank, it looks like reasonable if tile relates to myrank when call for subroutines, but tile is always a local var...
could somebody introduce something about this?
			
			
									
									
						variable tile seems to always be 0, how the mpi really runs?
Re: variable tile seems to always be 0, how the mpi really runs?
From globaldefs.h:
So, yes, it is case sensitive in this circumstance because the C preprocessor is.
			
			
									
									
						Code: Select all
#ifdef DISTRIBUTE
# define TILE MyRank
#else
# define TILE tile
#endif
Re: variable tile seems to always be 0, how the mpi really runs?
Thanks, really helpful!