/* AITBR8.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"
#include <SysBase.h>
/* Table of constant values */

static integer c__504 = 504;

/* Subroutine */ __SysBase_API int maitbr8_(itaill, xtab, xval)
integer *itaill;
doublereal *xtab, *xval;
{
    /* Initialized data */

    static doublereal buff0[63] = { 0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
	    0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
	    0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
	    0.,0.,0.,0.,0. };

    /* System generated locals */
    integer i__1;

    /* Local variables */
    static integer i__;
    static doublereal buffx[63];
    static integer nbfois, noffst, nreste, nufois;
    extern /* Subroutine */ int mcrfill_();


/* < */
/* **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 : */
/*     ---------- */
/*       INITIALISATION A UNE VALEUR DONNEE D'UN TABLEAU DE REEL *8 */

/*     MOTS CLES : */
/*     ----------- */
/*       MANIPULATIONS, MEMOIRE, INITIALISATION, DOUBLE-PRECISION */

/*     ARGUMENTS D'ENTREE : */
/*     -------------------- */
/*        ITAILL : TAILLE DU TABLEAU */
/*        XTAB   : TABLEAU A INITIALISER AVEC XVAL */
/*        XVAL   : VALEUR A METTRE DANS XTAB(1 A ITAILL) */

/*     ARGUMENTS DE SORTIE : */
/*     --------------------- */
/*        XTAB   : TABLEAU INITIALISE */

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

/*     REFERENCES APPELEES : */
/*     --------------------- */

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

/*   ON APPELLE MCRFILL QUI FAIT DES MOVE PAR PAQUETS DE 63 REELS */

/*   LE PAQUET INITIAL EST BUFF0 INITE PAR DATA SI LA VALEUR EST 0 */
/*   OU BUFFX INITE PAR XVAL (BOUCLE) SINON . */


/*   PORTABILITE : OUI */
/*   ACCES : LIBRE */

/* $    HISTORIQUE DES MODIFICATIONS : */
/*     ------------------------------ */
/*     13-11-1991 : FCR ; VERFOR : Menage */
/*         06-05-91 : DGZ; MODIFICATION EN-TETE */
/*         05-07-88 : PP ; OPTIMISATION PAR POMPAGE SUR MVRMIRAZ */
/*         28-04-88 : PP ; CREATION */
/* > */
/* ***********************************************************************
 */


    /* Parameter adjustments */
    --xtab;

    /* Function Body */

/* ----------------------------------------------------------------------*
 */

    nbfois = *itaill / 63;
    noffst = nbfois * 63;
    nreste = *itaill - noffst;

    if (*xval == 0.) {
	if (nbfois >= 1) {
	    i__1 = nbfois;
	    for (nufois = 1; nufois <= i__1; ++nufois) {
		mcrfill_(&c__504, buff0, &xtab[(nufois - 1) * 63 + 1]);
/* L1000: */
	    }
	}

	if (nreste >= 1) {
	    i__1 = nreste << 3;
	    mcrfill_(&i__1, buff0, &xtab[noffst + 1]);
	}
    } else {
	for (i__ = 1; i__ <= 63; ++i__) {
	    buffx[i__ - 1] = *xval;
/* L2000: */
	}
	if (nbfois >= 1) {
	    i__1 = nbfois;
	    for (nufois = 1; nufois <= i__1; ++nufois) {
		mcrfill_(&c__504, buffx, &xtab[(nufois - 1) * 63 + 1]);
/* L3000: */
	    }
	}

	if (nreste >= 1) {
	    i__1 = nreste << 3;
	    mcrfill_(&i__1, buffx, &xtab[noffst + 1]);
	}
    }

/* ----------------------------------------------------------------------*
 */

    return 0;
} /* maitbr8_ */

