Télécharger rayt2.eso

Retour à la liste

Numérotation des lignes :

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

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