Télécharger rayt2.eso

Retour à la liste

Numérotation des lignes :

  1. C RAYT2 SOURCE CHAT 11/03/16 21:30:28 6902
  2. C FFMCHA SOURCE CHAT 05/01/12 23:58:55 5004
  3. SUBROUTINE RAYT2(MYMOD,INFOEL,ITEMP,TRAD,ICPEL)
  4. C_________________________________________________________________
  5. C NOM : InterFace Tableau->CHAmp par éléments
  6. C_________________________________________________________________
  7. C OBJET :
  8. C INTERFACE INTERVENANT EN THERMIQUE (RAYONNEMENT)
  9. C_________________________________________________________________
  10. C FONCTION :
  11. C PERMET DE PASSER D'UN MODELE (+ segment INFOEL)
  12. C ET DU TABLEAU TRAD
  13. C AU CHAMELEME CORRESPONDANT
  14. C_________________________________________________________________
  15. C OPERANDES :
  16. C
  17. C en entrée :
  18. C MYMOD (MMODEL) MODELE SUR LEQUEL REPOSE TRAD
  19. C INFOEL INFORMATIONS SUR LE TYPE DES ELEMENTS
  20. C !!!!! si on ne doit pas tenir compte du cas des
  21. C éléments COQ , ce pointeur doit être mis à 0 .
  22. C ITEMP Chamelem temperature moyenne argument de
  23. C l'operateur
  24. C TRAD Tableau contenant le champ de temperature TRAD
  25. C en sortie :
  26. C ICPEL CHAMELEM RESULTAT
  27. C
  28. C_________________________________________________________________
  29. C
  30. C
  31. IMPLICIT INTEGER(I-N)
  32. IMPLICIT REAL*8 (A-H,O-Z)
  33. C
  34. -INC CCOPTIO
  35. -INC SMCHAML
  36. -INC SMELEME
  37. -INC SMMODEL
  38. C ___________________________________________________________
  39. C pour mémoire
  40. C
  41. C FACTEURS DE FORME stockage sous forme matricielle
  42. C NNBEL1 = NOMBRE DE LIGNES + 1
  43. C NBEL2 = NOMBRE DE COLONNES
  44. C LFACT(NNBEL1) POINTE SUR LE TABLEAU DES SURFACES
  45. C
  46. SEGMENT IFACFO
  47. INTEGER LFACT(NNBEL1)
  48. ENDSEGMENT
  49. SEGMENT LFAC
  50. REAL*8 FACT(NBEL2)
  51. ENDSEGMENT
  52. C
  53. POINTEUR TRAD.LFAC
  54. C ___________________________________________________________
  55. C Stockage d'informations concernant le type des éléments des maillages
  56. SEGMENT ,INFOEL
  57. LOGICAL KCOQ(N1),KQUAD(N1)
  58. ENDSEGMENT
  59. C ___________________________________________________________
  60. C
  61. POINTEUR MYMOD.MMODEL
  62. POINTEUR ISSM.MELEME
  63. POINTEUR ICHFAC.MCHELM , ICPEL.MCHELM, ITEMP.MCHELM
  64. LOGICAL ICOQ
  65. C_________________________________________________________________
  66. C
  67. IF(IIMPI.GE.2) THEN
  68. WRITE (6,*) 'On est dans rayt2 '
  69. ENDIF
  70. C
  71. IF (INFOEL.EQ.0) THEN
  72. ICOQ = .FALSE.
  73. ELSE
  74. ICOQ = .TRUE.
  75. ENDIF
  76.  
  77. C IF (INFOEL.NE.0) THEN
  78. C WRITE(6,*) ' on ne traite pas les coques'
  79. C ENDIF
  80. C
  81. SEGACT MYMOD, ITEMP
  82. C
  83. C On construit l'information maillage du CHAMELEM
  84.  
  85. L1 = 22
  86. N3 = 6
  87. N1 = MYMOD.KMODEL(/1)
  88. IF (N1.EQ.0) THEN
  89. CALL ERREUR(21)
  90. RETURN
  91. ENDIF
  92. C
  93. SEGINI ,ICPEL
  94.  
  95. ICPEL.TITCHE = ITEMP.TITCHE
  96.  
  97. IF (IFOMOD.NE.0) THEN
  98. IF (IDIM.EQ.3) THEN
  99. ICPEL.IFOCHE = 2
  100. ELSE
  101. ICPEL.IFOCHE = -1
  102. ENDIF
  103. ELSE
  104. ICPEL.IFOCHE = 0
  105. ENDIF
  106. DO I=1,N1
  107. IMODE1 = MYMOD.KMODEL(I)
  108. SEGACT IMODE1
  109. C maillage du modele
  110. ICPEL.IMACHE(I) = IMODE1.IMAMOD
  111. C on impose pour nom de constituant celui du champ ITEMP
  112. ICPEL.CONCHE(I) = ITEMP.CONCHE(I)
  113. C les valeurs sont definies aux centres de gravite
  114. ICPEL.INFCHE(I,6) = 2
  115. SEGDES IMODE1
  116. ENDDO
  117.  
  118. SEGDES MYMOD
  119. C
  120. C------------------------------------------------------------
  121. C
  122. C
  123. C On récupère le nombre total d'éléments .
  124. C On vérifiera que le maillage et la matrice
  125. C portent sur le même nombre d'éléments .
  126.  
  127. SEGACT TRAD
  128. NBEL = TRAD.FACT(/1)
  129.  
  130. NUMB = 0
  131. C
  132. C --------------------------------------------
  133. DO NSMB=1,N1
  134. C On boucle sur les sous-champs
  135. C
  136. ISSM = ICPEL.IMACHE(NSMB)
  137. SEGACT ISSM
  138. C NBPTB = ISSM.NUM(/1)
  139. NBELB = ISSM.NUM(/2)
  140. N1EL = NBELB
  141. N1PTEL = 1
  142. N2EL = 0
  143. N2PTEL = 0
  144. SEGDES ISSM
  145. C
  146. N2 = 1
  147. SEGINI MCHAM4
  148. ICPEL.ICHAML(NSMB) = MCHAM4
  149. SEGINI ,MELVA4
  150. MCHAM4.NOMCHE(1) = 'T '
  151. MCHAM4.TYPCHE(1) = 'REAL*8'
  152. MCHAM4.IELVAL(1) = MELVA4
  153. SEGDES MCHAM4
  154. C
  155. C ---------------------------------------
  156. DO NELMB=1,NBELB
  157. C On boucle sur les éléments du sous-champs NSMB
  158. C
  159. C On copie la valeur du tableau
  160. NUMB = NUMB + 1
  161. MELVA4.VELCHE(1,NELMB) = TRAD.FACT(NUMB)
  162. C WRITE(6,*) N1,NBELB,MELVA4.VELCHE(1,NELMB)
  163. C
  164. ENDDO
  165. C fin NELMB -----------------------------
  166. C
  167. SEGDES ,MELVA4
  168. C
  169. ENDDO
  170. C fin NSMB -------------------------------------
  171. C
  172. C
  173. SEGDES ICPEL, ITEMP
  174. SEGSUP TRAD
  175.  
  176. IF (NUMB.NE.NBEL) THEN
  177. CALL ERREUR(21)
  178. C WRITE (6,*) 'Le maillage et la matrice portent sur un nombre'
  179. C # ,' différent d éléments .'
  180. ENDIF
  181. C
  182. RETURN
  183. END
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  

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