Download locimp.eso

Back to the list

   1 : C LOCIMP    SOURCE    CHAT      05/01/13    01:24:46     5004           
   2 : 
   3 :       SUBROUTINE LOCIMP(NDIM,JFACE,XDEP2
   4 :      $     ,PT1,PT2,PT3,PT4,IPT9,JREBO,XIREB,XNREB,IEL1,IELTFA)
   5 : *************************************************************************
   6 : *** SP 'LOCIMP' : a partir d'un n° de face permet de dire s'il s'agit
   7 : *** d'une face impermeable. renvoie alors les caracteristiques de cette
   8 : *** face.
   9 : ***
  10 : *** E = 'NDIM' dimension de l'espace
  11 : ***     'JFACE' face ou se situe la particule
  12 : ***     'XDEP2' position initiale de la particule
  13 : ***     'PT1', 'PT2', 'PT3', 'PT4' noeuds appartenant à element considéré
  14 : ***     'IPT9' pteur sur maillage faces impermeables
  15 : ***     'IEL1' numero de l'element dans lequel on se trouve
  16 : ***     'IELTFA' pointeur du maillage des connectivités elements->face
  17 : ***
  18 : *** S = 'JREBO' n° local face impermeable ou se trouve particule, -1 sinon
  19 : ***     'XIREB' pt d'impact sur la face impermeable
  20 : ***     'XNREB' vecteur normal à la face impermeable
  21 : ***
  22 : ***  Auteur   CYRIL NOU
  23 : *************************************************************************
  24 :       IMPLICIT INTEGER(I-N)
  25 :       IMPLICIT REAL*8 (A-H,O-Z)
  26 : -INC CCOPTIO
  27 : -INC SMCOORD
  28 : -INC SMELEME
  29 :       SEGMENT IZSH
  30 :           REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9)
  31 :       ENDSEGMENT
  32 :       DIMENSION XIMP(3),XDEP2(3),XIREB(3),XNREB(3)
  33 :       DIMENSION PT1(3),PT2(3),PT3(3),PT4(3),XN1(3),XN2(3),XN3(3),XINT(3)
  34 :       JREBO=-1
  35 :       DO 30 I=1,3
  36 :          XIREB(I)=0.D0
  37 :          XNREB(I)=0.D0
  38 :  30   CONTINUE
  39 : ***   sortie de programme s'il n'y a pas de face impermeable
  40 :       IF (IPT9.LE.0) RETURN
  41 : ***   recuperation dimensions des tableaux du maillage faces impermeables
  42 :       NBSOUS=IPT9.LISOUS(/1)
  43 :       NBNOEU=IPT9.NUM(/1) 
  44 : ***   On a verifié plus haut que NBNOEU=1
  45 :       NBELE=IPT9.NUM(/2)
  46 : ***   Recherche du numero de la face JFACE dans le maillage general
  46 :       CALL MELNEL(IEL1,IELTFA,IPT2,NEL2,1)
  47 :       NF=IPT2.NUM(JFACE,IEL1-NEL2)
  48 : ***   boucle sur les elements du maillage faces impermeables 
  49 :       DO 10 IELL2=1,NBELE
  50 :          NFI=IPT9.NUM(1,IELL2)
  51 :          IF(NF.EQ.NFI)THEN
  52 : ***      recuperation de la position reelle du pt face impermeable
  52 :                CALL DOXE(XCOOR,NDIM,NBNOEU,IPT9.NUM,IELL2,XIMP)
  53 : ***            recuperation n°face, intersection, normale si face imper
  53 :                CALL FACTR1(NDIM,PT1,PT2,PT3
  54 :      $              ,XIMP,XIMP,XN1,XN2,XN3,XINT,KTEST)
  55 :                JREBO=JFACE
  56 :                DO 20 I=1,NDIM
  57 :                   XIREB(I)=XDEP2(I)
  58 :                   XNREB(I)=XN1(I)
  59 :  20            CONTINUE
  60 :                RETURN
  61 :          ENDIF
  62 :  10   CONTINUE
  63 :       RETURN
  64 :       END
  65 :  
  66 :  

© Cast3M 2003 - All rights reserved.
Disclaimer