ytmxmu
C YTMXMU SOURCE CB215821 20/11/25 13:44:37 10792 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C C **** ON PART DU PRINCIPE QUE TOUS LES CHPOINTS SONT IDENTIQUES C ET QUE LA MATRICE EST SYMETRIQUE. CE SUBROUTINE N'EST C APPELE QUE PAR SUPMAS. C C **** MULTIPLICATION D'UNE MATRICE(IRE3) PAR UN CHAMPPOINT (IRE1) A C **** GAUCHE ET PAR DES CHAMPPOINTS ISE2(JVAL) A DROITE. C **** VSE(J)= IRE1 *IRE3 *ISE2(J) C C **** ON PART DU PRINCIPE QUE TOUS LES CHPOINTS SONT IDENTIQUES C C **** POUR EFFECTUER L'OPERATION ON ELIMINE LES COMPOSANTES LX C **** DU CHPOINT ET DE LA RIGIDITE. ON TESTE QUE LES AUTRES INCONNUES C **** DU CHPOINT SONT INCLUSES DANS CELLES DE L OBJET RIGIDITE C -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMCHPOI -INC SMRIGID -INC SMCOORD SEGMENT,ISE2(LL) SEGMENT,VSE(LL)*D SEGMENT,MPO(LL) SEGMENT,IHAR(0) SEGMENT,SIINC CHARACTER*(LOCOMP) IINC(0) ENDSEGMENT SEGMENT ICPR(nbpts) SEGMENT/ITRAV/(CC(NLIGMA)*D,DD(KSIM,NLIGMA)*D, *VAA(KSIM,NNIN,ITES)*D,VBB(NNIN,ITES)*D) SEGMENT IPOS(NLIGMA) SEGMENT SIINCO CHARACTER*(LOCOMP) IINCO(NNIN) ENDSEGMENT C ITES EST LE NONBRE DE NOEUD DU CHAMPPOINT. NLIGMA EST LA TAILLE C MAX D'UNE LIGNE DE MATRICE DE RIGIDITE ELEMENTAIRE. * WRITE(6,9001) *9001 FORMAT(' IMPRESSION NUMERO 1') KSIM=JVAL VSE=JVSE ISE2=JSE2 SEGACT VSE*MOD,ISE2 LL=JVAL SEGINI MPO DO 4597 KN=1,JVAL VSE(KN)=0.D0 4597 CONTINUE * WRITE(6,9002) *9002 FORMAT(' IMPRESSION NUMERO 2') C C ****ON RETIRE DES CHPOINTS LES MULT. DE LAGRANGE S'IL Y EN A. C C C **** ON CREE LES TABLEAUX : C **** ICPR(I)=J VEUT DIRE QUE LE NOEUD I A LE NUMERO LOCAL J. C **** ON COMMENCE PAR RECENSER LES NOEUDS DU CHAMPPOINT. C SEGINI ICPR KMAX=nbpts DO 6 K=1,KMAX ICPR(K)=0 6 CONTINUE IK=0 MCHPOI=IRE1 SEGACT,MCHPOI NSOUPO=IPCHP(/1) DO 1 ISOU=1,NSOUPO MSOUPO=IPCHP(ISOU) SEGACT,MSOUPO MELEME=IGEOC SEGACT,MELEME N2=NUM(/2) IF(ICPR(K).NE.0) GO TO 2 IK=IK+1 ICPR(K)=IK 2 CONTINUE SEGDES,MELEME SEGDES,MSOUPO 1 CONTINUE SEGDES,MCHPOI ITES=IK * WRITE(6,9003) *9003 FORMAT(' IMPRESSION NUMERO 3') C C **** ON INITIALISE LES INCONNUES A PRTIR DE LA MATRICE C NLIGMA=0 SEGINI,SIINC SEGINI,IHAR MRIGID=IRE3 SEGACT,MRIGID NRIGEL=IRIGEL(/2) DESCR=IRIGEL(3,1) SEGACT,DESCR IINC(**)=LISINC(1) IHAR(**)=IRIGEL(5,1) ININC=1 DO 3 IRI=1,NRIGEL MELEME=IRIGEL(1,IRI) SEGACT,MELEME DESCR=IRIGEL(3,IRI) NOHA=IRIGEL(5,IRI) SEGACT,DESCR NLIGRE=LISINC(/2) IF(NLIGRE.GT.NLIGMA) NLIGMA=NLIGRE DO 8 I1=1,ININC IF(NOHA.EQ.IHAR(I1)) GO TO 7 8 CONTINUE IHAR(**)=NOHA ININC=ININC+1 7 CONTINUE SEGDES,DESCR SEGDES MELEME 3 CONTINUE SEGDES,MRIGID * WRITE(6,9004) *9004 FORMAT(' IMPRESSION NUMERO 4') C C **** ON INITIALISE LE SEGMENT MTRAV C NNIN=ININC SEGINI SIINCO,IPOS DO 10 I=1,NNIN 10 IINCO(I)=IINC(I) SEGINI ITRAV C C **** ON INITIALISE IVECT QUI DIRA TOUTES LES INCONNUES EXISTANTES DA C **** LE CHAMPOINT. ON SUPPOSE QUE PAREIL POUR TOUS LES CHPOINTS C MCHPOI=IRE1 DO 1543 KJI = 1, JVAL MCHPO1=ISE2(KJI) SEGACT MCHPO1 1543 CONTINUE SEGACT,MCHPOI NSOUPO=IPCHP(/1) * WRITE(6,9005) *9005 FORMAT(' IMPRESSION NUMERO 5') DO 15 ISOU=1,NSOUPO MSOUPO=IPCHP(ISOU) SEGACT,MSOUPO MELEME=IGEOC SEGACT,MELEME MPOVAL=IPOVAL SEGACT,MPOVAL DO 1544 KJI=1,JVAL MCHPO1=ISE2(KJI) MSOUP1=MCHPO1.IPCHP(ISOU) SEGACT MSOUP1 MPOVA1=MSOUP1.IPOVAL SEGACT MPOVA1 MPO(KJI)=MPOVA1 SEGDES MSOUP1 1544 CONTINUE SEGACT,MSOUPO N2=VPOCHA(/1) NC=VPOCHA(/2) DO 16 INC=1,NC INCOM=NOCOMP(INC) NOHA=NOHARM(INC) DO 17 IH=1,NNIN IF(INCOM.NE.IINCO(IH)) GO TO 17 IF(NOHA.EQ.IHAR(IH)) GO TO 18 17 CONTINUE GO TO 16 18 CONTINUE 191 CONTINUE DO 190 KJI=1,JVAL MPOVA1=MPO(KJI) 19 CONTINUE 190 CONTINUE 16 CONTINUE DO 1545 KJI=1,JVAL MPOVA1=MPO(KJI) SEGDES MPOVA1 1545 CONTINUE SEGDES,MSOUPO SEGDES,MPOVAL SEGDES,MELEME 15 CONTINUE * WRITE(6,9006) *9006 FORMAT(' IMPRESSION NUMERO 6') SEGDES,MCHPOI DO 1546 KJI=1,JVAL MCHPO1=ISE2(KJI) SEGDES MCHPO1 1546 CONTINUE C C **** BOUCLE 20 SUR LES OBJETS RIGIDITES ELEMENTAIRES C SEGACT,MRIGID DO 20 IRI=1,NRIGEL MELEME=IRIGEL(1,IRI) SEGACT,MELEME DESCR=IRIGEL(3,IRI) SEGACT,DESCR LISI=LISINC(/2) C C **** ON REMPLIT IPOS(I)=J QUI DIT QUE LA IEME INCONNUES C **** DE LA MATRICE ELEMENTAIRE EST LA JEME DE IINC C NOHA=IRIGEL(5,IRI) DO 21 IN=1,LISI DO 22 IJ=1,ININC IF(NOHA.EQ.IHAR(IJ)) GO TO 23 22 CONTINUE 23 CONTINUE IPOS(IN)=IJ 21 CONTINUE C C **** BOUCLE 30 SUR TOUTES LES PETITES MATRICES D'UN OBJET C **** RIGIDITE ELEMENTAIRE. C N1=NUM(/1) N2=NUM(/2) xMATRI=IRIGEL(4,IRI) SEGACT,xMATRI COER=COERIG(IRI) C C **** AVANT D'EFFECTUER LE PRODUIT ON VERIFIE QU'IL EST A FAIRE C DO 31 I1=1,N1 31 CONTINUE GO TO 30 32 CONTINUE C C **** FABRICATION D'UN VECTEUR ISSU DU CHAMPPOINT DE DIMENSION NLIGRE C DO 33 IN=1,LISI CC(IN)=0.D0 J1=IPOS(IN) 33 CONTINUE DO 331 KN=1,JVAL DO 330 IN=1,LISI DD(KN,IN)=0.D0 J1=IPOS(IN) 330 CONTINUE 331 CONTINUE C C **** BOUCLE 35 SUR LES LIGNES D'UNE MATRICE ELEMENTAIRE C * XMATRI=IMATTT(I2) * SEGACT,XMATRI DO 35 IN=1,LISI VB=0.D0 DO 38 JN=1,LISI * IF(JN.GT.IN) GO TO 36 * IKO=(IN-1)*IN/2+JN * GO TO 37 * 36 CONTINUE * IKO=(JN-1)*JN/2+IN * 37 VB=VB+CC(JN)*RE(JN,IN,i2) 38 CONTINUE VB=VB*COER DO 350 KN=1,JVAL VSE(KN)=VSE(KN)+VB*DD(KN,IN) 350 CONTINUE 35 CONTINUE * SEGDES,XMATRI 30 CONTINUE SEGDES,xMATRI SEGDES,DESCR 24 SEGDES MELEME 20 CONTINUE SEGDES,MRIGID,ISE2,VSE SEGSUP,ITRAV SEGSUP,SIINC SEGSUP,IHAR SEGSUP ICPR,SIINCO,IPOS,MPO 5000 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales