Télécharger crechp.eso

Retour à la liste

Numérotation des lignes :

crechp
  1. C CRECHP SOURCE CB215821 25/04/23 21:15:10 12247
  2. SUBROUTINE CRECHP(KTRAV,KCHPOI)
  3. C
  4. C
  5. C
  6. C ******** CE SUBROUTINE SERT A CREER UN CHAMP POINT A PARTIR
  7. C ******** D'UN SEGMENT MTRAV.
  8. C
  9. C ******** INCO(NNIN) CONTIENT LE NOMS DES NNIN INCONNUES DIFFERENTES.
  10. C
  11. C ******** BB(I,J) EST LA VALEUR DE LA IEME INCONNUE DU CHAMP POUR
  12. C ******** LE JEME NOEUD DU TABLEAU IGEO.
  13. C
  14. C ******** IBIN(I,J)=1 OU 0. 1 INDIQUE QUE LA I EME INCONNUE DU CHAMP
  15. C ******** EXISTE POUR LE J EME NOEUD DU TABLEAU IGEO.
  16. C
  17. C ******** IGEO(I) EST LE NUMERO A METTRE DANS UN OBJET MELEME POUR
  18. C ******** REFERENCER LE IEME NOEUD
  19. C
  20. C ******** NHAR(I) EST LE NUMERO D'HARMONIQUE SI CALCUL AXI OU
  21. C ******** SIGNIFIE CONTRAINTE PLANE,DEFORMATION PLANE OU DEF PLAN GEN
  22. C
  23. C ******** ATTENTION ATTENTION ATTENTION IL EXISTE UNE VARIABLE
  24. C ******** POUVANT DEPENDRE DE LA MACHINE. NN25 EST SUPPOSE SUFFISAMENT
  25. C ******** PETIT POUR QUE 2**NN25 SOIT UN ENTIER POSSIBLE.
  26. C
  27. C
  28. C *** POUR PLUS DE RENSEIGNEMENTS VOIR CHARRAS.
  29. C
  30. C
  31. C
  32. IMPLICIT INTEGER(I-N)
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. -INC SMCHPOI
  37. -INC SMCOORD
  38. -INC SMELEME
  39. -INC TMTRAV
  40.  
  41. SEGMENT/NTRAV/(IDEJ(NNIN),INO(NNNOE),IBINN(NNNOE,N25),IVA(NNIN),
  42. 1 ICO(NNNOE))
  43. SEGMENT,ILO(0)
  44. SEGMENT,IPE(0)
  45. NN25=25
  46. MTRAV=KTRAV
  47. if (mtrav .lt.0) call erreur(5)
  48. NNIN=INCO(/2)
  49. NNNOE=IBIN(/2)
  50. N25=(NNIN+NN25-1)/NN25
  51.  
  52. CALL oooprl(1)
  53. SEGINI,NTRAV,ILO,IPE
  54. CALL oooprl(0)
  55. C
  56. C **** CREATION DU TABLEAU IBINN. CE TABLEAU PERMET DE REGROUPER
  57. C **** LES INFORMATIONS DE IBIN DE MANIERE A TESTER RAPIDEMENT
  58. C **** SI 2 NOEUDS ONT LES MEMES INCONNUES.
  59. C
  60. J=0
  61. K=1
  62. IO=1
  63. DO 49 I=1,NNIN
  64. J=J+1
  65. IVA(I)=IO
  66. IO=IO*2
  67. IF(J.LT.NN25) GO TO 49
  68. IO=1
  69. J=0
  70. 49 CONTINUE
  71. DO 51 I=1,NNNOE
  72. K=0
  73. DO 510 L=1,N25
  74. L1=1+(L-1)*NN25
  75. L2=L*NN25
  76. L2=MIN(L2,NNIN)
  77. IAFS=0
  78. DO 52 J=L1,L2
  79. IF(IBIN(J,I).EQ.0) GO TO 52
  80. K=L
  81. JJ=J-(L-1)*NN25
  82. IAFS=IAFS+IVA(JJ)
  83. 52 CONTINUE
  84. IBINN(I,L)=IAFS
  85. 510 CONTINUE
  86. ICO(I)=K
  87. 51 CONTINUE
  88. C
  89. C **** CLASSEMENT DES NOEUDS PAR TYPES. ON REMPLIT LE TABLEAU INO.
  90. C **** DEUX NOEUDS ONT LE MEME TYPE S'ILS ONT LES MEMES INCONNUES.
  91. C **** INO(I)=J VEUT DIRE QUE LE I EME NOEUD EST DE TYPE J.
  92. C **** N DONNE LE NOMBRE DE TYPES DE NOEUD DIFFERENTS.
  93. C
  94. N=0
  95. NTROUV=0
  96. DO 53 IDEB=1,NNNOE
  97. IF(ICO(IDEB).NE.0) GO TO 54
  98. 53 CONTINUE
  99. GO TO 540
  100. 54 CONTINUE
  101. 3 CONTINUE
  102. N=N+1
  103. IPE(**)=IDEB
  104. ITES=IDEB
  105. KK=0
  106. DO 1 I=IDEB,NNNOE
  107. DO 2 J=1,N25
  108. IF(IBINN(I,J).NE.IBINN(ITES,J)) GO TO 1
  109. 2 CONTINUE
  110. KK=KK+1
  111. INO(I)=N
  112. ICO(I)=0
  113. 1 CONTINUE
  114. ILO(**)=KK
  115. NTROUV=NTROUV+KK
  116. IF(NTROUV.NE.NNNOE) THEN
  117. DO 4 IDEB=1,NNNOE
  118. IF(ICO(IDEB).NE.0) GO TO 3
  119. 4 CONTINUE
  120. ENDIF
  121. C
  122. C **** ON CONNAIT LE NOMBRE DE SOUS CHAMPS
  123. C **** ON INITIALISE LE SEGMENT MCHPOIN
  124. C
  125. C
  126. 540 CONTINUE
  127. NSOUPO=N
  128. NAT=1
  129. NBSOUS=0
  130. NBREF=0
  131. NBNN=1
  132.  
  133. C Creation du resultat par paquets
  134. CALL oooprl(1)
  135. SEGINI,MCHPOI
  136. DO I=1,NSOUPO
  137. IHK=IPE(I)
  138. NC=0
  139. DO 21 JK=1,NNIN
  140. IF(IBIN(JK,IHK).EQ.0) GO TO 21
  141. NC=NC+1
  142. IDEJ(NC)=JK
  143. 21 CONTINUE
  144. SEGINI,MSOUPO
  145. IPCHP(I)=MSOUPO
  146.  
  147. NBELEM=ILO(I)
  148. N=NBELEM
  149. SEGINI,MPOVAL,MELEME
  150. IGEOC=MELEME
  151. IPOVAL=MPOVAL
  152. ENDDO
  153. CALL oooprl(0)
  154.  
  155. IFOPOI=IFOUR
  156. JATTRI(1) = 0
  157. MTYPOI=' '
  158. MOCHDE=' CHPOINT CREE PAR CRECHP'
  159. C
  160. C **** ON VA FABRIQUER LES SEGMENTS MSOUPO POUR LES REMPLIR IL FAUT
  161. C **** CONNAITRE LES INCONNUES DU SOUS CHAMPS ET L'OBJET GEOMETRIQUE
  162. C **** SUPPORT
  163. C
  164. IF(NSOUPO.EQ.0) THEN
  165. KCHPOI=MCHPOI
  166. SEGSUP,NTRAV,ILO,IPE
  167. RETURN
  168. ENDIF
  169.  
  170. DO 100 I=1,NSOUPO
  171. C
  172. C **** ON CHERCHE D'ABORD LA LISTE DES INCONNUES A PARTIR DE LA
  173. C **** VALEUR DE IBINN ET ON REMPLIT NOCOMP
  174. C
  175. IHK=IPE(I)
  176. NC=0
  177. DO 20 JK=1,NNIN
  178. IF(IBIN(JK,IHK).EQ.0) GO TO 20
  179. NC=NC+1
  180. IDEJ(NC)=JK
  181. 20 CONTINUE
  182. MSOUPO=IPCHP(I)
  183. DO 14 J=1,NC
  184. NOHARM(J)=NHAR(IDEJ(J))
  185. NOCOMP(J)=INCO(IDEJ(J))
  186. 14 CONTINUE
  187. C
  188. C **** ON CHERCHE COMBIEN DE NOEUD DANS L'OBJET MELEME,ON LE CREE
  189. C
  190. NBELEM=ILO(I)
  191. N=NBELEM
  192. MPOVAL=IPOVAL
  193. MELEME=IGEOC
  194. ITYPEL=1
  195. IC=0
  196. DO 16 J=1,NNNOE
  197. IF(INO(J).NE.I) GOTO 16
  198. IC=IC+1
  199. NUM(1,IC)=IGEO(J)
  200. DO 18 K=1,NC
  201. IO=IDEJ(K)
  202. VPOCHA(IC,K)=BB(IO,J)
  203. 18 CONTINUE
  204. 16 CONTINUE
  205.  
  206. call crech1(meleme,1)
  207. IGEOC=MELEME
  208.  
  209. 100 CONTINUE
  210. SEGSUP,ILO,IPE,NTRAV
  211. KCHPOI=MCHPOI
  212.  
  213. END
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  

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