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