Download otobo.eso

Back to the list

   1 : C OTOBO     SOURCE    CHAT      05/01/13    02:06:53     5004           
   2 :       SUBROUTINE OTOBO(VAR0,XMAT,IVAL,ITOTO,MFR)
   3 : C                                                                               
   4 : C ==================================================================            
   5 : C CE SOUS-PROGRAMME EST APPELE DANS CERACA ET CCERAC.                                    
   6 : C IL REGARDE SI ON A FISSURE ET PAS REFERME LA FISSURE
   7 : C DANS CE CAS ON APPELLE INCONDITIONNELLEMENT OTTOSEN 
   8 : C                                                                               
   9 : C ENTREES:                                                                      
  10 : C -------                                                                                                                                              
  11 : C VAR0(NVARI)  = VARIABLES INTERNES AU DEBUT DU PAS D'INTEGRATION               
  12 : C       (NVARI= NBR. DE VARIABLES INTERNES) 
  13 : C                           
  14 : C IVAL(NCOMAT) = INDICE DES COMPOSANTES DE MATERIAU                
  15 : C XMAT(NCOMAT) = CARACTERISTIQUES MECANIQUES DU MATERIAU                        
  16 : C       (NCOMAT = NBR. DE CARACTERISTIQUES MECANIQUES DU MATERIAU)
  17 : C                                                                                         
  18 : C SORTIES:                                                                      
  19 : C -------                                                                       
  20 : C ITOTO = 1 ===> On appelle Ottosen Obligatoirement                              
  21 : C ==================================================================
  22 : C       ICI IL FAUT PROGRAMMER EN FORTRAN PUR
  23 : C ===================================================================            
  24 : C
  25 :       IMPLICIT INTEGER(I-N)
  26 :       IMPLICIT REAL*8(A-H,O-Z)     
  27 : -INC CCOPTIO
  28 : C 
  29 :       PARAMETER (XZER=0.D0,DEUX=2.D0,TROIS=3.D0)
  30 : C
  31 :       DIMENSION VAR0(*),XMAT(*),IVAL(*)
  32 : C
  33 :       DIMENSION WMAX(3),W(3),WRUPT(3),WREOUV(3),GFTR(3),XLTR(3)
  34 : C 
  35 : C*******************************************************************
  36 : C===================================================================
  37 : C  INITIALISATION DES VARIABLES INTERNES ET DES CARACTERISTIQUES
  38 : C===================================================================
  39 : C
  40 : C
  41 : C###################################################################
  42 : C===================================================================
  43 : C           INITIALISATION DES CARACTERISTIQUES
  44 : C===================================================================
  45 : C###################################################################
  46 : C
  47 : C   Les 2 eres valeurs de Xmat_OBLIGATOIRES sont reservees pour des MOOBL
  48 : C   Les 2 eres valeurs de Xmat_FACULTATIF sont reservees pour des MOFAC
  49 : C    et la 3 eme en cas de contraintes planes (DIM3)
  50 : C
  51 : C  
  52 : C       PRINT *,'ENTREE OTOBO'  
  53 :       IF (IFOMOD.EQ.2.AND.MFR.EQ.1) THEN
  54 :         NOBL=22
  55 :       ELSE 
  56 :         NOBL=17 
  57 :         IF(MFR.EQ.1.AND.IFOUR.EQ.-2) THEN 
  58 :           NOBL=18
  59 :         ENDIF
  60 :       ENDIF     
  61 : C      
  62 : C===================================================
  63 : C----------------TRACTION SIMPLE--------------------
  64 : C===================================================
  65 :       YOUN=XMAT(1)
  66 :       XNU =XMAT(2) 
  67 :       XDLTR=XMAT(2+NOBL)
  68 :       IF (IVAL(2+NOBL).EQ.0) XDLTR=YOUN*1.2D-4
  69 :       XDGFTR=XMAT(1+NOBL)
  70 :       IF (IVAL(1+NOBL).EQ.0) XDGFTR=XDLTR*3.9D-5
  71 :       BTR=XMAT(6+NOBL)
  72 :       IF (IVAL(6+NOBL).EQ.0) BTR=0.2D0
  73 :       XDWRUP=XMAT(8+NOBL)
  74 : C
  75 : C###################################################################
  76 : C===================================================================
  77 : C            INITIALISATION DES VARIABLES INTERNES
  78 : C===================================================================
  79 : C###################################################################
  80 : C
  81 : C======================================
  82 : C---------CAS TRIDIMENSIONNEL MASSIF---
  83 : C======================================
  84 : C
  85 : C            NVARI=20    cf. IDVAR6
  86 : C
  87 :       IF (IFOUR.EQ.2.AND.MFR.EQ.1) THEN
  88 :          DO 10 IC=1,3
  89 :             ICN=IC+NOBL
  90 :             WMAX(IC)=VAR0(IC+1)
  91 :             W(IC)=VAR0(IC+4)
  92 :             GFTR(IC)=XMAT(ICN+9)
  93 :             IF (GFTR(IC).EQ.XZER) GFTR(IC)=XDGFTR
  94 :             XLTR(IC)=XMAT(ICN+15)
  95 :             IF (XLTR(IC).EQ.XZER) XLTR(IC)=XDLTR
  96 :             WRUPT(IC)=XMAT(ICN+24)
  97 :             IF (WRUPT(IC).EQ.XZER) THEN
  98 :                IF(XDWRUP.EQ.XZER) THEN
  99 :                   WRUPT(IC)=DEUX*GFTR(IC)/XLTR(IC)
 100 :                ELSE
 101 :                   WRUPT(IC)=XDWRUP
 102 :                ENDIF
 103 :             ENDIF
 104 :   10     CONTINUE
 105 :       ENDIF
 106 : C
 107 : C======================================
 108 : C-----------CAS CONT PLANE-------------
 109 : C---- OU TRIDIM COQUES MINCES ---------
 110 : C======================================
 111 : C
 112 : C            NVARI=12    cf. IDVAR6
 113 : C
 114 :       IF (IFOUR.EQ.-2.OR.
 115 :      .   (IFOUR.EQ.2.AND.(MFR.EQ.3.OR.MFR.EQ.9))) THEN
 116 :          DO 11 IC=1,2
 117 :             ICN=IC+NOBL
 118 :             WMAX(IC+1)=VAR0(IC+1)
 119 :             W(IC+1)=VAR0(IC+3)
 120 :             GFTR(IC+1)=XMAT(ICN+9)
 121 :             IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
 122 :             XLTR(IC+1)=XMAT(ICN+13)
 123 :             IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
 124 :             WRUPT(IC+1)=XMAT(ICN+19)
 125 :             IF (WRUPT(IC+1).EQ.XZER) THEN
 126 :                IF(XDWRUP.EQ.XZER) THEN
 127 :                   WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
 128 :                ELSE
 129 :                   WRUPT(IC+1)=XDWRUP
 130 :                ENDIF
 131 :             ENDIF
 132 :   11     CONTINUE
 133 : C
 134 : C------------------------------------------------------------
 135 : C  La direction normale au plan est une direction principale
 136 : C         elle est definie par VF1 et indice par 1
 137 : C------------------------------------------------------------
 138 : C
 139 :          WMAX(1)=XZER
 140 :          W(1)=XZER
 141 :          GFTR(1)=XDGFTR
 142 :          XLTR(1)=XDLTR
 143 :          WRUPT(1)=DEUX*GFTR(1)/XLTR(1)
 144 :       ENDIF
 145 : C
 146 : C===========================================
 147 : C-----------CAS DEFO PLANE/AXIS-------------
 148 : C===========================================
 149 : C
 150 : C            NVARI=15    cf. IDVAR6
 151 : C
 152 :       IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR.IFOUR.EQ.0) THEN
 153 :          DO 12 IC=1,2
 154 :             ICN=IC+NOBL
 155 :             WMAX(IC+1)=VAR0(IC+1)
 156 :             W(IC+1)=VAR0(IC+4)
 157 :             GFTR(IC+1)=XMAT(ICN+10)
 158 :             IF (GFTR(IC+1).EQ.XZER) GFTR(IC+1)=XDGFTR
 159 :             XLTR(IC+1)=XMAT(ICN+16)
 160 :             IF (XLTR(IC+1).EQ.XZER) XLTR(IC+1)=XDLTR
 161 :             WRUPT(IC+1)=XMAT(ICN+25)
 162 :             IF (WRUPT(IC+1).EQ.XZER) THEN
 163 :                IF(XDWRUP.EQ.XZER) THEN
 164 :                   WRUPT(IC+1)=DEUX*GFTR(IC+1)/XLTR(IC+1)
 165 :                ELSE
 166 :                   WRUPT(IC+1)=XDWRUP
 167 :                ENDIF
 168 :             ENDIF
 169 :   12     CONTINUE
 170 : C
 171 : C__________________________________________________________
 172 : C   les caracteristiques dans la direction normale au plan
 173 : C           sont traitees particulierement
 174 : C----------------------------------------------------------
 175 : C
 176 :          XDEPSR=XMAT(10+NOBL)
 177 :          IF (IVAL(10+NOBL).EQ.0) XDEPSR=TROIS*XDLTR/YOUN
 178 : C
 179 : C------------------------------------------------------------
 180 : C  La direction normale au plan est une direction principale
 181 : C         elle est definie par VF1 et indice par 1
 182 : C------------------------------------------------------------
 183 : C
 184 :          WMAX(1)=VAR0(4)
 185 :          W(1)=VAR0(7)
 186 :          WRUPT(1)=XDEPSR
 187 :       ENDIF
 188 : 
 189 : C#######################################
 190 : C=======================================
 191 : C---------ON DETERMINE SI ON DOIT OU NON 
 192 : C          APPELER OTTOSEN    ----------
 193 : C=======================================
 194 : C 
 195 : C            L'élement at-il été fissuré ou rompu 
 196 :       IFIFI = 0
 197 :       DO 13 I=1,3
 198 :         IF (WMAX(I).GT.0.D0) THEN 
 199 :           IFIFI = 1
 200 :         ENDIF
 201 :   13  CONTINUE
 202 :       ITOTO = 0
 203 :       IF (IFIFI.NE.1) THEN 
 204 : C       PRINT *,'IFIFI =0' 
 205 :         RETURN 
 206 :       ENDIF
 207 :       DO 14 I=1,3
 208 :         WREOUV(I) = BTR*MIN(WMAX(I),WRUPT(I))
 209 : C       PRINT *,'W(',I,')=',W(I) 
 210 : C       PRINT *,'WREOUV(',I,')=',WREOUV(I),WRUPT(I),(BTR*WRUPT(I))
 211 :         IF (W(I).GT.WREOUV(I)) THEN 
 212 :           ITOTO = 1
 213 :         ENDIF 
 214 :   14  CONTINUE
 215 : C      IF (ITOTO.EQ.0) THEN 
 216 : C       PRINT *,'J ai refermé ma fissure '
 217 : C      ENDIF
 218 :       RETURN
 219 :       END     
 220 :  
 221 :  
 222 :  
 223 :  
 224 :  
 225 :  
 226 :  
 227 :  
 228 :  
 229 :  
 230 :  
 231 :  

© Cast3M 2003 - All rights reserved.
Disclaimer