dp
C DP SOURCE CHAT 05/01/12 22:54:43 5004 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3), 1 EPPLDP(3),EPPLTR(3) ITER=0 SIREF=1.E-6*YOUN IF(IFISSU.EQ.0) BETA=1.D0 DO 10 ITYP=1,3 EPPLTR(ITYP)=0.D0 EPPLDP(ITYP)=0.D0 10 EPDP(ITYP)=0.D0 ISOR=0 XT=0.D0 IF(IIMPI.EQ.9) WRITE(IOIMP,9999) 9999 FORMAT(1X,'DP ECOULEMENT SUIVANT DRUCKER',/) 9998 FORMAT(1X,'DP ',I4,'ITERATIONS INTERNES',/) C----------------------------------------------- C ON SEPLACE DANS LE REPERE DE FISSURATION C----------------------------------------------- C C C------------------------------------------------ C ECOULEMENT SUIVANT LE DRUCKER SEUL C------------------------------------------------ C---------------------------------------------- C DEFINITION D UNE CONTRAINTE DE REFERENCE C SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR C ALORS SIGMA=0 C---------------------------------------------- C RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP))) IF(SIREF.LT.RMAX) GOTO 29 19 DO 20 ITYP=1,3 20 SIG(ITYP)=SIG(ITYP)+DSIG(ITYP) DL3=DL3/YOUN*10.D0 XLAM3=XLAM3+DL3 RDP=0.D0 HDP=0.D0 ADP=0.D0 DO 30 ITYP=1,3 IDAM(ITYP)=0 DSIG(ITYP)=0.D0 30 SIG(ITYP)=0.D0 IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER RETURN C C----------------------------------------------------- C ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES C----------------------------------------------------- C C 29 CALL GDP(SIG,DSIG,RDP,ADP,GAMDP) C IF(GAMDP.GT.1.E-8) THEN C IDAM(3)=0 C RETURN C RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP))) IF(VA1.EQ.0.D0) THEN IDAM(3)=0 RETURN ENDIF X=VAL/VA1/VA2 IF(X.GE.1.D0) THEN X=1.D0 GOTO 31 ENDIF X=RMIN/SQRT(1.0001D0-X*X)/VA1/8.D0 IF(X.GT.1.D0) X=1.D0 C C---------------------------------------------------------- C ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE C---------------------------------------------------------- C 31 ITER=ITER+1 IF(ITER.GT.201) GOTO 653 DO 45 ITYP=1,3 DSGG(ITYP)=DSFG(ITYP)*X A(ITYP)=SFG(ITYP)+DSGG(ITYP) 45 B(ITYP)=-SSI(ITYP) VAL=VAL-HDP IF(VAL.LT.0.D0) THEN KERRE=459 RETURN ENDIF ITER=ITER+1 653 IF(ITER.GT.200) THEN KERRE=460 RETURN ENDIF IF(ITEST.EQ.1) THEN X=X/2.D0 GOTO 31 ENDIF DO 50 ITYP=1,3 50 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) CO=VAL/VA1/VA2 IF(CO.LT.0.99) THEN X=X/2.D0 GOTO 31 ENDIF IF(DL3.LT.0.D0) THEN IDAM(3)=0 DL3=0.D0 ISOR=1 GOTO 525 ENDIF RD=RDP-DL3*HDP IF(RD.LT.SIREF) GOTO 19 IF(IFISSU.EQ.1) GOTO 100 IF(VAL.LE.0.D0) GOTO 500 C C------------------------------------------------- C CAS OU LA LIMITE EN TRACTION EST DEPASSEE C MAIS ON NE CONNAIT PAS LE REPERE PRINCIPAL C DE FISSURATION C------------------------------------------------- IFISSU=1 DO 55 ITYP=1,3 55 DSGG(ITYP)=SFG(ITYP) DO 60 ITYP=1,3 DSGG(ITYP)=DSFG(ITYP)*X A(ITYP)=SFG(ITYP)+DSGG(ITYP) 60 B(ITYP)=-SSI(ITYP) DO 65 ITYP=1,3 65 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IF(VCTR1.LE.0.D0) GOTO 80 C C------------------------------------ C ON ENDOMMAGE LA TRACTION 1 C------------------------------------ C ISOR=1 IF(DSFG(1).NE.0.D0) THEN E=(RT1-SFG(1))/DSFG(1) F=SSI(1)/DSFG(1) DO 70 ITYP=1,3 A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 70 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) DO 69 ITYP=1,3 SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 69 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) CO1=VAL/VA1/VA2 CO2=VAL/VA1/VA2 XIN1=E+F*DL31 XIN2=E+F*DL32 IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN X=XIN1 DL3=DL31 GOTO 71 ENDIF IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN X=XIN2 DL3=DL32 GOTO 71 ENDIF IF(IIMPI.EQ.9) WRITE(IOIMP,10101) 10101 FORMAT(1X,'ERREUR DP TRACTION 1 SF',/) DL3=DL31 X=XIN1 71 DO 72 ITYP=1,3 72 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IDAM(1)=1 IDAM(2)=0 IDAM(3)=1 GOTO 80 ENDIF DL3=(-RT1+SFG(1))/SSI(1) RD=RDP-DL3*HDP IF(RD.LT.SIREF) GOTO 19 DO 74 ITYP=1,3 A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 74 B(ITYP)=DSFG(ITYP) DO 76 ITYP=1,3 76 SGG(ITYP)=A(ITYP)+X*B(ITYP) IDAM(1)=1 IDAM(2)=0 IDAM(3)=1 C C------------------------------------ C ON ENDOMMAGE LA TRACTION 2 C------------------------------------ C IF(VCTR2.LE.0.D0) GOTO 91 ISOR=1 IF(DSFG(2).NE.0.D0) THEN E=(RT2-SFG(2))/DSFG(2) F=SSI(2)/DSFG(2) DO 82 ITYP=1,3 A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 82 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) DO 81 ITYP=1,3 SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 81 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) CO1=VAL/VA1/VA2 CO2=VAL/VA1/VA2 XIN1=E+F*DL31 XIN2=E+F*DL32 IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN X=XIN1 DL3=DL31 GOTO 83 ENDIF IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN X=XIN2 DL3=DL32 GOTO 83 ENDIF IF(IIMPI.EQ.9) WRITE(IOIMP,20202) 20202 FORMAT(1X,'ERREUR DP TRACTION 2 SF',/) DL3=DL31 X=XIN1 83 DO 84 ITYP=1,3 84 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IDAM(1)=0 IDAM(2)=1 IDAM(3)=1 GOTO 91 ENDIF DL3=(-RT2+SFG(2))/SSI(2) RD=RDP-DL3*HDP IF(RD.LT.SIREF) GOTO 19 DO 86 ITYP=1,3 A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 86 B(ITYP)=DSFG(ITYP) DO 88 ITYP=1,3 88 SGG(ITYP)=A(ITYP)+X*B(ITYP) IDAM(1)=0 IDAM(2)=1 IDAM(3)=1 91 RDP=RDP-DL3*HDP IF(RDP.LT.SIREF) THEN ANG=0.D0 IFISSU=0 GOTO 19 ENDIF XT=XT+X DO 90 ITYP=1,3 SFG(ITYP)=SGG(ITYP) 90 DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP) DSGG(1)=0.D0 DSGG(2)=0.D0 DO 92 ITYP=1,3 92 SGG(ITYP)=DL3*EPC(ITYP) DO 94 ITYP=1,3 94 EPPLDP(ITYP)=EPPLDP(ITYP)+EPDP(ITYP) IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER RETURN C C------------------------------------------------------------ C ON REGARDE SI ON N ENDOMMAGE PAS LES AUTRES CRITERES C AUQUEL CAS IL FAUT CALCULER X POUR ARRIVER AU COUPLAGE C------------------------------------------------------------ C------------------------------------ C ON ENDOMMAGE LA TRACTION 1 C------------------------------------ C 100 CONTINUE IF(VCTR1.GT.0.D0) GOTO 105 IF(VCCO1.GT.0.D0) GOTO 200 IF(VCTR2.GT.0.D0) GOTO 300 IF(VCCO2.GT.0.D0) GOTO 400 GOTO 500 105 ISOR=1 IF(DSFG(1).NE.0.D0) THEN E=(RT1-SFG(1))/DSFG(1) F=SSI(1)/DSFG(1) DO 110 ITYP=1,3 A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 110 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) DO 111 ITYP=1,3 SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 111 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) CO1=VAL/VA1/VA2 CO2=VAL/VA1/VA2 XIN1=E+F*DL31 XIN2=E+F*DL32 IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN X=XIN1 DL3=DL31 GOTO 119 ENDIF IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN X=XIN2 DL3=DL32 GOTO 119 ENDIF IF(IIMPI.EQ.9) WRITE(IOIMP,30303) 30303 FORMAT(1X,'ERREUR DP TRACTION 1 AF',/) DL3=DL31 X=XIN1 119 DO 120 ITYP=1,3 120 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IDAM(1)=1 IDAM(2)=0 IDAM(3)=1 GOTO 150 ENDIF DL3=(-RT1+SFG(1))/SSI(1) RD=RDP-DL3*HDP IF(RDP.LT.SIREF) GOTO 19 DO 130 ITYP=1,3 A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 130 B(ITYP)=DSFG(ITYP) DO 140 ITYP=1,3 140 SGG(ITYP)=A(ITYP)+X*B(ITYP) IDAM(1)=1 IDAM(2)=0 IDAM(3)=1 IF(VCTR2.GT.0.D0) GOTO 300 IF(VCCO2.GT.0.D0) GOTO 400 GOTO 500 C C------------------------------------ C ON ENDOMMAGE LA COMPRESSION 1 C------------------------------------ C 200 ISOR=1 IF(DSFG(1).NE.0.D0) THEN E=SFG(1)/DSFG(1) F=SSI(1)/DSFG(1) DO 210 ITYP=1,3 A(ITYP)=SFG(ITYP)-E*DSFG(ITYP) 210 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) DO 211 ITYP=1,3 SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 211 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) CO1=VAL/VA1/VA2 CO2=VAL/VA1/VA2 XIN1=-E+F*DL31 XIN2=-E+F*DL32 IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN X=XIN1 DL3=DL31 GOTO 219 ENDIF IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN X=XIN2 DL3=DL32 GOTO 219 ENDIF IF(IIMPI.EQ.9) WRITE(IOIMP,40404) 40404 FORMAT(1X,'ERREUR DP COMPRESSION 1',/) DL3=DL31 X=XIN1 219 DO 220 ITYP=1,3 220 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IDAM(1)=-1 IDAM(2)=0 IDAM(3)=1 GOTO 250 ENDIF DL3=SFG(1)/SSI(1) RD=RDP-DL3*HDP IF(RD.LT.SIREF) GOTO 19 DO 230 ITYP=1,3 A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 230 B(ITYP)=DSFG(ITYP) DO 240 ITYP=1,3 240 SGG(ITYP)=A(ITYP)+X*B(ITYP) IDAM(1)=-1 IDAM(2)=0 IDAM(3)=1 IF(VCTR2.GT.0.D0) GOTO 300 IF(VCCO2.GT.0.D0) GOTO 400 GOTO 500 C C------------------------------------ C ON ENDOMMAGE LA TRACTION 2 C------------------------------------ C 300 ISOR=1 IF(DSFG(2).NE.0.D0) THEN E=(RT2-SFG(2))/DSFG(2) F=SSI(2)/DSFG(2) DO 310 ITYP=1,3 A(ITYP)=SFG(ITYP)+E*DSFG(ITYP) 310 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) DO 311 ITYP=1,3 SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 311 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) CO1=VAL/VA1/VA2 CO2=VAL/VA1/VA2 XIN1=E+F*DL31 XIN2=E+F*DL32 IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN X=XIN1 DL3=DL31 GOTO 319 ENDIF IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN X=XIN2 DL3=DL32 GOTO 319 ENDIF IF(IIMPI.EQ.9) WRITE(IOIMP,50505) 50505 FORMAT(1X,'ERREUR DP TRACTION 2 AF',/) DL3=DL31 X=XIN1 319 DO 320 ITYP=1,3 320 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IDAM(1)=0 IDAM(2)=1 IDAM(3)=1 GOTO 500 ENDIF DL3=(-RT2+SFG(2))/SSI(2) RD=RDP-DL3*HDP IF(RD.LT.SIREF) GOTO 19 DO 330 ITYP=1,3 A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 330 B(ITYP)=DSFG(ITYP) DO 340 ITYP=1,3 340 SGG(ITYP)=A(ITYP)+X*B(ITYP) IDAM(1)=0 IDAM(2)=1 IDAM(3)=1 GOTO 500 C C------------------------------------ C ON ENDOMMAGE LA COMPRESSION 2 C------------------------------------ C 400 ISOR=1 IF(DSFG(2).NE.0.D0) THEN E=SFG(2)/DSFG(2) F=SSI(2)/DSFG(2) DO 410 ITYP=1,3 A(ITYP)=SFG(ITYP)-E*DSFG(ITYP) 410 B(ITYP)=-SSI(ITYP)+F*DSFG(ITYP) DO 411 ITYP=1,3 SGG(ITYP)=A(ITYP)+DL31*B(ITYP) 411 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP) CO1=VAL/VA1/VA2 CO2=VAL/VA1/VA2 XIN1=-E+F*DL31 XIN2=-E+F*DL32 IF(XIN1.GT.-1.E-10.AND.XIN1.LE.X.AND.CO1.GT.0.9) THEN X=XIN1 DL3=DL31 GOTO 419 ENDIF IF(XIN2.GT.-1.E-10.AND.XIN2.LE.X.AND.CO2.GT.0.9) THEN X=XIN2 DL3=DL32 GOTO 419 ENDIF IF(IIMPI.EQ.9) WRITE(IOIMP,60606) 60606 FORMAT(1X,'ERREUR DP COMPRESSION 2 ',/) DL3=DL31 X=XIN1 419 DO 420 ITYP=1,3 420 SGG(ITYP)=A(ITYP)+DL3*B(ITYP) IDAM(1)=0 IDAM(2)=-1 IDAM(3)=1 GOTO 500 ENDIF DO 430 ITYP=1,3 DL3=SFG(2)/SSI(2) RD=RDP-DL3*HDP IF(RD.LT.SIREF) GOTO 19 A(ITYP)=SFG(ITYP)-DL3*SSI(ITYP) 430 B(ITYP)=DSFG(ITYP) DO 440 ITYP=1,3 440 SGG(ITYP)=A(ITYP)+X*B(ITYP) IDAM(1)=0 IDAM(2)=-1 IDAM(3)=1 500 DO 510 ITYP=1,3 EPDP(ITYP)=DL3*EPC(ITYP)+EPDP(ITYP) 510 SFG(ITYP)=SGG(ITYP) C C------------------------------------------------------- C CAS OU LA LIMITE EN TRACTION N EST PAS DEPASSEE C------------------------------------------------------- C RDP=RDP-DL3*HDP IF(RDP.LT.SIREF) GOTO 19 XLAM3=XLAM3+DL3 XT=X+XT C=1.D0-1.D-10 IF(XT.GT.C) THEN DO 520 ITYP=1,3 IDAM(ITYP)=0 520 DSIG(ITYP)=0.D0 IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER RETURN ENDIF 525 IF(ISOR.EQ.1) THEN DO 530 ITYP=1,3 530 DSFG(ITYP)=(1D0-XT)*DSFG(ITYP) IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER RETURN ENDIF X=2.D0*X IF((XT+X).GT.1.D0) X=1.D0-XT IF(DL3.LT.0.D0) THEN KERRE=461 RETURN ENDIF GOTO 31 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales