Télécharger cqf2ln.eso

Retour à la liste

Numérotation des lignes :

cqf2ln
  1. C CQF2LN SOURCE CB215821 26/08/24 21:15:54 12622
  2. SUBROUTINE CQF2LN(MELEME,MLINE)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C************************************************************************
  6. C Ce sp transforme des éléments QUAF pris
  7. C dans la liste ci-dessous
  8. C SEG3 TRI7 QUA9 CU27 PR21 TE15 PY19
  9. C 3 7 11 33 34 35 36
  10. C
  11. C en les éléments linéaires construits à parir des sommets
  12. C
  13. C SEG2 TRI3 QUA4 CUB8 PRI6 TET4 PYR5
  14. C 2 4 8 14 16 23 25
  15. C************************************************************************
  16. -INC SMELEME
  17. POINTEUR MLINE.MELEME
  18.  
  19. SEGACT MELEME
  20. NBSOU1=LISOUS(/1)
  21. IF(NBSOU1.EQ.0)NBSOU1=1
  22.  
  23. C write(6,*)'CQF2MC il y a a faire '
  24.  
  25. NBSOUS=NBSOU1
  26. NBNN=0
  27. NBELEM=0
  28. NBREF=0
  29. SEGINI MLINE
  30. DO 200 L=1,NBSOU1
  31. IPT1=MELEME
  32. IF(NBSOU1.NE.1)IPT1=LISOUS(L)
  33. SEGACT IPT1
  34. ITYP=IPT1.ITYPEL
  35. NBNN0=IPT1.NUM(/1)
  36. NBELEM=IPT1.NUM(/2)
  37. MLINE.LISOUS(L)=IPT1
  38.  
  39. IF(ITYP.EQ.3)THEN
  40. C SEG3 -> SEG2
  41. NBNN=2
  42. NBSOUS=0
  43. NBREF=0
  44. SEGINI IPT2
  45. MLINE.LISOUS(L)=IPT2
  46. IPT2.ITYPEL=2
  47. DO 202 K=1,NBELEM
  48. IPT2.NUM(1,K)=IPT1.NUM(1,K)
  49. IPT2.NUM(2,K)=IPT1.NUM(3,K)
  50. 202 CONTINUE
  51.  
  52. ELSEIF(ITYP.EQ.7)THEN
  53. C TRI7 -> TRI3
  54. NBNN=3
  55. NBSOUS=0
  56. NBREF=0
  57. SEGINI IPT2
  58. MLINE.LISOUS(L)=IPT2
  59. IPT2.ITYPEL=4
  60. DO 2251 K=1,NBELEM
  61. I1=0
  62. DO 204 I=1,6,2
  63. I1=I1+1
  64. IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  65. 204 CONTINUE
  66. 2251 CONTINUE
  67.  
  68. ELSEIF(ITYP.EQ.11)THEN
  69. C QUA9 -> QUA4
  70. NBNN=4
  71. NBSOUS=0
  72. NBREF=0
  73. SEGINI IPT2
  74. MLINE.LISOUS(L)=IPT2
  75. IPT2.ITYPEL=8
  76. DO 2252 K=1,NBELEM
  77. I1=0
  78. DO 208 I=1,8,2
  79. I1=I1+1
  80. IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  81. 208 CONTINUE
  82. 2252 CONTINUE
  83.  
  84. ELSEIF(ITYP.EQ.33)THEN
  85. C CU27 -> CUB8
  86. NBNN=8
  87. NBSOUS=0
  88. NBREF=0
  89. SEGINI IPT2
  90. MLINE.LISOUS(L)=IPT2
  91. IPT2.ITYPEL=14
  92. DO 2253 K=1,NBELEM
  93. I1=0
  94. DO 214 I=1,8,2
  95. I1=I1+1
  96. IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  97. IPT2.NUM(I1+4,K)=IPT1.NUM(I+12,K)
  98. 214 CONTINUE
  99. 2253 CONTINUE
  100.  
  101. ELSEIF(ITYP.EQ.34)THEN
  102. C PR21 -> PRI6
  103. NBNN=6
  104. NBSOUS=0
  105. NBREF=0
  106. SEGINI IPT2
  107. MLINE.LISOUS(L)=IPT2
  108. IPT2.ITYPEL=16
  109. DO 2254 K=1,NBELEM
  110. I1=0
  111. DO 216 I=1,6,2
  112. I1=I1+1
  113. IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  114. IPT2.NUM(I1+3,K)=IPT1.NUM(I+9,K)
  115. 216 CONTINUE
  116. 2254 CONTINUE
  117.  
  118. ELSEIF(ITYP.EQ.35)THEN
  119. C TE15 -> TET4
  120. NBNN=4
  121. NBSOUS=0
  122. NBREF=0
  123. SEGINI IPT2
  124. MLINE.LISOUS(L)=IPT2
  125. IPT2.ITYPEL=23
  126. DO 2230 K=1,NBELEM
  127. I1=0
  128. DO 223 I=1,6,2
  129. I1=I1+1
  130. IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  131. 223 CONTINUE
  132. IPT2.NUM(4,K)=IPT1.NUM(10,K)
  133. 2230 CONTINUE
  134.  
  135. ELSEIF(ITYP.EQ.36)THEN
  136. C PY19 -> PYR5
  137. NBNN=5
  138. NBSOUS=0
  139. NBREF=0
  140. SEGINI IPT2
  141. MLINE.LISOUS(L)=IPT2
  142. IPT2.ITYPEL=25
  143. DO 2250 K=1,NBELEM
  144. I1=0
  145. DO 225 I=1,8,2
  146. I1=I1+1
  147. IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  148. 225 CONTINUE
  149. IPT2.NUM(5,K)=IPT1.NUM(13,K)
  150. 2250 CONTINUE
  151.  
  152.  
  153. ENDIF
  154.  
  155. 200 CONTINUE
  156.  
  157. IF(NBSOU1.EQ.1)THEN
  158. IPT3=MLINE
  159. MLINE=MLINE.LISOUS(1)
  160. SEGSUP IPT3
  161. ENDIF
  162.  
  163. RETURN
  164. 1001 FORMAT(20(1X,I5))
  165. 1002 FORMAT(10(1X,1PE11.4))
  166. END
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  

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