1 : C COQ2CO SOURCE CHAT 06/03/29 21:17:23 5360 2 : SUBROUTINE COQ2CO(Q,E,RHO,IMATMA,IFOUR,NIFOU,LRE, 3 : + AMM,IARR,XDPGE,YDPGE,VROT) 4 : C 5 : C*********************************************************************** 6 : C MATRICE DE MASSE D'UN ELEMENT COQUE A 2 NOEUDS 7 : C CODE X.DE MAZANCOURT DECEMBRE 85 8 : C*********************************************************************** 9 : C ENTREES 10 : C Q(3,2) : COORDONNEES DES 2 NOEUDS , R PUIS Z 11 : C E : EPAISSEUR ( CONSTANTE ) 12 : C RHO : MASSE VOLUMIQUE 13 : C IMATMA=1-MATRICE MASSE- OU 0-VECTEUR MASSE-(CAS DE MATR DIAGONALE) 14 : C AVANT L'APPEL IL EST MIS A 1 15 : C IFOUR=IFOUR DE CCOPTIO 16 : C NIFOU=NIFOUR DE CCOPTIO 17 : C LRE = TAILEE DE LA MATRICE MASSE 6 SI IFOU.LE.0 8 SI IFOU.GT.0 18 : C SORTIE 19 : C AMM(LRE,LRE) = MATRICE DE MASSE 20 : C IARR:INDICATEUR D'ERREUR,VAUT ZERO NORMALEMENT 21 : C*********************************************************************** 22 : IMPLICIT INTEGER(I-N) 23 : IMPLICIT REAL*8 (A-H,O-Z) 24 : C Include contenant quelques constantes dont XPI : 25 : -INC CCREEL 26 : DIMENSION Q(3,*),AM(8,8),AMM(LRE,*),VROT(*) 27 : C 28 : C ---------- INITIALISATION 28 : CALL ZERO(AM,8,8) 28 : CALL ZERO(AMM,LRE,LRE) 29 : C 30 : IARR=0 31 : R=.5D0*(Q(1,1)+Q(1,2)) 32 : Y=.5D0*(Q(2,1)+Q(2,2)) 33 : XD=XDPGE-R 34 : YD=Y-YDPGE 35 : SP=(Q(1,2)-Q(1,1)) 36 : CP=(Q(2,2)-Q(2,1)) 37 : D2=CP*CP+SP*SP 38 : D=SQRT(D2) 39 : E2=E*E 40 : OMEGA = VROT(2) 41 : C 42 : C ---------- PRELIMINAIRES 43 : C 44 : 20 CONTINUE 45 : COEF=RHO*E*XPI*OMEGA 46 : C ---------- PRELIMINAIRES 47 : IF(NIFOU.EQ.0) THEN 48 : COEF= 1.*COEF 49 : ELSE 50 : COEF= 0.5*COEF 51 : ENDIF 52 : SP=SP/D 53 : CP=CP/D 54 : C 55 : C ---------- CALCULS 56 : AM(1,3) = -D*COEF*(((CP**2)*D*SP)-(2*(CP**2)*R)+ 57 : . (10.D0*D*SP)-(40.D0*R))/60.D0 58 : AM(1,7) = -D*COEF*(((CP**2)*D*SP)+(2*(CP**2)*R) 59 : . -(20.D0*R))/60.D0 60 : AM(2,3) = CP*SP*((-2.D0*R)+(D*SP))*COEF*D/60.D0 61 : AM(2,7) = SP*D*CP*COEF*((D*SP)+(2.D0*R))/60.D0 62 : AM(4,3) = (D**2)*COEF*CP*((D*SP)-(6.D0*R))/60.D0 63 : AM(4,7) = -1.D0*(D**2)*COEF*CP*R/15.D0 64 : AM(5,3) = D*COEF*(((CP**2)*D*SP)-(2.D0*(CP**2)*R)+ 65 : . (20.D0*R))/60.D0 66 : AM(5,7) = D*COEF*(((CP**2)*D*SP)+(2*(CP**2)*R) 67 : . +(10.D0*D*SP)+(40.D0*R))/60.D0 68 : AM(6,3) = -1.D0*CP*SP*((-2.D0*R)+(D*SP))*COEF*D/60.D0 69 : AM(6,7) = -1.D0*SP*D*CP*COEF*((D*SP)+(2.D0*R))/60.D0 70 : AM(8,3) = (D**2)*COEF*CP*R/15.D0 71 : AM(8,7) = (D**2)*COEF*CP*((D*SP)+(6.D0*R))/60.D0 72 : C 73 : COEF2 = -1.D0 74 : AM(3,1) = COEF2*AM(1,3) 75 : AM(7,1) = COEF2*AM(1,7) 76 : AM(3,2) = COEF2*AM(2,3) 77 : AM(7,2) = COEF2*AM(2,7) 78 : AM(3,4) = COEF2*AM(4,3) 79 : AM(7,4) = COEF2*AM(4,7) 80 : AM(3,5) = COEF2*AM(5,3) 81 : AM(7,5) = COEF2*AM(5,7) 82 : AM(3,6) = COEF2*AM(6,3) 83 : AM(7,6) = COEF2*AM(6,7) 84 : AM(3,8) = COEF2*AM(8,3) 85 : AM(7,8) = COEF2*AM(8,7) 86 : C 87 : DO 70 I=1,8 88 : DO 71 J=1,8 89 : AMM (2*I-1,2*J) = (-1.D0)*AM (I,J) 90 : AMM (2*I,2*J-1) = (-1.D0)*AM (I,J) 91 : 71 CONTINUE 92 : 70 CONTINUE 93 : C 94 : RETURN 95 : END 96 : 97 : 98 :
© Cast3M 2003 - All rights reserved.
Disclaimer