hamadadf
Civil/Environmental
- Mar 3, 2006
- 62
Hi
I am making this model where i am calling some variables (void ratio, pore pressure, etc) and creating others (Bf) using UVARM subroutine. variables are read using URDFIL, then by using common block to transfere the values to UTEMP where i am relating the TEMP to (Bf).
The problem is , although abaqus reads the whole Bf array in URDFIL subroutine, but yet when it is transfered to UTEMP subroutine it only reads the last value of Bf which makes TEMP= a constant value in all nodes. Anybody can guide me how to overcome that and make UTEMP reads all Bf values?
SUBROUTINE UTEMP(TEMP,NSECPT, KSTEP,KINC, TIME,NODE, COORDS)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TEMP(NSECPT) ,COORDS(3) ,TIME(2)
REAL Bf(20)
COMMON /TEMP/Bf
write (7,*) 'Bf =', Bf(1), 'UTEMP'
TEMP=Bf(1)
RETURN
END
SUBROUTINE URDFIL(LSTOP, LOVRWRT,KSTEP, KINC,DTIME, TIME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION ARRAY(513),JRRAY( NPRECD,513) ,TIME(2)
EQUIVALENCE (ARRAY(1),JRRAY( 1,1))
REAL Bf(20)
COMMON /TEMP/Bf
C
C FIND CURRENT INCREMENT.
C
CALL POSFIL(KSTEP, KINC,ARRAY, JRCD)
DO K1=1,999999
CALL DBFILE(0,ARRAY, JRCD)
IF (JRCD .NE. 0) GO TO 110
KEY=JRRAY(1, 2)
C
C RECORD
C
IF (KEY .EQ. 87) THEN
Bf(1)=ARRAY( 6)
write (7,*) 'Bf2 =', Bf(1), 'URDFIL'
END IF
enddo
110 continue
C
RETURN
END
I am making this model where i am calling some variables (void ratio, pore pressure, etc) and creating others (Bf) using UVARM subroutine. variables are read using URDFIL, then by using common block to transfere the values to UTEMP where i am relating the TEMP to (Bf).
The problem is , although abaqus reads the whole Bf array in URDFIL subroutine, but yet when it is transfered to UTEMP subroutine it only reads the last value of Bf which makes TEMP= a constant value in all nodes. Anybody can guide me how to overcome that and make UTEMP reads all Bf values?
SUBROUTINE UTEMP(TEMP,NSECPT, KSTEP,KINC, TIME,NODE, COORDS)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TEMP(NSECPT) ,COORDS(3) ,TIME(2)
REAL Bf(20)
COMMON /TEMP/Bf
write (7,*) 'Bf =', Bf(1), 'UTEMP'
TEMP=Bf(1)
RETURN
END
SUBROUTINE URDFIL(LSTOP, LOVRWRT,KSTEP, KINC,DTIME, TIME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION ARRAY(513),JRRAY( NPRECD,513) ,TIME(2)
EQUIVALENCE (ARRAY(1),JRRAY( 1,1))
REAL Bf(20)
COMMON /TEMP/Bf
C
C FIND CURRENT INCREMENT.
C
CALL POSFIL(KSTEP, KINC,ARRAY, JRCD)
DO K1=1,999999
CALL DBFILE(0,ARRAY, JRCD)
IF (JRCD .NE. 0) GO TO 110
KEY=JRRAY(1, 2)
C
C RECORD
C
IF (KEY .EQ. 87) THEN
Bf(1)=ARRAY( 6)
write (7,*) 'Bf2 =', Bf(1), 'URDFIL'
END IF
enddo
110 continue
C
RETURN
END