C DYNE05 SOURCE CHAT 09/10/09 21:17:34 6519 SUBROUTINE DYNE05(IRIGK,ICHT22,ICHT23,NDDL,MUCT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************************ * * D Y N E 0 5 * ----------- * * FONCTION: * --------- * UTILITAIRE DE L'OPERATEUR "DYNE" * CALCUL DU PRODUIT : - K * U * * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN) * ----------- * * IRIGK (E) POINTEUR SUR L'OBJET RIGIDITE K ( ACTIF ) * VEC1 (E) VECTEUR CONTENANT U * VEC2 (S) VECTEUR CONTENANT LE PRODUIT K * U * NDDL (E) NOMBRE DE DEGRES DE LIBERTE * MUCT (E) POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF ) * * AUTEUR, DATE DE CREATION: * ------------------------- * DENIS ROBERT, LE 25 NOVEMBRE 1988. * REVU ET CORRIGE DECEMBRE 89 MP * * LANGAGE: * -------- * ESOPE + FORTRAN77 * ************************************************************************ * * MODULES UTILISES: * -INC CCOPTIO -INC SMELEME -INC SMRIGID -INC SMMATRI -INC SMCOORD * SEGMENT,MCHT2 REAL*8 VCC2(NDDL) ENDSEGMENT POINTEUR MCHT22.MCHT2,MCHT23.MCHT2 * * REAL*8 VEC1(*),VEC2(*) CHARACTER*4 NI * SEGMENT MUCTRA REAL*8 CC(NLIGMA) INTEGER MUCPO,MUCMIK,MUCDUA,MUIPOS(NLIGMA),MUCPR ENDSEGMENT SEGMENT ICPR(XCOOR(/1)/(IDIM+1)) * MUCTRA=MUCT MCHT22=ICHT22 MCHT23=ICHT23 * DO 1 I1=1,NDDL MCHT23.VCC2(I1)=0.D0 1 CONTINUE * END DO * MINCPO=MUCPO MIMIK=MUCMIK ICPR=MUCPR ININC=IMIK(/2) * *--- BOUCLE SUR LES ZONES ELEMENTAIRES DE LA RIGIDITE * MRIGID=IRIGK NRIGEL=IRIGEL(/2) DO 20 IRI=1,NRIGEL MELEME=IRIGEL(1,IRI) DESCR=IRIGEL(3,IRI) * *--- ON REMPLIT MUIPOS(IN)=JN QUI DIT QUE LA IEME INCONNUE *--- DE LA MATRICE ELEMENTAIRE EST LA JEME DE IINC * DO 21 IN=1,LISINC(/2) NI=LISINC(IN) DO 22 IJ=1,ININC IF (NI.EQ.IMIK(IJ)) GO TO 23 22 CONTINUE * END DO 23 CONTINUE MUIPOS(IN)=IJ 21 CONTINUE * END DO * *--- BOUCLE SUR LES MATRICES TRES ELEMENTAIRES DE LA RIGIDITE * N1=NUM(/1) N2=NUM(/2) xMATRI=IRIGEL(4,IRI) COER=COERIG(IRI) DO 30 I2=1,N2 * *--- FABRICATION D'UN TABLEAU ISSU DU CHPOINT * DO 33 IN=1,LISINC(/2) CC(IN)=0.D0 J2=ICPR(NUM(NOELEP(IN),I2)) J1=MUIPOS(IN) CC(IN)=MCHT22.VCC2(INCPO(J1,J2)) 33 CONTINUE * END DO * *--- BOUCLE SUR LES LIGNES D'UNE MATRICE ELEMENTAIRE * * XMATRI=IMATTT(I2) DO 35 IN=1,LISINC(/2) VA=0.D0 J2=ICPR(NUM(NOELEP(IN),I2)) J1=MUIPOS(IN) DO 38 JN=1,LISINC(/2) * IF (JN.GT.IN) THEN * IKO=(JN-1)*JN/2+IN VA=VA+CC(JN)*RE(JN,IN,i2) * ELSE * IKO=(IN-1)*IN/2+JN * VA=VA+CC(JN)*RE(IKO) * ENDIF 38 CONTINUE * END DO IKKK=INCPO(J1,J2) MCHT23.VCC2(IKKK)=MCHT23.VCC2(IKKK)-VA*COER 35 CONTINUE * END DO 30 CONTINUE * END DO 20 CONTINUE * END DO * END