kmf
C KMF SOURCE CB215821 20/11/25 13:31:34 10792 SUBROUTINE KMF C *********************************************************************** C C Objet : Cet operateur calcule soit C*U C soit C*1/D * U C C Syntaxe : C CAS 1 / C C B = KMF MATRAK MCHPOI ; C C C CAS 2 / C C B = KMF MATRAK MCHPOI 'MDM1' CHPOIMDM1 ; C ou C KMF MATRAK MCHPOI 'MDM1' CHPOIMDM1 B ; C C Dans ce dernier cas KMF agit comme foncteur sur B C C C C C POINTEURS : C C MATRAK MATRICES ELEMENTAIRES DE LA DIVERGENCE (ALIAS "C") C IZTUN CHPOINT CONTENANT U C C EN SORTIE : C C IZB CONTIENT C*U C C *********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) CHARACTER*8 TYPE,TYPC -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMLENTI POINTEUR IZIPAD.MLENTI C-INC SMMATRAK C************************************************************************* C C REPERAGE ET STOKAGE DES MATRICES ELEMENTAIRES puis assemblees C * LGEOC SPG de la pression et/ou des multiplicateurs de Lagrange * (points CENTRE ) pour chaque operateur de contrainte * KGEOC SPG pour la totalite des points CENTRE. * KGEOS SPG pour la totalite des points SOMMET (Diagonale vitesse) * KLEMC Connectivites de l'ensemble des contraintes * LIZAFM(NBSOUS) contient les pointeurs IZAFM des sous-zones SEGMENT MATRAK INTEGER LGEOC(NBOP),IDEBS(NBOP),IFINS(NBOP) INTEGER LIZAFM(NBSOUS) INTEGER IKAM0 (NBSOUS) INTEGER IMEM (NBELC) INTEGER KLEMC,KGEOS,KGEOC,KDIAG,KCAC,KIZCL,KIZGC ENDSEGMENT SEGMENT IZAFM REAL*8 AM(NNELP,NP,IESP),RPGI(NELAX) ENDSEGMENT POINTEUR IPMJ.IZAFM,IPMK.IZAFM C******************************************************************* -INC SMCHPOI POINTEUR IZB.MCHPOI,IZBB.MPOVAL POINTEUR IZD.MCHPOI,IZDD.MPOVAL CHARACTER*4 LISMOT(1) DATA LISMOT/'MDM1'/ C**** C LECTURE DES ARGUMENTS IF(IRET.EQ.0) RETURN IF(TYPE.EQ.'MATRIK')THEN CALL KMFN RETURN ELSEIF(TYPE.EQ.'MATRAK')THEN IF(IRET.EQ.0) RETURN IF(IMDM1.NE.0)THEN IF(IRET.EQ.0) RETURN ENDIF SEGACT MATRAK MELEME=KLEMC MELEM1=KGEOS IGEOMC=KGEOC TYPE='CENTRE' IF(IMDM1.EQ.0)THEN ELSE IEB=1 IF(IRET.EQ.0) THEN IEB=0 ENDIF IF(IGEOM.NE.IGEOMC)THEN WRITE(6,*)' Le champ de contraintes n a pas le meme support' &,' geometrique que les matrices de contrainte ' RETURN ENDIF ENDIF N=VPOCHA(/1) SEGACT MELEME NBSOUS=LISOUS(/1) IF(NBSOUS.EQ.0)NBSOUS=1 KK=0 DO 15 KS=1,NBSOUS IF(NBSOUS.EQ.1)IPT1=MELEME IF(NBSOUS.NE.1)IPT1=LISOUS(KS) IZAFM=LIZAFM(KS) SEGACT IPT1,IZAFM NP=IPT1.NUM(/1) NEL=IPT1.NUM(/2) IF(IDIM.EQ.3)GO TO 5 C C 2D C K0=KK IF(IMDM1.NE.0)THEN & IPT1.NUM,IZIPAD.LECT,NP,NEL,N) ELSE & IPT1.NUM,IZIPAD.LECT,NP,NEL,N) ENDIF KK=K0+NEL GO TO 10 5 CONTINUE C C 3D C K0=KK IF(IMDM1.NE.0)THEN & IPT1.NUM,IZIPAD.LECT,NP,NEL,N) ELSE & IPT1.NUM,IZIPAD.LECT,NP,NEL,N) ENDIF KK=K0+NEL 10 CONTINUE IF(MELEME.NE.IPT1)SEGDES IPT1 SEGDES IZAFM 15 CONTINUE SEGSUP IZIPAD SEGDES MELEME SEGDES MATRAK SEGACT MCHPOI MSOUPO=IPCHP(1) SEGDES MPOVAL SEGDES MSOUPO SEGDES MCHPOI SEGDES IZB,IZBB IF(IMDM1.NE.0)THEN SEGDES IZD,IZDD ENDIF ELSE RETURN ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales