Download ottoxf.eso

Back to the list

   1 : C OTTOXF    SOURCE    CHAT      05/01/13    02:08:01     5004           
   2 :       SUBROUTINE OTTOXF(SIG0,DSIGT,XINVL,XLTR,NFISSU,NVF,
   3 :      &                  XXF,PRECIZ,KERRE)
   4 : *
   5 : C==========================================================================
   6 : C
   7 : C  ENTREES :
   8 : C    SIG0,DSIGT,NFISSU,NVF,XLTR,XINVL
   9 : C
  10 : C  SORTIES :
  11 : C    XXF
  12 : C==========================================================================
  13 : C
  14 :       IMPLICIT INTEGER(I-N)
  15 :       IMPLICIT REAL*8(A-H,O-Z)      
  16 : -INC CCOPTIO
  17 : C
  18 :       PARAMETER (XZER=0.D0,UN=1.D0)
  19 : C
  20 :       DIMENSION SIG0(6),DSIGT(6),XLTR(3),XINVL(3)
  21 : *
  22 :       DIMENSION A3(3,3),B3(3,3),D3(3),XXF(3)
  23 : *
  24 :       DO IC=1,3
  25 :          XXF(IC)=1.D4
  26 :       ENDDO
  27 : C
  28 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  29 : C            LES TROIS DIRECTIONS SONT DEJA FISSUREES
  30 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  31 : C
  32 :       IF (NFISSU.EQ.3) THEN
  33 :          RETURN
  34 :       ENDIF
  35 : C
  36 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  37 : C            DEUX DIRECTIONS SONT DEJA FISSUREES
  38 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  39 : C
  40 :       IF (NFISSU.EQ.2) THEN
  41 : C
  42 : C        SEULE LA DIRECTION no IFIS N EST PAS FISSUREE
  43 : C
  44 :          IF ((XINVL(1)*XINVL(2)).NE.XZER) IFIS=3
  45 :          IF ((XINVL(1)*XINVL(3)).NE.XZER) IFIS=2
  46 :          IF ((XINVL(2)*XINVL(3)).NE.XZER) IFIS=1
  47 : *
  48 :          IF (DSIGT(IFIS).NE.XZER) THEN
  49 :             XXF(IFIS)=(XLTR(IFIS)-SIG0(IFIS))/DSIGT(IFIS)
  50 :          ENDIF
  51 :       ENDIF
  52 : C
  53 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  54 : C            UNE DIRECTION EST DEJA FISSUREE
  55 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  56 : C
  57 :       IF (NFISSU.EQ.1) THEN
  58 : C
  59 : C        SEULE LA DIRECTION no IFIS EST FISSUREE
  60 : C
  61 :          IF (XINVL(1).NE.XZER) IFIS=1
  62 :          IF (XINVL(2).NE.XZER) IFIS=2
  63 :          IF (XINVL(3).NE.XZER) IFIS=3
  64 : *
  65 : *         IF(IIMPI.EQ.42) THEN
  66 : *            WRITE(IOIMP,77004) IFIS
  67 : *77004       FORMAT( 2X, 'OTTOXF - IFIS =',I4/)
  68 : *         ENDIF
  69 : C
  70 : C    CAS 1 :
  71 : C       DEUX DIRECTIONS DE FAIBLESSE NON FISSUREE, UNE DIRECTION FISSUREE
  72 : C
  73 : C remarque : ce cas est identique a une direction de faiblesse 
  74 : C            non fissuree et une direction de fissuration.
  75 : C
  76 :          IF (NVF.EQ.2.OR.NVF.EQ.1) THEN
  77 : C
  78 : C         direction 1 fissuree
  79 : C
  80 : 
  81 :             IF (IFIS.EQ.1) THEN
  82 :                IF (DSIGT(2).NE.XZER) THEN
  83 :                  XXF(2)=(XLTR(2)-SIG0(2))/DSIGT(2)
  84 :                ENDIF
  85 :                IF (DSIGT(3).NE.XZER) THEN
  86 :                  XXF(3)=(XLTR(3)-SIG0(3))/DSIGT(3)
  87 :                ENDIF
  88 :             ENDIF
  89 : C
  90 : C         direction 2 fissuree
  91 : C
  92 :             IF (IFIS.EQ.2) THEN
  93 :                IF (DSIGT(1).NE.XZER) THEN
  94 :                  XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
  95 :                ENDIF
  96 :                IF (DSIGT(3).NE.XZER) THEN
  97 :                  XXF(3)=(XLTR(3)-SIG0(3))/DSIGT(3)
  98 :                ENDIF
  99 :             ENDIF
 100 : C
 101 : C         direction 3 fissuree
 102 : C
 103 : C  remarque : ce cas est impossible s il n y a qu une direction imposee
 104 : C             et une direction de fissuration.
 105 : C
 106 :             IF (IFIS.EQ.3) THEN
 107 :                IF (DSIGT(1).NE.XZER) THEN
 108 :                  XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
 109 :                ENDIF
 110 :                IF (DSIGT(2).NE.XZER) THEN
 111 :                  XXF(2)=(XLTR(2)-SIG0(2))/DSIGT(2)
 112 :                ENDIF
 113 :             ENDIF
 114 :          ENDIF
 115 : C
 116 : C    CAS 2 :  PAS DE DIRECTION DE FAIBLESSE
 117 : C
 118 : C---------rq XLTR(2)=XLTR(3) puisque l on n a pas fissure---------
 119 : C-----------et qu il n y a pas de direction de faiblesse----------
 120 : C
 121 :          IF (NVF.EQ.0) THEN
 122 : C
 122 :             CALL ZERO(A3,3,3)
 122 :             CALL ZERO(B3,3,3)
 123 :             A3(1,1)=SIG0(2)-XLTR(2)
 124 :             A3(1,2)=SIG0(6)
 125 :             A3(2,1)=SIG0(6)
 126 :             A3(2,2)=SIG0(3)-XLTR(2)
 127 : *
 128 :             B3(1,1)=DSIGT(2)
 129 :             B3(1,2)=DSIGT(6)
 130 :             B3(2,1)=DSIGT(6)
 131 :             B3(2,2)=DSIGT(3)
 131 :             CALL OTTOB3(A3,B3,2,D3,KERRE)
 132 :             IF(KERRE.NE.0) RETURN
 133 : C
 134 :             XXF(2)=D3(1)
 135 :             XXF(3)=D3(2)
 136 :           ENDIF
 137 :           RETURN
 138 :       ENDIF
 139 : C
 140 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 141 : C               AUCUNE DIRECTION DEJA FISSUREE
 142 : C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 143 : C
 144 :       IF (NFISSU.EQ.0) THEN
 145 : C
 146 : C    CAS 1 : DEUX OU TROIS DIRECTIONS DE FAIBLESSE
 147 : C
 148 : 
 149 :          IF (NVF.EQ.2.OR.NVF.EQ.3) THEN
 150 :             IF (DSIGT(1).NE.XZER) THEN
 151 :               XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
 152 :             ENDIF
 153 :             IF (DSIGT(2).NE.XZER) THEN
 154 :               XXF(2)=(XLTR(2)-SIG0(2))/DSIGT(2)
 155 :             ENDIF
 156 :             IF (DSIGT(3).NE.XZER) THEN
 157 :               XXF(3)=(XLTR(3)-SIG0(3))/DSIGT(3)
 158 :             ENDIF
 159 :          ENDIF
 160 : C
 161 : C    CAS 2 : UNE DIRECTION DE FAIBLESSE
 162 : C
 163 :          IF (NVF.EQ.1) THEN
 164 :             IF (DSIGT(1).NE.XZER) THEN
 165 :               XXF(1)=(XLTR(1)-SIG0(1))/DSIGT(1)
 166 :             ENDIF
 167 : C
 167 :             CALL ZERO(A3,3,3)
 167 :             CALL ZERO(B3,3,3)
 168 : *
 169 :             A3(1,1)=SIG0(2)-XLTR(2)
 170 :             A3(1,2)=SIG0(6)
 171 :             A3(2,1)=SIG0(6)
 172 :             A3(2,2)=SIG0(3)-XLTR(2)
 173 : *
 174 :             B3(1,1)=DSIGT(2)
 175 :             B3(1,2)=DSIGT(6)
 176 :             B3(2,1)=DSIGT(6)
 177 :             B3(2,2)=DSIGT(3)
 178 : *
 178 :             CALL OTTOB3(A3,B3,2,D3,KERRE)
 179 :             IF(KERRE.NE.0) RETURN
 180 : *
 181 :             XXF(2)=D3(1)
 182 :             XXF(3)=D3(2)
 183 :          ENDIF            
 184 : C
 185 : C    CAS 3 : PAS DE DIRECTION DE FAIBLESSE
 186 : C
 187 :          IF (NVF.EQ.0) THEN
 188 : *
 189 :             A3(1,1)=SIG0(1)-XLTR(1)
 190 :             A3(1,2)=SIG0(4)
 191 :             A3(1,3)=SIG0(5)
 192 :             A3(2,1)=SIG0(4)
 193 :             A3(2,2)=SIG0(2)-XLTR(1)
 194 :             A3(2,3)=SIG0(6)
 195 :             A3(3,1)=SIG0(5)
 196 :             A3(3,2)=SIG0(6)
 197 :             A3(3,3)=SIG0(3)-XLTR(1)
 198 : *
 199 :             B3(1,1)=DSIGT(1)
 200 :             B3(1,2)=DSIGT(4)
 201 :             B3(1,3)=DSIGT(5)
 202 :             B3(2,1)=DSIGT(4)
 203 :             B3(2,2)=DSIGT(2)
 204 :             B3(2,3)=DSIGT(6)
 205 :             B3(3,1)=DSIGT(5)
 206 :             B3(3,2)=DSIGT(6)
 207 :             B3(3,3)=DSIGT(3)
 208 : *
 208 :             CALL OTTOB3(A3,B3,3,D3,KERRE)
 209 :             IF(KERRE.NE.0) RETURN
 210 : *
 211 :             XXF(1)=D3(1)
 212 :             XXF(2)=D3(2)
 213 :             XXF(3)=D3(3)
 214 : 
 215 :          ENDIF
 216 :       ENDIF
 217 : 
 218 :       RETURN
 219 :       END
 220 :  
 221 :  
 222 :  
 223 :  
 224 :  
 225 :  

© Cast3M 2003 - All rights reserved.
Disclaimer