1 : C CONPRI SOURCE CHAT 05/01/12 22:18:27 5004 2 : SUBROUTINE CONPRI (SIG0,CPHI0,SPHI0,SIGF,CPHIF,SPHIF) 3 : C Calcul des contraintes principales et de la direction associee 4 : C a la premiere 5 : C 27/06/95 6 : IMPLICIT INTEGER(I-N) 7 : IMPLICIT REAL*8(A-H,O-Z) 8 : C Include contenant quelques constantes dont XPI : 9 : -INC CCREEL 10 : C 11 : C================================================================= 12 : C 13 : C ENTREES: 14 : C -------- 15 : C 16 : C SIG0 : Matrice de contraintes non diagonale 17 : C CPHI0 : Cos et sin de l'angle definissant les directions de la matrice 18 : C SPHI0 precedente 19 : C 20 : C SORTIES: 21 : C -------- 22 : C 23 : C SIGF : Contraintes principales 24 : C CPHIF : Nouvelle valeur de la tangente 25 : C SPHIF 26 : C================================================================ 27 : C 28 : DIMENSION SIG0(4), SIGF(2) , DSIG (4) 29 : PARAMETER ( EPSILO = 1.d-8, EPSIL2=1.D-6, UNDEMI = 0.5D0) 30 : C 31 : C Matrice de passage 32 : C 33 : DSIG(1) = (CPHI0**2)*SIG0(1) + (SPHI0**2)*SIG0(2) 34 : & -(2.D0*CPHI0*SPHI0)*SIG0(4) 35 : DSIG(2) = (SPHI0**2)*SIG0(1) + (CPHI0**2)*SIG0(2) 36 : & +(2.D0*CPHI0*SPHI0)*SIG0(4) 37 : DSIG(4) = (SPHI0*CPHI0)*(SIG0(1)-SIG0(2)) 38 : & +(CPHI0**2-SPHI0**2)*SIG0(4) 39 : C 40 : C Nouvel angle 41 : C 42 : IF (ABS(DSIG(2) - DSIG(1)).GT.EPSILO) THEN 43 : TG2PHI = -2.D0*DSIG(4)/(DSIG(1) - DSIG(2)) 44 : XDPHI = UNDEMI*DATAN(TG2PHI) 45 : CDPHI = DCOS(XDPHI) 46 : SDPHI = DSIN(XDPHI) 47 : ELSE 48 : IF (ABS(DSIG(4)).LT.EPSILO) THEN 49 : XDPHI = 0.D0 50 : CDPHI = DCOS(XDPHI) 51 : SDPHI = DSIN(XDPHI) 52 : ELSE 53 : XDPHI = SIGN ((XPI/4.D0), DSIG(4)*(DSIG(1)-DSIG(2))) 54 : CDPHI = SQRT(2.D0)/2.D0 55 : SDPHI = SIGN (CDPHI, DSIG(4)*(DSIG(1)-DSIG(2))) 56 : ENDIF 57 : ENDIF 58 : C 59 : CPHIF = CPHI0*CDPHI - SPHI0*SDPHI 60 : SPHIF = CPHI0*SDPHI + SPHI0*CDPHI 61 : C 62 : C Nouvelles contraintes principales 63 : C 64 : SIGF(1) = (CPHIF**2)*SIG0(1) + (SPHIF**2)*SIG0(2) 65 : & - (2.D0*CPHIF*SPHIF)*SIG0(4) 66 : SIGF(2) = (SPHIF**2)*SIG0(1) + (CPHIF**2)*SIG0(2) 67 : & + (2.D0*CPHIF*SPHIF)*SIG0(4) 68 : XTEST = (SPHIF*CPHIF)*(SIG0(1)-SIG0(2)) 69 : & +(CPHIF**2-SPHIF**2)*SIG0(4) 70 : IF (ABS(XTEST)/(ABS(SIGF(1))+ABS(SIGF(2))+1).GT.EPSIL2)THEN 71 : WRITE(6,*)'CONPRI : hell and damnation!' 72 : ENDIF 73 : C 74 : C Fin 75 : C 76 : RETURN 77 : END 78 : 79 : 80 : 81 : 82 : 83 :
© Cast3M 2003 - All rights reserved.
Disclaimer