Download j3orie.eso

Back to the list

   1 : C J3ORIE    SOURCE    CHAT      05/01/13    00:47:14     5004           
   2 :       SUBROUTINE J3ORIE(IMOD,XYC,DENS,NPTO,IORI,TOL,IRET)
   3 : C----------------------------------------------------
   4 : C     ORINTATION DANS IORI SI IMOD=0
   5 : C     ORIENTATION SUIVANT IORI SI IMOD=1
   6 : C
   7 : C     PP 6/97,11/98
   8 : C     Pierre Pegon/JRC Ispra
   9 : C----------------------------------------------------
  10 :       IMPLICIT INTEGER(I-N)
  11 :       IMPLICIT REAL*8(A-H,O-Z)
  12 : -INC  CCOPTIO

  13 :       DIMENSION XYC(2,NPTO),DENS(NPTO),XY(2)
  14 : C
  15 : C     ON CHERCHE UN POINT A L'INTERIEUR DU CONTOURS
  16 : C
  17 :       IF (NPTO.EQ.3)THEN
  18 :         XY(1)=(XYC(1,1)+XYC(1,2)+XYC(1,3))/3
  19 :         XY(2)=(XYC(2,1)+XYC(2,2)+XYC(2,3))/3
  19 :         CALL J3INEX(XY,XYC,NPTO,TOL,ICOD,ISIGM,IRET)
  20 :         GOTO 1
  21 :       ENDIF
  22 : C
  23 :       DO IE1=1,NPTO
  24 :         I1=IE1-1+(1/IE1)*NPTO
  25 :         I2=IE1+1-(IE1/NPTO)*IE1
  26 :         XL1=SQRT((XYC(1,I1)-XYC(1,IE1))**2+(XYC(2,I1)-XYC(2,IE1))**2)
  27 :         XL2=SQRT((XYC(1,I2)-XYC(1,IE1))**2+(XYC(2,I2)-XYC(2,IE1))**2)
  28 :         DDD=((XYC(1,I1)-XYC(1,IE1))*(XYC(2,I2)-XYC(2,IE1))
  29 :      >      -(XYC(1,I2)-XYC(1,IE1))*(XYC(2,I1)-XYC(2,IE1)))/XL1/XL2
  30 :         IF(ABS(DDD).GT.10*TOL)THEN
  31 :           DO IE2=1,2
  32 :             XY(IE2)=(XYC(IE2,I1)+XYC(IE2,I2))/2
  33 :           ENDDO
  33 :           CALL J3INEX(XY,XYC,NPTO,TOL,ICOD,ISIGM,IRET)
  34 :           IF(ICOD.EQ.-1)GOTO 1
  35 :         ENDIF
  36 :       ENDDO
  37 :       IRET=IRET+1
  38 :       WRITE(IOIMP,*)'J3ORIE: PAS DE POINT A L"INTERIEUR DU CONTOURS'
  39 :       RETURN
  40 : C
  41 :  1    CONTINUE
  42 : C
  43 :       IF(IMOD.EQ.0)THEN
  44 :         IORI=ISIGM
  45 :         RETURN
  46 :       ENDIF
  47 : C
  48 : C     SI L'ORIENTATION EST NEGATIVE, ON LA CHANGE
  49 : C
  50 :       IF(ISIGM.NE.IORI)THEN
  51 :         DO IE1=1,NPTO/2
  52 :           I1=NPTO+1-IE1
  53 :           DO IE2=1,2
  54 :             XY(IE2)=XYC(IE2,IE1)
  55 :           ENDDO
  56 :           DENS1=DENS(IE1)
  57 :           DO IE2=1,2
  58 :             XYC(IE2,IE1)=XYC(IE2,I1)
  59 :           ENDDO
  60 :           DENS(IE1)=DENS(I1)
  61 :           DO IE2=1,2
  62 :             XYC(IE2,I1)=XY(IE2)
  63 :           ENDDO
  64 :           DENS(I1)=DENS1
  65 :         ENDDO
  66 :       ENDIF
  67 : C
  68 :       RETURN
  69 :       END
  70 :  
  71 :  

© Cast3M 2003 - All rights reserved.
Disclaimer