C C1 SOURCE CHAT 05/01/12 21:44:51 5004 SUBROUTINE C1(SIG,DSIG,YOUN,ANU,RT2,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,'C1 ECOULEMENT SUIVANT COMP 1',/) CALL CHREP(SIG,SFG,ANG) CALL CHREP(DSIG,DSFG,ANG) DL1=(SFG(1)+DSFG(1))/Y C C------------------------------------------ C CAS OU LA FISSURE RESTE OUVERTE C TOUT LE TEMPS DE L ECOULEMENT (1000) C------------------------------------------- C IF(DL1.GT.0.D0) THEN IDAM(1)=0 RETURN ENDIF IF(DL1.GE.-XLAM1) THEN EPC(1)=DL1 EPC(2)=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 DL1=-XLAM1 EPC(1)=DL1 EPC(2)=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(1).EQ.0.D0) THEN X=0.D0 DO 10 ITYP=1,3 DSFC(ITYP)=DSFG(ITYP) 10 SFC(ITYP)=SFG(ITYP)-SFC(ITYP) XLAM1=0.D0 DL1=0.D0 GOTO 1010 ENDIF X=(-SFG(1)+SFC(1))/DSFG(1) 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) XLAM1=0.D0 DL1=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(2),RT2,VCTR2) CALL CCOAF(SFC(2),XLAM2,VCCO2) C C------------------------------------ C CRITERE DE TRACTION ENDOMMAGE C------------------------------------ C IF(VCTR2.GT.0.D0) GOTO 2000 C C---------------------------------------- C CRITERE DE COMPRESSION ENDOMMAGE C---------------------------------------- C IF(VCCO2.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 GAMCO2=10.D0 GAMTR2=10.D0 CALL CDP(TSFC,ADP,RDP,VCDP) IF(VCDP.GT.0.D0) CALL GDP(SFC,DSFC,RDP,ADP,GAMDP) CALL CTRAF(TSFC(2),RT2,VCTR2) IF(VCTR2.GT.0.D0) CALL GAMTAF(SFC(2),DSFC(2),RT2,GAMTR2) CALL CCOAF(TSFC(2),XLAM2,VCCO2) IF(VCCO2.GT.0.D0) CALL GAMCAF(SFC(2),DSFC(2),GAMCO2) GAM=MIN(GAMTR2,GAMCO2,GAMDP) IF(GAM.GE.C) THEN GAM=1.D0 GOTO 1500 ENDIF IF(ABS(GAMCO2-GAM).LT.1.E-10) IDAM(2)=-1 IF(ABS(GAMTR2-GAM).LT.1.E-10) IDAM(2)=1 IF(ABS(GAMDP-GAM).LT.1.E-10) IDAM(3)=1 XLAM1=0.D0 DL1=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) XLAM1=XLAM1+DL1 RETURN C C---------------------------------------- C CAS OU EN ENDOMMAGE LA TRACTION2 C PENDANT LA FERMETURE DE LA FISSURE C---------------------------------------- C 2000 A(1)=DSFG(1) A(3)=DSFG(2) A(2)=-Y A(4)=A(2)*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)=RT2-SFG(2) CALL SYLIN2(A,B,X,DL1) EPC(1)=DL1 EPC(2)=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(1)=-1 IDAM(2)=1 IDAM(3)=0 XLAM1=XLAM1+DL1 CALL CHREP(DSFC,DSIG,-ANG) CALL CHREP(SFC,SIG,-ANG) RETURN C C---------------------------------------- C CAS OU EN ENDOMMAGE LA COMPRESSION2 C PENDANT LA FERMETURE DE LA FISSURE C---------------------------------------- C 3000 A(1)=DSFG(1) A(3)=DSFG(2) A(2)=-Y A(4)=A(2)*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,DL1) EPC(1)=DL1 EPC(2)=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 XLAM1=XLAM1+DL1 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)=1.D0 EPC(2)=0.D0 EPC(3)=0.D0 CALL CPHOOB(EPC,SFC,YOUN,ANU) E=Y F=SFG(1)/E G=DSFG(1)/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)=-1 IDAM(2)=0 IDAM(3)=1 RETURN ENDIF DL1=(SFG(1)+X*DSFG(1))/Y EPC(1)=DL1 EPC(2)=0.D0 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) XLAM1=XLAM1+DL1 CALL CHREP(DSFG,DSIG,-ANG) CALL CHREP(SFG,SIG,-ANG) IDAM(1)=-1 IDAM(2)=0 IDAM(3)=1 RETURN END