C KAPC21 SOURCE PV 11/03/07 21:17:10 6885 SUBROUTINE KAPC21(NES,X,A,NR,XR,IFACE,KFACE,KAC) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C C CAS DE 2 FACES PARALLELES: DIRECTION KAC C ---------------------------------------- C A : CENTRE DE L'H.C C IFACE : NUMERO DE FACE C KFACE : COORDONNEES ENTIERES SUR LA FACE C DIMENSION X(NES),A(NES),XA(2),XR(NES) C NR2 = NR/2 EPS=1D-5 XAB = -EPS A1 = -1D-10 DO 1 IES = 1,NES XA(IES) = X(IES)-A(IES) A2=DABS(XA(IES)) IF(A2.GT.A1) THEN A1 = A2 I = IES ENDIF 1 CONTINUE C IF (I.EQ.KAC) THEN DO 2 IES = 1,NES A2 = DABS(XA(IES)) ERR = DABS(1.-A2/A1) IF (IES.EQ.I.AND.ERR.LT.0.01) THEN I = IES GOTO 3 ENDIF 2 CONTINUE ENDIF 3 CONTINUE C WRITE(6,*) 'A1 XA(I) ',A1,XA(I) KS = KSIG(XA(I),EPS) C WRITE(6,*) ' KS ',KS C IF (I.EQ.1) THEN XR(2) = XA(2)/A1 I1 = 1 + INT(NR2*(1+XR(2))) KFACE = MIN0(NR,I1) IF(KS.EQ.1) THEN IFACE= 1 XR(1) = 1. ELSE IFACE = 2 XR(1) = -1. ENDIF RETURN ENDIF IF (I.EQ.2) THEN XR(1) = XA(1)/A1 I1 = 1 + INT(NR2*(1+XR(1))) KFACE = MIN0(NR,I1) IF(KS.EQ.1) THEN IFACE = 3 XR(2) = 1. ELSE IFACE = 4 XR(2) = -1. ENDIF RETURN ENDIF END