1 : C CHAL1 SOURCE CHAT 11/03/16 21:16:47 6902 2 : 3 : C======================================================================= 4 : C= C H A L 1 = 5 : C= --------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul des flux equivalents a des sources volumiques = 10 : C= = 11 : C= Parametres : (E)=Entree (S)=Sortie = 12 : C= ------------ = 13 : C= IPMODE (E) Pointeur sur le segment MMODEL de la structure = 14 : C= IPCHPO (E) Pointeur sur le CHPOINT de sources (puits) aux = 15 : C= noeuds de la structure (champ variable) = 16 : C= S1 (E) Valeur de la source (FLOTTANT = champ constant) = 17 : C= IPGEOM (E) Pointeur sur le MAILLAGE sur lequel s'applique S1 = 18 : C= IPCHEL (E) Pointeur sur le segment MCHAML de sources donnees = 19 : C= en chaque element de la structure (champ variable) = 20 : C= IPCARA (E) Pointeur sur le segment MCHALM de CARACTERISTIQUES = 21 : C= dans le cas des COQues et des BARRes = 22 : C= MOCOMP (E) Nom de la composante du champ de flux equivalents = 23 : C= IPCHAL (S) Pointeur sur le champ des flux nodaux equivalents = 24 : C= = 25 : C= Variables locales : = 26 : C= ------------------- = 27 : C= IMASSI Tableau contenant les numeros dans NOMTP des elements = 28 : C= thermiques de type MASSIF (dont l'element BARR) = 29 : C= LMASSI Longueur du tableau IMASSI = 30 : C= ICOQUE Tableau contenant les numeros dans NOMTP des elements = 31 : C= thermiques de type COQUE = 32 : C= LCOQUE Longueur du tableau ICOQUE = 33 : C= = 34 : C= Remarque : Le MODELE doit contenir exclusivement un seul type = 35 : C= ---------- d'elements, soit MASSIFs, soit COQUEs, soit BARREs. = 36 : C= = 37 : C= Denis ROBERT, le 26 fevrier 1988. = 38 : C======================================================================= 39 : 40 : SUBROUTINE CHAL1 (IPMODE,IPCHPO,S1,IPGEOM,IPCHEL,IPCARA,MOCOMP, 41 : & IPCHAL) 42 : 43 : IMPLICIT INTEGER(I-N) 44 : IMPLICIT REAL*8 (A-H,O-Z) 45 : 46 : -INC CCOPTIO 47 : -INC SMMODEL 48 : -INC SMCHPOI 49 : 50 : CHARACTER*(*) MOCOMP 51 : 52 : PARAMETER (LMASSI=16,LCOQUE=5) 53 : INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE) 54 : CHARACTER*4 LICOM(3) 55 : 56 : C ---------- 57 : C Elements TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10 58 : C MASSIFs PYR5 PY13 T1D2 T1D3 M1D2 M1D3 59 : C ---------- 60 : DATA IMASSI / 4, 6, 8, 10, 14, 15, 16, 17, 23, 24, 61 : & 25, 26, 191, 192, 193, 194 / 62 : C ------------- 63 : C Elts COQUEs COQ2 COQ3 COQ8 COQ4 COQ6 64 : C ------------- 65 : DATA ICOQUE / 44, 27, 41, 49, 56 / 66 : C ------------- 67 : DATA LICOM / 'SINF','SMOY','SSUP' / 68 : 69 : IPCHAL=0 70 : 71 : C 1 - VERIFICATIONS SUR LE MODELE 72 : C ================================= 73 : C 1.1 - ERREUR si l'objet MODELE ne contient pas uniquement un seul 74 : C type d'elements soit MASSIF, soit COQUE, soit BARRE. 75 : C ===== 76 : jMASSi=0 77 : jCOQue=0 78 : jBARRe=0 79 : MMODEL=IPMODE 80 : SEGACT,MMODEL 81 : NSOU=KMODEL(/1) 82 : DO i=1,NSOU 83 : IMODEL=KMODEL(i) 84 : SEGACT,IMODEL 85 : IF (NEFMOD.EQ.46) THEN 86 : jBARRe=jBARRe+1 87 : ELSE 87 : CALL PLACE2(IMASSI,LMASSI,IOK,NEFMOD) 88 : IF (IOK.NE.0) THEN 89 : jMASSi=jMASSi+1 90 : ELSE 90 : CALL PLACE2(ICOQUE,LCOQUE,IOK,NEFMOD) 91 : IF (IOK.NE.0) jCOQue=jCOQue+1 92 : ENDIF 93 : ENDIF 94 : SEGDES,IMODEL 95 : ENDDO 96 : SEGDES,MMODEL 97 : IF (jMASSi.NE.NSOU.AND.jCOQue.NE.NSOU.AND.jBARRe.NE.NSOU) THEN 97 : CALL ERREUR(409) 98 : RETURN 99 : ENDIF 100 : C ===== 101 : C 1.2 - Verification de l'existence des caracteristiques dans le cas 102 : C d'elements COQUEs et BARREs. 103 : C ===== 104 : IF (jBARRe.EQ.NSOU.AND.IPCARA.EQ.0) THEN 104 : CALL ERREUR(518) 105 : RETURN 106 : ENDIF 107 : IF (jCOQue.EQ.NSOU.AND.IPCARA.EQ.0) THEN 107 : CALL ERREUR(514) 108 : RETURN 109 : ENDIF 110 : C En elements MASSIFs, aucune caracteristique n'est necessaire. 111 : IF (jMASSi.EQ.NSOU) IPCARA=0 112 : 113 : C 2 - SOURCES VOLUMIQUES : CHAMP PAR ELEMENT AUX NOEUDS 114 : C ======================================================= 115 : IPCHSO=IPCHEL 116 : C 2.1 - Sources sous forme d'un MCHAML 117 : C Reduction au modele + Transport aux noeuds si necessaire 118 : IF (IPCHEL.NE.0) THEN 119 : IPCH_Z=IPCHSO 120 : ** A VOIR : Dans certains cas, REDUAF pose souci (pb. de constituant) 120 : ** CALL REDUAF(IPCHSO,IPMODE,IPCH_Z,1,IOK,KERRE) 120 : ** IF (IOK.NE.1) CALL ERREUR(KERRE) 121 : ** IF (IERR.NE.0) RETURN 121 : CALL CHASUP(IPMODE,IPCH_Z,IPCHSO,IOK,1) 122 : IF (IERR.NE.0 .OR. IOK.NE.0) THEN 122 : CALL ERREUR(21) 123 : RETURN 124 : ENDIF 125 : ELSE 126 : C 2.2 - Sources constantes (FLOTTANT) sur un MAILLAGE 127 : C Sources mises sous forme d'un CHPOINT 128 : IF (IPGEOM.NE.0) THEN 129 : IF (jCOQue.EQ.NSOU) THEN 130 : DO i=1,3 130 : CALL ECRREE(S1) 130 : CALL ECRCHA(LICOM(i)) 131 : ENDDO 131 : CALL ECRENT(3) 132 : C* ELSE IF (jMASSi.EQ.NSOU.OR.jBARRe.EQ.NSOU) THEN 133 : ELSE 133 : CALL ECRREE(S1) 133 : CALL ECRCHA('SCAL') 133 : CALL ECRENT(1) 134 : ENDIF 134 : CALL ECROBJ('MAILLAGE',IPGEOM) 134 : CALL MANUCH 135 : IF (IERR.NE.0) RETURN 135 : CALL LIROBJ('CHPOINT',IPCH_Z,1,IOK) 136 : IF (IERR.NE.0) RETURN 137 : C 2.3 - Sources sous forme d'un CHPOINT 138 : C* ELSE IF (IPCHPO.NE.0) THEN 139 : ELSE 140 : IPCH_Z=IPCHPO 141 : ENDIF 142 : C Changement en MCHAML aux noeuds du modele 142 : CALL CHAME1(0,IPMODE,IPCH_Z,'VOLUMIQUE',IPCHSO,1) 143 : ENDIF 144 : 145 : C 3 - CHANGEMENT DU SUPPORT DU MCHAML DE CARACTERISTIQUES S'IL EXISTE 146 : C ===================================================================== 147 : C= Transport des points de Gauss aux noeuds si necessaire 148 : IPCARB=IPCARA 149 : IF (IPCARA.NE.0) THEN 149 : CALL REDUAF(IPCARA,IPMODE,ICHP_Z,0,IOK,KERRE) 149 : IF (IOK.NE.1) CALL ERREUR(KERRE) 150 : IF (IERR.NE.0) RETURN 150 : CALL CHASUP(IPMODE,ICHP_Z,IPCARB,IOK,1) 151 : IF (IERR.NE.0 .OR. IOK.NE.0) THEN 151 : CALL ERREUR(21) 152 : RETURN 153 : ENDIF 154 : ENDIF 155 : 156 : C 3 - CALCUL DES FLUX EQUIVALENTS AUX SOURCES VOLUMIQUES 157 : C ======================================================== 158 : C 3.1 - Cas des elements MASSIFS (1D,2D,3D) 159 : C ===== 160 : IF (jMASSi.EQ.NSOU) THEN 160 : CALL CHAMAS(IPMODE,IPCHSO,IPCARB,MOCOMP, IPCHAL) 161 : C ===== 162 : C 3.2 - Cas des elements de COQUE 163 : C ===== 164 : ELSE IF (jCOQue.EQ.NSOU) THEN 164 : CALL CHACOQ(IPMODE,IPCHSO,IPCARB,IPCHAL) 165 : C ===== 166 : C 3.3 - Cas des elements BARREs 167 : C ===== 168 : C* ELSE IF (jBARRe.EQ.NSOU) THEN 169 : ELSE 169 : CALL CHABAT(IPMODE,IPCHSO,IPCARB,MOCOMP, IPCHAL) 170 : ENDIF 171 : 172 : RETURN 173 : END 174 : 175 : 176 :
© Cast3M 2003 - All rights reserved.
Disclaimer