1 : C MHYBR1 SOURCE CHAT 11/03/16 21:27:55 6902 2 : SUBROUTINE MHYBR1(IPMODE,IPCHEL,IPMAHY,IPRIGI,IPGEO,ILUMP) 3 : C----------------------------------------------------------------------- 4 : C Calcul de la matrice masse dans le cas d'une formulation hybride 5 : C----------------------------------------------------------------------- 6 : C 7 : C--------------------------- 8 : C Parametres Entree/Sortie : 9 : C--------------------------- 10 : C 11 : C E/ IPMODE : Objet modele specifiant la formulation 12 : C E/ IPCHEL : MCHAML de sous type 'CARACTERISTIQUES' aux pts de Gauss 13 : C E/ IPMAHY : Segment contenant le pointeur vers le meleme des 14 : C connectivites elements/faces pour les zones du MMODEL 15 : C ou on a defini DARCY. 16 : C E/ IPGEO : pointeur sur le maillage sommet 17 : C /S IPRIGI : Matrice masse hybride 18 : C 19 : C----------------------------------------------------------------------- 20 : C 21 : C Langage : ESOPE + FORTRAN77 22 : C 23 : C Auteurs : F.DABBENE 08/93 24 : C 02/96 L.V.BENET : introduction de l'option 'MASSE' 25 : C 26 : C----------------------------------------------------------------------- 27 : IMPLICIT INTEGER(I-N) 28 : -INC CCOPTIO 29 : -INC CCHAMP 30 : -INC SMRIGID 31 : -INC SMCHAML 32 : -INC SMELEME 33 : -INC SMMODEL 34 : * 35 : SEGMENT IPMAHY 36 : INTEGER MAHYBR(NSOUS) 37 : ENDSEGMENT 38 : * 39 : * 40 : * Activation des segments MCHELM et MMODEL 41 : * 42 : MMODEL = IPMODE 43 : SEGACT MMODEL 44 : NBMAIL = KMODEL(/1) 45 : * 46 : *= Initialisation du chapeau de l'objet RIGIDITE 47 : * 48 : NRIGE = 6 49 : NRIGEL = NBMAIL 50 : SEGINI MRIGID 51 : IPRIGI = MRIGID 52 : ICHOLE = 0 53 : IMGEO1 = 0 54 : IMGEO2 = 0 55 : IFORIG = IFOMOD 56 : ISUPEQ = 0 57 : IF(IPCHEL.NE.0)THEN 58 : MTYMAT = 'DARCY' 59 : ELSE 60 : MTYMAT = 'MASSE' 61 : ENDIF 62 : NBGEOR = 0 63 : * 64 : DO 10 IA=1,NBMAIL 65 : IRIGEL(4,IA) = 0 66 : COERIG(IA) = 1.D0 67 : 10 CONTINUE 68 : * 69 : *= BOUCLE SUR LES MAILLAGES ELEMENTAIRES,ZONE IMAIL 70 : * 71 : SEGACT IPMAHY 72 : DO 50 IMAIL=1,NBMAIL 73 : C 74 : C= Recuperation de l'objet maillage ELTFA pour la zone IMAIL 75 : C 76 : IMAHYB = MAHYBR(IMAIL) 77 : IF (IMAHYB.EQ.0) GOTO 50 78 : MELEME = IMAHYB 79 : SEGACT MELEME 80 : NBDDL = NUM(/1) 81 : NBELEM = NUM(/2) 82 : C 83 : C= Recuperation du pointeur MMODEL pour la zone IMAIL 84 : C 85 : IMODEL = KMODEL(IMAIL) 86 : C 87 : C= Recuperation du pointeur maillage sommet pour la zone IMAIL 88 : C 89 : IPT1= IPGEO 90 : IPT2= IPGEO 91 : IF(NBMAIL.GT.1)THEN 92 : SEGACT IPT2 93 : IPT1=IPT2.LISOUS(IMAIL) 94 : SEGDES IPT2 95 : ENDIF 96 : * 97 : *= Remplissage du segment descripteur DESCR 98 : * 99 : NLIGRP = NBDDL 100 : NLIGRD = NBDDL 101 : SEGINI DESCR 102 : DO 20 IB=1,NLIGRP 103 : LISINC(IB) = NOMDD(20) 104 : LISDUA(IB) = NOMDU(20) 105 : NOELEP(IB) = IB 106 : NOELED(IB) = IB 107 : 20 CONTINUE 108 : IDESCR = DESCR 109 : SEGDES DESCR 110 : * 111 : *= Remplissage de IRIGEL 112 : * 113 : IF (IMAIL.GT.1)THEN 114 : MRIGID = IPRIGI 115 : SEGACT MRIGID*MOD 116 : ENDIF 117 : NELRIG = NBELEM 118 : SEGINI xMATRI 119 : IRIGEL(1,IMAIL) = IMAHYB 120 : IRIGEL(2,IMAIL) = 0 121 : IRIGEL(3,IMAIL) = IDESCR 122 : IRIGEL(4,IMAIL) = xMATRI 123 : IRIGEL(5,IMAIL) = 0 124 : IRIGEL(6,IMAIL) = 0 125 : * 126 : *- Desactivation avant appel 127 : * 128 : SEGDES xMATRI,MRIGID 129 : SEGDES MELEME 130 : * 131 : IF (IPCHEL.NE.0)THEN 131 : CALL MHYBR2(IMAIL,IMODEL,IPCHEL,IPRIGI,IPT1,ILUMP) 132 : ELSE 132 : CALL MHYBR4(IMAIL,IMODEL,IPRIGI,IPT1) 133 : ENDIF 134 : IF (IERR.NE.0) GOTO 99 135 : 50 CONTINUE 136 : * 137 : *- Desactivation 138 : * 139 : 99 CONTINUE 140 : SEGDES MMODEL 141 : SEGDES IPMAHY 142 : * 143 : RETURN 144 : END 145 : 146 : 147 : 148 :
© Cast3M 2003 - All rights reserved.
Disclaimer