ecl_kw_magic.hpp
Go to the documentation of this file.
1#ifndef ERT_ECL_KW_MAGIC_H
2#define ERT_ECL_KW_MAGIC_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9 This header file contains names and indices of ECLIPSE keywords
10 which have special significance in various files. Observe that many
11 of the keywords like e.g. INTEHEAD occur in many different file
12 types, with partly overlapping layout and values.
13 */
14
15/*****************************************************************/
16/* INIT files: */
17/*****************************************************************/
18
19#define PORO_KW "PORO"
20#define PORV_KW "PORV"
21#define AQUIFER_KW "AQUIFERN"
22#define INTEHEAD_KW "INTEHEAD"
23#define LOGIHEAD_KW "LOGIHEAD"
24#define DOUBHEAD_KW "DOUBHEAD"
25#define RPORV_KW "RPORV"
26#define PORV_KW "PORV"
27#define PORMOD_KW "PORV_MOD"
28
29#define PVTNUM_KW "PVTNUM"
30#define LGRHEADI_KW "LGRHEADI"
31#define LGRHEADI_LGR_NR_INDEX 0
32#define LGRJOIN_KW "LGRJOIN"
33
34
35/*
36 The table in the INIT file are organized with one large data keyword
37 'TAB' and one keyword 'TABDIMS' which describe the layout of the
38 data in the TAB keyword.
39
40 For each of the tables there 'TABDIMS_xxx_OFFSET_ITEM' which points
41 to an element in the 'TABDIMS' vector which contains the starting
42 address of table 'xxx' in the 'TAB' keyword, then there are one or
43 several integer values describing how many values/tables there
44 are. In addition there is an assumed number of columns which is not
45 explicitly stored in the TABDIMS keyword.
46
47 The input format is quite flexible with respect to the size of the
48 individual tables and subtables, but the representation in the INIT
49 file is based on fixed length columns and equal sized tables, where
50 all inactive elements have the default value 2e20.
51
52 Assume the following PVTO input:
53
54
55 PVTO
56 1.55203 1.00000 1.15907572 0.64345
57 25.00000 1.15319788 0.67619
58 50.00000 1.14759314 0.70959 /
59
60 28.04570 25.00000 1.17415042 0.63294
61 50.00000 1.16792401 0.66638
62 75.00000 1.16222385 0.69918
63 100.00000 1.15212320 0.76297 /
64
65 35.62113 50.00000 1.19208190 0.61538
66 75.00000 1.18568689 0.64790
67 100.00000 1.17982339 0.67985
68 125.00000 1.17441865 0.71127
69 150.00000 1.16941365 0.74217 /
70
71 /
72 20.66588 1.00000 1.15642614 0.57010
73 25.00000 1.15051027 0.59831
74 50.00000 1.14487540 0.62703 /
75
76 27.65815 25.00000 1.17402576 0.56928
77 50.00000 1.16771923 0.59875
78 75.00000 1.16195281 0.62760
79 100.00000 1.15665041 0.65588
80 /
81
82This is the PVTO table, and it is described by the constants
83TABDIMS_IBPVTO_OFFSET_ITEM, TABDIMS_JBPVTO_OFFSET_ITEM,
84TABDIMS_NRPVTO_ITEM, TABDIMS_NPPVTO_ITEM and TABDIMS_NTPVTO_ITEM. Observe the following:
85
86 1. There are 3 GOR values in the first table and 2 in the second,
87 this is the number of composition nodes -
88 TABDIMS_NRPVTO_ITEM. Since there are 3 in the first table and 2 in
89 the second the value of TABDIMS[ TABDIMS_NRPVTO_ITEM ] >= 3.
90
91 2. The GOR node values (1.55203, 28.04570, 35.62113) and (20.66588,
92 27.65815) are stored separately at offset
93 TABDIMS[ TABDIMS_JBPVTO_OFFSET_ITEM ] in the TAB array.
94
95 3. The length of the longest column is 5 elements so the value of
96 TABDIMS[ TABDIMS_NPPVTO_ITEM ] >= 5.
97
98 4. The actual table data starts at offset TABDIMS[
99 TABDIMS_IBPVTO_ITEM] in the TAB table.
100
101When packing the actual data into the TAB array the indices are
102running as row,GOR,table,column - with row fastest. All in all the
103linear vector for this PVTO table will look like:
104
105 1.00000 \ \ \ \
106 25.00000 | | | |
107 50.00000 | NPPVTO = 5 | | |
108 * | | | |
109 * | | | |
110-----------/ | | |
111 25.00000 | | |
112 50.00000 | | |
113 75.00000 | NRPVTO = 3 | |
114100.00000 | | |
115 * | | |
116----------- | | |
117 50.00000 | | |
118 75.00000 | | |
119100.00000 | | |
120125.00000 | | |
121150.00000 | | |
122=========== / | NTPVTO = 2 |
123 1.00000 | |
124 25.00000 | |
125 50.00000 | |
126 * | |
127 * | | Three columns -
128----------- | | (not in TABDIMS)
129 25.00000 | |
130 50.00000 | |
131 75.00000 | |
132100.00000 | |
133 * | |
134----------- | |
135* | |
136* | |
137* | |
138* | |
139* | |
140@@@@@@@@@@@ / |
1411.15907572 |
1421.15319788 |
1431.14759314 |
144 * |
145 * |
146----------- |
1471.17415042 |
1481.16792401 |
1491.16222385 |
1501.15212320 |
151 * |
152----------- |
1531.19208190 |
1541.18568689 |
1551.17982339 |
1561.17441865 |
1571.16941365 |
158=========== |
1591.15642614 |
1601.15051027 |
1611.14487540 |
162 * |
163 * |
164----------- |
1651.17402576 |
1661.16771923 |
1671.16195281 |
1681.15665041 |
169 * |
170----------- |
171* |
172* |
173* |
174* |
175* |
176@@@@@@@@@@@ |
1770.64345 |
1780.67619 |
1790.70959 |
180 * |
181 * |
182----------- |
1830.63294 |
1840.66638 |
1850.69918 |
1860.76297 |
187 * |
188----------- |
1890.61538 |
1900.64790 |
1910.67985 |
1920.71127 |
1930.74217 |
194=========== |
1950.57010 |
1960.59831 |
1970.62703 |
198 * |
199 * |
200----------- |
2010.56928 |
2020.59875 |
2030.62760 |
2040.65588 |
205 * |
206----------- |
207* |
208* |
209* |
210* |
211* |
212 /
213
214In this vector representation the different composition subtable
215columns are separated by '----', the different main tables are
216separated by '======' and the columns are separated by '@@@@'. Default
217values (2e20) are denoted with '*'.
218
219*/
220#define TABDIMS_SIZE 100
221
222#define TABDIMS_TAB_SIZE_ITEM 0
223
224#define TABDIMS_IBROCK_OFFSET_ITEM 1
225#define TABDIMS_NTROCK_ITEM 2
226
227#define TABDIMS_IBROCC_OFFSET_ITEM 3
228#define TABDIMS_NPROCC_ITEM 4
229
230#define TABDIMS_IBPVTO_OFFSET_ITEM 6
231#define TABDIMS_JBPVTO_OFFSET_ITEM 7
232#define TABDIMS_NRPVTO_ITEM 8
233#define TABDIMS_NPPVTO_ITEM 9
234#define TABDIMS_NTPVTO_ITEM 10
235
236#define TABDIMS_IBPVTW_OFFSET_ITEM 11
237#define TABDIMS_NTPVTW_ITEM 12
238
239#define TABDIMS_IBPVTG_OFFSET_ITEM 13
240#define TABDIMS_JBPVTG_OFFSET_ITEM 14
241#define TABDIMS_NRPVTG_ITEM 15
242#define TABDIMS_NPPVTG_ITEM 16
243#define TABDIMS_NTPVTG_ITEM 17
244
245#define TABDIMS_IBDENS_OFFSET_ITEM 18
246#define TABDIMS_NTDENS_ITEM 19
247
248#define TABDIMS_IBSWFN_OFFSET_ITEM 20
249#define TABDIMS_NSSWFN_ITEM 21
250#define TABDIMS_NTSWFN_ITEM 22
251
252#define TABDIMS_IBSGFN_OFFSET_ITEM 23
253#define TABDIMS_NSSGFN_ITEM 24
254#define TABDIMS_NTSGFN_ITEM 25
255
256#define TABDIMS_IBSOFN_OFFSET_ITEM 26
257#define TABDIMS_IBSWCO_OFFSET_ITEM 27
258#define TABDIMS_NSSOFN_ITEM 28
259#define TABDIMS_NTSOFN_ITEM 29
260
261#define TABDIMS_IBVETB_OFFSET_ITEM 40
262#define TABDIMS_NSVETB_ITEM 41
263#define TABDIMS_NTVETB_ITEM 42
264
265#define TABDIMS_IBTHPR_OFFSET_ITEM 43
266#define TABDIMS_IBSLIM_ITEM 44
267#define TABDIMS_NSENDP_ITEM 45
268#define TABDIMS_NTENDP_ITEM 46
269
270#define TABDIMS_IBRTEM_OFFSET_ITEM 47
271#define TABDIMS_IBCTOL_ITEM 48
272
273#define TABDIMS_IBLANG_OFFSET_ITEM 50 // LANGMUIR Table
274#define TABDIMS_NCLANG_ITEM 51 // LANGMUIR Table
275#define TABDIMS_NSLANG_ITEM 52 // LANGMUIR Table
276#define TABDIMS_NTLANG_ITEM 53 // LANGMUIR Table
277
278#define TABDIMS_IBLNG2_OFFSET_ITEM 54 // LANGSOLV Table
279#define TABDIMS_IBCADP_OFFSET_ITEM 55 // COALPP Table
280#define TABDIMS_IBCADS_OFFSET_ITEM 56 // COALADS Table
281#define TABDIMS_IBROCP_OFFSET_ITEM 57 // ROCKPAMA Table
282#define TABDIMS_NTRPMA_ITEM 58 // ROCKPAMA Table
283
284
285/*
286 Observe that many of the elements in the INTEHEAD keyword is shared
287 between the restart and init files. The ones listed below here are
288 in both the INIT and the restart files. In addition the restart
289 files have many well related items which are only in the restart
290 files.
291*/
292
293
294#define INTEHEAD_UNIT_INDEX 2
295#define INTEHEAD_NX_INDEX 8
296#define INTEHEAD_NY_INDEX 9
297#define INTEHEAD_NZ_INDEX 10
298#define INTEHEAD_NACTIVE_INDEX 11
299#define INTEHEAD_PHASE_INDEX 14
300#define INTEHEAD_DAY_INDEX 64
301#define INTEHEAD_MONTH_INDEX 65
302#define INTEHEAD_YEAR_INDEX 66
303#define INTEHEAD_TIMESTEP_INDEX 67
304#define INTEHEAD_REPORT_STEP 68
305#define INTEHEAD_IPROG_INDEX 94
306
307// The value seems to be: report_step - 1; might be previous?
308#define INTEHEAD_REPORT_INDEX 219
309
310
311#define INTEHEAD_METRIC_VALUE 1
312#define INTEHEAD_ECLIPSE100_VALUE 100
313#define INTEHEAD_ECLIPSE300_VALUE 300
314#define INTEHEAD_ECLIPSE300THERMAL_VALUE 500
315#define INTEHEAD_INTERSECT_VALUE 700
316#define INTEHEAD_FRONTSIM_VALUE 800
317
318#define INTEHEAD_INIT_SIZE 95
319#define INTEHEAD_RESTART_SIZE 180
320
321#define LOGIHEAD_ECLIPSE300_RADIAL_INDEX 3
322#define LOGIHEAD_ECLIPSE100_RADIAL_INDEX 4
323#define LOGIHEAD_DUALP_INDEX 14
324#define LOGIHEAD_INIT_SIZE 80
325#define LOGIHEAD_RESTART_SIZE 15
326
327
328#define LOGIHEAD_RS_INDEX 0
329#define LOGIHEAD_RV_INDEX 1
330#define LOGIHEAD_DIR_RELPERM_INDEX 2
331/*-----------------------------------------------------------------*/
332#define LOGIHEAD_REV_RELPERM100_INDEX 3 /* The indices for reversible relperm and */
333#define LOGIHEAD_RADIAL100_INDEX 4 /* use of radial grids is interchanged between */
334#define LOGIHEAD_REV_RELPERM300_INDEX 4 /* ECLIPSE100 and ECLIPSE300. */
335#define LOGIHEAD_RADIAL300_INDEX 3
336/*-----------------------------------------------------------------*/
337#define LOGIHEAD_HYSTERISIS_INDEX 6
338#define LOGIHEAD_DUALP_INDEX 14
339#define LOGIHEAD_ENDPOINT_SCALING_INDEX 16
340#define LOGIHEAD_DIR_ENDPOINT_SCALING_INDEX 17
341#define LOGIHEAD_REV_ENDPOINT_SCALING_INDEX 18
342#define LOGIHEAD_ALT_ENDPOINT_SCALING_INDEX 19
343#define LOGIHEAD_MISC_DISPLACEMENT_INDEX 35
344#define LOGIHEAD_CONSTANT_OILCOMPR_INDEX (39-1) /* Constant oil compressibility (PVCDO)? */
345#define LOGIHEAD_SCALE_WATER_PC_AT_MAX_SAT_INDEX 55
346#define LOGIHEAD_SCALE_GAS_PC_AT_MAX_SAT_INDEX 56
347
348
349
350
351#define DOUBHEAD_INIT_SIZE 1
352#define DOUBHEAD_RESTART_SIZE 1
353
354
355/*****************************************************************/
356/* RESTART files: */
357/*****************************************************************/
358
359#define SEQNUM_KW "SEQNUM" /* Contains the report step as the only data; not
360 present in non-unified files, where the report
361 step must be inferred from the filename. */
362#define STARTSOL_KW "STARTSOL"
363#define ENDSOL_KW "ENDSOL"
365#define XWEL_KW "XWEL"
366#define IWEL_KW "IWEL"
367#define ZWEL_KW "ZWEL"
368#define ICON_KW "ICON"
369#define SCON_KW "SCON"
370#define XCON_KW "XCON"
371#define ISEG_KW "ISEG"
372#define RSEG_KW "RSEG"
374#define ECLIPSE100_OIL_DEN_KW "OIL_DEN"
375#define ECLIPSE100_GAS_DEN_KW "GAS_DEN"
376#define ECLIPSE100_WATER_DEN_KW "WAT_DEN"
378#define ECLIPSE300_OIL_DEN_KW "DENO"
379#define ECLIPSE300_GAS_DEN_KW "DENG"
380#define ECLIPSE300_WATER_DEN_KW "DENW"
382#define FIPGAS_KW "FIPGAS"
383#define FIPWAT_KW "FIPWAT"
384#define FIPOIL_KW "FIPOIL"
385#define RFIPGAS_KW "RFIPGAS"
386#define RFIPWAT_KW "RFIPWAT"
387#define RFIPOIL_KW "RFIPOIL"
389#define FLRWATNNC_KW "FLRWATN+" //nnc wtr flux, grid1 == grid2
390#define FLROILNNC_KW "FLROILN+" //nnc oil flux, grid1 == grid2
391#define FLRGASNNC_KW "FLRGASN+" //nnc gas flux, grid1 == grid2
393#define FLRWATLG_KW "FLRWATL+" //nnc wtr flux, grid1 == 0, grid != 0
394#define FLROILLG_KW "FLROILL+" //nnc oil flux, grid1 == 0, grid != 0
395#define FLRGASLG_KW "FLRGASL+" //nnc gas flux, grid1 == 0, grid != 0
397#define FLRWATLL_KW "FLRWATA+" //nnc wtr flux, grid1 != 0, grid2 != 0, grid1 != grid2
398#define FLROILLL_KW "FLROILA+" //nnc oil flux, grid1 != 0, grid2 != 0, grid1 != grid2
399#define FLRGASLL_KW "FLRGASA+" //nnc gas flux, grid1 != 0, grid2 != 0, grid1 != grid2
401#define INTEHEAD_NWELLS_INDEX 16 // Number of wells
402#define INTEHEAD_NIWELZ_INDEX 24 // Number of elements pr. well in the IWEL array.
403#define INTEHEAD_NXWELZ_INDEX 26 // Number of elements pr. well in the XWEL array.
404#define INTEHEAD_NZWELZ_INDEX 27 // Number of 8 character words pr. well
406#define INTEHEAD_NCWMAX_INDEX 17 // Maximum number of completions per well
407#define INTEHEAD_NWGMAX_INDEX 19 // Maximum number of wells in any group
408#define INTEHEAD_NGMAXZ_INDEX 20 // Maximum number of groups in field
409#define INTEHEAD_NSWELZ_INDEX 25
411#define INTEHEAD_NICONZ_INDEX 32 // Number of elements pr completion in the ICON array.
412#define INTEHEAD_NSCONZ_INDEX 33 // Number of elements pr completion in the SCON array
413#define INTEHEAD_NXCONZ_INDEX 34 // Number of elements pr completion in the XCON array
414#define INTEHEAD_NIGRPZ_INDEX 36 // Number of elements pr group in the IGRP array.
417#define INTEHEAD_NSWLMX_INDEX 175
418#define INTEHEAD_NSEGMX_INDEX 176
419#define INTEHEAD_NLBRMX_INDEX 177
420#define INTEHEAD_NISEGZ_INDEX 178
421#define INTEHEAD_NRSEGZ_INDEX 179
422#define INTEHEAD_NILBRZ_INDEX 180
423
424#define DOUBHEAD_DAYS_INDEX 0
425
426/*****************************************************************/
427/* Summary files */
428/*****************************************************************/
429
430/* Summary header file */
431#define MINISTEP_KW "MINISTEP"
432#define STARTDAT_KW "STARTDAT" /* Intgere keyword containing day,month,year. */
433#define WGNAMES_KW "WGNAMES" /* The names of wells/groups for the summary vectors. */
434#define NAMES_KW "NAMES" /* Alias for WGNAMES_KW. */
435#define KEYWORDS_KW "KEYWORDS" /* The variable type for the various summary vectors. */
436#define UNITS_KW "UNITS" /* The units, i.e SM^3/DAY the summary vectors. */
437#define DIMENS_KW "DIMENS" /* The dimensions of the grid - also used in the GRID files. */
438#define NUMS_KW "NUMS" /* Extra numeric qualifiers for the summary variables, like cell number. */
439#define LGRS_KW "LGRS" /* The lgr name for a vector originating from an lgr. */
440#define NUMLX_KW "NUMLX" /* For block variables defined in a an lgr this is i coordinate in the lgr. */
441#define NUMLY_KW "NUMLY" /* ... j coordinate in the lgr. */
442#define NUMLZ_KW "NUMLZ" /* ... k coordinate in the lgr. */
443
445/* Magic indices used to locate day,month,year from the STARTDAT keyword. */
446#define STARTDAT_DAY_INDEX 0
447#define STARTDAT_MONTH_INDEX 1
448#define STARTDAT_YEAR_INDEX 2
449#define STARTDAT_SIZE 3
450
451
452/* Magic indices uset to locate the grid dimensions from the DIMENS
453 keyword in the SMSPEC files. Observe that these magic indices
454 differ from the magic indices used to look up grid dimensions from
455 the DIMENS keyword in GRID files. */
456#define DIMENS_SMSPEC_SIZE_INDEX 0
457#define DIMENS_SMSPEC_NX_INDEX 1
458#define DIMENS_SMSPEC_NY_INDEX 2
459#define DIMENS_SMSPEC_NZ_INDEX 3
460#define DIMENS_SMSPEC_RESTART_STEP_INDEX 5
461#define DIMENS_SIZE 6
463#define INTEHEAD_SMSPEC_SIZE 2
464#define INTEHEAD_SMSPEC_UNIT_INDEX 0
465#define INTEHEAD_SMSPEC_IPROG_INDEX 1
466
468/* Summary data files: */
469#define SEQHDR_KW "SEQHDR" // Contains a single 'magic' integer - not used in libecl.
470#define PARAMS_KW "PARAMS" // Contains the actual summary data for one timestep.
471#define MINISTEP_KW "MINISTEP" // Scalar integer - contains the timestep number.
472
473#define SEQHDR_SIZE 1
475#define RESTART_KW "RESTART"
476#define SUMMARY_RESTART_SIZE 8
477
478/*
479 There are no magic indices in the summary data files, for all
480 interesting data the table created from the ecl_smspec file must be
481 consulted.
482*/
483
484
485/*****************************************************************/
486/* RFT Files */
487/*****************************************************************/
488/* The files with extension .RFT can contain three quite different
489 types of information: RFT / PLT / SEGMENT, this is indicated by an
490 element of the WELLETC keyword. The keywords below are organized in
491 common keywords, keywords for RFTs and keywords for PLTs. The
492 special information for SEGMENT data is not internalized at all,
493 and there are also several additional keywords for the PLTs which
494 are not internalized. */
495
497/* Common keywords */
498#define TIME_KW "TIME" /* The days since simulation start when
499 an RFT is performed, also used as
500 block header when splitting an RFT
501 file into different wells and timesteps. */
502#define DATE_KW "DATE" /* The date of an RFT as integers: (day,month,year). */
503#define WELLETC_KW "WELLETC" /* The type of date RFT|PLT|SEGMENT and well name are
504 extracted from this keyword. */
505#define CONIPOS_KW "CONIPOS" /* The i-index of the connections in the well. */
506#define CONJPOS_KW "CONJPOS" /* The j-index ... */
507#define CONKPOS_KW "CONKPOS" /* The k-index ... */
508#define HOSTGRID_KW "HOSTGRID"
509
510/* RFT keywords */
511#define SWAT_KW "SWAT" /* The kewyord containing SWAT. */
512#define SGAS_KW "SGAS" /* The kewyord containing SGAS. */
513#define PRESSURE_KW "PRESSURE" /* The kewyord containing PRESSURE. */
514#define DEPTH_KW "DEPTH" /* The depth of the connection. */
516/* PLT keywords */
517#define CONDEPTH_KW "CONDEPTH" /* The depth of the connection. */
518#define CONWRAT_KW "CONWRAT" /* Water rate in a connection. */
519#define CONGRAT_KW "CONGRAT" /* Gas ... */
520#define CONORAT_KW "CONORAT" /* Oil ... */
521#define CONPRES_KW "CONPRES" /* Pressure ... */
522#define CONLENST_KW "CONLENST" /* Length along MSW well */
523#define CONLENEN_KW "CONLENEN" /* Length to connection end for MSW well */
524#define CONVTUB_KW "CONVTUB" /* Volumetric flow at tubing head conditions. */
525#define CONOTUB_KW "CONOTUB" /* Volumetric oil flow at tubing head conditions. */
526#define CONGTUB_KW "CONGTUB" /* Volumetric gas flow at tubing head conditions. */
527#define CONWTUB_KW "CONWTUB" /* Volumetric water flow at tubing head conditions. */
528
530#define WELLETC_TYPE_INDEX 5 /* At this keyword the WELLETC keyword contains a string
531 containing 'R', 'P' , or 'S' for RFT, PLT or SEGMENT data
532 respectively.*/
533#define WELLETC_NAME_INDEX 1 /* The name of well being investigated is on this index of
534 the WELLETC keyword. */
535
536/* Magic indices used to get day,month,year from the DATE
537 keyword. */
538#define DATE_DAY_INDEX 0
539#define DATE_MONTH_INDEX 1
540#define DATE_YEAR_INDEX 2
541
543/*****************************************************************/
544/* GRID and EGRID files. */
545/*****************************************************************/
546/* GRID and EGRID files have very different structure, and only a few
547 keywords are shared. */
550/* Common keywords */
551#define SPECGRID_KW "SPECGRID"
552#define SPECGRID_NX_INDEX 0
553#define SPECGRID_NY_INDEX 1
554#define SPECGRID_NZ_INDEX 2
555#define MAPAXES_KW "MAPAXES" /* Keyword used to transform from grid coordinates to
556 world coordinates. */
557#define LGR_KW "LGR" /* Name of LGR; for GRID files it can contain two elements,
558 the second element will be the name of the parent. */
559#define MAPUNITS_KW "MAPUNITS"
560#define GRIDUNIT_KW "GRIDUNIT"
562#define NNC1_KW "NNC1" /*Upstream cell numbers for non-neighbour connections*/
563#define NNC2_KW "NNC2" /*Downstream cell numbers for non-neighbour connections*/
564#define NNCL_KW "NNCL" /*Cell numbers for LGR cells that are connected to global grid cells*/
565#define NNCG_KW "NNCG" /*Cell numbers for global cells connected to LGR cells*/
567#define NNCHEAD_KW "NNCHEAD" /*Non-neighbour connection header*/
568#define NNCHEAD_SIZE 10
569#define NNCHEAD_NUMNNC_INDEX 0 /*Item 1 in non-neighbour connection header: number of NNCs. Only present for main grid*/
570#define NNCHEAD_LGR_INDEX 1 /*Item 2 in non-neighbour connection header: LGR number (0 for global grid)*/
571
572#define NNCHEADA_KW "NNCHEADA" /*Header for NNC's between two amalgamated LGRs*/
573#define NNA1_KW "NNA1" /*Cell numbers in connecting local grid ILOC1*/
574#define NNA2_KW "NNA2" /*Cell numbers in connecting local grid ILOC2*/
575#define NNCHEADA_ILOC1_INDEX 0 /*ILOC1: Index of first LGR*/
576#define NNCHEADA_ILOC2_INDEX 1 /*ILOC2: Index of second LGR*/
577#define NNA_NUMNNC_INDEX 0 /*Item 1 in NNA1 or NNA2 is number of NNCs*/
579#define TRANNNC_KW "TRANNNC"
580#define TRANGL_KW "TRANGL"
581#define TRANLL_KW "TRANLL"
582
583/* EGRID keywords */
584#define LGR_PARENT_KW "LGRPARNT" /* The name of the parent for an LGR. */
585#define COORDS_KW "COORDS" /* The (x,y) coordinates of the top and bottom of the pillars constituting the grid. */
586#define ZCORN_KW "ZCORN" /* Z coordinate where pillars cross planes. */
587#define ACTNUM_KW "ACTNUM" /* Integer flag of with active=0,1. */
588#define HOSTNUM_KW "HOSTNUM" /* For cells in LGR - pointing back to cell nr in
589 parent grid. */
590#define FILEHEAD_KW "FILEHEAD"
591#define ENDGRID_KW "ENDGRID"
592#define ENDLGR_KW "ENDLGR"
593#define CORSNUM_KW "CORSNUM"
595/* GRID keywords */
596#define GRIDHEAD_KW "GRIDHEAD" /* Header information for GRID files. */
597#define COORD_KW "COORD" /* Header information for one cell in GRID file. */
598#define CORNERS_KW "CORNERS" /* Vector containing (x,y,z) x 8 elements - all corners in a cell. */
599#define DIMENS_KW "DIMENS" /* The dimensions of the grid. */
600#define RADIAL_KW "RADIAL"
601
602#define GLOBAL_STRING "GLOBAL"
604#define GRIDHEAD_TYPE_INDEX 0
605#define GRIDHEAD_NX_INDEX 1
606#define GRIDHEAD_NY_INDEX 2
607#define GRIDHEAD_NZ_INDEX 3
608#define GRIDHEAD_LGR_INDEX 4
609#define GRIDHEAD_NUMRES_INDEX 24
610#define GRIDHEAD_SIZE 100
612/* Observe that these indices are one value lower than the values used
613 in the ecl_smspec file. */
614#define DIMENS_NX_INDEX 0
615#define DIMENS_NY_INDEX 1
616#define DIMENS_NZ_INDEX 2
618#define FILEHEAD_VERSION_INDEX 0
619#define FILEHEAD_YEAR_INDEX 1
620#define FILEHEAD_COMPAT_INDEX 3
621#define FILEHEAD_TYPE_INDEX 4
622#define FILEHEAD_DUALP_INDEX 5
623#define FILEHEAD_ORGFORMAT_INDEX 6
625#define GRIDHEAD_GRIDTYPE_CORNERPOINT 1 /* <----\ */
626 /* | Fucking hysterical! */
627#define FILEHEAD_GRIDTYPE_CORNERPOINT 0 /* <----/ */
628
629#define FILEHEAD_ORGTYPE_CORNERPOINT 1
630#define FILEHEAD_SINGLE_POROSITY 0
631#define FILEHEAD_DUAL_POROSITY 1
632#define FILEHEAD_DUAL_PERMEABILITY 2
633
634
635#define CELL_NOT_ACTIVE 0
636#define CELL_ACTIVE_MATRIX 1
637#define CELL_ACTIVE CELL_ACTIVE_MATRIX
638#define CELL_ACTIVE_FRACTURE 2
639
640
641
642#ifdef __cplusplus
643}
644#endif
645#endif