Télécharger flux2.eso

Retour à la liste

Numérotation des lignes :

  1. C FLUX2 SOURCE CB215821 19/07/30 21:16:22 10273
  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. NSOU=KMODEL(/1)
  80. DO i=1,NSOU
  81. IMODEL=KMODEL(i)
  82. CALL PLACE2(IMASSI,LMASSI,iOK,NEFMOD)
  83. IF (iOK.NE.0) THEN
  84. jMASSi=jMASSi+1
  85. ELSE
  86. CALL PLACE2(ICOQUE,LCOQUE,iOK,NEFMOD)
  87. IF (iOK.NE.0) jCOQue=jCOQue+1
  88. ENDIF
  89. ENDDO
  90. IF (jMASSi.NE.NSOU.AND.jCOQue.NE.NSOU) THEN
  91. CALL ERREUR(409)
  92. RETURN
  93. ENDIF
  94. IF (jCOQue.EQ.NSOU) THEN
  95. IF (PEAU.EQ.' ') THEN
  96. CALL ERREUR(513)
  97. RETURN
  98. ENDIF
  99. MOCOMP(1:4)='Q'//PEAU(1:3)
  100. ENDIF
  101.  
  102. C 2 - PREPARATION DES DONNEES POUR LE CALCUL
  103. C ============================================
  104. C= Creation d'un objet MAILLAGE contenant une seule fois tous les points
  105.  
  106. C= 2.1 du CHAMELEM -IPCHPO
  107. if(IPCHPO.lt.0) then
  108.  
  109. MCHELM=-1*IPCHPO
  110. N1=IMACHE(/1)
  111. if(N1.eq.0)then
  112. moterr(1:8)='CHAMELEM'
  113. interr(1)=MCHELM
  114. CALL ERREUR(356)
  115. RETURN
  116. endif
  117. c verif que l'on est sur les points de gauss pour la thermique
  118. ISUPPO=INFCHE(1,6)
  119. if(ISUPPO.ne.6) then
  120. call CHASUP(IPMODE,MCHELM,MCHEL2,IRET,6)
  121. if(IRET.NE.0) call erreur(IRET)
  122. MCHELM=MCHEL2
  123. endif
  124. MELEME=IMACHE(1)
  125. call CHANGE(MELEME,1)
  126. IPGEOM = MELEME
  127. if(N1.gt.1) then
  128. do i=2,N1
  129. MELEME=IMACHE(2)
  130. call CHANGE(MELEME,1)
  131. ltelq=.FALSE.
  132. CALL FUSE(IPGEOM,MELEME,IRET,ltelq)
  133. IF (IERR.NE.0) RETURN
  134. IPGEOM=IRET
  135. enddo
  136. endif
  137.  
  138. C= 2.2 du CHPOINT IPCHPO (fusion des maillages supports de tous les MSOUPO)
  139. else
  140.  
  141. MCHPOI=IPCHPO
  142. NSOUPO=IPCHP(/1)
  143. IF (NSOUPO.EQ.0) THEN
  144. CALL ERREUR(156)
  145. RETURN
  146. ENDIF
  147. MSOUPO=IPCHP(1)
  148. IPGEOM=IGEOC
  149. DO i=2,NSOUPO
  150. MSOUPO=IPCHP(i)
  151. IGEO1=IGEOC
  152. ltelq=.FALSE.
  153. CALL FUSE(IPGEOM,IGEO1,IRET,ltelq)
  154. IF (IERR.NE.0) RETURN
  155. IPGEOM=IRET
  156. ENDDO
  157.  
  158. endif
  159.  
  160. C 3 - CALCUL DES FLUX EQUIVALENTS
  161. C =================================
  162. C 3.1 - Cas des elements MASSIFS (1D,2D,3D)
  163. C =====
  164. IF (jMASSi.EQ.NSOU) THEN
  165. CALL FLUMAS(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
  166. C =====
  167. C 3.2 - Cas des elements de COQUE
  168. C =====
  169. C* ELSE IF (jCOQue.EQ.NSOU) THEN
  170. ELSE
  171. CALL FLUCOQ(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
  172. ENDIF
  173.  
  174. END
  175.  
  176.  
  177.  

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