Télécharger j3boco.eso

Retour à la liste

Numérotation des lignes :

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

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