Télécharger rayt2.eso

Retour à la liste

Numérotation des lignes :

rayt2
  1. C RAYT2 SOURCE CB215821 25/04/23 21:15:36 12247
  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.  
  35. -INC PPARAM
  36. -INC CCOPTIO
  37. -INC SMCHAML
  38. -INC SMCOORD
  39. -INC SMELEME
  40. -INC SMMODEL
  41. C ___________________________________________________________
  42. C pour mémoire
  43. C
  44. C FACTEURS DE FORME stockage sous forme matricielle
  45. C NNBEL1 = NOMBRE DE LIGNES + 1
  46. C NBEL2 = NOMBRE DE COLONNES
  47. C LFACT(NNBEL1) POINTE SUR LE TABLEAU DES SURFACES
  48. C
  49. SEGMENT IFACFO
  50. INTEGER LFACT(NNBEL1)
  51. ENDSEGMENT
  52. SEGMENT LFAC
  53. REAL*8 FACT(NBEL2)
  54. ENDSEGMENT
  55. C
  56. POINTEUR TRAD.LFAC
  57. C ___________________________________________________________
  58. C Stockage d'informations concernant le type des éléments des maillages
  59. SEGMENT ,INFOEL
  60. LOGICAL KCOQ(N1),KQUAD(N1)
  61. ENDSEGMENT
  62. C ___________________________________________________________
  63. C
  64. POINTEUR MYMOD.MMODEL
  65. POINTEUR ISSM.MELEME
  66. POINTEUR ICHFAC.MCHELM , ICPEL.MCHELM, ITEMP.MCHELM
  67. LOGICAL ICOQ
  68. C_________________________________________________________________
  69. C
  70. IF(IIMPI.GE.2) THEN
  71. WRITE (6,*) 'On est dans rayt2 '
  72. ENDIF
  73. C
  74. IF (INFOEL.EQ.0) THEN
  75. ICOQ = .FALSE.
  76. ELSE
  77. ICOQ = .TRUE.
  78. ENDIF
  79.  
  80. C IF (INFOEL.NE.0) THEN
  81. C WRITE(6,*) ' on ne traite pas les coques'
  82. C ENDIF
  83. C
  84. SEGACT MYMOD, ITEMP
  85. C
  86. C On construit l'information maillage du CHAMELEM
  87.  
  88. L1 = 22
  89. N3 = 6
  90. N1 = MYMOD.KMODEL(/1)
  91. IF (N1.EQ.0) THEN
  92. CALL ERREUR(21)
  93. RETURN
  94. ENDIF
  95. C
  96. SEGINI ,ICPEL
  97.  
  98. ICPEL.TITCHE = ITEMP.TITCHE
  99.  
  100. IF (IFOMOD.NE.0) THEN
  101. IF (IDIM.EQ.3) THEN
  102. ICPEL.IFOCHE = 2
  103. ELSE
  104. ICPEL.IFOCHE = -1
  105. ENDIF
  106. ELSE
  107. ICPEL.IFOCHE = 0
  108. ENDIF
  109. DO I=1,N1
  110. IMODE1 = MYMOD.KMODEL(I)
  111. SEGACT IMODE1
  112. C maillage du modele
  113. ICPEL.IMACHE(I) = IMODE1.IMAMOD
  114. C on impose pour nom de constituant celui du champ ITEMP
  115. ICPEL.CONCHE(I) = ITEMP.CONCHE(I)
  116. C les valeurs sont definies aux centres de gravite
  117. ICPEL.INFCHE(I,6) = 2
  118. ENDDO
  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. C
  145. N2 = 1
  146. SEGINI MCHAM4
  147. ICPEL.ICHAML(NSMB) = MCHAM4
  148. SEGINI ,MELVA4
  149. MCHAM4.NOMCHE(1) = 'T'
  150. MCHAM4.TYPCHE(1) = 'REAL*8'
  151. MCHAM4.IELVAL(1) = MELVA4
  152. C
  153. C ---------------------------------------
  154. DO NELMB=1,NBELB
  155. C On boucle sur les éléments du sous-champs NSMB
  156. C
  157. C On copie la valeur du tableau
  158. NUMB = NUMB + 1
  159. MELVA4.VELCHE(1,NELMB) = TRAD.FACT(NUMB)
  160. C WRITE(6,*) N1,NBELB,MELVA4.VELCHE(1,NELMB)
  161. C
  162. ENDDO
  163. C fin NELMB -----------------------------
  164. C
  165. C
  166. ENDDO
  167. C fin NSMB -------------------------------------
  168. C
  169. C
  170. SEGSUP TRAD
  171.  
  172. IF (NUMB.NE.NBEL) THEN
  173. CALL ERREUR(21)
  174. C WRITE (6,*) 'Le maillage et la matrice portent sur un nombre'
  175. C # ,' différent d éléments .'
  176. ENDIF
  177.  
  178. END
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  

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