Télécharger d2vlb1.eso

Retour à la liste

Numérotation des lignes :

d2vlb1
  1. C D2VLB1 SOURCE BP208322 20/09/18 21:15:15 10718
  2. c
  3. SUBROUTINE D2VLB1(FTOTB,XPTB,IPALB,IPLIB,JPLIB,XPALB,XVALB,NLIAB,
  4. & NPLB,IDIMB,PDT,NPAS,IND,FEXPSM,NPC1,IERRD,
  5. & FTEST,XABSCI,XORDON,NIP,XCHPFB,
  6. & KTOTXB,KTOTVB,GETJAC)
  7.  
  8. *--------------------------------------------------------------------*
  9. * Operateur DYNE (Differences_Centrees) et DYNC : *
  10. * Calcul des forces de choc base B *
  11. *--------------------------------------------------------------------*
  12. * *
  13. * Paramètres: *
  14. * *
  15. * es FTOTB Forces non-lineaires totalisees sur la base B. *
  16. * es KTOTXB Matrice tangente,X des efforts non-lineaires (base B) *
  17. * es KTOTVB Matrice tangente,V des efforts non-lineaires (base B) *
  18. * e XPTB Tableau des déplacements des points *
  19. * e IPALB Renseigne sur la liaison. *
  20. * e IPLIB Tableau contenant les numéros "DYNE" de la liaison. *
  21. * e JPLIB Tableau contenant les numéros "GIBI" de la liaison. *
  22. * e XPALB Tableau contenant les paramètres de la liaison. *
  23. * es XVALB Tableau contenant les variables internes de liaisons. *
  24. * e NLIAB Nombre de liaisons sur la base B. *
  25. * e NPLB Nombre total de points intervenant dans les liaisons. *
  26. * e IDIMB Nombre de directions. *
  27. * e PDT pas de temps. *
  28. * e NPAS Numéro du pas de temps. *
  29. * e IND Indice du pas. *
  30. * e FEXPSM Tableau contenant les pseudo-modes. *
  31. * e NPC1 *
  32. * e XABSCI Tableau contenant les abscisses de la loi plastique *
  33. * pour la liaison point-point- ... -plastique *
  34. * e XORDON Tableau contenant les ordonnees de la loi plastique *
  35. * pour la liaison point-point- ... -plastique *
  36. * *
  37. * - FTEST Pour tester la force qui sert a enclencher *
  38. * les liaisons conditionnelles *
  39. * *
  40. *--------------------------------------------------------------------*
  41. *
  42. IMPLICIT INTEGER(I-N)
  43. IMPLICIT REAL*8(A-H,O-Z)
  44.  
  45. INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*),JPLIB(*)
  46. REAL*8 XPALB(NLIAB,*),XPTB(NPLB,2,*),FTOTB(NPLB,*)
  47. REAL*8 XVALB(NLIAB,4,*),FEXPSM(NPLB,NPC1,2,*)
  48. REAL*8 XABSCI(NLIAB,*),XORDON(NLIAB,*)
  49. REAL*8 FTEST(NPLB,6)
  50. REAL*8 XCHPFB(2,NLIAB,4,*)
  51. REAL*8 KTOTXB(NPLB,IDIMB,IDIMB),KTOTVB(NPLB,IDIMB,IDIMB)
  52. LOGICAL GETJAC
  53.  
  54. *--------------------------------------------------------------------*
  55. *old IND ,IND2 : indice courant et precedent
  56. *new IND ,IND2 : depl et vitesse courant
  57. * |_______________ pas de temps _______________|
  58. * ____ algorithme ____|__ ind=1 __|__ ind=2 __|_ind=3_|__ ind=4 __|
  59. *old Differences_Centrees| t_{n+1} | t_n | - | - |
  60. * ~.
  61. *new De_Vogelaere | x_{n+1} | x_{n+1} | - | - |
  62. * ~.
  63. * x =estimation de la vitesse
  64. *---------------------------------------------------------------------*
  65. * NPA ,IND1 : pas et indice courant pour les pseudo-modes
  66. * NPAM1,INDM1 : pas et indice precedent pour les pseudo-modes
  67. *--------------------------------------------------------------------*
  68. * d'ou les commentaires de Iannis :
  69. ** npa, npam1, ind1, indm1 ne servent que pour les modes negligés;
  70. ** mais comme de toute façon c'est mal fait car on ne tient pas compte des
  71. ** forces nl lors de la contribution des pseudomodes on s'en fiche
  72. *--------------------------------------------------------------------*
  73. NPA = NPAS
  74. NPAM1 = NPAS
  75. IND1 = 1
  76. INDM1 = 2
  77. * ind = 1 et ind2 = 2 sauf pour l'initialisation où ind = 2 et ind2 = 3
  78. IND2 = IND + 1
  79. PDTS2 = pdt
  80.  
  81.  
  82. *--------------------------------------------------------------------*
  83. *
  84. * Boucle sur le nombre de liaisons
  85. *
  86. *--------------------------------------------------------------------*
  87. DO 10 I = 1,NLIAB
  88. ITYP = IPALB(I,1)
  89. icond= IPALB(I,4)
  90. iannul= 0
  91.  
  92. * --- cas des liaisons conditionnelles
  93. if (icond .eq. 1 ) then
  94. c 20 car on a defini nipalb = 20 dans dyne22
  95. DO 101 j = 5,20
  96. jliai = ipalb(i,j)
  97. jpliai = abs ( jliai)
  98. if ( jliai . EQ. 0 ) then
  99. goto 101
  100. else
  101. jtyp = ipalb(jpliai,1)
  102. do 102 ik = 1,nplb
  103. do 103 jk = 1,idimb
  104. ftest(ik,jk) = 0d0
  105. cbp, supprime le 2019-01-15 ftotb0 (ik,jk) = ftotb(ik,jk)
  106. 103 continue
  107. 102 continue
  108. IF (jTYP.EQ.1 .OR. jTYP.EQ.3 .OR. jTYP.EQ.103
  109. & .OR. jTYP.EQ.5 .OR. jTYP.EQ.6 .OR. jTYP.EQ.7
  110. & .OR. jTYP.EQ.100 .OR. jTYP.EQ.101 .OR. jTYP.EQ.102) THEN
  111. CALL DEVFB1(jTYP,ftest,XPTB,IPALB,IPLIB,XPALB,XVALB,Nliab,
  112. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  113. & FEXPSM,NPC1,XABSCI,XORDON,NIP,jpliai,iannul,
  114. & KTOTXB,KTOTVB,IDIMB,.false.)
  115. ELSEIF (jTYP.EQ.11 .or. jTYP.EQ.111
  116. & .or. (abs(jTYP)).EQ.13 .OR. jTYP.EQ.113) THEN
  117. CALL DEVFB2(jTYP,ftest,XPTB,IPALB,IPLIB,XPALB,XVALB,Nliab,
  118. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  119. & FEXPSM,NPC1,XABSCI,XORDON,NIP,jpliai,iannul)
  120. ELSEIF (jTYP.EQ.21 .OR. jTYP.EQ.22 .OR. jTYP.EQ.23
  121. & .OR. jTYP.EQ.24 .OR. jTYP.EQ.25 .OR. jTYP.EQ.26
  122. & .OR. jTYP.EQ.33 .OR. jTYP.EQ.34 .OR. jTYP.EQ.123
  123. & .OR. jTYP.EQ.124 .OR. jTYP.EQ.125 .OR. jTYP.EQ.126
  124. & .OR. jTYP.EQ.133 .OR. jTYP.EQ.134 ) THEN
  125. CALL DEVFB3(jTYP,ftest,XPTB,IPALB,IPLIB,XPALB,XVALB,Nliab,
  126. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  127. & FEXPSM,NPC1,jpliai,iannul,
  128. & KTOTXB,KTOTVB,IDIMB,.false.)
  129. ELSEIF (jTYP.EQ.31 .OR. jTYP.EQ.32) THEN
  130. CALL DEVFB4(jTYP,ftest,XPTB,IPALB,IPLIB,XPALB,XVALB,nliab,
  131. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  132. & FEXPSM,NPC1,jpliai,IERRD,iannul)
  133. ELSEIF (ITYP.EQ.16 .OR. ITYP.EQ.17
  134. & .OR. ITYP.EQ.50 .OR. ITYP.EQ.51) THEN
  135. CALL DEVFB5(jTYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  136. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  137. & FEXPSM,NPC1,I,XABSCI,XORDON,NIP,iannul)
  138. ELSEIF (jTYP.EQ.35 .OR. jTYP.EQ.36) THEN
  139. CALL DEVFB6(jTYP,ftest,XPTB,IPALB,IPLIB,XPALB,XVALB,nliab,
  140. & NPLB,IND,IND2,PDTS2,jpliai,iannul,XCHPFB)
  141. ELSEIF (jTYP.EQ.37 .OR. jTYP.EQ.38
  142. & .OR. jTYP.EQ.39 .OR. JTYP.EQ.40) THEN
  143. CALL DEVFB7(jTYP,ftest,XPTB,IPALB,IPLIB,XPALB,XVALB,nliab,
  144. & NPLB,IND,IND2,PDTS2,jpliai,iannul,XCHPFB)
  145. IF (IERRD.NE.0) RETURN
  146. ENDIF
  147.  
  148. xff = 0.d0
  149. do 104 ik = 1,nplb
  150. do 105 jk = 1,idimb
  151. xff = xff + ( ftest(ik,jk) ** 2)
  152. 105 continue
  153. 104 continue
  154. xff = xff ** .5
  155. if ( ((xff .le. 1e-20 ) .and. ( jliai .gt. 0) )
  156. & .OR. ((xff .gt. 1e-20 ) .and. ( jliai .lt. 0) ) )
  157. & then
  158. iannul = 1
  159. endif
  160.  
  161. endif
  162. 101 continue
  163. endif
  164. * --- fin du cas des liaisons conditionnelles
  165.  
  166. *
  167. * ------ choc ..._PLAN
  168. *
  169. IF (ITYP.EQ.1 .OR. ITYP.EQ.3 .OR. ITYP.EQ.103
  170. & .OR. ITYP.EQ.5 .OR. ITYP.EQ.6 .OR. ITYP.EQ.7
  171. & .OR. ITYP.EQ.100 .OR. ITYP.EQ.101 .OR. ITYP.EQ.102) THEN
  172. *
  173. CALL DEVFB1(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  174. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  175. & FEXPSM,NPC1,XABSCI,XORDON,NIP,I,iannul,
  176. & KTOTXB,KTOTVB,IDIMB,GETJAC)
  177. *
  178. * ------ choc ..._POINT
  179. *
  180. ELSEIF (ITYP.EQ.11 .or. ITYP.EQ.111
  181. & .or. (abs(ITYP)).EQ.13 .OR. ITYP.EQ.113) THEN
  182. CALL DEVFB2(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  183. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  184. & FEXPSM,NPC1,XABSCI,XORDON,NIP,I,iannul)
  185. *
  186. * ------ choc POINT_POINT_ ... _PLASTIQUE
  187. *
  188. ELSEIF (ITYP.EQ.16 .OR. ITYP.EQ.17 .OR.
  189. & ITYP.EQ.50 .OR. ITYP.EQ.51) THEN
  190. *
  191. CALL DEVFB5(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,NPLB,
  192. & IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,FEXPSM,NPC1,
  193. & I,XABSCI,XORDON,NIP,iannul)
  194. *
  195. * ------ choc ..._CERCLE(sauf ligne_cercle)
  196. *
  197. ELSEIF (ITYP.EQ.21 .OR. ITYP.EQ.22 .OR. ITYP.EQ.23
  198. & .OR. ITYP.EQ.24 .OR. ITYP.EQ.25 .OR. ITYP.EQ.26
  199. & .OR. ITYP.EQ.33 .OR. ITYP.EQ.34 .OR. jTYP.EQ.123
  200. & .OR. jTYP.EQ.124 .OR. jTYP.EQ.125 .OR. jTYP.EQ.126
  201. & .OR. jTYP.EQ.133 .OR. jTYP.EQ.134 ) THEN
  202.  
  203. CALL DEVFB3(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  204. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  205. & FEXPSM,NPC1,I,iannul,
  206. & KTOTXB,KTOTVB,IDIMB,GETJAC)
  207. *
  208. * ------ choc PROFIL_PROFIL_...
  209. *
  210. ELSEIF (ITYP.EQ.31 .OR. ITYP.EQ.32) THEN
  211. CALL DEVFB4(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  212. & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  213. & FEXPSM,NPC1,I,IERRD,iannul)
  214. IF (IERRD.NE.0) RETURN
  215. *
  216. * ------ choc LIGNE_LIGNE
  217. *
  218. ELSEIF (ITYP.EQ.35 .OR. ITYP.EQ.36) THEN
  219. CALL DEVFB6(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  220. & NPLB,IND,IND2,PDTS2,I,iannul,XCHPFB)
  221. *
  222. *---------choc LIGNE_CERCLE
  223. *
  224. ELSEIF (ITYP.EQ.37 .OR. ITYP.EQ.38
  225. & .OR. ITYP.EQ.39 .OR. ITYP.EQ.40) THEN
  226. CALL DEVFB7(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  227. & NPLB,IND,IND2,PDTS2,I,iannul,XCHPFB)
  228. *
  229. * ------ liaison PALIER_FLUIDE
  230.  
  231. ELSEIF (ITYP.EQ.60) THEN
  232. CALL DEVFB8 (ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  233. & NPLB,IND,IND2,PDTS2,I,iannul)
  234.  
  235.  
  236. *
  237. * ------ choc ...........
  238. *
  239. * ELSEIF (ITYP.EQ. ) THEN
  240. * CALL DEVFB (ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  241. * & NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2,
  242. * & FEXPSM,NPC1,I,iannul)
  243. ENDIF
  244.  
  245.  
  246. 10 CONTINUE
  247.  
  248.  
  249. END
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  

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