Download rayt2.eso

Back to the list

   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
  88 :            CALL ERREUR(21)
  89 :            RETURN
  90 :         ENDIF
  91 : C
  92 :         SEGINI ,ICPEL
  93 : 
  94 :         ICPEL.TITCHE = ITEMP.TITCHE
  95 : 
  96 :         IF  (IFOMOD.NE.0) THEN
  97 :            IF (IDIM.EQ.3) THEN
  98 :               ICPEL.IFOCHE = 2
  99 :            ELSE
 100 :               ICPEL.IFOCHE = -1
 101 :            ENDIF
 102 :         ELSE
 103 :               ICPEL.IFOCHE = 0
 104 :         ENDIF
 105 :         DO I=1,N1
 106 :            IMODE1 = MYMOD.KMODEL(I)
 107 :            SEGACT IMODE1
 108 : C  maillage du modele
 109 :            ICPEL.IMACHE(I) = IMODE1.IMAMOD
 110 : C on impose pour nom de constituant celui du champ ITEMP
 111 :            ICPEL.CONCHE(I) = ITEMP.CONCHE(I)
 112 : C les valeurs sont definies aux centres de gravite
 113 :            ICPEL.INFCHE(I,6) = 2
 114 :            SEGDES IMODE1
 115 :         ENDDO
 116 : 
 117 :         SEGDES MYMOD
 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 :                     SEGDES ISSM
 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 :                         SEGDES MCHAM4
 153 : C
 154 : C                       ---------------------------------------
 155 :                         DO NELMB=1,NBELB
 156 : C                       On boucle sur les éléments du sous-champs NSMB
 157 : C
 158 : C                          On copie la valeur du tableau
 159 :                            NUMB = NUMB + 1
 160 :                            MELVA4.VELCHE(1,NELMB) = TRAD.FACT(NUMB)
 161 : C                          WRITE(6,*)  N1,NBELB,MELVA4.VELCHE(1,NELMB)
 162 : C
 163 :                         ENDDO
 164 : C                       fin NELMB -----------------------------
 165 : C
 166 :                         SEGDES ,MELVA4
 167 : C
 168 :                  ENDDO
 169 : C                fin NSMB -------------------------------------
 170 : C
 171 : C
 172 :         SEGDES ICPEL, ITEMP
 173 :         SEGSUP TRAD
 174 : 
 175 :         IF (NUMB.NE.NBEL) THEN
 175 :            CALL ERREUR(21)
 176 : C          WRITE (6,*) 'Le maillage et la matrice portent sur un nombre'
 177 : C    #             ,' différent d éléments .'
 178 :         ENDIF
 179 : C
 180 :         RETURN
 181 :         END
 182 : 
 183 :  
 184 :  
 185 :  
 186 :  
 187 :  
 188 :  
 189 :  
 190 :  
 191 :  
 192 :  

© Cast3M 2003 - All rights reserved.
Disclaimer