1 : C DYNE05 SOURCE CHAT 09/10/09 21:17:34 6519 2 : SUBROUTINE DYNE05(IRIGK,ICHT22,ICHT23,NDDL,MUCT) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : ************************************************************************ 6 : * 7 : * D Y N E 0 5 8 : * ----------- 9 : * 10 : * FONCTION: 11 : * --------- 12 : * UTILITAIRE DE L'OPERATEUR "DYNE" 13 : * CALCUL DU PRODUIT : - K * U 14 : * 15 : * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) 16 : * ----------- 17 : * 18 : * IRIGK (E) POINTEUR SUR L'OBJET RIGIDITE K ( ACTIF ) 19 : * VEC1 (E) VECTEUR CONTENANT U 20 : * VEC2 (S) VECTEUR CONTENANT LE PRODUIT K * U 21 : * NDDL (E) NOMBRE DE DEGRES DE LIBERTE 22 : * MUCT (E) POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF ) 23 : * 24 : * AUTEUR, DATE DE CREATION: 25 : * ------------------------- 26 : * DENIS ROBERT, LE 25 NOVEMBRE 1988. 27 : * REVU ET CORRIGE DECEMBRE 89 MP 28 : * 29 : * LANGAGE: 30 : * -------- 31 : * ESOPE + FORTRAN77 32 : * 33 : ************************************************************************ 34 : * 35 : * MODULES UTILISES: 36 : * 37 : -INC CCOPTIO 38 : -INC SMELEME 39 : -INC SMRIGID 40 : -INC SMMATRI 41 : -INC SMCOORD 42 : * 43 : SEGMENT,MCHT2 44 : REAL*8 VCC2(NDDL) 45 : ENDSEGMENT 46 : POINTEUR MCHT22.MCHT2,MCHT23.MCHT2 47 : * 48 : * REAL*8 VEC1(*),VEC2(*) 49 : CHARACTER*4 NI 50 : * 51 : SEGMENT MUCTRA 52 : REAL*8 CC(NLIGMA) 53 : INTEGER MUCPO,MUCMIK,MUCDUA,MUIPOS(NLIGMA),MUCPR 54 : ENDSEGMENT 55 : SEGMENT ICPR(XCOOR(/1)/(IDIM+1)) 56 : * 57 : MUCTRA=MUCT 58 : MCHT22=ICHT22 59 : MCHT23=ICHT23 60 : * 61 : DO 1 I1=1,NDDL 62 : MCHT23.VCC2(I1)=0.D0 63 : 1 CONTINUE 64 : * END DO 65 : * 66 : MINCPO=MUCPO 67 : MIMIK=MUCMIK 68 : ICPR=MUCPR 69 : ININC=IMIK(/2) 70 : * 71 : *--- BOUCLE SUR LES ZONES ELEMENTAIRES DE LA RIGIDITE 72 : * 73 : MRIGID=IRIGK 74 : NRIGEL=IRIGEL(/2) 75 : DO 20 IRI=1,NRIGEL 76 : MELEME=IRIGEL(1,IRI) 77 : DESCR=IRIGEL(3,IRI) 78 : * 79 : *--- ON REMPLIT MUIPOS(IN)=JN QUI DIT QUE LA IEME INCONNUE 80 : *--- DE LA MATRICE ELEMENTAIRE EST LA JEME DE IINC 81 : * 82 : DO 21 IN=1,LISINC(/2) 83 : NI=LISINC(IN) 84 : DO 22 IJ=1,ININC 85 : IF (NI.EQ.IMIK(IJ)) GO TO 23 86 : 22 CONTINUE 87 : * END DO 88 : 23 CONTINUE 89 : MUIPOS(IN)=IJ 90 : 21 CONTINUE 91 : * END DO 92 : * 93 : *--- BOUCLE SUR LES MATRICES TRES ELEMENTAIRES DE LA RIGIDITE 94 : * 95 : N1=NUM(/1) 96 : N2=NUM(/2) 97 : xMATRI=IRIGEL(4,IRI) 98 : COER=COERIG(IRI) 99 : DO 30 I2=1,N2 100 : * 101 : *--- FABRICATION D'UN TABLEAU ISSU DU CHPOINT 102 : * 103 : DO 33 IN=1,LISINC(/2) 104 : CC(IN)=0.D0 105 : J2=ICPR(NUM(NOELEP(IN),I2)) 106 : J1=MUIPOS(IN) 107 : CC(IN)=MCHT22.VCC2(INCPO(J1,J2)) 108 : 33 CONTINUE 109 : * END DO 110 : * 111 : *--- BOUCLE SUR LES LIGNES D'UNE MATRICE ELEMENTAIRE 112 : * 113 : * XMATRI=IMATTT(I2) 114 : DO 35 IN=1,LISINC(/2) 115 : VA=0.D0 116 : J2=ICPR(NUM(NOELEP(IN),I2)) 117 : J1=MUIPOS(IN) 118 : DO 38 JN=1,LISINC(/2) 119 : * IF (JN.GT.IN) THEN 120 : * IKO=(JN-1)*JN/2+IN 121 : VA=VA+CC(JN)*RE(JN,IN,i2) 122 : * ELSE 123 : * IKO=(IN-1)*IN/2+JN 124 : * VA=VA+CC(JN)*RE(IKO) 125 : * ENDIF 126 : 38 CONTINUE 127 : * END DO 128 : IKKK=INCPO(J1,J2) 129 : MCHT23.VCC2(IKKK)=MCHT23.VCC2(IKKK)-VA*COER 130 : 35 CONTINUE 131 : * END DO 132 : 30 CONTINUE 133 : * END DO 134 : 20 CONTINUE 135 : * END DO 136 : * 137 : END 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 :
© Cast3M 2003 - All rights reserved.
Disclaimer