1 : C BIFLEX SOURCE CHAT 11/03/16 21:15:40 6902 2 : SUBROUTINE BIFLEX(WRK0,WRK1,NSTRS,NVARI,NMATT,ICARA,CMATE,KERRE) 3 : *--------------------------------------------------------------------* 4 : * ecoulement du modele a fibre, interface avec ecoul2 5 : *--------------------------------------------------------------------* 6 : C 7 : C 8 : C variables en entree 9 : C 10 : C WRK0,KRK1 pointeurs sur des segments de travail 11 : C 12 : C NSTRS nombre de composantes dans les vecteurs des contraintes 13 : C et les vecteurs des deformations 14 : C 15 : C NVARI nombre de variables internes (doit etre egal a 2) 16 : C 17 : C NMATT nombre de constantes du materiau 18 : C 19 : C 20 : C variables en sortie 21 : C 22 : C VARF variables internes finales dans WRK1 23 : C 24 : C SIGF contraintes finales dans WRK1 25 : C 26 : *--------------------------------------------------------------------* 27 : * Pierre Pegon (ISPRA) Juillet/Aout 1993 * 28 : * Fevrier 1996 nouvel ecou * 29 : *--------------------------------------------------------------------* 30 : IMPLICIT INTEGER(I-N) 31 : IMPLICIT REAL*8(A-H,O-Z) 32 : * 33 : -INC CCOPTIO 34 : -INC SMCHAML 35 : -INC SMELEME 36 : -INC SMCOORD 37 : -INC SMMODEL 38 : -INC SMINTE 39 : -INC CCHAMP 40 : -INC SMLREEL 41 : C 42 : SEGMENT WRK0 43 : REAL*8 XMAT(NMATT) 44 : ENDSEGMENT 45 : * 46 : SEGMENT WRK1 47 : REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 48 : REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 49 : REAL*8 DEFP(NSTRS),XCAR(ICARA) 50 : ENDSEGMENT 51 : * 52 : DIMENSION DEPSI(6),SIGMA(6),DSIGT(6) 53 : DIMENSION CRIGI(12),CMASS(12) 54 : * 55 : CHARACTER*8 CMATE 56 : INTEGER NSTRS,NVARI,NMATT 57 : INTEGER IRTD,ISTRS,KERRE 58 : KERRE=0 59 : C 60 : C calcul ou recuperation de la matrice elastique 61 : C 62 : IPMODL = NINT(XMAT(1)) 63 : IPCAR = NINT(XMAT(2)) 64 : MLREEL = NINT(XMAT(3)) 65 : IF(MLREEL.EQ.0)THEN 65 : CALL FRIGIE(IPMODL,IPCAR,CRIGI,CMASS) 65 : CALL DOHTIF(CRIGI,CMATE,IFOUR,NSTRS,DDHOOK,IRTD) 66 : ELSE 67 : SEGACT, MLREEL 68 : IF (PROG(/1).NE.NSTRS**2)THEN 69 : IRTD = 0 70 : ELSE 71 : IRTD = 1 71 : CALL DOHOOO(PROG,NSTRS,DDHOOK) 72 : ENDIF 73 : SEGDES, MLREEL 74 : ENDIF 75 : C 76 : IF ( IRTD .EQ. 1) THEN 77 : C 78 : C calcul de l incrément de contrainte (pour les defo plastique) 79 : C 79 : CALL MATVE1 (DDHOOK,DEPST,NSTRS,NSTRS,DSIGT,2) 80 : C 81 : C inversion de la matrice DDHOOK 82 : C 83 : PREC=1.D-08 83 : CALL INVALM(DDHOOK,NSTRS,NSTRS,IRTD,PREC) 84 : IF (IRTD.EQ.0)THEN 85 : C 86 : C chargement de l'increment de deformation 87 : C 88 : DO I=1,NSTRS 89 : DEPSI(I)=DEPST(I) 90 : ENDDO 91 : C 92 : C recuperation du modele, des materiaux, des contraintes 93 : C et des varint de la section 94 : C 95 : IPSIG0=NINT(VAR0(1)) 96 : IPVAR0=NINT(VAR0(2)) 96 : IF(IPSIG0.EQ.0) CALL ZEROP(IPMODL,'CONTRAIN',IPSIG0) 96 : IF(IPVAR0.EQ.0) CALL ZEROP(IPMODL,'VARINTER',IPVAR0) 97 : C 98 : C ecoulement de la section 99 : C 99 : CALL FCOUL1(DEPSI,IPMODL,IPSIG0,IPVAR0,IPCAR, 100 : $ SIGMA,IPSIGF,IPVARF,IRETO,NSTRS) 101 : IF(IRETO.EQ.0) THEN 102 : print*,'erreur dans fcoul1' 103 : KERRE=56 104 : END IF 105 : C 106 : C calcul de l'increment de deformation plastique 107 : C 108 : DO I=1,NSTRS 109 : SIGF (I)=SIGMA(I) 110 : DSIGT(I)=DSIGT(I) - (SIGF(I) - SIG0(I)) 111 : END DO 112 : C 112 : CALL MATVE1 (DDHOOK,DSIGT,NSTRS,NSTRS,DEFP,1) 113 : DO I=1,NSTRS 114 : END DO 115 : C 116 : C sortie des variables internes 117 : C 118 : VARF(1)=DBLE(IPSIGF) 119 : VARF(2)=DBLE(IPVARF) 120 : ELSE 121 : print*,'erreur dans invalm' 122 : KERRE=56 123 : END IF 124 : ELSE 125 : print*,'erreur dans dohtif' 126 : KERRE=56 127 : END IF 128 : C 129 : 998 RETURN 130 : END 131 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 :
© Cast3M 2003 - All rights reserved.
Disclaimer