END DO
END IF
ELSE
C----- Orthotropic metarial
DLOCAL(1,1)=PROPS(1) DLOCAL(1,2)=PROPS(2) DLOCAL(2,1)=PROPS(2) DLOCAL(2,2)=PROPS(3)
DLOCAL(1,3)=PROPS(4) DLOCAL(3,1)=PROPS(4) DLOCAL(2,3)=PROPS(5) DLOCAL(3,2)=PROPS(5) DLOCAL(3,3)=PROPS(6)
DLOCAL(4,4)=PROPS(7) DLOCAL(5,5)=PROPS(8) DLOCAL(6,6)=PROPS(9)
END IF
ELSE
C----- General anisotropic material ID=0 DO J=1,6 DO I=1,J ID=ID+1
DLOCAL(I,J)=PROPS(ID) DLOCAL(J,I)=DLOCAL(I,J) END DO END DO END IF
C----- Rotation matrix: ROTATE, i.e. direction cosines of [100], [010] C and [001] of a cubic crystal in global system C
CALL ROTATION (PROPS(57), ROTATE)
C----- Rotation matrix: ROTD to transform local elastic matrix DLOCAL C to global elastic matrix D
C
DO J=1,3 J1=1+J/3 J2=2+J/2
DO I=1,3 I1=1+I/3 I2=2+I/2
ROTD(I,J)=ROTATE(I,J)**2
ROTD(I,J+3)=2.*ROTATE(I,J1)*ROTATE(I,J2) ROTD(I+3,J)=ROTATE(I1,J)*ROTATE(I2,J)
ROTD(I+3,J+3)=ROTATE(I1,J1)*ROTATE(I2,J2)+ 2 ROTATE(I1,J2)*ROTATE(I2,J1)
END DO END DO
C----- Elastic matrix in global system: D
C {D} = {ROTD} * {DLOCAL} * {ROTD}transpose C
DO J=1,6 DO I=1,6 D(I,J)=0. END DO END DO
DO J=1,6 DO I=1,J
DO K=1,6 DO L=1,6
D(I,J)=D(I,J)+DLOCAL(K,L)*ROTD(I,K)*ROTD(J,L) END DO END DO
D(J,I)=D(I,J)
END DO END DO
C----- Total number of sets of slip systems: NSET NSET=NINT(PROPS(25)) IF (NSET.LT.1) THEN
WRITE (6,*) '***ERROR - zero sets of slip systems' STOP
ELSE IF (NSET.GT.3) THEN WRITE (6,*)
2 '***ERROR - more than three sets of slip systems' STOP END IF
C----- Implicit integration parameter: THETA THETA=PROPS(145)
C----- Finite deformation ?
C----- NLGEOM = 0, small deformation theory
C otherwise, theory of finite rotation and finite strain, Users C must declare \C
IF (PROPS(146).EQ.0.) THEN NLGEOM=0 ELSE
NLGEOM=1 END IF
C----- Iteration?
C----- ITRATN = 0, no iteration
C otherwise, iteration (solving increments of stresses and C solution dependent state variables) C
IF (PROPS(153).EQ.0.) THEN ITRATN=0 ELSE
ITRATN=1 END IF
ITRMAX=NINT(PROPS(154)) GAMERR=PROPS(155)
NITRTN=-1
DO I=1,NTENS DSOLD(I)=0. END DO
DO J=1,ND
DGAMOD(J)=0.
DTAUOD(J)=0. DGSPOD(J)=0. DO I=1,3
DSPNRO(I,J)=0. DSPDRO(I,J)=0. END DO END DO
C----- Increment of spin associated with the material element: DSPIN C (only needed for finite rotation) C
IF (NLGEOM.NE.0) THEN DO J=1,3 DO I=1,3
TERM(I,J)=DROT(J,I) TRM0(I,J)=DROT(J,I) END DO
TERM(J,J)=TERM(J,J)+1.D0 TRM0(J,J)=TRM0(J,J)-1.D0 END DO
CALL LUDCMP (TERM, 3, 3, ITRM, DDCMP)
DO J=1,3
CALL LUBKSB (TERM, 3, 3, ITRM, TRM0(1,J)) END DO
DSPIN(1)=TRM0(2,1)-TRM0(1,2) DSPIN(2)=TRM0(1,3)-TRM0(3,1) DSPIN(3)=TRM0(3,2)-TRM0(2,3)
END IF
C----- Increment of dilatational strain: DEV DEV=0.D0 DO I=1,NDI
DEV=DEV+DSTRAN(I) END DO
C----- Iteration starts (only when iteration method is used) 1000 CONTINUE
C----- Parameter NITRTN: number of iterations