Download pvect.eso

Back to the list

   1 : C PVECT     SOURCE    GOUNAND   11/10/07    21:16:13     7150           
   2 : C   CALCULE LE PRODUIT VECTORIEL DE (IDIM-1) VECTEURS
   3 : C
   4 :       SUBROUTINE PVECT
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT real*8 (a-h,o-z)
   7 : -INC CCOPTIO
   8 : -INC CCGEOME
   9 : -INC SMCOORD
  10 : C
  11 :       IF (IDIM.NE.2.AND.IDIM.NE.3) THEN
  12 : C  709 2
  13 : C Fonction indisponible en dimension %i1.
  14 :          INTERR(1)=IDIM
  14 :          CALL ERREUR(709)
  15 :          RETURN
  16 :       ENDIF
  17 : C
  17 :       CALL LIROBJ('POINT ',IP1,0,IRETOU)
  18 :       IF(IRETOU.EQ.0) GO TO 30
  19 : C
  20 : C     CAS DES VECTEURS
  21 : C
  22 :       SEGACT MCOORD
  23 :       IREF1=(IDIM+1)*(IP1-1)
  24 :       X1=XCOOR(IREF1+1)
  25 :       Y1=XCOOR(IREF1+2)
  26 :       IF (IDIM.EQ.3) GOTO 10
  27 :       NBPTS=XCOOR(/1)/3+1
  28 :       SEGADJ MCOORD
  29 :       XCOOR((NBPTS-1)*3+1)=-Y1
  30 :       XCOOR((NBPTS-1)*3+2)=X1
  31 :       XCOOR((NBPTS-1)*3+3)=DENSIT
  32 :       GOTO 20
  32 :   10  CALL LIROBJ('POINT ',IP2,1,IRETOU)
  33 :       IF (IERR.NE.0) RETURN
  34 :       IREF2=(IDIM+1)*(IP2-1)
  35 :       Z1=XCOOR(IREF1+3)
  36 :       X2=XCOOR(IREF2+1)
  37 :       Y2=XCOOR(IREF2+2)
  38 :       Z2=XCOOR(IREF2+3)
  39 :       NBPTS=XCOOR(/1)/4+1
  40 :       SEGADJ MCOORD
  41 :       XCOOR((NBPTS-1)*4+1)=Y1*Z2-Z1*Y2
  42 :       XCOOR((NBPTS-1)*4+2)=Z1*X2-X1*Z2
  43 :       XCOOR((NBPTS-1)*4+3)=X1*Y2-Y1*X2
  44 :       XCOOR((NBPTS-1)*4+4)=DENSIT
  45 :   20  CONTINUE
  46 :       IR=NBPTS
  46 :       CALL ECROBJ('POINT ',IR)
  47 :       RETURN
  48 : C
  49 : C     CAS DES CHPOINTS
  50 : C
  51 :  30   CONTINUE
  51 :       CALL LIROBJ('CHPOINT ',MCHPO1,1,IRETOU)
  52 :       IF (IERR.NE.0) RETURN
  52 :       CALL LIROBJ('LISTMOTS',MLMOT1,1,IRETOU)
  53 :       IF (IERR.NE.0) RETURN
  54 :       IF (IDIM.EQ.3) THEN
  54 :          CALL LIROBJ('CHPOINT ',MCHPO2,1,IRETOU)
  55 :          IF (IERR.NE.0) RETURN
  55 :          CALL LIROBJ('LISTMOTS',MLMOT2,1,IRETOU)
  56 :          IF (IERR.NE.0) RETURN
  57 :       ENDIF
  57 :       CALL LIROBJ('LISTMOTS',MLMOT3,1,IRETOU)
  58 :       IF (IERR.NE.0) RETURN
  58 :       CALL PROVCC(MCHPO1,MCHPO2,MLMOT1,MLMOT2,MLMOT3,MCHPO3)
  59 :       IF (IERR.NE.0) RETURN
  59 :       CALL ECROBJ('CHPOINT ',MCHPO3)
  60 :       RETURN
  61 :       END
  62 : 
  63 : 
  64 : 
  65 : 
  66 : 
  67 : 
  68 : 
  69 : 
  70 : 
  71 : 
  72 :  

© Cast3M 2003 - All rights reserved.
Disclaimer