Download devene.eso

Back to the list

   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