Télécharger idvec2.eso

Retour à la liste

Numérotation des lignes :

idvec2
  1. C IDVEC2 SOURCE OF166741 26/06/04 21:15:21 12563
  2.  
  3. *----------------------------------------------------------------------*
  4. * Recherche des noms de composantes pour creer des vecteurs *
  5. * a partir de MCHAML (appele par vecte2 ou vecte3) *
  6. * ICAS = 1 : cas des contraintes principales *
  7. * ICAS = 2 : cas des fissures *
  8. *----------------------------------------------------------------------*
  9. SUBROUTINE IDVEC2(ICAS,NDIM,MFR,CMOT,IF3,IPNOMC,NBROBL,NLIST,IER1)
  10.  
  11. IMPLICIT INTEGER(I-N)
  12. IMPLICIT REAL*8(A-H,O-Z)
  13.  
  14. -INC PPARAM
  15. -INC CCOPTIO
  16.  
  17. C==DEB= FORMULATION HHO == Include specifique ==========================
  18. -INC CCHHOPA
  19. C==FIN= FORMULATION HHO ================================================
  20.  
  21. -INC SMMODEL
  22.  
  23. DIMENSION IPNOMC(*)
  24. CHARACTER*(*) CMOT
  25.  
  26. CHARACTER*(4) CMO4
  27.  
  28. IER1 = 0
  29.  
  30. IPNOMC(1) = 0
  31. IPNOMC(2) = 0
  32. IPNOMC(3) = 0
  33.  
  34. CMO4 = CMOT(1:4)
  35.  
  36. IMO = 0
  37. IF (CMO4.NE.' ') IMO = 1
  38.  
  39. * Contraintes/Deformations principales
  40. * ------------------------------------
  41. IF (ICAS.EQ.1) THEN
  42.  
  43. IF3 = 0
  44.  
  45. IF (MFR.EQ.3 .OR. MFR.EQ.5 .OR. MFR.EQ.9) THEN
  46. IF (IMO.EQ.1) THEN
  47. IF (CMO4.NE.'SI11'.AND.CMO4.NE.'SI22') THEN
  48. IER1 = 2
  49. GOTO 900
  50. ENDIF
  51. ENDIF
  52. NLIST = 2
  53.  
  54. NBROBL = 4
  55. NBRFAC = 0
  56. SEGINI NOMID
  57. LESOBL(1) = 'SI11'
  58. LESOBL(2) = 'COX1'
  59. LESOBL(3) = 'COY1'
  60. LESOBL(4) = 'COZ1'
  61. IPNOMC(1) = NOMID
  62.  
  63. NBROBL = 4
  64. NBRFAC = 0
  65. SEGINI NOMID
  66. LESOBL(1) = 'SI22'
  67. LESOBL(2) = 'COX2'
  68. LESOBL(3) = 'COY2'
  69. LESOBL(4) = 'COZ2'
  70. IPNOMC(2) = NOMID
  71.  
  72. ELSE IF (MFR.EQ. 1 .OR. MFR.EQ.31 .OR.
  73. & MFR.EQ.63 .OR. MFR.EQ.52 .OR.
  74. & MFR.EQ.HHO_MFR_ELEMENT) THEN
  75. IF (NDIM.EQ.2) THEN
  76. IF (IMO.EQ.1) THEN
  77. IF (CMO4.NE.'SI11'.AND.CMO4.NE.'SI22') THEN
  78. IER1 = 2
  79. GOTO 900
  80. ENDIF
  81. ENDIF
  82. NLIST = 2
  83.  
  84. NBROBL = 4
  85. NBRFAC = 0
  86. SEGINI NOMID
  87. LESOBL(1) = 'SI11'
  88. LESOBL(2) = 'COX1'
  89. LESOBL(3) = 'COY1'
  90. LESOBL(4) = 'COZ1'
  91. IPNOMC(1) = NOMID
  92.  
  93. NBROBL = 4
  94. NBRFAC = 0
  95. SEGINI NOMID
  96. LESOBL(1) = 'SI22'
  97. LESOBL(2) = 'COX2'
  98. LESOBL(3) = 'COY2'
  99. LESOBL(4) = 'COZ2'
  100. IPNOMC(2) = NOMID
  101.  
  102. ELSE IF (NDIM.EQ.3) THEN
  103. IF (IMO.EQ.1) THEN
  104. IF (CMO4.NE.'SI11'.AND.CMO4.NE.'SI22'
  105. & .AND.CMO4.NE.'SI33') THEN
  106. IER1 = 2
  107. GOTO 900
  108. ENDIF
  109. ENDIF
  110. NLIST = 3
  111.  
  112. NBROBL = 4
  113. NBRFAC = 0
  114. SEGINI NOMID
  115. LESOBL(1) = 'SI11'
  116. LESOBL(2) = 'COX1'
  117. LESOBL(3) = 'COY1'
  118. LESOBL(4) = 'COZ1'
  119. IPNOMC(1) = NOMID
  120.  
  121. NBROBL = 4
  122. NBRFAC = 0
  123. SEGINI NOMID
  124. LESOBL(1) = 'SI22'
  125. LESOBL(2) = 'COX2'
  126. LESOBL(3) = 'COY2'
  127. LESOBL(4) = 'COZ2'
  128. IPNOMC(2) = NOMID
  129.  
  130. NBROBL = 4
  131. NBRFAC = 0
  132. SEGINI NOMID
  133. LESOBL(1) = 'SI33'
  134. LESOBL(2) = 'COX3'
  135. LESOBL(3) = 'COY3'
  136. LESOBL(4) = 'COZ3'
  137. IPNOMC(3) = NOMID
  138.  
  139. ELSE
  140. IER1 = 1
  141. ENDIF
  142. ELSE
  143. IER1 = 1
  144. ENDIF
  145.  
  146. * Fissures
  147. * --------
  148. ELSE IF (ICAS.EQ.2) THEN
  149.  
  150. IF3 = 0
  151. * En 3D / IF3=1 : coques / IF3=2 : massifs
  152. IF (MFR.EQ.3.OR.MFR.EQ.5.OR.MFR.EQ.9) THEN
  153. IF3 = 1
  154. ELSE IF (MFR.EQ.1 .OR. MFR.EQ.31) THEN
  155. IF (IDIM.EQ.3) IF3 = 2
  156. IF (IDIM.EQ.2) IF3 = 3
  157. ENDIF
  158. IF (IF3.EQ.0) THEN
  159. call erreur(19)
  160. GOTO 900
  161. ENDIF
  162.  
  163. IF (NDIM.EQ.2) THEN
  164. NLIST = 2
  165.  
  166. NBROBL = 2
  167. NBRFAC = 0
  168. SEGINI NOMID
  169. LESOBL(1) = 'VF1X'
  170. LESOBL(2) = 'VF1Y'
  171. IPNOMC(1) = NOMID
  172.  
  173. NBROBL = 2
  174. NBRFAC = 0
  175. SEGINI NOMID
  176. LESOBL(1) = 'VF2X'
  177. LESOBL(2) = 'VF2Y'
  178. IPNOMC(2) = NOMID
  179.  
  180. ELSE IF (NDIM.EQ.3) THEN
  181. NLIST = 2
  182. IF (IF3.EQ.2) NLIST = 3
  183.  
  184. NBROBL = 2
  185. IF (IF3.EQ.2) NBROBL = 3
  186. NBRFAC = 0
  187. SEGINI NOMID
  188. LESOBL(1) = 'VF1X'
  189. LESOBL(2) = 'VF1Y'
  190. IF (IF3.EQ.2) LESOBL(3) = 'VF1Z'
  191. IPNOMC(1) = NOMID
  192.  
  193. NBROBL = 2
  194. IF (IF3.EQ.2) NBROBL = 3
  195. NBRFAC = 0
  196. SEGINI NOMID
  197. LESOBL(1) = 'VF2X'
  198. LESOBL(2) = 'VF2Y'
  199. IF (IF3.EQ.2) LESOBL(3) = 'VF2Z'
  200. IPNOMC(2) = NOMID
  201.  
  202. IF (IF3.EQ.2) THEN
  203. NBROBL = 3
  204. NBRFAC = 0
  205. SEGINI NOMID
  206. LESOBL(1) = 'VF3X'
  207. LESOBL(2) = 'VF3Y'
  208. LESOBL(3) = 'VF3Z'
  209. IPNOMC(3) = NOMID
  210. ENDIF
  211.  
  212. ENDIF
  213.  
  214. * Cas non prevu
  215. ELSE
  216. IER1 = 1
  217. ENDIF
  218.  
  219. * Gestion des erreurs
  220. 900 CONTINUE
  221. IF (IER1.EQ.1) THEN
  222. moterr(1:8) = 'MFR= '
  223. write(moterr(5:6),FMT='(I2)') MFR
  224. call erreur(193)
  225. ELSE IF (IER1.EQ.2) THEN
  226. moterr(1:4) = CMO4
  227. call erreur(197)
  228. ENDIF
  229.  
  230. c RETURN
  231. END
  232.  
  233.  
  234.  

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