Télécharger intpro.eso

Retour à la liste

Numérotation des lignes :

  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.  
  69.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales