1 : C DEVENE SOURCE CHAT 05/01/12 22:44:51 5004 2 : SUBROUTINE DEVENE (NA1,IND,NPAS,FEXA,Q1,Q2,FTOTA,WEXT, 3 : & WINT,XASM,NPC1) 4 : IMPLICIT INTEGER(I-N) 5 : IMPLICIT REAL*8(A-H,O-Z) 6 : 7 : ************************************************************** 8 : * 9 : * Ce sous-programme calcule le travail des differentes forces 10 : * pour chaque mode 11 : * 12 : * e NA1 nombre d'inconnues sur base A 13 : * e IND idice du pas (2 -->1er 1/2 pas, 1 --> 2eme 1/2pas) 14 : * e FEXA forces exterieures sur base A 15 : * e NPAS numero du pas 16 : * e Q1 deplacements generalises 17 : * e Q2 vitesses generalisees 18 : * e FTOTA forces totales sur base A 19 : * e,s WEXT travail des forces exterieures 20 : * e,s WINT travail des forces interieures (rigidite et 21 : * amortissement et forces de liaison ) 22 : * e XASM tableau d'amortissements generalises 23 : * e NPC1 Nombre de pas de calcul 24 : 25 : 26 : ** 27 : ** ce sous-programme n'est pas, peut - etre, compatible avec 28 : ** les liaisons '..._FLUIDE' 29 : * 30 : * I. Politopoulos Mars 1996 31 : ******************************************************************** 32 : 33 : REAL*8 FEXA(NA1,NPC1,*),FTOTA(NA1,*),Q1(NA1,4),Q2(NA1,4) 34 : REAL*8 WEXT(NA1,2),WINT(NA1,2),XASM(NA1) 35 : 35 : * decallage du pas de temps car le 1er pas de FEXA est le pas (-1/2 0) 36 : NPASS = NPAS + 1 37 : 38 : IF (IND.EQ.2) THEN 39 : * 1er demi-pas 40 : DO 10 I=1, NA1 41 : DQ1 = Q1(I,2) - Q1(I,3) 42 : 43 : F1 = FEXA(I,NPAS,1) 44 : F2 = FEXA(I,NPASS,2) 45 : DWEX = (F1 + F2)/2D0 * DQ1 46 : 47 : F1 = FTOTA(I,3) - F1 48 : F2 = FTOTA(I,2) - F2 49 : 50 : * on ajoute les forces d'amortissement 51 : F1 = F1 - XASM(I)*Q2(I,3) 52 : F2 = F2 - XASM(I)*Q2(I,2) 53 : DWIN = -(F1 + F2)/2D0 * DQ1 54 : 55 : WEXT(I,2) = WEXT(I,1) + DWEX 56 : WINT(I,2) = WINT(I,1) + DWIN 57 : 58 : 10 CONTINUE 59 : ELSE 60 : * 2eme demi-pas 61 : DO 20 I=1, NA1 62 : DQ1 = Q1(I,1) - Q1(I,2) 63 : 64 : F1 = FEXA(I,NPASS,2) 65 : F2 = FEXA(I,NPASS,1) 66 : DWEX = (F1 + F2)/2D0 * DQ1 67 : 68 : F1 = FTOTA(I,2) - F1 69 : F2 = FTOTA(I,1) - F2 70 : 71 : * on ajoute les forces d'amortissement 72 : F1 = F1 - XASM(I)*Q2(I,2) 73 : F2 = F2 - XASM(I)*Q2(I,1) 74 : DWIN = -(F1 + F2)/2D0 * DQ1 75 : 76 : WEXT(I,1) = WEXT(I,2) + DWEX 77 : WINT(I,1) = WINT(I,2) + DWIN 78 : 79 : 20 CONTINUE 80 : ENDIF 81 : 82 : END 83 : 84 : 85 :
© Cast3M 2003 - All rights reserved.
Disclaimer