1 : C CAPDIF SOURCE FANDEUR 10/12/17 21:15:55 6427 2 : 3 : SUBROUTINE CAPDIF (MELE,IPMAIL,IPMINT,IVAMAT,NVMAT, IPMATR) 4 : 5 : *----------------------------------------------------------------------* 6 : * CALCUL DE LA CAPACITE POUR LA FORMULATION 'DIFFUSION' * 7 : *----------------------------------------------------------------------* 8 : * ENTREES : * 9 : * ________ * 10 : * MELE Numero de l'element fini * 11 : * IPMAIL Segment MELEME actif * 12 : * IPMINT Segment MINTE actif * 13 : * IVAMAT Segment MPTVAL actif des proprietes materielles * 14 : * NVMAT Nombre de proprietes materielles (ici =1) * 15 : * * 16 : * SORTIES : * 17 : * ________ * 18 : * IPMATR Segment MRIGID actif contenant la CAPACITE * 19 : *----------------------------------------------------------------------* 20 : 21 : IMPLICIT INTEGER(I-N) 22 : IMPLICIT REAL*8(A-H,O-Z) 23 : 24 : -INC CCOPTIO 25 : -INC CCREEL 26 : 27 : -INC SMCHAML 28 : -INC SMCOORD 29 : -INC SMELEME 30 : -INC SMINTE 31 : -INC SMRIGID 32 : 33 : SEGMENT MPTVAL 34 : INTEGER IPOS(NS),NSOF(NS) 35 : INTEGER IVAL(NCOSOU) 36 : CHARACTER*16 TYVAL(NCOSOU) 37 : ENDSEGMENT 38 : 39 : SEGMENT MWKELT 40 : REAL*8 XEL(3,NBNN),XDSHP(6,NBNN),XFORM(NBNN) 41 : ENDSEGMENT 42 : 43 : MELEME = IPMAIL 44 : NBNN = NUM(/1) 45 : NBELEM = NUM(/2) 46 : 47 : MINTE = IPMINT 48 : NBPGAU = POIGAU(/1) 49 : 50 : MPTVAL = IVAMAT 51 : MELVAL = IVAL(1) 52 : NELMAT = VELCHE(/2) 53 : NPGMAT = VELCHE(/1) 54 : 55 : XMATRI = IPMATR 56 : 57 : SEGINI,MWKELT 58 : 59 : C------------------------- 60 : C Boucle sur les elements 61 : C------------------------- 62 : DO IEL = 1,NBELEM 63 : C - Recuperation des coordonnees des noeuds de l element IEL 63 : CALL DOXE(XCOOR,IDIM,NBNN,NUM,IEL,XEL) 64 : C - 65 : IEMN = MIN(IEL,NELMAT) 66 : C-- -- -- -- -- -- -- -- -- 67 : C - Boucle sur les points de Gauss 68 : C-- -- -- -- -- -- -- -- -- 69 : ISDJC = 0 70 : DO IGAU = 1, NBPGAU 71 : C -- Calcul de la matrice Bdif et du jacobien au point de Gauss IGAU 71 : CALL NDIFF(NBNN,XEL,SHPTOT(1,1,IGAU), XDSHP,XFORM,DJAC) 72 : IF (DJAC.EQ.0.) THEN 73 : INTERR(1) = IEL 73 : CALL ERREUR(259) 74 : GOTO 999 75 : ENDIF 76 : IF (DJAC.LT.0.) ISDJC = ISDJC+1 77 : C -- Recuperation de la capacite 'CDIF' (IGAU) 78 : IGMN = MIN(IGAU,NPGMAT) 79 : CDIFF = VELCHE(IGMN,IEMN) 80 : C -- Contribution a la matrice de capacite elementaire (IGAU - IEL) 81 : DJAC = ABS(DJAC) * POIGAU(IGAU) * CDIFF 81 : CALL NTNST(XFORM,DJAC,NBNN,1,RE(1,1,IEL)) 82 : C-- -- -- -- -- -- -- -- -- 83 : ENDDO 84 : C-- -- -- -- -- -- -- -- -- 85 : IF (ISDJC.NE.0 .AND. ISDJC.NE.NBPGAU) THEN 86 : INTERR(1) = IEL 86 : CALL ERREUR(195) 87 : GOTO 999 88 : ENDIF 89 : C------------------------- 90 : ENDDO 91 : C------------------------- 92 : 93 : 999 CONTINUE 94 : SEGSUP,MWKELT 95 : 96 : RETURN 97 : END 98 : 99 :
© Cast3M 2003 - All rights reserved.
Disclaimer