/* AGTLOG.f -- translated by f2c (version 19960827).
   You must link the resulting object file with the libraries:
	-lf2c -lm   (in that order)
*/

#include "Data_f2c.h"

/* Subroutine */ int magtlog_(cnmlog, chaine, long__, iercod, cnmlog_len, 
	chaine_len)
char *cnmlog, *chaine;
integer *long__, *iercod;
ftnlen cnmlog_len;
ftnlen chaine_len;
{
    /* Builtin functions */
    integer __i__len();
    /* Subroutine */ int __s__copy();

    /* Local variables */
    static char cbid[255];
    static integer ibid, ier;
    extern /* Subroutine */ int matrlog_();


/* < */
/* **NOTICE */
/*  THIS SOFTWARE IS THE PROPERTY OF CISIGRAPH. */
/*  THIS CODE MUST NOT BE DISTRIBUTED OR COPIED WITHOUT THE PRIOR */
/*  WRITTEN PERMISSION OF CISIGRAPH AND IS ONLY TO BE USED ON THE */
/*  SITE WHERE IT IS INSTALLED BY CISIGRAPH */
/* **NOTICE */

/* ********************************************************************** 
*/

/*     FONCTION : */
/*     ---------- */
/*        RENVOIE LA TRADUCTION D'UN "NOM LOGIQUE STRIM" DANS LA */
/*        "SYNTAXE INTERNE" CORRESPONDANT A UN "LIEU DE RANGEMENT" */

/*     MOTS CLES : */
/*     ----------- */
/*        NOM LOGIQUE STRIM , TRADUCTION */

/*     ARGUMENTS D'ENTREE : */
/*     ------------------ */
/*        CNMLOG : NOM DU "NOM LOGIQUE STRIM" A TRADUIRE */

/*     ARGUMENTS DE SORTIE : */
/*     ------------------- */
/*        CHAINE : ADRESSE DU "LIEU DE RANGEMENT" */
/*        LONG   : LONGUEUR UTILE DU "LIEU DE RANGEMENT" */
/*        IERCOD : CODE D'ERREUR */
/*        IERCOD = 0 : OK */
/*        IERCOD = 5 : LIEU DE RANGEMENT CORRESPONDANT AU NOM LOGIQUE */
/*                     INEXISTANT */
/*        IERCOD = 6 : TRADUCTION TROP LONGUE POUR LA VARIABLE 'CHAINE' */
/*        IERCOD = 7 : ERREUR SEVERE */

/*     COMMONS UTILISES   : */
/*     ---------------- */
/*        NEANT */

/*     REFERENCES APPELEES   : */
/*     ----------------------- */
/*        GNMLOG, MACHDIM */

/*     DESCRIPTION/REMARQUES/LIMITATIONS : */
/*     ----------------------------------- */

/*        ROUTINE SPECIFIQUE SGI */

/*        DANS TOUS LES CAS OU IERCOD EST >0,AUCUN RESULTAT N'EST RENVOYE 
*/

/*        NOTION DE "SYNTAXE UTILISATEUR' ET "SYNTAXE INTERNE" */
/*        --------------------------------------------------- */

/*       LA "SYNTAXE UTILISATEUR" EST LA SYNTAXE DANS LAQUELLE L'UTILISATE
UR*/
/*        VISUALISE OU DESIGNE UN NOM DE FICHIER OU LE NOM REPERTOIRE AU 
*/
/*        COURS D'UNE SESSION DE STRIM100 */

/*        LA "SYNTAXE INTERNE" EST LA SYNTAXE UTILISEE POUR EFFECTUER DES 
*/
/*        OPERATIONS DE TRAITEMENTS DE FICHIERS A L'INTERIEUR DU CODE */
/*        (OPEN,INQUIRE,...ETC) */

/* $    HISTORIQUE DES MODIFICATIONS   : */
/*     -------------------------------- */

/*    08-01-91 : B. Achispon ; Mise en forme et suppresion appel a MACHDIM
*/
/*     26-10-88 : C. Guinamard ; Adaptation UNIX  Traduction effective */
/*                               du nom logique */
/*     10-08-88 : DGZ ; CHANGE BNMLOG PAR MATRLOG */
/*     05-02-88 : DGZ ; MODIF D'ENTETE */
/*     26-08-87 : DGZ ; APPEL DE BNMLOG */
/*     25-08-87 : BJ  ; MODIF ENTETE */
/*     24-12-86 : DGZ ; CREATION VERSION ORIGINALE */

/* > */
/* ***********************************************************************
 */
/*              DECLARATIONS */
/* ***********************************************************************
 */


/* ***********************************************************************
 */
/*              TRAITEMENT */
/* ***********************************************************************
 */

    *long__ = 0;
    *iercod = 0;

/* CONTROLE DE L'EXISTENCE DU NOM LOGIQUE */

    matrlog_(cnmlog, cbid, &ibid, &ier, cnmlog_len, 255L);
    if (ier == 1) {
	goto L9500;
    }
    if (ier == 2) {
	goto L9700;
    }

/* CONTROLE DE LA LONGUEUR DE CHAINE */

    if (ibid > __i__len(chaine, chaine_len)) {
	goto L9600;
    }

    __s__copy(chaine, cbid, chaine_len, ibid);
    *long__ = ibid;

    goto L9999;

/* ***********************************************************************
 */
/*              TRAITEMENT DES ERREURS */
/* ***********************************************************************
 */

L9500:
    *iercod = 5;
    __s__copy(chaine, " ", chaine_len, 1L);
    goto L9999;

L9600:
    *iercod = 6;
    __s__copy(chaine, " ", chaine_len, 1L);
    goto L9999;

L9700:
    *iercod = 7;
    __s__copy(chaine, " ", chaine_len, 1L);

/* ***********************************************************************
 */
/*              RETOUR AU PROGRAMME APPELANT */
/* ***********************************************************************
 */

L9999:
    return 0;
} /* magtlog_ */

