Download biflex.eso

Back to the list

   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