C DOHFIS1 SOURCE CHAT 05/01/12 22:53:32 5004 SUBROUTINE DOHFIS1(VALMAT,VALCAR,MATE,IFOU,LHOOK,DDHOOK,IRET) C C======================================================================= C C MATRICE DE HOOK DU TUYAU FISSURE C C ENTREES C VALMAT() = materiau dans un tableau de travail C VALCAR() = caracteristiques geom. dans un tableau de travail C MATE = Nom du materiau C IFOU = num{ro d'harmonique de fourier: IFOUR de CCOPTIO C LHOOK = taille de la matrice de hooke C C SORTIES C DDHOOK(LHOOK,LHOOK) = matrice de hooke C IRET = 1 si option existante 0 SINON C C Passage en nouveau CHAMELEM par I.Monnier le 4 05 90 C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C Include contenant quelques constantes dont XPI : -INC CCREEL PARAMETER(UNDEMI=.5D0) PARAMETER(UN=1.D0,DEUX=2.D0) PARAMETER(D6=1.D06) CHARACTER*8 MATE C DIMENSION VALMAT(*),VALCAR(*),DDHOOK(LHOOK,*) C IRET=1 CALL ZERO(DDHOOK,LHOOK,LHOOK) C C MATERIAU ISOTROPE C IF(MATE.EQ.'ISOTROPE') THEN C C TRIDIMENSIONNEL C IF(IFOU.EQ.2) THEN YOU=VALMAT(1) XNU=VALMAT(2) CISA = YOU /(DEUX *(UN + XNU)) RAYO=VALCAR(1) EPAI=VALCAR(2) TETA1=VALCAR(9)*UNDEMI C CONVERSION DE TETA1 EN RADIAN TETA = (TETA1 * XPI)/180.D0 TESPI = TETA/XPI C ON MET DANS 'RAYMO' LE RAYON MOYEN DU TUYAU. RAYMO =RAYO - (EPAI/DEUX) C CALCUL DE A COEFIICIENT ZAHOR RSURT=RAYMO / EPAI IF(RSURT.LE.10.D0.AND.RSURT.GE.4.9D0) THEN AXX = ( .125D0*RSURT - .25D0 ) **.25D0 ELSE IF(RSURT.GT.10.D0.AND.RSURT.LE.35.D0) THEN AXX = ( .4D0*RSURT - 3.D0 ) **.25D0 ELSE KERRE=3 ENDIF C C INITIALISATION DES TERMES DE PENALISATION C PPFX = DEUX * XPI * EPAI * YOU * RAYMO * D6 PPFY = DEUX * XPI * EPAI * CISA * RAYMO * D6 PPFZ = PPFY PPMX = DEUX * XPI * EPAI * CISA * (RAYMO**2) * D6 PPMY = YOU * XPI * EPAI * (RAYMO**2) * D6 PPMZ = PPMY IF (TETA1.LE.(0.5D0)) THEN RR11 = PPFX RR16 = XZERO RR66 = PPMZ ELSE CALL TUFIFP(TESPI,AXX,FP,FM,FMP,FOP,FOM) DENOM = FP*FM - FMP*FMP COEF = (YOU * XPI * EPAI)/(DENOM * (TETA**2)) RR11 = COEF * DEUX * FM RR16 = COEF * RAYMO * FMP RR66 = COEF * (RAYMO**2) * FP *UNDEMI ENDIF C DDHOOK(1,1)=RR11 DDHOOK(1,6)=RR16 DDHOOK(2,2)=PPFY DDHOOK(3,3)=PPFZ DDHOOK(4,4)=PPMX DDHOOK(5,5)=PPMY DDHOOK(6,1)=DDHOOK(1,6) DDHOOK(6,6)=RR66 ELSE IRET=0 ENDIF ELSE IRET=0 ENDIF RETURN END