Code:
SUBROUTINE umat(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,&
RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,&
TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,NDI,NSHR,NTENS,&
NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,&
DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
implicit none
! implicit real*8(a-h,o-z)
! parameter (nprecd=1)
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),&
DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),&
STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),&
PROPS(NPROPS),COORDS(3),DROT(3,3),&
DFGRD0(3,3),DFGRD1(3,3)
!!!!!!!!
integer :: q1
integer :: q2
integer :: q3
integer :: col
integer ( kind = 4 ), parameter :: n=2
real ( kind = 8 ), parameter :: start(n)=(/4e-4, 4e-4/)
real ( kind = 8 ), parameter :: step(2)=(/1e-4, 1e-4/)
...
!abaqus internal var
!!!!!!!!!!!!!
real :: dtime
integer :: ntens ,NDI ,NSHR ,NOEL,NPT,LAYER,KSPT,KSTEP,KINC
integer :: nstatv
integer :: NPROPS
!
real :: DFGRD0,DFGRD1,STRESS,DDSDDE,STATEV,SSE,SPD,SCD,&
RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,&
TIME,TEMP,DTEMP,PREDEF,DPRED,&
PROPS,COORDS,DROT,PNEWDT,CELENT
!!!!!!!!!!!!!!!
!
WRITE(*,*) ntens ,nstatv ,nprops ,props ,ndi ,nshr ,dtime ,time(1) ,time(2) ,npt ,noel ,kinc
WRITE(*,*) 'Drot:'
DO q1=1,3
WRITE(*,*) Drot(q1,:)
END DO
WRITE(*,*) 'DFGRD0:'
DO q1=1,3
WRITE(*,*) DFGRD0(q1,:)
END DO
WRITE(*,*) 'DFGRD1:'
DO q1=1,3
WRITE(*,*) DFGRD1(q1,:)
END DO
WRITE(*,*) 'stran:'
DO q1=1,ntens
WRITE(*,*) stran(q1)
END DO
WRITE(*,*) 'Dstran:'
DO q1=1,ntens
WRITE(*,*) dstran(q1)
END DO
WRITE(*,*) 'stress:'
DO q1=1,ntens
WRITE(*,*) stress(q1)
END DO
WRITE(*,*) 'DDSDDE:'
DO q1=1,ntens
WRITE(*,*) DDSDDE(q1,:)
END DO
..........
!
DO q1=1,3
DO q2=1,3
IF (iSnAN(DFGRD0(q1,q2))) THEN
DFGRD0(q1,q2)=0
END IF
END DO
END DO
g1=matmul(DFGRD0,g1_0)
.....
p_(1)=sqrt(dot_product(g1,g1))*p_0(1)
! WRITE(*,*) 'p_(1) dotproduct' ,p_(1)
....
Some remarks:
Bookmarks