Télécharger dyforc.eso

Retour à la liste

Numérotation des lignes :

dyforc
  1. C DYFORC SOURCE BP208322 20/09/18 21:16:20 10718
  2. SUBROUTINE DYFORC(XPTB,XVALB,IPALB,IPLIB,XPALB,NLIAB,NPLB,IND
  3. &,IND2,PDTS2,I,iannul,IESC,IROLE,XCHPFB)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. *--------------------------------------------------------------------*
  7. * *
  8. * Opérateur DYNE : algorithme de Fu - de Vogelaere *
  9. * ________________________________________________ *
  10. * *
  11. * Calcul des forces de choc sur base B pour les liaisons de *
  12. * type POINT_PLAN. *
  13. * *
  14. * Paramètres: *
  15. * *
  16. * e XPTB Tableau des déplacements des points *
  17. * e IPALB Renseigne sur la liaison. *
  18. * e IPLIB Tableau contenant les numéros "DYNE" de la liaison. *
  19. * e XPALB Tableau contenant les paramètres de la liaison. *
  20. * es XVALB Tableau contenant les variables internes de liaisons. *
  21. * es XCHPFB Tableau contenant les valeurs des futurs chpoints *
  22. * e NLIAB Nombre de liaisons sur la base B. *
  23. * e NPLB Nombre total de points intervenant dans les liaisons. *
  24. * e IND Indice du pas. *
  25. * e I numéro de la liaison. *
  26. * e IESC numéro DYNE du noeud esclave *
  27. * e IROLE indique qui est le maitre et l'esclave *
  28. * = 0 premiere passe , =1 deuxième passe *
  29. * *
  30. * *
  31. * Auteur, date de création: *
  32. * *
  33. * Samuel DURAND : le 19 Octobre 1996 : Création *
  34. * *
  35. *--------------------------------------------------------------------*
  36. *
  37. INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*)
  38. INTEGER ICAND(2)
  39. REAL*8 XPALB(NLIAB,*),XPTB(NPLB,2,*),XVALB(NLIAB,4,*)
  40. REAL*8 XXXN(3),XCHPFB(2,NLIAB,4,*)
  41. *
  42. XEPSI = 0.0001
  43. IGP = IPALB(I,2)
  44. IDIM = IPALB(I,3)
  45. * ILOCAL = IPALB(I,23)
  46. ITYP = IPALB(I,1)
  47. XPOID = 0.D0
  48. *
  49. IF (ITYP.EQ.35) THEN
  50. ID1 = 6
  51. ELSE
  52. ID1 = 7
  53. ENDIF
  54. *
  55. IF (IROLE.EQ.0) THEN
  56. KMAI = 0
  57. IMAI = ID1 +4*IDIM
  58. IBUT = IMAI + IPALB(I,21)*IDIM
  59. KBUT = IPALB(I,21)
  60. LMAI = ID1 + (IPALB(I,21)+IPALB(I,22)+4)*IDIM
  61. LBUT = LMAI +IPALB(I,21)*IDIM
  62. JMAI = 26 + IPALB(I,21)+IPALB(I,22)
  63. JBUT = JMAI + IPALB(I,21)
  64. MBUT = LBUT +IPALB(I,22)*IDIM +IPALB(I,21)
  65. NBUT = MBUT +IPALB(I,21)+IPALB(I,22)
  66. ELSE
  67. KMAI = IPALB(I,21)
  68. IBUT = ID1 + 4*IDIM
  69. IMAI = IBUT + IPALB(I,21)*IDIM
  70. KBUT = 0
  71. LBUT = ID1 + (IPALB(I,21)+IPALB(I,22)+4)*IDIM
  72. LMAI = LBUT +IPALB(I,21)*IDIM
  73. JBUT = 26 + 2*(IPALB(I,21)+IPALB(I,22))
  74. JMAI = JBUT +IPALB(I,21)
  75. MBUT = LMAI +IPALB(I,22)*IDIM
  76. NBUT = MBUT +IPALB(I,21)+IPALB(I,22)
  77. ENDIF
  78. ID2 = ID1 + IDIM
  79. ID4 = ID1 +3*IDIM
  80. CALL DYCAND(IPALB,IPLIB,XPALB,XPTB,IND,I,NLIAB,NPLB,
  81. & XXXN,XDEP,XPOID,ICAND,IESC,IROLE)
  82. XVITN =0.D0
  83. IDCAN1 = IMAI + (ICAND(1)-1)*IDIM
  84. IDCAN2 = IMAI + (ICAND(2)-1)*IDIM
  85. DO 80 ID=1,IDIM
  86. *
  87. * Déplacement du point de contact au pas courant
  88. XDE2 =(XPTB(IPLIB(I,KMAI+ICAND(2)),1,ID))*(1-XPOID)
  89. & + (XPTB(IPLIB(I,KMAI+ICAND(1)),1,ID))*XPOID
  90. XVALB(I,IND,3+ID) = XVALB(I,IND,3+ID)+
  91. & XPALB(I,IDCAN1+ID)*XPOID +XPALB(I,IDCAN2+ID)*(1-XPOID)
  92. cbp,2020-09* Déplacement du point de contact au pas précédent
  93. cbp,2020-09 XDM2 =(XPTB(IPLIB(I,KMAI+ICAND(2)),IND2,ID))*(1-XPOID)
  94. cbp,2020-09 & + (XPTB(IPLIB(I,KMAI+ICAND(1)),IND2,ID))*XPOID
  95. * Vitesse du point de contact au pas courant
  96. XVI2 =(XPTB(IPLIB(I,KMAI+ICAND(2)),2,ID))*(1-XPOID)
  97. & + (XPTB(IPLIB(I,KMAI+ICAND(1)),2,ID))*XPOID
  98. cbp,2020-09* Déplacement de la butee
  99. cbp,2020-09 XDB = (XPTB(IPLIB(I,KBUT+IESC),IND,ID)
  100. cbp,2020-09 & -XPTB(IPLIB(I,KBUT+IESC),IND2,ID))
  101. * Vitesse de la butee
  102. XVB = XPTB(IPLIB(I,KBUT+IESC),2,ID)
  103. * Vitesse de glissement
  104. cbp,2020-09 XPALB(I,ID2+ID)=(XDB+XDM2-XDE2)/PDTS2
  105. XPALB(I,ID2+ID)=XVB-XVI2
  106. * Vitesse normale
  107. cbp,2020-09 XVITN = XVITN + ((XDB+XDM2-XDE2)*XXXN(ID)/PDTS2)
  108. XVITN = XVITN + (XVB-XVI2)*XXXN(ID)
  109. 80 CONTINUE
  110. DO 82 ID=1,IDIM
  111. * Vitesse tangentielle
  112. XPALB(I,ID2+ID) = XPALB(I,ID2+ID) - (XVITN*XXXN(ID))
  113. 82 CONTINUE
  114. * Calcul de la force de choc
  115. XPALB(I,1) = XPALB(I,MBUT+IESC)
  116. IF (ITYP.EQ.35) THEN
  117. CALL DYCHE4(XDEP,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT,XPUS,
  118. &iannul)
  119. ELSE
  120. XPALB(I,7) = XPALB(I,NBUT+IESC)
  121. CALL DYCHA4(XDEP,XVITN,IDIM,IGP,XPALB,NLIAB,I,XFN,XFT
  122. &,XPUS,iannul)
  123. ENDIF
  124. XVALB(I,IND,3) = XVALB(I,IND,3) + XVITN
  125. IPALB(I,2) = IGP
  126. IF (IGP.EQ.1) THEN
  127. PS =0.D0
  128. DO 84 ID=1,IDIM
  129. PS=PS+(XPALB(I,ID2+ID)*XPALB(I,ID2+ID))
  130. 84 CONTINUE
  131. XVITT = SQRT(PS)
  132. ELSE
  133. XVITT = 0.D0
  134. ENDIF
  135. XVALB(I,IND,11) = XVALB(I,IND,11)+XVITT
  136. IF (XDEP.GT.0) THEN
  137. DO 90 ID=1,IDIM
  138. XPALB(I,ID+LMAI+(ICAND(1)-1)*IDIM) =XPALB(I,ID+LMAI+
  139. &(ICAND(1)-1)*IDIM)-XPOID * (XFN*XXXN(ID) + XPALB(I,ID4+ID))
  140. XPALB(I,ID+LMAI+(ICAND(2)-1)*IDIM) =XPALB(I,ID+LMAI+
  141. &(ICAND(2)-1)*IDIM)- ( 1.-XPOID )*(XFN*XXXN(ID) + XPALB(I,ID4+ID))
  142. XPALB(I,ID+LBUT+(IESC-1)*IDIM) =XPALB(I,ID+LBUT+
  143. &(IESC-1)*IDIM) + XFN * XXXN(ID) + XPALB(I,ID4+ID)
  144. 90 CONTINUE
  145. XCHPFB(1,I,IND,IPLIB(I,KBUT+IESC))=
  146. &XCHPFB(1,I,IND,IPLIB(I,KBUT+IESC))+XFN
  147. XCHPFB(2,I,IND,IPLIB(I,KBUT+IESC))=
  148. &XCHPFB(2,I,IND,IPLIB(I,KBUT+IESC))+ABS(XFT)
  149. XCHPFB(1,I,IND,IPLIB(I,KMAI+ICAND(1)))=
  150. &XCHPFB(1,I,IND,IPLIB(I,KMAI+ICAND(1)))+XPOID *XFN
  151. XCHPFB(2,I,IND,IPLIB(I,KMAI+ICAND(1)))=
  152. &XCHPFB(2,I,IND,IPLIB(I,KMAI+ICAND(1)))+XPOID *ABS(XFT)
  153. XCHPFB(1,I,IND,IPLIB(I,KMAI+ICAND(2)))=
  154. &XCHPFB(1,I,IND,IPLIB(I,KMAI+ICAND(2)))+( 1.-XPOID )*XFN
  155. XCHPFB(2,I,IND,IPLIB(I,KMAI+ICAND(2)))=
  156. &XCHPFB(2,I,IND,IPLIB(I,KMAI+ICAND(2)))+( 1.-XPOID )*ABS(XFT)
  157. IF (XPOID.GT.XEPSI) THEN
  158. IPALB(I,JMAI+ICAND(1))=1
  159. ENDIF
  160. IF ((1.0-XPOID).GT.XEPSI) THEN
  161. IPALB(I,JMAI+ICAND(2))=1
  162. ENDIF
  163. IPALB(I,JBUT+IESC) = 1
  164. XVALB(I,IND,1) = XVALB(I,IND,1)+XFN
  165. XVALB(I,IND,10) = XVALB(I,IND,10)+ ABS(XFT)
  166. XVALB(I,IND,12) = XVALB(I,IND,12)+ XPUS
  167. ENDIF
  168. *
  169. END
  170.  
  171.  
  172.  
  173.  
  174.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales