Télécharger flux2.eso

Retour à la liste

Numérotation des lignes :

  1. C FLUX2 SOURCE BP208322 13/07/30 21:15:08 7809
  2.  
  3. C=======================================================================
  4. C= F L U X 2 =
  5. C= --------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul des flux nodaux equivalents aux conditions de flux imposes =
  10. C= =
  11. C= Parametres : (E)=Entree (S)=Sortie =
  12. C= ------------ =
  13. C= IPMODE (E) Pointeur sur le segment MMODEL de la structure =
  14. C= IPCHPO (E) Pointeur sur le CHPOINT (ou le MCHAML) de flux =
  15. C= imposes aux noeuds de la structure =
  16. C= (champ variable ou constant) =
  17. C= NUMPOI (E) Vaut -1 si le flux impose est normal a la surface, =
  18. C= sinon pointeur sur un POINT correspondant a la =
  19. C= direction du flux (par rapport au repere global) =
  20. C= MOCOMP (E) Nom de la composante de flux =
  21. C= PEAU (E) Indique la peau consideree (elements COQUES) =
  22. C= MLMOTX (E) Pointeur MLMOTS de la liste des composantes de =
  23. C= IPCHPO associees aux 3 directions x,y,z. =
  24. C= IPFLUX (S) Pointeur sur le champ des flux nodaux equivalents =
  25. C= =
  26. C= Variables locales : =
  27. C= ------------------- =
  28. C= IMASSI Tableau contenant les numeros dans NOMTP des elements =
  29. C= thermiques de type MASSIF =
  30. C= LMASSI Longueur du tableau IMASSI =
  31. C= ICOQUE Tableau contenant les numeros dans NOMTP des elements =
  32. C= thermiques de type COQUE =
  33. C= LCOQUE Longueur du tableau ICOQUE =
  34. C= =
  35. C= Remarque : Le MODELE doit contenir exclusivement un seul type =
  36. C= ---------- d'elements, soit MASSIFs, soit COQUEs. =
  37. C= =
  38. C= Denis ROBERT, le 29 janvier 1988. =
  39. C=======================================================================
  40.  
  41. SUBROUTINE FLUX2 (IPMODE,IPCHPO,NUMPOI,MOCOMP,PEAU,MLMOTX, IPFLUX)
  42.  
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8 (A-H,O-Z)
  45.  
  46. -INC CCOPTIO
  47. -INC SMMODEL
  48. -INC SMCHPOI
  49. -INC SMCHAML
  50. -INC SMELEME
  51.  
  52. CHARACTER*(*) MOCOMP,PEAU
  53.  
  54. PARAMETER (LMASSI=16,LCOQUE=5)
  55. INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE)
  56.  
  57. LOGICAL ltelq
  58.  
  59. C ----------
  60. C Elements TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10
  61. C MASSIFs PYR5 PY13 T1D2 T1D3 M1D2 M1D3
  62. C ----------
  63. DATA IMASSI / 4, 6, 8, 10, 14, 15, 16, 17, 23, 24,
  64. . 25, 26, 191, 192, 193, 194 /
  65. C -------------
  66. C Elts COQUEs COQ2 COQ3 COQ8 COQ4 COQ6
  67. C -------------
  68. DATA ICOQUE / 44, 27, 41, 49, 56 /
  69.  
  70. C 1 - VERIFICATIONS SUR LE MODELE
  71. C =================================
  72. C ERREUR si l'objet MODELE ne contient pas uniquement un seul type
  73. C d'elements soit MASSIF, soit COQUE.
  74. C ERREUR si la PEAU n'est pas indiquee dans le cas d'elements COQUE.
  75. C =====
  76. jMASSi=0
  77. jCOQue=0
  78. MMODEL=IPMODE
  79. SEGACT,MMODEL
  80. NSOU=KMODEL(/1)
  81. DO i=1,NSOU
  82. IMODEL=KMODEL(i)
  83. SEGACT,IMODEL
  84. CALL PLACE2(IMASSI,LMASSI,iOK,NEFMOD)
  85. IF (iOK.NE.0) THEN
  86. jMASSi=jMASSi+1
  87. ELSE
  88. CALL PLACE2(ICOQUE,LCOQUE,iOK,NEFMOD)
  89. IF (iOK.NE.0) jCOQue=jCOQue+1
  90. ENDIF
  91. SEGDES,IMODEL
  92. ENDDO
  93. SEGDES,MMODEL
  94. IF (jMASSi.NE.NSOU.AND.jCOQue.NE.NSOU) THEN
  95. CALL ERREUR(409)
  96. RETURN
  97. ENDIF
  98. IF (jCOQue.EQ.NSOU) THEN
  99. IF (PEAU.EQ.' ') THEN
  100. CALL ERREUR(513)
  101. RETURN
  102. ENDIF
  103. MOCOMP(1:4)='Q'//PEAU(1:3)
  104. ENDIF
  105.  
  106. C 2 - PREPARATION DES DONNEES POUR LE CALCUL
  107. C ============================================
  108. C= Creation d'un objet MAILLAGE contenant une seule fois tous les points
  109.  
  110. C= 2.1 du CHAMELEM -IPCHPO
  111. if(IPCHPO.lt.0) then
  112.  
  113. MCHELM=-1*IPCHPO
  114. segact,MCHELM
  115. N1=IMACHE(/1)
  116. if(N1.eq.0)then
  117. moterr(1:8)='CHAMELEM'
  118. interr(1)=MCHELM
  119. CALL ERREUR(356)
  120. RETURN
  121. endif
  122. c verif que l'on est sur les points de gauss pour la thermique
  123. ISUPPO=INFCHE(1,6)
  124. if(ISUPPO.ne.6) then
  125. call CHASUP(IPMODE,MCHELM,MCHEL2,IRET,6)
  126. if(IRET.NE.0) call erreur(IRET)
  127. MCHELM=MCHEL2
  128. segact,MCHELM
  129. endif
  130. MELEME=IMACHE(1)
  131. segact,MELEME
  132. call CHANGE(MELEME,1)
  133. segdes,MELEME
  134. IPGEOM = MELEME
  135. if(N1.gt.1) then
  136. do i=2,N1
  137. MELEME=IMACHE(2)
  138. segact,MELEME
  139. call CHANGE(MELEME,1)
  140. segdes,MELEME
  141. ltelq=.FALSE.
  142. CALL FUSE(IPGEOM,MELEME,IRET,ltelq)
  143. IF (IERR.NE.0) RETURN
  144. IPGEOM=IRET
  145. enddo
  146. endif
  147. segdes,MCHELM
  148.  
  149. C= 2.2 du CHPOINT IPCHPO (fusion des maillages supports de tous les MSOUPO)
  150. else
  151.  
  152. MCHPOI=IPCHPO
  153. SEGACT,MCHPOI
  154. NSOUPO=IPCHP(/1)
  155. IF (NSOUPO.EQ.0) THEN
  156. CALL ERREUR(156)
  157. RETURN
  158. ENDIF
  159. MSOUPO=IPCHP(1)
  160. SEGACT,MSOUPO
  161. IPGEOM=IGEOC
  162. SEGDES,MSOUPO
  163. DO i=2,NSOUPO
  164. MSOUPO=IPCHP(i)
  165. SEGACT,MSOUPO
  166. IGEO1=IGEOC
  167. SEGDES,MSOUPO
  168. ltelq=.FALSE.
  169. CALL FUSE(IPGEOM,IGEO1,IRET,ltelq)
  170. IF (IERR.NE.0) RETURN
  171. IPGEOM=IRET
  172. ENDDO
  173. SEGDES,MCHPOI
  174.  
  175. endif
  176.  
  177. C 3 - CALCUL DES FLUX EQUIVALENTS
  178. C =================================
  179. C 3.1 - Cas des elements MASSIFS (1D,2D,3D)
  180. C =====
  181. IF (jMASSi.EQ.NSOU) THEN
  182. CALL FLUMAS(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
  183. C =====
  184. C 3.2 - Cas des elements de COQUE
  185. C =====
  186. C* ELSE IF (jCOQue.EQ.NSOU) THEN
  187. ELSE
  188. CALL FLUCOQ(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
  189. ENDIF
  190.  
  191. RETURN
  192. END
  193.  
  194.  
  195.  
  196.  
  197.  

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