1 : C KPRESS SOURCE MAGN 10/05/18 21:15:57 6675 2 : SUBROUTINE KPRESS(MELEME,IZAFM,IAXI,IMPR) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : C***************************************************************************** 6 : C 7 : C Ce SP calcule les matrices elementaires de divergence alias C 8 : C 9 : C***************************************************************************** 10 : CHARACTER*8 NOM0 11 : 12 : -INC CCOPTIO 13 : -INC CCGEOME 14 : -INC SMCOORD 15 : -INC SIZFFB 16 : C-INC SMMATRAKANC 17 : C************************************************************************* 18 : C 19 : C REPERAGE ET STOKAGE DES MATRICES ELEMENTAIRES puis assemblees 20 : C 21 : 22 : * LGEOC SPG de la pression et/ou des multiplicateurs de Lagrange 23 : * (points CENTRE ) pour chaque operateur de contrainte 24 : * KGEOC SPG pour la totalite des points CENTRE. 25 : * KGEOS SPG pour la totalite des points SOMMET (Diagonale vitesse) 26 : * KLEMC Connectivites de l'ensemble des contraintes 27 : * LIZAFM(NBSOUS) contient les pointeurs IZAFM des sous-zones 28 : 29 : SEGMENT MATRAK 30 : INTEGER LGEOC(NBOP),IDEBS(NBOP),IFINS(NBOP) 31 : INTEGER LIZAFM(NBSOUS) 32 : INTEGER IKAM0 (NBSOUS) 33 : INTEGER IMEM (NBELC) 34 : INTEGER KLEMC,KGEOS,KGEOC,KDIAG,KCAC,KIZCL,KIZGC 35 : ENDSEGMENT 36 : 37 : SEGMENT IZAFM 38 : REAL*8 AM(NNELP,NP,IESP),RPGI(NELAX) 39 : ENDSEGMENT 40 : 41 : POINTEUR IPMJ.IZAFM,IPMK.IZAFM 42 : 43 : C******************************************************************* 44 : -INC SMELEME 45 : 46 : C OPERATEUR PRESSION 47 : C 48 : SEGACT MELEME,IZAFM*MOD 49 : 50 : NP=NUM(/1) 51 : NEL=NUM(/2) 52 : C write(6,*)' NP=',NP,' NEL=',NEL,' ITYPEL=',ITYPEL 53 : NOM0=NOMS(ITYPEL)//' ' 53 : CALL KALPBG(NOM0,'FONFORM ',IZFFM) 54 : SEGACT IZFFM*MOD 55 : IZHR=KZHR(1) 56 : SEGACT IZHR*MOD 57 : NES=GR(/1) 58 : NPG=GR(/3) 59 : C 60 : IF(IMPR.NE.0)THEN 61 : WRITE(6,*)' ZONE PRESSION CALCUL MATRICE AM ' 62 : WRITE(6,*)' NP=',NP,' NES=',NES,' NPG=',NPG,' NEL=',NEL 63 : ENDIF 64 : C 65 : DO 10 K=1,NEL 66 : DO 12 I=1,NP 67 : C J=IPADL(NUM(I,K)) 68 : J=NUM(I,K) 69 : DO 12 N=1,IDIM 70 : C XYZ(N,I)=T(N,J) 71 : XYZ(N,I)=XCOOR((J-1)*(IDIM+1) +N) 72 : 12 CONTINUE 73 : 74 : C IF(IMPR.NE.0)THEN 75 : C WRITE(6,*)' XYZ : KS=',KS,' K=',K 76 : C WRITE(6,1002)((XYZ(N,I),N=1,IDIM),I=1,NP) 77 : C ENDIF 78 : 78 : CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NP,NPG,IAXI,AIRE) 79 : 79 : CALL KAAM(FN,HR,PG,PGSQ,AM,K,NEL,NP,NPG,IDIM,IAXI,RPG) 80 : 81 : 10 CONTINUE 82 : IF(IMPR.NE.0)THEN 83 : DO 11 K=1,NEL 84 : WRITE(6,1040)K,((AM(K,M,N),M=1,NP),N=1,IDIM) 85 : 11 CONTINUE 86 : ENDIF 87 : 88 : SEGDES MELEME,IZAFM 89 : SEGSUP IZHR,IZFFM 90 : 91 : RETURN 92 : 1002 FORMAT(10(1X,1PE11.4)) 93 : 1040 FORMAT(1X,'CALCUL MATRICE AM ',I4/10(1X,1PE11.4)) 94 : END 95 : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 : 104 : 105 : 106 :
© Cast3M 2003 - All rights reserved.
Disclaimer