rotati
C ROTATI SOURCE CHAT 05/01/13 03:05:11 5004 C MAZZZ SOURCE AM 92/09/30 21:43:12 712 1 ISTEP,ICARA,KERRE) C C calcule la deformation initiale et l'increment de deformation C a partir de la contrainte initiale et l'increment de contrainte C elastique puis appelle la subroutine ROTAT2 C C C variables en entree C C WRK0,KRK1,WRK5 pointeurs sur des segments de travail C C NSTRS nombre de composantes dans les vecteurs des contraintes C et les vecteurs des deformations C C NVARI nombre de variables internes (doit etre egal a 2) C C NMATT nombre de constantes du materiau C C ISTEP flag utilise pour separer les etapes dans un calcul non local C ISTEP=0 -----> calcul local C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils C ISTEP=2 -----> calcul non local etape 2 on continue le calcul C a partir des seuils moyennes C C C variables en sortie C C VARF variables internes finales dans WRK0 C C SIGF contraintes finales dans WRK0 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO SEGMENT WRK0 REAL*8 XMAT(NMATT) ENDSEGMENT * SEGMENT WRK1 REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) REAL*8 DEFP(NSTRS),XCAR(ICARA) ENDSEGMENT SEGMENT WRKK2 REAL*8 EPSILI(NSTRS) END SEGMENT SEGMENT WRK5 REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) ENDSEGMENT CHARACTER*8 CMATE INTEGER NSTRS,NVARI,NMATT INTEGER KCAS,IRTD,ISTRS,KERRE REAL*8 PREC REAL*8 UN PARAMETER (UN=1.D0) KERRE=0 C C calcul de la matrice elastique C CMATE = 'ISOTROPE' KCAS=1 IF ( IRTD .EQ. 1) THEN C C inversion de cette matrice C PREC=1.D-08 SEGINI WRKK2 IF (IFOUR.EQ.-2) THEN DDHOOK(4,4)=1/DDHOOK(4,4) ELSE ENDIF IF (IRTD.EQ.0)THEN C C calcul des deformations du materiau elastique lineaire C C C modification pour tenir compte de l'endommagement C C PRINT*,'DANS ROTATI:' C PRINT*,'EPSILI',(EPSILI(ISTRS),ISTRS=1,NSTRS) C PRINT*,'EPIN0',(EPIN0(ISTRS),ISTRS=1,NSTRS) IF (IFOUR.EQ.-2) THEN EPSILI(3)=-XMAT(2)/(1.D0-XMAT(2))*(EPSILI(1)+EPSILI(2)) ENDIF DO 100 ISTRS=1,NSTRS EPSILI(ISTRS)=EPSILI(ISTRS)+EPIN0(ISTRS) 100 CONTINUE C C appel a la routine ROTAT2 C * PRINT*,'DEPSIL=DEPST',(DEPST(ISTRS),ISTRS=1,NSTRS) 1 ISTEP,ICARA) ELSE print*,'erreur dans invalm' KERRE=56 END IF ELSE print*,'erreur dans dohmas' KERRE=56 END IF SEGSUP WRKK2 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales