norma.f 2.34 KB
      subroutine norma (vecx,vecy,vecz,xnorm,ynorm,znorm,ier)
c*
c***********************************************************************
c*
c*          "Copyright [c] CNES 98 - tous droits reserves"
c*          **********************************************
c*
c*PRO MAGLIB
c*
c*VER 99.03.31 - V 1.0
c*VER 01.06.05 - V 2.0
c*VER 03.01.06 - V 2.1
c*
c*AUT spec. CNES - JC KOSIK - juin 1995
c*AUT port. CISI 
c*
c*ROL Theme : Calculs mathematiques
c*ROL         Normalisation d'un vecteur
c*
c*PAR vecx  (I) : composante en x du vecteur
c*PAR vecy  (I) : composante en y du vecteur
c*PAR vecz  (I) : composante en z du vecteur
c*
c*PAR xnorm (O) : composante en x du vecteur norme
c*PAR ynorm (O) : composante en y du vecteur norme
c*PAR znorm (O) : composante en z du vecteur norme
c*
c*PAR ier   (O) : code de retour
c*
c*NOT ier       : sans objet
c*
c*INF utilise   : sans objet
c*
c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP
c*HST version 2.0 - 01.06.05 - correction de commentaires de code
c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77
c*
c***********************************************************************
c*
      implicit none
c
c     ---------------------------------
c*FON Declaration identificateur rcs_id
c     ---------------------------------
c
      character rcs_id*100
c
c     --------------------------
c*FON Declaration des parametres
c     --------------------------
c
      double precision vecx,vecy,vecz
      double precision xnorm,ynorm,znorm
      integer ier 
c
c     ---------------------------------
c*FON Declaration des variables locales
c     ---------------------------------
c
      double precision vecx2,vecy2,vecz2
c*LOC vecx2,vecy2,vecz2 : respectivement vecx,vecy,vecz au carre
c
      double precision vernor  
c*LOC vernor : norme du vecteur
c
      SAVE
c
c     ---------------------------------
c*FON Affectation identificateur rcs_id
c     ---------------------------------
c
      data rcs_id /"
     >$Id$"/
c
c     ******************
c     Debut de programme
c     ******************
c
      ier = 0
c
      vecx2 = vecx * vecx
      vecy2 = vecy * vecy
      vecz2 = vecz * vecz
c
      vernor = sqrt(vecx2 + vecy2 + vecz2)
c
      xnorm = vecx / vernor
      ynorm = vecy / vernor
      znorm = vecz / vernor
c
c     ****************
c     Fin de programme
c     ****************
c
      return
      end