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