C VALPR1    SOURCE    CHAT      05/01/13    04:00:58     5004
      SUBROUTINE VALPR1 (IPDIAG,IPSOUS,NBITER,PRECI1,PRECI2,IPVALP)
************************************************************************
*
*                             V A L P R 1
*                             -----------
*
* FONCTION:
* ---------
*
*     VOIR LE SOUS-PROGRAMME "VALPRO".
*
* MODE D'APPEL:
* -------------
*
*     CALL VALPR1 (IPDIAG,IPSOUS,NBITER,PRECI1,PRECI2,IPVALP)
*
* PARAMETRES:   (E)=ENTREE   (S)=SORTIE
* -----------
*
*     IPDIAG  ENTIER    (E)  POINTEUR SUR LE 'LISTREEL' REPRESENTANT LA
*                            LA DIAGONALE DE LA MATRICE TRIDIAGONALE.
*     IPSOUS  ENTIER    (E)  POINTEUR SUR LE 'LISTREEL' REPRESENTANT LA
*                            SOUS-DIAGONALE DE LA MATRICE TRIDIAGONALE.
*     NBITER  ENTIER    (E)  NOMBRE MAXIMAL D'ITERATIONS PERMISES.
*                       (S)  VALEUR DE REMPLACEMENT FOURNIE SI "NBITER"
*                            NON DONNE EN ENTREE.
*     PRECI1  REEL DP   (E)  PRECISION ABSOLUE DE CONVERGENCE.
*                       (S)  VALEUR DE REMPLACEMENT FOURNIE SI NI
*                            "PRECI1", NI "PRECI2", N'ONT ETE DONNES EN
*                            ENTREE.
*     PRECI2  REEL DP   (E)  PRECISION RELATIVE DE CONVERGENCE.
*                       (S)  VALEUR DE REMPLACEMENT FOURNIE SI NI
*                            "PRECI1", NI "PRECI2", N'ONT ETE DONNES EN
*                            ENTREE.
*     IPVALP  ENTIER    (S)  POINTEUR SUR LE 'LISTREEL' CONTENANT LES
*                            VALEURS PROPRES, DANS L'ORDRE DE CALCUL.
*
* SOUS-PROGRAMMES APPELES:
* ------------------------
*
*     VALPR2
*
* AUTEUR, DATE DE CREATION:
* -------------------------
*
*     PASCAL MANIGOT     27 FEVRIER 1985
*
* LANGAGE:
* --------
*
*     ESOPE + FORTRAN77
*
************************************************************************
*
      IMPLICIT INTEGER(I-N)

-INC PPARAM
-INC CCOPTIO
-INC SMLREEL
*
      REAL*8 PRECI1,PRECI2
*
      PARAMETER (NBRITE = 50)
      REAL*8 PREC1,PREC2
      PARAMETER (PREC1 = 1.D-30 , PREC2 = 0.D0)
*
      IF (NBITER .LE. 0) THEN
         NBITER = NBRITE
      END IF
      IF (PRECI1 .LE. 0.D0 .AND. PRECI2 .LE. 0.D0) THEN
         PRECI1 = PREC1
         PRECI2 = PREC2
      END IF
*
      IF (IIMPI .EQ. 732) THEN
         WRITE (IOIMP,2000) NBITER,PRECI1,PRECI2
 2000    FORMAT (//' LE CALCUL DE VALEURS PROPRES VA ETRE FAIT AVEC ',
     &         ' UN NOMBRE MAXI D''ITERATIONS DE ',I3,', '/
     &         ' UNE PRECISION ABSOLUE DE ',1PE10.3,' ET UNE ',
     &         'PRECISION RELATIVE DE ',1PE10.3,' .'//)
      END IF
*
      MLREEL = IPDIAG
      MLREE1 = IPSOUS
      SEGINI,MLREE2=MLREEL
      IPVALP = MLREE2
      SEGINI,MLREE3=MLREE1
*
      NTERME = MLREE2.PROG(/1)
*
      CALL VALPR2 (MLREE2.PROG,NTERME,MLREE3.PROG,NBITER,PRECI1,PRECI2)
      IF (IERR .NE. 0) RETURN
*
      IF (IIMPI .EQ. 732) THEN
         WRITE (IOIMP,2010) (MLREE3.PROG(I),I=1,(NTERME-1))
 2010    FORMAT (//' TERMES DE LA SOUS-DIAGONALE APRES CONVERGENCE:'//
     &          10(2X,1PE10.3))
      END IF
*
      SEGSUP,MLREE3
      SEGDES,MLREE2
*
      END

