/*
   Copyright (C) 2011  Statoil ASA, Norway. 
    
   The file 'ecl_kw_grdecl.h' is part of ERT - Ensemble based Reservoir Tool. 
    
   ERT 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 3 of the License, or 
   (at your option) any later version. 
    
   ERT 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 at <http://www.gnu.org/licenses/gpl.html> 
   for more details. 
*/

/*
 This header does not define datatypes; just a couple of functions. It should
 be included from the ecl_kw.h header, so applications do not need to include this
 header explicitly.
*/

#ifndef __ECL_KW_GRDECL_H__
#define __ECL_KW_GRDECL_H__
#ifdef __cplusplus
extern "C" {
#endif


  
  bool            ecl_kw_grdecl_fseek_kw(const char *  , bool  , FILE * );
  
  ecl_kw_type  *  ecl_kw_fscanf_alloc_grdecl_dynamic__( FILE * stream , const char * kw , bool strict , ecl_type_enum ecl_type);
  ecl_kw_type  *  ecl_kw_fscanf_alloc_grdecl_dynamic( FILE * stream , const char * kw , ecl_type_enum ecl_type);
  
  ecl_kw_type  *  ecl_kw_fscanf_alloc_grdecl_data__(FILE * stream , bool strict , int size, ecl_type_enum ecl_type );
  ecl_kw_type  *  ecl_kw_fscanf_alloc_grdecl_data(  FILE * stream , int size , ecl_type_enum ecl_type);
  
  ecl_kw_type  *  ecl_kw_fscanf_alloc_grdecl__(FILE * stream, const char * kw , bool strict , int size, ecl_type_enum ecl_type);
  ecl_kw_type  *  ecl_kw_fscanf_alloc_grdecl(FILE * stream , const char * kw, int size, ecl_type_enum ecl_type);

  ecl_kw_type  * ecl_kw_fscanf_alloc_current_grdecl__( FILE * stream , bool strict , ecl_type_enum ecl_type);
  ecl_kw_type  * ecl_kw_fscanf_alloc_current_grdecl( FILE * stream , ecl_type_enum ecl_type);
  
  bool           ecl_kw_grdecl_fseek_next_kw( FILE * stream );
  char         * ecl_kw_grdecl_alloc_next_header( FILE * stream );
  
  void           ecl_kw_fprintf_grdecl(const ecl_kw_type * ecl_kw , FILE * stream);
  void           ecl_kw_fprintf_grdecl__(const ecl_kw_type * ecl_kw , const char * special_header , FILE * stream);

#ifdef __cplusplus
}
#endif
#endif

