C CBIFLE SOURCE FD218221 19/12/04 21:15:07 10398 SUBROUTINE CBIFLE(wrk52,wrk53,wrk54,NSTRS1,NVARI,ICARA) C BIFLEX SOURCE CHAT 00/09/29 21:15:55 3957 c SUBROUTINE BIFLEX(WRK0,WRK1,NSTRS,NVARI,NMATT,ICARA,CMATE,KERRE) *--------------------------------------------------------------------* * ecoulement du modele a fibre, interface avec ecoul2 *--------------------------------------------------------------------* C C C variables en entree C C WRK0,KRK1 pointeurs sur des segments de travail C C NSTRS1 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 C variables en sortie C C VARF variables internes finales dans WRK1 C C SIGF contraintes finales dans WRK1 C *--------------------------------------------------------------------* * Pierre Pegon (ISPRA) Juillet/Aout 1993 * * Fevrier 1996 nouvel ecou * *--------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC SMCHAML -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC CCHAMP -INC SMLREEL -INC DECHE * DIMENSION DEPSI(6),SIGMA(6) DIMENSION CRIGI1(12),CMASS1(12) * INTEGER NSTRS1,NVARI INTEGER IRTD,ISTRS KERRE=0 C C recuperation des instants initial et final TIME0 = TEMP0 TIMEF = TEMPF C calcul ou recuperation de la matrice elastique C IPMODL = NINT(XMAT(1)) IPCAR = NINT(XMAT(2)) MLREEL = NINT(XMAT(3)) IF(MLREEL.EQ.0)THEN CALL FRIGIE(IPMODL,IPCAR,CRIGI1,CMASS1) CALL DOHTIF(CRIGI1,CMATE,IFOUR,NSTRS1,DDHOOK,IRTD) ELSE SEGACT, MLREEL IF (PROG(/1).NE.NSTRS1**2)THEN IRTD = 0 ELSE IRTD = 1 CALL DOHOOO(PROG,NSTRS1,DDHOOK) ENDIF SEGDES, MLREEL ENDIF C IF ( IRTD .EQ. 1) THEN C C calcul de l incrément de contrainte (pour les defo plastique) C CALL MATVE1 (DDHOOK,DEPST,NSTRS1,NSTRS1,DSIGT,2) C C inversion de la matrice DDHOOK C PREC=1.D-08 CALL INVALM(DDHOOK,NSTRS1,NSTRS1,IRTD,PREC) IF (IRTD.EQ.0)THEN C C chargement de l'increment de deformation C DO I=1,NSTRS1 DEPSI(I)=DEPST(I) ENDDO C C recuperation du modele, des materiaux, des contraintes C et des varint de la section C IPSIG0=NINT(VAR0(1)) IPVAR0=NINT(VAR0(2)) IF(IPSIG0.EQ.0) CALL ZEROP(IPMODL,'CONTRAIN',IPSIG0) IF(IPVAR0.EQ.0) CALL ZEROP(IPMODL,'VARINTER',IPVAR0) C C ecoulement de la section C CALL FCOUL1(DEPSI,IPMODL,IPSIG0,IPVAR0,IPCAR,TIME0,TIMEF, $ SIGMA,IPSIGF,IPVARF,IRETO,NSTRS1) IF(IRETO.EQ.0) THEN print*,'erreur dans fcoul1' KERRE=56 END IF C C calcul de l'increment de deformation plastique C DO I=1,NSTRS1 SIGF (I)=SIGMA(I) DSIGT(I)=DSIGT(I) - (SIGF(I) - SIG0(I)) END DO C CALL MATVE1 (DDHOOK,DSIGT,NSTRS1,NSTRS1,DEFP,1) DO I=1,NSTRS1 END DO C C sortie des variables internes C VARF(1)=DBLE(IPSIGF) VARF(2)=DBLE(IPVARF) ELSE print*,'erreur dans invalm' KERRE=56 END IF ELSE print*,'erreur dans dohtif' KERRE=56 END IF C 998 RETURN END