C MATP1 SOURCE FANDEUR 22/01/03 21:15:30 11237 SUBROUTINE MATP1(NBMAIL,IPGEOM,IPMAHY,IPRIG1,COEF,DELTAT,IPCK, S IPRIG2) C----------------------------------------------------------------------- C Calcul de la matrice en trace de charge dans le cas d'une C formulation mixte hybride pour les equations de DARCY. C----------------------------------------------------------------------- C C--------------------------- C Parametres Entree/Sortie : C--------------------------- C C E/ NBMAIL : Nombre de zones élémentaires de MMODEL C E/ IPGEOM : Pointeur de l'objet maillage C E/ IPMAHY : Segment contenant le pointeur vers le meleme des C connectivites elements/faces pour les zones du MMODEL C ou on a defini DARCY. C E/ IPRIG1 : RIGIDITE de sous type 'DARCY' C E/ COEF : Parametre de discretisation temporelle (theta-methode) C E/ DELTAT : Pas de discretisation temporelle C E/ IPCK : MCHAML donnant pour chaque element Ck|K| C /S IPRIG2 : RIGIDITE de sous type 'HYBTP' C C---------------------- C Variables en COMMON : C---------------------- C C E/ IFOMOD : Voir CCOPTIO C E/ NOMDD(20) : Voir CCHAMP C E/ NOMDU(20) : Voir CCHAMP C C C----------------------------------------------------------------------- C C Langage : ESOPE + FORTRAN77 C C Auteurs : 08/93 F.DABBENE - Cas permanent C 09/94 X.NOUVELLON - Extension au cas transitoire C C----------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMRIGID -INC SMCHAML -INC SMELEME * SEGMENT IPMAHY INTEGER MAHYBR(NSOUS) ENDSEGMENT * * Initialisations * RI1 = IPRIG1 MCHELM = IPCK * * Création du chapeau de l'objet RIGIDITE * NRIGE = 6 NRIGEL = NBMAIL SEGINI MRIGID IPRIG2 = MRIGID ICHOLE = 0 IMGEO1 = 0 IMGEO2 = 0 IFORIG = IFOUR ISUPEQ = 0 MTYMAT = 'HYBTP ' NBGEOR = 0 DO 10 IA=1,NBMAIL IRIGEL(4,IA) = 0 COERIG(IA) = 1.D0 10 CONTINUE * *= BOUCLE SUR LES MAILLAGES ELEMENTAIRES,ZONE IMAIL * SEGACT IPMAHY IF (IPCK.NE.0) SEGACT MCHELM SEGACT RI1 DO 30 IMAIL=1,NBMAIL * * Recuperation de l'objet maillage ELTFA pour la zone IMAIL * IMAHYB = MAHYBR(IMAIL) IF (IMAHYB.EQ.0) GOTO 30 * * Récupération du MELVAL de la sous zone pour le MCHAML * IF (IPCK.NE.0) THEN MCHAML = ICHAML(IMAIL) SEGACT MCHAML MELVAL = IELVAL(1) ELSE MELVAL = 0 ENDIF * * Récupération des matrices masses hybrides pour la sous zone * xMATR1 = RI1.IRIGEL(4,IMAIL) * * Création du segment DESCRIPTEUR pour la sous zone IMAIL * MELEME = IMAHYB SEGACT MELEME NBDDL = NUM(/1) NBELEM = NUM(/2) * NLIGRP = NBDDL NLIGRD = NBDDL SEGINI DESCR DO 20 IB=1,NLIGRP LISINC(IB) = NOMDD(20) LISDUA(IB) = NOMDU(20) NOELEP(IB) = IB NOELED(IB) = IB 20 CONTINUE IDESCR = DESCR SEGDES DESCR * * Création du segment IMATRI * Initialisation du tableau IRIGEL pour la sous zone IMAIL * NELRIG = NBELEM SEGINI,xMATRI=xmatr1 IRIGEL(1,IMAIL) = IMAHYB IRIGEL(2,IMAIL) = 0 IRIGEL(3,IMAIL) = IDESCR IRIGEL(4,IMAIL) = xMATRI IRIGEL(5,IMAIL) = 0 IRIGEL(6,IMAIL) = 0 SEGDES xMATRI * * Calcul de RIGIDITE resultat pour la sous zone * CALL MATP2(xmatr1,COEF,DELTAT,MELVAL,xMATRI) 30 CONTINUE SEGDES RI1 SEGDES IPMAHY SEGDES MRIGID END