Download j3boco.eso

Back to the list

   1 : C J3BOCO    SOURCE    CHAT      05/01/13    00:45:56     5004           
   2 :       SUBROUTINE J3BOCO(WORK,INOEUD,IBORD,IRET)
   3 : C----------------------------------------------------
   4 : C     CODIFICATION D'UN POINT SUR LE BORD
   5 : C
   6 : C     ESCLAVE DE J3COTO
   7 : C
   8 : C     CODE IST(1,I): 0 point non traite
   9 : C                    1 est sur le segment IST(2,I)
  10 : C                    2 est sur les segments IST(2,I) et IST(3,I)
  11 : C                   -1 est a l'interieur
  12 : C                   -2 est a l'exterieur
  13 : C
  14 : C     PP 6/97
  15 : C     Pierre Pegon/JRC Ispra
  16 : C----------------------------------------------------
  17 : C
  18 :       IMPLICIT INTEGER(I-N)
  19 : -INC CCOPTIO
  20 :       SEGMENT WORK
  21 :         REAL*8 XYC(2,NPTO)
  22 :         INTEGER IST(3,NPTO)
  23 :         REAL*8 DENS(NPTO)
  24 :         INTEGER JUN
  25 :       ENDSEGMENT
  26 :       LOGICAL LOK
  27 : C
  28 : C     ELIMINATION D'UNE INCONSISTANCE
  29 : C
  30 :       IF(IST(1,INOEUD).LT.0)THEN
  31 :         IRET=IRET+1
  32 :         WRITE(IOIMP,*)'J3BOCO: un point exterieur ou interieur ne peut'
  33 :         WRITE(IOIMP,*)'        pas etre sur un bord'
  34 :         RETURN
  35 :       ENDIF
  36 : C
  37 :       GOTO(1,2,3),IST(1,INOEUD)+1
  38 : C
  39 : C     CAS IST(1,INOEUD)=0; on ajoute le 1er bord
  40 : C
  41 :  1    CONTINUE
  42 :       IST(1,INOEUD)=1
  43 :       IST(2,INOEUD)=IBORD
  44 :       RETURN
  45 : C
  46 : C     CAS IST(1,INOEUD)=1; on ajoute eventuellement un second bord
  47 : C
  48 :  2    CONTINUE
  49 :       IF(IST(2,INOEUD).NE.IBORD)THEN
  50 :         IST(1,INOEUD)=2
  51 :         IST(3,INOEUD)=IBORD
  52 :       ENDIF
  53 :       RETURN
  54 : C
  55 : C     CAS IST(1,INOEUD)=2; s'il y a un 3eme bord ---> erreur
  56 : C
  57 :  3    CONTINUE
  58 :       LOK=(IST(2,INOEUD).EQ.IBORD).OR.(IST(3,INOEUD).EQ.IBORD)
  59 :       IF(.NOT.LOK)THEN
  60 :         IRET=IRET+1
  61 :         WRITE(IOIMP,*)'J3BOCO: un point ne peut pas etre sur 3 bords'
  62 :       ENDIF
  63 :       RETURN
  64 : C
  65 :       END
  66 :  
  67 :  

© Cast3M 2003 - All rights reserved.
Disclaimer