C PERPEN    SOURCE    JB251061  22/04/01    21:16:01     11327          
      SUBROUTINE PERPEN(entree, sortie)
C ====================================================================
C Sous-programme PERPEN : calcul d'un vecteur unitaire perpendiculaire
C                         au vecteur fourni en entree en dimension 3
C ====================================================================

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)

-INC PPARAM
-INC CCOPTIO
-INC CCREEL

      real*8 entree(3), sortie(3), axe(3), essai(3),
     $        norme_max, norme_essai

C     On construit une direction perpendiculaire par produit
C     vectoriel avec la meilleure des 3 directions (1 0 0),
C     (0 1 0) et (0 0 1)
      norme_max = 0.D0
      axe = 0.D0
      do i=1,3
        axe(i) = 1.D0
        call provec(entree, axe, essai)
        call norme(essai, norme_essai)
        norme_essai = norme_essai + xpetit
        if(norme_essai.gt.norme_max) then
          sortie = essai
          norme_max = norme_essai
        endif
        axe(i) = 0.D0
      enddo
      call normer(sortie)

      END
 
