C D2VENE SOURCE CHAT 05/01/12 22:35:15 5004 C DEVENE SOURCE IANIS 96/03/15 21:15:48 2089 SUBROUTINE D2VENE (NA1,IND,NPAS,FEXA,Q1,Q2,FTOTA,WEXT, & WINT,XASM,NPC1) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) ************************************************************** * * Ce sous-programme calcule le travail des differentes forces * pour chaque mode * * e NA1 nombre d'inconnues sur base A * e IND idice du pas (2 -->1er 1/2 pas, 1 --> 2eme 1/2pas) * e FEXA forces exterieures sur base A * e NPAS numero du pas * e Q1 deplacements generalises * e Q2 vitesses generalisees * e FTOTA forces totales sur base A * e,s WEXT travail des forces exterieures * e,s WINT travail des forces interieures (rigidite et * amortissement et forces de liaison ) * e XASM tableau d'amortissements generalises * e NPC1 Nombre de pas de calcul ** ** ce sous-programme n'est pas, peut - etre, compatible avec ** les liaisons '..._FLUIDE' * * I. Politopoulos Mars 1996 ******************************************************************** REAL*8 FEXA(NA1,NPC1,*),FTOTA(NA1,*),Q1(NA1,4),Q2(NA1,4) REAL*8 WEXT(NA1,2),WINT(NA1,2),XASM(NA1) DO 20 I=1, NA1 DQ1 = Q1(I,1) - Q1(I,2) F1 = FEXA(I,NPAS,2) F2 = FEXA(I,NPAS,1) DWEX = (F1 + F2)/2D0 * DQ1 F1 = FTOTA(I,2) - F1 F2 = FTOTA(I,1) - F2 * on ajoute les forces d'amortissement F1 = F1 - XASM(I)*Q2(I,2) F2 = F2 - XASM(I)*Q2(I,1) DWIN = -(F1 + F2)/2D0 * DQ1 WEXT(I,1) = WEXT(I,2) + DWEX WINT(I,1) = WINT(I,2) + DWIN 20 CONTINUE END