castet
C CASTET SOURCE CHAT 05/01/12 21:49:32 5004 . EPSNA,EPSNB,SIGSUP,SIGINF,EPSUP,EPINF,EPSO,RMOD,SIGO,DSIG, . NUMETA,EPSEQ,IECRAS,SIGND,EPSND,SIGNC,EPSNC,SIGPC,EPSPC,SIGPD, . EPSPD,SIGBET,EPSBET,IPRECI,IIMPI,KERRE) C C S.P. APPELE PAR BETON MODELE DE CYCLAGE POUR POUTRE BETON ARME C ENTREE : DSIG=DSIG ELAS ----- SORTIE : DSIG=SIG. FINAL C C COURBE DEMI-SQUELETTE : C O-A PARTIE 1 CHARGE ET DECHARGE ELASTIQUE C A-B PARTIE 2 PLASTIQUE DECHARGE PASSANT PAR ORIGINE C B-C-D PARTIE 3 PLASTIQUE DECHARGE AVEC MODULE FINAL C C L ETAT DE L ELEMENT EST DEFINI PAR L INDICE MULTIPLE NUMETA(I) : C LE 1ER CHIFFRE INDIQUE LA PARTIE MAXI ATTEINTE SUR LA COURBE POSITIVE C LE 2EME CHIFFRE INDIQUE LA PARTIE MINI ATTEINTE SUR LA COURBE NEGATIVE C LE 3EME CHIFFRE INDIQUE LA POSITION DE SIGO(I) DANS LE DIAGRAMME : C 1 : SIGO EST SUR LA COURBE POSITIVE C 2 : SIGO EST DANS LA ZONE POSITIVE MAIS HORS DE LA COURBE C 3 : SIGO EST SUR LA COURBE NEGATIVE C 4 : SIGO EST DANS LA ZONE NEGATIVE MAIS HORS DE LA COURBE C LE 4EME CHIFFRE INDIQUE LA PARTIE DE LA COURBE OU EST SIGO(I) C C COURBE EN 4 POINTS (CAS ORDINAIRE) : C - SIGNB,SIGNA,0,SIGPA,SIGPB + C COURBE EN 8 POINTS (CAS ECRASEMENT) : C - SIGND,SIGNC,SIGNB,SIGNA,0,SIGPA,SIGPB,SIGPC,SIGPD + C COURBE EN 16 POINTS (CAS PRECISION) : C - SIGND,SIGNC,SIGBET(,1),SIGBET(,2),SIGNB,SIGBET(,3),SIGBET(,4) C SIGNA,0,SIGPA, C SIGBET(,5),SIGBET(,6),SIGPB,SIGBET(,7),SIGBET(,8),SIGPC,SIGPD + C C EPSO,SIGO : ETAT INITIAL C EPINF,SIGINF : ETAT EXTREME ATTEINT SUR LA COURBE NEGATIVE C EPSUP,SIGSUP : ETAT EXTREME ATTEINT SUR LA COURBE POSITIVE C EPSEQ : DEFORMATION PLASTIQUE EQUIVALENTE C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * DIMENSION RMOD(4),SIGO(4),DSIG(4),EPSO(2),NUMETA(2),EPSPLA(4) 1,SIGPA(2),SIGPB(2),SIGNA(2),SIGNB(2),SIGSUP(2),SIGINF(2) 2,EPSPA(2),EPSPB(2),EPSNA(2),EPSNB(2),EPSUP(2),EPINF(2) 3,SIGND(2),SIGNC(2),SIGPC(2),SIGPD(2),EPSND(2),EPSNC(2),EPSPC(2) 4,EPSPD(2),SIGBET(2,8),EPSBET(2,8) C DEPSEQ=0. DO 950 I=1,4 IF(DSIG(I).NE.0.) GO TO 5 DSIG(I)=SIGO(I) GO TO 950 5 EPSTOT=0. EPSIN=0. DEPS=DSIG(I)/RMOD(I) SIGEL=SIGO(I)+DSIG(I) IF(IIMPI.EQ.16)THEN WRITE(6,*) 'RMOD(',I,') =',RMOD(I) WRITE(6,*) 'SIGO(',I,') =',SIGO(I) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) WRITE(6,*) 'SIGEL =',SIGEL WRITE(6,*) 'EPSO(',I,') =',EPSO(I) WRITE(6,*) 'DEPS =',DEPS ENDIF GO TO(40,40,10,20),I C C TORSION : PLASTIQUE PARFAIT C 10 SIGF=SIGO(I)+DSIG(I) IF(IIMPI.EQ.16) WRITE(6,*) 'SIGF =',SIGF,'SIGTO =',SIGTO IF(SIGF.GT.SIGTO) DSIG(I)=SIGTO-SIGO(I) IF(SIGF.LT.(-SIGTO)) DSIG(I)=-SIGTO-SIGO(I) GO TO 900 C C COMPRESSION : PLASTIQUE PARFAIT C 20 SIGF=SIGO(I)+DSIG(I) IF(IIMPI.EQ.16) WRITE(6,*) 'SIGF =',SIGF,'SIGCO =',SIGCO IF(SIGF.GT.SIGCO) DSIG(I)=SIGCO-SIGO(I) IF(SIGF.LT.(-SIGCO)) DSIG(I)=-SIGCO-SIGO(I) GO TO 900 C 40 EPSIN=EPSO(I) IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I) IEP=NUMETA(I)/1000 IEM=NUMETA(I)/100 IF(IIMPI.EQ.16) WRITE(6,*) 'IEP =',IEP NUMETA(I)=NUMETA(I)-100*IEM IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I) IEM=IEM-10*IEP IF(IIMPI.EQ.16) WRITE(6,*) 'IEM =',IEM EPSTOT=EPSIN+DEPS IF(IIMPI.EQ.16)THEN WRITE(6,*) 'SIGPA(',I,') =',SIGPA(I) WRITE(6,*) 'EPSPA(',I,') =',EPSPA(I) WRITE(6,*) 'SIGPB(',I,') =',SIGPB(I) WRITE(6,*) 'EPSPB(',I,') =',EPSPB(I) WRITE(6,*) 'SIGPC(',I,') =',SIGPC(I) WRITE(6,*) 'EPSPC(',I,') =',EPSPC(I) WRITE(6,*) 'SIGPD(',I,') =',SIGPD(I) WRITE(6,*) 'EPSPD(',I,') =',EPSPD(I) WRITE(6,*) 'SIGNA(',I,') =',SIGNA(I) WRITE(6,*) 'EPSNA(',I,') =',EPSNA(I) WRITE(6,*) 'SIGNB(',I,') =',SIGNB(I) WRITE(6,*) 'EPSNB(',I,') =',EPSNB(I) WRITE(6,*) 'SIGNC(',I,') =',SIGNC(I) WRITE(6,*) 'EPSNC(',I,') =',EPSNC(I) WRITE(6,*) 'SIGND(',I,') =',SIGND(I) WRITE(6,*) 'EPSND(',I,') =',EPSND(I) WRITE(6,*) 'EPSTOT =',EPSTOT WRITE(6,*) 'SIGSUP(',I,') =',SIGSUP(I) WRITE(6,*) 'EPSUP(',I,') =',EPSUP(I) WRITE(6,*) 'SIGINF(',I,') =',SIGINF(I) WRITE(6,*) 'EPINF(',I,') =',EPINF(I) ENDIF IF(SIGO(I)*DSIG(I)) 450,45,50 45 IF(NUMETA(I).NE.0) GO TO 50 NUMETA(I)=11 IF(DSIG(I).LT.0) NUMETA(I)=31 C C CHARGE C 50 ICAS=NUMETA(I)/10 IF(IIMPI.EQ.16) WRITE(6,*) 'ICAS=',ICAS GO TO(100,200,300,400),ICAS C C (SIGO,EPSO) SUR LA COURBE COTE POSITIF 100 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT IF(IIMPI.EQ.16) WRITE(6,*) 'EPSUP(',I,') =',EPSUP(I) JCAS=NUMETA(I)-10 IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS GO TO(110,120,125),JCAS 110 IF(EPSTOT.GT.EPSPA(I)) GO TO 115 IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I) NUMETA(I)=11 GO TO 900 115 IF(EPSTOT.GT.EPSPB(I)) GO TO 125 IF(IPRECI.EQ.1) GO TO 1151 DSIG(I)=SIGPA(I)-SIGO(I)+(EPSTOT-EPSPA(I))*(SIGPB(I)-SIGPA(I)) 1/(EPSPB(I)-EPSPA(I)) GO TO 1156 1151 IF(EPSTOT.GT.EPSBET(I,5)) GO TO 1152 DSIG(I)=SIGPA(I)-SIGO(I)+(EPSTOT-EPSPA(I)) 1 *(SIGBET(I,5)-SIGPA(I))/(EPSBET(I,5)-EPSPA(I)) GO TO 1156 1152 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1154 DSIG(I)=SIGBET(I,5)-SIGO(I)+(EPSTOT-EPSBET(I,5)) 1 *(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5)) GO TO 1156 1154 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6)) 1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6)) 1156 CONTINUE IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I) NUMETA(I)=12 IEP=2 GO TO 900 120 IF(EPSTOT.GT.EPSPB(I)) GO TO 125 IF(IPRECI.EQ.1) GO TO 1211 DSIG(I)=DEPS*(SIGPB(I)-SIGPA(I))/(EPSPB(I)-EPSPA(I)) GO TO 1240 1211 IF(EPSO(I).GT.EPSBET(I,5)) GO TO 1220 IF(EPSTOT.GT.EPSBET(I,5)) GO TO 1212 DSIG(I)=DEPS*(SIGBET(I,5)-SIGPA(I))/(EPSBET(I,5)-EPSPA(I)) GO TO 1240 1212 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1214 DSIG(I)=SIGBET(I,5)-SIGO(I)+(EPSTOT-EPSBET(I,5)) 1 *(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5)) GO TO 1240 1214 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6)) 1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6)) GO TO 1240 1220 IF(EPSO(I).GT.EPSBET(I,6)) GO TO 1230 IF(EPSTOT.GT.EPSBET(I,6)) GO TO 1224 DSIG(I)=DEPS*(SIGBET(I,6)-SIGBET(I,5))/(EPSBET(I,6)-EPSBET(I,5)) GO TO 1240 1224 DSIG(I)=SIGBET(I,6)-SIGO(I)+(EPSTOT-EPSBET(I,6)) 1 *(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6)) GO TO 1240 1230 DSIG(I)=DEPS*(SIGPB(I)-SIGBET(I,6))/(EPSPB(I)-EPSBET(I,6)) 1240 CONTINUE IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I) GO TO 900 125 CONTINUE IF(IECRAS.EQ.0) GO TO 130 IF(EPSTOT.GT.EPSPC(I)) GO TO 135 IF(IPRECI.EQ.1) GO TO 1261 DSIG(I)=SIGPB(I)-SIGO(I)+(EPSTOT-EPSPB(I))*(SIGPC(I)-SIGPB(I)) 1/(EPSPC(I)-EPSPB(I)) GO TO 1290 1261 IF(EPSO(I).GT.EPSBET(I,7)) GO TO 1270 IF(EPSTOT.GT.EPSBET(I,7)) GO TO 1262 DSIG(I)=DEPS*(SIGBET(I,7)-SIGPB(I))/(EPSBET(I,7)-EPSPB(I)) GO TO 1290 1262 IF(EPSTOT.GT.EPSBET(I,8)) GO TO 1264 DSIG(I)=SIGBET(I,7)-SIGO(I)+(EPSTOT-EPSBET(I,7)) 1 *(SIGBET(I,8)-SIGBET(I,7))/(EPSBET(I,8)-EPSBET(I,7)) GO TO 1290 1264 DSIG(I)=SIGBET(I,8)-SIGO(I)+(EPSTOT-EPSBET(I,8)) 1 *(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8)) GO TO 1290 1270 IF(EPSO(I).GT.EPSBET(I,8)) GO TO 1280 IF(EPSTOT.GT.EPSBET(I,8)) GO TO 1274 DSIG(I)=DEPS*(SIGBET(I,8)-SIGBET(I,7))/(EPSBET(I,8)-EPSBET(I,7)) GOTO 1290 1274 DSIG(I)=SIGBET(I,8)-SIGO(I)+(EPSTOT-EPSBET(I,8)) 1 *(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8)) GO TO 1290 1280 DSIG(I)=DEPS*(SIGPC(I)-SIGBET(I,8))/(EPSPC(I)-EPSBET(I,8)) 1290 CONTINUE GO TO 180 130 DSIG(I)=SIGPB(I)-SIGO(I) GO TO 180 135 IF(EPSTOT.GT.EPSPD(I)) GO TO 145 DSIG(I)=SIGPC(I)-SIGO(I)+(EPSTOT-EPSPC(I))*(SIGPD(I)-SIGPC(I)) 1/(EPSPD(I)-EPSPC(I)) GO TO 180 145 DSIG(I)=SIGPD(I)-SIGO(I) 180 IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I) NUMETA(I)=13 IEP=3 GO TO 900 C C (SIGO,EPSO) HORS DE LA COURBE COTE POSITIF 200 DFSUP=EPSUP(I) CONSUP=SIGSUP(I) IF(SIGSUP(I).LT.SIGPA(I)) CONSUP=SIGPA(I) IF(EPSUP(I).LT.EPSPA(I)) DFSUP=EPSPA(I) IF(EPSTOT.GE.DFSUP) GO TO 205 DSIG(I)=DEPS*(CONSUP-SIGO(I))/(DFSUP-EPSIN+1.D-20) IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) GO TO 900 205 JCAS=NUMETA(I)-20 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT GO TO(210,115,125),JCAS 210 IF(EPSTOT.GT.EPSPA(I)) GO TO 115 DSIG(I)=DEPS*(CONSUP-SIGO(I))/(DFSUP-EPSIN+1.D-20) IF(SIGSUP(I).LT.(SIGO(I)+DSIG(I))) SIGSUP(I)=SIGO(I)+DSIG(I) NUMETA(I)=11 GO TO 900 C C (SIGO,EPSO) SUR LA COURBE COTE NEGATIF 300 IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT JCAS=NUMETA(I)-30 IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS GO TO(310,320,325),JCAS 310 IF(EPSTOT.LT.EPSNA(I)) GO TO 315 IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I) NUMETA(I)=31 GO TO 900 315 IF(EPSTOT.LT.EPSNB(I)) GO TO 325 IF(IPRECI.EQ.1) GO TO 3151 DSIG(I)=SIGNA(I)-SIGO(I)+(EPSTOT-EPSNA(I))*(SIGNB(I)-SIGNA(I)) 1/(EPSNB(I)-EPSNA(I)) GO TO 3156 3151 IF(EPSTOT.LT.EPSBET(I,4)) GO TO 3152 DSIG(I)=SIGNA(I)-SIGO(I)+(EPSTOT-EPSNA(I)) 1 *(SIGBET(I,4)-SIGNA(I))/(EPSBET(I,4)-EPSNA(I)) GO TO 3156 3152 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3154 DSIG(I)=SIGBET(I,4)-SIGO(I)+(EPSTOT-EPSBET(I,4)) 1 *(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4)) GO TO 3156 3154 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3)) 1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3)) 3156 CONTINUE IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I) NUMETA(I)=32 IEM=2 GO TO 900 320 IF(EPSTOT.LT.EPSNB(I)) GO TO 325 IF(IPRECI.EQ.1) GO TO 3211 DSIG(I)=DEPS*(SIGNB(I)-SIGNA(I))/(EPSNB(I)-EPSNA(I)) GO TO 3240 3211 IF(EPSO(I).LT.EPSBET(I,4)) GO TO 3220 IF(EPSTOT.LT.EPSBET(I,4)) GO TO 3212 DSIG(I)=DEPS*(SIGBET(I,4)-SIGNA(I))/(EPSBET(I,4)-EPSNA(I)) GO TO 3240 3212 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3214 DSIG(I)=SIGBET(I,4)-SIGO(I)+(EPSTOT-EPSBET(I,4)) 1 *(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4)) GO TO 3240 3214 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3)) 1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3)) GO TO 3240 3220 IF(EPSO(I).LT.EPSBET(I,3)) GO TO 3230 IF(EPSTOT.LT.EPSBET(I,3)) GO TO 3224 DSIG(I)=DEPS*(SIGBET(I,3)-SIGBET(I,4))/(EPSBET(I,3)-EPSBET(I,4)) GO TO 3240 3224 DSIG(I)=SIGBET(I,3)-SIGO(I)+(EPSTOT-EPSBET(I,3)) 1 *(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3)) GO TO 3240 3230 DSIG(I)=DEPS*(SIGNB(I)-SIGBET(I,3))/(EPSNB(I)-EPSBET(I,3)) 3240 CONTINUE IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I) GO TO 900 325 CONTINUE IF(IECRAS.EQ.0) GO TO 330 IF(EPSTOT.LT.EPSNC(I)) GO TO 335 IF(IPRECI.EQ.1) GO TO 3261 DSIG(I)=SIGNB(I)-SIGO(I)+(EPSTOT-EPSNB(I))*(SIGNC(I)-SIGNB(I)) 1/(EPSNC(I)-EPSNB(I)) GO TO 3290 3261 IF(EPSO(I).LT.EPSBET(I,2)) GO TO 3270 IF(EPSTOT.LT.EPSBET(I,2)) GO TO 3262 DSIG(I)=DEPS*(SIGBET(I,2)-SIGNB(I))/(EPSBET(I,2)-EPSNB(I)) GO TO 3290 3262 IF(EPSTOT.LT.EPSBET(I,1)) GO TO 3264 DSIG(I)=SIGBET(I,2)-SIGO(I)+(EPSTOT-EPSBET(I,2)) 1 *(SIGBET(I,1)-SIGBET(I,2))/(EPSBET(I,1)-EPSBET(I,2)) GO TO 3290 3264 DSIG(I)=SIGBET(I,1)-SIGO(I)+(EPSTOT-EPSBET(I,1)) 1 *(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1)) GO TO 3290 3270 IF(EPSO(I).LT.EPSBET(I,1)) GO TO 3280 IF(EPSTOT.LT.EPSBET(I,1)) GO TO 3274 DSIG(I)=DEPS*(SIGBET(I,1)-SIGBET(I,2))/(EPSBET(I,1)-EPSBET(I,2)) GOTO 3290 3274 DSIG(I)=SIGBET(I,1)-SIGO(I)+(EPSTOT-EPSBET(I,1)) 1 *(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1)) GO TO 3290 3280 DSIG(I)=DEPS*(SIGNC(I)-SIGBET(I,1))/(EPSNC(I)-EPSBET(I,1)) 3290 CONTINUE GO TO 380 330 DSIG(I)=SIGNB(I)-SIGO(I) GO TO 380 335 IF(EPSTOT.LT.EPSND(I)) GO TO 345 DSIG(I)=SIGNC(I)-SIGO(I)+(EPSTOT-EPSNC(I))*(SIGND(I)-SIGNC(I)) 1/(EPSND(I)-EPSNC(I)) GO TO 380 345 DSIG(I)=SIGND(I)-SIGO(I) 380 IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I) NUMETA(I)=33 IEM=3 GO TO 900 C C (SIGO,EPSO) HORS DE LA COURBE COTE NEGATIF 400 DFINF=EPINF(I) CONINF=SIGINF(I) IF(SIGINF(I).GT.SIGNA(I)) CONINF=SIGNA(I) IF(EPINF(I).GT.EPSNA(I)) DFINF=EPSNA(I) IF(EPSTOT.LE.DFINF) GO TO 405 DSIG(I)=DEPS*(CONINF-SIGO(I))/(DFINF-EPSIN+1.D-20) IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) GO TO 900 405 JCAS=NUMETA(I)-40 IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT GO TO(410,315,325),JCAS 410 IF(EPSTOT.LT.EPSNA(I)) GO TO 315 DSIG(I)=DEPS*(CONINF-SIGO(I))/(DFINF-EPSIN+1.D-20) IF(SIGINF(I).GT.(SIGO(I)+DSIG(I))) SIGINF(I)=SIGO(I)+DSIG(I) NUMETA(I)=31 GO TO 900 C C DECHARGE C 450 ICAS=NUMETA(I)/10 IF(IIMPI.EQ.16) WRITE(6,*) 'ICAS=',ICAS GO TO(500,500,700,700),ICAS C C (SIGO,EPSO) COTE POSITIF 500 JCAS=MOD(NUMETA(I),10) IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS GO TO(510,520,530),JCAS NUMETA(I)=21 IF(ICAS.EQ.1) NUMETA(I)=11 GO TO 560 NUMETA(I)=22 GO TO 550 NUMETA(I)=23 550 CONTINUE IF(IIMPI.EQ.16) WRITE(6,*) '560 SIGF =',SIGF IF((SIGO(I)*SIGF).LE.0.) GO TO 600 DSIG(I)=SIGF-SIGO(I) GO TO 900 C---------- 600 CONINF=SIGINF(I) DFINF=EPINF(I) IF(SIGINF(I).GT.SIGNA(I)) CONINF=SIGNA(I) IF(EPINF(I).GT.EPSNA(I)) DFINF=EPSNA(I) C---------- IF(EPSTOT.LE.DFINF) GO TO 610 EPZE=EPSIN-SIGO(I)*DEPS/(SIGF-SIGO(I)) IF(IIMPI.EQ.16) WRITE(6,*) '600 EPZE =',EPZE DSIG(I)=(EPSTOT-EPZE)*CONINF/(DFINF-EPZE+1.D-20) IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) DSIG(I)=DSIG(I)-SIGO(I) IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) IF(IEM.EQ.1.AND.EPSTOT.LE.EPSNA(I)) GO TO 605 NUMETA(I)=40+IEM GO TO 900 605 NUMETA(I)=31 GO TO 900 610 IF(EPINF(I).GT.EPSTOT) EPINF(I)=EPSTOT GO TO(410,315,325),IEM GO TO 410 C C (SIGO,EPSO) COTE NEGATIF 700 JCAS=MOD(NUMETA(I),10) IF(IIMPI.EQ.16) WRITE(6,*) 'JCAS=',JCAS GO TO(710,720,730),JCAS NUMETA(I)=41 IF(ICAS.EQ.3) NUMETA(I)=31 GO TO 760 NUMETA(I)=42 GO TO 750 NUMETA(I)=43 750 CONTINUE IF(IIMPI.EQ.16) WRITE(6,*) '760 SIGF =',SIGF IF((SIGO(I)*SIGF).LE.0.) GO TO 800 DSIG(I)=SIGF-SIGO(I) GO TO 900 C---------- 800 CONSUP=SIGSUP(I) DFSUP=EPSUP(I) IF(SIGSUP(I).LT.SIGPA(I)) CONSUP=SIGPA(I) IF(EPSUP(I).LT.EPSPA(I)) DFSUP=EPSPA(I) C---------- IF(EPSTOT.GE.DFSUP) GO TO 810 EPZE=EPSIN-SIGO(I)*DEPS/(SIGF-SIGO(I)) IF(IIMPI.EQ.16) WRITE(6,*) '800 EPZE =',EPZE DSIG(I)=(EPSTOT-EPZE)*CONSUP/(DFSUP-EPZE+1.D-20) IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) DSIG(I)=DSIG(I)-SIGO(I) IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) IF(IEP.EQ.1.AND.EPSTOT.GE.EPSPA(I)) GO TO 805 NUMETA(I)=20+IEP GO TO 900 805 NUMETA(I)=11 GO TO 900 810 IF(EPSUP(I).LT.EPSTOT) EPSUP(I)=EPSTOT GO TO(210,115,125),IEP GO TO 210 C 900 DSIG(I)=DSIG(I)+SIGO(I) EPSPLA(I)=(SIGEL-DSIG(I))/RMOD(I) DEPSEQ=DEPSEQ+ABS(EPSPLA(I)) * IF(IIMPI.EQ.16) WRITE(6,*) 'DSIG(',I,') =',DSIG(I) IF(IIMPI.EQ.16) WRITE(6,*) 'EPSPLA(',I,') =',EPSPLA(I) IF(IIMPI.EQ.16) WRITE(6,*) 'DEPSEQ =',DEPSEQ IF(I.GT.2) GO TO 950 NUMETA(I)=NUMETA(I)+1000*IEP+100*IEM IF(IIMPI.EQ.16) WRITE(6,*) 'NUMETA(',I,') =',NUMETA(I) EPSO(I)=EPSTOT * 950 CONTINUE EPSEQ=DEPSEQ+EPSEQ IF(IIMPI.EQ.16) WRITE(6,*) 'EPSEQ =',EPSEQ RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales