C KCACUB SOURCE CHAT 05/01/13 00:52:14 5004 SUBROUTINE KCACUB(NES,NR,G,VP,NFACE,KROT,KSIG,IR) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C Include contenant quelques constantes dont XPI : -INC CCREEL DIMENSION VP(NES,NR,NR),G(NR,NR),IR(1) DIMENSION KROT(NFACE,NES),KSIG(NFACE,NES) C C Calcul des facteurs de forme en 3D C Sp appele par KALPRE C CALCUL DES FF ET DES DIRECTIONS POUR TOUTE LA SURFACE DE REFERENCE C ( PLAN Z = +1) C C NF = 1 X = +1 NF = 2 X = -1 C NF = 3 Y = +1 NF = 4 Y = -1 C NF = 5 Z = +1 NF = 6 Z = -1 C C UTILISATION : C C D(NF,K,I,J) = KSIG(NF,K) * V(KROT(NF,K),I,J) C C NF : NUMERO DE FACE C K : DIRECTION DE ESPACE C I,J: INDICES DE DISCRETISATION LOCAL A CHAQUE FACE C C REM: VP ORIENTE CU CENTRE VERS LA CELLULE C *** C C NR2 = NR/2 DO 30 I = 1,NR2 IR(I) = NR2-I+1 IR(I+ NR2) = I 30 CONTINUE DO 1 I = 1, NR DO 2 J = 1, NR VP(1,I,J) = (IR(I)-0.5D0)/NR VP(2,I,J) = (IR(J)-0.5D0)/NR RP = VP(1,I,J)*VP(1,I,J)+VP(2,I,J)*VP(2,I,J) + 0.5D0*0.5D0 RP = DSQRT(RP) IS = 1 JS = 1 IF (I.LE.NR2) IS = -1 IF (J.LE.NR2) JS = -1 VP(1,I,J) = IS * VP(1,I,J)/RP VP(2,I,J) = JS * VP(2,I,J)/RP VP(3,I,J) = 0.5D0/RP G(I,J) = 0.5D0/(RP*RP*RP)/NR/NR/XPI 2 CONTINUE 1 CONTINUE C C TABLEAU DE CORRESPONDANCE C C FACE X C NF = 1 KROT(NF,1) = 3 KROT(NF,2) = 1 KROT(NF,3) = 2 NF = 2 KROT(NF,1) = 3 KROT(NF,2) = 1 KROT(NF,3) = 2 C C FACE Y C NF = 3 KROT(NF,1) = 1 KROT(NF,2) = 3 KROT(NF,3) = 2 NF = 4 KROT(NF,1) = 1 KROT(NF,2) = 3 KROT(NF,3) = 2 C C FACE Z C NF = 5 KROT(NF,1) = 1 KROT(NF,2) = 2 KROT(NF,3) = 3 NF = 6 KROT(NF,1) = 1 KROT(NF,2) = 2 KROT(NF,3) = 3 C C FACE POSITIVES C DO 4 NF = 1,NFACE DO 5 K = 1,NES KSIG(NF,K) = 1 5 CONTINUE 4 CONTINUE C KSIG(2,1) = -1 KSIG(4,2) = -1 KSIG(6,3) = -1 C RETURN END