C C2 SOURCE CHAT 05/01/12 21:45:04 5004 SUBROUTINE C2(SIG,DSIG,YOUN,ANU,RT1,RDP,ADP, 1 XLAM1,XLAM2,IDAM,ANG) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO DIMENSION SIG(3),DSIG(3),SFC(3),DSFC(3),TSFC(3),SFG(3),DSFG(3), 1 A(4),B(2),IDAM(3),EPC(3),SG(3),DSG(3) Y=YOUN/(1.D0-ANU*ANU) C C-------------------------------------------- C BOITE D ECOULEMENT DE COMPRESSION C-------------------------------------------- C C----------------------------------------------- C ON SE PLACE DANS LE REPERE DE FISSURATION C----------------------------------------------- C IF(IIMPI.EQ.9) WRITE(IOIMP,9999) 9999 FORMAT(1X,'C2 ECOULEMENT SUIVANT COMP 2',/) CALL CHREP(SIG,SFG,ANG) CALL CHREP(DSIG,DSFG,ANG) DL2=(SFG(2)+DSFG(2))/Y C C------------------------------------------ C CAS OU LA FISSURE RESTE OUVERTE C TOUT LE TEMPS DE L ECOULEMENT (1000) C------------------------------------------- C IF(DL2.GT.0.D0) THEN IDAM(2)=0 RETURN ENDIF IF(DL2.GE.-XLAM2) THEN EPC(2)=DL2 EPC(1)=0.D0 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) X=1.D0 GOTO 1000 ENDIF C C------------------------------------------- C CAS OU LA FISSURE EST FERME AVANT C LA FIN DE L ECOULEMENT C------------------------------------------- C DL2=-XLAM2 EPC(2)=DL2 EPC(1)=0.D0 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) C C------------------------------------------ C ON CALCULE LA PARTIE DE DSIGMA C QU IL FAUT POUR FERMER LA FISSURE C------------------------------------------ C IF(DSFG(2).EQ.0.D0) THEN X=0.D0 DO 10 ITYP=1,3 DSFC(ITYP)=DSFG(ITYP) 10 SFC(ITYP)=SFG(ITYP)-SFC(ITYP) XLAM2=0.D0 DL2=0.D0 GOTO 1010 ENDIF X=(-SFG(2)+SFC(2))/DSFG(2) IF(X.LT.0.D0) THEN X=0.D0 DO 15 ITYP=1,3 DSFC(ITYP)=DSFG(ITYP) 15 SFC(ITYP)=SFG(ITYP)-SFC(ITYP) XLAM2=0.D0 DL2=0.D0 GOTO 1010 ENDIF 1000 DO 20 ITYP=1,3 DSFC(ITYP)=(1.D0-X)*DSFG(ITYP) 20 SFC(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-SFC(ITYP) C C----------------------------------------------- C ON REGARDE SI LES AUTRES CRITERES NE C SONT PAS ENDOMMAGES PENDANT L ECOULEMENT C----------------------------------------------- C CALL CDP(SFC,ADP,RDP,VCDP) CALL CTRAF(SFC(1),RT1,VCTR1) CALL CCOAF(SFC(1),XLAM1,VCCO1) C C------------------------------------ C CRITERE DE TRACTION ENDOMMAGE C------------------------------------ C IF(VCTR1.GT.0.D0) GOTO 2000 C C---------------------------------------- C CRITERE DE COMPRESSION ENDOMMAGE C---------------------------------------- C IF(VCCO1.GT.0.D0) GOTO 3000 C C------------------------------------ C CRITERE DE TRACTION ENDOMMAGE C------------------------------------ C IF(VCDP.GT.0.D0) GOTO 4000 C C--------------------------------------------------- C AUCUN CRITERE ENDOMMAGE PENDANT L ECOULEMENT C--------------------------------------------------- C 1010 DO 30 ITYP=1,3 30 TSFC(ITYP)=DSFC(ITYP)+SFC(ITYP) C C--------------------------------------------------- C ON REGARDE SI L ECOULEMENT RESTANT N ENDOMMAGE C PAS LES CRITERES C--------------------------------------------------- C IDAM(1)=0 IDAM(2)=0 IDAM(3)=0 C=1.D0-1.D-10 IF(X.GE.C) THEN GAM=1.D0 GOTO 1500 ENDIF GAMDP=10.D0 GAMCO1=10.D0 GAMTR1=10.D0 CALL CDP(TSFC,ADP,RDP,VCDP) IF(VCDP.GT.0.D0) CALL GDP(SFC,DSFC,RDP,ADP,GAMDP) CALL CTRAF(TSFC(1),RT1,VCTR1) IF(VCTR1.GT.0.D0) CALL GAMTAF(SFC(1),DSFC(1),RT1,GAMTR1) CALL CCOAF(TSFC(1),XLAM1,VCCO1) IF(VCCO1.GT.0.D0) CALL GAMCAF(SFC(1),DSFC(1),GAMCO1) GAM=MIN(GAMTR1,GAMCO1,GAMDP) IF(GAM.GE.C) THEN GAM=1.D0 GOTO 1500 ENDIF IF(ABS(GAMCO1-GAM).LT.1.E-10) IDAM(1)=-1 IF(ABS(GAMTR1-GAM).LT.1.E-10) IDAM(1)=1 IF(ABS(GAMDP-GAM).LT.1.E-10) IDAM(3)=1 XLAM2=0.D0 DL2=0.D0 1500 DO 40 ITYP=1,3 SFG(ITYP)=SFC(ITYP)+GAM*DSFC(ITYP) 40 DSFG(ITYP)=(1.D0-GAM)*DSFC(ITYP) CALL CHREP(SFG,SIG,-ANG) CALL CHREP(DSFG,DSIG,-ANG) XLAM2=XLAM2+DL2 RETURN C C---------------------------------------- C CAS OU EN ENDOMMAGE LA TRACTION1 C PENDANT LA FERMETURE DE LA FISSURE C---------------------------------------- C 2000 A(1)=DSFG(1) A(3)=DSFG(2) A(4)=-Y A(2)=A(4)*ANU DET=A(1)*A(4)-A(2)*A(3) IF(DET.EQ.0.D0) THEN IDAM(1)=1 IDAM(2)=-1 IDAM(3)=0 RETURN ENDIF B(1)=RT1-SFG(1) B(2)=-SFG(2) CALL SYLIN2(A,B,X,DL2) EPC(2)=DL2 EPC(1)=0.D0 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) DO 50 ITYP=1,3 DSFC(ITYP)=(1.D0-X)*DSFG(ITYP) 50 SFC(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-SFC(ITYP) CALL CDP(SFC,ADP,RDP,VCDP) IF(VCDP.GT.0.D0) GOTO 4000 IDAM(2)=-1 IDAM(1)=1 IDAM(3)=0 XLAM2=XLAM2+DL2 CALL CHREP(DSFC,DSIG,-ANG) CALL CHREP(SFC,SIG,-ANG) RETURN C C---------------------------------------- C CAS OU EN ENDOMMAGE LA COMPRESSION1 C PENDANT LA FERMETURE DE LA FISSURE C---------------------------------------- C 3000 A(1)=DSFG(1) A(3)=DSFG(2) A(4)=-Y A(2)=A(4)*ANU DET=A(1)*A(4)-A(2)*A(3) IF(DET.EQ.0.D0) THEN IDAM(1)=-1 IDAM(2)=-1 IDAM(3)=0 RETURN ENDIF B(1)=-SFG(1) B(2)=-SFG(2) CALL SYLIN2(A,B,X,DL2) EPC(2)=DL2 EPC(1)=0.D0 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) DO 150 ITYP=1,3 DSFC(ITYP)=(1.D0-X)*DSFG(ITYP) 150 SFC(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-SFC(ITYP) CALL CDP(SFC,ADP,RDP,VCDP) IF(VCDP.GT.0.D0) GOTO 4000 IDAM(1)=-1 IDAM(2)=-1 IDAM(3)=0 XLAM2=XLAM2+DL2 CALL CHREP(DSFC,DSIG,-ANG) CALL CHREP(SFC,SIG,-ANG) RETURN C C---------------------------------------- C CAS OU EN ENDOMMAGE LE DP C PENDANT LA FERMETURE DE LA FISSURE C---------------------------------------- C 4000 CONTINUE EPC(1)=0.D0 EPC(2)=1.D0 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) E=Y F=SFG(2)/E G=DSFG(2)/E DO 70 ITYP=1,3 SG(ITYP)=SFG(ITYP)-F*SFC(ITYP) 70 DSG(ITYP)=DSFG(ITYP)-G*SFC(ITYP) CALL XDP(SG,DSG,RDP,ADP,X,ITEST) IF(ITEST.EQ.1) THEN IDAM(1)=0 IDAM(2)=-1 IDAM(3)=1 RETURN ENDIF DL2=(SFG(2)+X*DSFG(2))/Y EPC(1)=0.D0 EPC(2)=DL2 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) DO 60 ITYP=1,3 SFG(ITYP)=X*DSFG(ITYP)-SFC(ITYP)+SFG(ITYP) 60 DSFG(ITYP)=DSFG(ITYP)*(1.D0-X) XLAM2=XLAM2+DL2 CALL CHREP(DSFG,DSIG,-ANG) CALL CHREP(SFG,SIG,-ANG) IDAM(1)=0 IDAM(2)=-1 IDAM(3)=1 RETURN END