Télécharger react1.eso

Retour à la liste

Numérotation des lignes :

react1
  1. C REACT1 SOURCE PV090527 24/02/14 21:15:04 11839
  2. SUBROUTINE REACT1(MRIGID,MCHPOI,MCHPO1)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. -INC SMRIGID
  6. -INC SMELEME
  7. -INC SMCHPOI
  8.  
  9. -INC PPARAM
  10. -INC CCOPTIO
  11. CHARACTER*72 CTEXT
  12. SEGMENT IGARD(NNOL)
  13. C
  14. C ** ON VERIFIE QUE LE CHPOINT CONTIENT DES MULTIPLICATEURS
  15. C ** EN LEUR ABSENCE ON CREE UN CHPOINT VIDE
  16. C
  17. SEGACT MCHPOI
  18. NSOUPO = IPCHP(/1)
  19. * write(6,*) 'NSOUPO =',NSOUPO
  20. CTEXT = MOCHDE
  21. ITRUC = IFOPOI
  22. DO 500 K=1,IPCHP(/1)
  23. MSOUPO=IPCHP(K)
  24. SEGACT MSOUPO
  25. DO 501 J=1,NOCOMP(/2)
  26. IF(NOCOMP(J).EQ.'LX ') GO TO 502
  27. 501 CONTINUE
  28. 500 CONTINUE
  29. GO TO 288
  30. *
  31. 502 CONTINUE
  32. C DANS UN CHPOINT IL NE PEUT Y AVOIR Q'UNE SEULE PARTIE QUI CONTIENT
  33. C DES MULTIPLICATEURS , ON CREE UN CHPOIN LE CONTENANT
  34. NSOUPO=1
  35. NAT=1
  36. SEGINI MCHPOI
  37. JATTRI(1)=2
  38. IPCHP(1)=MSOUPO
  39. C
  40. C ** TERMINE POUR LE CHPOINT ON PASSE A LA RIGIDITE . ON VEUT
  41. C ** MAINTENANT FABRIQUER UN OBJET RIGIDITE CONTENANT UNIQUEMENT
  42. C ** LES MATRICES DE BLOQUAGE.
  43. C
  44. NRIGEL=0
  45. SEGACT MRIGID
  46. NNR=IRIGEL(/2)
  47. C
  48. C ** BOUCLE 1 SUR LES SOUS OBJETS RIGIDITES POUR COMPTER COMBIEN
  49. C ** DE MATRICES DE BLOQUAGES
  50. C
  51. DO 1 I=1,NNR
  52. DESCR= IRIGEL(3,I)
  53. SEGACT DESCR
  54. NINC=LISINC(/2)
  55. DO 2 J = 1,NINC
  56. IF(LISINC(J).EQ.'LX ') GO TO 3
  57. 2 CONTINUE
  58. SEGDES DESCR
  59. GO TO 1
  60. 3 CONTINUE
  61. NRIGEL=NRIGEL+1
  62. SEGDES DESCR
  63. 1 CONTINUE
  64. C
  65. C ** INITIALISATION DE L'OBJET RIGIDITE
  66. C
  67. IF(NRIGEL.NE.0) GO TO 4
  68. C
  69. C SI RIGIDITE VIDE , ON CREE UN CHPOINT VIDE
  70. C
  71. SEGSUP MCHPOI
  72. SEGDES MRIGID
  73. 288 NSOUPO=0
  74. NAT=1
  75. SEGINI MCHPO1
  76. MCHPO1.JATTRI(1)=2
  77. MCHPO1.IFOPOI=ITRUC
  78. MCHPO1.MOCHDE=CTEXT
  79. MCHPO1.MTYPOI=' '
  80. RETURN
  81. C
  82. 4 CONTINUE
  83. IA=1
  84. NRIGE= IRIGEL(/1)
  85. SEGINI RI1
  86. DO 10 I=1,NNR
  87. DESCR= IRIGEL(3,I)
  88. SEGACT DESCR
  89. NINC=LISINC(/2)
  90. DO 20 J = 1,NINC
  91. IF(LISINC(J).EQ.'LX ') GO TO 30
  92. 20 CONTINUE
  93. SEGDES DESCR
  94. GO TO 10
  95. 30 CONTINUE
  96. DO 31 L=1,NRIGE
  97. RI1.IRIGEL(L,IA)=IRIGEL(L,I)
  98. 31 CONTINUE
  99. RI1.COERIG(IA)=-COERIG(I)
  100. IA=IA+1
  101. SEGDES DESCR
  102. 10 CONTINUE
  103. SEGDES MRIGID,RI1
  104. CALL MUCPRI(MCHPOI,RI1,IRET)
  105. C
  106. C ** IL FAUT ENLEVER DU CHPOINT LA PARTIE CONCERNANT FLX
  107. C
  108. C ** ON VERIFIE AU PREALABLE QU'IL N'Y A PAS DE MULTIPLICATEURS
  109. C ** DE MULTIPLICATEUR
  110. C
  111. SEGACT RI1
  112. INON=1
  113. DO 40 I=1,RI1.IRIGEL(/2)
  114. DESCR=RI1.IRIGEL(3,I)
  115. SEGACT DESCR
  116. DO 41 J=1,LISINC(/2)
  117. IF( LISINC(J).EQ.'LX ') THEN
  118. INON=0
  119. SEGDES DESCR
  120. GO TO 45
  121. ENDIF
  122. 41 CONTINUE
  123. SEGDES DESCR
  124. 40 CONTINUE
  125. 45 CONTINUE
  126. MCHPOI=IRET
  127. SEGACT MCHPOI
  128. NSOUPO=IPCHP(/1) -INON
  129. NAT=1
  130. SEGINI MCHPO1
  131. MCHPO1.IFOPOI=ITRUC
  132. MCHPO1.MOCHDE=CTEXT
  133. MCHPO1.MTYPOI=' '
  134. MCHPO1.JATTRI(1)=2
  135. IA=1
  136. ** call ecchpo(mchpoi,1)
  137. DO 60 I=1,NSOUPO+INON
  138. MSOUPO=IPCHP(I)
  139. SEGACT MSOUPO
  140. IF(NOCOMP(1).EQ.'FLX ') THEN
  141. IF(INON.EQ.0) THEN
  142. MELEME=IGEOC
  143. SEGACT MELEME
  144. NNOL=NUM(/2)
  145. SEGINI IGARD
  146. DO 61 J=1,RI1.IRIGEL(/2)
  147. DESCR= RI1.IRIGEL(3,J)
  148. SEGACT DESCR
  149. DO 62 K=3,LISINC(/2)
  150. IF(LISINC(K).EQ.'LX ') THEN
  151. IPT1=RI1.IRIGEL(1,J)
  152. SEGACT IPT1
  153. DO 63 L=1,IPT1.NUM(/2)
  154. IP=IPT1.NUM(NOELEP(K),L)
  155. DO 64 M=1,NNOL
  156. IF( NUM(1,M).EQ.IP) THEN
  157. IGARD(M)=1
  158. GO TO 63
  159. ENDIF
  160. 64 CONTINUE
  161. 63 CONTINUE
  162. ENDIF
  163. 62 CONTINUE
  164. SEGDES DESCR
  165. 61 CONTINUE
  166. NBELEM=0
  167. DO 65 J=1,NNOL
  168. NBELEM=NBELEM+IGARD(J)
  169. 65 CONTINUE
  170. NBNN=1
  171. NBSOUS=0
  172. NBREF=0
  173. SEGINI IPT2
  174. IGEOC=IPT2
  175. IB=1
  176. N=NBELEM
  177. NC=1
  178. SEGINI MPOVA1
  179. MPOVAL=IPOVAL
  180. SEGACT MPOVAL
  181. DO 66 J=1,NNOL
  182. IF(IGARD(J).EQ.0) GO TO 66
  183. IPT2.NUM(1,IB)=NUM(1,J)
  184. MPOVA1.VPOCHA(IB,1)=VPOCHA(J,1)
  185. IB=IB+1
  186. 66 CONTINUE
  187. SEGSUP MPOVAL
  188. IPOVAL=MPOVA1
  189. call crech1(ipt2,1)
  190. MCHPO1.IPCHP(IA)=MSOUPO
  191. IA=IA+1
  192. SEGSUP IGARD
  193. ELSE
  194. MELEME=IGEOC
  195. MPOVAL=IPOVAL
  196. SEGSUP MPOVAL,MSOUPO
  197. ENDIF
  198. ELSE
  199. MCHPO1.IPCHP(IA)=MSOUPO
  200. IA=IA+1
  201. ENDIF
  202. 60 CONTINUE
  203. NSOUPO=IA-1
  204. * write(6,*) 'MCHPO1, NSOUPO=',MCHPO1,NSOUPO
  205. IF (NSOUPO.GT.0) THEN
  206. SEGADJ MCHPO1
  207. SEGSUP MCHPOI,RI1
  208. ELSE
  209. GOTO 288
  210. ENDIF
  211.  
  212. END
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  

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