damage
C DAMAGE SOURCE CHAT 05/01/12 22:36:13 5004 .SIGEL,TETAQ,YUNG,XNU,XLAMER,XLAMAX,DP2MIN, .PREC,RFSG,RFEP,RFPR,ITRAC,IDED,IDAM,KERRE) C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO C DIMENSION DELSIG(6),DDSIGP(6),DSIGEL(6),DSIGPR(6),DDF(6),DEPSP(6) DIMENSION SIS(6),SIGCRI(6),SIDEMI(6) DIMENSION DLAMBD(5),XLAMBO(5),CRI(5) C C CETTE ROUTINE GERE LES ITERATIONS INTERNES C ENTREE SIGMA AU DEBUT DU PAS C DSIGMA INCREMENT CALCULE ELASTIQUEMENT C STOT = SIGMA + DSIGMA C SIGMAT=STOT C LES CARACTERISTIQUES DU MODELE (ALFADV ... PENTE3) C LES ENDOMMAGEMENTS XLAMBD (5) C IDED = 0 AU DEPART C 1 POUR CISAILLEMENT DUCTILE C 2 POUR CISAILLEMENT FRAGILE C 3 POUR LES DEUX PRECEDENTS C IIMPI INDICE POUR LES IMPRESSIONS = 0 (PAS D IMPRESSIONS) C = 9 (ON IMPRIME) C SIGEL CONTRAINTES SUR CRITERE C EN SORTIE C EST LA SOLUTION PROJETTEE C DSIGP PARTIE PLASTIQUE DE L INCREMENT C XLAMER LAMBDA DE BUTEE POUR LE CISAILLEMENT FRAGILE ECROUISS. C SUR LA TRACTION C XLAMAX LAMBDA DE BUTEE POUR LE CISAILLEMENT FRAGILE ECROUISS. C SUR LE CISAILLEMENT FRAGILE NON ECROUISS. C IDAM INDICE D ENDOMMAGEMENT C = 1 LE PAS EST ELASTIQUE C > 1 NOMBRE DE FOIS -1 OU L ON ENDOMMAGE DANS C L ITERATION INTERNE C ICRIT1 INDICE DU 1-ER CRITERE ENDOMMAGE C ICRIT2 INDICE DU 2-EME CRITERE SI ICOUP = 2 (CAS DE COUPLAGE) C ITRI INDICE DU TRIAGE C ITRI=0 (CALCUL POUR TROUVER LA PREMIERE SURFACE ENDOMMAGEE) C ITRI=1 (CALCUL POUR TROUVER LA PREMIERE ESTIMATION DE L ECOULEMENT) C ITRI=2 (CALCUL POUR TROUVER LA CORRECTION DE DELTA LAMBDA) C IF(IIMPI.EQ.9) .WRITE(IOIMP,9999) ALFADV,ALFAD1,ALFAD2,VMELAS, .(STOT(L),L=1,6),(SIGEL(M),M=1,6), .TETAQ,XLAMER,XLAMAX,PREC,RFSG,RFEP,RFPR,IDED C C INITIALISATIONS C VMELA0=VMELAS DPEL20=DPELA2 POREL0=PORELA R01=R1 R02=R2 R03=R3 IDAM=1 ICOUP=1 IBAB=0 ICRIT1=0 ICRIT2=0 JCRIT2=0 ICRIME=0 ICRIMT=0 ITRI=0 IC5=0 ITERA=0 ITS=0 ICTD=0 KASTR=1 XLMDF=(XLAMER-XLAMBD(5))*2.D0/(XLAMER+XLAMBD(5)) IF(XLMDF.LE.PREC) KASTR=2 XX=0.D0 DPLAM=0.D0 DGLAMP=0.D0 DO 10 III=1,6 SIS(III)=0.D0 DELSIG(III)=0.D0 10 CONTINUE DO 20 III=1,5 XLAMBO(III)=XLAMBD(III) DLAMBD(III)=0.D0 20 CONTINUE LMIC5=0 XLMDF=(XLAMAX-XLAMBD(5))*2.D0/(XLAMAX+XLAMBD(5)) IF(XLMDF.LE.PREC)LMIC5=1 C C METTRE A JOUR LES VALEURS DES LIMITES ELASTIQUES DES CRITERES C C DO 30 III=1,6 C .ICAS,IDAM,ITRAC,KOUPLE,IMIN,JMIN,GAMIN,ICRIT1,KASTR,DP2MIN,DPLAM, .PREC,RFSG,RFEP,RFPR,KERRE) C IF(IDAM.NE.1) GO TO 31 DO 32 III=1,6 SIGCRI(III)=SIGEL(III) 32 CONTINUE C 31 IF(IMIN.EQ.0) GO TO 40 IF(IMIN.EQ.6) GO TO 50 IF(KOUPLE.EQ.2) GO TO 60 IF(KOUPLE.EQ.3) GO TO 152 ICRIT1=IMIN C C LA PREMIERE ESTIMATION DE DELTA LAMBD ITRI=1 C 170 ITERA=1 IF(IIMPI.EQ.9) WRITE(IOIMP,5007) ITERA ITRI=1 IF(IIMPI.EQ.9) .WRITE(IOIMP,5001) ICRIT1,ICRIME,ICRIMT,VMELAS, .DPELAS,DPELA1,DPELA2,PORELA,DPLAM,FSIG,FCRIT, .(SIGEL(I),I=1,6),(DSIGP(J),J=1,6) C C ON CALCUL LA VALEUR DE SIDEMI =(SIGEL + 0.5 DE DSIGP)CAR ON FAIT C LA LINEARISATION DU SYSTEME AU VOISINAGE DE CETTE VALEUR C SOLUTIN RETENUE PARCE QU'ELLE EST VALABLE QUELQUE SOIT LA C VALEUR DE X ( L'ESTIMATION DE LA QUANTITE DE DSIGP A ECOULER ) C PETITE= ON EST PROCHE DE LA SURFACE DE CHARGE DU 2EME CRITERE C GRANDE= ON EST LOIN DE LA SURFACE DE CHARGE DU 2EME CRITERE C DO 34 II=1,6 SIDEMI(II)=SIGEL(II)+0.5D0*DSIGP(II) 34 CONTINUE C .DGLAMP,DGLAMM,DGLAM,DL,DI,ISOMET,KERRE) IF(IIMPI.EQ.9) .WRITE(IOIMP,5002) ICRIT1,DGLAMP,DGLAMM,DGLAM,DL,ITERA C C TEST POUR LES DECHARGES C IF(ISOMET.EQ.1) GO TO 13 IF(DGLAM.GE.0.D0) GO TO 11 GO TO 12 13 IF(ICRIT1.EQ.4.OR.ICRIT1.EQ.5)GO TO 14 WRITE(IOIMP,1006) ICRIT1 KERRE=640 RETURN C 14 ALFAN1=-0.5D0/ALFAD1 ALFAN2=-0.5D0/ALFAD2 DPELN1=DPELA1*ALFAN1/ALFAD1 DPELN2=DPELA2*ALFAN2/ALFAD2 UPNUSE=(1.D0+XNU)/YUNG UMDNSE=(1.D0-2.D0*XNU)/YUNG SISDF1=DPELA1/(3.D0*ALFAD1) CONST1=UMDNSE*DPELA2/(3.D0*ALFAD2) CONDP4=3.D0*(ALFAD1*ALFAD1+0.5D0) CONDP5=3.D0*(ALFAD2*ALFAD2+0.5D0) C IF(FCRIT.GT.0.D0) GO TO 11 C C CAS OU ON SORT PAR LE SOMMET DU CONE ET SIGMA TOTAL EST A L INTERIEUR C DU CONE DES NORMALES :DANS CE CAS LA SOLUTION C EST DE PROGETER SUR LE C SOMMET ET PUIS DE CALCULER LA VALEUR DE DELTA LAMBDA C DO 15 I=1,6 SIGEL(I)=0.D0 15 CONTINUE IF(LMIC5.EQ.1) GO TO 16 IF(ICRIT1.EQ.4) GO TO 16 C C CAS DU CRITERE DE DRUCKER ECROUSSABLE (5) C C LE PROBLEME C EST DE TROUVER SIGMA SOLUTION (SIGEL) QUI DEPEND DE C DELTA LAMBDA INCONNUE AU DEPART CE QUI REVIENT A RESOUDRE UN EQUATION C DE DEUXIEME DEGRET DE DELTA LAMBDA DONT LES CONSTANTS SONT: C AA,BB,CC ( AA L2 + BB L + CC = 0 ) C CC=CC1*CC1+CC2*CC2+CC3*CC3+(CC4*CC4+CC5*CC5+CC6*CC6)*2.D0 BB=(CC1+CC2+CC3)*CONST2*2.D0 AA=3.D0*CONST2*CONST2-CONDP5 C C RESOLUTION DE L EQUATION C DELTA=BB*BB-4.D0*AA*CC VRF=MAX(ABS(BB),RFPR) RFRF=VRF*VRF*PREC*PREC IF(ABS(DELTA).LE.RFRF.AND.DELTA.LE.0.D0) DELTA=0.D0 IF(DELTA.LT.0.D0) GO TO 12 RADEL=SQRT(DELTA) DLAM1=(-BB+RADEL)/(2.D0*CC) DLAM2=(-BB-RADEL)/(2.D0*CC) DLAM5=MAX(DLAM1,DLAM2) IF(ABS(DLAM5).LE.RFEP*PREC)DLAM5=0.D0 IF(DLAM5.LT.0.D0) GO TO 12 DLAMX=XLAMAX-XLAMBD(5)-DLAMBD(5) IF(DLAM5.LE.DLAMX) GO TO 17 LMIC5=1 KASTR=2 DLAM5=DLAMX SIGEL(1)=SISDF2 SIGEL(2)=SISDF2 SIGEL(3)=SISDF2 CONST3=SISDF2*UMDNSE DLAMBD(5)=DLAMBD(5)+DLAM5 IF(LMIC5.EQ.0) GO TO 130 C C CAS OU DELTA LAMBDA CALCULE EST PLUS GRAND QUE DLAMX DANS CE CAS LA ON C AURA UNE QUANTITE DE DELTA SIGMA A ECOULER SUR LE CRITERE DE DRUCKER C FIXE (4),POUR CELA CONNESSANT LA VALEUR DE DELTA LAMBDA QUI EST EGALE C A LA VALEUR DE DLAMX ON CALCUL LA PROPORTION DE DELTA SIGMA TOTAL DEJA C UTILISEE POUR L ECOULEMENT CORRESPONDANT A LA VALEUR DE DLAMX SUR LE C CRITERE DE DRUCKER ECROUISSABLE (5) CE QUI NOUS RAMENE A RESOUDRE UNE C EQUATION DE SECONDE DEGRE C CC=CC1*CC1+CC2*CC2+CC3*CC3+(CC4*CC4+CC5*CC5+CC6*CC6)*2.D0 CC=CC-DLAMX*DLAMX*CONDP5 BB1=(DSIGP(1)-XNU*(DSIGP(2)+DSIGP(3)))/YUNG BB2=(DSIGP(2)-XNU*(DSIGP(3)+DSIGP(1)))/YUNG BB3=(DSIGP(3)-XNU*(DSIGP(1)+DSIGP(2)))/YUNG BB4=UPNUSE*DSIGP(4) BB5=UPNUSE*DSIGP(5) BB6=UPNUSE*DSIGP(6) BB=2.D0*(CC1*BB1+CC2*BB2+CC3*BB3+(CC4*BB4+CC5*BB5+CC6*BB6)*2.D0) AA=BB1*BB1+BB2*BB2+BB3*BB3+(BB4*BB4+BB5*BB5+BB6*BB6)*2.D0 C C RESOLUTION DE L EQUATION C DELTA=BB*BB-4.D0*AA*CC VRF=MAX(ABS(BB),RFSG) RFRF=VRF*VRF*PREC*PREC IF(ABS(DELTA).LE.RFRF.AND.DELTA.LE.0.D0) DELTA=0.D0 IF(DELTA.LT.0.D0) GO TO 130 RADEL=SQRT(DELTA) DELX1=(-BB+RADEL)/(2.D0*CC) IF(ABS(DELX1).LE.RFEP*PREC)DELX1=0.D0 IF(DELX1.LT.0.D0.OR.DELX1.GT.1.D0)DELX1=-1.D0 DELX2=(-BB-RADEL)/(2.D0*CC) IF(ABS(DELX2).LE.RFEP*PREC)DELX2=0.D0 IF(DELX2.LT.0.D0.OR.DELX2.GT.1.D0)DELX2=-2.D0 DELX=MAX(DELX1,DELX2) IF(DELX.LT.0.D0.OR.DELX.EQ.1.D0) GO TO 130 UMDELX=1.D0-DELX DO 18 I=1,6 DSIGP(I)=DSIGP(I)*UMDELX 18 CONTINUE C C CAS DU CRITERE DE DRUCKER FIXE (4) C 16 SIGEL(1)=SISDF1 SIGEL(2)=SISDF1 SIGEL(3)=SISDF1 DO 19 I=1,6 DEPSP(I)=UPNUSE*DSIGPR(I) 19 CONTINUE DPS=XNU*(DSIGPR(1)+DSIGPR(2)+DSIGPR(3))/YUNG DEPSP(1)=DEPSP(1)-DPS DEPSP(2)=DEPSP(2)-DPS DEPSP(3)=DEPSP(3)-DPS AA4=DEPSP(1)*DEPSP(1)+DEPSP(2)*DEPSP(2)+DEPSP(3)*DEPSP(3) BB4=2.D0*(DEPSP(4)*DEPSP(4)+DEPSP(5)*DEPSP(5)+DEPSP(6)*DEPSP(6)) CC4=(AA4+BB4)/CONDP4 IF(ABS(CC4).LE.RFEP*RFEP*PREC*PREC) CC4=0.D0 IF(CC4.LT.0) GO TO 12 DLAM4=SQRT(CC4) DLAMBD(4)=DLAMBD(4)+DLAM4 GO TO 130 C 12 IF(IIMPI.EQ.9) WRITE(IOIMP,5020) GO TO 40 C .DDF,KERRE) DO 70 III=1,6 DSIGPR(III)=DSIGP(III)-DDF(III)*DGLAMP DSIGMA(III)=DSIGPR(III) 70 CONTINUE IF(IIMPI.EQ.9) GO TO (71,72,73,74,75),ICRIT1 WRITE(IOIMP,1000) KERRE=640 RETURN C C L ECOULEMENT SELON LE CRITERE CORRESPONDANT C 71 IF(IIMPI.EQ.9) WRITE(IOIMP,6001) GO TO 80 72 IF(IIMPI.EQ.9) WRITE(IOIMP,6002) GO TO 80 73 IF(IIMPI.EQ.9) WRITE(IOIMP,6003) IF(IDED.EQ.0.OR.IDED.EQ.2) IDED=IDED+1 GO TO 80 74 IF(IIMPI.EQ.9) WRITE(IOIMP,6004) GO TO 80 75 IF(IIMPI.EQ.9) WRITE(IOIMP,6005) IF(IDED.EQ.0.OR.IDED.EQ.1) IDED=IDED+2 80 IDAM=IDAM+1 C C ITERATIONS INTERNES C 81 IF(IDAM.LT.10) GO TO 85 WRITE(IOIMP,7001) KERRE=640 RETURN .ICAS,IDAM,ITRAC,KOUPLE,IMIN,JMIN,GAMIN,ICRIT1,KASTR,DP2MIN,DGLAMP, .PREC,RFSG,RFEP,RFPR,KERRE) ICRIT2=IMIN IF(IIMPI.EQ.9) WRITE(IOIMP,9006) KOUPLE,ICRIT1,IMIN,JMIN,GAMIN IF(GAMIN.LT.0.D0) GAMIN=0.D0 IF(KOUPLE.NE.2) GO TO 86 ICRIT2=IMIN JCRIT2=JMIN 86 XX=XX+GAMIN IF(XX.LE.1.D0) GO TO 33 GAMIN=GAMIN+1.D0-XX XX=1.D0 33 IF(IIMPI.EQ.9) WRITE(IOIMP,5006)XX,GAMIN DPLAM=DGLAMP*GAMIN+DL IF(ABS(DPLAM).LT.RFPR*PREC.AND.DPLAM.LT.0.D0) DPLAM=0.D0 IF(ICRIT1.NE.5) GO TO 91 IF(DGLAMP.EQ.0.D0) GO TO 91 DPLMAX=XLAMAX-XLAMBD(5)-DLAMBD(5) TSTDPL=DPLMAX-DPLAM IF(TSTDPL.GE.0.D0) GO TO 91 GAMINI=(DPLMAX-DL)/DGLAMP IF(GAMINI.LT.0.D0) GAMINI=0.D0 DGAM=GAMINI-GAMIN XX=XX+DGAM IF(IIMPI.EQ.9) WRITE(IOIMP,8002) DGAM,GAMINI,DPLMAX,XX,DPLAM DPLAM=DPLMAX GAMIN=GAMINI C IC5=1 C 91 DLAMBD(ICRIT1)=DLAMBD(ICRIT1)+DPLAM DO 92 III=1,6 DELSIG(III)=DSIGPR(III)*GAMIN-DDF(III)*DL SIGEL(III)=SIGEL(III)+DELSIG(III) 92 CONTINUE IF(XX.LT.1.D0) GO TO 82 DO 83 III=1,6 DSIGP(III)=0.D0 83 CONTINUE 82 IF(IIMPI.EQ.9) WRITE(IOIMP,5000) ICRIT1,(DLAMBD(I),I=1,5), . ITERA,DPLAM IF(IIMPI.EQ.9) .WRITE(IOIMP,5001) ICRIT1,ICRIME,ICRIMT,VMELAS,DPELAS, . DPELA1,DPELA2,PORELA,DPLAM,FSIG,FCRIT, . (SIGEL(I),I=1,6),(DSIGP(J),J=1,6) ITRI=2 IF(ITERA.EQ.1) GO TO 110 C IF(ABS(DLAMBD(ICRIT1)).LT.RFPR*PREC.AND.DLAMBD(ICRIT1).LT.0.D0) .DLAMBD(ICRIT1)=0.D0 IF(ABS(DLAMBD(ICRIT1)).LE.RFEP) .DLAMBD(ICRIT1)=0.D0 IF(DLAMBD(ICRIT1).GE.0.D0) GO TO 109 WRITE(IOIMP,1010) ICRIT1,DLAMBD(ICRIT1) KERRE=640 RETURN C C TEST DE CONVERGENCE C 109 IF(DLAMBD(ICRIT1).EQ.0.D0) GO TO 120 DENOR=MAX(DLAMBD(ICRIT1),RFEP) C C CAS DU CRITERE DE DRUCKER FRAGILE ECROUISSABLE QUAND DPLAM CALCULE C EST PLUS GRAND QUE DPLMAX. DANS CE CAS ON TEST SUR FCRIT ET PAS C SUR DPLAM C C IF(ICRIT1.NE.5.OR.IC5.NE.1) GO TO 119 C IC5=0 C IF(ITERA.LE.20) GO TO 110 KERRE=640 RETURN C 110 ITERA=ITERA+1 IF(IIMPI.EQ.9) WRITE(IOIMP,5007) ITERA .DGLAM,DGLAMM,DGLAMP,DI,DL,ISOMET,KERRE) IF(IIMPI.EQ.9) .WRITE(IOIMP,5002) ICRIT1,DGLAMP,DGLAMM,DGLAM,DL,ITERA .DDF,KERRE) DO 100 III=1,6 DSIGPR(III)=DSIGP(III)-DDF(III)*DGLAMP IF(IIMPI.EQ.9) WRITE(IOIMP,5005) SIGEL(III),DSIGPR(III) DSIGMA(III)=DSIGPR(III) 100 CONTINUE . (DSIGMA(J),J=1,6), GO TO 81 C 120 IF(XX.GT.1.) XX=1.D0 DELIX=1.D0-XX DO 121 III=1,6 DSIGP(III)=DSIGP(III)*DELIX 121 CONTINUE XLMDF=(XLAMAX-XLAMBD(5)-DLAMBD(5))*2.D0/ . (XLAMAX+XLAMBD(5)+DLAMBD(5)) DIFLAM=XLAMBD(5)+DLAMBD(5)-XLAMER IF(DIFLAM.LT.0.D0) GO TO 123 KASTR=2 TRALIM=DPELA2/(3.D0*ALFAD2) IF(XLMDF.LE.PREC) TRALIM=0.D0 IF(TRALIM.EQ.0.D0) LMIC5=1 R1=R01 R2=R02 R3=R03 IF(R1.GT.0.D0) R1=TRALIM IF(R2.GT.0.D0) R2=TRALIM IF(R3.GT.0.D0) R3=TRALIM 123 IF(IIMPI.EQ.9) WRITE(IOIMP,8000) DELIX,ICRIT1,ICRIT2 IF(DELIX.LE.RFEP) GO TO 130 IF(ICRIT1.EQ.5.AND.LMIC5.EQ.1) GO TO 180 IF(ICRIT2.EQ.6.OR.JCRIT2.EQ.6) GO TO 140 IF(ICRIT2.EQ.7.OR.JCRIT2.EQ.7) GO TO 140 IF(KOUPLE.EQ.2) GO TO 150 C C L ECOULEMENT SELON COUPLE C IF(IIMPI.EQ.9) WRITE(IOIMP,6008) 157 ICAS=ICRIT1+ICRIT2-2 153 IF(ICAS.NE.5) GO TO 60 IF(ICRIT1.EQ.3.OR.ICRIT2.EQ.3) ICAS=8 60 IF(IIMPI.EQ.9) WRITE(IOIMP,8001) ICAS IF(IIMPI.EQ.9) WRITE(IOIMP,5003) (SIGEL(I),I=1,6) IF(IIMPI.EQ.9) WRITE(IOIMP,5004) (DSIGP(I),I=1,6) C .ICRIME,ICRIMT,XLAMAX,PREC,RFSG,RFEP,RFPR,KERRE) IF(ICOUP.EQ.0) GO TO 130 GO TO (161,162,152),ICOUP WRITE(IOIMP,1003) KERRE=640 RETURN C C IL RESTE ENCORE UN INCREMENT DE CONTRAINTE A ECOULER SUIVANT C LE CRITERE DE DRUCKER PRAGER FRAGILE FIXE C 180 IF(IIMPI.EQ.9) WRITE(IOIMP,6012) DO 181 I=1,6 DSIGMA(I)=DSIGP(I) 181 CONTINUE ICRIT1=4 ICRIME=5 KASTR=2 DPLAM=0.D0 IDAM=IDAM+1 GO TO 170 C C IL N Y A PAS DE COUPLAGE C 161 IF(IIMPI.EQ.9) WRITE(IOIMP,5008) GO TO 1234 166 IF(IIMPI.EQ.9) WRITE(IOIMP,8004) 1234 DPLAM=0.D0 IF(ICRIT1.NE.0) GO TO 170 ITERA=0 ITRI=0 GO TO 160 C C IL Y A COUPLAGE C 162 IF(IIMPI.EQ.9) WRITE(IOIMP,5009) DIFLAM=XLAMBD(5)-XLAMER XLMDF=(XLAMAX-XLAMBD(5))*2.D0/(XLAMAX+XLAMBD(5)) IF(DIFLAM.LT.0.D0) GO TO 122 KASTR=2 TRALIM=DPELA2/(3.D0*ALFAD2) IF(XLMDF.LE.PREC) TRALIM=0.D0 IF(TRALIM.EQ.0.D0) LMIC5=1 R1=R01 R2=R02 R3=R03 IF(R1.GT.0.D0) R1=TRALIM IF(R2.GT.0.D0) R2=TRALIM IF(R3.GT.0.D0) R3=TRALIM 122 IDAM=IDAM+1 GO TO(333,163,163,333,164,165,164,163),ICAS WRITE(IOIMP,1004) KERRE=640 RETURN 163 IF(IDED.EQ.0.OR.IDED.EQ.2) IDED=IDED+1 GO TO 333 164 IF(IDED.EQ.0.OR.IDED.EQ.1) IDED=IDED+2 IF(ICRIME.EQ.5) GO TO 166 GO TO 333 165 IDED=3 IF(ICRIME.EQ.5) GO TO 166 GO TO 333 C C COUPLAGE AVEC LA TRACTION C 140 DO 141 III=1,6 141 CONTINUE ITRI=0 ITERA=0 XX=0.D0 DPLAM=0.D0 ITS=1 DO 142 III=1,5 XLAMBD(III)=XLAMBD(III)+DLAMBD(III) 142 CONTINUE DO 143 III=1,5 DLAMBD(III)=0.D0 143 CONTINUE C C L ECOULEMENT SELON LE CRITERE DE LA TRACTION C 50 IF(IIMPI.EQ.9) WRITE(IOIMP,6006) .ITENRZ,ITENTE,ITETA,IRZ,SIGMA,DSIGMA,YUNG,XNU, IDAM=IDAM+1 IF(ICTD.EQ.0) GO TO 333 ICRIT1=0 ITRI=0 KASTR=2 R01=R1 R02=R2 R03=R3 GO TO 160 C 150 IF(ICRIT1.EQ.ICRIT2.OR.ICRIT1.EQ.JCRIT2) GO TO 151 KAT=ICRIT1+ICRIT2+JCRIT2 IF(ICRIT1.EQ.4.OR.ICRIT2.EQ.4.OR.JCRIT2.EQ.4) GO TO 159 IF(KAT.EQ.6) GO TO 152 159 IF(ICRIT1.LE.3) GO TO 157 IF(ICRIT1.GT.5) GO TO 158 ICRIT2=JCRIT2 GO TO 157 158 WRITE(IOIMP,1005) ICRIT1,ICRIT2,JCRIT2 KERRE=640 RETURN C C UN CAS DE COUPLAGE C 151 ICAS=ICRIT2+JCRIT2-2 GO TO 153 C C L ECOULEMENT SELON TRIPLE C 152 IF(IIMPI.EQ.9) WRITE(IOIMP,6009) .ICOUP,ICAS,ICRIT1,ICRIT2,ICRIME,ICRIMT,SIGMA,DSIGMA,XX, .PREC,RFSG,RFEP,RFPR,KERRE) IF(ICOUP.EQ.0) GO TO 130 GO TO(154,155,156),ICOUP WRITE(IOIMP,1007) KERRE=640 RETURN C C IL N Y A PAS DE TRIPLAGE NI DE COUPLAGE C 154 IF(IIMPI.EQ.9) WRITE(IOIMP,5013) DPLAM=0.D0 GO TO 170 C C IL N Y A PAS DE TRIPLAGE MAIS IL Y A COUPLAGE C 155 IF(IIMPI.EQ.9) WRITE(IOIMP,6010) GO TO 60 C C IL Y A TRIPLAGE C 156 IF(IIMPI.EQ.9) WRITE(IOIMP,6011) IF(IDED.EQ.0.OR.IDED.EQ.2) IDED=IDED+1 GO TO 333 C C LA SORTIE C 40 IF(IIMPI.EQ.9) WRITE(IOIMP,6000) IF(IDAM.LE.1) RETURN C DO 41 III=1,6 41 CONTINUE DO 42 I=1,5 XLAMBD(I)=XLAMBD(I)+DLAMBD(I) 42 CONTINUE GO TO 333 C 130 IF(IIMPI.EQ.9) WRITE(IOIMP,6007) DO 131 I=1,5 131 XLAMBD(I)=XLAMBD(I)+DLAMBD(I) ICOUP=1 GO TO 333 C C CALCUL DES CRITERES APRES LA CONVERGENCE C 333 IF(IIMPI.EQ.9) WRITE(IOIMP,5010) DO 4444 KLM=1,5 DLAMBD(KLM)=XLAMBD(KLM)-XLAMBO(KLM) SIS(KLM)=FSIG CRI(KLM)=FCRIT IF(IIMPI.EQ.9) WRITE(IOIMP,5011) KLM,FSIG,FCRIT,DLAMBD(KLM), . XLAMBD(KLM) 4444 CONTINUE C IF(IIMPI.EQ.9) WRITE(IOIMP,5012) IDAM, . (SIGEL(I),I=1,6),(DSIGP(J),J=1,6) C 1000 FORMAT(1X,'ERREUR DANS DAMAGE DANS LA VALEUR DE ICRIT1') 1003 FORMAT(1X,'ERREUR DANS DAMAGE DANS LA VALEUR DE ICOUP APRES ', . 'COUPLE') 1004 FORMAT(1X,'ERREUR DANS DAMAGE DANS LA VALEUR DE ICAS APRES ', . 'COUPLAGE') 1005 FORMAT(1X,'ERREUR DANS DAMAGE KOUPLE=2',/, . 1X,'ICRIT1=',I4,1X,'ICRIT2=',I4,1X,'JCRIT2=',I4) 1006 FORMAT(1X,'ERREUR DANS DAMAGE CAS DE DECHARGE ICRIT1=',I4) 1007 FORMAT(1X,'ERREUR DANS DAMAGE DANS LA VALEUR DE ICOUP APRES ', . 'TRIPLE') 1010 FORMAT(1X,'ERREUR DANS DAMAGE DLAMBD(',I1,') EST NEGATIF', . 1X,'DLAMBD=',1PD12.5) 1011 FORMAT(1X,'ERREUR DANS DAMAGE ON N ARRIVE PAS A CONVERGER',/, . 1X,'ICRIT1=',I4,1X,'ITERA =',I4,1X,'DPLAM =',1PD12.5,/, . 1X,'DLAMBD=',D12.5,1X,'TEST =',1PD12.5) 5000 FORMAT(1X,'ICRIT1=',I4,/,1X,'DLAMBD=',1PD12.5,/,4(8X,1PD12.5,/), . 1X,'ITERA =',I4,1X,'DPLAM =',1PD12.5) 5001 FORMAT(1X,'ON EST DANS DAMAGE APRES CALL KRITER '/ . 1X,'ICRIT1=',I4,1X,'ICRIME=',I4,1X,'ICRIMT=',I4,/, . 1X,'VMELAS=',1PD12.5,1X,'DPELAS=',1PD12.5, . 1X,'DPELA1=',1PD12.5,1X,'DPELA2=',1PD12.5,/, . 1X,'PORELA=',1PD12.5,1X,'DPLAM =',1PD12.5, . 1X,'FSIG =',1PD12.5,1X,'FCRIT =',1PD12.5,/, . 1X,'SIGEL =',6(1PD12.5,1X),/, . 1X,'DSIGP =',6(1PD12.5,5X)) 5002 FORMAT(1X,'ON EST DANS DAMAGE APRES LE CALL CRILAM ',/, . 1X,'ICRIT1=',I4,1X,'DGLAMP=',1PD12.5,1X,'DGLAMM=',1PD12.5, . 1X,'DGLAM =',1PD12.5,1X,'DL =',1PD12.5,1X,'ITERA =',I4) 5003 FORMAT(1X,'SIGEL =',6(1X,1PD12.5)) 5004 FORMAT(1X,'DSIGP =',6(1X,1PD12.5)) 5005 FORMAT(1X,'SIGEL =',1PD12.5,1X,'DSIGPR=',1PD12.5) 5006 FORMAT(1X,'XX =',1PD12.5,1X,'GAMIN =',1PD12.5) 5007 FORMAT(1X,'ITERA =',I4) 5008 FORMAT(1X,'IL N Y A PAS DE COUPLAGE') 5009 FORMAT(1X,'IL Y A COUPLAGE') 5010 FORMAT(1X,'ICRIT',6X,'FSIG',11X,'FCRIT',10X,'DLAMBD',9X,'XLAMBD') 5011 FORMAT(3X,I1,4(5X,1PD12.5)) 5012 FORMAT(1X,'IDAM =',I4,/, . 1X,'SIGEL =',6(1X,1PD12.5),/, . 1X,'DSIGP =',6(1X,1PD12.5)) 5013 FORMAT(1X,'IL N Y A PAS DE TRIPLAGE NI DE COUPLAGE') 5020 FORMAT(1X,'IL N Y A PAS D ENDOMMAGEMENT ON DECHARGE') 5107 FORMAT(1X,'DPLAM =',1PD12.5,1X,'DLAMBD=',1PD12.5, . 1X,'TEST =',1PD12.5) 5108 FORMAT(1X,'FCRIT =',1PD12.5,1X,'TEST1 =',1PD12.5, . 1X,'TEST =',1PD12.5) 6000 FORMAT(1X,'IL N Y A PAS D ENDOMMAGEMENT') 6001 FORMAT(1X,'L ECOULEMENT SELON LE CRITERE DE LA POROSITE (1)') 6002 FORMAT(1X,'L ECOULEMENT SELON LE CRITERE DE DRUCKER DUCTILE (2)') 6003 FORMAT(1X,'L ECOULEMENT SELON LE CRITERE DE VON MISES (3)') 6004 FORMAT(1X,'L ECOULEMENT SELON LE CRITERE DE DRUCKER FRAGILE (4)') 6005 FORMAT(1X,'L ECOULEMENT SELON LE CRITERE DE DRUCKER FRAGILE ', .'ECR. (5)') 6006 FORMAT(1X,'L ECOULEMENT SELON LE CRITERE DE LA TRACTION') 6007 FORMAT(1X,'L ECOULEMENT SELON UN SEUL CRITERE') 6008 FORMAT(1X,'L ECOULEMENT SELON COUPLE') 6009 FORMAT(1X,'L ECOULEMENT SELON TRIPLE') 6010 FORMAT(1X,'IL N Y A PAS DE TRIPLAGE MAIS IL Y A COUPLAGE') 6011 FORMAT(1X,'IL Y A TRIPLAGE') 6012 FORMAT(1X,'IL RESTE ENCORE UN INCREMENT DE CONTRAINTE ', .'A ECOULER SUIVANT',/,1X,'LE CRITERE DE DRUCKER FRAGILE FIXE') 7000 FORMAT(1X,'SIGMA =',6(1X,1PD12.5),/,1X,'DSIGMA=',6(1X,1PD12.5),/, . 1X,'SIGMAT=',6(1X,1PD12.5),/, . 1X,'DDF =',6(1X,1PD12.5),/,1X,'DSIGP =',6(1X,1PD12.5)) 7001 FORMAT(1X,'ERREUR DANS DAMAGE IDAM EST PLUS GRAND QUE 10 ') 8000 FORMAT(1X,'DELIX =',1PD12.5,1X,'ICRIT1=',I4,1X,'ICRIT2=',I4) 8001 FORMAT(1X,'ICAS =',I4) 8002 FORMAT(1X,'DGAM =',1PD12.5,1X,'GAMINI=',1PD12.5, . 1X,'DPLMAX=',1PD12.5,/, . 1X,'XX ',1PD12.5,1X,'DPLAM =',1PD12.5) 8004 FORMAT(1X,'IL Y A COUPLAGE MAIS IL RESTE ENCORE DE L INCREMENT DE .CONTRAINTES') 9006 FORMAT(1X,'ON EST DANS DAMAGE APRES LE 2-EME APPEL A TRIAGE '/ .1X,'KOUPLE=',I4,1X,'ICRIT1=',I4,1X,'IMIN =',I4,1X,'JMIN =',I4,/, .1X,'GAMIN =',1PD12.5) 9999 FORMAT(1X,'ON EST EN TETE DE DAMAGE ',/, . 2(7(1X,1PD12.5)/),5(1X,1PD12.5)/4(6(1X,1PD12.5)/), . 7(1X,1PD12.5),1X,I4,1X,I4) C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales