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