/*============================================================================
*
* 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_OPTS_H__
#define __CS_OPTS_H__
/*============================================================================
* Parsing of program arguments and associated initializations
*============================================================================*/
/*----------------------------------------------------------------------------
* Local headers
*----------------------------------------------------------------------------*/
#include "cs_base.h"
/*----------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#if 0
} /* Fake brace to force back Emacs auto-indentation back to column 0 */
#endif
#endif /* __cplusplus */
/*============================================================================
* Macro definitions
*============================================================================*/
/*============================================================================
* Type definitions
*============================================================================*/
/*----------------------------------------------------------------------------
* Code_Saturne base options structure
*----------------------------------------------------------------------------*/
typedef struct {
/* Communication with "Enveloppe" (pre-processor) */
cs_int_t ifoenv; /* 0 if not using Envelope, 1 otherwise */
cs_int_t echo_comm; /* Communication verbosity */
cs_comm_type_t comm_type; /* Communication type (if ifoenv > 0) */
/* Total sizes for work arrays */
cs_int_t longia; /* Size of integer work arrays */
cs_int_t longra; /* Size of floating point work arrays */
/* Redirection of standard output */
cs_int_t ilisr0; /* Redirection for rank 0
(0: not redirected;
1: redirected to "listing" file) */
cs_int_t ilisrp; /* Redirection for ranks > 0
(0: not redirected;
1: redirected to "listing_n*" file;
2: redirected to "/dev/null", suppressed) */
/* Other options */
cs_int_t iverif; /* Mesh quality verification modes
(-1 for standard mode) */
} cs_opts_t;
/*=============================================================================
* Public function prototypes
*============================================================================*/
/*----------------------------------------------------------------------------
* Print logfile header
*
* parameters:
* argc --> number of command line arguments
* argv --> array of command line arguments
*----------------------------------------------------------------------------*/
void
cs_opts_logfile_head(int argc,
char *argv[]);
/*----------------------------------------------------------------------------
* First analysis of the command line to determine if we require MPI
*
* parameters:
* argc <-> number of command line arguments
* argv <-> array of command line arguments
*
* returns:
* -1 if MPI is not needed, or rank in MPI_COMM_WORLD of the first
* process associated with this instance of Code_Saturne
*----------------------------------------------------------------------------*/
int
cs_opts_mpi_rank(int * argc,
char **argv[]);
/*----------------------------------------------------------------------------
* Define options and call some associated initializations
* based on command line arguments
*
* parameters:
* argc --> number of command line arguments
* argv --> array of command line arguments
* opts <-- options structure
*----------------------------------------------------------------------------*/
void
cs_opts_define(int argc,
char *argv[],
cs_opts_t *opts);
/*----------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __CS_OPTS_H__ */
syntax highlighted by Code2HTML, v. 0.9.1