Télécharger flux2.eso

Retour à la liste

Numérotation des lignes :

flux2
  1. C FLUX2 SOURCE CB215821 24/04/12 21:16:00 11897
  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.  
  47. -INC PPARAM
  48. -INC CCOPTIO
  49. -INC SMMODEL
  50. -INC SMCHPOI
  51. -INC SMCHAML
  52. -INC SMELEME
  53.  
  54. CHARACTER*(*) MOCOMP,PEAU
  55.  
  56. PARAMETER (LMASSI=16,LCOQUE=5)
  57. INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE)
  58.  
  59. LOGICAL ltelq
  60.  
  61. C ----------
  62. C Elements TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10
  63. C MASSIFs PYR5 PY13 T1D2 T1D3 M1D2 M1D3
  64. C ----------
  65. DATA IMASSI / 4, 6, 8, 10, 14, 15, 16, 17, 23, 24,
  66. . 25, 26, 191, 192, 193, 194 /
  67. C -------------
  68. C Elts COQUEs COQ2 COQ3 COQ8 COQ4 COQ6
  69. C -------------
  70. DATA ICOQUE / 44, 27, 41, 49, 56 /
  71.  
  72. C 1 - VERIFICATIONS SUR LE MODELE
  73. C =================================
  74. C ERREUR si l'objet MODELE ne contient pas uniquement un seul type
  75. C d'elements soit MASSIF, soit COQUE.
  76. C ERREUR si la PEAU n'est pas indiquee dans le cas d'elements COQUE.
  77. C =====
  78. jMASSi=0
  79. jCOQue=0
  80. MMODEL=IPMODE
  81. NSOU=KMODEL(/1)
  82. DO i=1,NSOU
  83. IMODEL=KMODEL(i)
  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. ENDDO
  92. IF (jMASSi.NE.NSOU.AND.jCOQue.NE.NSOU) THEN
  93. CALL ERREUR(409)
  94. RETURN
  95. ENDIF
  96. IF (jCOQue.EQ.NSOU) THEN
  97. IF (PEAU.EQ.' ') THEN
  98. CALL ERREUR(513)
  99. RETURN
  100. ENDIF
  101. MOCOMP(1:4)='Q'//PEAU(1:3)
  102. ENDIF
  103.  
  104. C 2 - PREPARATION DES DONNEES POUR LE CALCUL
  105. C ============================================
  106. C= Creation d'un objet MAILLAGE contenant une seule fois tous les points
  107.  
  108. C= 2.1 du CHAMELEM -IPCHPO
  109. if(IPCHPO.lt.0) then
  110.  
  111. MCHELM=-1*IPCHPO
  112. N1=IMACHE(/1)
  113. if(N1.eq.0)then
  114. moterr(1:8)='CHAMELEM'
  115. interr(1)=MCHELM
  116. CALL ERREUR(356)
  117. RETURN
  118. endif
  119. c verif que l'on est sur les points de gauss pour la thermique
  120. ISUPPO=INFCHE(1,6)
  121. if(ISUPPO.ne.6) then
  122. call CHASUP(IPMODE,MCHELM,MCHEL2,IRET,6)
  123. if(IRET.NE.0) call erreur(IRET)
  124. MCHELM=MCHEL2
  125. endif
  126. MELEME=IMACHE(1)
  127. call CHANGE(MELEME,1)
  128. IPGEOM = MELEME
  129. if(N1.gt.1) then
  130. do i=2,N1
  131. MELEME=IMACHE(2)
  132. call CHANGE(MELEME,1)
  133. ltelq=.FALSE.
  134. CALL FUSE(IPGEOM,MELEME,IRET,ltelq)
  135. IF (IERR.NE.0) RETURN
  136. IPGEOM=IRET
  137. enddo
  138. endif
  139.  
  140. C= 2.2 du CHPOINT IPCHPO (fusion des maillages supports de tous les MSOUPO)
  141. else
  142.  
  143. MCHPOI=IPCHPO
  144. NSOUPO=IPCHP(/1)
  145. IF (NSOUPO.EQ.0) THEN
  146. CALL ERREUR(156)
  147. RETURN
  148. ENDIF
  149. MSOUPO=IPCHP(1)
  150. IPGEOM=IGEOC
  151. DO i=2,NSOUPO
  152. MSOUPO=IPCHP(i)
  153. IGEO1=IGEOC
  154. ltelq=.FALSE.
  155. CALL FUSE(IPGEOM,IGEO1,IRET,ltelq)
  156. IF (IERR.NE.0) RETURN
  157. IPGEOM=IRET
  158. ENDDO
  159.  
  160. endif
  161.  
  162. C 3 - CALCUL DES FLUX EQUIVALENTS
  163. C =================================
  164. C 3.1 - Cas des elements MASSIFS (1D,2D,3D)
  165. C =====
  166. IF (jMASSi.EQ.NSOU) THEN
  167. CALL FLUMAS(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
  168. C =====
  169. C 3.2 - Cas des elements de COQUE
  170. C =====
  171. C* ELSE IF (jCOQue.EQ.NSOU) THEN
  172. ELSE
  173. CALL FLUCOQ(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
  174. ENDIF
  175.  
  176. END
  177.  
  178.  
  179.  
  180.  
  181.  

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