Télécharger evol22.eso

Retour à la liste

Numérotation des lignes :

evol22
  1. C EVOL22 SOURCE BP208322 22/09/09 21:15:03 11448
  2. SUBROUTINE EVOL22(IBOO,ILEX,ILEN1,ILEN2)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. C=======================================================================
  6. C ILEX CONTIENT LA SUITE DES CHPOINTS DES CONTRIBUTIONS MODALES.
  7. C POUR LES COUPLES POINTS COMPOSANTES CONTENUS DANS NUMOO,
  8. C ON RECOMBINE LES MODES dont les deformee sont CONTENUeS DANS ILEN1
  9. C RESULTAT DANS LE(S) LISTREEL KLIST.
  10. C APPELE PAR EVRECO
  11. C APPELLE : ERREUR(61,243,18) IANUL PROSC1
  12. C CREATION:12/10/89, PROGRAMMEUR:LENA
  13. C BP, 2017-07-18 : gros menage de la subroutine
  14. C=======================================================================
  15. C
  16. -INC PPARAM
  17. -INC CCOPTIO
  18. -INC SMCHPOI
  19. -INC SMLREEL
  20. -INC SMLENTI
  21. -INC SMELEME
  22. -INC SMTABLE
  23. -INC SMCOORD
  24. SEGMENT ICPR1(nbpts)
  25. SEGMENT/ITRAV1/(TRAV(LDEPL,N)*D)
  26. SEGMENT/ITRAV2/(TRAVV(LDEPL)*D)
  27. SEGMENT IPOS(NSOUP1)
  28. SEGMENT ITRAV(2,LDEPL)
  29. SEGMENT NUMOO
  30. INTEGER NUMO(N),KLIST(N)
  31. CHARACTER*(LOCHPO) NUDDL(N)
  32. ENDSEGMENT
  33. CHARACTER*4 NUJ
  34. CHARACTER*8 IBASMO
  35. DATA IBASMO/'BASE-MOD'/
  36. C
  37. LDEPL=0
  38. NUMOO=IBOO
  39. SEGACT NUMOO*MOD
  40. N=NUMO(/1)
  41.  
  42. C MLENT1 = LISTE DES DEFORMEES MODALES
  43. C MLENT2 = LISTE DES POINTS REPERES
  44. MLENT1=ILEN1
  45. MLENT2=ILEN2
  46. SEGACT MLENT1,MLENT2
  47. LDEPL=MLENT1.LECT(/1)
  48.  
  49. LICPR=nbpts
  50. SEGINI ICPR1
  51. SEGINI ITRAV1
  52.  
  53. C ---------------------------------------------------------------------
  54. C FABRICATION DU TABLEAU ITRAV1.TRAV(LDEPL,N)
  55. C DES MODES REDUITS AUX POINTS DE SORTIE
  56. C ---------------------------------------------------------------------
  57.  
  58. C --- BOUCLE SUR LES MODES ----------------------------------
  59. LDEP=MLENT1.LECT(/1)
  60. DO 40 I=1,LDEP
  61.  
  62. NUMPP=MLENT2.LECT(I)
  63. ICPR1(NUMPP)=I
  64. ichp=MLENT1.LECT(I)
  65.  
  66. C --- BOUCLE SUR LES DDL DEMANDES ----------------------------------
  67. DO 41 IP=1,N
  68. c recup du noeud et du nom de composante
  69. mpoint=numo(ip)
  70. NUJ=NUDDL(IP)
  71. call EXTRA9(ICHP,MPOINT,nuj,0,.FALSE.,XFLOT,IRET)
  72. c TRAV(I^eme mode,IP^eme ddl)=[ \phi_I(x_IP) ]_{I=1...LDEP}
  73. TRAV(I,IP)=xflot
  74. 41 continue
  75.  
  76. 40 CONTINUE
  77. C
  78. C ---------------------------------------------------------------------
  79. C FABRICATION DE ITRAV(2,LDEPL) ET DE IPOS(NSOUP+1)
  80. C ---------------------------------------------------------------------
  81. C ITRAV(1,kk) = I le kk^eme noeud du chpoint est le I^eme noeud
  82. c de la isou^eme zone du chpoint \phi_1
  83. C ITRAV(1,kk) = J le kk^eme noeud du chpoint est le noeud #J
  84. C IPOS : la isou^eme zone du chpoint \phi_1 s'etend des noeuds
  85. c kk_debut=IPOS(isou)+1 a kk_fin=IPOS(isou+1)
  86. MLENTI=ILEX
  87. SEGACT MLENTI
  88. MCHPOI=LECT(1)
  89. SEGACT MCHPOI
  90. NSOUP=IPCHP(/1)
  91. NSOUP1=NSOUP+1
  92. SEGINI IPOS
  93. SEGINI ITRAV
  94. KK=0
  95. IPOS(1)=0
  96. DO 1 ISOU=1,NSOUP
  97. MSOUPO=IPCHP(ISOU)
  98. SEGACT MSOUPO
  99. MELEME=IGEOC
  100. SEGACT MELEME
  101. DO 2 I=1,NUM(/2)
  102. J=ICPR1(NUM(1,I))
  103. IF (J.NE.0) THEN
  104. KK=KK+1
  105. ITRAV(1,KK)=I
  106. ITRAV(2,KK)=J
  107. ENDIF
  108. 2 CONTINUE
  109. SEGDES MELEME,MSOUPO
  110. IPOS(ISOU+1)=KK
  111. 1 CONTINUE
  112. SEGSUP ICPR1
  113. C
  114. C ---------------------------------------------------------------------
  115. C CREATION DE N LISREELS (OU N=NOMBRE DE DDLS A SORTIR)
  116. C DE TAILLE LTEM = NOMBRE DE PAS DE TEMPS A SORTIR
  117. C ---------------------------------------------------------------------
  118. C
  119. MLENTI=ILEX
  120. SEGACT MLENTI
  121. LTEM=LECT(/1)
  122. JG=LTEM
  123. DO 99 JJ=1,N
  124. SEGINI MLREEL
  125. KLIST(JJ)=MLREEL
  126. 99 CONTINUE
  127. C
  128. C ---------------------------------------------------------------------
  129. C FABRICATION DE ITRAV2.TRAVV ET CALCUL DE x(t) DEMANDE
  130. C ---------------------------------------------------------------------
  131. C
  132. SEGINI,ITRAV2
  133. c --- BOUCLE SUR LES PAS DE TEMPS t_l ---
  134. DO 90 L=1,LTEM
  135. MCHPOI=LECT(L)
  136. SEGACT MCHPOI
  137. DO 70 I=1,NSOUP
  138. IF (IPOS(I+1).NE.IPOS(I)) THEN
  139. MSOUPO=IPCHP(I)
  140. SEGACT MSOUPO
  141. MPOVAL=IPOVAL
  142. SEGACT MPOVAL
  143. DO 160 NB=IPOS(I)+1,IPOS(I+1)
  144. TRAVV(ITRAV(2,NB))=VPOCHA(ITRAV(1,NB),1)
  145. 160 CONTINUE
  146. SEGDES,MPOVAL,MSOUPO
  147. ENDIF
  148. 70 CONTINUE
  149. SEGDES MCHPOI
  150. c TRAVV(point repere du mode k = noeud j)=\alpha_k(t_l)
  151. DO 162 IP=1,N
  152. c x_IP(t_l) = [ \alpha_1(t_l) ... \alpha_kmax(t_l) ]^T
  153. c * [ \phi_1(x_IP) ... \phi_kmax((x_IP) ]
  154. CALL PROSC1(TRAVV,TRAV(1,IP),RET,LDEPL)
  155. MLREEL=KLIST(IP)
  156. PROG(L)=RET
  157. 162 CONTINUE
  158. 90 CONTINUE
  159. C
  160. C ---------------------------------------------------------------------
  161. c SUPPRESSION ET FERMETURE DES SEGMENTS
  162. C ---------------------------------------------------------------------
  163. C
  164. SEGSUP ITRAV
  165. SEGSUP IPOS
  166. SEGSUP ITRAV1,ITRAV2
  167. DO 98 JJ=1,N
  168. MLREEL=KLIST(JJ)
  169. SEGDES MLREEL
  170. 98 CONTINUE
  171. C
  172. SEGDES MLENTI
  173. 5000 CONTINUE
  174. RETURN
  175. END
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  

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