krempa
C KREMPA SOURCE PV 22/04/21 21:15:07 11344 - SHC3D,SKCEL,SPROJA,SKBUFF) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION U2(*),KG(2) C---------------------------------------------------------------------- C Calcul des facteurs de forme en 3D C Sp appele par la famille KREMxG C C CELLULES-ARETES C --------------- C C DETERMINATION DES CELLULES SITUEES SUR LA FACE 'NF' APPARTENANT C A LA PROJECTION DE L'ARETE 'NA' DE L'ELEMENT 'K2' C C NA : INDICE DE L'ARETE C U2 : NORMALE DE L'ELEMENT K2 C C NAL : INDICE DU NUMERO DE FACE DANS L'ARETE 1,2 OU 3 C SI 3 ON CALCULE NF C C SI NFA = 3 : SEUL CAS OU ON CALCULE NF C---------------------------------------------------------------------- -INC TFFOR3D SEGMENT SKCEL INTEGER KBCEL(NR,NR),IINT(2,NSTAC),IS(NSTAC),JS(NSTAC) REAL*8 RMAX ENDSEGMENT C IF(NAL.NE.3) THEN IF(NF.EQ.IFA(NAL,NA)) THEN LF = 1 ELSE LF = 2 ENDIF ELSE IF (NFA(NA).EQ.3) THEN LF = 3 NF = IFA(3,NA) ELSE IF (IFA(3,NA).EQ.NF) THEN LF = 3 ELSE LF = 4 ENDIF ENDIF ENDIF C KG(1) = KG(1) + IG(LF,1,NA) KG(2) = KG(2) + IG(LF,2,NA) NG = NG + 1 C NOC = NUMF(/2) DO 403 KC = 1,NCEL(LF,NA) I = ICEL(LF,1,KC,NA) J = ICEL(LF,2,KC,NA) KBCEL(I,J) = 1 C IF (PSC(NF,I,J).GT.-1.) THEN B = 0. DO 40 IES = 1,KES B = B + U2(IES)*KSI(NF,IES)*V(KRO(NF,IES),I,J) 40 CONTINUE C C CELLULE SOMMET OU ARETE C IF (ABS(B).GT.0.0001) THEN Z = - C / B DFF = Z - ZB(NF,I,J) DIFF = ABS(DFF) NTY = NTYP(NF,I,J) IF (DIFF.LT.1E-4.AND.NTY.LT.NOC) THEN DO 100 KT=1,NTY K = NUMF(NF,KT,I,J) IF (K.EQ.K2) GOTO 101 100 CONTINUE NTY = NTY + 1 NUMF(NF,NTY,I,J) = K2 NTYP(NF,I,J) = NTY 101 CONTINUE ELSE IF (DFF.LT.-1E-3.AND.Z.GT.1E-4) THEN ZB(NF,I,J) = Z NUMF(NF,1,I,J) = K2 NTYP(NF,I,J) = 1 ENDIF ENDIF ENDIF ENDIF 403 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales