Exemplo n.º 1
0
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__);
}
Exemplo n.º 2
0
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 );
}
Exemplo n.º 3
0
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 );
}
Exemplo n.º 4
0
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);
    }
  }
}