c c c******************************************************************************** c c Example user sub. : HYPELA c c******************************************************************************** c SUBROUTINE HYPELA(D,G,E,DE,S,T,DT,NGENS,N,NNN,LAYER,MAT, * NDI,NSHEAR) implicit real*8 (a-h,o-z) dp DIMENSION E(1),DE(1),T(1),DT(1),G(1),D(NGENS,NGENS),S(1), C ET(6) DO 100 I=1,NGENS ET(I)= E(I)+0.5*DE(I) 100 CONTINUE POIS=.45 CONS1=1.0d0/SQRT(1.0d0 + 2.0d0*POIS*pois) CONS2=1.0d0 - POIS - 2.0d0*POIS*pois EVM=CONS1*SQRT(ET(1)*ET(1)+ET(2)*ET(2)+ET(3)*ET(3)+ c (.5d0*(ET(4)*ET(4)+ET(5)*ET(5)+ET(6)*ET(6)))) IF(EVM.GT..105) GO TO 200 EMOD=.97352d0 GO TO 500 200 IF(EVM.GT..22) GO TO 300 EMOD=.464d0 GO TO 500 300 IF(EVM.GT..345) GO TO 400 EMOD=.296d0 GO TO 500 400 IF(EVM.GT..48) GO TO 410 EMOD=.179d0 GO TO 500 410 EMOD=.047d0 500 CONTINUE SHMOD=EMOD/(2.0d0*(1.0d0+POIS)) DO 510 I=1,NGENS DO 510 J=1,NGENS 510 D(I,J)=0.0d0 D(1,1)=EMOD*(1.0d0 - POIS)/CONS2 D(2,2)=D(1,1) D(3,3)=D(1,1) D(1,2)=EMOD*POIS/CONS2 D(1,3)=D(1,2) D(2,1)=D(1,2) D(2,3)=D(1,2) D(3,1)=D(1,2) D(3,2)=D(1,2) D(4,4)=SHMOD D(5,5)=SHMOD D(6,6)=SHMOD DO 520 I=1,NGENS DO 515 J=1,NGENS S(I)=S(I)+D(I,J)*DE(J) 515 CONTINUE 520 CONTINUE RETURN END