static void ecl_file_kw_assert_kw( const ecl_file_kw_type * file_kw ) { if(!ecl_type_is_equal( ecl_file_kw_get_data_type(file_kw), ecl_kw_get_data_type(file_kw->kw) )) util_abort("%s: type mismatch between header and file.\n",__func__); if (file_kw->kw_size != ecl_kw_get_size( file_kw->kw )) util_abort("%s: size mismatch between header and file.\n",__func__); if (strcmp( file_kw->header , ecl_kw_get_header( file_kw->kw )) != 0 ) util_abort("%s: name mismatch between header and file.\n",__func__); }
bool ecl_file_kw_equal( const ecl_file_kw_type * kw1 , const ecl_file_kw_type * kw2) { if (kw1->file_offset != kw2->file_offset) return false; if (kw1->kw_size != kw2->kw_size) return false; if (!ecl_type_is_equal( kw1->data_type, kw2->data_type)) return false; return util_string_equal( kw1->header , kw2->header ); }
void ecl_file_kw_replace_kw( ecl_file_kw_type * file_kw , fortio_type * target , ecl_kw_type * new_kw ) { if (!ecl_type_is_equal( ecl_file_kw_get_data_type(file_kw), ecl_kw_get_data_type(new_kw) )) util_abort("%s: sorry type mismatch between in-file keyword and new keyword \n",__func__); if(file_kw->kw_size != ecl_kw_get_size(new_kw)) util_abort("%s: sorry size mismatch between in-file keyword and new keyword \n",__func__); if (file_kw->kw != NULL) ecl_kw_free( file_kw->kw ); file_kw->kw = new_kw; fortio_fseek( target , file_kw->file_offset , SEEK_SET ); ecl_kw_fwrite( file_kw->kw , target ); }
static void gen_data_set_data__(gen_data_type * gen_data , int size, const forward_load_context_type * load_context, ecl_data_type load_data_type , const void * data) { gen_data_assert_size(gen_data , size, forward_load_context_get_load_step( load_context )); if (gen_data_config_is_dynamic( gen_data->config )) gen_data_config_update_active( gen_data->config , load_context , gen_data->active_mask); gen_data_realloc_data(gen_data); if (size > 0) { ecl_data_type internal_type = gen_data_config_get_internal_data_type( gen_data->config ); int byte_size = ecl_type_get_sizeof_ctype( internal_type ) * size ; if (ecl_type_is_equal(load_data_type, internal_type)) memcpy(gen_data->data , data , byte_size ); else { if (ecl_type_is_float(load_data_type)) util_float_to_double((double *) gen_data->data , data , size); else util_double_to_float((float *) gen_data->data , data , size); } } }