Télécharger dyneve.eso

Retour à la liste

Numérotation des lignes :

  1. C DYNEVE SOURCE CHAT 05/01/12 23:18:59 5004
  2. SUBROUTINE DYNEVE(IPRIG,ICHT1,ICHT2,ICHT3,ICHT4,
  3. & IPCGT,TINI,DT,NPAS,ITAB1,IPCHM,IPPT)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. ************************************************************************
  7. *
  8. * D Y N E V E
  9. * -----------
  10. *
  11. * FONCTION:
  12. * ---------
  13. * UTILITAIRE DE L'OPERATEUR "DYNE"
  14. * VERIFICATION, IDENTIFICATION ET PREPARATION DES OPERANDES
  15. *
  16. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  17. * -----------
  18. *
  19. * IPRIG (E/S) TABLEAU DE POINTEURS SUR DES RIGIDITES, AVEC :
  20. * IPRIG(1) POINTEUR SUR L'OBJET M
  21. * IPRIG(2) POINTEUR SUR L'OBJET K
  22. * IPRIG(3) POINTEUR SUR L'OBJET A
  23. * IPRIG(4) POINTEUR SUR L'OBJET Z ( EN SORTIE )
  24. * MCHT (S) POINTEUR SUR LE SEGMENT MCHT ( LAISSE ACTIF )
  25. * IPCGT (E) TABLEAU DE POINTEURS SUR LES OBJETS CHARGEMENT, AVEC
  26. * IPCGT(1) POINTEUR SUR CGB
  27. * IPCGT(2) POINTEUR SUR CGF
  28. * TINI (E) TEMPS INITIAL
  29. * DT (E) PAS DE TEMPS
  30. * NPAS (E) NOMBRE DE PAS DE CALCUL
  31. * ITAB1 (E) POINTEUR SUR LA TABLE DES CHAMPS INITIAUX
  32. * IPCHM (S) TABLEAU DE POINTEURS SUR LES CHAMPS INITIAUX, AVEC :
  33. * IPCHM(1) POINTEUR SUR U0
  34. * IPCHM(2) POINTEUR SUR V0
  35. * IPPT (S) TABLEAU DE POINTEURS, AVEC : -1
  36. * IPPT(1) POINTEUR SUR LE VECTDOUB CONTENANT M
  37. * ( ACTIF )
  38. * IPPT(2) POINTEUR SUR UN SEGMENT MBLO ( ACTIF )
  39. * IPPT(3) POINTEUR SUR UN SEGMENT MBLO ( ACTIF )
  40. * IPPT(4) POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF )
  41. * IPPT(5) POINTEUR SUR LE SEGMENT MMATRI ( ACTIF )
  42. * IPPT(6) POINTEUR SUR LE SEGMENT MZZZ ( ACTIF )
  43. *
  44. * ATTENTION : ON ESSAIE DE D'ACTIVER UNE FOIS POUR TOUTES |
  45. *
  46. * AUTEUR, DATE DE CREATION:
  47. * -------------------------
  48. * DENIS ROBERT, LE 20 OCTOBRE 1988.
  49. * REVU ET CORRIGE DECEMBRE 89 MP
  50. *
  51. * LANGAGE:
  52. * --------
  53. * ESOPE + FORTRAN77
  54. *
  55. ************************************************************************
  56. *
  57. * MODULES UTILISES:
  58. *
  59. -INC CCOPTIO
  60. -INC SMVECTD
  61. *
  62. INTEGER IPRIG(4),IPCGT(2),IPCHM(2),IPPT(6)
  63. LOGICAL L0,L1
  64. CHARACTER*9 MO1,TYPRET,CHARRE
  65. *
  66. IPM=0
  67. IPCGTB=0
  68. IPCGTF=0
  69. ICHOLX=0
  70. *
  71. SEGMENT,MCHT1
  72. REAL*8 VCC1(IDDL)
  73. ENDSEGMENT
  74. *
  75. SEGMENT,MCHT2
  76. REAL*8 VCC2(NDDL)
  77. ENDSEGMENT
  78. *
  79. SEGMENT,MCHT3
  80. REAL*8 COE1(LCOE)
  81. ENDSEGMENT
  82. POINTEUR MCHT32.MCHT3
  83. *
  84. *--- SEGMENTS CONTENANT A ET A M
  85. *
  86. SEGMENT,MBLO
  87. REAL*8 BLO(IDDL,NDDL)
  88. ENDSEGMENT
  89. POINTEUR MBLO2.MBLO
  90. *
  91. *--- VERIFICATION ET IDENTIFICATION DES OBJETS RIGIDITE
  92. *+*
  93. IPRIGM=IPRIG(1)
  94. IPRIGK=IPRIG(2)
  95. IPRIGA=IPRIG(3)
  96. *
  97. *-------------------------------------------------*
  98. *--- ASSEMBLAGE EVENTUEL DE LA MATRICE MASSE ---*
  99. *-------------------------------------------------*
  100. *
  101. CALL DYNE00(IPRIGM,IRSCPR,ICHOLX,LONVEC)
  102. IF (IERR.NE.0) RETURN
  103. INC=LONVEC
  104. SEGINI,MVECTD
  105. CALL ZERO(VECTBB,LONVEC,1)
  106. IPMASI=MVECTD
  107. *
  108. *--------------------------------------------------*
  109. *--- LUMPAGE ET INVERSION DE LA MATRICE MASSE ---*
  110. *--------------------------------------------------*
  111. *
  112. CALL DYNE01(ICHOLX,IRSCPR,IPRIGM,IPMASI)
  113. IF (IERR.NE.0) RETURN
  114. *
  115. *----------------------------------*
  116. * -1 T *
  117. *--- CALCUL DE : Z = A M A ---*
  118. *----------------------------------*
  119. *
  120. CALL DYNE02(ICHOLX,IRSCPR,LONVEC,IPRIGA,IPMASI,IPZ,IPM,
  121. & IBLO,IBLO2,IPRIGZ,ICPC)
  122. IF (IERR.NE.0) RETURN
  123. MBLO=IBLO
  124. IDDL=BLO(/1)
  125. NDDL=BLO(/2)
  126. MVECTD=IPMASI
  127. SEGSUP,MVECTD
  128. *
  129. *---------------------------------------*
  130. *--- CONCERNANT LES CHARGEMENTS... ---*
  131. *---------------------------------------*
  132. *
  133. NCGT=0
  134. DO 110 ICGT=1,2
  135. IF (IPCGT(ICGT).NE.0) THEN
  136. *
  137. *--- ON A TROUVE UN CHARGEMENT
  138. *
  139. NCGT=NCGT+1
  140. ENDIF
  141. 110 CONTINUE
  142. * END DO
  143. IF (NCGT.EQ.1) THEN
  144. *
  145. *--- UN SEUL CHARGEMENT, A IDENTIFIER...
  146. *+* ON SUPPOSE ABUSIVEMENT QU'IL S'AGIT DE IPCGTF |
  147. IPCGTF=IPCGT(1)
  148. ELSE
  149. *
  150. *--- CGB ET CGF
  151. *
  152. IPCGTB=IPCGT(1)
  153. IPCGTF=IPCGT(2)
  154. ENDIF
  155. * | IPCGTB DANS IPCGT(1)
  156. *--- RANGEMENT |
  157. * | IPCGTF DANS IPCGT(2)
  158. IPCGT(1)=0
  159. IPCGT(2)=0
  160. IPCGT(1)=IPCGTB
  161. IPCGT(2)=IPCGTF
  162. *
  163. *--- D'UN OBJET CHARGEMENT, ON TIRE UN VECTEUR ET UNE LISTE DE
  164. *--- COEFFICIENTS, RANGES DANS LE SEGMENT MCHT
  165. *
  166. LCOE=NPAS+1
  167. SEGINI,MCHT1
  168. ICHT1=MCHT1
  169. SEGINI,MCHT2
  170. ICHT2=MCHT2
  171. SEGINI,MCHT3
  172. ICHT3=MCHT3
  173. SEGINI,MCHT32
  174. ICHT4=MCHT32
  175. *
  176. CALL ZERO(VCC1,IDDL,1)
  177. CALL ZERO(COE1,LCOE,1)
  178. CALL ZERO(VCC2,NDDL,1)
  179. CALL ZERO(MCHT32.COE1,LCOE,1)
  180. *
  181. IF (IPCGT(2).NE.0) THEN
  182. CALL DYNECH(IPCGT(2),TINI,DT,NPAS,ICHOLX,NDDL,ICHT2,ICHT4)
  183. IF (IERR.NE.0) RETURN
  184. ENDIF
  185. *
  186. IF (IPCGT(1).NE.0) THEN
  187. CALL DYNE09(IPCGT(1),TINI,DT,NPAS,ICPC,IDDL,ICHT1,ICHT3)
  188. IF (IERR.NE.0) RETURN
  189. ENDIF
  190. *
  191. *--------------------------------------------------------------------*
  192. *--- VERIFICATION DE LA TABLE ET EXTRACTION DES CHAMPS INITIAUX ---*
  193. *--------------------------------------------------------------------*
  194. *
  195. CALL ACCTAB(ITAB1,'MOT',I0,X0,'SOUSTYPE',L0,IP0,
  196. & 'MOT',I1,X1,MO1,L1,IP1)
  197. IF (IERR.NE.0) RETURN
  198. IF (MO1.NE.'MOUVEMENT') THEN
  199. *
  200. *--- ERREUR DANS LA RECHERCHE DE L'INDICE D'UNE TABLE
  201. *
  202. CALL ERREUR(314)
  203. RETURN
  204. ENDIF
  205. *
  206. TYPRET=' '
  207. CALL ACCTAB(ITAB1,'MOT',I0,X0,'<DEPLACEMENT',L0,IP0,
  208. & TYPRET,I1,X1,CHARRE,L1,IPCHM1)
  209. IF (IERR.NE.0) RETURN
  210. *
  211.  
  212. TYPRET=' '
  213. CALL ACCTAB(ITAB1,'MOT',I0,X0,'<VITESSE',L0,IP0,
  214. & TYPRET,I1,X1,CHARRE,L1,IPCHM2)
  215. IF (IERR.NE.0) RETURN
  216. *
  217. *------------------------------------------*
  218. *--- PREPARATION DES PRODUITS : K * U ---*
  219. *------------------------------------------*
  220. *
  221. CALL DYNE03(IPRIGK,IRSCPR,MUCT,ICHOLX)
  222. IF (IERR.NE.0) RETURN
  223. *
  224. *--- REMPLISSAGE DES TABLEAUX DE POINTEURS
  225. *
  226. IPRIG(4)=IPRIGZ
  227. IPCHM(1)=IPCHM1
  228. IPCHM(2)=IPCHM2
  229. IPPT(1)=IPM
  230. IPPT(2)=IBLO
  231. IPPT(3)=IBLO2
  232. IPPT(4)=MUCT
  233. IPPT(5)=ICHOLX
  234. IPPT(6)=IPZ
  235. *
  236. END
  237.  
  238.  
  239.  

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