diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 2e84704150..120a368ea9 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -16,7 +16,7 @@ In addition to any definition or interpretation of the open source code of condu If at any point concerns are raised that a group or member is not acting according to our values, the behaviour in question should cease, be discussed, and tried to be resolved. -We expect everyone to have a low threshold for raising issues, or in general discuss how we live up to our values. +We expect everyone to have a low threshold for raising issues, or in general discuss how we live up to our values. Equally, we encourage all community members to appreciate when concerns are raised and do their best to solve them. Project maintainers are responsible both for *what* is delivered, as well as *how* it is delivered. diff --git a/VisualStudio/stdbool.h b/VisualStudio/stdbool.h index c599cf5cbd..c2bbba7999 100644 --- a/VisualStudio/stdbool.h +++ b/VisualStudio/stdbool.h @@ -8,9 +8,9 @@ The symbols defined in the stdbool header are actually correctly(?) defined by the VisualStudio compiler already, so this header file does not define any bool related symbols! - + To actually use this file you should copy it manually into the ert - include directory as used by VisualStudio. + include directory as used by VisualStudio. */ #ifndef ERT_STDBOOL_H diff --git a/WINDOWS.md b/WINDOWS.md index 7d0ab2ebc4..419958b2b1 100644 --- a/WINDOWS.md +++ b/WINDOWS.md @@ -3,7 +3,7 @@ ## Prerequisits: * Python 2.7 or 3.x https://www.python.org/ or https://anaconda.org/ * Microsoft Visual Studio https://visualstudio.microsoft.com/downloads/ -* Local copy of **_libecl_** +* Local copy of **_libecl_** ## Instructions: 1. Download or clone the **_libecl_** Github repository to your local disk. @@ -13,9 +13,9 @@ 3. Download and install Microsoft Visual Studio . At a minimum **_libecl_** requires the VS Studio packages for cmake, msbuild, c and c++ compilers (CL.exe). -4. Open a MSVC command prompt such as _x64 Native Tools Command Prompt for VS 2017_ from your start menu. In the open prompt, navigate to the **_libecl_** source directory you created in step 1. Use the Python package manager **pip** to install **_libecl_** requirements via `pip install -r requirements.txt`. If Python is not accessible from the prompt it may be necessary to add the Python environment location to your system path variable `PATH`. - -5. Execute the build commands with the desired CMAKE parameters from `README.md`. The cmake generator can be _`NMake Makefiles`_ , _`Ninja`_ or an appropriate version of _`MSVC`_. For the availble options type `cmake -G` in the MSVC command prompt. +4. Open a MSVC command prompt such as _x64 Native Tools Command Prompt for VS 2017_ from your start menu. In the open prompt, navigate to the **_libecl_** source directory you created in step 1. Use the Python package manager **pip** to install **_libecl_** requirements via `pip install -r requirements.txt`. If Python is not accessible from the prompt it may be necessary to add the Python environment location to your system path variable `PATH`. + +5. Execute the build commands with the desired CMAKE parameters from `README.md`. The cmake generator can be _`NMake Makefiles`_ , _`Ninja`_ or an appropriate version of _`MSVC`_. For the availble options type `cmake -G` in the MSVC command prompt. An example build and install is provided below where %VARIABLE% are user defined directory paths: ~~~~ diff --git a/applications/ecl/grdecl_grid.c b/applications/ecl/grdecl_grid.c index e0f47dbb24..b174230a3b 100644 --- a/applications/ecl/grdecl_grid.c +++ b/applications/ecl/grdecl_grid.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2012 Equinor ASA, Norway. - - The file 'grdecl_grid.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2012 Equinor ASA, Norway. + + The file 'grdecl_grid.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/grdecl_test.c b/applications/ecl/grdecl_test.c index d7807da8e8..c8f42f4f53 100644 --- a/applications/ecl/grdecl_test.c +++ b/applications/ecl/grdecl_test.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2012 Equinor ASA, Norway. - - The file 'grdecl_test.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2012 Equinor ASA, Norway. + + The file 'grdecl_test.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/grid_dump.c b/applications/ecl/grid_dump.c index 56208273d9..a68bcc5880 100644 --- a/applications/ecl/grid_dump.c +++ b/applications/ecl/grid_dump.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'grid_info.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'grid_info.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/grid_dump_ascii.c b/applications/ecl/grid_dump_ascii.c index cbd1fca72f..cbbdfb5360 100644 --- a/applications/ecl/grid_dump_ascii.c +++ b/applications/ecl/grid_dump_ascii.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2012 Equinor ASA, Norway. - - The file 'grid_dump_ascii.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2012 Equinor ASA, Norway. + + The file 'grid_dump_ascii.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/grid_layer.c b/applications/ecl/grid_layer.c index 8ce2900c89..1f158328f9 100644 --- a/applications/ecl/grid_layer.c +++ b/applications/ecl/grid_layer.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'grid_layer.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'grid_layer.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/key_list.c b/applications/ecl/key_list.c index 186f0bb377..f26df76928 100644 --- a/applications/ecl/key_list.c +++ b/applications/ecl/key_list.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'key_list.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'key_list.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/load_test.c b/applications/ecl/load_test.c index 8b425f7816..ec278ce06b 100644 --- a/applications/ecl/load_test.c +++ b/applications/ecl/load_test.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'load_test.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'load_test.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/make_grid.c b/applications/ecl/make_grid.c index 985d498aaa..6745cdc4f9 100644 --- a/applications/ecl/make_grid.c +++ b/applications/ecl/make_grid.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2012 Equinor ASA, Norway. - - The file 'make_grid.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2012 Equinor ASA, Norway. + + The file 'make_grid.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/run_gravity.c b/applications/ecl/run_gravity.c index d536cf7162..b1c39cb21e 100644 --- a/applications/ecl/run_gravity.c +++ b/applications/ecl/run_gravity.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'run_gravity.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'run_gravity.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include @@ -228,7 +228,7 @@ static void grav_station_add_obs(grav_station_type *g, double obs, double std) { 2. For each station we have four items: ----- name utm_x utm_y depth - + name is an arbitrary string - without spaces. */ @@ -283,7 +283,7 @@ static void load_stations(vector_type *grav_stations, const char *filename) { restart information from the two relevant times. The input to this function is a (char **) pointer, taken directly from the argv input pointer. - + The function will start by calling ecl_util_get_file_type(input[0]), and depending on the return value from this call it will follow three different code-paths: @@ -298,7 +298,7 @@ static void load_stations(vector_type *grav_stations, const char *filename) { 2. Non unified restart files - unformatted. 3. Unified restart file - formatted. 4. Non unified restart files - formatted. - + The search will stop at the first success, if no restart information is found the function will exit. The remaining arguments in input[] will not be considered, but observe that the @@ -306,11 +306,11 @@ static void load_stations(vector_type *grav_stations, const char *filename) { reference), and the calling scope will look for GRID file and INIT file also based on the ECLBASE found input[0]; formatted / unformatted will be as returned from the four-way switch above. - + Example: - + bash% run_gravity ECLIPSE 10 128 xxxx - + ECL_RESTART_FILE: This means that input[0] is a non unified eclipse @@ -321,9 +321,9 @@ static void load_stations(vector_type *grav_stations, const char *filename) { Example: bash% run_gravity ECLIPSE.X0010 ECLIPSE.X0128 xxx - - + + ECL_UNIFIED_RESTART_FILE: This means that input[1] and input[2] are interpreted as integers (i.e. report steps), and those two report steps will be loaded from the unified restart file pointed to by @@ -333,7 +333,7 @@ static void load_stations(vector_type *grav_stations, const char *filename) { bash% run_gravity ECLIPSE.UNRST 10 128 xxx - + Observe that in all the examples above 'xxx' signifies argv arguments which this function does not care about. The return the *arg_offset @@ -342,7 +342,7 @@ static void load_stations(vector_type *grav_stations, const char *filename) { char ** input = argv[1]; int input_offset; ecl_restart_file_type ** restart_info = load_restart_info(input , &input_offset, ...); - + Then the next argument is: input[input_offset]; */ @@ -398,7 +398,7 @@ ecl_file_type **load_restart_info( util_sscanf_int(input[2], &report2))) print_usage(__LINE__); else { - /* + /* input[0] is interpreted as an eclbase string, and not as the name of an existing file. Go through various combinations of unified/non-unified formatted/unformatted to find data. @@ -492,12 +492,12 @@ ecl_file_type **load_restart_info( /* This function calculates the gravimetric response for the gravitation station given as input parameter grav_station. - + For code cleanliness the code is written in a way where this function is called for every position we are interested in, performance-wise it would be smarter to loop over the interesting locations as the inner loop. - + This function does NOT check whether the restart_file / init_file contains the necessary keywords - and will fail HARD if a required keyword is not present. That the the input is well-formed should be @@ -598,7 +598,7 @@ static double gravity_response(const ecl_grid_type *ecl_grid, int *int_zero = util_calloc( nactive, sizeof *int_zero); /* Fake vector of zeros used for AQUIFER when the init file does not supply data. */ - /* + /* Observe that the fake vectors are only a coding simplification, they should not be really used. */ @@ -675,7 +675,7 @@ static double gravity_response(const ecl_grid_type *ecl_grid, truncate_saturation(&soil2); } - /* + /* We have found all the info we need for one cell. */ @@ -743,7 +743,7 @@ static void *gravity_response_mt(void *arg) { return NULL; } -/* +/* Validate input: --------------- This function tries to verify that the restart_files contain all @@ -754,7 +754,7 @@ static void *gravity_response_mt(void *arg) { 2. The init file must contain the PORV keyword - this is only used to check for the ECLIPSE_2008 bug in RPORV calculations. - + Determine phases: @@ -763,7 +763,7 @@ static void *gravity_response_mt(void *arg) { present. The restart files generally only contain (n - 1) phases, i.e. for a WATER-OIL-GAS system the restart files will contain SGAS and SWAT, but not SOIL. - + We must determine which phases are in the model, that is determined by looking for the densities OIL_DEN, WAT_DEN and GAS_DEN. This is stored in the variable model_phases. In addition we must determine @@ -774,7 +774,7 @@ static void *gravity_response_mt(void *arg) { If the input is valid, the function will return zero, otherwise it will return a non-zero error code: (ehhh - it will exit currently). - + */ static int gravity_check_input(const ecl_grid_type *ecl_grid, @@ -821,12 +821,12 @@ static int gravity_check_input(const ecl_grid_type *ecl_grid, { /** The following assumptions are made: - - 1. All restart files should have water, i.e. the SWAT keyword. - 2. All phases present in the restart file should also be present as densities, - in addition the model must contain one additional phase. + + 1. All restart files should have water, i.e. the SWAT keyword. + 2. All phases present in the restart file should also be present as densities, + in addition the model must contain one additional phase. 3. The restart files can never contain oil saturation. - + */ if (!has_phase(file_phases, WATER)) util_exit("Could not locate SWAT keyword in restart files\n"); @@ -923,7 +923,7 @@ void install_SIGNALS(void) { signal(SIGINT, util_abort_signal); /* Control C */ signal( SIGTERM, - util_abort_signal); /* If killing the program with SIGTERM (the default kill signal) you will get a backtrace. + util_abort_signal); /* If killing the program with SIGTERM (the default kill signal) you will get a backtrace. Killing with SIGKILL (-9) will not give a backtrace.*/ } @@ -964,7 +964,7 @@ int main(int argc, char **argv) { char *grid_filename = NULL; char *init_filename = NULL; if (use_eclbase) { - /* + /* The first command line argument is interpreted as ECLBASE, and we search for grid and init files in cwd. */ @@ -1005,14 +1005,14 @@ int main(int argc, char **argv) { } else print_usage(__LINE__); - /** + /** OK - now everything is loaded - check that all required keywords+++ are present. */ gravity_check_input(ecl_grid, init_file, restart_files[0], restart_files[1], &model_phases, &file_phases); - /* + /* OK - now it seems the provided files have all the information we need. Let us start using it. The main loop is run in parallell on four threads - most people have four cores these diff --git a/applications/ecl/select_test.c b/applications/ecl/select_test.c index d01704f831..6c31ebe3ff 100644 --- a/applications/ecl/select_test.c +++ b/applications/ecl/select_test.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2012 Equinor ASA, Norway. - - The file 'select_test.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2012 Equinor ASA, Norway. + + The file 'select_test.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/summary2csv2.c b/applications/ecl/summary2csv2.c index 49aa32a504..a96831fed5 100644 --- a/applications/ecl/summary2csv2.c +++ b/applications/ecl/summary2csv2.c @@ -1,18 +1,18 @@ /* - Copyright (C) 2013 Equinor ASA, Norway. - The file 'summary2csv2.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2013 Equinor ASA, Norway. + The file 'summary2csv2.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/view_restart.c b/applications/ecl/view_restart.c index c0d2b267d7..9f248311e2 100644 --- a/applications/ecl/view_restart.c +++ b/applications/ecl/view_restart.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'view_restart.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'view_restart.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/view_rft.c b/applications/ecl/view_rft.c index 7a43f08a1e..9dd7b406f1 100644 --- a/applications/ecl/view_rft.c +++ b/applications/ecl/view_rft.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'view_rft.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'view_rft.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/ecl/vprofile.c b/applications/ecl/vprofile.c index cc673102c0..935dd8f013 100644 --- a/applications/ecl/vprofile.c +++ b/applications/ecl/vprofile.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2011 Equinor ASA, Norway. - - The file 'vprofile.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2011 Equinor ASA, Norway. + + The file 'vprofile.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/applications/example_ens_plot_batch_file b/applications/example_ens_plot_batch_file index be8a88578d..615be1c0d9 100644 --- a/applications/example_ens_plot_batch_file +++ b/applications/example_ens_plot_batch_file @@ -38,7 +38,7 @@ RFT:WI_1:2/9/2000 prior post _set_range_ -XMIN 300 XMAX 400 +XMIN 300 XMAX 400 _meas_points_ rft 15 28 1 340.0 345.2 rft 15 28 10 345 350 diff --git a/applications/well/segment_info.c b/applications/well/segment_info.c index 0f8d192220..5eb1e77792 100644 --- a/applications/well/segment_info.c +++ b/applications/well/segment_info.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2013 Equinor ASA, Norway. - - The file 'segment_info.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2013 Equinor ASA, Norway. + + The file 'segment_info.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include #include diff --git a/applications/well/well_CF_dump.c b/applications/well/well_CF_dump.c index 30686c41a6..4daa7f5541 100644 --- a/applications/well/well_CF_dump.c +++ b/applications/well/well_CF_dump.c @@ -1,19 +1,19 @@ /* - Copyright (C) 2013 Equinor ASA, Norway. - - The file 'well_CF_dump.c' is part of ERT - Ensemble based Reservoir Tool. - - ERT is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - ERT is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. - - See the GNU General Public License at - for more details. + Copyright (C) 2013 Equinor ASA, Norway. + + The file 'well_CF_dump.c' is part of ERT - Ensemble based Reservoir Tool. + + ERT is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ERT is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License at + for more details. */ #include diff --git a/cmake/Tests/test_have_sigbus.c b/cmake/Tests/test_have_sigbus.c index e8785a4947..16a1b1035a 100644 --- a/cmake/Tests/test_have_sigbus.c +++ b/cmake/Tests/test_have_sigbus.c @@ -1,7 +1,7 @@ #include void sigbus_handler(int signal) { - + } diff --git a/cmake/Tests/test_mktime_before1970.c b/cmake/Tests/test_mktime_before1970.c index 95feb71dfb..f493d3eeb8 100644 --- a/cmake/Tests/test_mktime_before1970.c +++ b/cmake/Tests/test_mktime_before1970.c @@ -15,7 +15,7 @@ int main(int argc, char ** argv) { ts.tm_isdst = -1; { time_t t = mktime( &ts ); - if (t == -1) + if (t == -1) exit(1); else exit(0); diff --git a/cmake/Tests/test_openmp.c b/cmake/Tests/test_openmp.c index 0c8c25e6cd..65ac48929e 100644 --- a/cmake/Tests/test_openmp.c +++ b/cmake/Tests/test_openmp.c @@ -6,6 +6,6 @@ int main(int argc, char ** argv) { #pragma omp parallel for for (int i=0; i < 100; i++) sum += i; - + } diff --git a/cmake/Tests/test_va_copy.c b/cmake/Tests/test_va_copy.c index 1a12b407b2..8f88ff533e 100644 --- a/cmake/Tests/test_va_copy.c +++ b/cmake/Tests/test_va_copy.c @@ -6,7 +6,7 @@ int func(int arg1 , ...) { va_list copy; va_start(ap , arg1); va_copy( copy , ap ); - + va_end(ap); return 1; } diff --git a/lib/ecl/ecl_grid.cpp b/lib/ecl/ecl_grid.cpp index b7c1410a16..f069fac50e 100644 --- a/lib/ecl/ecl_grid.cpp +++ b/lib/ecl/ecl_grid.cpp @@ -5137,7 +5137,7 @@ double ecl_grid_get_cell_dx1A(const ecl_grid_type *grid, int active_index) { reproduces the Eclipse results from the INIT file quite well, relative error on the order 1e-4 for DX and DY and 1e-3 for DZ. - Observe that the DX, DY and DZ values are not tied to the cell volume; i.e. + Observe that the DX, DY and DZ values are not tied to the cell volume; i.e. the relationship: DX * DY * DZ = V diff --git a/lib/ecl/smspec_node.cpp b/lib/ecl/smspec_node.cpp index 87bba3bad8..73c7d80c79 100644 --- a/lib/ecl/smspec_node.cpp +++ b/lib/ecl/smspec_node.cpp @@ -419,10 +419,10 @@ bool smspec_node_identify_rate(const char *keyword) { /* Identify vectors that are likely to be rate vectors. First input character is ignored (e.g. F, G, W and R for Field, Group, Well and Region) - Additional characters beyond the length of the listed elements are also ignored (To + Additional characters beyond the length of the listed elements are also ignored (To catch historical vectors with trailing H and completions with trailing L). Therefore also not necessary to list e.g. OPRF, which is covered by OPR. - Some of the more obscure keywords in the manual are skipped. + Some of the more obscure keywords in the manual are skipped. The listed rate variables are grouped per line as: Oil rates Gas rates @@ -487,10 +487,10 @@ bool smspec_node_identify_total(const char *keyword, /* Identify vectors that are likely to be cumulative vectors. First input character is ignored (e.g. F, G, W and R for Field, Group, Well and Region) - Additional characters beyond the length of the listed elements are also ignored (To + Additional characters beyond the length of the listed elements are also ignored (To catch historical vectors with trailing H and completions with trailing L). Therefore also not necessary to list e.g. OPTF, which is covered by OPT. - Some of the more obscure keywords in the manual are skipped. + Some of the more obscure keywords in the manual are skipped. The listed rate variables are grouped per line as: Oil totals Gas totals diff --git a/lib/util/figs/mzran_random_values.png b/lib/util/figs/mzran_random_values.png index f65829d202..4aea4e0628 100644 Binary files a/lib/util/figs/mzran_random_values.png and b/lib/util/figs/mzran_random_values.png differ diff --git a/python/docs/code/python/index.rst b/python/docs/code/python/index.rst index 90946c557e..c48e272c63 100644 --- a/python/docs/code/python/index.rst +++ b/python/docs/code/python/index.rst @@ -3,7 +3,7 @@ The ert.ecl package .. contents:: :depth: 2 - :local: + :local: The :code:`ert.ecl` package for working with Eclipse files is quite extensive. There is some quite limited support for reading @@ -162,7 +162,7 @@ the permeability: from ert.ecl import EclFile, EclTypeEnum initfile_pattern = "/path/to/files/real*/CASE-*.INIT" - + kw_list = [] for init_file in glob.glob(initfile_pattern): ecl_file = EclFile(init_file) @@ -171,19 +171,19 @@ the permeability: mean = EclKW.create("AVG-PERMX" , len(kw_list[0]) , EclTypeEnum.ECL_FLOAT_TYPE) std = EclKW.create("STD-PERMX" , len(kw_list[0]) , EclTypeEnum.ECL_FLOAT_TYPE) - # Here we do normal arithmetic calculations with the EclKW instances + # Here we do normal arithmetic calculations with the EclKW instances for kw in kw_list: mean += kw std += kw * kw mean /= len(kw_list) std /= len(kw_list) - std -= mean * mean + std -= mean * mean # The sqrt() function can not be implemented in the object, so here # we must do it more explicitly. - std.apply( math.sqrt ) - + std.apply( math.sqrt ) + Observe that for the arithmetic operations you can also call the inplace methods (*without* leading 'i') :code:`add()`, :code:`mul()`, :code:`sub` and :code:`div()` directly - in this form the methods also @@ -328,7 +328,7 @@ cell is active(1) or inactive(0) [4]_. When working with the a specific cell - these are: 1. A triplet of :code:`(i,j,k)` values - in the example above - indicated with the :code:`(i,j)`. + indicated with the :code:`(i,j)`. 2. A *global index* in the range :code:`[0..nx*ny*nz)` which uniquely identifies a cell. This is indicated as the number with a trailing @@ -361,7 +361,7 @@ and then we print the (i,j,k) values for all the cells with init = EclFile( "CASE.INIT" ) permx_kw = init["PERMX"][0] - + for ai in range(len(permx_kw)): if permx_kw[ai] < permx_limit: ijk = grid.get_ijk( active_index = ai) @@ -385,12 +385,12 @@ associated to it. The purpose of this is to be able to use :code:`(i,j,k)` as index when looking up values. When :code:`(i,j,k)` is used to identify the cell the, :code:`Ecl3DKW` class can transparently handle the active/inactive cells issue - returning a -default value in the case of undefined inactive cells. +default value in the case of undefined inactive cells. When the :code:`[]` argument is a single integer the :code:`Ecl3DKW` class can not know whether the index supplied is an active or a global index, and it will be a simple index lookup - which properties are -determined by the length of the underlying data. +determined by the length of the underlying data. The :code:`Ecl3DKW` class is mainly convenience compared to the pure :code:`EclKW` class - for performance reasons it should probably not @@ -405,11 +405,11 @@ grid properties: 1. Many different methods for working with cell data like position, depth, size and location of cell corners. - + 2. Methods doing the reverse mapping :code:`(x,y,z) -> (i,j,k)`. 3. *Some* functionality for working with LGRs, coarse groups and - fractured grid. + fractured grid. 4. Methods for exporting a :code:`EclKW` defined over :code:`nactive` elements to a :code:`grdecl` formatted file with @@ -446,14 +446,14 @@ the :code:`(i,j,k) -> active_index` transformation: permx_kw = init["PERMX"][0] for ijk in cell_list: - print("permx : %g" % permx_kw[ijk]) - + print("permx : %g" % permx_kw[ijk]) + Time queries in EclRestartFile .............................. The :code:`EclRestartFile` class has many methods for queries on the -temporal content of a restart file [5]_. +temporal content of a restart file [5]_. Classmethods ,,,,,,,,,,,, @@ -477,9 +477,9 @@ file. report_list = EclRestartFile.file_report_list("ECLIPSE.UNRST") - print("The file: %s contains the following report steps: ") + print("The file: %s contains the following report steps: ") print( ", ".join(report_list)) - + EclRestartFile.contains_report_step *********************************** @@ -487,7 +487,7 @@ EclRestartFile.contains_report_step The classmethod :code:`contains_report_step` will check if the file *filename* contains the report_step *report_step*: - + if EclRestartFile.contains_report_step( "ECLIPSE.UNRST" , 100): print("The file has a section for report step=100") else: @@ -504,7 +504,7 @@ be given as a normal Python :code:`datetime`: .. code:: python from ert.ecl import EclRestartFile - import datetime + import datetime sim_time = datetime.datetime( 2010 , 6 , 15 ) if EclRestartFile.contains_sim_time( "ECLIPSE.UNRST" , sim_time ): @@ -539,7 +539,7 @@ apply is: from ert.ecl import EclGrid, EclRegion, EclKW, EclTypeEnum grid = EclGrid( "CASE.EGRID" ) - + with open("poro.grdecl") as f: poro = EclKW.read_grdecl( f , "PORO") @@ -582,7 +582,7 @@ EclRegion - selectors ..................... A region can be constructed in many different ways: - + 1. Based on slices of :code:`i,j,k` values. 2. Inside or outside a polygon; or alternatively "above" or "below" a line. @@ -617,7 +617,7 @@ form the union and intersection of regions. # Region reg3 will be the union reg1 and reg2, i.e. the cells # selected in reg3 is the set of all cells selected in either reg1 # or reg2. - reg3 = reg1 | reg2 + reg3 = reg1 | reg2 reg3 = reg1 + reg2 # Region reg3 will be set of cells which are *only* selected in reg1. @@ -626,7 +626,7 @@ form the union and intersection of regions. # Region reg3 will be the set of cells which are selected in *both* # reg1 and reg2. reg3 = reg1 & reg2 - + For further details, specially of the various select methods, please type :code:`pydoc ert.ecl.EclRegion` or browse the API documentation at :ref:`python_documentation`. @@ -641,20 +641,20 @@ files will generally contain results for several wells, and several times, the :code:`EclRFTFile` class will load them all - and then supplies an interface to query for individual RFT results based on wellname and/or date; the individual RFT results will be in the form -of :code:`EclRFT` instances. +of :code:`EclRFT` instances. .. code:: python - + from ert.ecl import EclRFTFile # Load the RFT file rft_file = EclRFTFile("ECLIPSE.RFT") - - # Extract the RFT results for well 'OP-X' at date 2010-01-15; + + # Extract the RFT results for well 'OP-X' at date 2010-01-15; # will return None if no such RFT exists - should probably raise an # exception. rft = rft_file.get("OP-X" , datetime.date(2010,1,15)) - + In addition to the main method: :code:`EclRFTFile.get()` the :code:`EclRFTFile` class has utility methods to list all the well and date values present in the RFT file, the number of wells and so on. @@ -665,10 +665,10 @@ EclRFT From the :code:`EclRFTFile.get()` method we get a :code:`EclRFT` instance. Observe that one RFT file can contain a lump of different data RFT types: - + RFT: This is old-fashioned RFT which contains measurements of saturations for each of the completed cells. - + PLT: This contains production and flow rates for each phase in each cell. @@ -684,7 +684,7 @@ will loop identify an RFT from a file and then loop through all the cells for that RFT. .. code:: python - + from ert.ecl import EclRFTFile rft_file = EclRFTFile("ECLIPSE.RFT") rft = rft_file.get("OP-X" , datetime.date(2010,1,15)) @@ -708,7 +708,7 @@ Summary files are loaded with the :code:`EclSum` class. The :code:`EclSum` class is a quite complete implementation for working with Eclipse summary data, but it should also be said the :code:`EclSum` class is one of the oldest classes in the -:code:`ert.ecl` package and the api could have been cleaner. +:code:`ert.ecl` package and the api could have been cleaner. Creating a :code:`EclSum` instance @@ -731,11 +731,11 @@ instance from this is as simple as: from ert.ecl import EclSum ecl_sum = EclSum("ECLIPSE") - + As is clear from the example the :code:`EclSum` instance is created based only on the basename of the simulation, you can optionally have an extension like :code:`ecl_sum = EclSum("ECLIPSE.UNSMRY")` - but -that is *mostly* [7]_ ignored. +that is *mostly* [7]_ ignored. If your case is restarted from an another case the :code:`EclSum` cconstructor will by default try to locate the historical case, and @@ -752,7 +752,7 @@ message if: simulations. -About summary keys +About summary keys .................. The header file :code:`CASE.SMSPEC` has all the information *about* @@ -764,23 +764,23 @@ which contains names of groups and wells, and :code:`NUMS` which contain extra numbers to characterize the variables. A small :code:`SMSPEC` file could look like this: -.. code:: +.. code:: - KEYWORDS WGNAMES NUMS | PARAM index Corresponding ERT key + KEYWORDS WGNAMES NUMS | PARAM index Corresponding ERT key ------------------------------------------------+-------------------------------------------------- - WGOR OP_1 0 | 0 WGOR:OP_1 - FOPT +-+-+-+- 0 | 1 FOPT - WWCT OP_1 0 | 2 WWCT:OP_1 - WIR OP_1 0 | 3 WIR:OP_1 - WGOR WI_1 0 | 4 WWCT:OP_1 - WWCT W1_1 0 | 5 WWCT:WI_1 - BPR +-+-+- 12675 | 6 BPR:12675, BPR:i,j,k - RPR +-+-+- 1 | 7 RPR:1 - FOPT +-+-+- 0 | 8 FOPT - GGPR NORTH 0 | 9 GGPR:NORTH - COPR OP_1 5628 | 10 COPR:OP_1:56286, COPR:OP_1:i,j,k - RXF +-+-+- 32768*R1(R2 + 10) | 11 RXF:2-3 - SOFX OP_1 12675 | 12 SOFX:OP_1:12675, SOFX:OP_1:i,j,jk + WGOR OP_1 0 | 0 WGOR:OP_1 + FOPT +-+-+-+- 0 | 1 FOPT + WWCT OP_1 0 | 2 WWCT:OP_1 + WIR OP_1 0 | 3 WIR:OP_1 + WGOR WI_1 0 | 4 WWCT:OP_1 + WWCT W1_1 0 | 5 WWCT:WI_1 + BPR +-+-+- 12675 | 6 BPR:12675, BPR:i,j,k + RPR +-+-+- 1 | 7 RPR:1 + FOPT +-+-+- 0 | 8 FOPT + GGPR NORTH 0 | 9 GGPR:NORTH + COPR OP_1 5628 | 10 COPR:OP_1:56286, COPR:OP_1:i,j,k + RXF +-+-+- 32768*R1(R2 + 10) | 11 RXF:2-3 + SOFX OP_1 12675 | 12 SOFX:OP_1:12675, SOFX:OP_1:i,j,jk ------------------------------------------------+-------------------------------------------------- As indicated above the ERT library combines elements from the @@ -821,7 +821,7 @@ following about the smspec index: -About the time direction +About the time direction ........................ As we can see from the table in "About summary keys" section the @@ -836,12 +836,12 @@ performance, in ECLIPSE parlance these are called ministeps. When the :code:`EclSum` class loads a summary all the ECLIPSE ministeps are stacked together in one long vector, observe that e.g. when the keyword RPTONLY is used in the ECLIPSE data file there can be "holes" -in the ministep sequence. +in the ministep sequence. The ert.ecl summary implementation works with four different concepts of time: -time_index +time_index ,,,,,,,,,,, This is a plain index in the range :code:`[0,..num_timestep)`. Observe @@ -862,23 +862,23 @@ restarted simulation the first ministeps might be missing completely, and there can also be holes in the series. Each block of summary data is tagged with a MINISTEP number by ECLIPSE. The ministep indices are arbitrary properties of the simulation, and are not exported by the -:code:`ert.ecl` API. +:code:`ert.ecl` API. -report_step +report_step ,,,,,,,,,,,, This is the ECLIPSE report step, there are functions to convert between report step and index, and you can use report step as time -value when querying for values. +value when querying for values. -True time +True time ,,,,,,,,,, It is possible to query the summary object for values interpolated to "true" time; the true time can eiether be specified in days since -simulation start, or as python datetime.date() instance. +simulation start, or as python datetime.date() instance. Some methods ............. @@ -891,7 +891,7 @@ The :code:`__contains__` method implements :code:`in` support. If you are uncertain whether the summary contains a key or not, you should use this function to check. In the example below a list of keys is read from the commandline, and we check whether they are in the -summary or not: +summary or not: .. code:: python @@ -921,7 +921,7 @@ variables for the group "NORTH" we can use the :code:`keys()` function as: from ert.ecl import EclSum sum = ecl.EclSum("ECLIPSE") - matching = sum.keys( "BPR:*" ) + sum.keys( "G*H:NORTH" ) + matching = sum.keys( "BPR:*" ) + sum.keys( "G*H:NORTH" ) iget_report( index ) @@ -936,13 +936,13 @@ following keywords: SEQHDR <--------. MINISTEP 0 | - PARAMS | + PARAMS | MINISTEP 1 | Report step 1 PARAMS | MINISTEP 2 | PARAMS | SEQHDR <---------+ - MINISTEP 3 | + MINISTEP 3 | PARAMS | Report step 2 MINISTEP 4 | PARAMS | @@ -1014,13 +1014,13 @@ every 6 months: date = sum.start_date date_list = [] while date < sum.end_date: - date_list.append( date ) + date_list.append( date ) if date.month < 7: date = datetime.date( date.year , 7 , 1) else: date = datetime.date( date.year + 1 , 1 , 1) - # Get the values + # Get the values FOPT_vector = sum.get_interp_vector( "FOPT" , date_list = date_list ) # Print the results @@ -1066,7 +1066,7 @@ end_date = sum.end_date print "Simulation started.............: %s" % start_date print "Simulation ended...............: %s" % end_date -print "The simulation spans %s days...: %s" % (end_date - start_date).days +print "The simulation spans %s days...: %s" % (end_date - start_date).days start_time / end_time ,,,,,,,,,,,,,,,,,,,,, @@ -1093,7 +1093,7 @@ call to an EclSum method, it will fail hard. gt_index = sum.first_gt( "WWCT:OP_3" , 0.30) if gt_index < 0: print "The water cut in well OP_3 never exceeds 0.30" - else: + else: print "WWCT:OP_3 exceeds 0.30 after %g days." % sum.iget_days( gt_index ) lt_index = sum.first_lt("RPR:2" , 210) @@ -1109,7 +1109,7 @@ This method will return a numpy vector with all the values for the key key. The numpy vector type can then be used e.g. to plot or do other manipulations. - + numpy_days ,,,,,,,,,, @@ -1117,7 +1117,7 @@ This property will return a numpy vector with the number of simulation days. mpl_dates This property is a numpy vector of "time-values" in matplotlib format. Suitable when plotting with matplotlib. In the example below we fetch two vectors, and the simulation days from a -summary, and then print it all to the screen: +summary, and then print it all to the screen: .. code:: python from ert.ecl import EclSum @@ -1206,7 +1206,7 @@ following fields: mini_step : The ministep days : Days since simulation start date : The simulation date - mpl_date : A date format suitable for matplotlib + mpl_date : A date format suitable for matplotlib When iterating over a EclSumVector the return values will be in the form EclSumNode instances. The EclSumNode instances are created on diff --git a/python/docs/index.rst.in b/python/docs/index.rst.in index 9d688b5183..3304f0ee9f 100644 --- a/python/docs/index.rst.in +++ b/python/docs/index.rst.in @@ -5,8 +5,8 @@ Contents: .. toctree:: :maxdepth: 1 - :numbered: - + :numbered: + code/index api/ecl diff --git a/python/docs/latex/capt-of.sty b/python/docs/latex/capt-of.sty index b40978ad2c..dc39f2638d 100644 --- a/python/docs/latex/capt-of.sty +++ b/python/docs/latex/capt-of.sty @@ -8,20 +8,20 @@ %% ---------------------------------------------------------------------- %% The capt-off package -- float-style captions outside of floats %% Copyright (c) 2010 Robin Fairbairns -%% +%% %% This work may be distributed and/or modified under the conditions of the %% LaTeX Project Public License, either version 1.3c of this license or (at %% your option) any later version. The latest version of this license is in: %% http://www.latex-project.org/lppl.txt, and version 1.3c or later is part %% of all distributions of LaTeX version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `author-maintained'. -%% +%% %% This work consists of the files capt-of.dtx, capt-of.ins, and README %% and the derived files footmisc.sty (not distributed from the archive) %% and footmisc.pdf. %% ----------------------------------------------------------------------- -%% +%% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{capt-of}% [2009/12/29 v0.2 diff --git a/python/docs/latex/fncychap.sty b/python/docs/latex/fncychap.sty index f0a9c97e22..a4add7f026 100644 --- a/python/docs/latex/fncychap.sty +++ b/python/docs/latex/fncychap.sty @@ -8,7 +8,7 @@ % 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is Ulf Lindgren. % % This work consists of all files listed in manifest.txt. @@ -27,14 +27,14 @@ %%% Jan. 8th Modified package name base date option %%% Jan. 22th Modified FmN and FmTi for error in book.cls %%% \MakeUppercase{#}->{\MakeUppercase#} -%%% Apr. 6th Modified Lenny option to prevent undesired +%%% Apr. 6th Modified Lenny option to prevent undesired %%% skip of line. %%% Nov. 8th Fixed \@chapapp for AMS %%% %%% Revision 1.2 (1998) %%% %%% Feb. 11th Fixed appendix problem related to Bjarne -%%% Aug. 11th Fixed problem related to 11pt and 12pt +%%% Aug. 11th Fixed problem related to 11pt and 12pt %%% suggested by Tomas Lundberg. THANKS! %%% %%% Revision 1.3 (2004) @@ -65,7 +65,7 @@ %%% Francois (2007-01-05). %%% Reverted to \MakeUppercase{#} see rev 1.1, solved %%% problem with MakeUppercase and MakeLowercase pointed -%%% out by Marco Feuerstein (2007-06-06) +%%% out by Marco Feuerstein (2007-06-06) %%% Last modified Jul. 2007 @@ -252,7 +252,7 @@ \mghrulefill{\RW}\par\nobreak% \vskip \pyy}% \vskip 20\p@} - + \renewcommand{\DOTI}[1]{% \raggedright @@ -269,7 +269,7 @@ \DeclareOption{PetersLenny}{% -% five new lengths +% five new lengths \newlength{\bl} % bottom left : orig \space \setlength{\bl}{6pt} \newcommand{\BL}[1]{\setlength{\bl}{#1}} @@ -279,10 +279,10 @@ \newlength{\tl} % top left : orig 2pt \setlength{\tl}{2pt} \newcommand{\TL}[1]{\setlength{\tl}{#1}} -\newlength{\trr} % top right :orig 1pt +\newlength{\trr} % top right :orig 1pt \setlength{\trr}{1pt} \newcommand{\TR}[1]{\setlength{\trr}{#1}} -\newlength{\blrule} % top right :orig 1pt +\newlength{\blrule} % top right :orig 1pt \setlength{\trr}{0pt} \newcommand{\BLrule}[1]{\setlength{\blrule}{#1}} @@ -365,21 +365,21 @@ \parbox[b]{\textwidth}{% \rule[\py]{\RW}{\myhi}% \hskip -\RW% - \rule[\pyy]{\px}{\RW}% + \rule[\pyy]{\px}{\RW}% \hskip -\px% \raggedright% - \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD + \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD % \CNV\FmN{\@chapapp}\space\CNoV\thechapter %ORIGINAL \hskip\br% %MOD 1pt to \br - \mghrulefill{\RW}% - \rule{\RW}{\pyy}\par\nobreak% + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% \vskip -\baselineskip% \vskip -\pyy% \hskip \mylen% \mghrulefill{\RW}\par\nobreak% \vskip \pyy}% \vskip 20\p@} - + \renewcommand{\DOTI}[1]{% \raggedright @@ -416,7 +416,7 @@ \kern-\py\raise20pt% \hbox{\color[gray]{.5}\CNoV\thechapter}\\% } - + \renewcommand{\DOTI}[1]{% \nointerlineskip\raggedright% \fboxsep=\myhi% @@ -453,7 +453,7 @@ \addtolength{\py}{\myhi} \setlength{\pyy}{\py} \addtolength{\pyy}{-1\RW} - + \raggedright \CNV\FmN{\@chapapp}\space\CNoV\thechapter \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} @@ -500,7 +500,7 @@ \DeclareOption{Conny}{% \ChNameUpperCase - \ChTitleUpperCase + \ChTitleUpperCase \ChNameVar{\centering\Huge\rm\bfseries} \ChNumVar{\Huge} \ChTitleVar{\centering\Huge\rm} @@ -531,7 +531,7 @@ \DeclareOption{Rejne}{% \ChNameUpperCase - \ChTitleUpperCase + \ChTitleUpperCase \ChNameVar{\centering\Large\rm} \ChNumVar{\Huge} \ChTitleVar{\centering\Huge\rm} @@ -562,7 +562,7 @@ \setlength{\fboxrule}{\RW} \setlength{\mylen}{\textwidth} \addtolength{\mylen}{-2\RW} - \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} + \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} \setlength{\fboxrule}{\py} \vskip 60\p@ } @@ -573,7 +573,7 @@ \DeclareOption{Bjarne}{% \ChNameUpperCase - \ChTitleUpperCase + \ChTitleUpperCase \ChNameVar{\raggedleft\normalsize\rm} \ChNumVar{\raggedleft \bfseries\Large} \ChTitleVar{\raggedleft \Large\rm} @@ -605,14 +605,14 @@ \addtocounter{AlphaDecCnt}{-1} \addtocounter{AlphaCnt}{10} \fi - - + + \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi } \newcommand{\TheAlphaChapter}{% - - \ifinapp + + \ifinapp \thechapter \else \setcounter{AlphaCnt}{\c@chapter} @@ -622,10 +622,10 @@ \AlphaDecNo\AlphaNo \fi \fi - } + } \renewcommand{\DOCH}{% \mghrulefill{\RW}\par\nobreak - \CNV\FmN{\@chapapp}\par\nobreak + \CNV\FmN{\@chapapp}\par\nobreak \CNoV\TheAlphaChapter\par\nobreak \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak \vskip 20\p@ @@ -647,7 +647,7 @@ \ProcessOptions* \relax \ifusecolor - \RequirePackage{color} + \RequirePackage{color} \fi \def\@makechapterhead#1{% \vspace*{50\p@}% diff --git a/python/docs/latex/framed.sty b/python/docs/latex/framed.sty index b044e96593..2ed484196b 100644 --- a/python/docs/latex/framed.sty +++ b/python/docs/latex/framed.sty @@ -2,13 +2,13 @@ % Copyright (C) 1992-2011 by Donald Arseneau (asnd@triumf.ca) % These macros may be freely transmitted, reproduced, or modified % for any purpose provided that this notice is left intact. -% +% %====================== Begin Instructions ======================= % % framed.sty % ~~~~~~~~~~ -% Create framed, shaded, or differently highlighted regions that can -% break across pages. The environments defined are +% Create framed, shaded, or differently highlighted regions that can +% break across pages. The environments defined are % framed - ordinary frame box (\fbox) with edge at margin % oframed - framed with open top/bottom at page breaks % shaded - shaded background (\colorbox) bleeding into margin @@ -16,7 +16,7 @@ % snugshade - shaded with tight fit around text (esp. in lists) % snugshade* - like snugshade with shading edge at margin % leftbar - thick vertical line in left margin -% +% % to be used like % \begin{framed} % copious text @@ -26,21 +26,21 @@ % definition of new environments that take multi-line material, % wrap it with some non-breakable formatting (some kind of box or % decoration) and allow page breaks in the material. Such environments -% are defined to declare (or use) \FrameCommand for applying the boxy +% are defined to declare (or use) \FrameCommand for applying the boxy % decoration, and \MakeFramed{settings} ... \endMakeFramed wrapped % around the main text argument (environment body). % % The "framed" environment uses "\fbox", by default, as its "\FrameCommand" % with the additional settings "\fboxrule=\FrameRule" and "\fboxsep=\FrameSep". -% You can change these lengths (using "\setlength") and you can change -% the definition of "\FrameCommand" to use much fancier boxes. +% You can change these lengths (using "\setlength") and you can change +% the definition of "\FrameCommand" to use much fancier boxes. % % In fact, the "shaded" environment just redefines \FrameCommand to be % "\colorbox{shadecolor}" (and you have to define the color `"shadecolor"': % "\definecolor{shadecolor}..."). % % Although the intention is for other packages to define the varieties -% of decoration, a command "\OpenFbox" is defined for frames with open +% of decoration, a command "\OpenFbox" is defined for frames with open % tops or bottoms, and used for the "oframed" environment. This facility % is based on a more complex and capable command "\CustomFBox" which can % be used for a wider range of frame styles. One such style of a title-bar @@ -55,7 +55,7 @@ % frame, then the text should be inserted by \FrameCommand so it cannot % be separated from the body. % -% The contents of the framed regions are restricted: +% The contents of the framed regions are restricted: % Floats, footnotes, marginpars and head-line entries will be lost. % (Some of these may be handled in a later version.) % This package will not work with the page breaking of multicol.sty, @@ -75,9 +75,9 @@ % % There are actually four variants of "\FrameCommand" to allow different % formatting for each part of an environment broken over pages. Unbroken -% text is adorned by "\FrameCommand", whereas split text first uses +% text is adorned by "\FrameCommand", whereas split text first uses % "\FirstFrameCommand", possibly followed by "\MidFrameCommand", and -% finishing with "\LastFrameCommand". The default definitions for +% finishing with "\LastFrameCommand". The default definitions for % these three just invokes "\FrameCommand", so that all portions are % framed the same way. See the oframe environment for use of distinct % First/Mid/Last frames. @@ -98,8 +98,8 @@ % features/improvements that should be made. Also, a detailed manual needs % to be written. Nevertheless, starting with version 0.5 it should be bug-free. % -% ToDo: -% Test more varieties of list +% ToDo: +% Test more varieties of list % Improve and correct documentation % Propagation of \marks % Handle footnotes (how??) floats (?) and marginpars. @@ -107,7 +107,7 @@ % Make inner contents height/depth influence placement. %======================== End Instructions ======================== -\ProvidesPackage{framed}[2011/10/22 v 0.96: +\ProvidesPackage{framed}[2011/10/22 v 0.96: framed or shaded text with page breaks] \newenvironment{framed}% using default \FrameCommand @@ -129,7 +129,7 @@ \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed} -% snugshde: Shaded environment that +% snugshde: Shaded environment that % -- uses the default \fboxsep instead of \FrameSep % -- leaves the text indent unchanged (shading bleeds out) % -- eliminates possible internal \topsep glue (\@setminipage) @@ -142,17 +142,17 @@ \colorbox{shadecolor}{##1}\hskip-\fboxsep % There is no \@totalrightmargin, so: \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}% - \MakeFramed {\advance\hsize-\width + \MakeFramed {\advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize \@setminipage}% }{\par\unskip\@minipagefalse\endMakeFramed} \newenvironment{snugshade*}{% - \def\FrameCommand##1{\hskip\@totalleftmargin + \def\FrameCommand##1{\hskip\@totalleftmargin \colorbox{shadecolor}{##1}% % There is no \@totalrightmargin, so: \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}% - \MakeFramed {\advance\hsize-\width + \MakeFramed {\advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize \advance\labelsep\fboxsep \@setminipage}% @@ -176,7 +176,7 @@ % \CustomFBox is like an amalgamation of \fbox and \@frameb@x, % so it can be used by an alternate to \fbox or \fcolorbox, but % it has more parameters for various customizations. -% Parameter #1 is inserted (in vmode) right after the top rule +% Parameter #1 is inserted (in vmode) right after the top rule % (useful for a title or assignments), and #2 is similar, but % inserted right above the bottom rule. % The thicknesses of the top, bottom, left, and right rules are @@ -223,7 +223,7 @@ } -% A particular type of titled frame with continuation marks. +% A particular type of titled frame with continuation marks. % Parameter #1 is the title, repeated on each page. \newenvironment{titled-frame}[1]{% \def\FrameCommand{\fboxsep8pt\fboxrule2pt @@ -241,11 +241,11 @@ % \TitleBarFrame[marker]{title}{contents} % Frame with a label at top, optional continuation marker at bottom right. -% Frame color is TFFrameColor and title color is a contrasting TFTitleColor; +% Frame color is TFFrameColor and title color is a contrasting TFTitleColor; % both need to be defined before use. The frame itself use \fboxrule and % \fboxsep. If the title is omitted entirely, the title bar is omitted % (use a blank space to force a blank title bar). -% +% \newcommand\TitleBarFrame[3][]{\begingroup \ifx\delimiter#1\delimiter \let\TF@conlab\@empty @@ -276,7 +276,7 @@ \kern-\ht\@tempboxa \box\@tempboxa \endgroup - \nointerlineskip + \nointerlineskip \kern-0.04pt\relax \fi } @@ -295,7 +295,7 @@ % insert pre-penalties and skips \begingroup \skip@\lastskip - \if@nobreak\else + \if@nobreak\else \penalty9999 % updates \page parameters \ifdim\pagefilstretch=\z@ \ifdim\pagefillstretch=\z@ % not infinitely stretchable, so encourage a page break here @@ -306,9 +306,9 @@ \penalty\z@ % Give a stretchy breakpoint that will always be taken in preference % to the \penalty 9999 used to update page parameters. The cube root - % of 10000/100 indicates a multiplier of 0.21545, but the maximum + % of 10000/100 indicates a multiplier of 0.21545, but the maximum % calculated badness is really 8192, not 10000, so the multiplier - % is 0.2301. + % is 0.2301. \advance\skip@ \z@ plus-.5\baselineskip \advance\skip@ \z@ plus-.231\height \advance\skip@ \z@ plus-.231\skip@ @@ -322,7 +322,7 @@ \penalty9999 \vskip -2\baselineskip \vskip-\height \penalty9999 % updates \pagetotal |\message{After clearout, \pagetotal=\the\pagetotal, \pagegoal=\the\pagegoal. }% - \fb@adjheight + \fb@adjheight \setbox\@tempboxa\vbox\bgroup #1% Modifications to \hsize (can use \width and \height) \textwidth\hsize \columnwidth\hsize @@ -334,7 +334,7 @@ \penalty-100 % (\hrule moves depth into height) \egroup %%% {\showoutput\showbox\@tempboxa}% - \begingroup + \begingroup \fb@put@frame\FrameCommand\FirstFrameCommand \endgroup \@minipagefalse % In case it was set and not cleared @@ -342,7 +342,7 @@ % \fb@put@frame takes the contents of \@tempboxa and puts all, or a piece, % of it on the page with a frame (\FrameCommand, \FirstFrameCommand, -% \MidFrameCommand, or \LastFrameCommand). It recurses until all of +% \MidFrameCommand, or \LastFrameCommand). It recurses until all of % \@tempboxa has been used up. (\@tempboxa must have zero depth.) % #1 = attempted framing command, if no split % #2 = framing command if split @@ -390,7 +390,7 @@ \vskip \fb@frh \@plus\pagestretch \@minus.8\pageshrink \kern137sp\kern-137sp\penalty-30 \unvbox\@tempboxa}% - \edef\fb@resto@set{\boxmaxdepth\the\boxmaxdepth + \edef\fb@resto@set{\boxmaxdepth\the\boxmaxdepth \splittopskip\the\splittopskip}% \boxmaxdepth\z@ \splittopskip\z@ | \message{^^JPadded box of size \the\ht\@tempboxa\space split to \the\dimen@}% @@ -400,7 +400,7 @@ | \toks98\expandafter{\splitbotmark}% | \message{Marks are: \the\toks99, \the\toks98. }% \setbox\tw@\vbox{\unvbox\tw@}% natural-sized -| \message{Natural height of split box is \the\ht\tw@, leaving +| \message{Natural height of split box is \the\ht\tw@, leaving | \the\ht\@tempboxa\space remainder. }% % If the split-to size > (\vsize-\topskip), then set box to full size. \begingroup @@ -430,7 +430,7 @@ \ifdim\lastkern=-137sp % whole box went to next page | \message{box split at beginning! }% % need work here??? - \egroup \fb@resto@set \eject % (\vskip for frame size was discarded) + \egroup \fb@resto@set \eject % (\vskip for frame size was discarded) \fb@adjheight \fb@put@frame#1#2% INSERTED ??? \else % Got material split off at the head @@ -473,14 +473,14 @@ % measure width and height added by frame (#1 = frame command) % call results \fb@frw and \fb@frh -% todo: a mechanism to handle wide frame titles +% todo: a mechanism to handle wide frame titles \newdimen\fb@frw \newdimen\fb@frh \def\fb@sizeofframe#1{\begingroup - \setbox\z@\vbox{\vskip-5in \hbox{\hskip-5in + \setbox\z@\vbox{\vskip-5in \hbox{\hskip-5in #1{\hbox{\vrule \@height 4.7in \@depth.3in \@width 5in}}}% \vskip\z@skip}% -| \message{Measuring frame addition for \string#1 in \@currenvir\space +| \message{Measuring frame addition for \string#1 in \@currenvir\space | gives ht \the\ht\z@\space and wd \the\wd\z@. }% | %{\showoutput\showbox\z@}% \global\fb@frw\wd\z@ \global\fb@frh\ht\z@ @@ -510,11 +510,11 @@ % Height of frame above first baseline when frame starts a page: \providecommand\FrameHeightAdjust{6pt} -% \FrameRestore has parts of \@parboxrestore, performing a similar but +% \FrameRestore has parts of \@parboxrestore, performing a similar but % less complete restoration of the default layout. See how it is used in -% the "settings" argument of \MakeFrame. Though not a parameter, \hsize +% the "settings" argument of \MakeFrame. Though not a parameter, \hsize % should be set to the desired total line width available inside the -% frame before invoking \FrameRestore. +% frame before invoking \FrameRestore. \def\FrameRestore{% \let\if@nobreak\iffalse \let\if@noskipsec\iffalse @@ -522,18 +522,18 @@ \let\'\@acci\let\`\@accii\let\=\@acciii % \message{FrameRestore: % \@totalleftmargin=\the \@totalleftmargin, - % \rightmargin=\the\rightmargin, + % \rightmargin=\the\rightmargin, % \@listdepth=\the\@listdepth. }% % Test if we are in a list (or list-like paragraph) - \ifnum \ifdim\@totalleftmargin>\z@ 1\fi + \ifnum \ifdim\@totalleftmargin>\z@ 1\fi \ifdim\rightmargin>\z@ 1\fi \ifnum\@listdepth>\z@ 1\fi 0>\z@ % \message{In a list: \linewidth=\the\linewidth, \@totalleftmargin=\the\@totalleftmargin, - % \parshape=\the\parshape, \columnwidth=\the\columnwidth, \hsize=\the\hsize, + % \parshape=\the\parshape, \columnwidth=\the\columnwidth, \hsize=\the\hsize, % \labelwidth=\the\labelwidth. }% \@setminipage % snug fit around the item. I would like this to be non-global. % Now try to propageate changes of width from \hsize to list parameters. - % This is deficient, but a more advanced way to indicate modification to text + % This is deficient, but a more advanced way to indicate modification to text % dimensions is not (yet) provided; in particular, no separate left/right % adjustment. \advance\linewidth-\columnwidth \advance\linewidth\hsize diff --git a/python/docs/latex/titlesec.sty b/python/docs/latex/titlesec.sty index ab4d0177cc..171ffbf8de 100644 --- a/python/docs/latex/titlesec.sty +++ b/python/docs/latex/titlesec.sty @@ -15,9 +15,9 @@ % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. -% +% % This work has the LPPL maintenance status "maintained". -% +% % The Current Maintainer of this work is Javier Bezos. % % Notes @@ -103,7 +103,7 @@ \def\@notdefinable{% \PackageError{titlesec}% {Incompatible package}% - {Titlesec cannot continue defining its own macros + {Titlesec cannot continue defining its own macros because\MessageBreak \@backslashchar\reserved@a\space is already used by other package, the class\MessageBreak @@ -157,7 +157,7 @@ \expandafter\noexpand\csname ttl@#2class\endcsname{\ttl@a}}}% \if@tempswa \expandafter\@gobble - \else + \else \expandafter\@firstofone \fi {\@ifnextchar[% @@ -206,7 +206,7 @@ \ttl@plus\z@ \ttl@minus\z@ \afterassignment\ttl@assign@ii - \dimen@\the#3, % <- space + \dimen@\the#3, % <- space #1 = #2\dimen@ plus #2\ttl@plus minus #2\ttl@minus} @@ -300,9 +300,9 @@ \def\ttl@a##1{\csname ttl@key@##1\endcsname}% Used as elt in try \ttl@trylist \ifttl@explicit - \def\ttl@passexplicit{\ttl@case{#4}}% + \def\ttl@passexplicit{\ttl@case{#4}}% \ttl@c{#4}{#2}{#3}{}% ttl@c is returned by ttl@try with ttlf@... - \else + \else \let\ttl@passexplicit\ttl@case \ttl@c{#2}{#3}{#4}% ttl@c is returned by ttl@try with ttlf@... \fi @@ -326,7 +326,7 @@ % \ttl@write writes marks and toc. tocdepth is taken care of when % the toc is typesetted and not here. Used always through % ttl@savewrite, which is reset to \@empty to avoid duplicated -% calls. +% calls. \def\ttl@write#1#2{% \ttl@blinemarks @@ -491,7 +491,7 @@ {\PackageWarning{titlesec}{Page style in part class ignored}}% \global\@afterindenttrue \ifcase#5 \global\@afterindentfalse \fi - \ttl@assign\@tempskipb#4\relax\aftertitleunit + \ttl@assign\@tempskipb#4\relax\aftertitleunit \ttl@select{#6}{#1}{#2}{#7}% \ttl@finmarks \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}% @@ -625,7 +625,7 @@ % +-----------------+ % | S H A P E S | % +-----------------+ -% +% % % Reformatting Titles: Interface % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -923,14 +923,14 @@ \ifx\sectiontitle\@empty \let\ttl@replace\space \else - \PackageWarning{titlesec}{Ignoring `floatps' without + \PackageWarning{titlesec}{Ignoring `floatps' without `pagestyles'. This option is now deprecated.}% \fi} \DeclareOption{psfloats}{% \ifx\sectiontitle\@empty \let\ttl@replace\@empty \else - \PackageWarning{titlesec}{Ignoring `psfloats' without + \PackageWarning{titlesec}{Ignoring `psfloats' without `pagestyles'}% \fi} @@ -1126,7 +1126,7 @@ \catcode`\noexpand\@=\the\catcode`\@}% \ttl@d \newpagestyle} - + \providecommand\renewpagestyle{% \let\ttl@compatps\@empty % marks the ``old interface'' \makeatletter @@ -1223,7 +1223,7 @@ \if@tempswa \titleformat#8% {\ttl@fil\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}% - {\z@}\ttl@passexplicit + {\z@}\ttl@passexplicit \else \titleformat#8% {#7}{\@seccntformat{#2}}% @@ -1333,7 +1333,7 @@ {\z@} {\z@\@plus1fil} {\z@\@plus1fil} - + \titlespacing*\chapter {\z@}% {50\p@}% diff --git a/python/docs/latex/upquote.sty b/python/docs/latex/upquote.sty index 6b9d754f2a..b39672e7f7 100644 --- a/python/docs/latex/upquote.sty +++ b/python/docs/latex/upquote.sty @@ -5,14 +5,14 @@ %% The original source files were: %% %% upquote.dtx (with options: `package') -%% +%% %% Copyright (C) 2000 by Michael A. Covington %% Copyright (C) 2003 by Frank Mittelbach %% Copyright (C) 2012 by Markus Kuhn (current maintainer) -%% +%% %% Released under the LaTeX Project Public License v1.3c or later %% See http://www.latex-project.org/lppl.txt -%% +%% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{upquote} [2012/04/19 v1.3 upright-quote and grave-accent glyphs in verbatim] diff --git a/python/docs/latex/wrapfig.sty b/python/docs/latex/wrapfig.sty index ea85e1b0d4..d3cd4e7e36 100644 --- a/python/docs/latex/wrapfig.sty +++ b/python/docs/latex/wrapfig.sty @@ -1,7 +1,7 @@ % W R A P F I G . S T Y ver 3.6 (Jan 31, 2003) % % Copyright (C) 1991-2003 by Donald Arseneau -% This software is released under the terms of the LaTeX Project +% This software is released under the terms of the LaTeX Project % public license. % % Environments "wrapfigure" and "wraptable" place a figure or table @@ -17,7 +17,7 @@ % length \wrapoverhang, which is normally zero. % The number of wrapped text lines is normally calculated from the height % of the figure, but may be specified manually ("12" above). -% +% % Environments similar to "wrapfigure" and "wraptable" may be easily added, % or invoked by "\begin{wrapfloat}{float_name}" % @@ -56,8 +56,8 @@ \def\WF@rapt[#1]#2{% final two args: #1 = overhang, #2 = width, \gdef\WF@ovh{#1}% hold overhang for later, when \width is known \global\setbox\WF@box\vtop\bgroup \setlength\hsize{#2}% - \ifdim\hsize>\z@ \@parboxrestore \else - \setbox\z@\hbox\bgroup \let\wf@@caption\caption \let\caption\wf@caption + \ifdim\hsize>\z@ \@parboxrestore \else + \setbox\z@\hbox\bgroup \let\wf@@caption\caption \let\caption\wf@caption \ignorespaces \fi} \def\wf@caption{\relax @@ -233,7 +233,7 @@ \let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}% \fi\fi} -\newcommand{\WFclear}{\par +\newcommand{\WFclear}{\par \ifvoid\WF@box\else \vskip\bigskipamount \box\WF@box \let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}% \fi \global\c@WF@wrappedlines\z@ \WF@finale} @@ -262,13 +262,13 @@ % Support float.sty: float styles and \newfloat. Make \newfloat{foo} % define the `wrapfoo' environment. Support \newfloat from memoir.cls % and \newfloatlist from ccaption.sty. -% +% \let\WF@floatstyhook\relax \@ifundefined{newfloat}{}{% There is a \newfloat command % \@ifundefined{restylefloat}{ - % \newfloat comes from somewhere besides float.sty + % \newfloat comes from somewhere besides float.sty \@ifclassloaded{memoir}{ \toks@=\expandafter\expandafter\expandafter {\csname\string\newfloat\endcsname [{#1}]{#2}{#3}{#4}% @@ -285,7 +285,7 @@ \@ifundefined{float@restyle}{% older float.sty \toks@=\expandafter{\restylefloat{#1}% (env may or may not be defined) \@namedef{wrap#1}{\def\@captype{#1}\@nameuse{fst@#1}% - \def\WF@floatstyhook{\let\@currbox\WF@box \columnwidth\wd\WF@box + \def\WF@floatstyhook{\let\@currbox\WF@box \columnwidth\wd\WF@box \global\setbox\WF@box\float@makebox}% \@ifnextchar[\WF@wr{\WF@wr[]}}% \expandafter\let\csname endwrap#1\endcsname \endwrapfigure @@ -293,7 +293,7 @@ }{% newer float.sty: use \float@restyle, and \float@makebox takes width arg \toks@=\expandafter{\float@restyle{#1}% (env may or may not be defined) \@namedef{wrap#1}{\def\@captype{#1}\@nameuse{fst@#1}% - \def\WF@floatstyhook{\let\@currbox\WF@box + \def\WF@floatstyhook{\let\@currbox\WF@box \global\setbox\WF@box\float@makebox{\wd\WF@box}}% \@ifnextchar[\WF@wr{\WF@wr[]}}% \expandafter\let\csname endwrap#1\endcsname \endwrapfigure @@ -304,7 +304,7 @@ }% End float.sty handler }% End redefinitions of \newfloat -% Support ccaption.sty +% Support ccaption.sty \@ifundefined{\string\newfloatlist}{}{ \toks@=\expandafter\expandafter\expandafter {\csname\string\newfloatlist\endcsname [{#1}]{#2}{#3}{#4}{#5}% @@ -375,7 +375,7 @@ New wrapping environments may be added when new float types are defined "wrapfigure", "wraptable", or something else may be invoked using the "wrapfloat" environment, as in "\begin{wrapfloat}{figure}{O}{5cm}". -To use float.sty properly, load package "float" before "wrapfig", +To use float.sty properly, load package "float" before "wrapfig", and declare any new float types after loading both. Likewise for ccaption.sty and "\newfloatlist" and memoir.cls and its "\newfloat". @@ -407,8 +407,8 @@ final copy. Here are some tips for good placement: - The environment must not be placed in special places like lists. - For esthetic reasons, only plain text should wrap around the figure. - Section titles and big equations look bad; lists are bad if the figure - is on the left. (All these function properly, they just don't look + Section titles and big equations look bad; lists are bad if the figure + is on the left. (All these function properly, they just don't look very good.) Small equations look fine. - It is convenient to begin the environment between paragraphs, but if @@ -443,10 +443,10 @@ cause poor placement and bad formatting. \section {Sizing and optional overhang} Parameter "#4" (the second required parameter) is the width of the figure -or table. Given the way that \LaTeX\ puts just about everything into boxes -with the current line-width, the width parameter will take precedence over -whatever natural width the figure has. In particular, the caption is always -typeset with the specified width. If the figure is wider than the space +or table. Given the way that \LaTeX\ puts just about everything into boxes +with the current line-width, the width parameter will take precedence over +whatever natural width the figure has. In particular, the caption is always +typeset with the specified width. If the figure is wider than the space allotted, you will get an ``overfull box'' warning. However, if you specify a width of *zero* ("0pt"), the actual width of @@ -481,7 +481,7 @@ can use a special unit called "\width" meaning the width of the figure. For example, "[0.5\width]" makes the center of the figure sit on the edge of the text, and "[\width]" puts the figure entirely in the margin (and the adjacent text is indented by just "\columnsep"). This "\width" -is the actual width of the wrapfigure, which may be greater than the +is the actual width of the wrapfigure, which may be greater than the declared width. diff --git a/python/ecl/eclfile/__init__.py b/python/ecl/eclfile/__init__.py index 33f7d207a0..ee2ea9f7a4 100644 --- a/python/ecl/eclfile/__init__.py +++ b/python/ecl/eclfile/__init__.py @@ -1,6 +1,6 @@ """ The eclfile package contains several classes for working directly with ECLIPSE -files. +files. fortio/FortIO: This is functionality to read and write binary fortran files. diff --git a/python/ecl/grid/ecl_grid.py b/python/ecl/grid/ecl_grid.py index e73edfee90..b29901b015 100644 --- a/python/ecl/grid/ecl_grid.py +++ b/python/ecl/grid/ecl_grid.py @@ -1452,17 +1452,17 @@ def export_position(self, index_frame): return data def export_corners(self, index_frame): - """Exports cell corner position coordinates to a numpy vector (matrix). - - Index_fram must be a pandas dataframe with the same structure - as obtained from export_index. + """Exports cell corner position coordinates to a numpy vector (matrix). + + Index_fram must be a pandas dataframe with the same structure + as obtained from export_index. Example of a row of the output matrix: 0 1 2 .... 21 22 23 x1 y1 z1 .... x8 y8 z8 In total there are eight 8 corners. They are described as follows: The corners in a cell are numbered 0 - 7, where corners 0-3 constitute - one layer and the corners 4-7 consitute the other layer. Observe + one layer and the corners 4-7 consitute the other layer. Observe that the numbering does not follow a consistent rotation around the face: diff --git a/python/tests/ecl_tests/test_layer.py b/python/tests/ecl_tests/test_layer.py index 69cba27546..028b02c34e 100644 --- a/python/tests/ecl_tests/test_layer.py +++ b/python/tests/ecl_tests/test_layer.py @@ -95,7 +95,7 @@ def test_fault_barrier(self): with open("faults.grdecl", "w") as f: f.write( """FAULTS -\'F\' 105 107 50 50 1 43 \'Y\' / +\'F\' 105 107 50 50 1 43 \'Y\' / \'F\' 108 108 50 50 1 43 \'X\' / \'F\' 108 108 50 50 22 43 \'Y\' / \'F\' 109 109 49 49 1 43 \'Y\' / diff --git a/python/txt-doc/devel.txt b/python/txt-doc/devel.txt index 0b72477791..4ac0fdd086 100644 --- a/python/txt-doc/devel.txt +++ b/python/txt-doc/devel.txt @@ -36,7 +36,7 @@ quite good system for transparently mapping between Python types and C types. More extensive documentation of ctypes is available at: http://www.python.org/org/library/ctypes.html -2.1 Loading the shared library +2.1 Loading the shared library In the ert Python wrapping loading the shared library is handled by the ert.util.clib function load(). When the shared library has been @@ -48,8 +48,8 @@ of shared libraries is through the ctypes.CDLL() call like: however in the ert py library this is wrapped by the function load() in the ert.util.clib module: - - import ert.util.clib as clib + + import ert.util.clib as clib lib_handle = clib.load("name1" , "name2" , "name3") The clib.load() function will only load one library, but it can take @@ -65,7 +65,7 @@ will be available as python function attributes of the library handle. I.e. if loading the standard library like: clib_handle = clib.load( "libc" ) - + The attribute clib_handle.getenv will be a pointer to a Python function object which wraps the standard library getenv() function. Before this is really usable we have to "tell" the function @@ -75,7 +75,7 @@ object, more details of the prototype process can be found in section 4.2 -2.2 Type mappings +2.2 Type mappings The ctypes library automagically handles conversion between common C-types and Python types, so for the example above we would be able to @@ -93,28 +93,28 @@ maintained in the CWrapper class in ert.cwrap.cwrap.py. During initialization of the ert Python code there are many calls associating the name of a C type you whish to use in the prototype process (as a string) and the corresponding Python type: - + CWrapper.registerType( "int" , ctypes.c_int ) - CWrapper.registerType( "double" , ctypes.c_double ) - CWrapper.registerType( "char*" , ctypes.c_char_p ) + CWrapper.registerType( "double" , ctypes.c_double ) + CWrapper.registerType( "char*" , ctypes.c_char_p ) CWrapper.registerType( "int*" , ctypes.POINTER( ctypes.c_int )) - + 2.2.1 Fundamental types All the fundamental C types are known to the ctypes library, and -transparently converted <-> the correct Python type. +transparently converted <-> the correct Python type. - C type ctypes Python type + C type ctypes Python type -------------------------------------------------------- int c_int int float c_float float - double c_double double + double c_double double ..... char * (NULL terminated) c_char_p string - -------------------------------------------------------- + -------------------------------------------------------- All these types can be created by calling them with an optional initializer of the correct type and value: @@ -152,7 +152,7 @@ return value: | The mapping of types generally works quite well, however | | observe that the return type of C functions which return | | an instance pointer is NOT the current class, but | - | c_void_p, that is because this return value is | + | c_void_p, that is because this return value is | | internalized in the c_ptr attribute of the object. | \----------------------------------------------------------/ @@ -202,8 +202,8 @@ to complete) follow roughly the same structure: 2.2. Create the Python class - based on the prototype functions from 2.1 above. - } - + } + The following excerpt from ecl_kw.y illustrates this: ------------------------------------------------------------ @@ -213,18 +213,18 @@ The following excerpt from ecl_kw.y illustrates this: Class EclKW: <-------------� # Pure Python code to implement the EclKW class, | # based on the functions prototyped below. | Step 3 - .... <-------------� - + .... <-------------� + # Create a wrapper instance which wraps the libecl library. <--------� cwrapper = CWrapper( libecl.lib ) | - | + | # Register the type mapping "ecl_kw" <-> EclKW | Step 2 cwrapper.registerType( "ecl_kw" , EclKW ) | | # Prototype the functions needed to implement the Python class | cfunc.alloc_new = cwrapper.prototype("long ecl_kw_alloc( char* , int , int )") - cfunc.free = cwrapper.prototype("void ecl_kw_free( ecl_kw )") | - .... <--------� + cfunc.free = cwrapper.prototype("void ecl_kw_free( ecl_kw )") | + .... <--------� ------------------------------------------------------------ These three steps are described in more detail in 4.1 - 4.3 below. @@ -255,14 +255,14 @@ which takes one (char *) input and returns a (char *) pointer this would be: clib_handle.getenv.restype = ctypes.c_char_p - clib_handle.getenv.argtypes = [ ctypes.c_char_p ] - + clib_handle.getenv.argtypes = [ ctypes.c_char_p ] + In the ert python code this is achieved with the helper class CWrapper implemented in the module ert.cwrap.cwrap: from ert.cwrap.cwrap import CWrapper - lib = clib.load( "libc" ) + lib = clib.load( "libc" ) wrapper = CWRapper( lib ) getenv = wrapper.prototype("char* getenv( char* )") @@ -275,7 +275,7 @@ All the calls to the prototype() method are typically assembled in the bottom of the file implementing a class defintion. E.g. the bottom of the ecl_kw.py file looks like this: - # 1: Load the shared library + # 1: Load the shared library cwrapper = CWrapper( libecl.lib ) # 2: Register type mapping ecl_kw <--> EclKW @@ -333,7 +333,7 @@ roughly the same structure: * The __del__ function is called when the Python object is garbage collected, then the corresponding C free function should be called, e.g. ecl_grid_free(). - + @@ -356,16 +356,16 @@ indeed be called. The EclKW class illustrates this quite well. Broadly speaking you can instantiate an EclKW instance in two ways: - * Through the EclwKW.new() function + * Through the EclwKW.new() function * As a reference to an existing ecl_kw through an EclFile instance. In the first case the c_ptr of the EclKW instance will point to fresh storage dedicated to this EclKW, and when the EclKW instance goes out of scope the memory should be freed with a call to the C function -ecl_kw_free(). +ecl_kw_free(). - EclKW (Python) ecl_kw (C) - c_ptr + EclKW (Python) ecl_kw (C) + c_ptr | --------- \--------------->| PORO | | REAL | @@ -373,7 +373,7 @@ ecl_kw_free(). |-------| | 0.15 | | 0.19 | - | ... | + | ... | --------- @@ -383,11 +383,11 @@ containing many ecl_kw instances. We can then query the EclFile instance to get reference to the various ecl_kw keywords, i.e. for a small restart file: - -EclFile (Python) ecl_file (C) EclKW (Python) + +EclFile (Python) ecl_file (C) EclKW (Python) c_ptr c_ptr | ------------ | - \---------------->| PRESSURE | | + \---------------->| PRESSURE | | | SGAS <---+------------------/ | SWAT | | .... | diff --git a/python/txt-doc/import.txt b/python/txt-doc/import.txt index f1d3ab0119..677b017880 100644 --- a/python/txt-doc/import.txt +++ b/python/txt-doc/import.txt @@ -6,7 +6,7 @@ importing in general, and the conventions used in ert python in special. Example module (file: example.py) -------------- - + def example_sum(a,b): return a+b @@ -15,7 +15,7 @@ Example module (file: example.py) class ExampleClass: def __init__(self , **kwargs): .... - + def method( self , arg1 , arg2 ) .... @@ -35,7 +35,7 @@ namespace prefix: import example - var = example.example_variable + var = example.example_variable sum = example.example_sum( 100 , 100) instance = example.ExampleClass() @@ -77,7 +77,7 @@ import: Here we have imported the example_variable symbol from the 'example' module and renamed it to 'EXAMPLE_VARIABLE' in the calling scope. - + 2. Packages @@ -139,7 +139,7 @@ instance we have to go through the following hoops: .... .... grid = ert.ecl.ecl_grid.EclGrid( "ECLIPSE.EGRID" ) - | | | | + | | | | | | | | Package--/ | | \-------- Symbol (Class definition) | | @@ -151,8 +151,8 @@ simplify this using the from import as: from ert.ecl.ecl_grid import EclGrid <-- Explicitly import symbol .... into current namespace. .... - grid = EclGrid( "ECLIPSE.EGRID" ) - + grid = EclGrid( "ECLIPSE.EGRID" ) + By convention the ert python distribution offers some limited simplifications of this procedure. @@ -204,7 +204,7 @@ they can of course be changed: grid = EclGrid("ECLIPSE.EGRID") To get all the symbols from the ecl package directly into the - current namespace, or alternatively you can use + current namespace, or alternatively you can use import ert.ecl.ecl as ecl .... @@ -214,14 +214,14 @@ they can of course be changed: common 'ecl' prefix. The functionality of the xxx module in the xxx package could have been achieved with the __init__.py - but then you would get it unconditionally. - + 3. The ert python distribution is organized with one subpackage per library in the ERT C distribution. In each subpackage there is a module with the same name as the library which this package wraps, i.e. the ecl package, which wraps the libecl library, contains a module libecl.py. This module again contains the ctypes trickery to actually load the libecl.so shared library. - + [1]: The big disclaimer here is that you can use the '__init__.py' to perform additional action when importing the 'ert' package. In diff --git a/python/txt-doc/install.txt b/python/txt-doc/install.txt index a762c7f01a..c93fa2e78d 100644 --- a/python/txt-doc/install.txt +++ b/python/txt-doc/install.txt @@ -67,7 +67,7 @@ ert-python: ImportError: No module named ert The ert/ directory is not located in the right place, or the - PYTHONPATH variable has not been updated correctly. + PYTHONPATH variable has not been updated correctly. 2. The runtime linker can not find one of the shared libraries: @@ -84,5 +84,5 @@ ert-python: raise ImportError( error_msg ) ImportError: Sorry - failed to load shared library:libg2c.so.0 - Tried in: + Tried in: You might need to update your LD_LIBRARY_PATH variable diff --git a/python/txt-doc/tips.txt b/python/txt-doc/tips.txt index ce4483e65d..bc01b31a7c 100644 --- a/python/txt-doc/tips.txt +++ b/python/txt-doc/tips.txt @@ -1,6 +1,6 @@ -Table of contents: +Table of contents: - 1. Static and shared libraries + 1. Static and shared libraries 2. About gen_data / gen_param and gen_obs. 3. Some tips for implementing a obs_script 4. About the ERT filesystem @@ -8,8 +8,8 @@ Table of contents: ********************************************************************** -1. Static and shared libraries ------------------------------- +1. Static and shared libraries +------------------------------ The ert application is based on the internal libraries libutil,libecl,librms,libsched,libconfig,libplot,libjob_queue and @@ -26,7 +26,7 @@ where to locate the internal libraries, but no further -dynamic / libraries can be found the resulting linking will be: * All the internal libraries are linked statically. - + * All standard libraries like libz, libpthread and liblapack are linked dynamically. @@ -107,9 +107,9 @@ there are some significant disdvantages: happens is that: - The user error is not discovered before long out in the - simulation, and when discovered possibly only as a + simulation, and when discovered possibly only as a util_abort(). - + - User error is not discovered at all - the user just gets other results than anticipated. @@ -168,7 +168,7 @@ is from september/october 2010 - and there are rumors to be a bug or two here, my first suspect is with save/restore functionality in the functions gen_data_config_update_active() and gen_data_config_load_active(). - + ********************************************************************** 3. Some tips for implementing a obs_script @@ -205,7 +205,7 @@ Concrete tips: 2. I suggest that the only "rule" for the script is that it should produce a stdout stream like: - + value1 value2 value3 @@ -214,7 +214,7 @@ Concrete tips: error2 error3 .... - + this can then be easily captured to a temporary file by setting the stdout redirection of the util_spawn() function, and then subsequently the 100% normal way of creating a gen_obs instance @@ -225,7 +225,7 @@ Concrete tips: ********************************************************************** 4. About the ERT filesystem ---------------------------- +--------------------------- The system for storing information in ert is quite large and complex. The top level system is implemented in the file enkf_fs.c, @@ -286,14 +286,14 @@ coordinate is handled differs for the different data types: dynamics the enkf_fs layer will use the enkf identity: Forecast( X(t) ) = Analyzed( X(t-1) ) - + so if you ask for the analyzed at step 't' the enkf_fs layer will query the database for (iens , 't'), whereas if you ask for the forecast at tstep 't' the enkf_fs layer will go looking for (iens , 't - 1'). When it comes to parameters the enkf_fs layer will continue looking for (t , t-1 , t-2 , ... , 0) all the way back to the initially sampled values. - + 4.3 Reading and writing enkf_node state. @@ -346,7 +346,7 @@ restart information. The story goes about like this: c) Keywords which can be ignored, e.g. SOMAX and RPORV. ERT uses the function ecl_config_include_static_kw() to - differentiate between cases b) and c). + differentiate between cases b) and c). 2. For the static keywords which ERT determines it needs to store, i.e. case b) above ERT will automatically create the corresponding @@ -357,17 +357,17 @@ restart information. The story goes about like this: enkf_node_store( "PRESSURE" ) enkf_node_store( "SWAT" ) - if (!has_node( "INTEHEAD")) + if (!has_node( "INTEHEAD")) create_node( "INTEHEAD" ) - enkf_node_store( "INTEHEAD" ) + enkf_node_store( "INTEHEAD" ) - if (!has_node( "DOUBHEAD")) + if (!has_node( "DOUBHEAD")) create_node( "DOUBHEAD" ) - enkf_node_store( "DOUBHEAD" ) + enkf_node_store( "DOUBHEAD" ) - if (!has_node( "SGRP")) + if (!has_node( "SGRP")) create_node( "SGRP" ) - enkf_node_store( "SGRP" ) + enkf_node_store( "SGRP" ) 3. When we want to create a corresponding restart files, we must reassemble the keywords: @@ -380,9 +380,9 @@ Now - the point is that when we store the nodes in the database we loose track of the ordering of the keywords - and then ECLIPSE goes belly up. I.e. we must keep track of the original order of the keywords, that is what the index/kw_list is used for. - -4.5 The different driver types + +4.5 The different driver types The enkf_fs layer does not directly store nodes to disk, instead that task is passed on to a driver. When the enkf_fs layer has completed @@ -399,7 +399,7 @@ changes whatsoever to the rest of the ERT code. The drivers are included in the enkf_fs structure as: - .... + .... fs_driver_type * dynamic_forecast; fs_driver_type * dynamic_analyzed; fs_driver_type * parameter; @@ -410,7 +410,7 @@ The drivers are included in the enkf_fs structure as: I.e. all the different variable types in section 4.1 have their own private driver. The index variable is used for storing the kw_list (see section 4.4). fs_driver_type is an abstract type without any -implementation (I think !). +implementation (I think !). 4.5.1 The plain driver @@ -479,7 +479,7 @@ with these files which can be used for various forms of crash recovery, problem inspection and so on. In addition an sqlite based driver has been written, it worked ok but -performance turned out to be quite poor. +performance turned out to be quite poor. 4.6 Filesystem metadata @@ -489,15 +489,15 @@ filesystem is contained in the file "enkf_mount_info"; this is a binary file with the following content: FS_MAGIC_ID /* A magic number */ - CURRENT_FS_VERSION /* The version of the filesystem; + CURRENT_FS_VERSION /* The version of the filesystem; has been 104 since september 2009. */ ------- / DRIVER_CATEGORY /* Element from fs_driver_enum in fs_types.h */ | DRIVER_IMPLEMENTATION /* Element from fs_driver_impl in fs_types.h \ Extra driver info /* Whatever information needed by the driver - ------- implementation given by DRIVER_IMPLEMENTATION. */ + ------- implementation given by DRIVER_IMPLEMENTATION. */ - CASES + CASES The block [DRIVER_CATEGORY, DRIVER_IMPLEMENTATION, Extra ..] is repeated five times to cover all the driver categories @@ -538,10 +538,10 @@ general guideline: /project/res/x86_64_RH_??/ directory. 3. Update the metadata on the files you copy: - + a) chgrp res b) chmod a+r g+w - c) For executables: chmod a+x + c) For executables: chmod a+x For the simple programs like the ECLIPSE programs summary.x & convert.x this can be easily achieved with the SDP_INSTALL of @@ -575,8 +575,8 @@ script. This script will do the following: 3. Update the symlink: - /project/res/x86_64_RH_??/bin/ert_latest_and_greatest - + /project/res/x86_64_RH_??/bin/ert_latest_and_greatest + to point to the newly installed file. @@ -592,9 +592,9 @@ are: These scripts will (should ??): 1. Install the ERT shared libraries like libecl.so and so on to - + /project/res/x86_64_RH_???/lib/python/lib - + These shared libraries are the same for both ERT Python and gert. 2. Install python files (with directories) to diff --git a/test-data/README.txt b/test-data/README.txt index 182de174d3..506ad500ad 100644 --- a/test-data/README.txt +++ b/test-data/README.txt @@ -1,6 +1,6 @@ This directory is meant as a holding place for test data for the ERT project. The local/ directory should contain test-data which is -checked in an distributed as part of the solution. +checked in an distributed as part of the solution. In addition many of the tests expect to find a Equinor/ subdirectory in the current directory. This directory should link to Equinor diff --git a/test-data/local/ECLIPSE/FAULTS/fault1.grdecl b/test-data/local/ECLIPSE/FAULTS/fault1.grdecl index 7094f164b4..5c188d3712 100644 --- a/test-data/local/ECLIPSE/FAULTS/fault1.grdecl +++ b/test-data/local/ECLIPSE/FAULTS/fault1.grdecl @@ -1,5 +1,5 @@ FAULTS --- NAME IX1 IX2 IY1 IY2 IZ1 IZ2 FACE +-- NAME IX1 IX2 IY1 IY2 IZ1 IZ2 FACE 'F1' 126 126 52 52 43 43 'X' / 'F1' 127 127 51 51 1 43 'X' / diff --git a/test-data/local/ECLIPSE/FAULTS/fault2.grdecl b/test-data/local/ECLIPSE/FAULTS/fault2.grdecl index 799634cc12..5c8e24872f 100644 --- a/test-data/local/ECLIPSE/FAULTS/fault2.grdecl +++ b/test-data/local/ECLIPSE/FAULTS/fault2.grdecl @@ -1,5 +1,5 @@ FAULTS --- NAME IX1 IX2 IY1 IY2 IZ1 IZ2 FACE +-- NAME IX1 IX2 IY1 IY2 IZ1 IZ2 FACE 'F4' 125 128 32 32 1 43 'Y-' / 'F4' 128 128 32 32 1 43 'X' / diff --git a/test-data/local/ECLIPSE/FAULTS/faults_nb.grdecl b/test-data/local/ECLIPSE/FAULTS/faults_nb.grdecl index a50d9603b2..bb3ff6d861 100644 --- a/test-data/local/ECLIPSE/FAULTS/faults_nb.grdecl +++ b/test-data/local/ECLIPSE/FAULTS/faults_nb.grdecl @@ -8,4 +8,3 @@ FAULTS 'FX0' 1 1 1 3 1 1 'X-' / 'FXNX' 10 10 1 3 1 1 'X' / / - \ No newline at end of file diff --git a/test-data/local/ECLIPSE/cp_simple3/SHORT.UNSMRY b/test-data/local/ECLIPSE/cp_simple3/SHORT.UNSMRY index 5b02db1f62..9970c822d8 100644 Binary files a/test-data/local/ECLIPSE/cp_simple3/SHORT.UNSMRY and b/test-data/local/ECLIPSE/cp_simple3/SHORT.UNSMRY differ diff --git a/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.DATA b/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.DATA index d1447bee5a..ee7a9e8cb9 100644 --- a/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.DATA +++ b/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.DATA @@ -10,7 +10,7 @@ -- This case is created for testing flow diagnostic implementations -- in ResInsight. It is a simple shoe-box grid with an added fault --- giving non-neighboring connections and two added local grid refinements. +-- giving non-neighboring connections and two added local grid refinements. RUNSPEC =============================================================== @@ -19,7 +19,7 @@ TITLE SIMPLE 2PH MODEL WITH SINGLE FAULT, LGR, AQUIFER (CT & Num) and GRUPNET DIMENS - 20 20 10 / + 20 20 10 / METRIC @@ -37,16 +37,16 @@ REGDIMS 2 5* / WELLDIMS 12 100 4 12 0 0 0 0 0 0 0 0 / - + AQUDIMS - 5 5 1* 1* 1 50 1* 1* / + 5 5 1* 1* 1 50 1* 1* / WSEGDIMS 4 30 4 / - + FAULTDIM 10 / - + TRACERS -- NOTRAC NWTRAC NGTRAC NETRAC Diff/NODiff @@ -59,7 +59,7 @@ START 1 JAN 2017 / LGR - 2 10000 / + 2 10000 / UNIFOUT @@ -85,7 +85,7 @@ MULTFLT 'FLT4' 0.4 / 'FLT5' 0.5 / / - + PORO 4000*0.3 @@ -127,13 +127,13 @@ AQUNUM 1 20 11 5 1.0E+6 10000 1* 2000 1* 500 1* 1* / 1 20 11 6 1.0E+6 10000 1* 2000 1* 500 1* 1* / 1 20 11 7 1.0E+6 10000 1* 2000 1* 500 1* 1* / - 2 20 11 9 1.0E+6 10000 1* 2000 1* 500 1* 1* / - 2 20 11 10 1.0E+6 10000 1* 2000 1* 500 1* 1* / + 2 20 11 9 1.0E+6 10000 1* 2000 1* 500 1* 1* / + 2 20 11 10 1.0E+6 10000 1* 2000 1* 500 1* 1* / / AQUCON 1 19 19 11 11 5 7 'I+' 1.0 / - 2 19 19 11 11 9 10 'I+' 1.0 / + 2 19 19 11 11 9 10 'I+' 1.0 / / @@ -150,7 +150,7 @@ PVTW ROCK 400 0 / - + PVDG --Press Bg Visc 50 0.024958 0.01441 @@ -168,7 +168,7 @@ PVDG 543.83 0.003295 0.05582 594.29 0.003200 0.07567 / - + --Corey parametrization using exponent of 2 SWOF @@ -219,7 +219,7 @@ REGIONS =============================================================== -- ARRAY VALUE ------- BOX ------ -- I1 I2 J1 J2 K1 K2 EQUALS - FIPNUM 1 1 10 1 20 1 10 / + FIPNUM 1 1 10 1 20 1 10 / FIPNUM 2 11 20 1 20 1 10 / / @@ -240,7 +240,7 @@ TBLKFTR2 4000*0 / AQUCT ---# Depth Pres Perm Por Compr Radius H Angle PVTW Table Csalt Taq +--# Depth Pres Perm Por Compr Radius H Angle PVTW Table Csalt Taq 1 3 500 2000 0.2 1E-5 10000 20 90 1* / AQUANCON @@ -281,22 +281,22 @@ RWFT ROIP / -WTPRTR1 +WTPRTR1 / -WTPRTR2 +WTPRTR2 / -WTPTTR1 +WTPTTR1 / -WTPTTR2 +WTPTTR2 / -WTITTR1 +WTITTR1 / -WTITTR2 +WTITTR2 / -- Analytical Aqufier @@ -450,12 +450,12 @@ SPRDH SPRDF 'I2' / / - + -- Network -GPR +GPR / -GPRB +GPRB / SCHEDULE =============================================================== @@ -476,7 +476,7 @@ GRUPNET FIELD 1* / PRODA 25 9999 / WIA 400 9999 / -/ +/ @@ -486,14 +486,14 @@ WELSPECS I2 WIA 2 18 0 WATER / P1 PRODA 18 2 0 OIL / P2 PRODA 18 18 0 OIL / - P1_RFT PRODA 18 2 0 OIL / - P2_RFT PRODA 18 18 0 OIL / + P1_RFT PRODA 18 2 0 OIL / + P2_RFT PRODA 18 18 0 OIL / / COMPDAT - 'P1' 2* 2 2 'SHUT' 2* 0.2 1* 0 / - 'P1' 2* 3 10 'OPEN' 2* 0.2 1* 0 / - 'P1_RFT' 2* 6 10 'OPEN' 2* 0.2 1* 0 / + 'P1' 2* 2 2 'SHUT' 2* 0.2 1* 0 / + 'P1' 2* 3 10 'OPEN' 2* 0.2 1* 0 / + 'P1_RFT' 2* 6 10 'OPEN' 2* 0.2 1* 0 / / COMPDAT @@ -522,42 +522,42 @@ COMPDAT 'I2' 2 15 7 7 'SHUT' 2* 0.2 3* 'Y' / 'I2' 2 14 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 18 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 17 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 16 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 15 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 14 2 2 'OPEN' 2* 0.2 3* 'Y' / - - 'P2' 18 18 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 17 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 16 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 15 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 14 5 5 'OPEN' 2* 0.2 3* 'Y' / - - 'P2' 18 18 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 17 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 16 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 15 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2' 18 14 7 7 'OPEN' 2* 0.2 3* 'Y' / - - 'P2_RFT' 18 18 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 17 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 16 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 15 2 2 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 14 2 2 'OPEN' 2* 0.2 3* 'Y' / - - 'P2_RFT' 18 18 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 17 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 16 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 15 5 5 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 14 5 5 'OPEN' 2* 0.2 3* 'Y' / - - 'P2_RFT' 18 18 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 17 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 16 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 15 7 7 'OPEN' 2* 0.2 3* 'Y' / - 'P2_RFT' 18 14 7 7 'OPEN' 2* 0.2 3* 'Y' / -/ + 'P2' 18 18 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 17 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 16 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 15 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 14 2 2 'OPEN' 2* 0.2 3* 'Y' / + + 'P2' 18 18 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 17 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 16 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 15 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 14 5 5 'OPEN' 2* 0.2 3* 'Y' / + + 'P2' 18 18 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 17 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 16 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 15 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2' 18 14 7 7 'OPEN' 2* 0.2 3* 'Y' / + + 'P2_RFT' 18 18 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 17 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 16 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 15 2 2 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 14 2 2 'OPEN' 2* 0.2 3* 'Y' / + + 'P2_RFT' 18 18 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 17 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 16 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 15 5 5 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 14 5 5 'OPEN' 2* 0.2 3* 'Y' / + + 'P2_RFT' 18 18 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 17 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 16 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 15 7 7 'OPEN' 2* 0.2 3* 'Y' / + 'P2_RFT' 18 14 7 7 'OPEN' 2* 0.2 3* 'Y' / +/ WELSEGS -- Name Dep 1 Tlen 1 Vol 1 @@ -614,7 +614,7 @@ COMPSEGS -- Bottom Branch 2 18 7 3 7 1* 'Y' 14 / / - + WELSEGS -- Name Dep 1 Tlen 1 Vol 1 'P2' 0 1 1* 'INC' / @@ -647,21 +647,21 @@ COMPSEGS 18 18 5 3 5 1* 'Y' 14 / -- Bottom Branch 18 18 7 4 7 1* 'Y' 14 / -/ - +/ + WELSPECL 'I1' 'WIA' 'WELLI1' 5 5 1* 'WATER' / Injector - 'I1_GI' 'WIA' 'WELLI1' 5 5 1* 'GAS' / Injector + 'I1_GI' 'WIA' 'WELLI1' 5 5 1* 'GAS' / Injector / COMPDATL - 'I1' 'WELLI1' 1* 1* 1 12 'OPEN' 2* 0.2 1* 0 / - 'I1' 'WELLI1' 1* 1* 13 20 'SHUT' 2* 0.2 1* 0 / - 'I1_GI' 'WELLI1' 1* 1* 1 6 'SHUT' 2* 0.2 1* 0 / - 'I1_GI' 'WELLI1' 1* 1* 7 14 'OPEN' 2* 0.2 1* 0 / - 'I1_GI' 'WELLI1' 1* 1* 15 16 'SHUT' 2* 0.2 1* 0 / - 'I1_GI' 'WELLI1' 1* 1* 17 20 'OPEN' 2* 0.2 1* 0 / - + 'I1' 'WELLI1' 1* 1* 1 12 'OPEN' 2* 0.2 1* 0 / + 'I1' 'WELLI1' 1* 1* 13 20 'SHUT' 2* 0.2 1* 0 / + 'I1_GI' 'WELLI1' 1* 1* 1 6 'SHUT' 2* 0.2 1* 0 / + 'I1_GI' 'WELLI1' 1* 1* 7 14 'OPEN' 2* 0.2 1* 0 / + 'I1_GI' 'WELLI1' 1* 1* 15 16 'SHUT' 2* 0.2 1* 0 / + 'I1_GI' 'WELLI1' 1* 1* 17 20 'OPEN' 2* 0.2 1* 0 / + / @@ -669,7 +669,7 @@ WCONPROD 'P1' 'OPEN' 'BHP' 5* 350/ 'P2' 'OPEN' 'BHP' 5* 345/ 'P1_RFT' 'STOP' 'BHP' 5* 345/ -'P2_RFT' 'STOP' 'BHP' 5* 345/ +'P2_RFT' 'STOP' 'BHP' 5* 345/ / @@ -677,7 +677,7 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'STOP' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / WTRACER @@ -694,12 +694,12 @@ TUNING DATES 1 FEB 2017 / / - + WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -711,7 +711,7 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / @@ -720,7 +720,7 @@ WRFTPLT P1_RFT YES REPT / P2_RFT NO YES YES / / - + DATES 1 APR 2017 / / @@ -730,7 +730,7 @@ WCONINJE 'I1' 'WATER' 'STOP' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -742,18 +742,18 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'STOP' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / DATES 1 JUN 2017 / / - + WCONINJE 'I1' 'WATER' 'STOP' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -764,7 +764,7 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'STOP' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / DATES 1 AUG 2017 / @@ -774,7 +774,7 @@ DATES 'I1' 'WATER' 'STOP' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -786,18 +786,18 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'STOP' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / DATES 1 OCT 2017 / / - + WCONINJE 'I1' 'WATER' 'SHUT' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -809,19 +809,19 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'SHUT' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / DATES 1 DEC 2017 / / - + WCONINJE 'I1' 'WATER' 'SHUT' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -833,19 +833,19 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'SHUT' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / DATES 1 FEB 2018 / / - + WCONINJE 'I1' 'WATER' 'SHUT' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -857,19 +857,19 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'SHUT' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / DATES 1 APR 2018 / / - + WCONINJE 'I1' 'WATER' 'SHUT' 'RATE' 0 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 0 1* 550/ 'I1_GI' 'GAS' 'OPEN' 'RATE' 40000 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 10000 1* 550/ / DATES @@ -881,17 +881,17 @@ WCONINJE 'I1' 'WATER' 'OPEN' 'RATE' 40 1* 550/ 'I2' 'WATER' 'OPEN' 'RATE' 10 1* 550/ 'I1_GI' 'GAS' 'SHUT' 'RATE' 0 1* 550/ - 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ + 'I2_GI' 'GAS' 'OPEN' 'RATE' 0 1* 550/ / - - + + TSTEP 4*15 / - - + + END diff --git a/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.UNSMRY b/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.UNSMRY index 38dd0b61fa..f4da9e5b12 100644 Binary files a/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.UNSMRY and b/test-data/local/ECLIPSE/cp_simple3/SIMPLE_SUMMARY3.UNSMRY differ diff --git a/test-data/local/ECLIPSE/faarikaal/faarikaal1.EGRID b/test-data/local/ECLIPSE/faarikaal/faarikaal1.EGRID index 4496b36d5e..cff23a1087 100644 Binary files a/test-data/local/ECLIPSE/faarikaal/faarikaal1.EGRID and b/test-data/local/ECLIPSE/faarikaal/faarikaal1.EGRID differ diff --git a/test-data/local/ECLIPSE/faarikaal/faarikaal2.EGRID b/test-data/local/ECLIPSE/faarikaal/faarikaal2.EGRID index 7cd945495a..fc5430b4bf 100644 Binary files a/test-data/local/ECLIPSE/faarikaal/faarikaal2.EGRID and b/test-data/local/ECLIPSE/faarikaal/faarikaal2.EGRID differ diff --git a/test-data/local/ECLIPSE/faarikaal/faarikaal3.EGRID b/test-data/local/ECLIPSE/faarikaal/faarikaal3.EGRID index 227f626f81..462506b5b6 100644 Binary files a/test-data/local/ECLIPSE/faarikaal/faarikaal3.EGRID and b/test-data/local/ECLIPSE/faarikaal/faarikaal3.EGRID differ diff --git a/test-data/local/ECLIPSE/faarikaal/faarikaal5.EGRID b/test-data/local/ECLIPSE/faarikaal/faarikaal5.EGRID index 0cd21891fb..b73abe8449 100644 Binary files a/test-data/local/ECLIPSE/faarikaal/faarikaal5.EGRID and b/test-data/local/ECLIPSE/faarikaal/faarikaal5.EGRID differ diff --git a/test-data/local/ECLIPSE/faarikaal/faarikaal6.EGRID b/test-data/local/ECLIPSE/faarikaal/faarikaal6.EGRID index 7a28fd3aad..61298644d9 100644 Binary files a/test-data/local/ECLIPSE/faarikaal/faarikaal6.EGRID and b/test-data/local/ECLIPSE/faarikaal/faarikaal6.EGRID differ diff --git a/test-data/local/ECLIPSE/well/missing-ICON/ICON1.X0027 b/test-data/local/ECLIPSE/well/missing-ICON/ICON1.X0027 index 7ed2efdc20..087fff893a 100644 Binary files a/test-data/local/ECLIPSE/well/missing-ICON/ICON1.X0027 and b/test-data/local/ECLIPSE/well/missing-ICON/ICON1.X0027 differ diff --git a/test-data/local/geometry/surface/valid_binary.irap b/test-data/local/geometry/surface/valid_binary.irap index 813977df05..61724bbc07 100755 Binary files a/test-data/local/geometry/surface/valid_binary.irap and b/test-data/local/geometry/surface/valid_binary.irap differ