/*============================================================================
*
*                    Code_Saturne version 1.3
*                    ------------------------
*
*
*     This file is part of the Code_Saturne Kernel, element of the
*     Code_Saturne CFD tool.
*
*     Copyright (C) 1998-2007 EDF S.A., France
*
*     contact: saturne-support@edf.fr
*
*     The Code_Saturne Kernel is free software; you can redistribute it
*     and/or modify it under the terms of the GNU General Public License
*     as published by the Free Software Foundation; either version 2 of
*     the License, or (at your option) any later version.
*
*     The Code_Saturne Kernel is distributed in the hope that it will be
*     useful, but WITHOUT ANY WARRANTY; without even the implied warranty
*     of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*     GNU General Public License for more details.
*
*     You should have received a copy of the GNU General Public License
*     along with the Code_Saturne Kernel; if not, write to the
*     Free Software Foundation, Inc.,
*     51 Franklin St, Fifth Floor,
*     Boston, MA  02110-1301  USA
*
*============================================================================*/

#ifndef __CS_LAGRANG_H__
#define __CS_LAGRANG_H__

/*============================================================================
 * Fonctions utilitaires pour le module diphasique Lagrangien
 *============================================================================*/

/*----------------------------------------------------------------------------
 *  Fichiers `include' librairie standard C
 *----------------------------------------------------------------------------*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/*----------------------------------------------------------------------------
 *  Fichiers `include' locaux
 *----------------------------------------------------------------------------*/

#include "cs_base.h"
#include "cs_msg.h"


#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/*============================================================================
 * Prototypes de fonctions publiques
 *============================================================================*/


/*----------------------------------------------------------------------------
 * Vérification que la norme IEEE 754 est respectée par l'architecture.
 * Dans le cas contraire la trajectographie des particules du module
 * Lagrangien est suceptible de ne pas fonctionner correctement.
 *----------------------------------------------------------------------------*/

void CS_PROCF (csieee,CSIEEE)
(
 void
);


/*----------------------------------------------------------------------------
 * Verification de la position relative de deux points, on cherche a savoir
 * s'ils sont confondus ou non.
 *----------------------------------------------------------------------------*/

void CS_PROCF (coloca,COLOCA)
(
  cs_real_t * pvalmax ,
  cs_real_t * px  , cs_real_t * py  , cs_real_t * pz  ,
  cs_real_t * qx  , cs_real_t * qy  , cs_real_t * qz  ,
  cs_int_t  * sign
);


/*----------------------------------------------------------------------------
 * Recherche d'orientation des triedres pour le reperage des particules
 * par rapport aux faces
 *----------------------------------------------------------------------------*/

void CS_PROCF (coturn,COTURN)
(
  cs_real_t * pvalmax ,
  cs_real_t * px    , cs_real_t * py    , cs_real_t * pz    ,
  cs_real_t * qx    , cs_real_t * qy    , cs_real_t * qz    ,
  cs_real_t * cdgx  , cs_real_t * cdgy  , cs_real_t * cdgz  ,
  cs_real_t * crdx  , cs_real_t * crdy  , cs_real_t * crdz  ,
  cs_int_t  * sign  , cs_int_t  * pturb
) ;

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __CS_LAGRANG_H__ */
