C KPRESS SOURCE MAGN 10/05/18 21:15:57 6675 SUBROUTINE KPRESS(MELEME,IZAFM,IAXI,IMPR) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C***************************************************************************** C C Ce SP calcule les matrices elementaires de divergence alias C C C***************************************************************************** CHARACTER*8 NOM0 -INC CCOPTIO -INC CCGEOME -INC SMCOORD -INC SIZFFB C-INC SMMATRAKANC 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 SMELEME C OPERATEUR PRESSION C SEGACT MELEME,IZAFM*MOD NP=NUM(/1) NEL=NUM(/2) C write(6,*)' NP=',NP,' NEL=',NEL,' ITYPEL=',ITYPEL NOM0=NOMS(ITYPEL)//' ' CALL KALPBG(NOM0,'FONFORM ',IZFFM) SEGACT IZFFM*MOD IZHR=KZHR(1) SEGACT IZHR*MOD NES=GR(/1) NPG=GR(/3) C IF(IMPR.NE.0)THEN WRITE(6,*)' ZONE PRESSION CALCUL MATRICE AM ' WRITE(6,*)' NP=',NP,' NES=',NES,' NPG=',NPG,' NEL=',NEL ENDIF C DO 10 K=1,NEL DO 12 I=1,NP C J=IPADL(NUM(I,K)) J=NUM(I,K) DO 12 N=1,IDIM C XYZ(N,I)=T(N,J) XYZ(N,I)=XCOOR((J-1)*(IDIM+1) +N) 12 CONTINUE C IF(IMPR.NE.0)THEN C WRITE(6,*)' XYZ : KS=',KS,' K=',K C WRITE(6,1002)((XYZ(N,I),N=1,IDIM),I=1,NP) C ENDIF CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NP,NPG,IAXI,AIRE) CALL KAAM(FN,HR,PG,PGSQ,AM,K,NEL,NP,NPG,IDIM,IAXI,RPG) 10 CONTINUE IF(IMPR.NE.0)THEN DO 11 K=1,NEL WRITE(6,1040)K,((AM(K,M,N),M=1,NP),N=1,IDIM) 11 CONTINUE ENDIF SEGDES MELEME,IZAFM SEGSUP IZHR,IZFFM RETURN 1002 FORMAT(10(1X,1PE11.4)) 1040 FORMAT(1X,'CALCUL MATRICE AM ',I4/10(1X,1PE11.4)) END