Télécharger elstru.eso

Retour à la liste

Numérotation des lignes :

elstru
  1. C ELSTRU SOURCE FANDEUR 10/12/14 21:16:02 6812
  2. SUBROUTINE ELSTRU
  3. C
  4. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  5. C INDIQUE LA SS-STRUC ELEM A LAQUELLE APPARTIENT UN MELEME (SOUS GEOM
  6. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  7. C
  8. IMPLICIT INTEGER(I-N)
  9. IMPLICIT REAL*8(A-H,O-Z)
  10.  
  11. -INC PPARAM
  12. -INC CCOPTIO
  13. -INC SMELSTR
  14. -INC SMSTRUC
  15. -INC SMELEME
  16. -INC SMRIGID
  17. -INC SMCHAML
  18. SEGMENT ITRAV(0)
  19. SEGMENT ITRA1(0)
  20. C
  21. C LECTURE DU POINT OU ...
  22. C
  23. CALL LIROBJ('POINT ',IRET,0,IRETOU)
  24. IF(IRETOU.EQ.1) THEN
  25. NBNN=1
  26. NBELEM=1
  27. NBSOUS=0
  28. NBREF=0
  29. SEGINI MELEME
  30. ITYPEL=1
  31. NUM(1,1)=IRET
  32. C
  33. C ... LECTURE DU MELEME
  34. C
  35. ELSE
  36. CALL LIROBJ('MAILLAGE',IRET,1,IRETOU)
  37. C *** PAS D'OBJET DE TYPE ELEMENT OU POINT
  38. IF(IERR.NE.0) THEN
  39. MOTERR(1:8)='MAILLAGE'
  40. CALL ERREUR(37)
  41. MOTERR(9:16)='POINT'
  42. CALL ERREUR(37)
  43. RETURN
  44. ENDIF
  45. MELEME=IRET
  46. SEGACT MELEME
  47. IF (ITYPEL.NE.1) THEN
  48. SEGDES MELEME
  49. C *** LE MELEME N'EST PAS ELEMENTAIRE
  50. INTERR(1)=MELEME
  51. CALL ERREUR(89)
  52. RETURN
  53. ENDIF
  54. ENDIF
  55. C
  56. C LECTURE DE LA SOUS-STRUCTURE
  57. C
  58. CALL LIROBJ('STRUCTUR',KOBJET,1,IRETOU)
  59. IF(IERR.NE.0) THEN
  60. MOTERR(1:8)='STRUCTUR'
  61. C *** PAS D'OBJET DE TYPE STRUCTURE
  62. CALL ERREUR(37)
  63. RETURN
  64. ENDIF
  65. C
  66. NBPT=NUM(/2)
  67. SEGINI ITRAV
  68. DO 20 L=1,NBPT
  69. ITRAV(**)=NUM(1,L)
  70. 20 CONTINUE
  71. SEGDES MELEME
  72. IMEL=MELEME
  73. C
  74. MSTRUC=KOBJET
  75. SEGACT MSTRUC
  76. NSTRU=LISTRU(/1)
  77. IF(NSTRU.EQ.1) GOTO 30
  78. C
  79. C LECTURE DU NUMERO DE LA SOUS-STRUCTURE ELEMENTAIRE
  80. C
  81. CALL LIRENT(NSTRU,1,IRETOU)
  82. IF(IERR.EQ.0) GOTO 30
  83. SEGDES MSTRUC
  84. SEGSUP ITRAV
  85. C *** LE MELEM DOIT APPARTENIR A UNE SS STRUC ELEMENTAIRE
  86. INTERR(1)=MSTRUC
  87. CALL ERREUR(90)
  88. RETURN
  89. 30 MSOSTU=LISTRU(NSTRU)
  90. C
  91. C LE MELEME DOIT ETRE INCLUS DANS LA SOUS-STRUCTURE
  92. C
  93. SEGINI ITRA1
  94. SEGACT MSOSTU
  95. IF(ISRAID.EQ.0) THEN
  96. MCHELM=ISCHAM(1)
  97. SEGDES MSOSTU
  98. SEGACT MCHELM
  99. NSOUS=IMACHE(/1)
  100. C
  101. C ******** BOUCLE SUR LES ZONES GEO.ELEM. DU CHAMP DE MATERIAU
  102. C
  103. DO 49 IAB=1,NSOUS
  104. MELEME=IMACHE(IAB)
  105. SEGACT MELEME
  106. IF(ITYPEL.EQ.22) GO TO 47
  107. NBELEM=NUM(/2)
  108. NBP=NUM(/1)
  109. DO 41 NBE=1,NBELEM
  110. DO 41 NP=1,NBP
  111. ITRA1(**)=NUM(NP,NBE)
  112. 41 CONTINUE
  113. 47 SEGDES MELEME
  114. 49 CONTINUE
  115. SEGDES,MCHELM
  116. ELSE
  117. MRIGID=ISRAID
  118. SEGACT MRIGID
  119. NRIGEL=IRIGEL(/2)
  120. C
  121. C BOUCLE SUR LES ZONES GEOMETRIQUES DE LA SOUS STRUCTURE
  122. C
  123. DO 55 IAA=1,NRIGEL
  124. MELEME=IRIGEL(1,IAA)
  125. SEGACT MELEME
  126. IF(ITYPEL.EQ.22) GOTO 50
  127. NBELEM=NUM(/2)
  128. NBP=NUM(/1)
  129. DO 40 NBE=1,NBELEM
  130. DO 40 NP=1,NBP
  131. ITRA1(**)=NUM(NP,NBE)
  132. 40 CONTINUE
  133. 50 SEGDES MELEME
  134. 55 CONTINUE
  135. SEGDES MRIGID
  136. ENDIF
  137. NL=ITRA1(/1)
  138. DO 65 I=1,NBPT
  139. IKI=ITRAV(I)
  140. DO 60 J=1,NL
  141. IF(ITRA1(J).EQ.IKI) GOTO 65
  142. 60 CONTINUE
  143. C *** UN PT DU MELEME N'APPARTIENT PAS A LA SS STRUCTURE
  144. INTERR(1)=IKI
  145. INTERR(2)=MSTRUC
  146. CALL ERREUR(91)
  147. GOTO 100
  148. 65 CONTINUE
  149. SEGSUP ITRAV
  150. SEGSUP ITRA1
  151. N=1
  152. SEGINI MELSTR
  153. IMELEM(1)=IMEL
  154. ISOSTU(1)=MSOSTU
  155. SEGDES MSOSTU
  156. SEGDES MSTRUC
  157. C
  158. C ECRITURE DU MELSTR
  159. C
  160. CALL ECROBJ('ELEMSTRU',MELSTR)
  161. SEGDES MELSTR
  162. RETURN
  163. 100 CONTINUE
  164. SEGSUP ITRAV
  165. SEGSUP ITRA1
  166. RETURN
  167. END
  168.  
  169.  
  170.  
  171.  

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