Download intpro.eso

Back to the list

   1 : C INTPRO    SOURCE    CHAT      05/01/13    00:41:36     5004           
   2 :       SUBROUTINE INTPRO(NDIM,XREEL
   3 :      $     ,NBFAC,IFACE,XINT,XN,JFACE,XINTER,XNORMA)
   4 : *********************************************************************
   5 : *** SP 'INTPRO' : determine par rapport à un pt choisi quelle est le pt
   6 : *** d'intersection trajectoire particule-face traversee le plus proche.
   7 : ***
   8 : *** APPELES 1 = aucun 
   9 : *** APPELES 2 = aucun
  10 : ***
  11 : *** E = 'NDIM' dimension de l'espace
  12 : ***     'XREEL' coordonnees reelles du pt choisi
  13 : ***     'NBFAC' nombre de faces de l'element traversees par particule
  14 : ***     'IFACE' n° faces de l'element traversees par particule
  15 : ***     'XINT' pts intersection trajectoire particule-faces traversees
  16 : ***     'XN' vecteurs unitaires normaux aux faces traversees
  17 : ***
  18 : *** S = 'JFACE' n° face traversee la plus proche du pt choisi
  19 : ***     'XINTER' coord reelles du pt intersection associé à face 'JFACE'
  20 : ***     'XNORMA' vecteur unitaire normal à face de n° 'JFACE'
  21 : ***
  22 : ***       Auteur Cyril Nou
  23 : *************************************************************************
  24 : 
  25 :       IMPLICIT INTEGER(I-N)
  26 :       IMPLICIT REAL*8 (A-H,O-Z)
  27 :       DIMENSION XREEL(3),IFACE(6),XINT(3,6),XN(3,6)
  28 :       DIMENSION DIFF(3),XINTER(3),XNORMA(3)
  29 : ***   recuperation des infos associées à face arbitraire (<> face calibrage)
  30 :       DISTA1=0.D0
  31 :       JFACE=IFACE(1)
  32 :       DO 10 J=1,NDIM
  33 :          XINTER(J)=XINT(J,1)
  34 :          XNORMA(J)=XN(J,1)
  35 :          DIFF(J)=XINT(J,1)-XREEL(J)
  36 :          DISTA1=DISTA1+DIFF(J)**2
  37 :  10   CONTINUE
  38 : ***   calcul distance entre pt considéré et pt intersection face arbitraire
  39 :       DISTA1=SQRT(DISTA1)
  40 : ***   boucle sur les autres faces traversées par trajectoire
  41 :       DO 20 I=2,NBFAC
  42 :          DISTA2=0.D0
  43 :          DO 30 J=1,NDIM
  44 :             DIFF(J)=XINT(J,I)-XREEL(J)
  45 :             DISTA2=DISTA2+DIFF(J)**2
  46 :  30      CONTINUE
  47 : ***      calcul distance entre pt considéré et pt intersection face-trajectoire        
  48 :          DISTA2=SQRT(DISTA2)
  49 : ***      recuperation des infos associées à face si distance est minimale
  50 :          IF (DISTA2.LT.DISTA1) THEN
  51 :             DISTA1=DISTA2
  52 :             JFACE=IFACE(I)
  53 :             DO 40 J=1,NDIM
  54 :                XINTER(J)=XINT(J,I)
  55 :                XNORMA(J)=XN(J,I)
  56 :  40         CONTINUE
  57 :          ENDIF
  58 :  20   CONTINUE
  59 : 
  60 :       RETURN
  61 :       END
  62 : 
  63 : 
  64 : 
  65 : 
  66 : 
  67 :  
  68 :  

© Cast3M 2003 - All rights reserved.
Disclaimer