SUBROUTINE DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS) INCLUDE 'ABA_PARAM.INC' DIMENSION U(3),COORDS(3), NODE(1), JDOF(1), TIME(3) CHARACTER*20 FMT INTEGER FID INTEGER N_T, N_MAX, J INTEGER INODE REAL*8 TIMES(1000) REAL*8 RECORD_I(9) c CALL UEXTERNALDB FID = 10 INODE = NODE(1) c WRITE(7,*) 'EXTRACTING RECORDS' READ(FID,'(2I5)',REC=1) N_T, N_MAX WRITE(FMT,'("(", I4, "F10.4)")') N_T READ(FID,FMT,REC=2)(TIMES(J),J=1,N_T) CALL EXTRACT_RECORDS(N_T,N_MAX,INODE,TIMES,REAL(TIME(2)), + RECORD_I) U(1) = RECORD_I(JDOF(1)) U(2) = RECORD_I(JDOF(1)+3) U(3) = RECORD_I(JDOF(1)+6) c WRITE(7,*) TIME(2), INODE, U(1), U(2), U(3) c WRITE(7,*) (RECORD_I(J), J=1,3) C IF (INODE .EQ. 1430) THEN c WRITE(200, '(I2, F5.3, 3F5.3)') INODE, TIME(2), (U(J), J=1,3) C WRITE(7,*) 'IN DISP' C write(7, *) INODE, 'T_STEP', REAL(TIME(2)), (U(J), J=1,3) C write(7, *) (RECORD_I(J), J=1,9) C END IF END SUBROUTINE SUBROUTINE UEXTERNALDB(LOP, LRESTART, TIME, DTIME, KSTEP, KINC) character*100 FPATH character*100 wpath INTEGER RECL integer FID FID = 10 FPATH='Z:\ABAQUS\MT_LLT\15mm\fx1_FL\DATA.bin' RECL =8*10*32 IF(LOP .EQ. 0) THEN OPEN(FID,FILE=FPATH,ACCESS='DIRECT',RECL=RECL,FORM='FORMATTED') c OPEN(200,FILE=wpath,FORM='FORMATTED') WRITE(7,*) 'OPENNED FILE' END IF END SUBROUTINE EXTRACT_RECORDS(N_T, N_MAX, INODE, + TIMES, T_STEP, RECORD_I) C INPUT FILE OPENED C TOTAL NUMBER OF TIE STEPS C MAXIMUM NODE NUMBER C NODE WANTED C TIMES C RECORD_I IMPLICIT NONE INTEGER N_T,N_MAX,INODE,IREC REAL*8 TIMES(1000) REAL T(2) REAL T_STEP INTEGER IT, I, J, K, INDX REAL*8 RECORD1(9), RECORD2(9), RECORD_I(9),RNODE REAL*8 DT, M, Y0 INTEGER FID FID=10 C WRITE(7,*) 'EXTRACTING' C FIND RELEVANT TIME ITERATIONS IT = -1 DO I = 1, N_T IF (T_STEP .LT. 0.0) THEN GO TO 30 ELSE IF (TIMES(I) .EQ. T_STEP) THEN INDX=I GO TO 50 ELSEIF (TIMES(I) .GT. T_STEP) THEN INDX=I GO TO 100 ENDIF END DO 30 CONTINUE DO J=1,9 RECORD_I(J)=0.0 END DO c WRITE(7,*) 'SET TO ZERO' GO TO 300 50 CONTINUE IREC=INODE+2 +(N_MAX+1)*(INDX) READ(FID, '(11F12.4)',REC=IREC ) T(2), RNODE, (RECORD_I(J), + J=1,9) GO TO 300 100 CONTINUE C WRITE(7,*), T_STEP, 'FOUND IN STEP', I, TIMES(I) IREC=INODE+2 +(N_MAX+1)*(INDX-1) READ(FID, '(11F12.4)',REC=IREC ) T(1), RNODE, (RECORD1(J), + J=1,9) IREC=INODE+2 +(N_MAX+1)*(INDX) READ(FID, '(11F12.4)',REC=IREC ) T(2), RNODE, (RECORD2(J), + J=1,9) DO J = 1, 9 M = RECORD2(J)-RECORD1(J) M = M/(T(2)-T(1)) RECORD_I(J)=RECORD1(J)+M*(T_STEP-T(1)) END DO 300 CONTINUE c WRITE(7,*) 'RI', T_STEP , INT(RNODE), (RECORD_I(J), J=1,9) C IF (INODE .EQ. 1430) THEN C WRITE(200, '(I2, F5.3, 3F5.3)') INODE, TIME(2), (U(J), J=1,3) C WRITE(7,*) 'IN EXTRACT' C write(7, *) 'T_STEP', T_STEP, T(1), T(2) C END IF RETURN END SUBROUTINE