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