Download kapcub.eso

Back to the list

   1 : C KAPCUB    SOURCE    PV        11/03/07    21:17:15     6885           
   2 :       SUBROUTINE  KAPCUB(NES,X,A,NR,XR,IFACE,KFACE1,KFACE2)
   3 : *
   4 : C-----------------------------------------------------------------------
   5 : C Calcul des facteurs de forme en 3D
   6 : C Sp appele par ksubcr
   7 : C     PROJECTION D'UN POINT X SUR L'H.C  DE RESOLUTION NR                       
   8 : C     ---------------------------------------------------                       
   9 : C     A   : CENTRE DE L'H.C                                                     
  10 : C     IFACE : NUMERO DE FACE                                                    
  11 : C     KFACE1,KFACE2 : COORDONNEES ENTIERES SUR LA FACE
  12 : C                                                                               
  13 : C-----------------------------------------------------------------------
  14 : *
  15 : *
  16 :       IMPLICIT INTEGER(I-N)
  17 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
  18 :       DIMENSION X(NES),A(NES),XA(3),XR(NES)
  19 : C
  20 :       NR2 = NR/2
  21 :       EPS=1E-5
  22 :       XAB = -EPS
  23 :       A1 = -1E-10
  24 : 
  25 :         DO 1  IES = 1,NES
  26 :          XA(IES) = X(IES)-A(IES)
  27 :          A2=DABS(XA(IES))
  28 :          IF(A2.GT.A1) THEN
  29 :            A1 = A2
  30 :            I = IES
  31 :          ENDIF
  32 :  1      CONTINUE
  33 : C
  34 : C     WRITE(6,*) 'A1 XA(I) ',A1,XA(I)
  35 :       KS = KSIG(XA(I),EPS)
  36 : C     WRITE(6,*) ' KS ',KS
  37 : C
  38 :       IF (I.EQ.1) THEN
  39 :            XR(2) = XA(2)/A1
  40 :            XR(3) = XA(3)/A1
  41 :            I1 = 1 + INT(NR2*(1+XR(2)))
  42 :            I2 = 1 + INT(NR2*(1+XR(3)))
  43 :            KFACE1 = MIN0(NR,I1)
  44 :            KFACE2 = MIN0(NR,I2)
  45 :            IF(KS.EQ.1) THEN
  46 :            IFACE= 1
  47 :            XR(1) = 1.
  48 :            ELSE
  49 :            IFACE = 2
  50 :            XR(1) = -1.
  51 :            ENDIF
  52 :            RETURN
  53 :       ENDIF
  54 :       IF (I.EQ.2) THEN
  55 :            XR(1) = XA(1)/A1
  56 :            XR(3) = XA(3)/A1
  57 :            I1 = 1 + INT(NR2*(1+XR(1)))
  58 :            I2 = 1 + INT(NR2*(1+XR(3)))
  59 :            KFACE1 = MIN0(NR,I1)
  60 :            KFACE2 = MIN0(NR,I2)
  61 :            IF(KS.EQ.1) THEN
  62 :            IFACE    = 3
  63 :            XR(2) =  1.
  64 :            ELSE
  65 :            IFACE    = 4
  66 :            XR(2) = -1.
  67 :            ENDIF
  68 :            RETURN
  69 :       ENDIF
  70 :       IF (I.EQ.3) THEN
  71 :            XR(1) = XA(1)/A1
  72 :            XR(2) = XA(2)/A1
  73 :            I1 = 1 + INT(NR2*(1+XR(1)))
  74 :            I2 = 1 + INT(NR2*(1+XR(2)))
  75 :            KFACE1 = MIN0(NR,I1)
  76 :            KFACE2 = MIN0(NR,I2)
  77 :            IF(KS.EQ.1) THEN
  78 :            IFACE    = 5
  79 :            XR(3) =  1.
  80 :            ELSE
  81 :            IFACE    = 6
  82 :            XR(3) = -1.
  83 :            ENDIF
  84 :            RETURN
  85 :       ENDIF
  86 :       END
  87 :  
  88 :  
  89 :  

© Cast3M 2003 - All rights reserved.
Disclaimer