1 : C D2VCOI SOURCE CHAT 05/01/12 22:35:10 5004 2 : C DEVCOI SOURCE LAVARENN 96/11/05 21:21:28 2357 3 : C DEVCOI SOURCE IANIS 93/2/22 21:12:00 4 : SUBROUTINE D2VCOI(Q1,Q2,XDT,NA1,XPTB,NPLB,XPHILB,NSB,NPLSB, 5 : & NA2,IDIMB,IBASB,IPLSB,INMSB,IORSB,IND, 6 : & IAROTA) 7 : IMPLICIT INTEGER(I-N) 8 : IMPLICIT REAL*8(A-H,O-Z) 9 : *--------------------------------------------------------------------* 10 : * * 11 : * Opérateur DYNE : algorithme de Fu - de Vogelaere * 12 : * ________________________________________________ * 13 : * * 14 : * Recombinaison des déplacements et des vitesses * 15 : * aux points de choc pour calculer XPTB pour le 1er pas * 16 : * * 17 : * * 18 : * Paramètres: * 19 : * * 20 : * e Q1 Tableau des déplacements généralisés. * 21 : * e Q2 Tableau des vitesses generalises * 22 : * e NA1 Nombre total d'inconnues en base A. * 23 : * s XPTB Tableau des déplacements des points sur base B. * 24 : * e NPLB Nombre total de points intervenant dans les liaisons. * 25 : * e XPHILB Tableau des vecteurs propres aux points de liaisons. * 26 : * e NSB Nombre de sous base. * 27 : * e NPLSB Nombre total de points intervenant dans les liaisons * 28 : * dans une sous base. * 29 : * e NA2 Nombre total d'inconnues dans une sous base. * 30 : * e IDIMB Nombre total de ddl retenus. * 31 : * e IBASB Indique dans quelle sous base appartient le point de * 32 : * liaison. * 33 : * e INMSB Indique le nombre d'inconnues de la sous base. * 34 : * e IORSB Donne l'indice du premier mode dans l'ensemble des * 35 : * modes. * 36 : * e IPLSB Dans une sous base, indique la position du point de * 37 : * liaison. * 38 : * e IAROTA Indique la position des modes de rotation * 39 : * e IND Indice du pas. * 40 : * e XDT Valeur des pas de temps * 41 : * * 42 : * Auteur, date de création: * 43 : * * 44 : * Ianis Politopoulos 22/02/93 * 45 : * * 46 : *--------------------------------------------------------------------* 47 : * 48 : INTEGER IBASB(*),INMSB(*),IORSB(*),IPLSB(*),IAROTA(*) 49 : REAL*8 XPHILB(NSB,NPLSB,NA2,*),Q1(NA1,*),Q2(NA1,*) 50 : REAL*8 XPTB(NPLB,4,*),XDT(*) 51 : * 52 : PDT = XDT(1) 53 : PDTS2 = PDT 54 : IND2 = IND + 1 55 : DO 10 IP = 1,NPLB 56 : ISB = IBASB(IP) 57 : NA3 = INMSB(ISB) 58 : INA1 = IORSB(ISB) - 1 59 : IPLB = IPLSB(IP) 60 : IROT = IAROTA(ISB) 61 : DO 20 ID = 1,IDIMB 62 : XRET = 0.D0 63 : XRETV = 0.D0 64 : DO 30 IN = 1,NA3 65 : INN = INA1 + IN 66 : XRET = XRET + XPHILB(ISB,IPLB,IN,ID) * Q1(INN,IND) 67 : XRETV = XRETV + XPHILB(ISB,IPLB,IN,ID) * Q2(INN,IND) 68 : 30 CONTINUE 69 : * Prise en compte des effets de rotation pour les corps rigides 70 : IF (IROT.NE.0) THEN 71 : XANGLE=Q1(IROT,IND) 72 : VITROT=Q2(IROT,IND) 73 : * Déplacements dus à la rotation 74 : XRET =XRET + XPHILB(ISB,IPLB,NA3+1,ID)* 75 : &(COS(XANGLE)-1) 76 : XRET =XRET + XPHILB(ISB,IPLB,NA3+2,ID)* SIN(XANGLE) 77 : * Vitesse due à la rotation 78 : XRETV=XRETV+VITROT*(COS(XANGLE)* 79 : &XPHILB(ISB,IPLB,NA3+2,ID)-SIN(XANGLE)*XPHILB(ISB,IPLB,NA3+1,ID)) 80 : ENDIF 81 : * end do 82 : XPTB(IP,IND,ID) = XRET 83 : XPTB(IP,IND2,ID) = XRET - (XRETV * PDTS2) 84 : 20 CONTINUE 85 : * end do 86 : 10 CONTINUE 87 : * end do 88 : * 89 : END 90 : 91 : 92 :
© Cast3M 2003 - All rights reserved.
Disclaimer