ecl_kw_type * ecl_nnc_export_get_tranll_kw( const ecl_grid_type * grid , const ecl_file_type * init_file , int lgr_nr1, int lgr_nr2 ) { const char * lgr_name1 = ecl_grid_get_lgr_name( grid , lgr_nr1 ); const char * lgr_name2 = ecl_grid_get_lgr_name( grid , lgr_nr2 ); ecl_kw_type * tran_kw = NULL; const int file_num_kw = ecl_file_get_size( init_file ); int global_kw_index = 0; while (true) { if (global_kw_index >= file_num_kw) break; { ecl_kw_type * ecl_kw = ecl_file_iget_kw( init_file , global_kw_index ); if (strcmp( LGRJOIN_KW , ecl_kw_get_header( ecl_kw)) == 0) { if (ecl_kw_icmp_string( ecl_kw , 0 , lgr_name1) && ecl_kw_icmp_string( ecl_kw , 1 , lgr_name2)) { tran_kw = ecl_file_iget_kw( init_file , global_kw_index + 1); break; } } global_kw_index++; } } return tran_kw; }
void test_close_stream2(const char * src_file , const char * target_file ) { util_copy_file( src_file , target_file ); ecl_file_type * ecl_file = ecl_file_open( target_file , ECL_FILE_CLOSE_STREAM ); ecl_file_load_all( ecl_file ); unlink( target_file ); ecl_kw_type * kw2 = ecl_file_iget_kw( ecl_file , 2 ); test_assert_not_NULL( kw2 ); ecl_file_close( ecl_file ); }
void test_close_stream1(const char * src_file , const char * target_file ) { util_copy_file( src_file , target_file ); ecl_file_type * ecl_file = ecl_file_open( target_file , ECL_FILE_CLOSE_STREAM ); ecl_kw_type * kw0 = ecl_file_iget_kw( ecl_file , 0 ); ecl_kw_type * kw1 = ecl_file_iget_kw( ecl_file , 1 ); unlink( target_file ); ecl_kw_type * kw1b = ecl_file_iget_kw( ecl_file , 1 ); test_assert_not_NULL( kw0 ); test_assert_not_NULL( kw1 ); test_assert_ptr_equal( kw1 , kw1b ); ecl_kw_type * kw2 = ecl_file_iget_kw( ecl_file , 2 ); test_assert_NULL( kw2 ); test_assert_false( ecl_file_writable( ecl_file )); ecl_file_close( ecl_file ); }
ecl_kw_type * ecl_nnc_export_get_tran_kw( const ecl_file_type * init_file , const char * kw , int lgr_nr ) { ecl_kw_type * tran_kw = NULL; if (lgr_nr == 0) { if (strcmp(kw , TRANNNC_KW) == 0) if(ecl_file_has_kw(init_file, kw)) { tran_kw = ecl_file_iget_named_kw(init_file, TRANNNC_KW, 0); } } else { if ((strcmp(kw , TRANNNC_KW) == 0) || (strcmp(kw , TRANGL_KW) == 0)) { const int file_num_kw = ecl_file_get_size( init_file ); int global_kw_index = 0; bool finished = false; bool correct_lgrheadi = false; int head_index = 0; int steps = 0; while(!finished){ ecl_kw_type * ecl_kw = ecl_file_iget_kw( init_file , global_kw_index ); const char *current_kw = ecl_kw_get_header(ecl_kw); if (strcmp( LGRHEADI_KW , current_kw) == 0) { if (ecl_kw_iget_int( ecl_kw , LGRHEADI_LGR_NR_INDEX) == lgr_nr) { correct_lgrheadi = true; head_index = global_kw_index; }else{ correct_lgrheadi = false; } } if(correct_lgrheadi) { if (strcmp(kw, current_kw) == 0) { steps = global_kw_index - head_index; /* This is to calculate who fare from lgrheadi we found the TRANGL/TRANNNC key word */ if(steps == 3 || steps == 4 || steps == 6) { /* We only support a file format where TRANNNC is 3 steps and TRANGL is 4 or 6 steps from LGRHEADI */ tran_kw = ecl_kw; finished = true; break; } } } global_kw_index++; if (global_kw_index == file_num_kw) finished = true; } } } return tran_kw; }