示例#1
0
static int __conf_instance_get_restart_nr(const conf_instance_type * conf_instance, const char * obs_key , time_map_type * time_map , bool prefer_restart) {
  int obs_restart_nr = -1;  /* To shut up compiler warning. */

  if(conf_instance_has_item(conf_instance, "RESTART")) {
    obs_restart_nr = conf_instance_get_item_value_int(conf_instance, "RESTART");
    if (obs_restart_nr > time_map_get_last_step( time_map))
      util_abort("%s: Observation %s occurs at restart %i, but history file has only %i restarts.\n", __func__, obs_key, obs_restart_nr, time_map_get_last_step( time_map ));
  } else {
    time_t obs_time = time_map_get_start_time( time_map );

    if(conf_instance_has_item(conf_instance, "DATE")) {
      obs_time = conf_instance_get_item_value_time_t(conf_instance, "DATE"  );
      if (prefer_restart)
        obs_vector_prefer_RESTART_warning();
    } else if (conf_instance_has_item(conf_instance, "DAYS")) {
      double days = conf_instance_get_item_value_double(conf_instance, "DAYS");
      util_inplace_forward_days_utc( &obs_time , days );
      if (prefer_restart)
        obs_vector_prefer_RESTART_warning();
    } else if (conf_instance_has_item(conf_instance, "HOURS")) {
      double hours = conf_instance_get_item_value_double(conf_instance, "HOURS");
      util_inplace_forward_seconds_utc( &obs_time , hours * 3600 );
      if (prefer_restart)
        obs_vector_prefer_RESTART_warning();
    } else
      util_abort("%s: Internal error. Invalid conf_instance?\n", __func__);

    obs_restart_nr = time_map_lookup_time_with_tolerance( time_map , obs_time , 30 , 30 );
  }
  if (obs_restart_nr < 0)
    util_abort("%s: Failed to look up restart nr correctly \n",__func__);

  return obs_restart_nr;
}
示例#2
0
void ecl_test( const char * ecl_case ) {
  ecl_sum_type * ecl_sum  = ecl_sum_fread_alloc_case( ecl_case , ":");
  time_t start_time = ecl_sum_get_start_time( ecl_sum );
  time_t end_time   = ecl_sum_get_end_time( ecl_sum );
  time_map_type * ecl_map = time_map_alloc( );
  
  test_assert_true( time_map_summary_update( ecl_map , ecl_sum ) );
  test_assert_true( time_map_summary_update( ecl_map , ecl_sum ) );
  
  test_assert_time_t_equal( time_map_get_start_time( ecl_map ) , start_time );
  test_assert_time_t_equal( time_map_get_end_time( ecl_map ) , end_time );
  test_assert_double_equal( time_map_get_end_days( ecl_map ) , ecl_sum_get_sim_length( ecl_sum ));

  time_map_clear( ecl_map );
  time_map_update( ecl_map , 1 , 256 );
  test_assert_false( time_map_summary_update( ecl_map , ecl_sum ));
  
  time_map_free( ecl_map );
  ecl_sum_free( ecl_sum );
}