1 : C CASTET SOURCE CHAT 05/01/12 21:49:32 5004
2 : SUBROUTINE CASTET(SIGPA,SIGPB,SIGNA,SIGNB,SIGTO,SIGCO,EPSPA,EPSPB,
3 : . EPSNA,EPSNB,SIGSUP,SIGINF,EPSUP,EPINF,EPSO,RMOD,SIGO,DSIG,
4 : . NUMETA,EPSEQ,IECRAS,SIGND,EPSND,SIGNC,EPSNC,SIGPC,EPSPC,SIGPD,
5 : . EPSPD,SIGBET,EPSBET,IPRECI,IIMPI,KERRE)
6 : C
7 : C S.P. APPELE PAR BETON MODELE DE CYCLAGE POUR POUTRE BETON ARME
8 : C ENTREE : DSIG=DSIG ELAS ----- SORTIE : DSIG=SIG. FINAL
9 : C
10 : C COURBE DEMI-SQUELETTE :
11 : C O-A PARTIE 1 CHARGE ET DECHARGE ELASTIQUE
12 : C A-B PARTIE 2 PLASTIQUE DECHARGE PASSANT PAR ORIGINE
13 : C B-C-D PARTIE 3 PLASTIQUE DECHARGE AVEC MODULE FINAL
14 : C
15 : C L ETAT DE L ELEMENT EST DEFINI PAR L INDICE MULTIPLE NUMETA(I) :
16 : C LE 1ER CHIFFRE INDIQUE LA PARTIE MAXI ATTEINTE SUR LA COURBE POSITIVE
17 : C LE 2EME CHIFFRE INDIQUE LA PARTIE MINI ATTEINTE SUR LA COURBE NEGATIVE
18 : C LE 3EME CHIFFRE INDIQUE LA POSITION DE SIGO(I) DANS LE DIAGRAMME :
19 : C 1 : SIGO EST SUR LA COURBE POSITIVE
20 : C 2 : SIGO EST DANS LA ZONE POSITIVE MAIS HORS DE LA COURBE
21 : C 3 : SIGO EST SUR LA COURBE NEGATIVE
22 : C 4 : SIGO EST DANS LA ZONE NEGATIVE MAIS HORS DE LA COURBE
23 : C LE 4EME CHIFFRE INDIQUE LA PARTIE DE LA COURBE OU EST SIGO(I)
24 : C
25 : C COURBE EN 4 POINTS (CAS ORDINAIRE) :
26 : C - SIGNB,SIGNA,0,SIGPA,SIGPB +
27 : C COURBE EN 8 POINTS (CAS ECRASEMENT) :
28 : C - SIGND,SIGNC,SIGNB,SIGNA,0,SIGPA,SIGPB,SIGPC,SIGPD +
29 : C COURBE EN 16 POINTS (CAS PRECISION) :
30 : C - SIGND,SIGNC,SIGBET(,1),SIGBET(,2),SIGNB,SIGBET(,3),SIGBET(,4)
31 : C SIGNA,0,SIGPA,
32 : C SIGBET(,5),SIGBET(,6),SIGPB,SIGBET(,7),SIGBET(,8),SIGPC,SIGPD +
33 : C
34 : C EPSO,SIGO : ETAT INITIAL
35 : C EPINF,SIGINF : ETAT EXTREME ATTEINT SUR LA COURBE NEGATIVE
36 : C EPSUP,SIGSUP : ETAT EXTREME ATTEINT SUR LA COURBE POSITIVE
37 : C EPSEQ : DEFORMATION PLASTIQUE EQUIVALENTE
38 : C
39 : IMPLICIT INTEGER(I-N)
40 : IMPLICIT REAL*8(A-H,O-Z)
41 : *
42 : DIMENSION RMOD(4),SIGO(4),DSIG(4),EPSO(2),NUMETA(2),EPSPLA(4)
43 : 1,SIGPA(2),SIGPB(2),SIGNA(2),SIGNB(2),SIGSUP(2),SIGINF(2)
44 : 2,EPSPA(2),EPSPB(2),EPSNA(2),EPSNB(2),EPSUP(2),EPINF(2)
45 : 3,SIGND(2),SIGNC(2),SIGPC(2),SIGPD(2),EPSND(2),EPSNC(2),EPSPC(2)
46 : 4,EPSPD(2),SIGBET(2,8),EPSBET(2,8)
47 : C
48 : DEPSEQ=0.
49 : DO 950 I=1,4
50 : IF(DSIG(I).NE.0.) GO TO 5
51 : DSIG(I)=SIGO(I)
52 : GO TO 950
53 : 5 EPSTOT=0.
54 : EPSIN=0.
55 : DEPS=DSIG(I)/RMOD(I)
56 : SIGEL=SIGO(I)+DSIG(I)
57 : IF(IIMPI.EQ.16)THEN
58 : WRITE(6,*) 'RMOD(',I,') =',RMOD(I)
59 : WRITE(6,*) 'SIGO(',I,') =',SIGO(I)
60 : WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
61 : WRITE(6,*) 'SIGEL =',SIGEL
62 : WRITE(6,*) 'EPSO(',I,') =',EPSO(I)
63 : WRITE(6,*) 'DEPS =',DEPS
64 : ENDIF
65 : GO TO(40,40,10,20),I
66 : C
67 : C TORSION : PLASTIQUE PARFAIT
68 : C
69 : 10 SIGF=SIGO(I)+DSIG(I)
70 : IF(IIMPI.EQ.16) WRITE(6,*) 'SIGF =',SIGF,'SIGTO =',SIGTO
71 : IF(SIGF.GT.SIGTO) DSIG(I)=SIGTO-SIGO(I)
72 : IF(SIGF.LT.(-SIGTO)) DSIG(I)=-SIGTO-SIGO(I)
73 : GO TO 900
74 : C
75 : C COMPRESSION : PLASTIQUE PARFAIT
76 : C
77 : 20 SIGF=SIGO(I)+DSIG(I)
78 : IF(IIMPI.EQ.16) WRITE(6,*) 'SIGF =',SIGF,'SIGCO =',SIGCO
79 : IF(SIGF.GT.SIGCO) DSIG(I)=SIGCO-SIGO(I)
80 : IF(SIGF.LT.(-SIGCO)) DSIG(I)=-SIGCO-SIGO(I)
81 : GO TO 900
82 : C
83 : 40 EPSIN=EPSO(I)
84 : IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I)
85 : IEP=NUMETA(I)/1000
86 : IEM=NUMETA(I)/100
87 : IF(IIMPI.EQ.16) WRITE(6,*) 'IEP =',IEP
88 : NUMETA(I)=NUMETA(I)-100*IEM
89 : IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I)
90 : IEM=IEM-10*IEP
91 : IF(IIMPI.EQ.16) WRITE(6,*) 'IEM =',IEM
92 : EPSTOT=EPSIN+DEPS
93 : IF(IIMPI.EQ.16)THEN
94 : WRITE(6,*) 'SIGPA(',I,') =',SIGPA(I)
95 : WRITE(6,*) 'EPSPA(',I,') =',EPSPA(I)
96 : WRITE(6,*) 'SIGPB(',I,') =',SIGPB(I)
97 : WRITE(6,*) 'EPSPB(',I,') =',EPSPB(I)
98 : WRITE(6,*) 'SIGPC(',I,') =',SIGPC(I)
99 : WRITE(6,*) 'EPSPC(',I,') =',EPSPC(I)
100 : WRITE(6,*) 'SIGPD(',I,') =',SIGPD(I)
101 : WRITE(6,*) 'EPSPD(',I,') =',EPSPD(I)
102 : WRITE(6,*) 'SIGNA(',I,') =',SIGNA(I)
103 : WRITE(6,*) 'EPSNA(',I,') =',EPSNA(I)
104 : WRITE(6,*) 'SIGNB(',I,') =',SIGNB(I)
105 : WRITE(6,*) 'EPSNB(',I,') =',EPSNB(I)
106 : WRITE(6,*) 'SIGNC(',I,') =',SIGNC(I)
107 : WRITE(6,*) 'EPSNC(',I,') =',EPSNC(I)
108 : WRITE(6,*) 'SIGND(',I,') =',SIGND(I)
109 : WRITE(6,*) 'EPSND(',I,') =',EPSND(I)
110 : WRITE(6,*) 'EPSTOT =',EPSTOT
111 : WRITE(6,*) 'SIGSUP(',I,') =',SIGSUP(I)
112 : WRITE(6,*) 'EPSUP(',I,') =',EPSUP(I)
113 : WRITE(6,*) 'SIGINF(',I,') =',SIGINF(I)
114 : WRITE(6,*) 'EPINF(',I,') =',EPINF(I)
115 : ENDIF
116 : IF(SIGO(I)*DSIG(I)) 450,45,50
117 : 45 IF(NUMETA(I).NE.0) GO TO 50
118 : NUMETA(I)=11
119 : IF(DSIG(I).LT.0) NUMETA(I)=31
120 : C
121 : C CHARGE
122 : C
123 : 50 ICAS=NUMETA(I)/10
124 : IF(IIMPI.EQ.16) WRITE(6,*) 'ICAS=',ICAS
125 : GO TO(100,200,300,400),ICAS
126 : C
127 : C (SIGO,EPSO) SUR LA COURBE COTE POSITIF
128 : 100 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT
129 : IF(IIMPI.EQ.16) WRITE(6,*) 'EPSUP(',I,') =',EPSUP(I)
130 : JCAS=NUMETA(I)-10
131 : IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS
132 : GO TO(110,120,125),JCAS
133 : 110 IF(EPSTOT.GT.EPSPA(I)) GO TO 115
134 : IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)
135 : NUMETA(I)=11
136 : GO TO 900
137 : 115 IF(EPSTOT.GT.EPSPB(I)) GO TO 125
138 : IF(IPRECI.EQ.1) GO TO 1151
139 : DSIG(I)=SIGPA(I)-SIGO(I)+(EPSTOT-EPSPA(I))*(SIGPB(I)-SIGPA(I))
140 : 1/(EPSPB(I)-EPSPA(I))
141 : GO TO 1156
142 : 1151 IF(EPSTOT.GT.EPSBET(I,5)) GO TO 1152
143 : DSIG(I)=SIGPA(I)-SIGO(I)+(EPSTOT-EPSPA(I))
144 : 1 *(SIGBET(I,5)-SIGPA(I))/(EPSBET(I,5)-EPSPA(I))
145 : GO TO 1156
146 : 1152 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1154
147 : DSIG(I)=SIGBET(I,5)-SIGO(I)+(EPSTOT-EPSBET(I,5))
148 : 1 *(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5))
149 : GO TO 1156
150 : 1154 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6))
151 : 1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))
152 : 1156 CONTINUE
153 : IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)
154 : NUMETA(I)=12
155 : IEP=2
156 : GO TO 900
157 : 120 IF(EPSTOT.GT.EPSPB(I)) GO TO 125
158 : IF(IPRECI.EQ.1) GO TO 1211
159 : DSIG(I)=DEPS*(SIGPB(I)-SIGPA(I))/(EPSPB(I)-EPSPA(I))
160 : GO TO 1240
161 : 1211 IF(EPSO(I).GT.EPSBET(I,5)) GO TO 1220
162 : IF(EPSTOT.GT.EPSBET(I,5)) GO TO 1212
163 : DSIG(I)=DEPS*(SIGBET(I,5)-SIGPA(I))/(EPSBET(I,5)-EPSPA(I))
164 : GO TO 1240
165 : 1212 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1214
166 : DSIG(I)=SIGBET(I,5)-SIGO(I)+(EPSTOT-EPSBET(I,5))
167 : 1 *(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5))
168 : GO TO 1240
169 : 1214 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6))
170 : 1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))
171 : GO TO 1240
172 : 1220 IF(EPSO(I).GT.EPSBET(I,6)) GO TO 1230
173 : IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1224
174 : DSIG(I)=DEPS*(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5))
175 : GO TO 1240
176 : 1224 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6))
177 : 1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))
178 : GO TO 1240
179 : 1230 DSIG(I)=DEPS*(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6))
180 : 1240 CONTINUE
181 : IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)
182 : GO TO 900
183 : 125 CONTINUE
184 : IF(IECRAS.EQ.0) GO TO 130
185 : IF(EPSTOT.GT.EPSPC(I)) GO TO 135
186 : IF(IPRECI.EQ.1) GO TO 1261
187 : DSIG(I)=SIGPB(I)-SIGO(I)+(EPSTOT-EPSPB(I))*(SIGPC(I)-SIGPB(I))
188 : 1/(EPSPC(I)-EPSPB(I))
189 : GO TO 1290
190 : 1261 IF(EPSO(I).GT.EPSBET(I,7)) GO TO 1270
191 : IF(EPSTOT.GT.EPSBET(I,7)) GO TO 1262
192 : DSIG(I)=DEPS*(SIGBET(I,7)-SIGPB(I))/(EPSBET(I,7)-EPSPB(I))
193 : GO TO 1290
194 : 1262 IF(EPSTOT.GT.EPSBET(I,8)) GO TO 1264
195 : DSIG(I)=SIGBET(I,7)-SIGO(I)+(EPSTOT-EPSBET(I,7))
196 : 1 *(SIGBET(I,8)-SIGBET(I,7))/(EPSBET(I,8)-EPSBET(I,7))
197 : GO TO 1290
198 : 1264 DSIG(I)=SIGBET(I,8)-SIGO(I)+(EPSTOT-EPSBET(I,8))
199 : 1 *(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8))
200 : GO TO 1290
201 : 1270 IF(EPSO(I).GT.EPSBET(I,8)) GO TO 1280
202 : IF(EPSTOT.GT.EPSBET(I,8)) GO TO 1274
203 : DSIG(I)=DEPS*(SIGBET(I,8)-SIGBET(I,7))/(EPSBET(I,8)-EPSBET(I,7))
204 : GOTO 1290
205 : 1274 DSIG(I)=SIGBET(I,8)-SIGO(I)+(EPSTOT-EPSBET(I,8))
206 : 1 *(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8))
207 : GO TO 1290
208 : 1280 DSIG(I)=DEPS*(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8))
209 : 1290 CONTINUE
210 : GO TO 180
211 : 130 DSIG(I)=SIGPB(I)-SIGO(I)
212 : GO TO 180
213 : 135 IF(EPSTOT.GT.EPSPD(I)) GO TO 145
214 : DSIG(I)=SIGPC(I)-SIGO(I)+(EPSTOT-EPSPC(I))*(SIGPD(I)-SIGPC(I))
215 : 1/(EPSPD(I)-EPSPC(I))
216 : GO TO 180
217 : 145 DSIG(I)=SIGPD(I)-SIGO(I)
218 : 180 IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)
219 : NUMETA(I)=13
220 : IEP=3
221 : GO TO 900
222 : C
223 : C (SIGO,EPSO) HORS DE LA COURBE COTE POSITIF
224 : 200 DFSUP=EPSUP(I)
225 : CONSUP=SIGSUP(I)
226 : IF(SIGSUP(I).LT.SIGPA(I)) CONSUP=SIGPA(I)
227 : IF(EPSUP(I).LT.EPSPA(I)) DFSUP=EPSPA(I)
228 : IF(EPSTOT.GE.DFSUP) GO TO 205
229 : DSIG(I)=DEPS*(CONSUP-SIGO(I))/(DFSUP-EPSIN+1.D-20)
230 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
231 : GO TO 900
232 : 205 JCAS=NUMETA(I)-20
233 : IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT
234 : GO TO(210,115,125),JCAS
235 : 210 IF(EPSTOT.GT.EPSPA(I)) GO TO 115
236 : DSIG(I)=DEPS*(CONSUP-SIGO(I))/(DFSUP-EPSIN+1.D-20)
237 : IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I)
238 : NUMETA(I)=11
239 : GO TO 900
240 : C
241 : C (SIGO,EPSO) SUR LA COURBE COTE NEGATIF
242 : 300 IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT
243 : JCAS=NUMETA(I)-30
244 : IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS
245 : GO TO(310,320,325),JCAS
246 : 310 IF(EPSTOT.LT.EPSNA(I)) GO TO 315
247 : IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)
248 : NUMETA(I)=31
249 : GO TO 900
250 : 315 IF(EPSTOT.LT.EPSNB(I)) GO TO 325
251 : IF(IPRECI.EQ.1) GO TO 3151
252 : DSIG(I)=SIGNA(I)-SIGO(I)+(EPSTOT-EPSNA(I))*(SIGNB(I)-SIGNA(I))
253 : 1/(EPSNB(I)-EPSNA(I))
254 : GO TO 3156
255 : 3151 IF(EPSTOT.LT.EPSBET(I,4)) GO TO 3152
256 : DSIG(I)=SIGNA(I)-SIGO(I)+(EPSTOT-EPSNA(I))
257 : 1 *(SIGBET(I,4)-SIGNA(I))/(EPSBET(I,4)-EPSNA(I))
258 : GO TO 3156
259 : 3152 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3154
260 : DSIG(I)=SIGBET(I,4)-SIGO(I)+(EPSTOT-EPSBET(I,4))
261 : 1 *(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4))
262 : GO TO 3156
263 : 3154 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3))
264 : 1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))
265 : 3156 CONTINUE
266 : IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)
267 : NUMETA(I)=32
268 : IEM=2
269 : GO TO 900
270 : 320 IF(EPSTOT.LT.EPSNB(I)) GO TO 325
271 : IF(IPRECI.EQ.1) GO TO 3211
272 : DSIG(I)=DEPS*(SIGNB(I)-SIGNA(I))/(EPSNB(I)-EPSNA(I))
273 : GO TO 3240
274 : 3211 IF(EPSO(I).LT.EPSBET(I,4)) GO TO 3220
275 : IF(EPSTOT.LT.EPSBET(I,4)) GO TO 3212
276 : DSIG(I)=DEPS*(SIGBET(I,4)-SIGNA(I))/(EPSBET(I,4)-EPSNA(I))
277 : GO TO 3240
278 : 3212 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3214
279 : DSIG(I)=SIGBET(I,4)-SIGO(I)+(EPSTOT-EPSBET(I,4))
280 : 1 *(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4))
281 : GO TO 3240
282 : 3214 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3))
283 : 1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))
284 : GO TO 3240
285 : 3220 IF(EPSO(I).LT.EPSBET(I,3)) GO TO 3230
286 : IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3224
287 : DSIG(I)=DEPS*(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4))
288 : GO TO 3240
289 : 3224 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3))
290 : 1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))
291 : GO TO 3240
292 : 3230 DSIG(I)=DEPS*(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3))
293 : 3240 CONTINUE
294 : IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)
295 : GO TO 900
296 : 325 CONTINUE
297 : IF(IECRAS.EQ.0) GO TO 330
298 : IF(EPSTOT.LT.EPSNC(I)) GO TO 335
299 : IF(IPRECI.EQ.1) GO TO 3261
300 : DSIG(I)=SIGNB(I)-SIGO(I)+(EPSTOT-EPSNB(I))*(SIGNC(I)-SIGNB(I))
301 : 1/(EPSNC(I)-EPSNB(I))
302 : GO TO 3290
303 : 3261 IF(EPSO(I).LT.EPSBET(I,2)) GO TO 3270
304 : IF(EPSTOT.LT.EPSBET(I,2)) GO TO 3262
305 : DSIG(I)=DEPS*(SIGBET(I,2)-SIGNB(I))/(EPSBET(I,2)-EPSNB(I))
306 : GO TO 3290
307 : 3262 IF(EPSTOT.LT.EPSBET(I,1)) GO TO 3264
308 : DSIG(I)=SIGBET(I,2)-SIGO(I)+(EPSTOT-EPSBET(I,2))
309 : 1 *(SIGBET(I,1)-SIGBET(I,2))/(EPSBET(I,1)-EPSBET(I,2))
310 : GO TO 3290
311 : 3264 DSIG(I)=SIGBET(I,1)-SIGO(I)+(EPSTOT-EPSBET(I,1))
312 : 1 *(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1))
313 : GO TO 3290
314 : 3270 IF(EPSO(I).LT.EPSBET(I,1)) GO TO 3280
315 : IF(EPSTOT.LT.EPSBET(I,1)) GO TO 3274
316 : DSIG(I)=DEPS*(SIGBET(I,1)-SIGBET(I,2))/(EPSBET(I,1)-EPSBET(I,2))
317 : GOTO 3290
318 : 3274 DSIG(I)=SIGBET(I,1)-SIGO(I)+(EPSTOT-EPSBET(I,1))
319 : 1 *(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1))
320 : GO TO 3290
321 : 3280 DSIG(I)=DEPS*(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1))
322 : 3290 CONTINUE
323 : GO TO 380
324 : 330 DSIG(I)=SIGNB(I)-SIGO(I)
325 : GO TO 380
326 : 335 IF(EPSTOT.LT.EPSND(I)) GO TO 345
327 : DSIG(I)=SIGNC(I)-SIGO(I)+(EPSTOT-EPSNC(I))*(SIGND(I)-SIGNC(I))
328 : 1/(EPSND(I)-EPSNC(I))
329 : GO TO 380
330 : 345 DSIG(I)=SIGND(I)-SIGO(I)
331 : 380 IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)
332 : NUMETA(I)=33
333 : IEM=3
334 : GO TO 900
335 : C
336 : C (SIGO,EPSO) HORS DE LA COURBE COTE NEGATIF
337 : 400 DFINF=EPINF(I)
338 : CONINF=SIGINF(I)
339 : IF(SIGINF(I).GT.SIGNA(I)) CONINF=SIGNA(I)
340 : IF(EPINF(I).GT.EPSNA(I)) DFINF=EPSNA(I)
341 : IF(EPSTOT.LE.DFINF) GO TO 405
342 : DSIG(I)=DEPS*(CONINF-SIGO(I))/(DFINF-EPSIN+1.D-20)
343 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
344 : GO TO 900
345 : 405 JCAS=NUMETA(I)-40
346 : IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS
347 : IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT
348 : GO TO(410,315,325),JCAS
349 : 410 IF(EPSTOT.LT.EPSNA(I)) GO TO 315
350 : DSIG(I)=DEPS*(CONINF-SIGO(I))/(DFINF-EPSIN+1.D-20)
351 : IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I)
352 : NUMETA(I)=31
353 : GO TO 900
354 : C
355 : C DECHARGE
356 : C
357 : 450 ICAS=NUMETA(I)/10
358 : IF(IIMPI.EQ.16) WRITE(6,*) 'ICAS=',ICAS
359 : GO TO(500,500,700,700),ICAS
360 : C
361 : C (SIGO,EPSO) COTE POSITIF
362 : 500 JCAS=MOD(NUMETA(I),10)
363 : IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS
364 : GO TO(510,520,530),JCAS
365 : 510 PENTE=RMOD(I)
366 : IF(IIMPI.EQ.16) WRITE(6,*) '510 PENTE=',PENTE
367 : NUMETA(I)=21
368 : IF(ICAS.EQ.1) NUMETA(I)=11
369 : GO TO 560
370 : 520 PENTE=SIGSUP(I)/EPSUP(I)
371 : IF(IIMPI.EQ.16) WRITE(6,*) '520 PENTE=',PENTE
372 : NUMETA(I)=22
373 : GO TO 550
374 : 530 PENTE=SIGPB(I)/EPSPB(I)
375 : IF(IIMPI.EQ.16) WRITE(6,*) '530 PENTE=',PENTE
376 : NUMETA(I)=23
377 : 550 CONTINUE
378 : 560 SIGF=SIGO(I)+DEPS*PENTE
379 : IF(IIMPI.EQ.16) WRITE(6,*) '560 SIGF =',SIGF
380 : IF((SIGO(I)*SIGF).LE.0.) GO TO 600
381 : DSIG(I)=SIGF-SIGO(I)
382 : GO TO 900
383 : C----------
384 : 600 CONINF=SIGINF(I)
385 : DFINF=EPINF(I)
386 : IF(SIGINF(I).GT.SIGNA(I)) CONINF=SIGNA(I)
387 : IF(EPINF(I).GT.EPSNA(I)) DFINF=EPSNA(I)
388 : C----------
389 : IF(EPSTOT.LE.DFINF) GO TO 610
390 : EPZE=EPSIN-SIGO(I)*DEPS/(SIGF-SIGO(I))
391 : IF(IIMPI.EQ.16) WRITE(6,*) '600 EPZE =',EPZE
392 : DSIG(I)=(EPSTOT-EPZE)*CONINF/(DFINF-EPZE+1.D-20)
393 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
394 : DSIG(I)=DSIG(I)-SIGO(I)
395 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
396 : IF(IEM.EQ.1.AND.EPSTOT.LE.EPSNA(I)) GO TO 605
397 : NUMETA(I)=40+IEM
398 : GO TO 900
399 : 605 NUMETA(I)=31
400 : GO TO 900
401 : 610 IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT
402 : GO TO(410,315,325),IEM
403 : GO TO 410
404 : C
405 : C (SIGO,EPSO) COTE NEGATIF
406 : 700 JCAS=MOD(NUMETA(I),10)
407 : IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS
408 : GO TO(710,720,730),JCAS
409 : 710 PENTE=RMOD(I)
410 : IF(IIMPI.EQ.16) WRITE(6,*) '710 PENTE=',PENTE
411 : NUMETA(I)=41
412 : IF(ICAS.EQ.3) NUMETA(I)=31
413 : GO TO 760
414 : 720 PENTE=SIGINF(I)/EPINF(I)
415 : IF(IIMPI.EQ.16) WRITE(6,*) '720 PENTE=',PENTE
416 : NUMETA(I)=42
417 : GO TO 750
418 : 730 PENTE=SIGNB(I)/EPSNB(I)
419 : IF(IIMPI.EQ.16) WRITE(6,*) '730 PENTE=',PENTE
420 : NUMETA(I)=43
421 : 750 CONTINUE
422 : 760 SIGF=SIGO(I)+DEPS*PENTE
423 : IF(IIMPI.EQ.16) WRITE(6,*) '760 SIGF =',SIGF
424 : IF((SIGO(I)*SIGF).LE.0.) GO TO 800
425 : DSIG(I)=SIGF-SIGO(I)
426 : GO TO 900
427 : C----------
428 : 800 CONSUP=SIGSUP(I)
429 : DFSUP=EPSUP(I)
430 : IF(SIGSUP(I).LT.SIGPA(I)) CONSUP=SIGPA(I)
431 : IF(EPSUP(I).LT.EPSPA(I)) DFSUP=EPSPA(I)
432 : C----------
433 : IF(EPSTOT.GE.DFSUP) GO TO 810
434 : EPZE=EPSIN-SIGO(I)*DEPS/(SIGF-SIGO(I))
435 : IF(IIMPI.EQ.16) WRITE(6,*) '800 EPZE =',EPZE
436 : DSIG(I)=(EPSTOT-EPZE)*CONSUP/(DFSUP-EPZE+1.D-20)
437 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
438 : DSIG(I)=DSIG(I)-SIGO(I)
439 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
440 : IF(IEP.EQ.1.AND.EPSTOT.GE.EPSPA(I)) GO TO 805
441 : NUMETA(I)=20+IEP
442 : GO TO 900
443 : 805 NUMETA(I)=11
444 : GO TO 900
445 : 810 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT
446 : GO TO(210,115,125),IEP
447 : GO TO 210
448 : C
449 : 900 DSIG(I)=DSIG(I)+SIGO(I)
450 : EPSPLA(I)=(SIGEL-DSIG(I))/RMOD(I)
451 : DEPSEQ=DEPSEQ+ABS(EPSPLA(I))
452 : *
453 : IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I)
454 : IF(IIMPI.EQ.16) WRITE(6,*) 'EPSPLA(',I,') =',EPSPLA(I)
455 : IF(IIMPI.EQ.16) WRITE(6,*) 'DEPSEQ =',DEPSEQ
456 : IF(I.GT.2) GO TO 950
457 : NUMETA(I)=NUMETA(I)+1000*IEP+100*IEM
458 : IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I)
459 : EPSO(I)=EPSTOT
460 : *
461 : 950 CONTINUE
462 : EPSEQ=DEPSEQ+EPSEQ
463 : IF(IIMPI.EQ.16) WRITE(6,*) 'EPSEQ =',EPSEQ
464 : RETURN
465 : END
466 :
© Cast3M 2003 - All rights reserved.
Disclaimer