ecl_kw.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2011 Equinor ASA, Norway.
3
4 The file 'ecl_kw.h' is part of ERT - Ensemble based Reservoir Tool.
5
6 ERT is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 ERT is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE.
14
15 See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
16 for more details.
17*/
18
19#ifndef ERT_ECL_KW_H
20#define ERT_ECL_KW_H
21#ifdef __cplusplus
22extern "C" {
23#endif
24#include <stdbool.h>
25#include <stdlib.h>
26#include <stdio.h>
27#include <limits.h>
28
29#include <ert/util/buffer.hpp>
31
32#include <ert/ecl/fortio.h>
33#include <ert/ecl/ecl_util.hpp>
34#include <ert/ecl/ecl_type.hpp>
35
37
38
39 typedef struct ecl_kw_struct ecl_kw_type;
40
41 typedef enum {
45
46/*
47 The size of an ecl_kw instance is denoted with an integer. The
48 choice of int to store the size obviously limits the maximum size to
49 INT_MAX elements. This choice is an historical mistake - it should
50 probably have been size_t; however the ecl_kw datastructure is
51 tightly bound to the on-disk binary format supplied by Eclipse, and
52 there the number of elements is stored as a signed(?) 32 bit
53 integer - so using int for size does make some sense-
54*/
55
56#define ECL_KW_MAX_SIZE INT_MAX
57
58/*
59 Character data in ECLIPSE files comes as an array of fixed-length
60 string. Each of these strings is 8 characters long. The type name,
61 i.e. 'REAL', 'INTE', ... , come as 4 character strings.
62*/
63#define ECL_KW_HEADER_DATA_SIZE ECL_STRING8_LENGTH + ECL_TYPE_LENGTH + 4
64#define ECL_KW_HEADER_FORTIO_SIZE ECL_KW_HEADER_DATA_SIZE + 8
65
66
67
68 int ecl_kw_first_different( const ecl_kw_type * kw1 , const ecl_kw_type * kw2 , int offset, double abs_epsilon , double rel_epsilon);
69 size_t ecl_kw_fortio_size( const ecl_kw_type * ecl_kw );
70 void * ecl_kw_get_ptr(const ecl_kw_type *ecl_kw);
71 void ecl_kw_set_data_ptr(ecl_kw_type * ecl_kw , void * data);
72 void ecl_kw_fwrite_data(const ecl_kw_type *_ecl_kw , fortio_type *fortio);
75 const char * ecl_kw_get_header8(const ecl_kw_type *);
76 const char * ecl_kw_get_header(const ecl_kw_type * ecl_kw );
79 void ecl_kw_set_header_name(ecl_kw_type * , const char * );
80 bool ecl_kw_fseek_kw(const char * , bool , bool , fortio_type *);
81 bool ecl_kw_fseek_last_kw(const char * , bool , fortio_type *);
82 void ecl_kw_inplace_update_file(const ecl_kw_type * , const char * , int ) ;
85 void ecl_kw_alloc_double_data(ecl_kw_type * ecl_kw , double * values);
86 void ecl_kw_alloc_float_data(ecl_kw_type * ecl_kw , float * values);
90 ecl_kw_type * ecl_kw_alloc_actnum(const ecl_kw_type * porv_kw, float porv_limit);
92 void ecl_kw_fread_indexed_data(fortio_type * fortio, offset_type data_offset, ecl_data_type, int element_count, const int_vector_type* index_map, char* buffer);
94 void ecl_kw_free__(void *);
96 ecl_kw_type * ecl_kw_alloc_sub_copy( const ecl_kw_type * src, const char * new_kw , int offset , int count);
97 const void * ecl_kw_copyc__(const void *);
98 ecl_kw_type * ecl_kw_alloc_slice_copy( const ecl_kw_type * src, int index1, int index2, int stride);
99 void ecl_kw_resize( ecl_kw_type * ecl_kw, int new_size);
100 //void * ecl_kw_get_data_ref(const ecl_kw_type *);
103 void ecl_kw_get_memcpy_data(const ecl_kw_type *, void *);
104 void ecl_kw_get_memcpy_float_data(const ecl_kw_type *ecl_kw , float *target);
105 void ecl_kw_get_memcpy_double_data(const ecl_kw_type *ecl_kw , double *target);
106 void ecl_kw_get_memcpy_int_data(const ecl_kw_type *ecl_kw , int *target);
107 void ecl_kw_set_memcpy_data(ecl_kw_type * , const void *);
109 void ecl_kw_iget(const ecl_kw_type *, int , void *);
110 void ecl_kw_iset(ecl_kw_type *ecl_kw , int i , const void *iptr);
111 void ecl_kw_iset_char_ptr( ecl_kw_type * ecl_kw , int index, const char * s);
112 void ecl_kw_iset_string8(ecl_kw_type * ecl_kw , int index , const char *s8);
113 void ecl_kw_iset_string_ptr(ecl_kw_type*, int, const char*);
114 const char * ecl_kw_iget_string_ptr(const ecl_kw_type *, int);
115 const char * ecl_kw_iget_char_ptr( const ecl_kw_type * ecl_kw , int i);
116 void * ecl_kw_iget_ptr(const ecl_kw_type *, int);
118 bool ecl_kw_ichar_eq(const ecl_kw_type *, int , const char *);
119 ecl_kw_type * ecl_kw_alloc( const char * header , int size , ecl_data_type );
120 ecl_kw_type * ecl_kw_alloc_new(const char * , int , ecl_data_type , const void * );
121 ecl_kw_type * ecl_kw_alloc_new_shared(const char * , int , ecl_data_type , void * );
123 void ecl_kw_fwrite_param(const char * , bool , const char * , ecl_data_type , int , void * );
124 void ecl_kw_fwrite_param_fortio(fortio_type *, const char * , ecl_data_type , int , void * );
125 void ecl_kw_summarize(const ecl_kw_type * ecl_kw);
126 void ecl_kw_fread_double_param(const char * , bool , double *);
127 float ecl_kw_iget_as_float(const ecl_kw_type * ecl_kw , int i);
128 double ecl_kw_iget_as_double(const ecl_kw_type * ecl_kw , int i);
129 void ecl_kw_get_data_as_double(const ecl_kw_type *, double *);
130 void ecl_kw_get_data_as_float(const ecl_kw_type * ecl_kw , float * float_data);
131 bool ecl_kw_name_equal( const ecl_kw_type * ecl_kw , const char * name);
132 bool ecl_kw_header_eq(const ecl_kw_type *ecl_kw1 , const ecl_kw_type * ecl_kw2);
133 bool ecl_kw_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2);
134 bool ecl_kw_size_and_type_equal( const ecl_kw_type *ecl_kw1 , const ecl_kw_type * ecl_kw2 );
135 bool ecl_kw_icmp_string( const ecl_kw_type * ecl_kw , int index, const char * other_string);
136 bool ecl_kw_numeric_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2 , double abs_diff , double rel_diff);
137 bool ecl_kw_block_equal( const ecl_kw_type * ecl_kw1 , const ecl_kw_type * ecl_kw2 , int cmp_elements);
138 bool ecl_kw_data_equal( const ecl_kw_type * ecl_kw , const void * data);
139 bool ecl_kw_content_equal( const ecl_kw_type * ecl_kw1 , const ecl_kw_type * ecl_kw2);
145 bool ecl_kw_inplace_safe_div(ecl_kw_type * target_kw, const ecl_kw_type * divisor);
147
148
150
151 int ecl_kw_element_sum_int( const ecl_kw_type * ecl_kw );
152 double ecl_kw_element_sum_float( const ecl_kw_type * ecl_kw );
154 void ecl_kw_element_sum(const ecl_kw_type * , void * );
155 void ecl_kw_element_sum_indexed(const ecl_kw_type * ecl_kw , const int_vector_type * index_list, void * _sum);
156 void ecl_kw_max_min(const ecl_kw_type * , void * , void *);
157 void * ecl_kw_get_void_ptr(const ecl_kw_type * ecl_kw);
158
161
162 void ecl_kw_fprintf_data( const ecl_kw_type * ecl_kw , const char * fmt , FILE * stream);
163 void ecl_kw_memcpy_data( ecl_kw_type * target , const ecl_kw_type * src);
164
166 bool ecl_kw_assert_binary( const ecl_kw_type * kw1, const ecl_kw_type * kw2);
167
168 void ecl_kw_scalar_set_bool( ecl_kw_type * ecl_kw , bool bool_value);
169 void ecl_kw_scalar_set__(ecl_kw_type * ecl_kw , const void * value);
171
172
173#define ECL_KW_SCALAR_SET_TYPED_HEADER( ctype ) void ecl_kw_scalar_set_ ## ctype( ecl_kw_type * ecl_kw , ctype value);
177#undef ECL_KW_SCALAR_SET_TYPED_HEADER
178
179 ecl_kw_type * ecl_kw_alloc_scatter_copy( const ecl_kw_type * src_kw , int target_size , const int * mapping, void * def_value);
180
181 void ecl_kw_inplace_add_squared(ecl_kw_type * target_kw, const ecl_kw_type * add_kw);
182 void ecl_kw_inplace_add( ecl_kw_type * target_kw , const ecl_kw_type * add_kw);
183 void ecl_kw_inplace_sub( ecl_kw_type * target_kw , const ecl_kw_type * sub_kw);
184 void ecl_kw_inplace_div( ecl_kw_type * target_kw , const ecl_kw_type * div_kw);
185 void ecl_kw_inplace_mul( ecl_kw_type * target_kw , const ecl_kw_type * mul_kw);
187
188 void ecl_kw_inplace_add_indexed( ecl_kw_type * target_kw , const int_vector_type * index_set , const ecl_kw_type * add_kw);
189 void ecl_kw_inplace_sub_indexed( ecl_kw_type * target_kw , const int_vector_type * index_set , const ecl_kw_type * sub_kw);
190 void ecl_kw_inplace_mul_indexed( ecl_kw_type * target_kw , const int_vector_type * index_set , const ecl_kw_type * mul_kw);
191 void ecl_kw_inplace_div_indexed( ecl_kw_type * target_kw , const int_vector_type * index_set , const ecl_kw_type * div_kw);
192 void ecl_kw_copy_indexed( ecl_kw_type * target_kw , const int_vector_type * index_set , const ecl_kw_type * src_kw);
193
194 bool ecl_kw_assert_binary_numeric( const ecl_kw_type * kw1, const ecl_kw_type * kw2);
195#define ECL_KW_ASSERT_TYPED_BINARY_OP_HEADER( ctype ) bool ecl_kw_assert_binary_ ## ctype( const ecl_kw_type * kw1 , const ecl_kw_type * kw2)
199#undef ECL_KW_ASSERT_TYPED_BINARY_OP_HEADER
200
201#define ECL_KW_SCALE_TYPED_HEADER( ctype ) void ecl_kw_scale_ ## ctype (ecl_kw_type * ecl_kw , ctype scale_factor)
205#undef ECL_KW_SCALE_TYPED_HEADER
206 void ecl_kw_scale_float_or_double( ecl_kw_type * ecl_kw , double scale_factor );
207
208
209#define ECL_KW_SHIFT_TYPED_HEADER( ctype ) void ecl_kw_shift_ ## ctype (ecl_kw_type * ecl_kw , ctype shift_factor)
213#undef ECL_KW_SHIFT_TYPED_HEADER
214 void ecl_kw_shift_float_or_double( ecl_kw_type * ecl_kw , double shift_value );
215
216
217#define ECL_KW_IGET_TYPED_HEADER(type) type ecl_kw_iget_ ## type(const ecl_kw_type * , int)
221#undef ECL_KW_IGET_TYPED_HEADER
222 bool ecl_kw_iget_bool( const ecl_kw_type * ecl_kw , int i );
223
224
225#define ECL_KW_ISET_TYPED_HEADER(type) void ecl_kw_iset_ ## type(ecl_kw_type * , int , type )
229#undef ECL_KW_ISET_TYPED_HEADER
230 void ecl_kw_iset_bool( ecl_kw_type * ecl_kw , int i , bool bool_value);
231
232
233#define ECL_KW_GET_TYPED_PTR_HEADER(type) type * ecl_kw_get_ ## type ## _ptr(const ecl_kw_type *)
238#undef ECL_KW_GET_TYPED_PTR_HEADER
239
240
241#define ECL_KW_SET_INDEXED_HEADER(ctype ) void ecl_kw_set_indexed_ ## ctype( ecl_kw_type * ecl_kw, const int_vector_type * index_list , ctype value)
245#undef ECL_KW_SET_INDEXED_HEADER
246
247
248#define ECL_KW_SHIFT_INDEXED_HEADER(ctype) void ecl_kw_shift_indexed_ ## ctype( ecl_kw_type * ecl_kw, const int_vector_type * index_list , ctype shift)
252#undef ECL_KW_SHIFT_INDEXED_HEADER
253
254
255#define ECL_KW_SCALE_INDEXED_HEADER(ctype) void ecl_kw_scale_indexed_ ## ctype( ecl_kw_type * ecl_kw, const int_vector_type * index_list , ctype scale)
259#undef ECL_KW_SCALE_INDEXED_HEADER
260
261
262#define ECL_KW_MAX_MIN_HEADER( ctype ) void ecl_kw_max_min_ ## ctype( const ecl_kw_type * ecl_kw , ctype * _max , ctype * _min)
266#undef ECL_KW_MAX_MIN_HEADER
267
268 void ecl_kw_fix_uninitialized(ecl_kw_type * ecl_kw , int nx , int ny , int nz, const int * actnum);
269
271
273
274#ifdef __cplusplus
275}
276#endif
277#endif
struct buffer_struct buffer_type
Definition: buffer.hpp:37
const char *const name
Definition: cJSON.h:258
int index
Definition: cJSON.h:168
int cJSON_bool fmt
Definition: cJSON.h:158
int count
Definition: cJSON.h:212
char * buffer
Definition: cJSON.h:161
void ecl_kw_free_data(ecl_kw_type *)
bool ecl_kw_assert_numeric(const ecl_kw_type *kw)
void ecl_kw_iget(const ecl_kw_type *, int, void *)
void ecl_kw_set_memcpy_data(ecl_kw_type *, const void *)
bool ecl_kw_ichar_eq(const ecl_kw_type *, int, const char *)
ecl_data_type ecl_kw_get_data_type(const ecl_kw_type *)
#define ECL_KW_ASSERT_TYPED_BINARY_OP_HEADER(ctype)
Definition: ecl_kw.hpp:195
void ecl_kw_fwrite_param_fortio(fortio_type *, const char *, ecl_data_type, int, void *)
void * ecl_kw_get_void_ptr(const ecl_kw_type *ecl_kw)
const char * ecl_kw_get_header8(const ecl_kw_type *)
void ecl_kw_inplace_sub_indexed(ecl_kw_type *target_kw, const int_vector_type *index_set, const ecl_kw_type *sub_kw)
void ecl_kw_summarize(const ecl_kw_type *ecl_kw)
void ecl_kw_fskip_header(fortio_type *fortio)
void ecl_kw_inplace_sub(ecl_kw_type *target_kw, const ecl_kw_type *sub_kw)
void ecl_kw_memcpy(ecl_kw_type *, const ecl_kw_type *)
bool ecl_kw_icmp_string(const ecl_kw_type *ecl_kw, int index, const char *other_string)
void ecl_kw_iset(ecl_kw_type *ecl_kw, int i, const void *iptr)
int ecl_kw_get_size(const ecl_kw_type *)
ecl_kw_type * ecl_kw_alloc_global_copy(const ecl_kw_type *src, const ecl_kw_type *actnum)
void ecl_kw_inplace_div_indexed(ecl_kw_type *target_kw, const int_vector_type *index_set, const ecl_kw_type *div_kw)
ecl_kw_type * ecl_kw_alloc_empty(void)
void ecl_kw_iset_string8(ecl_kw_type *ecl_kw, int index, const char *s8)
void ecl_kw_iset_bool(ecl_kw_type *ecl_kw, int i, bool bool_value)
#define ECL_KW_SCALE_TYPED_HEADER(ctype)
Definition: ecl_kw.hpp:201
bool ecl_kw_fskip_data(ecl_kw_type *ecl_kw, fortio_type *fortio)
void ecl_kw_scalar_set_bool(ecl_kw_type *ecl_kw, bool bool_value)
bool ecl_kw_size_and_numeric_type_equal(const ecl_kw_type *kw1, const ecl_kw_type *kw2)
void ecl_kw_iset_string_ptr(ecl_kw_type *, int, const char *)
void ecl_kw_fwrite_data(const ecl_kw_type *_ecl_kw, fortio_type *fortio)
ecl_kw_type * ecl_kw_alloc_actnum(const ecl_kw_type *porv_kw, float porv_limit)
bool ecl_kw_size_and_type_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2)
bool ecl_kw_block_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2, int cmp_elements)
size_t ecl_kw_fortio_size(const ecl_kw_type *ecl_kw)
void ecl_kw_iset_char_ptr(ecl_kw_type *ecl_kw, int index, const char *s)
bool ecl_kw_assert_binary(const ecl_kw_type *kw1, const ecl_kw_type *kw2)
ecl_kw_type * ecl_kw_fread_alloc(fortio_type *)
#define ECL_KW_IGET_TYPED_HEADER(type)
Definition: ecl_kw.hpp:217
void ecl_kw_set_data_ptr(ecl_kw_type *ecl_kw, void *data)
bool ecl_kw_fwrite(const ecl_kw_type *, fortio_type *)
#define ECL_KW_ISET_TYPED_HEADER(type)
Definition: ecl_kw.hpp:225
#define ECL_KW_MAX_MIN_HEADER(ctype)
Definition: ecl_kw.hpp:262
float ecl_kw_iget_as_float(const ecl_kw_type *ecl_kw, int i)
void ecl_kw_free__(void *)
void ecl_kw_inplace_mul(ecl_kw_type *target_kw, const ecl_kw_type *mul_kw)
#define ECL_KW_GET_TYPED_PTR_HEADER(type)
Definition: ecl_kw.hpp:233
void * ecl_kw_alloc_data_copy(const ecl_kw_type *)
#define ECL_KW_SHIFT_TYPED_HEADER(ctype)
Definition: ecl_kw.hpp:209
void ecl_kw_get_memcpy_data(const ecl_kw_type *, void *)
void ecl_kw_copy_indexed(ecl_kw_type *target_kw, const int_vector_type *index_set, const ecl_kw_type *src_kw)
bool ecl_kw_is_kw_file(fortio_type *fortio)
void ecl_kw_inplace_mul_indexed(ecl_kw_type *target_kw, const int_vector_type *index_set, const ecl_kw_type *mul_kw)
ecl_read_status_enum ecl_kw_fread_header(ecl_kw_type *, fortio_type *)
bool ecl_kw_inplace_safe_div(ecl_kw_type *target_kw, const ecl_kw_type *divisor)
void ecl_kw_get_data_as_double(const ecl_kw_type *, double *)
void ecl_kw_max_min(const ecl_kw_type *, void *, void *)
void ecl_kw_free(ecl_kw_type *)
void ecl_kw_fread_indexed_data(fortio_type *fortio, offset_type data_offset, ecl_data_type, int element_count, const int_vector_type *index_map, char *buffer)
bool ecl_kw_fread_data(ecl_kw_type *ecl_kw, fortio_type *fortio)
void ecl_kw_inplace_add_squared(ecl_kw_type *target_kw, const ecl_kw_type *add_kw)
void ecl_kw_get_data_as_float(const ecl_kw_type *ecl_kw, float *float_data)
void ecl_kw_get_memcpy_float_data(const ecl_kw_type *ecl_kw, float *target)
void ecl_kw_alloc_float_data(ecl_kw_type *ecl_kw, float *values)
#define ECL_KW_SHIFT_INDEXED_HEADER(ctype)
Definition: ecl_kw.hpp:248
bool ecl_kw_fseek_kw(const char *, bool, bool, fortio_type *)
int ecl_kw_first_different(const ecl_kw_type *kw1, const ecl_kw_type *kw2, int offset, double abs_epsilon, double rel_epsilon)
void ecl_kw_inplace_abs(ecl_kw_type *kw)
void ecl_kw_alloc_double_data(ecl_kw_type *ecl_kw, double *values)
UTIL_IS_INSTANCE_HEADER(ecl_kw)
void * ecl_kw_iget_ptr(const ecl_kw_type *, int)
void ecl_kw_resize(ecl_kw_type *ecl_kw, int new_size)
void ecl_kw_fprintf_data(const ecl_kw_type *ecl_kw, const char *fmt, FILE *stream)
void * ecl_kw_get_ptr(const ecl_kw_type *ecl_kw)
ecl_type_enum ecl_kw_get_type(const ecl_kw_type *)
void ecl_kw_element_sum_indexed(const ecl_kw_type *ecl_kw, const int_vector_type *index_list, void *_sum)
void ecl_kw_inplace_add(ecl_kw_type *target_kw, const ecl_kw_type *add_kw)
bool ecl_kw_content_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2)
void ecl_kw_fwrite_param(const char *, bool, const char *, ecl_data_type, int, void *)
int ecl_kw_element_sum_int(const ecl_kw_type *ecl_kw)
ecl_kw_type * ecl_kw_alloc_new(const char *, int, ecl_data_type, const void *)
void ecl_kw_fix_uninitialized(ecl_kw_type *ecl_kw, int nx, int ny, int nz, const int *actnum)
void ecl_kw_inplace_div(ecl_kw_type *target_kw, const ecl_kw_type *div_kw)
void ecl_kw_get_memcpy_double_data(const ecl_kw_type *ecl_kw, double *target)
void ecl_kw_inplace_sqrt(ecl_kw_type *kw)
#define ECL_KW_SCALAR_SET_TYPED_HEADER(ctype)
Definition: ecl_kw.hpp:173
bool ecl_kw_fseek_last_kw(const char *, bool, fortio_type *)
void ecl_kw_fskip(fortio_type *)
bool ecl_kw_numeric_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2, double abs_diff, double rel_diff)
bool ecl_kw_equal(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2)
#define ECL_KW_SCALE_INDEXED_HEADER(ctype)
Definition: ecl_kw.hpp:255
ecl_kw_type * ecl_kw_alloc_copy(const ecl_kw_type *)
bool ecl_kw_fread_realloc(ecl_kw_type *, fortio_type *)
bool ecl_kw_name_equal(const ecl_kw_type *ecl_kw, const char *name)
const char * ecl_kw_iget_string_ptr(const ecl_kw_type *, int)
void ecl_kw_inplace_update_file(const ecl_kw_type *, const char *, int)
void ecl_kw_fread_double_param(const char *, bool, double *)
ecl_kw_type * ecl_kw_alloc_sub_copy(const ecl_kw_type *src, const char *new_kw, int offset, int count)
double ecl_kw_element_sum_float(const ecl_kw_type *ecl_kw)
ecl_kw_type * ecl_kw_alloc_new_shared(const char *, int, ecl_data_type, void *)
double ecl_kw_iget_as_double(const ecl_kw_type *ecl_kw, int i)
void ecl_kw_inplace_add_indexed(ecl_kw_type *target_kw, const int_vector_type *index_set, const ecl_kw_type *add_kw)
void ecl_kw_shift_float_or_double(ecl_kw_type *ecl_kw, double shift_value)
void ecl_kw_inplace_inv(ecl_kw_type *my_kw)
ecl_kw_type * ecl_kw_alloc_slice_copy(const ecl_kw_type *src, int index1, int index2, int stride)
#define ECL_KW_SET_INDEXED_HEADER(ctype)
Definition: ecl_kw.hpp:241
ecl_kw_type * ecl_kw_alloc(const char *header, int size, ecl_data_type)
void ecl_kw_alloc_data(ecl_kw_type *)
struct ecl_kw_struct ecl_kw_type
Definition: ecl_kw.hpp:39
bool ecl_kw_header_eq(const ecl_kw_type *ecl_kw1, const ecl_kw_type *ecl_kw2)
ecl_kw_type * ecl_kw_alloc_scatter_copy(const ecl_kw_type *src_kw, int target_size, const int *mapping, void *def_value)
void ecl_kw_get_memcpy_int_data(const ecl_kw_type *ecl_kw, int *target)
const char * ecl_kw_iget_char_ptr(const ecl_kw_type *ecl_kw, int i)
bool ecl_kw_fread_realloc_data(ecl_kw_type *ecl_kw, fortio_type *fortio)
bool ecl_kw_assert_binary_numeric(const ecl_kw_type *kw1, const ecl_kw_type *kw2)
void ecl_kw_fread(ecl_kw_type *, fortio_type *)
void ecl_kw_scalar_set_float_or_double(ecl_kw_type *ecl_kw, double value)
ecl_kw_type * ecl_kw_buffer_alloc(buffer_type *buffer)
const char * ecl_kw_get_header(const ecl_kw_type *ecl_kw)
void ecl_kw_scale_float_or_double(ecl_kw_type *ecl_kw, double scale_factor)
void ecl_kw_memcpy_data(ecl_kw_type *target, const ecl_kw_type *src)
void ecl_kw_buffer_store(const ecl_kw_type *ecl_kw, buffer_type *buffer)
ecl_read_status_enum
Definition: ecl_kw.hpp:41
@ ECL_KW_READ_OK
Definition: ecl_kw.hpp:42
@ ECL_KW_READ_FAIL
Definition: ecl_kw.hpp:43
void ecl_kw_set_header_name(ecl_kw_type *, const char *)
const void * ecl_kw_copyc__(const void *)
void ecl_kw_scalar_set__(ecl_kw_type *ecl_kw, const void *value)
void ecl_kw_element_sum(const ecl_kw_type *, void *)
bool ecl_kw_iget_bool(const ecl_kw_type *ecl_kw, int i)
bool ecl_kw_fskip_data__(ecl_data_type, int, fortio_type *)
bool ecl_kw_data_equal(const ecl_kw_type *ecl_kw, const void *data)
ecl_type_enum
Definition: ecl_type.hpp:44
struct fortio_struct fortio_type
Definition: include/ert/ecl/fortio.h:42
T value(details::expression_node< T > *n)
Definition: exprtk.hpp:12955
static std::string data()
Definition: exprtk.hpp:40022
Definition: ecl_type.hpp:72
long offset_type
Definition: util.h:76