      SUBROUTINE LFIREC ( KRGPIF, KRANG, KREC )
#include "lficomt.h"
C****
C        SOUS-PROGRAMME *INTERNE* DU LOGICIEL DE FICHIERS INDEXES LFI
C     DETERMINATION DU NUMERO D'ENREGISTREMENT D'UNE PAIRE D'ARTICLES
C     D'INDEX ( NUMERO DE L'ARTICLE "NOMS", EN FAIT ) .
C**
C    ARGUMENTS : KRGPIF (ENTREE) ==> RANG DE LA P.P.I. DANS LE FICHIER;
C                KRANG  (ENTREE) ==> RANG DE L'UNITE DANS NUMERO.
C                KREC   (SORTIE) ==> NUMERO D'ENREGISTREMENT DE LA P.A.I
C
#include "lficom0.h"
#ifndef f77
#include "precision.h"
#endif
#include "lficom1.h"
C
      INTEGER KRGPIF, KRANG, KREC, INBPIR, INBALO, IFACTM, INALPP
      INTEGER ILARPH, INTPPI, IREP, INIMES, INUMER
C
#include "lficom2.h"
C
      INBPIR=MDES1D(IXM(JPNPIR,KRANG))
      INBALO=MDES1D(IXM(JPNALO,KRANG))
      IFACTM=MFACTM(KRANG)
      INALPP=JPNAPP*IFACTM
      ILARPH=JPLARD*IFACTM
      INTPPI=(INBALO-1+INALPP)/INALPP
C
      IF (KRGPIF.LE.INBPIR) THEN
        KREC=2*KRGPIF
      ELSEIF (KRGPIF.LE.INTPPI) THEN
C
C     CAS OU LES ARTICLES D'INDEX "RESERVES" A LA CREATION DU FICHIER
C     N'ONT PAS SUFFI A STOCKER TOUS LES DESCRIPTEURS D'ARTICLES LOGI-
C     QUES: L'EMPLACEMENT DES PAIRES D'ARTICLES D'INDEX EXCEDENTAIRES
C     EST ALORS STOCKE DANS L'ARTICLE DOCUMENTAIRE, APRES LES VALEURS
C     "UTILES" (JPLDOC MOTS), EN COMMENCANT PAR LA FIN DE CET ARTICLE.
C       ( CECI POUR MENAGER UNE EVENTUELLE AUGMENTATION DE *JPLDOC*,
C         EN CAS D'EVOLUTION DU LOGICIEL )
C
        KREC=MDES1D(IXM(ILARPH+1-(KRGPIF-INBPIR),KRANG))
      ELSE
C
C          CAS OU IL Y A INCOHERENCE ENTRE TABLES ET ARGUMENTS D'APPEL
C
        KREC=0
        IREP=-16
C
C        MESSAGERIE EVENTUELLE, AVEC ABORT SI NECESSAIRE .
C
        LLFATA=LLMOER (IREP,KRANG)
C
        IF (LLFATA.OR.NIMESG.NE.0) THEN
          INIMES=2
          CLNSPR='LFIREC'
          INUMER=NUMERO(KRANG)
C
          IF (LFRANC) THEN
            WRITE (UNIT=CLMESS,FMT='(''KRGPIF='',I4,'', KRANG='',I3,
     S             '', KREC='',I6,'', CODE "INTERNE"='',I4)')
     S        KRGPIF,KRANG,KREC,IREP
          ELSE
            WRITE (UNIT=CLMESS,FMT='(''KRGPIF='',I4,'', KRANG='',I3,
     S             '', KREC='',I6,'', "INTERNAL" CODE='',I4)')
     S        KRGPIF,KRANG,KREC,IREP
          ENDIF
C
          CALL LFIEMS (INUMER,INIMES,IREP,LLFATA,CLMESS,CLNSPR,CLACTI)
        ENDIF
C
      ENDIF
C
      RETURN
      END
