      SUBROUTINE FAINOC ( KRANG )
#include "facom0.h"
C****
C        Ce sous-programme permet d'INterpreter, pour un fichier ARPEGE
C     ouvert, les Options par defaut (-1) du Codage GRIB des champs:
C     NBFPDG(KRANG), NBFCSP(KRANG), NSTROF(KRANG), NPUFLA(KRANG).
C     Cette routine doit etre appelee par FAITOU ou FANOUV ou FAGOTE
C     pour ne pas laisser le defaut -1 lors du decodage ou du codage
C     GRIB.
C
C**
C     Arguments : KRANG  (Entree) ==> Rang de l'unite logique;
C
C
#include "precision.h"
C
#include "facomp.h"
#include "facom1.h"
C
      INTEGER KRANG
C
      INTEGER IRANGC, ITRONC, INBITS, ITYPTR, IAUXIL, IREP, INIMES
      INTEGER INUMER
C
      LOGICAL LLVERF, LLMLAM
C
#include "facom2.h"
C**
C     1.  -  INITIALISATIONS PREALABLES.
C-----------------------------------------------------------------------
C
      LLVERF=.FALSE.
C
C         Verrouillage eventuel du fichier.
C
      IF (LFAMUL) CALL LFIVER (VRFICH(KRANG),'ON')
      LLVERF=LFAMUL
C
      IRANGC=NUCADR(KRANG)
      LLMLAM=LIMLAM(IRANGC)
      ITRONC=MTRONC(IRANGC)
      ITYPTR=NTYPTR(IRANGC)
C
C**
C     2.  -  INTERPRETATION DES OPTIONS PAR DEFAUT.
C-----------------------------------------------------------------------
C
C On distingue le cas ARPEGE du cas ALADIN (LLMLAM=.T.).
C
C
C Evaluation du nombre de bits par valeur point-de-grille
C
      IF (NBFPDG(KRANG).LT.0) THEN
        IF (LLMLAM) THEN
          NBFPDG(KRANG)=16
        ELSE
          NBFPDG(KRANG)=16
        ENDIF
      ENDIF
C
C Evaluation du nombre de bits par partie reelle/imagin. de coeff. spectral
C
      IF (NBFCSP(KRANG).LT.0) THEN
        IF (LLMLAM) THEN
          NBFCSP(KRANG)=18
        ELSE
          NBFCSP(KRANG)=16
        ENDIF
      ENDIF
C
C Evaluation de la sous-troncature non compactee
C
      IF (NSTROF(KRANG).LT.0) THEN
        INBITS=NBFCSP(KRANG)
        IF (LLMLAM) THEN
          IAUXIL=MAX ( ITRONC, -ITYPTR )
          IAUXIL=MAX ( 10, ((1+IAUXIL)*25)/(10*INBITS), (1+IAUXIL)/10 )
          IAUXIL=MIN ( IAUXIL, ITRONC-1, -ITYPTR-1 )
          NSTROF(KRANG)=IAUXIL
        ELSE
          IAUXIL=MAX ( 10, 480/INBITS-10, (1+ITRONC)/10 )
          IAUXIL=MIN ( IAUXIL, ITRONC-1 )
          NSTROF(KRANG)=IAUXIL
        ENDIF
      ENDIF
C
C Evaluation de la puissance de laplacien
C
      IF (NPUFLA(KRANG).LT.0) THEN
        IF (LLMLAM) THEN
          NPUFLA(KRANG)=2
        ELSE
          NPUFLA(KRANG)=1
        ENDIF
      ENDIF
C**
C    10.  -  PHASE TERMINALE : MESSAGERIE,
C            VIA LE SOUS-PROGRAMME "FAIPAR" .
C-----------------------------------------------------------------------
C
 1001 CONTINUE
C
C        Deverrouillage eventuel du fichier.
C
      IF (LLVERF) CALL LFIVER (VRFICH(KRANG),'OFF')
C
      IF (IXNVMS(KRANG).NE.2) RETURN
C
      INUMER=JPNIIL
      INIMES=IXNVMS (KRANG)
      IREP=0
      CLNSPR='FAINOC'
      WRITE (UNIT=CLMESS,FMT='(''KRANG='',I4)') KRANG
      CALL FAIPAR (INUMER,INIMES,IREP,.FALSE.,CLMESS,CLNSPR,
     S               ' ',.FALSE.)
C
      RETURN
      END
