C CADGFA SOURCE GOUNAND 25/11/12 21:15:03 12399 SUBROUTINE CADGFA C************************************************************************ C C OBJET : C C CALCUL DE LA MATRICE MASSE DIAGONALE POUR LES FACES C ---> Creation d'un CHAMPOIN C D0=NI ( MASSE LUMPE ) C C SYNTAXE : C C RES = DGSI OBJ1 <'AXI' i> <'IMPR'> ; C C OBJ1 : Table DOMAINE C C AXI : Calcule en coordonee cylindrique 2D C i=2 axe de symetrie oy C C C************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMTABLE POINTEUR MTABD.MTABLE integer tmtabd(1) -INC SMCOORD -INC SMLENTI POINTEUR IZIPAD.MLENTI -INC SMCHPOI -INC SIZFFB CHARACTER*8 NOM0,CHAI,LISMO(1),TYPE,TYPC DATA LISMO/'IMPR '/ C *************************************************************** IMPR=0 IAXI=0 IF(IFOMOD.EQ.0)IAXI=2 CALL LITABS('DOMAINE ',TMTABD,1,1,IRET) mtabd=tmtabd(1) IF(IRET.EQ.0)THEN WRITE(6,*)' On attend une table de soustype DOMAINE' RETURN ENDIF SEGACT MTABD TYPE=' ' CALL ACMO(MTABD,'MAILLAGE',TYPE,MELEME) IF(TYPE.NE.'MAILLAGE')RETURN TYPE=' ' CALL ACMO(MTABD,'FACE',TYPE,MELEMF) IF(TYPE.NE.'MAILLAGE')RETURN TYPE=' ' CALL ACMO(MTABD,'CENTRE',TYPE,MELEMC) IF(TYPE.NE.'MAILLAGE')RETURN CALL LEKTAB(MTABD,'FACEL',MELEME) IF(MELEME.EQ.0)RETURN CALL LEKTAB(MTABD,'XXVOLUM',MCHPO1) IF(MCHPO1.EQ.0)RETURN 19 CONTINUE CALL LIRCHA(CHAI,0,IRET) IF(IRET.EQ.0)GO TO 20 CALL OPTLI(IP,LISMO,CHAI,1) IF(IP.EQ.0)THEN WRITE(6,*)' On attend le mot cle IMPR ' RETURN ENDIF IMPR=1 GO TO 19 20 CONTINUE CALL KRIPAD(MELEMC,MLENT1) CALL KRIPAD(MELEMF,MLENT2) C CREATION DE LA DIAGONALE CALL CRCHPT('FACE',MELEMF,1,2,MCHPOI) CALL LICHT(MCHPOI,MPOVAL,TYPC,IGEOM) CALL LICHT(MCHPO1,MPOVA1,TYPC,IGEOM) SEGACT MELEME C C BOUCLE SUR LES TYPES D'ELEMENTS ET CALCUL C NBEL=NUM(/2) DO 1 K=1,NBEL I1=NUM(1,K) I2=NUM(2,K) I3=NUM(3,K) I1=MLENT1.LECT(I1) I2=MLENT2.LECT(I2) I3=MLENT1.LECT(I3) V=(MPOVA1.VPOCHA(I1,1)+MPOVA1.VPOCHA(I3,1) )*0.5D0 VPOCHA(I2,1)=V 1 CONTINUE IF(IMPR.NE.0)THEN WRITE(6,*)' SUB CADGFA : CALCUL DE LA DIAGONALE' WRITE(6,1003)(I,VPOCHA(I,1),I=1,VPOCHA(/1)) WRITE(6,*)' FIN DE CADGFA' ENDIF SEGDES MTABD SEGSUP MLENT1,MLENT2 CALL ACTOBJ('CHPOINT ',MCHPOI,1) CALL ECROBJ('CHPOINT ',MCHPOI) RETURN 1001 FORMAT(20(1X,I5)) 1002 FORMAT(10(1X,1PE11.4)) 1003 FORMAT(6(1X,I7,1X,1PE11.4)) END