C KREM3G SOURCE CHAT 05/01/13 01:06:19 5004 SUBROUTINE KREM3G(K2,NS1,NS2,NS3,NF1,NF2,NF3,NA1,NA2,NA3 * ,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF,SPROJP) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C---------------------------------------------------------------------- C Calcul des facteurs de forme en 3D C Sp appele par KPROJG C C CAS DE 3 FACES DIFFERENTES NON PARALLELES C ----------------------------------------- C C---------------------------------------------------------------------- C DIMENSION U2(4),KC1(2),KG(2),KH(2) -INC TFFOR3D C SEGMENT SPROJP INTEGER KF(NPT),ICOO(2,NPT) REAL*8 XR(3,NPT) ENDSEGMENT C SEGMENT SKSEGM INTEGER KKSEGM(2,NSEGM) ENDSEGMENT C C DESCRIPTION DES ARETES C SEGMENT SKCEL INTEGER KBCEL(NR,NR),IINT(2,NSTAC),IS(NSTAC),JS(NSTAC) REAL*8 RMAX ENDSEGMENT C C-------------------------------------------------------------------- NR = IR(/1) C C WRITE(6,*) ' KREM3G K2 ',K2 C WRITE(6,*) ' NF ',NF1,NF2,NF3 C WRITE(6,*) ' NFA ',NFA(NA1),NFA(NA2),NFA(NA3) C C C IF (NFA(NA1).NE.3.AND.NFA(NA2).NE.3.AND.NFA(NA3).NE.3) THEN C C PAS DE FACE GENEREE C ------------------- C CALL KINITB(KBCEL,NR,NR,KG,NG) CALL KREMPA(K2,KG,NG,NF1,NA1,1,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) CALL KREMPA(K2,KG,NG,NF1,NA3,1,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) CALL KFINSO(NF2,NF3,KA,IM,KH) KG(1) = ( KG(1)/2 + KH(1) )/2 KG(2) = ( KG(2)/2 + KH(2) )/2 CALL KREMPI(NIN,K2,KG,1,NF1,C,U2,SHC3D,SKCEL,SKBUFF) CALL KINITB(KBCEL,NR,NR,KG,NG) CALL KREMPA(K2,KG,NG,NF2,NA1,1,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) CALL KREMPA(K2,KG,NG,NF2,NA2,1,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) CALL KFINSO(NF1,NF3,KA,IM,KH) KG(1) = ( KG(1)/2 + KH(1) )/2 KG(2) = ( KG(2)/2 + KH(2) )/2 CALL KREMPI(NIN,K2,KG,1,NF2,C,U2,SHC3D,SKCEL,SKBUFF) CALL KINITB(KBCEL,NR,NR,KG,NG) CALL KREMPA(K2,KG,NG,NF3,NA2,1,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) CALL KREMPA(K2,KG,NG,NF3,NA3,1,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) CALL KFINSO(NF1,NF2,KA,IM,KH) KG(1) = ( KG(1)/2 + KH(1) )/2 KG(2) = ( KG(2)/2 + KH(2) )/2 CALL KREMPI(NIN,K2,KG,1,NF3,C,U2,SHC3D,SKCEL,SKBUFF) ELSE C C IL EXISTE UNE FACE GENEREE C --------------------------- C IF (NFA(NA2).EQ.3) THEN KC1(1) = ICOO(1,NS1) KC1(2) = ICOO(2,NS1) CALL KREM3F(K2,KG,NG,KC1,NA2,NF2,NF3,NF1,NA3,NA1 - ,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) ENDIF C IF (NFA(NA3).EQ.3) THEN KC1(1) = ICOO(1,NS2) KC1(2) = ICOO(2,NS2) CALL KREM3F(K2,KG,NG,KC1,NA3,NF3,NF1,NF2,NA1,NA2 - ,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) ENDIF IF (NFA(NA1).EQ.3) THEN KC1(1) = ICOO(1,NS3) KC1(2) = ICOO(2,NS3) CALL KREM3F(K2,KG,NG,KC1,NA1,NF1,NF2,NF3,NA2,NA3 - ,C,U2,SHC3D,SKCEL,SPROJA,SKBUFF) ENDIF ENDIF C RETURN END