Télécharger fermel.eso

Retour à la liste

Numérotation des lignes :

fermel
  1. C FERMEL SOURCE CB215821 19/08/20 21:17:43 10287
  2. C FERMEL SOURCE KK2000 98/12/22 21:15:01 3392
  3. SUBROUTINE FERMEL(MAILLA,IDECAL,NUMMAT,IEQUIV,IPTMIN)
  4.  
  5. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  6. C
  7. C But : Sortie vers FER (ASCII) d'un maillage
  8. C (MELEME) élémentaire
  9. C
  10. C Paramètres : MAILLA - pointeur vers le MELEME (entrée)
  11. C IDECAL - décalage des numéros d'éléments (entrée & sortie)
  12. C NUMMAT - numéro du matériau du maillage (entrée)
  13. C#MC 03/12/98
  14. C# NUMMAT n'est plus utilise, il est dans la plupart des cas redondant avec
  15. C# le type de l'element. On prefere sortir le numero de la couleur (+1 pour
  16. C# ne pas commencer a 0)
  17. C
  18. C IEQUIV - segment décrivant la conversion des numéros des noeuds
  19. C IPTMIN - numéro du premier noeud dans IEQUIV
  20. C
  21. C Auteur : Michel Bulik
  22. C Adaptation : Gregory Turbelin
  23. C Novembre 2002
  24. C
  25. C Appelé par : SORFER
  26. C
  27. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  28.  
  29.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC CCGEOME
  33. -INC SMELEME
  34.  
  35. C ... Dans cette subroutine je ne touche pas à IEQUIV, on
  36. C s'en occupe dans LIRAVS ...
  37. SEGMENT IEQUIV
  38. INTEGER LEQUIV(IECART)
  39. END SEGMENT
  40.  
  41. C ... Tableaux de conversion de connectivités (IC<nom_élément>) ...
  42. DIMENSION ICPOI1( 1)
  43. DIMENSION ICSEG2( 2)
  44. DIMENSION ICSEG3( 3)
  45. DIMENSION ICTRI3( 3)
  46. DIMENSION ICTRI6( 6)
  47. DIMENSION ICTRI62( 6)
  48. DIMENSION ICQUA4( 4)
  49. DIMENSION ICQUA8( 8)
  50. DIMENSION ICCUB8( 8)
  51. DIMENSION ICCU20(20)
  52. DIMENSION ICPRI6( 6)
  53. DIMENSION ICPR15(15)
  54. DIMENSION ICTET4( 4)
  55. DIMENSION ICTE10(10)
  56. DIMENSION ICPYR5( 5)
  57. DIMENSION ICPY13(13)
  58.  
  59. DATA ICPOI1 / 1/
  60. DATA ICSEG2 / 1, 2/
  61. DATA ICSEG3 / 1, 2, 3/
  62. DATA ICTRI3 / 1, 2, 3/
  63. DATA ICTRI6 / 1, 2, 3, 4, 5, 6/
  64. DATA ICQUA4 / 1, 2, 3, 4/
  65. DATA ICQUA8 / 1, 2, 3, 4, 5, 6, 7, 8/
  66. DATA ICCUB8 / 1, 2, 3, 4, 5, 6, 7, 8/
  67. DATA ICCU20 / 1, 3, 5, 7,13,15,17,19, 2, 4,
  68. & 6, 8,14,16,18,20, 9,10,11,12/
  69. DATA ICPRI6 / 1, 2, 3, 4, 5, 6/
  70. DATA ICPR15 / 1, 3, 5,10,12,14, 2, 4, 6,11,
  71. & 13,15, 8, 7, 9/
  72. DATA ICTET4 / 1, 2, 3, 4/
  73. DATA ICTE10 / 1, 5, 7, 9, 2, 3, 4, 6, 8,10/
  74. DATA ICPYR5 / 5, 1, 2, 3, 4/
  75. DATA ICPY13 /13, 1, 3, 5, 7, 9,10,11,12, 2,
  76. & 4, 6, 8/
  77.  
  78. MELEME=MAILLA
  79. SEGACT MELEME
  80. NBELEM=NUM(/2)
  81. NBNN=NUM(/1)
  82. IF(NBELEM.EQ.0) RETURN
  83.  
  84. IF(ITYPEL.EQ.1) THEN
  85. DO 3030 J=1,NBELEM
  86. WRITE(IOPER,5001) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  87. & LEQUIV(NUM(1,J)-IPTMIN+1)
  88. 3030 CONTINUE
  89. ELSE IF(ITYPEL.EQ.2) THEN
  90. DO 3040 J=1,NBELEM
  91. WRITE(IOPER,5002) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  92. & (LEQUIV(NUM(ICSEG2(K),J)-IPTMIN+1),K=1,NBNN)
  93. 3040 CONTINUE
  94. ELSE IF (ITYPEL.EQ.3) THEN
  95. DO 3050 J=1,NBELEM
  96. WRITE(IOPER,5003) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  97. & (LEQUIV(NUM(ICSEG3(K),J)-IPTMIN+1),K=1,NBNN)
  98. 3050 CONTINUE
  99.  
  100. ELSE IF (ITYPEL.EQ.4) THEN
  101. DO 3060 J=1,NBELEM
  102. IF(IDIM.EQ.2) THEN
  103. WRITE(IOPER,5004) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  104. & (LEQUIV(NUM(ICTRI3(K),J)-IPTMIN+1),K=1,NBNN)
  105. ELSE
  106. WRITE(IOPER,5304) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  107. & (LEQUIV(NUM(ICTRI3(K),J)-IPTMIN+1),K=1,NBNN)
  108. ENDIF
  109. 3060 CONTINUE
  110. ELSE IF (ITYPEL.EQ.6) THEN
  111. DO 3070 J=1,NBELEM
  112. IF(IDIM.EQ.2) THEN
  113. WRITE(IOPER,5006) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  114. & (LEQUIV(NUM(ICTRI6(K),J)-IPTMIN+1),K=1,NBNN)
  115. ELSE
  116. WRITE(IOPER,5306) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  117. & (LEQUIV(NUM(ICTRI6(K),J)-IPTMIN+1),K=1,NBNN)
  118. ENDIF
  119. 3070 CONTINUE
  120. ELSE IF (ITYPEL.EQ.8) THEN
  121. DO 3080 J=1,NBELEM
  122. IF(IDIM.EQ.2) THEN
  123. WRITE(IOPER,5008) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  124. & (LEQUIV(NUM(ICQUA4(K),J)-IPTMIN+1),K=1,NBNN)
  125. ELSE
  126. WRITE(IOPER,5308) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  127. & (LEQUIV(NUM(ICQUA4(K),J)-IPTMIN+1),K=1,NBNN)
  128. ENDIF
  129. 3080 CONTINUE
  130. ELSE IF (ITYPEL.EQ.10) THEN
  131. DO 3090 J=1,NBELEM
  132. IF(IDIM.EQ.2) THEN
  133. WRITE(IOPER,5010) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  134. & (LEQUIV(NUM(ICQUA8(K),J)-IPTMIN+1),K=1,NBNN)
  135. ELSE
  136. WRITE(IOPER,5310) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  137. & (LEQUIV(NUM(ICQUA8(K),J)-IPTMIN+1),K=1,NBNN)
  138. ENDIF
  139. 3090 CONTINUE
  140. ELSE IF (ITYPEL.EQ.14) THEN
  141. DO 3100 J=1,NBELEM
  142. WRITE(IOPER,5014) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  143. & (LEQUIV(NUM(ICCUB8(K),J)-IPTMIN+1),K=1,NBNN)
  144. 3100 CONTINUE
  145. ELSE IF (ITYPEL.EQ.15) THEN
  146. GOTO 9997
  147. c DO 3110 J=1,NBELEM
  148. c WRITE(IOPER,5015) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  149. c & (LEQUIV(NUM(ICCU20(K),J)-IPTMIN+1),K=1,NBNN)
  150. c 3110 CONTINUE
  151.  
  152. ELSE IF (ITYPEL.EQ.16) THEN
  153. GOTO 9997
  154. c DO 3120 J=1,NBELEM
  155. c WRITE(IOPER,5016) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  156. c & (LEQUIV(NUM(ICPRI6(K),J)-IPTMIN+1),K=1,NBNN)
  157. c 3120 CONTINUE
  158. ELSE IF (ITYPEL.EQ.17) THEN
  159. GOTO 9997
  160. c DO 3130 J=1,NBELEM
  161. c WRITE(IOPER,5017) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  162. c & (LEQUIV(NUM(ICPR15(K),J)-IPTMIN+1),K=1,NBNN)
  163. c 3130 CONTINUE
  164. ELSE IF (ITYPEL.EQ.23) THEN
  165. GOTO 9997
  166. c DO 3140 J=1,NBELEM
  167. c WRITE(IOPER,5023) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  168. c & (LEQUIV(NUM(ICTET4(K),J)-IPTMIN+1),K=1,NBNN)
  169. c 3140 CONTINUE
  170. ELSE IF (ITYPEL.EQ.24) THEN
  171. GOTO 9997
  172. c DO 3150 J=1,NBELEM
  173. c WRITE(IOPER,5024) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  174. c & (LEQUIV(NUM(ICTE10(K),J)-IPTMIN+1),K=1,NBNN)
  175. c 3150 CONTINUE
  176. ELSE IF (ITYPEL.EQ.25) THEN
  177. GOTO 9997
  178. c DO 3160 J=1,NBELEM
  179. c WRITE(IOPER,5025) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  180. c & (LEQUIV(NUM(ICPYR5(K),J)-IPTMIN+1),K=1,NBNN)
  181. c 3160 CONTINUE
  182. ELSE IF (ITYPEL.EQ.26) THEN
  183. GOTO 9997
  184. c DO 3170 J=1,NBELEM
  185. c WRITE(IOPER,5026) IDECAL+J,ICOLOR(J)+1,ICOLOR(J)+1,
  186. c & (LEQUIV(NUM(ICPY13(K),J)-IPTMIN+1),K=1,NBNN)
  187. c 3170 CONTINUE
  188. ELSE
  189. MOTERR(1:4)=NOMS(ITYPEL)
  190. CALL ERREUR(701)
  191. ENDIF
  192. C ... Dans le cas d'un ITYPEL inconnu j'incrémente quand même IDECAL,
  193. C ceci laissera un "trou" dans le fichier AVS et permettra (je
  194. C l'espère) trouver l'erreur plus facilement ...
  195. IDECAL=IDECAL+NBELEM
  196.  
  197. RETURN
  198. C ... Format 50?? correspond à 5000+ITYPEL ...
  199. C ... Format 53?? correspond à la verion 3D ...
  200.  
  201. 5001 FORMAT(I6,' 1',' 99',I3,I3,1I6)
  202. 5002 FORMAT(I6,' 2',' 22',I3,I3,2I6)
  203. 5003 FORMAT(I6,' 3',' 23',I3,I3,3I6)
  204. 5004 FORMAT(I6,' 3',' 23',I3,I3,3I6)
  205. 5304 FORMAT(I6,' 3',' 43',I3,I3,3I6)
  206. 5006 FORMAT(I6,' 6',' 26',I3,I3,6I6)
  207. 5306 FORMAT(I6,' 6',' 46',I3,I3,6I6)
  208. 5008 FORMAT(I6,' 4',' 24',I3,I3,4I6)
  209. 5308 FORMAT(I6,' 4',' 44',I3,I3,4I6)
  210. 5010 FORMAT(I6,' 8',' 28',I3,I3,8I6)
  211. 5310 FORMAT(I6,' 8',' 48',I3,I3,8I6)
  212. 5014 FORMAT(I6,' 8',' 38',I3,I3,8I6)
  213. 5015 FORMAT(I6,' 20',' 320',I3,I3,20I6)
  214. 5023 FORMAT(I6,' 4',' 34',I3,I3,4I6)
  215. 5024 FORMAT(I6,' 10',' 310',I3,I3,10I6)
  216.  
  217. 5016 FORMAT(I6,' 6',' prism',I3,I3,6I6)
  218. 5017 FORMAT(I6,' 15',' prism',I3,I3,15I6)
  219. 5025 FORMAT(I6,' 5',' pyr',I3,I3,5I6)
  220. 5026 FORMAT(I6,' 13',' pyr',I3,I3,13I6)
  221.  
  222.  
  223. *
  224. * Error handling
  225. *
  226. 9997 CONTINUE
  227. WRITE(IOIMP,*) 'Le support géométrique contient'
  228. WRITE(IOIMP,*) 'des types d''éléments non testés'
  229. C WRITE(IOIMP,*) 'Les types déléments supportés sont:'
  230. GOTO 9999
  231.  
  232. 9999 CONTINUE
  233. WRITE(IOIMP,*) 'An error was detected in subroutine fermel'
  234. C Erreur détectée au cours du processus
  235. CALL ERREUR(223)
  236. RETURN
  237. *
  238. * End of subroutine FERMEL
  239. *
  240. END
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  

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