C VVECTP    SOURCE    GOUNAND   25/10/23    21:15:13     12385          
      SUBROUTINE VVECTP(S,N,NX,VALP,VECP,XPRE,V)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : VVECTP
C DESCRIPTION : Verifie qu'un vecteur VECP est bien un vecteur propre
C               de la matrice S pour la valeur propre VALP a XPRE pres
C               sinon erreur.
C
C
C LANGAGE     : ESOPE
C AUTEUR      : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA)
C               mel : gounand@semt2.smts.cea.fr
C***********************************************************************
C***********************************************************************
C SYNTAXE GIBIANE    :
C ENTREES            : X, NX, VALP, VECP, XPRE
C ENTREES/SORTIES    : V (espace de stockage de dimension nx)
C SORTIES            :
C***********************************************************************
C VERSION    : v1, 20/10/2025, version initiale
C HISTORIQUE : v1, 20/10/2025, creation
C HISTORIQUE :
C HISTORIQUE :
C***********************************************************************
-INC PPARAM
-INC CCOPTIO
*
      dimension s(nx,nx),vecp(nx)
*      logical ldbg
      dimension v(nx)
*
* Executable statements
*
      do i=1,n
         v(i)=0.d0
         do j=1,n
            if (i.eq.j) then
               v(i)=v(i)+(S(i,j)-valp)*vecp(j)
            else
               v(i)=v(i)+S(i,j)*vecp(j)
            endif
         enddo
      enddo
      do i=1,n
         if (abs(v(i)).gt.xpre) then
            write(6,*) '!!!! v(i) non nul,i=',i,v(i)
            write(6,*) '!!!! xpre=',xpre
            goto 9999
         endif
      enddo
*
* Normal termination
*
      RETURN
*
* Format handling
*
*
* Error handling
*
 9999 CONTINUE
      MOTERR(1:8)='VVECTP'
      call erreur(1127)
      RETURN
*
* End of subroutine VVECTP
*
      END
 
