d3vpas
C D3VPAS SOURCE BP208322 20/09/18 21:15:21 10718 & FTOTA,FEXA,NPFEXA,NLIAA,NLSA,IPALA,IPLIA,XPALA,XVALA, & NLIAB,NLSB,NPLB,IDIMB,IPALB,IPLIB,JPLIB,XPALB,XVALB,FTOTB, & FTOTBA,XPTB,FEXPSM, & FINERT,IERRD,FTEST,FTEST2,WEXT,WINT, & XABSCI,XORDON,NIP,FTEXB,FEXB,RIGIDE,KTPHI,XCHPFB, & XOPM1,NB1,NB1K,NB1C,NB1M,B1,B2,B3,B4) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *--------------------------------------------------------------------* * * * Opérateur DYNE : algorithme de Newmark * * (Acceleration moyenne par defaut) * * ________________________________________________ * * * * Calcul d'un pas de temps, appel aux s-p spécifiques. * * * * Paramètres: * * * * es Q1(,) Vecteur des déplacements généralisés * * es Q2(,) Vecteur des vitesses généralisées * * es Q3(,) Vecteur des accélérations généralisées * * es NA1 Nombre total d'inconnues en base A * * es NPC1 Nombre de pas de calcul - 1 * * es XK Vecteur des raideurs généralisées * * es XASM Vecteur des amortissements généralisés * * es XM Vecteur des masses généralisées * * e PDT pas de temps courant * * e T temps courant * * e NPAS Numéro du pas de temps * * es FTOTA Forces extérieures totalisées, sur la base A * * es FEXA Evolution des forces extérieures en base A * * e FTEXB Evolution des forces extérieures en base B * * e FEXB Forces extérieures sur la base B, servant au calcul * * des moments pour les corps rigides. * * e RIGIDE Vrai si corps rigide, faux sinon * * es IFEXA Numéro du mode correspondant au point de chargement * * (supprime le 2018-12-14 par bp) * es NPFEXA Nombre de points de chargement * * e NLIAA Nombre de liaisons sur la base A * * e NLSA Nombre de liaisons A en sortie * * e IPALA Tableau renseignant sur le type de liaison (base A) * * e IPLIA Tableau contenant les numéros "DYNE" des points * * e XPALA Tableau contenant les paramètres des liaisons * * es XVALA Tableau contenant les variables internes de liaison A * * XPHILB Vecteur des deformees modales * * e NLIAB Nombre de liaisons sur la base B * * e NLSB Nombre de liaisons base B en sortie * * e NPLB Nombre total de points de liaisons (base B) * * e IDIMB Nombre de directions * * e IPALB Tableau renseignant sur le type de liaison * * e IPLIB Tableau contenant les numeros "DYNE" des points * * e JPLIB Tableau contenant les numeros "GIBI" des points * * e XPALB Tableau contenant les parametres des liaisons (base B) * * es XVALB Tableau contenant les variables internes de liaison B * * FTOTB Forces exterieures totalisees sur la base B * * e XABSCI Tableau contenant les abscisses de la loi plastique * * e XORDON Tableau contenant les ordonnees de la loi plastique * * e NIP Nbr de points dans l'evolution de la loi plastique * * FTOTBA Forces totales base B projetees base A * * XPTB Deplacements des points de liaison * * IBASB Appartenance des points de liaison a une sous-base * * IPLSB Position du point de liaison dans la sous-base * * INMSB Nombre de modes dans la sous-base * * IORSB Position du 1er mode de la sous-base dans ens. modes * * IAROTA Indique la position des modes de rotation * * NSB Nombre de sous-bases * * NPLSB Nombre de points de liaison par sous-base * * NA2 Nombre d'inconnues dans la sous-base * * FEXPSM Pseudo-Modes base B * * FINERT Forces d'inertie base B * * IERRD Indicateur d'erreur * * - FTEST Tableau local FTEST de la subroutine D2VLFA * * - FTEST2 Tableau local FTEST de la subroutine DEVLB1 * * e,s WEXT travail des forces exterieures * e,s WINT travail des forces interieures (rigidite et * amortissement et forces de liaison ) * * * inspire de D2VPAS * * * *--------------------------------------------------------------------* * SEGMENT,MTPHI INTEGER IBASB(NPLB),IPLSB(NPLB),INMSB(NSB),IORSB(NSB) INTEGER IAROTA(NSB) REAL*8 XPHILB(NSB,NPLSB,NA2,IDIMB) ENDSEGMENT * * INTEGER IFEXA(*),IPALA(NLIAA,*),IPLIA(NLIAA,*) INTEGER IPALA(NLIAA,*),IPLIA(NLIAA,*) INTEGER IPALB(NLIAB,*),IPLIB(NLIAA,*),JPLIB(*) REAL*8 Q1(NA1,*),Q2(NA1,*),Q3(NA1,*) REAL*8 XVALA(NLIAA,4,*),XPALA(NLIAA,*),XM(NA1,*),XK(NA1,*) REAL*8 XPALB(NLIAB,*),XVALB(NLIAB,4,*),FEXPSM(NPLB,NPC1,2,*) REAL*8 XASM(NA1,*),FTOTA(NA1,*),FEXA(NPFEXA,NPC1,*) REAL*8 FTOTB(NPLB,*),FTOTBA(*),XPTB(NPLB,2,*),FINERT(NA1,*) REAL*8 WEXT(NA1,2),WINT(NA1,2) REAL*8 XABSCI(NLIAB,*),XORDON(NLIAB,*),FEXB(NPLB,2,*) REAL*8 FTEST(NA1,4), FTEST2(NPLB,6) REAL*8 FTEXB(NPLB,NPC1,2,*),XCHPFB(2,NLIAB,4,NPLB) REAL*8 XOPM1(NB1,NB1,*),Q2DEMI(NA1),FAMOR(NA1) * TODO : KTOTXA et KTOTVA a allouer dans le segment LOCLFA ? REAL*8 KTOTXA(NA1,NA1), KTOTVA(NA1,NA1) * TODO : KTOTXB et KTOTVB a allouer dans le segment LOCLFB ? REAL*8 KTOTXB(NPLB,IDIMB,IDIMB),KTOTVB(NPLB,IDIMB,IDIMB) * LOGICAL RIGIDE LOGICAL LWRITE * MTPHI = KTPHI NSB = XPHILB(/1) NPLSB = XPHILB(/2) NA2 = XPHILB(/3) IVINIT = 0 III = 1 * ************************************************************************ * Predicteurs des déplacements et vitesses ************************************************************************ DO 1 I = 1,NA1 Q1(I,1) = Q1(I,2) + Q2(I,2)*pdt + Q3(i,2)*B1 Q2(I,1) = Q2(I,2) + Q3(I,2)*B2 1 CONTINUE ************************************************************************ * Calcul des forces ************************************************************************ * * Totalisation des forces extérieures pour la base A * pour la fin du pas precedent & NPLB,IDIMB,RIGIDE) * Ajout des forces de raideur * F_1 = FEXT_1 - K Q_1 * Ajout des forces d'amortissement * F_1 = FEXT_1 - K Q_1 - C Q_2 * Ajout des forces de liaison IF (NLIAA.NE.0) THEN & NLIAA,PDT,T,NPAS,III,FINERT,IVINIT,FTEST, & KTOTXA,KTOTVA,.FALSE.) ENDIF IF (NLIAB.NE.0) THEN & XPHILB,JPLIB,NPLB,IDIMB,FTOTB,FTOTBA,XPTB,PDT,T, & NPAS,IBASB,IPLSB,INMSB,IORSB,NSB,NPLSB,NA2,III, & FEXPSM,NPC1,IERRD,FTEST2,XABSCI,XORDON,NIP, & FEXB,RIGIDE,IAROTA,XCHPFB, & KTOTXA,KTOTVA,KTOTXB,KTOTVB,.FALSE.) IF (IERRD.NE.0) RETURN ENDIF * Accelerations c -Cas C ou M pleine ou K (on utilise l'operateur inverse par d2vtra) IF (NB1.NE.1) THEN DO 5 I=1,NA1 Q3(I,1) = 0.D0 DO 6 J=1,NB1 Q3(I,1) = Q3(I,1) + XOPM1(I,J,1)*FTOTA(J,III) 6 CONTINUE 5 CONTINUE c -Cas C et M diagonales ELSE DO 51 I=1,NA1 Q3(I,1) = FTOTA(I,III) / & ( XM(I,1) + B3*XASM(I,1) + B4*XK(I,1) - FINERT(I,III) ) 51 CONTINUE ENDIF * Deplacements et vitesses DO 7 I = 1,NA1 Q1(I,1) = Q1(I,1) + B4*Q3(I,1) Q2(I,1) = Q2(I,1) + B3*Q3(I,1) 7 CONTINUE * calcul des travaux & XASM,NPC1,NB1C) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales