Download coq2co.eso

Back to the list

   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