DLOAD subroutine not working on parallel mode Yahoo / Sent

"[email protected] [Abaqus]" <[email protected]> 02 May 2019 10:23:54 +0000
Newsgroups gmane.comp.mathematics.abaqus.user
Message-ID <[email protected]>
Dear All, 
 

 I have written a DLOAD subroutine which will read Pressure on a surface from an external file and run a direct implicit transient analysis. The pressure on the surface elements will be read from respective files for each time step. I have checked this on my computer in serial mode for 100 elements and 5 time steps and it works fine.This is the same in parallel mode too. However, when I increase the number of elements in the file to 1000 and put it on parallel the simulations does not work. It compiles fine and starts running but it only reads a few elements and halts. There are no error messages and the status shows running but it is not actually. The same is the situation when I put it on cluster with 16 CPUs. I am not able to understand what the problem could be. It has something got to reading these files in parallel and checking the element number and mapping the pressure for each time step. 
 

 I would really appreciate if someone could please help me or guide me regarding this. 
 

 My DLOAD sub routine is below. 
 

       SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,
      1                 JLTYP,SNAME)
 C
       INCLUDE 'ABA_PARAM.INC'
 C
       DIMENSION TIME(2),COORDS(3)
       CHARACTER*80 SNAME
       PARAMETER (PLOAD1=1000)
       CHARACTER PRES*80
   INTEGER  :: SUCCESS
   INTEGER  :: K, L, M, ELNO, T, F, I, NN    ! K is for the element number,L is word P and M is for pressure value
 REAL     :: PLOAD 
       CHARACTER (len=100) :: pname   
       CHARACTER (len=30)  :: loadfile   
 

          DO I=1,5    ! NUMBER OF INCREMENTS
 IF (KINC.EQ.I) THEN
 WRITE (loadfile,'("output",I0,".inp")') I
         pname="C:\Users\lakshmp1\L1000\"//loadfile 
 PRINT *,pname 
                        NN=100+I    
                        OPEN(UNIT=NN, FILE=pname, ACCESS='SEQUENTIAL', ACTION='READ')    
                        T=1
        DO T=1,1     ! skips the first line which is named as *DLOAD
              READ(NN,*)
        END DO
        DO
                              READ(UNIT=NN, FMT='(A)', IOSTAT=SUCCESS, END=9)PRES
            IF (SUCCESS.NE.0) EXIT
 

                                    K=6
            DO WHILE (PRES(K:K) .NE. ',')
                 K=K+1
            END DO 
 

            READ(PRES(6:K-1), *) ELNO   ! this variable stores the element number
            PRINT *, ELNO 
 
           L=K+1
           DO WHILE (PRES(L:L) .NE. ',')
                 L=L+1
           END DO
 

 
           M=L+1
           DO WHILE (PRES(M:M) .NE. ' ')
                M=M+1
           END DO
 

 
          READ(PRES(L+1:M-1), *) PLOAD  ! this variable stores the pressure on that element 
          PRINT *, PLOAD
                          IF(NOEL.EQ.ELNO) THEN
                              P=PLOAD
                                     PRINT *, 'PLOAD written'  
         END IF 
 
                END DO        
 9                  CLOSE(NN)      
                END IF
   END DO    
       RETURN
       END 



 

 Thank You. 
 

 Arun