Documente Academic
Documente Profesional
Documente Cultură
Release 8.1
Emerson Roxar
November 2017
Copyright © 1999-2017 Roxar Software Solutions. All rights reserved.
Use of this product is governed by the Licence Agreement. Roxar Software Solutions makes no warranties,
express, implied or statutory, with respect to the product described herein and disclaims without limitation any
warranties of merchantability or fitness for a particular purpose.
This documentation may not be copied, photocopied, reproduced, translated, or converted to any electronic or
machine-readable form in whole or in part without prior written approval of Roxar Software Solutions.
While every effort has been made to ensure the accuracy of this documentation, Roxar Software Solutions accepts
no responsibility or liability for any errors or inaccuracies that it might contain. Be aware that continuous im-
provement of the described products may lead to minor differences between the products and the documentation.
Roxar is a brand of Emerson Automation Solutions, and a global software leader in the integrated workflow span-
ning seismic interpretation, reservoir characterisation, 3D reservoir geological modelling, reservoir simulation,
history matching and production management. Their solutions help operators make informed decisions across the
prospect lifecycle on where to drill, what production strategies to adopt, and how to maximize oil & gas recovery
from their assets.
Emerson Automation Solutions, an Emerson business, is a leader in helping businesses automate their production,
processing and distribution in the chemical, oil and gas, refining, pulp and paper, power, water and wastewater
treatment, mining and metals, food and beverage, life sciences and other industries. Its brands include PlantWeb™,
Syncade™, DeltaV™, Fisher®, Micro Motion®, Rosemount®, Daniel™, Ovation®, AMS Suite, and Roxar™.
i
ii
CONTENTS
1 Getting Started 1
1.1 Introduction to Tempest MORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Running the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Data overview 3
2.1 Outline of Data Input Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Global Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 INPUt Data Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 FLUId Data Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 RELAtive Permeability Data Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 GRID Data Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 INITialization Data Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.8 RECUrrent Data Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9 Table of Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
iii
5.4 BACK - Request Back-Compatibility with Previous Version 5.0 of MORE . . . . . . . . . . . 61
5.5 BLOG - Request Binary Log File is Output by the MORE Run . . . . . . . . . . . . . . . . . 62
5.6 BCON - Use the Boundary Conditioning Linear Solver . . . . . . . . . . . . . . . . . . . . . 63
5.7 BCOP - Options for the Boundary Conditioning Linear Solver . . . . . . . . . . . . . . . . . 64
5.8 BICG - Request Bi-conjugate Gradient Stabilised Acceleration in the Linear Solver . . . . . . 65
5.9 CNAM - Component Names in a Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.10 COAR - Specify Uniform Coarsening Factors in X, Y, and Z-Directions . . . . . . . . . . . . 67
5.11 CPFL - Use Compressibility Preserving Pressure Function Lookup . . . . . . . . . . . . . . . 69
5.12 CSEP - Request that Completion Streams be Flashed through Separators . . . . . . . . . . . . 70
5.13 CXGR - Specify Non-Uniform Coarsening in the X-Direction . . . . . . . . . . . . . . . . . 71
5.14 CYGR - Specify Non-Uniform Coarsening in the Y-Direction . . . . . . . . . . . . . . . . . 73
5.15 CZGR - Specify Non-Uniform Coarsening in the Z-Direction . . . . . . . . . . . . . . . . . 75
5.16 DIRE - Control of Data Checking and Program Execution . . . . . . . . . . . . . . . . . . . 77
5.17 DRIL - Select Once-only or Multiple Drilling from Drilling Queue . . . . . . . . . . . . . . . 78
5.18 DWPW - Default Weighting for Pressure Averages of Wells . . . . . . . . . . . . . . . . . . 79
5.19 ECCF - Add Contributions to Connection Factors using Root of Sum of Squares . . . . . . . 80
5.20 EDAT - End Date or Time of the Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.21 ERRO - Severity and Output Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.22 ETUN - Set Tuning to Match ECLIPSE Settings . . . . . . . . . . . . . . . . . . . . . . . . 83
5.23 EVEN - Select Time-Stepping Option with Events . . . . . . . . . . . . . . . . . . . . . . . 84
5.24 FAFL - Use Fracture Augmented Flow option . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.25 FL3P - Test for Three Phase Hydrocarbon States . . . . . . . . . . . . . . . . . . . . . . . . 87
5.26 FLXR - Request that Reservoir Fluxes be read from a Flux File . . . . . . . . . . . . . . . . 88
5.27 FLXT - Set Type of Flux Boundary Conditions . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.28 FLXW - Request that Reservoir Fluxes be written to a File . . . . . . . . . . . . . . . . . . . 92
5.29 FORC - Model Forchheimer (Non-Darcy) Flow . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.30 GPP - Use gas pseudo-pressure for well inflow . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.31 HYST - Switch On Hysteresis Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.32 IDAT - Initial or Beginning Date of the Simulation . . . . . . . . . . . . . . . . . . . . . . . 96
5.33 IEPD - Imbibition EndPoint Default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.34 IMPL - Control Degree of Implicitness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.35 IMPQ - Set Options for IMPES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.36 IPFL - Use Inverse Pressure Function Lookup . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.37 INPU - Input Section Header Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.38 IPR - Request Inflow Performance Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.39 LOAD - Reads a fast restart file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.40 LOGF - Select Destination for Standard Output . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.41 LUMP - Lumped Component Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.42 MAXC - Maximum CPU time for the simulation (in minutes) . . . . . . . . . . . . . . . . . 108
5.43 MAXE - Maximum elapsed time for the simulation (in minutes) . . . . . . . . . . . . . . . . 109
5.44 MAXM - Maximum memory for the simulation . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.45 MESL - Set print limits for messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.46 MFC - Request Matrix Fracture Condensation . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.47 MGDE - Debug output requests for Multigrid linear solver . . . . . . . . . . . . . . . . . . . 113
5.48 MGOP - Options for the Multigrid linear solver . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.49 MGLS - Use the Algebraic Multigrid Linear Solver . . . . . . . . . . . . . . . . . . . . . . . 115
5.50 MGVB - Use the FIPE Linear Equation Set . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.51 MIXK - Mix Oil and Gas Relative Permeabilities and Potentials for Miscible Cases . . . . . . 117
5.52 MINS - Minimum time step for the simulation . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.53 MPFA - Use Multipoint Flux Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.54 MPGP - Use Multi-Phase Gas Pseudo-pressure for well inflow . . . . . . . . . . . . . . . . . 121
5.55 NEPT - Number of Pressure Tables (for use when reading ECLIPSE format Fluid Properties) . 122
5.56 NEST - Number of Saturation Tables (for use when reading ECLIPSE format Fluid Properties) 124
5.57 NEZT - Number of Equation of State Regions (for use when reading ECLIPSE format Fluid
Properties) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.58 NFLS - Force Use of the Nested Factorisation Solver . . . . . . . . . . . . . . . . . . . . . . 128
5.59 NOHY - Switch Off Hysteresis Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.60 NUMA - This run will use numerical aquifers . . . . . . . . . . . . . . . . . . . . . . . . . . 130
iv
5.61 OPEN - Defines Alternate I/O Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.62 OPER - Select Time-Stepping Option with Operations . . . . . . . . . . . . . . . . . . . . . 134
5.63 OPMX - Maximum Number of Cells for a Printed Map in the .out File . . . . . . . . . . . . . 135
5.64 PRIN - Define Printing Options for Input Data . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.65 QCVF - Use Quadratic Compressibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.66 RPTB - Request a report on the BLOG file contents . . . . . . . . . . . . . . . . . . . . . . . 139
5.67 RMS - Use root-mean-square error measure . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.68 RG - Use Russell-Goodrich for well inflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.69 SAVE - Generates a fast restart file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.70 SCMP - Standard Composition Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.71 SDAT - Starting Date or Time of the Simulation . . . . . . . . . . . . . . . . . . . . . . . . . 144
5.72 SLIP - Request use of Gas-Liquid Phase Slippage in Segmented Well Model . . . . . . . . . 145
5.73 SPLI - Splits for Additional Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.74 STRE - Request Output to Drive Streamline Displays in Tempest View . . . . . . . . . . . . 148
5.75 SWDA - Saturation Weighted Density Averages . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.76 TENS - Use Tensor Permeabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.77 TITL - Run Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.78 UNIT - Simulation Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.79 VDKR - Use Velocity-Dependent Relative Permeabilities for Well Inflow . . . . . . . . . . . 154
5.80 VSC3 - Select Scaling Method for Three-Point Vertical Scaling . . . . . . . . . . . . . . . . 155
5.81 WDOP - Options for Calculating Wellbore Density . . . . . . . . . . . . . . . . . . . . . . . 156
5.82 WFPLUS - Settings for improved well fracturing model functionality . . . . . . . . . . . . . 157
5.83 WFSP - Fraction Value for WFRA Shared Path Correction . . . . . . . . . . . . . . . . . . . 160
v
6.33 GCOR - Specific Gravity Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
6.34 KCOR - K-Value Correlation for Phase Stability Test . . . . . . . . . . . . . . . . . . . . . . 218
6.35 OMGA - Equation-of-State Ωa Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
6.36 OMGB - Equation-of-State Ωb Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
6.37 PRIN - Equation of State Fluid Property Printing Options . . . . . . . . . . . . . . . . . . . . 223
6.38 PROP - Component Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
6.39 SOLU - Solubility Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
6.40 SURF - Reference Surface Tension Data for Equation-of-State Simulations . . . . . . . . . . 235
6.41 STDC - Set Standard Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
6.42 TEMP - Temperature Input for Equation-of-State Systems . . . . . . . . . . . . . . . . . . . 238
6.43 TEST - Testing Method for 1-phase Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
6.44 TOLE - Override Default Convergence Tolerances . . . . . . . . . . . . . . . . . . . . . . . 241
6.45 VCOR - Lohrenz-Bray-Clark Viscosity Correlation . . . . . . . . . . . . . . . . . . . . . . . 242
6.46 VICO - Viscosity Correlation for Compositional Runs . . . . . . . . . . . . . . . . . . . . . 244
6.47 VCVI - Critical volumes for equation of state viscosity correlations . . . . . . . . . . . . . . 245
6.48 VOLU - Volume Translation Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
6.49 ZCOR - Z-Factor Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
6.50 ZCVI - Critical Z-factors for Equation of State Viscosity Correlations . . . . . . . . . . . . . 248
6.51 POLY - Enable Polymer Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6.52 PPRO - Variation of Water Viscosity with Water Polymer Concentration . . . . . . . . . . . . 250
6.53 PADS - Control Polymer Adsorption on Rock . . . . . . . . . . . . . . . . . . . . . . . . . . 251
6.54 PADT - Polymer Adsorption Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
6.55 PAKW - Effect of Polymer Adsorption upon water relative permeability . . . . . . . . . . . . 254
6.56 PSHE - Control Polymer Shearing Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
6.57 PMIS - Parameters for Polymer Modelling Correlations . . . . . . . . . . . . . . . . . . . . . 256
6.58 THER - Enable the Thermal Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
6.59 GVVT - Gas Viscosity Variation with Temperature . . . . . . . . . . . . . . . . . . . . . . . 259
6.60 HLOS - Heat Loss Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
6.61 OVVT - Oil Viscosity Variation with Temperature . . . . . . . . . . . . . . . . . . . . . . . . 263
6.62 THCG - Gas Conductivity Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
6.63 THCO - Oil Conductivity Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
6.64 THCR - Rock Conductivity Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
6.65 THCW - Water Conductivity Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
6.66 THXO - Oil Thermal Expansion Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . 271
6.67 THXR - Rock Thermal Expansion Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . 272
6.68 THXW - Water Thermal Expansion Coefficients . . . . . . . . . . . . . . . . . . . . . . . . 273
6.69 UGAS - Gas Specific Heat Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
6.70 UOIL - Oil Specific Heat Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.71 UROC - Rock Specific Heat Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
6.72 UWAT - Water Specific Heat Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
6.73 WVVT - Water Viscosity Variation with Temperature . . . . . . . . . . . . . . . . . . . . . . 278
6.74 STEA - Request Steam Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
6.75 SOLV - Set Surface Density of Solvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
6.76 MFVP - Miscibility Factor vs. Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
6.77 MISC - Reference Surface Tension Data for Solvents . . . . . . . . . . . . . . . . . . . . . . 285
6.78 OSPVT - Defines Oil-Solvent PVT Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
6.79 SPVT - Defines Solvent PVT Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
6.80 TLMS - Minimum miscibility saturation factor . . . . . . . . . . . . . . . . . . . . . . . . . 290
6.81 TODD - Use Todd-Longstaff Viscosity Mixing Rule . . . . . . . . . . . . . . . . . . . . . . 291
6.82 CBM - Coal Bed Methane Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
6.83 CCOA - Components Adsorbed by Coal in Compositional CBM Modelling . . . . . . . . . . 297
6.84 CDEN - Coal Density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
6.85 LANG - Global Values for Coal Bed Methane Modelling . . . . . . . . . . . . . . . . . . . . 301
6.86 SHAL - Shale Gas Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
6.87 AGVP - Available Shale Gas Variation with Pressure . . . . . . . . . . . . . . . . . . . . . . 304
6.88 BRINE - Enable Brine Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
vi
7.1 ADJU - Adjustments to Relative Permeability Curves . . . . . . . . . . . . . . . . . . . . . . 307
7.2 EPS - Endpoint Scaling Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
7.3 EPSP - Capillary Pressure Endpoint Scaling Option . . . . . . . . . . . . . . . . . . . . . . . 310
7.4 FRPC - Freeze Capillary Pressures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
7.5 FFVS - Solvent and Gas Fractional Flows vs. Solvent Fraction . . . . . . . . . . . . . . . . . 312
7.6 GSF - Gas Saturation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
7.7 KRDR - Directional Relative Permeabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
7.8 KRGO - Gas-Oil Relative Permeability Table . . . . . . . . . . . . . . . . . . . . . . . . . . 317
7.9 KRWG - Water in Gas Relative Permeability Table . . . . . . . . . . . . . . . . . . . . . . . 319
7.10 KRWO - Water-Oil Relative Permeability Table . . . . . . . . . . . . . . . . . . . . . . . . . 320
7.11 MCSW - Miscible Critical Solvent Saturation with respect to Water Saturation . . . . . . . . 322
7.12 MROW - Miscible Residual Oil Saturation with respect to Water Saturation . . . . . . . . . . 324
7.13 MFVS - Miscibility Factor vs. Solvent Fraction . . . . . . . . . . . . . . . . . . . . . . . . . 326
7.14 NWHY - Select Non-Wetting Phase Hysteresis for all Phase Combinations . . . . . . . . . . 328
7.15 OSF - Oil Saturation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
7.16 PCHC - Set Curvature Parameter for Capillary Pressure Hysteresis . . . . . . . . . . . . . . . 331
7.17 PRIN - Printing Options for Relative Permeability . . . . . . . . . . . . . . . . . . . . . . . 332
7.18 RELA - Relative Permeability Section Header Line . . . . . . . . . . . . . . . . . . . . . . . 336
7.19 SSF - Solvent Saturation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
7.20 SCAL - Scaled Relative Permeability Curves . . . . . . . . . . . . . . . . . . . . . . . . . . 339
7.21 TFUN - Tracer or Temperature Dependent Property Multipliers . . . . . . . . . . . . . . . . 341
7.22 WETT - Wettability Options for Three-Phase Calculations . . . . . . . . . . . . . . . . . . . 343
7.23 WSF - Water Saturation Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
7.24 ZERO - Permit Zero Connate Water Saturation . . . . . . . . . . . . . . . . . . . . . . . . . 347
vii
8.33 DPOR - Dual Porosity Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
8.34 DPER - Dual Permeability Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
8.35 DPSS - Dual Porosity Source/Sink Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . 446
8.36 DPGR - Dual Porosity GRid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
8.37 DZMA - Matrix Material Unit Height . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
8.38 EEGR - Output ECLIPSE Extensible Gridfile . . . . . . . . . . . . . . . . . . . . . . . . . . 450
8.39 EGRI - Output ECLIPSE Format Gridfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
8.40 ELOB - Palmer-Mansoori EL/B Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
8.41 ENDR - Return to Applying Grid Data to Global Grid . . . . . . . . . . . . . . . . . . . . . 454
8.42 EOSN - Equation of State Region Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
8.43 EQUI (EQLN) - Equilibration Table Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . 457
8.44 EROC - Young’s Modulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
8.45 FASH - Ash Fraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
8.46 FAUL - Fault Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
8.47 FAULTS - Defining Fault Segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
8.48 FAXY - Specify Fracture Paths for Fracture Augmented Flows . . . . . . . . . . . . . . . . . 472
8.49 FLXA - Specify Which Flux Regions are Active in a FLXR Run . . . . . . . . . . . . . . . . 473
8.50 FLXN - Flux Region numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
8.51 FLXY - Specify a Fault-type PEBI Refinement Feature . . . . . . . . . . . . . . . . . . . . . 476
8.52 FMUL - Fault Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
8.53 FROC - Palmer-Mansoori Mixing Fraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
8.54 FSHR - Palmer-Mansoori Shrinkage Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
8.55 GRDE - Request Output of Grid Data in ECLIPSE Keyword Form . . . . . . . . . . . . . . . 483
8.56 GRID - GRID Section Header Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
8.57 HORI - Horizontal Input Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
8.58 IGCR - Critical Gas Saturation for Imbibition . . . . . . . . . . . . . . . . . . . . . . . . . . 486
8.59 IGL - Connate Gas Saturation for Imbibition Processes . . . . . . . . . . . . . . . . . . . . . 487
8.60 IGU - Maximum Gas Saturation for Imbibition . . . . . . . . . . . . . . . . . . . . . . . . . 488
8.61 IOGC - Critical Saturation of Oil in Gas for Imbibition . . . . . . . . . . . . . . . . . . . . . 489
8.62 IOWC - Critical Saturation of Oil in Water for Imbibition . . . . . . . . . . . . . . . . . . . . 490
8.63 IWCR - Critical Water Saturation for Imbibition . . . . . . . . . . . . . . . . . . . . . . . . 491
8.64 IWGC - Critical Saturation of Water in Gas for Imbibition in Oil-Wet Case . . . . . . . . . . 492
8.65 IWL - Connate Water Saturation for Imbibition . . . . . . . . . . . . . . . . . . . . . . . . . 493
8.66 IWU - Maximum Water Saturation for imbibition . . . . . . . . . . . . . . . . . . . . . . . . 494
8.67 KRPR - KVSP Reference Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
8.68 KPTA - KVSP Table Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
8.69 KRDX - Saturation Table Numbers for Flow in the X-Direction . . . . . . . . . . . . . . . . 499
8.70 KRDY - Saturation Table Numbers for Flow in the Y-Direction . . . . . . . . . . . . . . . . . 501
8.71 KRDZ - Saturation Table Numbers for Flow in the Z-Direction . . . . . . . . . . . . . . . . . 503
8.72 KRMX - Saturation Table Numbers for Flow in the Negative X-Direction . . . . . . . . . . . 505
8.73 KRMY - Saturation Table Numbers for Flow in the Negative Y-Direction . . . . . . . . . . . 507
8.74 KRMZ - Saturation Table Numbers for Flow in the Negative Z-Direction . . . . . . . . . . . 509
8.75 K_X (or KX, K-X, PERMX) - X-Permeability . . . . . . . . . . . . . . . . . . . . . . . . . 511
8.76 K_Y (or KY, K-Y, PERMY) - Y-Permeability . . . . . . . . . . . . . . . . . . . . . . . . . . 513
8.77 K_Z (or KZ, K-Z, PERMZ) - Z-Permeability . . . . . . . . . . . . . . . . . . . . . . . . . . 515
8.78 LAYE - Define Layering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
8.79 LEVJ - Leverett J-Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
8.80 LJOP - Options for Leverett J-Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
8.81 LGRD - Local Grid Refinement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
8.82 LOG1 - Logarithmic Spacing Excluding the 1st Interval in the R-direction . . . . . . . . . . . 525
8.83 LOGA - Logarithmic Spacing in the X, Y or Theta Direction . . . . . . . . . . . . . . . . . . 527
8.84 LOGA - Logarithmic Spacing in the R-direction . . . . . . . . . . . . . . . . . . . . . . . . 530
8.85 MFTC - Matrix-Fracture Time Constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
8.86 MIND - Minimum Cell Thickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
8.87 MINP - Minimum Pore Volume Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
8.88 MLRP - Multiply Cell Pore Volumes on Basis of MULN Region . . . . . . . . . . . . . . . . 540
8.89 MLRT - Transmissibility Multipliers Between Regions on Basis of MULN Region . . . . . . 541
8.90 MODE - Input Processing Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
viii
8.91 MULN - Region Numbers for Applying Inter-Region Transmissibility Multipliers . . . . . . . 543
8.92 MULTFLT - Set Transmissibility Multipliers for Faults . . . . . . . . . . . . . . . . . . . . . 545
8.93 MULX (or MX, M-X, M_X, MULTX) - X-Transmissibility Multiplier . . . . . . . . . . . . . 548
8.94 MULY (or MY, M-Y, M_Y, MULTY) - Y-Transmissibility Multiplier . . . . . . . . . . . . . 550
8.95 MULZ (or MZ, M-Z, M_Z, MULTZ) - Z-Transmissibility Multiplier . . . . . . . . . . . . . 552
8.96 MXM (or MULTX-) - X-Transmissibility Multiplier in the Negative X-Direction . . . . . . . 554
8.97 MYM (or MULTY-) - Y-Transmissibility Multiplier in the Negative Y-Direction . . . . . . . . 556
8.98 MZM (or MULTZ-) - Z-Transmissibility Multiplier in the Negative Z-Direction . . . . . . . . 558
8.99 NEPS - Set options for endpoint scaling at non-neighbour connections . . . . . . . . . . . . . 560
8.100 NNC - Define Non-Neighbour Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
8.101 NOGE - No Geometric Non-neighbour connections. . . . . . . . . . . . . . . . . . . . . . . 565
8.102 NONN - No Non-Neighbour Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
8.103 NOXY - Restore Normal Grid Subdivisions after XDIV or YDIV . . . . . . . . . . . . . . . 567
8.104 NTOG (or NTG) - Net-to-Gross Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
8.105 PDSI - Initial Coal Desorption Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
8.106 PDSn - Compositional Initial Coal Desorption Pressure . . . . . . . . . . . . . . . . . . . . . 577
8.107 PEBI - Specify a PEBI Local Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
8.108 PDIV - Division of Plane between Processors for Parallel Simulation . . . . . . . . . . . . . 581
8.109 PINC - Pinchout Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
8.110 PLAN - Langmuir Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
8.111 PLNn - Compositional Langmuir Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
8.112 PMEX - Permeability Variation Exponent in Palmer-Mansoori Model . . . . . . . . . . . . . 594
8.113 PNSW - Pinchout Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
8.114 PORO - Porosity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
8.115 PORV,TRANX,TRANY,TRANZ - Pore vol. and trans. in ECLIPSE units . . . . . . . . . . . 601
8.116 PREG - Polymer Property Region Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
8.117 PROC - Poisson’s Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
8.118 PVOL (or RVOL)- Modify or Replace Pore Volumes . . . . . . . . . . . . . . . . . . . . . . 606
8.119 PVOL tran, DEPT - Pore Volume, Transmissibility, Depth Modify/Replace . . . . . . . . . . 610
8.120 PVBM - Multiply pore volumes along a boundary . . . . . . . . . . . . . . . . . . . . . . . . 612
8.121 PVFL - Minimum Pore Volume for Active Cells . . . . . . . . . . . . . . . . . . . . . . . . 615
8.122 PVTN - Pressure Table Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
8.123 PRIN - Define Grid Print Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
8.124 R-DI - R-Direction Grid Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
8.125 REFI - Apply Grid Data to Local Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
8.126 REFE - Rock Compressibility Reference Pressure . . . . . . . . . . . . . . . . . . . . . . . . 630
8.127 ROCK (or SATN) - Saturation Table Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . 632
8.128 ROFF - Read ROFF file into MORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
8.129 ROTA - Areal Rotation-Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
8.130 RPIP - Reference Pressures to be set to Initial Pressures . . . . . . . . . . . . . . . . . . . . 639
8.131 SIGM - Matrix-Fracture Coupling Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
8.132 SGCR - Critical Gas Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
8.133 SGL - Connate Gas Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
8.134 SGU - Maximum Gas Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
8.135 SOCO - Connate Oil for Black Oil Models . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
8.136 SOGC - Critical Saturation of Oil in Gas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
8.137 SOWC - Critical Saturation of Oil in Water . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
8.138 SWCR - Critical Water Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
8.139 SWGC - Critical Saturation of Water in Gas . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
8.140 SWL - Connate Water Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
8.141 SWU - Maximum Water Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
8.142 SIZE - Size and Type of Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
8.143 SPEC - Specify the Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
8.144 SORM - Trapped Oil Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
8.145 TCON - Define Transmissibilities of Non-Neighbour Connections . . . . . . . . . . . . . . . 667
8.146 THET - Theta-Direction Grid Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
8.147 THIC (or DZ) - Grid Cell Thicknesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
8.148 TLAN - Langmuir Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
ix
8.149 TLNn - Compositional Langmuir Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
8.150 TMUL - Non-Neighbour Transmissibility Multipliers . . . . . . . . . . . . . . . . . . . . . . 681
8.151 TREG - Thermal Property Region Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
8.152 TRXY - Specify a Trajectory-type PEBI Refinement Feature . . . . . . . . . . . . . . . . . . 686
8.153 TSUM - Modify Sum of Transmissibility/Pore Volume . . . . . . . . . . . . . . . . . . . . . 688
8.154 T_X, T_Y or T_Z - Modify or Replace X, Y or Z-Transmissibilities . . . . . . . . . . . . . . 690
8.155 VARI - Variable Grid Spacing in the X, Y or Theta Direction . . . . . . . . . . . . . . . . . . 694
8.156 VARI - Variable Grid Spacing in the R-direction . . . . . . . . . . . . . . . . . . . . . . . . 696
8.157 VERT - Vertical Input Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
8.158 X-DI - X-Direction Grid Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
8.159 XDIV - Grid Subdivisions in the X-direction . . . . . . . . . . . . . . . . . . . . . . . . . . 703
8.160 XGRI - X-Grid Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
8.161 XKRG - Gas Relative Permeability Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . 709
8.162 XKRO - Oil Relative Permeability Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . 711
8.163 XKRW - Water Relative Permeability Multiplier . . . . . . . . . . . . . . . . . . . . . . . . 713
8.164 XPCG - Gas Capillary Pressure Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
8.165 XPCW - Water Capillary Pressure Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . 718
8.166 Y-DI - Y-Direction Grid Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
8.167 YDIV - Grid Subdivisions in the Y-direction . . . . . . . . . . . . . . . . . . . . . . . . . . 725
8.168 YGRI - Y-Grid Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
8.169 YKOG - Oil Relative Permeability Multiplier at Critical Gas Saturation . . . . . . . . . . . . 731
8.170 YKOW - Oil Relative Permeability Multiplier at Critical Water Saturation . . . . . . . . . . . 732
8.171 YKRG - Gas Relative Permeability Multiplier at Critical Other-Phase Saturation . . . . . . . 733
8.172 YKRW - Water Relative Permeability Multiplier at Critical Other-Phase Saturation . . . . . . 734
8.173 ZCOR - Grid Cell Corner Depths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
8.174 Z-DI - Define Z-direction Rotation/Translation . . . . . . . . . . . . . . . . . . . . . . . . . 737
8.175 ZONE - Zones for Array Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
x
9.29 TRIM - Reset the Composition of Saturated Cells in the Gas Zone to Prevent Oil Appearance at
the Start of a Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
9.30 XMFV - Initial Variation of Oil Composition with respect to Depth . . . . . . . . . . . . . . 789
9.31 YMFV - Initial Variation of Gas Composition with respect to Depth . . . . . . . . . . . . . . 790
9.32 CONS - Constant Non-Equilibrium Initial Conditions . . . . . . . . . . . . . . . . . . . . . . 791
9.33 F(DE - Depth Dependent Non-Equilibrium Initial Conditions . . . . . . . . . . . . . . . . . . 793
9.34 TMF - Total Mole Fraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
xi
10.50 HUNI - Units for Historical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
10.51 HTAB - In-line Well Historical Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
10.52 ILIM - Group Injection Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
10.53 INVO - Invoke an operation with arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
10.54 IPRL - Modify Limits of Inflow Performance Tables . . . . . . . . . . . . . . . . . . . . . . 920
10.55 KILL - Stop a Simulation on a Timestep Reduction . . . . . . . . . . . . . . . . . . . . . . . 921
10.56 KMOD - Modify Permeability during Simulation . . . . . . . . . . . . . . . . . . . . . . . . 922
10.57 LIMI - Define Custom Well Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
10.58 LSOL - Linear Solver Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
10.59 MASS - Force the use of mass variables with the Appleyard chop . . . . . . . . . . . . . . . 929
10.60 MOBI - Mobility Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
10.61 NOPI - No Pivoting (for Implicit compositional runs). . . . . . . . . . . . . . . . . . . . . . 931
10.62 OPER - Define an Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
10.63 PARE - Define Parent Group for a Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
10.64 PBAL - Production Balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
10.65 PBDT - Maximum Rate of Change of Bubble Point Pressure . . . . . . . . . . . . . . . . . . 937
10.66 PIPE - Characterise a Pipe for the Network Model . . . . . . . . . . . . . . . . . . . . . . . 938
10.67 PLPU - Pipeline Pump Performance Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
10.68 PMOD - Modify Porosity during Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 942
10.69 POTN - Periodic Well Potential Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . 945
10.70 PRIN - Printing Options for Recurrent Section . . . . . . . . . . . . . . . . . . . . . . . . . 946
10.71 PRIO - Group Prioritisation Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
10.72 PUMP - Downhole Pump Performance Table . . . . . . . . . . . . . . . . . . . . . . . . . . 950
10.73 PTAB - Enter a Pipe pressure TABle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
10.74 RATE - Rate Output Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
10.75 READ (or TIME or DATE) - Time to Read Recurrent Data . . . . . . . . . . . . . . . . . . . 962
10.76 RECU - Recurrent Section Header Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
10.77 RELK - Relative Permeability Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
10.78 RPM - Regional Pressure Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
10.79 RRTA - Radius and Roughness Table for a Well (Used by Segmented Well Model) . . . . . . 968
10.80 RSDT - Maximum Rate of Change of Solution Gas-Oil Ratio . . . . . . . . . . . . . . . . . 972
10.81 RVDT - Maximum Rate of Change of Vapour Oil-Gas Ratio . . . . . . . . . . . . . . . . . . 973
10.82 SATU, DENS, VISC, RELK, MOBI - Phase Properties . . . . . . . . . . . . . . . . . . . . . 974
10.83 SEPA - Define a Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
10.84 SEQU - Store a WAG sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
10.85 SERV - IMPES Volume Balance Error Servo Criteria . . . . . . . . . . . . . . . . . . . . . . 981
10.86 SOLV - Injected Solvent Concentration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
10.87 STMO - Modify Saturation Table During Simulation . . . . . . . . . . . . . . . . . . . . . . 984
10.88 SRV - Stimulated Reservoir Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
10.89 SRVW - Stimulated Reservoir Volume along a Trajectory . . . . . . . . . . . . . . . . . . . . 988
10.90 STOP - Stop the Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
10.91 STOR - Output Array to File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
10.92 TEST - Periodic Well Test Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
10.93 TFIL - Well Track Definition File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
10.94 TPRO - Physical Properties of a Well Track . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
10.95 TTAB - In-line Well Track Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
10.96 TUNI - Units for Well Track Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
10.97 UPSI - Upstream Steam Injection Mobilities . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
10.98 VISC - Viscosity Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
10.99 VREP - Voidage Replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
10.100 VTOL - Volume Error Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
10.101 WABC - Well Skin and D-factor from A and B Coefficients . . . . . . . . . . . . . . . . . . 1012
10.102 WAGT - Set Tolerances for WAG Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
10.103 WALQ - Set Well Artificial Lift Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
10.104 WCTL - Well settings controlling the THP shut-in behaviour . . . . . . . . . . . . . . . . . . 1015
10.105 WCOM - Set Up Action to be Taken if Well Pipeline Limit Cannot be Met . . . . . . . . . . 1016
10.106 WFFC - Water Filled Cell Flash Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
10.107 WFOR - Well is to use Forchheimer Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
xii
10.108 WFRA - Set up a Well Fracturing Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
10.109 WGPP - Well is to Use Gas Pseudo-Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . 1025
10.110 WLGA - Set Well Lift Gas Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026
10.111 WLGO - Well Availability for Group Lift Gas Optimisation . . . . . . . . . . . . . . . . . . 1027
10.112 WLIF - Optimise the Lift Value for a Well . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
10.113 WLOC - Well Location Input Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
10.114 WLTA - Set Well Lift Table Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
10.115 WLTM - Set Well Lift Table Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035
10.116 WMPG - Well is to Use Multi-phase Gas Pseudo-pressure . . . . . . . . . . . . . . . . . . . 1036
10.117 WMUL - Overall Well Connection Factor Multiplier . . . . . . . . . . . . . . . . . . . . . . 1037
10.118 WPAL - Set Well Pipe Artificial Lift Value . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
10.119 WPIP - Attach a Pipe to a Well . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
10.120 WPRI - Set Well Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
10.121 WPUM - Attach a Pipeline Pump to a Well . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
10.122 WRG - Well is to Use Russell-Goodrich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
10.123 WSEG - Requests that a Well be Modelled as a Multi-Segmented Well . . . . . . . . . . . . . 1043
10.124 WSET - Set up a Set of Wells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
10.125 WSPC - Set Well Separator Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
10.126 WTOL - Well Limit Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
10.127 WTRC - Set Tracer Concentration for an Injector Well . . . . . . . . . . . . . . . . . . . . . 1050
10.128 WUGR - Set Well User Guide Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
10.129 WVDK - Well is to use Velocity-Dependent Relative Permeabilities . . . . . . . . . . . . . . 1055
10.130 WWAG - Water and Gas Injection for a Well . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
10.131 WELL - Well Definition and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
10.132 CIJK - Completions for Deviated Wells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
10.133 COMP - Complete Well Along Welltrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
10.134 CONV - Well Conversion Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
10.135 CPLY - Injected Polymer Concentration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
10.136 CWAG - Continuous Water and Gas Injection for a Well . . . . . . . . . . . . . . . . . . . . 1074
10.137 DEVI - Deviated Well Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
10.138 DFAC - Well D-Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
10.139 DRAW - Set Drawdown Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
10.140 DREF - Well Bottom Hole Pressure Reference Depth . . . . . . . . . . . . . . . . . . . . . . 1082
10.141 HIST - Historical Well Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083
10.142 HORI - Horizontal Well Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
10.143 LIFT - Artificial LIFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
10.144 LOCA - Vertical Well Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088
10.145 P-RE - Pressure at the External Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
10.146 RADI - Well Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
10.147 REDE - Well Redefinition Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
10.148 RESV - Use Reservoir Volumes for Injectors . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
10.149 STEA - Steam Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098
10.150 STIM - Well Stimulation Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
10.151 TEMP - Injection Temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
10.152 WCOR - Correct Wells to Grid Corner or Edge . . . . . . . . . . . . . . . . . . . . . . . . . 1107
10.153 WDEN - Wellbore Fluid Density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
10.154 WEFA - Well Efficiency Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
10.155 WEOS - Set Surface Equation of State for the Well . . . . . . . . . . . . . . . . . . . . . . . 1113
10.156 WEPS - Set options for endpoint scaling at completions . . . . . . . . . . . . . . . . . . . . 1114
10.157 WLIM - Auxiliary Well Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
10.158 WSWI - Switch between Primary and Secondary Injection Fluids . . . . . . . . . . . . . . . 1119
10.159 WWEF - Well Efficiency Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
10.160 ZONE - Zone Completion Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
10.161 RECY - Group Recycle Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
10.162 CSAL - Compositional Sales Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
10.163 CMAK - Compositional Makeup Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
10.164 SALE - Group Sales Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
10.165 MAKE - Makeup Rate Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
xiii
10.166 IORD - Order for Reinjection and Makeup into Injected Gas . . . . . . . . . . . . . . . . . . 1141
10.167 ORDE - Order for Fuel, Sales and Reinjection from Produced Gas . . . . . . . . . . . . . . . 1144
10.168 TUBI - Tubing Head Pressure Table Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
10.169 FLOW - Tubing Table Flow Rate Specification . . . . . . . . . . . . . . . . . . . . . . . . . 1153
10.170 THP - Tubing Head Pressure Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
10.171 RATI - Ratio to Flow Rate Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
10.172 ALQ - Tubing Table Artificial Lift Specification . . . . . . . . . . . . . . . . . . . . . . . . . 1164
10.173 BHP - Bottom Hole Pressure Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
10.174 HEAD - Convert Well Pressures to Datum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
xiv
15.15 Operations Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1470
15.16 Solvent Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474
15.17 Relative Permeability examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475
xv
17.40 Improved Well Fracturing Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771
17.41 Well Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1778
17.42 Well Index Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783
17.43 Obtaining Skin and D-factor from A and B Coefficient Well Test Data . . . . . . . . . . . . . 1788
xvi
CHAPTER
ONE
GETTING STARTED
MORE allows black oil, thermal and equation of state simulation. In a black oil model the hydrocarbon system
is represented by two components, stock tank oil and stock tank gas. The solution gas-oil ratio, Rs, defines the
solubility of the gas component in the reservoir oil phase. The vapour oil-gas ratio, Rv, defines the amount of
the oil component in the reservoir gas phase. The formation volume factors specify the volumetric properties of
the fluid. Formation volume factors, solution gas oil ratio, gas liquid content, and viscosities are tabular functions
of saturation pressure. When the oil is undersaturated, the formation volume factor and viscosity are treated as
functions of pressure. Multiple PVT tables can be defined to represent the fluid properties in different parts of the
reservoir.
In compositional mode the hydrocarbon is represented by a number of components such as methane and ethane.
An equation of state is used to determine fluid properties such as density and viscosity. To determine fluid volumes
at surface conditions, a separator flash is carried out.
Three phase relative permeabilities are calculated using Stone I, Stone II or a linear interpolation. Hysteresis of
oil, gas and water relative permeability is supported, and curves may be modified from cell to cell using the end
point scaling options.
Either equilibrium or non-equilibrium initial conditions may be specified. The simulator can adjust the composi-
tion of the oil column to match a specified variation of bubble point pressure with depth.
One, two or three spatial dimensions may be used in either a Cartesian or cylindrical coordinate system. Both
right- and left-handed coordinate frames are accepted. MORE grids are normally composed of quadrilaterals
areally, while the z-direction grid lines may be vertical or sloping. Block centre or corner point descriptions may
be used for transmissibility calculations. When corner points are known fault transmissibilities and pinch-out
connections will be generated automatically.
MORE normally uses a 5-point block method. The exception is when the TENSOR option is used, in which case
a higher order method is employed.
MORE may be run in fully implicit, adaptive implicit or IMPES mode. The GMRES/nested factorization solver
is robust and only has only one tuning parameter, the solver stack size. There are no solver constraints on well
placement, and more than one well may exist in a grid block.
Dynamic allocation of memory is used throughout - there is no need to use keywords to pre-allocate space.
Production system constraints may be defined at both the well and group level. When a limit is violated a range
of remedial actions is available, such as workovers and the drilling of new wells.
MORE has a range of flexible features for specifying grid data such as porosity and thickness. Data generated by
a preprocessor for ECLIPSE™ using ZCORN and COORD keywords may be read directly by MORE. Grid data
may be defined using expressions or as a function of depth or porosity.
The Tempest post-processor accompanies MORE, and is the preferred way of displaying MORE results.
MORE can create ECLIPSE™ compatible grid, summary, init and restart files, so MORE output may also be
visualized using software which reads these files.
1
Tempest MORE Help, Release 8.1
The MORE program can be run from the command line. The command for this is:
mored.exe filename
Example:
mored.exe mspe3.dat
Where mspe3.dat is the name of the simulation to execute
Optional arguments:
There are optional arguments that can be included in the command. These are:
• -MAXCPU
• -MAXELAP
• REXMPI
• REXPMV
• REXSOCKETS
• RTPW1
• RTPW2
-MAXCPU:
MAXCPU sets the maximum CPU time for a run. If the simulation is still running when the limit is reached a
warning is issued.
Example:
mored.exe filename -MAXCPU 60
Sets a maximum elapsed CPU time of 60 minutes.
-MAXELAP.
This sets an upper limit to the maximum elapsed time for a run in minutes. If the simulation is still running when
the limit is reached a warning is issued.
Example:
mored.exe filename -MAXELAP 30
This sets a maximum elapsed CPU time of 30 minutes.
REXMPI
No longer in available
REXPVM
No longer in available
REXSOCKETS
Starts the simulation in REX socket mode.
RTPW1
Runtime password 1
RTPW2
Runtime password 2
TWO
DATA OVERVIEW
The MORE input data file is a simple text file. The maximum length of an input line is 1000 characters. A warning
is issued if extra data is found beyond this limit.
Keywords
Keywords in MORE have 4 significant characters. A keyword must be on a new line and may only be preceded by
blanks. Case is not significant. In some cases a keyword (such as WELL) may introduce a series of sub-keywords.
The keyword line may also contain values or options.
Data
In some cases the amount of data is too great to fit on a keyword line. If so, the keyword line is followed by further
data.
Comments
Comment lines start with a slash (/) character. A / may also appear after data values on any line - MORE will
ignore everything after the / character. Two dashes (–) or a * character at the beginning of a line also indicate a
comment.
Data is free format and it is not necessary to enter data in specific columns on a line. Values must be separated by
one or more blank spaces. All of the usual formats - 15, 2.3E4, 0.635 etc. - are valid.
3
Tempest MORE Help, Release 8.1
Repeat Counts
n*v can be used to specify that a value v is repeated n times. For example: 25 3*21 28 is equivalent to 25 21 21
21 28.
Defaults
n* can be used to specify that n items should retain their default or previous values. So 1* implies one default
value and 3* implies 3 default values.
Termination of Tables
A comment line, i.e. a line beginning with a slash, should terminate tabular data supplied on multiple lines.
Global keywords may appear in any section of the input data file. The global section keywords are summarised
below:
ECHO Control ECHOing of the input file to the output file
OPEN Defines alternate I/O files
SWIT SWITches between standard and alternate I/O units
INCL INCLude another file
SKIP/ENDS Start/stop skipping input data
The simulator employs a number of files. When reading input data it is common to include other files. This may
be done using the INCLUDE keyword or OPEN and SWIT. Included files may be nested. When OPEN is used an
alternate input file is opened, and SWIT may then be used to switch between standard and alternate input. When
the end of an include or alternate file is reached the program returns to the original file.
A number of binary files are used to hold information for restarts and post-processing. The default is that these
follow the name of the data file - so if the data is in study43.dat the output files will be study43.mis
etc. OPEN ALL can be used to change the name and location of the output files - for example to put them in a
subdirectory.
Output to the binary files is controlled by:
• PRINT MAP in the GRID section
• ARRA and GENE REST keywords in the RECU section
• RATE and FREQ keywords in the RECU section
This section of the data file is used to supply basic input data to the simulator. Some INPUt section keywords are
summarized below:
Keyword Description
INPU INPUt section header line
TITL TITLe on page headers
UNIT UNIT system
IDAT Initial date
SDAT Start date of this run
CNAM Component names
DIRE Select error checking mode
OPEN Defines alternate I/O files
FLXR/FLXW Requests that reservoir fluxes are read/written to file
COAR Define uniform grid coarsening
CXGR Define non-uniform grid coarsening in x-direction
CYGR Define non-uniform grid coarsening in y-direction
CZGR Define non-uniform grid coarsening in z-direction
SAVE Generate a fast restart file replacing the INPU, FLUI, RELA and GRID sections
LOAD Input a fast restart file replacing the INPU, FLUI, RELA and GRID sections
CNAM is the only keyword that must be entered. In black oil mode possible components are oil, water, gas and
steam. In compositional mode a series of component names may be entered. These may be known library names,
such as C1, or other names for which properties will be provided.
The UNIT line may be used to specify the units to be used in the simulation. Metric or Imperial units may be used
- the default is Imperial, known in MORE as Practical Oil File Units (POFU). A list of units used in MORE may
may be found here.
IDAT is recommended for specifying the initial date, corresponding to a simulation time of zero. Dates may be
supplied as either (day month year) or (month day year) separated by blanks. The month is specified using the
first three letters of its name - e.g. AUG for August. Both JLY and JUL are accepted.
SDAT specifies the starting date for the simulation, either as a date or a time from the initial date. If the starting
date is after the initial date a restart will be attempted using the results from a previous simulation.
TITL defines a two-line header that is printed throughout the program output.
COAR, CXGR, CYGR and CZGR allow the calculational grid to be coarsened to improve speed and reduce memory
requirements for the run. The coarsening is performed internally, so the input is unchanged, apart from the addition
of the coarsening keywords. The OUTP argument requests that Tempest displays results on the coarse grid.
This section is used to supply relative permeability and capillary pressure data. Important RELA section keywords
are summarised below:
Keyword Description
RELA RELAtive permeability section header line
PRIN Define PRINting options
WETT Specify 3-phase relative permeability treatment
KRWO Water/oil relative permeability tables
KRGO Gas/oil relative permeability tables
OSF/GSF/WSF Oil/Gas/Water relative permeability data
Water/oil data is required if water is in the simulation. Gas/oil data is required if gas and oil are in the simulation
The relative permeability tables should be supplied in order of increasing saturation. The number of water/oil and
gas/oil tables should match.
The WETTability data is used only for three phase problems. The default three-phase calculation option uses
a modified form of Stone’s II method. Stone I and a linear interpolation form as used by ECLIPSETM are also
available - please refer to the Relative Permeability Calculations section of the MORE Technical Reference for
more information.
OSF, GSF and WSF are available as alternatives to KRGO and KRWO. In these keywords the relative permeability
of a phase is a function of the saturation of that phase.
The ROCK array (in the GRID section) is used to associate relative permeability tables with cells in the reservoir.
Note that MORE 6 uses the lowest saturation value in the water relative permeability table (KRWO or SWF) to
define the connate water saturation. This is different from earlier versions of MORE which used the first non-zero
Krw value. To guard against error, a zero connate water saturation value may only be read if a ZERO keyword has
been used - otherwise it is assumed that a data error exists. A zero connate water saturation in a run containing
water is unlikely and is probably an error.
Discussion
This section is used to supply data which describes the model grid and rock properties. The following table
summarises the most significant GRID keywords:
Keyword Description
GRID GRID section header line
PRIN Define PRINting options
SIZE SIZE and type of grid
SPEC SPECify the grid
HORI HORIzontal data input mode
VERT VERTical data input mode
DPOR Request dual porosity modelling
DPER Request dual permeability modelling
MINP MINimum Pore Volume
PINC PINChout Tolerance
DATU DATUm depth
X-DI X-DIrection grid spacing
Y-DI Y-DIrection grid spacing
COOR Grid COORdinates
ZCOR Cell corner point depths
COORDSYS Specify coordinate system
DEFI DEFIne an array
PVOL, TX, TY, TZ Pore volume/transmissibility modify/replace
TSUM Modify SUM of Transmissiblity/pore volume
NNC Define non-neighbour connections
TCON Transmissibilities of non-neighbour CONnections
TMUL Non-neighbour Transmissibility MULtipliers
FAUL FAUlt definition
FMUL Fault MULtiplier
The keywords R-DI and THETA are used in radial studies but are synonymous with X-DI and Y-DI respectively.
SIZE and SPECgrid are two different formats for the same data - only one is required.
GRID data is of three basic types:
• To specify grid size and type - SIZE, HORI and VERT.
• To set cell properties - X-DI, Y-DI, PORO, K-X etc.
• To modify pore volume and transmissibilities.
These main groups should occur in the above order - the grid size is required before grid properties can be read,
and all the data needed to obtain pore volumes must be known before pore volumes are edited. The grid must
be specified before using INTE or LINE processing methods. PORO must be specified before using F(PO, and
DEPTh must be specified before using F(DE. For FUNC the argument array must have been set.
SIZE or SPEC is required to set the number of cells in the main grid in each direction and to choose CARTesian
or RADIal coordinates.
MORE’s treatment of input grid data is based on the idea of layers of cells. The HORI, VERT and MODE
keywords define the way in which grid data is read:
• HORI BLOCk for block-centred grid input in x-y
• HORI POINt for point-centred grid input in x-y
• VERT BLOCk for block-centred grid input in z
• VERT POINt for point-centred grid input in z
MODE provides a simple way of switching the horizontal mode between BLOCK and POINT. The default is
HORI POINT and VERT POINT, for historical reasons, as this is the traditional MORE default. However, most
studies use HORI BLOC and VERT BLOC. Note that MORE 6 always runs the study in block mode, so HORI,
VERT and MODE only concern the interpretation of input grid data. The input mode can be reset during the
processing of the grid section. The meaning of the POINt and BLOC options is discussed below.
To fill one layer of a rock property such as PORO in BLOCK mode, we would need 25 numbers, associated with
the cell centres as shown:
To fill one layer of a rock property such as PORO in POINT mode, we would need 36 numbers, associated with
the cell corners, as shown:
Similarly, in the vertical direction this grid contains 2 layers of cells but 3 layers of points. Internally MORE
always stores rock property data in block form, so when point data is provided it is automatically interpolated to
the cell centres. Even when property data is entered in block mode, it is often convenient to specify cell locations
via corner values. For example, the following grid was set up using interpolation of cell corner depths:
To change between POINT and BLOCK input modes, use HORI, VERT or MODE. Alternatively, the mode may
be set for a single keyword.
Grid Data
The grid data sets up values of arrays. The names of important predefined arrays are listed below. It is also possible
to define user arrays.
Array Name Description Units
XGRI X-grid locations ft or m
YGRI Y-grid locations ft or m
ZGRI Z-grid locations or depth ft or m
THIC Thickness ft or m
PORO Porosity fraction
K_X X-Permeability md
K_Y Y-Permeability md
K_Z Z-Permeability md
MULX X-transmissibility multipliers
MULY Y-transmissibility multipliers
MULZ Z-transmissibility multipliers
NTOG Net/Gross Thickness Ratio
CROC Rock Compressibility 1/psi or 1/bar
REFE Reference pressure for CROC
ROCK Rock Type Array
EQUI Equilibration Region
Some grid arrays have a number of aliases - for example MULX has MX, M-X, M_X and MULTX. A full list of
predefined arrays is included in the chapter on the grid section of the data file.
The position of the grid is defined by specifying the coordinates of the grid block corners, XGRI, YGRI and ZGRI.
This may be accomplished in one of two ways:
1. For rectangular grids, the X-DIrection and Y-DIrection keywords provide an easy way to define the grid.
Supplying a combination of depths and THICknesses specifies the ZGRId coordinates. Depths may be set
for one layer and thickness values will then determine any unset depths for other layers.
2. For quadrilateral grid blocks, the COORdinates keyword can be used. MORE will read the common
ECLIPSE™ ZCORN, COORD and COORDSYS keywords to set up a hexahedral corner point grid.
PORO and K_X are the only rock properties which must be specified - all others have default values. As well as
the predefined arrays, you also can DEFIne your own arrays.
In the simplest case, just specify the name of the grid array, followed by the required number of values
(Nx*Ny*Nz) for a grid with dimensions Nx, Ny and Nz. The values should start on the line after the keyword. An
example is:
PORO
40000*0.1
Natural order is used: the x index changes most quickly and the z-index most slowly.
For other methods, MORE treats the grid data by layer. An option on the same line as the keyword specifies how
the layers are to be entered. For example, UNIForm implies that the data is uniform across all the layers, and so
data only needs to be entered for one layer. Examples of layer treatment keywords are:
The way in which the data is input for each layer is specified by a sub-keyword. Examples of some layer sub-
keywords are:
So the single porosity value set in the example above could also be specified as:
PORO UNIF
CONS
0.1
PORO
ZVAR
10*0.1
Further information on entering grid array data may be found in the Array Data Entry section.
When an equals sign (=) is encountered to the right of the array name, the line is processed as a grid processing
expression. When combined with the ability to DEFIne your own arrays, grid-processing expressions allow you
to supply data in a flexible way. For example, a value may be set using an expression, as in
K_X=0.5
Alternatively it may be a function of another array, for example:
K_X=0.23+0.04*DEPTH+0.3*PORO
The expression language is defined in more detail in the Using Grid Processing Expressions section.
The transmissibilities and pore volumes will be calculated using the user’s data, and may then be modified or
replaced using the TX, TY, TZ, PVOL and DEPT keywords.
Discussion
This section is used to define the initial conditions for the simulation.
Keyword Description
INIT INIT section header line
OFIP Original fluid in place
EQUI Equilibrium depths and pressures
CONS Constant initialization data
F(DE Initialization data as function of depth
LAYE Define LAYEring
DEFI Define an array
THPD Threshold pressures between equilibration regions
Either EQUI or NEQU initialisation is selected on the INIT header line. EQUI yields an initial solution in hydro-
static equilibrium based on fluid constant depths. NEQU enables the user to specify the initial solution directly.
Further information on equilibrium and non-equilibrium initialisation may be found here.
Equilibrium Initialisation
For equilibrium initialization, the EQUI keyword is used to set the contact depths and reference pressures. There
may be more than one equilibration region, in which case data is required for each one. Equilibration regions are
associated with grid cells using the EQUI (or EQLN) grid array.
In an equilibrated solution the initial phase saturations are set up to match the hydrostatic pressure and capillary
pressure conditions so that the initial solution is stable (or ‘quiescent’). That is there will be no movement of fluid
in the absence of any wells or aquifers.
The variation with bubble point and vapour gas-oil ratio may be set using CONS or as a function of depth using
F(DE, PBVD or RSVD. If a gas condensate is being modelled, RVVD may be used to specify the variation of
vapour oil-gas ratio with depth. In a compositional model, initial compositions can be set using keywords MFVD,
XMFV, YMFV (and TMVD in thermal runs).
If a set of SWAT values is specified with the EQUIlibrium initialisation option, the simulator will honour these
values and stabilise the initial solution by adjusting the capillary pressures on a cell-by-cell basis (see PCSH).
Multiple equilibration regions may be specified using the EQUI (or EQLN) grid keyword. The EQUI INIT
keyword then specifies contacts for each equilibration region. The capillary pressures used for equilibration will
be taken from the saturation regions specified using the ROCK (or SATN) grid keyword.
A typical oil-water contact in an equilibrated initialisation is shown below:
Non-equilibrium Initialisation
For non-equilibrium initialisation, saturations are specified directly rather than by gravity-capillary equilibrium.
The compositions and saturations can vary areally as well as vertically. However, such an arbitrary initial solution
may not be stable when the simulation starts.
To specify an arbitrary variation of the initial conditions, the individual array names are specified as keywords:
CPLY Initial polymer concentration
GCRI Initial gas content of coal (alternative to PDSI)
PBUB Initial bubble point pressure
PRES Initial pressure
PSAT Initial saturation pressure
PDSI or PDSn Initial desorption pressure for CBM
RHAQ or RHAn Initial gas/water ratio for hydrocarbon in water phase (with SOLU)
RS Initial dissolved gas-oil ratio
RTEM Initial temperature (for thermal and steam options)
RV Initial vapour oil-gas ratio
RWV Initial water/gas ratio for water in hydrocarbon phase (with SOLU)
SALT Initial salt concentration
SWAT Initial water saturation
SGAS Initial gas saturation
TEMP Initial temperature (to set pressure regions – see TEMP keyword)
OAPI Initial oil API value
RHAQ Initial hydrocarbon in aqueous phase (as a gas/water ratio)
RWV Initial water in hydrocarbon phase (as a water/gas ratio)
XSOL Initial solvent fraction in the oil phase
YSOL Initial solvent fraction in the gas phase
These keywords are then followed by grid processing sub-keywords - so that initial values may be specified in
the same general way as rock properties. Further information on entering initial data arrays may be found in the
Initial Property Array Processing section.
Note: The TEMP array has traditionally been used in MORE to associate properties with cells. For the thermal
and steam options, where the temperature is a solution variable, RTEM (for the solution value) is used. RTMI and
PLYI (for the polymer model) are still accepted but RTEM and CPLY are better.
Discussion
This section is used to define data that can be changed during the simulation. The recurrent data is of three main
types:
• Specification of the production system
• Requests for output
• Requests for simulation to specified times
Keyword Description
RECU Recurrent section header line
EUNI Units for production events
EFOR Format of production events
EFIL Define file of events
ETAB Define table of events
WELL Well definition and control
WLOC Well location input option
GROU Well group definition
GLIM Define group production limit
ILIM Define group injection limit
TUBI Tubing head pressure table
RATE Rate output control
ARRA Detailed output of solution arrays
READ Simulate to required time
DELT Set next time step size
DTMX Set maximum time step limits
STOP Stop the simulation
There are two systems which may be used to define production data. One is to use an event table. Events may be
entered in an included file EFIL or as an in-line table ETAB. Furthermore, events may be readily displayed in the
VIEW event tab and edited using the event editor. A complete list of events may be found here.
The alternative is to use conventional MORE recurrent section keywords such as WELL. The WELL keyword
defines and controls wells. It is followed by a series of sub-keywords to supply data for the well.
The WLOC keyword describes the well areal location format. The default option, X-Y, uses the x-y coordinates
of a well. The alternative, I-J, uses grid block numbers.
The GROU keyword is used to specify well groups. A well may appear in more than one group, and a fraction of
a well may contribute to a group.
For compositional simulations, the SEPA keyword is used to specify separators which may be applied to any group
of wells.
The GLIM defines group production limits and ILIM defines group injection limits. Maximum, minimum and
target group rate constraints can be set, and various remedial actions can be exercised when these limits are
violated.
The TUBI keyword is used to specify tubing tables relating top-hole pressure to bottom hole pressure and flow
rates. These are required if a well is to be controlled by top-hole pressure.
MORE also supports more complex production systems, as described in the network model technical reference.
In particular, the PTAB keyword is used to enter a pipe pressure table, and the PLPU keyword is used to enter a
pipeline pump table.
Finally, the CMPR keyword is used to specify a multi-stage compressor table, while PUMP keyword is used to
specify a downhole pump performance table.
Well or group name templates are name roots followed by a wild card character *, e.g. ‘WPRD*’. Templates may
be used to address several wells or groups at the same time when using keywords. Templates are also supported
in the context of operations.
Templates may also be extended to define well and group sets using the WSET and GSET keywords respectively.
Well tracks and well historical rates are usually stored in production databases in a format very different to the
well keywords used by a reservoir simulator. This can involve a lot of data re-formatting into the simulator format.
MORE supports a number of keywords which permit this data to be read directly.
Keyword Description
TFIL Well track definition
TUNI Units for well track definition
TTAB In-line well track definition
HFIL Well historical data
HFOR Column headers and units for well historical data
HUNI Units for historical data
HTAB In-line well historical data
Well Subkeywords
These subkeywords follow a WELL keyword, and are used to define and controls wells.
Keyword Description
LOCA Vertical well location
RADI Well radius
ZONE ZONE completions
CIJK Specify completions
WLIM Auxiliary well limit
LIFT Artificial lift specification
CPLY Injected polymer concentrations
SOLV Injected solvent concentrations
STEA Injected steam properties
COMP Complete along a specified welltrack
CIJK allows wells to be completed in any direction in any number of grid blocks. HORI and DEVI are retained
for back-compatibility but CIJK is preferred. The TFIL keyword may also be used to define a well trajectory in
xyz coordinates.
The RADI keyword is used to supply the wellbore radius and uniform skin value.
The LOCA keyword specifies the location of a vertical well; note that if no other information is specified MORE
will complete a vertical well in every layer of the grid.
The ZONE keyword is used to supply data that alters the zonal completion of a well. The completions may be
defined by specifying:
1. SKIN values for each zone
2. Normalized Well InDeX (WIDX) values
3. Total Well Index values
TUBIng Data
These subkeywords follow a TUBI keyword. The form of data entry depends on the choice of packed or long table
format. These keywords specify the variation of well bottom hole pressure as a function of flow rate, top-hole
pressure, and ratios such as GOR and water cut.
Keyword Description
FLOW Well stream FLOW rate
THP Tubing Head Pressure
RATI RATIos of other streams to flow rate
BHP Bottom Hole Pressure
ALQ Artificial lift values
Two main keywords control the output of simulation results - RATE and ARRA.
The ARRA keyword requests simulator output at requested times. Possible output is of three main types, with
appropriate sub-keywords:
These items are selected by specifying the option on the GENEral keyword line. Regional fluid-in-place and
material balance output summaries are selected by specifying the desired region name on the FLIP keyword line.
The wells used in the calculations are those with a group name that is the same as the region name.
Note that the RATE output will be used by Tempest to produce line graphics such as GOR versus time:
The 3D visualisation displays in Tempest use the output from the restart option on the GENE keyword, and also
require PRINT MAP in the GRID section. Extra items such as fluid densities may be added to the output files for
3D visualisation with Tempest using the STOR keyword.
DELT and DTMX control time step size and time stepping tolerances. DELT specifies the size of the next time
step; DTMX specifies a table of maximum step sizes versus time.
The READ keyword is the trigger for simulation to occur. The simulator will run forward to the specified time or
date. TIME and DATE are aliases for READ.
The simulation is terminated by a STOP keyword.
As the simulation proceeds, each reported step is written on a new line, starting with a four letter code defining
the reason for taking a particular time step (the number of steps reported to the OUT file and to standard output is
defined by the RATE keyword).
The meanings of the step codes are described in the Technical Reference.
Examples of units using in the FIELd and METRIC cases are in the following table:
Quantity Field Unit Abbrev Conversion Factor Metric Unit Abbrev
length feet ft 0.3048 meters m
pressure lb/in2 psi 0.06894757 100kPA bar
viscosity centipoise cP centipoise cP
o o
temperature Fahrenheit F Celsius C
o o
absolute Rankine R 5/9 Kelvin K
density lb/ft3 lb/ft3 16.01846 kg/m3 kg/m3
permeability millidarcy md millidarcy md
reservoir vol. res.bbl rb 0.1589873 res. m3 rm3
liquid volume 103 stb Mstb 103 m3 ksm3
liquid rate stb/day stb/d m3 /day SM3/D
gas volume 106 std ft3 MMscf 106 std m3 Msm3
gas rate 103 std ft3 /day Mscf/D 103 std m3 /d ksm3/D
THREE
This section summarizes changes in the 8.1 release of MORE compared to the previous version.
Input Section
WFPLUS Select settings for improved well fracturing model functionality.
NEZT Specify numbers of equations of state when using ECLIPSE format equation of state
properties.
Fluid Section
BRINE Activate brine tracking facility.
PVTB Input brine properties.
BDEN Augment brine properties with brine surface densities.
KVSP KVSP tables now support a flexible array of reference pressures KRPR.
WVPG Water viscosity modification with pressure gradient.
TEMP TEMP may now be used to specify properties for multiple equations of state regions.
PROP PROP may now be used to specify properties for multiple equations of state regions.
EQUA EQUA may now be used to define the equation used for multiple equations of state
regions.
INTE INTE may now be used to define binary interaction coefficients for multiple equations
of state regions.
OMGA OMGA may now be used to define coefficients for multiple equations of state regions.
OMGB OMGB may now be used to define coefficients for multiple equations of state regions.
SURF SURF may now be used to define surface tension data for multiple equations of state
regions.
VOLU VOLU may now be used to define volume translation parameters for multiple equa-
tions of state regions.
VCVI VCVI may now be used to modify the viscosity calculation for multiple equations of
state regions.
ZCVI ZCVI may now be used to modify the viscosity calculation for multiple equations of
state regions.
Rela Section
TFUN Several TFUNs modifying the same property may now be used to define a combined
product multiplier.
Grid Section
EOSN Specify Equation of State regions when using multiple equations of state.
SOCO Specify connate oil for black oil simulations.
Continued on next page
21
Tempest MORE Help, Release 8.1
Init Section
SCVD Initial variation of salt concentration with depth.
SALT Initial salt concentration array.
AQCO The aquifer influx coefficient and multiplier may now be set.
AQCT The water viscosity default is now taken from the corresponding water pressure table.
Recu Section
GPLIM Event The drilling order may now follow a prioritized drilling queue.
DPRIO Event Set drilling prioritisation coefficients.
WDPRI Event Set well drill priority.
VFRA Event Vertical well fractures may now be defined using the improved well fracturing model.
HFRA Event Horizontal well fractures may now be defined using the improved well fracturing
model.
REFRA Event Existing well fractures defined by VFRA and/or HFRA may be re-fractured.
WSALT Event Set salt injection concentration for an injector well.
STOR Additional options for reporting volume balance errors and pressure change over a
timestep, IMPES support volume and various compositional properties.
DEBR Print the nonlinear residual.
RATE Additional output packages for monitoring well and fluid property convergence, re-
porting phase voidage rates and individual mobile fluid volumes.
MONI Additional output for monitoring convergence.
SEPA The Surface Equation of State index may now be specified for a separator stage.
GENE Additional option to report the separator configuration.
WEOS Event Define surface equation of state for the well.
SRVW Event This keyword is now available as an event.
This section summarizes changes in the 8.0 release of MORE compared to the previous version.
Input Section
FLXR Support for restarts, boundary condition interpolation, and improved handling of
group control
FLXT NONE option for running sector with zero flow boundary conditions
SAVE Generate a fast restart file to replace the INPU, GRID, FLUI AND RELA sections
LOAD Use a fast restart file to replace the INPU, GRID, FLUI AND RELA sections
ADAP, IMPL The performance of the Adaptive Implicit Method (AIM) has been improved, leading
to faster convergence and enhanced stability in AIM mode.
AIMT The default time interval for resetting the AIM status (choosing which cells are solved
fully implicitly and which are IMPES) has been changed to 15 days but may be mod-
ified using the DT argument.
IMPQ Selects options for modification of the IMPES method.
MESL Sets print limits for information, warning and error messages
CPFL Use the compressibility preserving pressure function lookup for oil PVT data
Fluid Section
Improved convergence when using dead oil (OPVD) with wet gas (GPVT) for black
oil runs (also when using Eclipse keywords PVDO or PVCDO and PVTG together).
KVSP Trap non-decreasing pore volume multipliers.
Continued on next page
Rela Section
Grid Section
AQNC An optional region may be specified to define numerical aquifer connections. An
option has also been added to account for the types of inactive cells when connecting
the aquifer to the grid.
PVBM An optional region may be specified to define pore volume boundary multipliers. An
option has also been added to account for the types of inactive cells when connecting
the aquifer to the grid.
DEFI User-defined regions may now be defined to determine connections to aquifers.
NNC User-defined saturation tables may now be supplied for non-neighbour connections.
NEPS Controls options for saturation table scaling for individual non-neighbour connec-
tions.
Init Section
AQCO An optional region may be specified to define analytic aquifer connections. An option
has also been added to account for the types of inactive cells when connecting the
aquifer to the grid.
AGVD Initial API gravity variation versus depth may be entered for API tracking.
RS Initial dissolved gas-oil ratio may be entered for runs with non-equilibrium initialisa-
tion.
OAPI Initial API gravity may be entered for API tracking in runs with non-equilibrium
initialisation.
Recu Section
CIJK Saturation tables may now be specified for individual well completions.
COMP Saturation tables may now be specified for individual well completions.
CIJK Event Saturation tables may now be specified for individual well completions.
PERF Event Saturation tables may now be specified for individual well completions.
WEPS Controls options for saturation table scaling for individual well completions.
CNAC Saturation tables may now be specified for individual numerical aquifer completions.
CNAC Event Saturation tables may now be specified for individual numerical aquifer completions.
HFOR Historical well reservoir pressure data (WRP) may be entered for reporting purposes.
PRIO, GPRI, These keywords are now available as events.
WPRI
Small Changes
PCSH, PCSC The depth interval where variable capillary pressure shifts or scalings are applied
when using PCSH MIN or PCSC MIN will now be extended to include the oil-water
contact depth specified in the EQUI keyword if this is outside the interval.
WWAG Zero WAG intervals or volumes are properly skipped where MORE previously set the
respective target for one time-step.
The calculation of wellbore density has been modified in cases where the completion
connection factors are very small, as in the case of shale gas. An explicit connec-
tion factor averaged density in the wellbore is calculated from the fluid properties in
the connecting grid cells. A correction to this calculation has been made when the
connection factors are very small.
HTAB, HFIL The reporting of historical data to the MORE file system has been modified to account
for the states of the wells. Reported historical rates and totals are now consistent when
the reporting times differ from the historic times.
HFOR WRP column added to input/output historical reservoir pressure data.
Continued on next page
Deprecated Op-
tions
MPFA L-method option withdrawn.
This section summarizes changes in the 7.2 release of MORE compared to the previous version.
Input Section
HYST Switch on hysteresis modelling.
IEPD Select default option for imbibition endpoint arrays.
FLXT Set type of flux boundary conditions.
Grid Section
IOGC Imbibition critical saturation of oil in gas for each cell.
IOWC Imbibition critical saturation of oil in water for each cell.
IGL Imbibition connate gas saturation for each cell.
IGCR Imbibition critical gas saturation for each cell.
IGU Imbibition maximum gas saturation for each cell.
IWL Imbibition connate water saturation for each cell.
IWCR Imbibition critical water saturation for each cell.
IWU Imbibition maximum water saturation for each cell.
IWGC Imbibition critical saturation of water-in-gas for each cell (for oil-wet case).
PVBM Multiply pore volumes along a boundary.
Init Section
THPD Threshold pressures between equilibration regions.
Recu Section
SERV IMPES volume balance error servo criteria.
WCTL Well settings controlling the THP shut-in behaviour.
WFFC Water filled cell flash criteria.
Small Changes
IMPES formulation Ensure volume error does not increase unboundedly in case of repeated chops.
Fluid In Place Reports Output datum-corrected field, group, and region hydrocarbon pressures.
WFRA event New BRANCH and DELAYW arguments.
PLIM event New PHASE argument to CUTBACK action.
TEST event New option to make well-specific and set maximum number of tests.
Continued on next page
Deprecated Options
SOLV Deprecate multi-gas solvent option.
This section summarizes changes in the 7.1 release of MORE compared to the previous version.
Keyword Description
Solver options
BCON New linear solver
WFSP Flow sharing fraction, globally or set in WFRA
DPOR MFC Matrix-fracture condensation to speed up dual porosity runs
Fluid properties
TSET Tracer sets to track components in compositional modelling
VCVI Critical volumes for viscosity calculations
ZCVI Critical Z-factors for viscosity calculations
KVSP Hysteresis curves may be used with KVSP, KVPX, KVPY and KVPZ
PVTG Full support of ECLIPSE PVTG keyword
KVSP Tables may be set up with respect to initial or specified pressure
PADT Polymer adsorption specified as a table
PAKW Effect of polymer adsorption upon water relative permeability specified as a table
Grid Section
MLRP Set pore volume multipliers by MULN region
MLRT Set transmissibility multipliers by MULN region
AQNN Setup numerical aquifers
AQNC Setup numerical aquifer connections
NUMA Required in INPUt section when numerical aquifers are being used
SORM Set up a trapped oil saturation in an equation of state run
LJOP Use Leverett J-factors to set up water-oil or gas-oil capillary scaling factors only
Initial Section
EQUI Support for accurate geometry multi-level equilibration
PDVD Dew point variation with depth (alternative to RVVD)
GCPG Allow connate oil in gas cap
Recurrent Section
Continued on next page
New Events
GSPC Set separator conditions for groups
WSPC Set separator conditions for wells
WMUL Set connection multiplier for a well
WALQ Event to set well ALQ
CNAC Event to complete a well in a numerical aquifer
Small changes
STRE event to A and B allowed to set injection gas in different cycles
set injection gas
HRGI and HRGI and HRWI: control gas or water injection by historical reservoir volume rate
HRWI
STOR CMPF will output fluid compressibility
HFOR Can enter historical reservoir voidage rates and totals directly
HUNI Can enter historical reservoir voidage rate and total units
BICG Option to run bi-conjugate gradient rather than GMRES in linear solver
BCOP Set options for BCON linear solver
GUGR event to OFF now allowed
set group user
guide rates
WUGR event OFF now allowed
to set well user
guide rates
New functions to obtain well, group and field potentials, and historical values, from
within operations
FLOW argument with STORe, and with GENE after ESOL, to output interblock flow
rates
This section summarizes changes in the 7.0 release of MORE compared to the previous version.
Fluid properties
STDC Set non-default standard conditions for compositional modelling
VICO Choose viscosity correlation for compositional modelling
Initialisation
PCSC Use capillary pressure scaling (rather shifts) to stabilise initial saturations
EQUI Added option to use multi-level equilibration and EXWR argument for extended water region
Operations
ENDO End of an operation definition
INVO Invoke an operation
OPER Define an operation
Gas pseudo-pressure
GPP Request single-phase gas pseudo-pressure
MPGP Request multi-phase gas pseudo-pressure
RG Request Russell-Goodrich
WGPP Apply single-phase gas pseudo-pressure to given well
WMPG Apply multi-phase gas pseudo-pressure to given well
WRG Apply Russell-Goodrich to given well
Forchheimer flows
FORC Request Forchheimer flows
WFOR Apply Forchheimer flows to given well
Unstructured grids
FLXY PEBI fault feature
PEBI Use PEBI modelling for a local grid
TRXY PEBI track feature
Groups
GTOL Group limit tolerance
RPM Regional pressure maintenance
VREP Surface reinjection options SGAS and SAT added
GNEW New and recommended group control method
POTN Periodic Well Potential Calculations
Wells
DRIL Select drilling once or multiple times from drilling queue
DTMX Extra column to set target temperature change over a timestep
WABC Set well skin and D-factor from A- and B-coefficients
WLGO Make well unavailable for group lift gas optimisation
WLTA Set well lift table addition
Continued on next page
Completions
COMP Add FRAC, MAT and BOTH arguments for completions in dual porosity and dual permeability runs
RATE Option to compress completion rates for completions with same measured depth to save .rat file space
PERF, SQUE Add FRAC, MAT and BOTH arguments for completions in dual porosity and dual permeability runs
Solver options
AIMT Target fraction or CFL limit for adaptive implicit
FL3P Enable three-phase hydrocarbon flash
Simulator output
BLOG Request binary log file output
RATE Branch package option added to RATE
RATE CPU and elapsed time added to RATE ITER package
RPTB Request MORE report its own BLOG file
STOR Report number of iterations to converge each cell CNLI or CLIN
STAG (RATE) Report well statistics by group
TSET Report surface production from reservoir regions using tracer sets
New Events
AFTER Well event not to be triggered until well has been open for a chosen period
TSDT Set target temperature change over a timestep
This section summarizes changes in the 6.7 release of MORE compared to the previous version.
New Events
This section summarizes changes in the 6.6 release of MORE compared to the previous version.
New Events
This section summarizes changes in the 6.5 release of MORE compared to the previous version.
New events
This section summarizes changes in the 6.4 release of MORE compared to the previous version.
MORE 6.4 extends the parallel processing capabilities of MORE 6.3 by doing the grid calculations such as trans-
missibility calculations in parallel mode. This greatly increases the size of problem that can be run in parallel as
the grid storage is not duplicated across the processors.
It is possible to inject steam into a reservoir with oil, water and gas present. Both gas and steam will generally
exist in the reservoir vapour phase.
Tracer tracking
It is possible to define one or more named tracers using the TRAC keyword. A tracer is transported by a named
component. The concentration of a tracer injected by a well may be defined using WTRC or the TRAC event. The
concentration of a tracer in water injected by an aquifer may be defined using the ATRC keyword.
Fractured completions
New completion directions FX and FY on the CIJK keyword allow a fractured completion to be entered. The
length of the completion may also be specified.
D-factors
It is possible to specify D-factors (rate dependent skin values) by well or completion. This may be done using the
new well sub-keyword DFAC, the new DFAC event, or a new argument on the CIJK keyword.
actn=2
In a thermal run, setting “actn” to 2 will result in a cell which is purely rock. A very small pore volume of a
millionth of the original pore volume is retained, but isolated from the simulation.
MORE has traditionally supported three-point end point scaling of saturation tables, in which the lower, critical
and upper saturations of each table may be modified on a cell-by-cell basis. However, a new four-point option
has been introduced, which scales at the lower, critical, other phase residual and upper saturations. This enables
saturation tables to be more precisely rescaled. This is described in more detail in the MORE Technical Reference
Manual. The end point scaling option may be selected with the EPS keyword.
MORE has also traditionally applied the same scaling to the relative permeability and capillary pressure columns
of a saturation table. However, it is now possible to choose a different scaling option for the capillary pressures.
This might be two-, three- or four-point scaling, or no scaling at all. Using no capillary pressure scaling or two-
point capillary pressure scaling enables the critical and residual saturations to be changed without altering the
original fluid in place.
It is possible to define different surface densities in each pressure table region, by specifying the keywords BASI
and SDEN more than once. In addition, WATR will set a water surface density for each pressure table region.
When multiple surface densities are used, MORE will still conserve the mass of each component. However, fluids
will change surface density when they flow from one region to another, so it is best if the regions with different
surface densities are largely non-communicating. Surface volume flow for a given well is reported with respect to
a pressure table for that well, chosen on the basis of the table used by the largest number of completions.
When a block of non-neighbour connections are specified using the NNC keyword, it is possible to add an ONPD
argument. This means that the NNCs will not flow until the oil phase pressure difference across the connection
exceeds the specified value. Once this value has been exceeded, the connection flows normally.
Previous versions of MORE have effectively treated non-wetting phase hysteresis in all phases. This has been
improved in the current version to allow non-wetting and wetting phase hysteresis. Gas is always non-wetting.
Water is normally wetting, but oil may be made non-wetting with respect to water using the WETT keyword. In
non-wetting hysteresis the imbibition curve has a lower relative permeability than the drainage curve and leads
to a trapped saturation. In wetting phase hysteresis the wetting phase imbibition curve has a higher relative
permeability than the drainage curve, but the end points are the same for both curves.
A new set of data checks has been added on the relative permeability data used with hysteresis.
MORE has traditionally treated a group as a simple set of wells. Group targets and limits are simply imposed on
wells contained in the group. However, it is now possible to define one group as the parent of another using the
PARE keyword. It is possible to assign a target rate to the child group, and if the child group rate target is reached
the parent group will not control the wells in the child group directly.
It is also possible to assign guide rates to child groups, so that a fixed split of a parent group rate is used. This may
be done using the GUGR keyword.
MORE will now accept some additional ECLIPSE keywords, although this is still a small fraction of the full
ECLIPSE set, and some are only partially supported, where they overlap with MORE capabilities. Support is
summarised in ECLIPSE compatibility table in this manual. This includes long-supported keywords like ZCORN
in order to collect everything into one table. MORE will generally search its own keyword list first, unless EPRI
is set on for a section of the input. ECLIPSE keywords must be entered into the appropriate section of the MORE
input file - i.e. FLUID, RELA, INIT, RECU etc.
New events
This section summarizes changes in the 6.3 release of MORE compared to the previous version.
MORE 6.3 may be run in parallel mode. MPI is used as the underlying communication protocol. This is typically
supported on multi-processor and multi-core machines.
No user changes to the input dataset are required for parallel running. A parallel MORE run is submitted using
an mpiexec command, which specifies the number of processors to be used. Internally, MORE detects that it has
been submitted in parallel.
When running in parallel, MORE splits the problem into groups of planes in the i- or j-directions. Each group is
then assigned to a processor. This division is done automatically, but it is possible for the user to over-ride the
default division using the PDIV command. The division of the problem between processors may also be displayed
using Tempest by requesting output of the PPCE (Processor Per CEll) array with the PRIN keyword in the GRID
section, so parallel running is possible on any set of processor.
Traditionally, MORE has written values for all cells to the GRID and ARRA output files. However, when a large
fraction of the cells are inactive, this wastes a lot of space. The ACTIVE argument of the PRIN keyword in the
grid section requests that only active cells values are written.
Pinchouts are connections in the z-direction between cells which are separated by zero-thickness inactive layers.
These are normally generated automatically, under the control of the PINC keyword. Pinch-out switching is only
turned on if PNSW values are provided by the user. The PNSW array is defaulted to 1, but where set to 0 it will
act as a barrier to pinchout generation.
New events
Upper case mnemonics are now the default, which is the ECLIPSE default, so OPEN ECLIPSE UPCASE need
not be specified with OPEN. A new LOWCASE argument has been provided to request lower case mnemonics if
required.
MORE automatically detects the endian convention on the current processor, automatically byte-swap if required
to produce ECLIPSE standard big-endian (UNIX) type unformatted files. OPEN ECLIPSE UNIX need not be
specified. The UNIX and PC arguments of OPEN remain, to force production of big-endian and little-endian files
respectively, but should rarely be required.
This section summarizes changes in the 6.2 release of MORE compared to the previous version.
Events
DPSS Model a dual porosity system using single grid source-sink method
Tensor Permeabilities
Well Model
Miscellaneous
This section summarizes changes in the 6.1 release of MORE compared to the previous version. The arguments
and syntax are only summarized here - please check in the keyword reference section for details.
Prioritisation
Miscellaneous
This section summarizes changes in the 6.0 release of MORE compared to the previous 5.5 version. The arguments
and syntax are only summarized here - please check in the keyword reference section for details.
This is described in section 12 of the MORE 6.0 technical reference. The Palmer-Mansoori method is used to
model coal shrinkage.
CBM [PM] Enable coal bed methane option; Palmer-Mansoori is an option
LANG Global Langmuir coefficients
CDEN Coal density
FASH Grid array specifying coal ash fractions
CLAN Langmuir specific volumes as grid array
PLAN Langmuir pressures as grid array
TLAN Langmuir temperatures as grid array
PDSC Initial coal desorption pressures
STEAM injection
REFI and ENDR Enable grid data values to be specified for local grid.
Grid Coarsening
Include may be used as an alternative to OPEN and SWITCH. Include files may be nested - an included file may
have further INCLUDE keywords.
OSF, GSF and WSF form an alternative set of keywords to KRGO and KRWO for entering relative permeability
data. OSF, GSF and WSF enter each phase relative permeability as a function of its own saturation.
OSF Relative permeabilities for oil as a function of So
GSF Relative permeabilities for gas as a function of Sg
WSF Relative permeabilities for water as a function of Sw
Thermal simulation
Grid Calculations.
The FAUL option on HORI is no longer required. Fault connections will automatically be generated for any grid
which is not of the flat block type.
Equilibration.
RVVD Specify variation of initial oil-gas ratio, Rv, in reservoir gas phase.
Production System.
WLIM This may be used to specify additional well targets as well as limits. For example a well can be run
with both thp and bhp controls, specifying one with the WELL keyword and one on a WLIM card.
Similarly, a maximum oil rate could be set with WELL and a maximum gas rate with WLIM.
SALE RECYCLE subkeyword: specify gas sales rate or fraction.
MAKE RECYCLE subkeyword: specify gas makeup rate or fraction.
STOP WELL argument - stops well
SHUT WELL argument - shuts well.
MORE 6 allows a well to be stopped - producing no surface flow but allowing crossflow between layers.
Input Section
Fluid Section
Rela Section
Check for incorrect relative permeability data with Stone II added. This traps cases where Stone II may predict
Kro(So)>0 even when So=0.
Trap for zero connate water saturation in run containing water. Probably an error, but will be allowed if the ZERO
keyword is entered.
Grid Section
UTM is no longer required in order to get positive pore volume for grids specified using a left-handed (UTM)
coordinate system.
PINCH now has ON and OFF arguments, and a minimum dz value.
DATUm now defaults to the depth of the top active cell, rather than zero.
The default MINP value is 0.000001 rm3, rather than 0.0001 average pore volume.
Cell centre depths may now be modified after the grid calculations have been performed, as well as transmissibil-
ities and pore volumes.
As an alternative to using TEMP, cells may be assigned to PVT regions directly by using the GRID section array
PVTN. Fractional PVT region numbers are no longer supported.
Init Section
SWAT may be specified after equilibrium initialization. MORE will impose the specified water saturations and
stabilise the initial solution using a capillary pressure shift.
Data may be entered for a number of equilibration regions, even if these are not used.
NONE alias to NEQU in INIT keyword.
Recu Section
HEAD no longer required to set the wellbore fluid density - MORE will obtain these automatically from the
wellbore composition.
The default setting of TEST in the recurrent section is no well testing - i.e. a well which is shut will stay that way.
TEST may be used to specify a testing interval for all closed wells.
The following keywords are read by MORE, but no longer have any effect and need not be used:
Keyword Comments
PAGE
PHAS Fluid phase type selected automatically
CASE Mixed case is always used
MAXI All allocations are now dynamic
TUNE
WDEN Wellbore densities now calculated
HEAD Wellbore densities now calculated
WIDX Pre-1994 well index calculation method no longer supported
JACO
BOUN Replaced by SALE and MAKEup
TARG Replaced by SALE and MAKEup
GFRE Group checks now done at every step
PCGP Replaced with LSOL
ADJU
LSOR LSOR linear solver replaced with nested factorisation and multigrid solvers
TRLS TRLS linear solver replaced by boundary conditioning solver
FRIC
MISC Multi-gas solvent option withdrawn, use Todd-Longstaff option instead
OSPVT Multi-gas solvent option withdrawn, use Todd-Longstaff option instead
MPFA L-method option withdrawn, use MPFA without extra arguments (O-method)
FOUR
Location
Any Section
Description
The DEBU (debug) keyword is used to set debug output requests. DEBU consists of 26 optional arguments which
should all be entered in succession on the same line as the DEBU keyword itself when used. Default values do
exist for these arguments, but the 1* notation must be used in place of the argument to indicate that the use of the
default value is desired and to retain the correct order for the entry of arguments. Any remaining arguments which
are not entered will take on their default values automatically and the 1* notation need not be used.
Definitions
47
Tempest MORE Help, Release 8.1
Notes
Example
1. DEBU is used to set debug output requests for lower and upper ix, iy, and iz indexes. All other debug values
are defaulted.
DEBU 5* 81 82 12 13 3 3
Location
Any section
Description
The ECHO keyword is used to control input data echo printing. When echo printing is turned on, each line read
from the input data file is echoed to the output file. ECHO consists of one optional argument which should be
entered on the same line as the ECHO keyword itself if used.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF to turn echo printing on and off, respectively.
• When output is viewed in the .out file of MORE, which can be seen under the Print tab when results are
loaded in Tempest View, echoed lines start with the characters Echo and include the line number within the
file. For example:
Echo 30:WETT LINE
• When reading from an alternate file (see keywords OPEN and SWIT), the prefix becomes Echo alt. For
example:
Echo alt 8:OPVT
• When reading from an include file (see keyword INCL), the prefix will become Echo inc. When include
files are nested, the nesting index is included. For example:
Echo inc+1
Example
1. ECHO ON and ECHO OFF are used to turn on the echo printing of input data from an include file.
ECHO ON
--* Component properties
PROP / Name MW TC(R) PC(psia) ACF ZC
CO2 44.0000 547.600 1070.60 0.23100 0.27327 /
C1 16.0000 343.000 667.800 0.01200 0.29028 /
C2 30.1000 549.800 707.800 0.09100 0.28791 /
C3 44.1000 665.700 616.300 0.14500 0.28469 /
C4 58.1000 765.300 550.700 0.19300 0.27492 /
C5 72.2000 845.400 488.600 0.25100 0.26389 /
C6 84.0000 914.000 476.000 0.27100 0.27176 /
C7+ 200.000 1318.90 258.955 0.54619 0.03371 /
/
ECHO OFF
When the .out file is viewed under the Print tab of the results in Tempest View, we will see the following
input data echoed:
...
Reading keyword EQUA
Echo inc 22:--* Component properties
Echo inc 23:PROP / Name MW TC(R) PC(psia) ACF ZC
Reading keyword ECHO
Echo inc 24: CO2 44.0000 547.600 1070.60 0.23100 0.27327 /
Echo inc 25: C1 16.0000 343.000 667.800 0.01200 0.29028 /
Echo inc 26: C2 30.1000 549.800 707.800 0.09100 0.28791 /
Echo inc 27: C3 44.1000 665.700 616.300 0.14500 0.28469 /
Echo inc 28: C4 58.1000 765.300 550.700 0.19300 0.27492 /
Echo inc 29: C5 72.2000 845.400 488.600 0.25100 0.26389 /
Echo inc 30: C6 84.0000 914.000 476.000 0.27100 0.27176 /
Echo inc 31: C7+ 200.000 1318.90 258.955 0.54619 0.03371 /
Echo inc 32:/
Echo inc 33:
Echo inc 34:ECHO OFF
Reading keyword PROP
Reading keyword ECHO
Reading keyword TEMP
...
Location
Any Section
Description
The ENDS keyword is used to end the skipping of input data which starts under the SKIP keyword. All data after
the SKIP keyword will be ignored until the ENDS keyword is encountered.
There are no arguments needed for ENDS.
Definitions
n/a
Notes
n/a
Example
SKIP
-- Data to be completely ignored in this run
P-1 2010:Jly:1 LTAB TAB1 /
P-1 2010:Jly:2 PROD
P-1 2010:Jly:20 THPT 1200 /
P-1 2010:Jly:20 OPT 5000 /
ENDS
Location
Any Section
Description
The EPRI keyword is used to request that ECLIPSE keywords are recognised before MORE keywords are. Nor-
mally, MORE recognises keywords based on the first four characters. In some cases, this may mean an ECLIPSE
alias keyword like WELLSPEC is interpreted as WELL. If EPRI in turned on, then the ECLIPSE match will be
taken in preference to the MORE one. EPRI must be turned off again to return to the default priority of MORE
keywords taking precedence over ECLIPSE ones.
EPRI consists of one optional argument which should be entered on the same line as the EPRI keyword itself if
used.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF to request that ECLIPSE keywords will or will not be
recognised before MORE keywords, respectively.
• EPRI does not lead to any algorithmic changes. Minor algorithmic changes that enable MORE to match
results of other simulators more closely may be turned on using the ETUN keyword.
Example
1. EPRI is used to request that ECLIPSE keywords are recognised before MORE keywords in an input dataset.
EPRI ON
Location
Any Section
Description
The INCL (include) keyword is used to include another input file in a simulation. When an INCL keyword is
encountered, MORE switches to reading from that file when it has been read. INCL consists of one required
argument which should be entered on a separate line below the INCL keyword itself when used.
Definitions
Notes
• The file name should be enclosed in quotes if it contains a slash (/) character or else this will be treated as
the start of a comment instead. The file name must also be enclosed in quotes if blanks or special characters
are used.
• Unlike OPEN or SWIT, INCL keywords may be nested. In other words, included files may contains further
included files.
Example
INCL
pvt12.mflui
Location
RECU Section
Description
The MONI keyword can be specified at any point in the simulation to turn on monitoring of the process of
converging the flow equations to a solution. Output is written to the log output, which usually appears on the
console. However, log output can be re-directed to a file using the LOGF keyword.
MONI output can be verbose, and is normally used for problem investigation by program developers.
Example
READ 10 YEARS
--Turn on run monitoring
MONI
Location
Any Section
Description
The SKIP keyword is used to ignore any input data that appears below it. All data after the SKIP keyword will be
ignored until the ENDS keyword is encountered.
There are no arguments needed for SKIP.
Definitions
n/a
Notes
n/a
Example
SKIP
-- Data to be completely ignored in this run
P-1 2010:Jly:1 LTAB TAB1 /
P-1 2010:Jly:2 PROD
P-1 2010:Jly:20 THPT 1200 /
P-1 2010:Jly:20 OPT 5000 /
ENDS
Location
Any Section
Description
The SWIT (switch) keyword is used to switch between standard and alternative I/O units in MORE. If an alter-
native input file has been opened using the OPEN keyword, SWIT tells MORE to switch reading from one file to
the other. MORE remembers its current position in each file so repeated SWIT operations are possible. When the
end of an alternate file is reached, MORE automatically switches back to the base file.
SWIT does not consist of any arguments.
Example
1. OPEN is used in combination with the SWIT keyword to switch input reading to an alternative file. The
combination of OPEN and SWIT causes an alternative input file to be read.
OPEN
'wellhist.rates'
SWITCH
With the input above, MORE opens the wellhist.rates file and starts reading input data from it.
Subsequent SWIT keywords cause input reading to switch between the main and alternative input files.
Note: If the intention is simply to read an entire include file, the INCL keyword may be used as a simpler
alternative to OPEN and SWIT.
FIVE
5.1 ABSP - Use Absolute Pathnames for Open and Include Files
Location
INPU Section
Description
The ABSP keyword is used to specify the use of absolute pathnames for open and include files. Since the release
of MORE 6.2, MORE has used relative pathnames when opening files using the INCL and OPEN keywords. This
means that MORE will locate a file by appending any relative path in the INCL or OPEN keyword to the directory
of the file that contains the INCL or OPEN keyword. This is different from versions of MORE up to and including
MORE 6.1, which located files with respect to the top level data file.
The ABSP keyword restores the old option of using the absolute path (i.e. it makes MORE 6.2 and later back-
compatible).
There are no arguments for ABSP.
Definitions
n/a
Notes
• ABSP should be entered in the INPU section before the INCL and OPEN statement it affects.
• ABSP only effects OPEN when it refers to input data files, either included or alternate. It does not effect
other uses of OPEN such as OPEN IRST, which locates the input restart file. In these cases a fully qualified
name should be entered if it is not wished to locate the file in the current working directory in which MORE
is being run.
Example
1. This example demonstrates how ABSP is used to specify the use of absolute pathnames for an include file.
Without ABSP, MORE will use relative pathnames when opening files using the INCL or OPEN keywords.
Suppose the dataset base.dat is located in C:\studies\roxar and it is run. Say base.dat includes the
following include file:
INCL
'S:\props\subdir1\include1.dat'
57
Tempest MORE Help, Release 8.1
This means that the include file include1.dat is located in the directory S:\props\subdir1\.
Then, suppose that the include file include1.dat contains another include file in the
S:\props\subdir1\subdir2\ directory. The path for this include file under the INCL keyword would be as
follows:
INCL
'subdir2\include2.dat'
In MORE 6.2 and later versions, this means that the include2.dat include file is to be found in the
S:\props\subdir1\subdir2\ directory.
Now, if ABSP is used before the INCL keyword, as follows:
ABSP
INCL
'subdir2\include2.dat'
MORE would now expect the include2.dat file to be in the C:\studies\roxar\subdir2\ directory.
The new treatment is generally much easier to use when self-contained sets of files are included from another
directory system.
Location
INPU Section
Description
The ADAP keyword is used to control the degree of implicitness in a simulation. ADAP consists of one optional
argument which should be entered on the same line as the ADAP keyword itself if used.
Definitions
Notes
• Using ADAP on its own selects an adaptive implicit mode when used together with the AIMT keyword to
control the number of implicit cells.
• The keyword IMPL may be used as an alternative to ADAP
• A fully implicit method may be requested in one of three ways in Tempest MORE:
– IMPL FULL
– IMPL FIBO
– ADAP FULL
• The IMPES method may be requested in one of seven ways in Tempest MORE:
– IMPL IMPE
– IMPL DELT
– IMPL NONE
– ADAP NONE
• Using ADAP on its own without the AIMT keyword selects the IMPES method.
Example
ADAP is used with the NONE argument to indicate that the IMPES method be used in a simulation.
ADAP NONE
ADAP is used with the FULL argument to indicate that the fully implicit method will be used in a simulation.
ADAP FULL
ADAP is used with no argument, together with the AIM keyword to indicate that the adaptive implicit method will
be used in a simulation with a 5% target of implicit cells.
ADAP
AIMT FRAC 0.05
Location
INPU Section
Description
AIMT sets up a target value used to control an AIM run. This can be a target fraction of the cells to be treated
implicitly, or a threshold value for the CFL (Courant-Friedrichs-Lewy) limit, above which a cell will be treated
implicitly. The keyword may also be used to set the default time interval at which the AIM status is reset (i.e. the
frequency at which the split between implicit and explicit cells is reset).
Syntax
Definitions
Notes
• Just using IMPL with ADAP will yield IMPES (AIM with a target fraction of 0.0) by default. An AIM target
value must be set with AIMT to get a AIM run containing both fully implicit and IMPES cells.
• Only the first letter of FRAC or CFL is required.
• The FRAC option is strongly recommended in AIM runs. The CFL option is discouraged.
• The AIM status is reset according to the frequency specified. Any changes in well status leading to the
opening or shutting of completions or wells will also trigger a reset of the AIM status.
Example s
An AIM target fraction of 2% is requested with an interval of 20 days between resetting the AIM status of the grid
cells
Location
INPU Section
Description
The BACK keyword is used to request back-compatibility with previous version 5.0 of MORE. BACK consists of
one required argument which should be entered on the same line as the BACK keyword itself when used.
Definitions
Notes
Example
BACK 5
5.5 BLOG - Request Binary Log File is Output by the MORE Run
Location
INPU Section
Description
The BLOG keyword requests that MORE writes out a binary log or BLOG file. The BLOG file has the suffix
.blg and is a ROFF format file.
Syntax
1. BLOG
The BLOG keyword has no arguments.
Notes
• The OPEN keyword OPEN can be used to specify that a BLOG file be a formatted ROFF file.
• See The MORE Binary Log File or BLOG File for details on the contents of the BLOG file.
• Although the BLOG file is mainly intended for use by programs other than MORE to extract simulation
events which happened in a MORE run, RPTB can be used to request that MORE extracts and reports its
own BLOG file. This will be done at the end of the run, and the report will be at the end of the MORE
.out file.
Location
INPU section
Description
The BCON keyword is used to select the boundary conditioning linear solver. This is an alternative parallelisation
technique to the default parallel nested factorisation solver, based on domain decomposition rather than black-
white ordering. On each processor, boundary conditioning uses the usual nested factorisation solver for cells on
that processor, and an approximate representation of cells not on that processor to set up boundary values. BCON
will have no effect on a single processor run.
Notes
• For more information regarding the Boundary Conditioning Linear Solver, please see the Linear Solvers
section of the MORE Technical Reference.
• Various options for boundary conditioning linear solver may be set using the BCOP keyword.
Example
BCON
Location
INPU Section
Description
The BCOP keyword is used to tune the boundary conditioning linear solver, which is selected with the BCON
keyword. This keyword is available for development purposes but should not interest users.
Definitions
Optional Arguments:
NF - takes two arguments (0 or 1):
1. use near field (Default: 1)
2. use far field (Default: 1)
DEBU:
• Output debug information
FRAC - takes one argument
• Target fraction of boundary condition terms (Default: 0.1)
FLIM - takes one argument
• Upper limit fraction of boundary condition terms (Default: 2*FRAC)
FAR - takes three integer arguments:
1. far-field coarsening level in x
2. far-field coarsening level in y
3. far-field coarsening level in z
NEAR - takes four integer arguments
1. near-field coarsening level in x
2. near-field coarsening level in y
3. near-field coarsening level in z
4. near-field geometric series ratio
Example
BCOP NF 0 1
Location
INPU Section
Description
The BICG keyword requests that bi-conjugate gradient stabilised acceleration be used in the linear solver rather
than the normal GMRES method.
Examples
BICG
5.8. BICG - Request Bi-conjugate Gradient Stabilised Acceleration in the Linear Solver 65
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The CNAM keyword is used to specify the component names in a simulation. Arguments for CNAM consist of a
list of component names, which should all be listed in succession on the same line as the CNAM keyword itself.
Definitions
Notes
• In black oil mode, possible component names are: oil (OIL), water (WAT), gas (GAS), solvent (SOLV),
Todd-Longstaff solvent (SOLVTL), and steam (STEAM).
• If a SOLV component is present, the Todd-Longstaff solvent option must be enabled by selecting SOLV TL
in the FLUI section.
• If a SOLVTL component is present, the four-phase Todd-Longstaff solvent option is enabled.
• Support for the SOLVMW component for the multi-gas solvent option has been withdrawn.
• If a STEAM component is present, the steam option is enabled.
• If supplied on multiple lines, the names are cumulative and must not exceed 50 different components.
• If water is present in the simulation, it must be the last component, with a name starting with WAT.
Example
1. CNAM is used to provide component names for oil, gas and water in a black oil simulation.
Location
INPU Section
Description
The COAR (coarsen) keyword is used to specify uniform grid coarsening factors in the x, y, and z-directions.
COAR consists of three required arguments and one optional one which should all be entered in succession on the
same line as the COAR keyword itself when used.
Definitions
Notes
• Coarsened grids may not contain local grid refinements (keyword LGRD).
• To specify non-uniform coarsening in the x, y, or z-direction, please refer to the CXGR, CYGR and CZGR
keywords, respectively.
• Please see the Coarsening section of the MORE Technical Reference for more information regarding coars-
ening.
Example
1. In a 20x10x4 grid, COAR is used to apply a uniform coarsening factor of 2 in each direction.
COAR 2 2 2
As a result, calculations are made on the coarsened 10x5x4 grid, but without the addition of the OUTP
argument to the COAR keyword, the 3D Viewer will only display the uncoarsened grid, as follows. See
COAR_Ex1.dat for complete example:
If we then add the OUTP argument to the COAR example above, as follows:
COAR 2 2 2 OUTP
When we view the grid in the 3D Viewer, we will see that the coarsened 10x5x2 grid is now displayed:
2. In a 20x10x4 grid, COAR is used to apply a uniform coarsening factor of 5 in the x-direction only. The y
and z-directions will remain unchanged. See COAR_Ex2.dat for complete example:
COAR 5 1 1 OUTP
As a result, the 20x10x4 grid will become a 4x10x4 grid, as shown below:
Location
INPU Section
Description
The CPFL keyword is used to request a compressibility (viscosibility) preserving lookup of undersaturated PVTO
data. This lookup gives results which more closely match the ECLIPSE simulator.
CPFL consists on one optional argument which should be entered on the same line as the CPFL keyword itself if
used.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF when turning the ompressibility preserving pressure
function lookup on and off, respectively.
• CPFL has an effect only if PVTO is used
• CPFL can be combined with IPFL
Example
1. CPFL is used with the ON option to turn the compressibility preserving pressure function lookup on.
CPFL ON
Location
INPU Section
Description
The CSEP keyword is used to request that completion streams be flashed through separators in a simulation. CSEP
consists of one optional argument which should be entered on the same line as the CSEP keyword if used.
Definitions
Notes
• YES and NO may be used as aliases for the ON and OFF arguments when turning the completion separators
on and off, respectively.
• By default, in a MORE equation-of-state run, a separator flash is performed for each completion to deter-
mine completion oil and gas flow rates. This will cause a small speed penalty and the completion oil and
gas flows will precisely match the total oil and gas flows. However, the completion GORs (gas-oil ratios)
will reflect the different compositions at each completion.
• The alternative is to apply the well GOR to all completion flows.
• In either case, the molar completion and well rates will match precisely.
• As the default is to do completion separator flashes (CSEP ON), CSEP is normally only required to turn
completion separator flashes off.
• CSEP has no effect on black oil runs.
Example
1. CSEP is with the OFF option to request that the flashing of completion streams through separators be turned
off.
CSEP OFF
Location
INPU Section
Description
The CXGR is used to specify non-uniform grid coarsening in the x-direction. Arguments for CXGR consist of
two records. The first record consists of one required argument and one optional one which should both be entered
on the same line as the CXGR keyword itself when used. The second record consists of a list of numbers that
indicate how many original grid cells are used to comprise the new coarsened grid cell. This list should be entered
on a separate line below the CXGR keyword.
Definitions
RECORD 1:
1. Number of coarse grid cells in the x-direction
2. Requests Tempest output displays use the coarse grid (optional): OUTP
RECORD 2:
The following arguments should appear in a list format:
1. Number of the original cells in coarse grid cell 1 in the x-direction
2. Number of the original cells in coarse grid cell 2 in the x-direction
...
3. Number of original cells in the last coarse grid cell in the x-direction
The total number of arguments in this list should be equal to the number of coarse grid cells in the x-direction as
specified by the first argument in Record 1.
Additionally, the total number of original cells in the list must add up to equal the number of original cells in the
x-direction in the original grid.
Notes
• Coarsened grids may not contain local grid refinements (LGRD keyword).
• Non-uniform coarsening can be useful in allowing a reservoir to be selectively coarsened, for example, in
regions away from wells.
• To specify uniform coarsening, please refer to the COAR keyword.
Example
1. In a 40x10x4 grid, CXGR is used to provide non-uniform coarsening for the grid in the x-direction. Here,
we will coarsen the grid into 16 grid cells from the original 40, leaving the central 10 cells uncoarsened.
The OUTP option is also used to ensure that the coarsened grid is displayed in the 3D Viewer of Tempest
View.
CXGR 16 OUTP
10 2 3 10*1 2 3 10
As a result, the 40x10x4 grid will become a 16x10x4 grid with non-uniform coarsened grid cells in the
x-direction, as shown below. See CXGR.dat for complete example:
Location
INPU Section
Description
The CYGR is used to specify non-uniform grid coarsening in the y-direction. Arguments for CYGR consist of
two records. The first record consists of one required argument and one optional one which should both be entered
on the same line as the CYGR keyword itself when used. The second record consists of a list of numbers that
indicate how many original grid cells are used to comprise the new coarsened grid cell. This list should be entered
on a separate line below the CYGR keyword.
Definitions
RECORD 1:
1. Number of coarse grid cells in the y-direction
2. Requests Tempest output displays use the coarse grid (optional): OUTP
RECORD 2:
The following arguments should appear in a list format:
1. Number of the original cells in coarse grid cell 1 in the y-direction
2. Number of the original cells in coarse grid cell 2 in the y-direction
...
3. Number of original cells in the last coarse grid cell in the y-direction
The total number of arguments in this list should be equal to the number of coarse grid cells in the y-direction as
specified by the first argument in Record 1.
Additionally, the total number of original cells in the list must add up to equal the number of original cells in the
y-direction in the original grid.
Notes
• Coarsened grids may not contain local grid refinements (LGRD keyword).
• Non-uniform coarsening can be useful in allowing a reservoir to be selectively coarsened, for example, in
regions away from wells.
• To specify uniform coarsening, please refer to the COAR keyword.
Example
1. In a 10x40x4 grid, CYGR is used to provide non-uniform coarsening for the grid in the y-direction. Here,
we will coarsen the grid into 16 grid cells from the original 40, leaving the central 10 cells uncoarsened.
The OUTP option is also used to ensure that the coarsened grid is displayed in the 3D Viewer of Tempest
View.
CYGR 16 OUTP
10 2 3 10*1 2 3 10
As a result, the 10x40x4 grid will become a 10x16x4 grid with non-uniform coarsened grid cells in the
y-direction, as shown below. See CYGR.dat for complete example:
Location
INPU Section
Description
The CZGR keyword is used to specify non-uniform grid coarsening in the z-direction. Arguments for CZGR
consist of two records. The first record consists of one required argument and one optional one which should
both be entered on the same line as the CZGR keyword itself when used. The second record consists of a list of
numbers that indicate how many original grid cells are used to comprise the new coarsened grid cell. This list
should be entered on a separate line below the CZGR keyword.
Definitions
RECORD 1:
1. Number of coarse grid cells in the z-direction
2. Requests Tempest output displays use the coarse grid (optional): OUTP
RECORD 2:
The following arguments should appear in a list format:
1. Number of the original cells in coarse grid cell 1 in the z-direction
2. Number of the original cells in coarse grid cell 2 in the z-direction
...
3. Number of original cells in the last coarse grid cell in the z-direction
The total number of arguments in this list should be equal to the number of coarse grid cells in the z-direction as
specified by the first argument in Record 1.
Additionally, the total number of original cells in the list must add up to equal the number of original cells in the
z-direction in the original grid.
Notes
• Coarsened grids may not contain local grid refinements, as defined using the LGRD keyword.
• Non-uniform coarsening can be useful in allowing a reservoir to be selectively coarsened, for example, in
regions away from wells.
• To specify uniform coarsening, please refer to the COAR keyword.
Example
1. In a 10x10x10 grid, CZGR is used to provide non-uniform coarsening for the grid in the z-direction. Here,
we will coarsen the grid into 5 grid cells from the original 10. The OUTP option is also used to ensure that
the coarsened grid is displayed in the 3D Viewer of Tempest View.
CZGR 5 OUTP
3 1 3 2 1
As a result, the 10x10x10 grid will become a 10x10x5 grid with non-uniform coarsened grid cells in the
z-direction, as shown below:
Location
INPU Section
Description
The DIRE keyword is used to control data checking and program execution in a simulation. DIRE selects an error
checking mode which allows the user to tell the simulator to perform a scan of the data before any time steps are
run to check the validity of the syntax of the keywords. This initial scan would be very useful for error checking
in large datasets.
DIRE consists of one optional argument which should be written on the same line as the DIRE keyword itself if
used.
Definitions
Example
1. DIRE is used with the GO option to specify that the program reads the data and then executes the simulation.
DIRE GO
2. DIRE is used with the NOGO option to specify that the program reads the data but does not execute any
timesteps.
DIRE NOGO
Location
INPU Section
Description
The DRIL keyword is used to specify if wells from the drilling queue can be drilled only once or muliple times.
DRIL consists of one optional argument which should be entered on the same line as the DRIL keyword itself
when used.
Syntax
DRIL [ONCE|MULT]
Definitions
Notes
• The MULT option makes a difference for wells that are shut a while after they have been drilled on a drill
action. Because with option MULT such a well can be re-opened (or re-drilled) by the next drill action,
while with option ONCE such a well stays untouched by further drill actions.
Examples
DRIL MULT
Location
INPU Section
Description
The DWPW keyword is used to set the default well pressure weighting option which is normally set on a well-by-
well basis by the P-RE keyword or the PREX event. DWPW sets a global default.
DWPW consists of two optional arguments which should be entered on the same line as the DWPW keyword itself
if used. If no values are entered for these optional arguments, they will automatically be assigned default values.
Definitions
Notes
• Previous to version 6.5, the pressure of the completion cell was used to define the reservoir pressure for
wells on drawdown control. The NODD option may be used to restore this previous default.
Example
1. DWPW is used with the PV option to specify the pressure at the re will be calculated using pore volume
weighting. Also, by default, when wells are on drawdown control, cell pressures will be corrected to the
external radius specified with P-RE or PREX .
DWPW PV
Location
INPU Section
Description
The ECCF keyword is used to request that the total contribution of connection factors are added together using
the square root of the sum of the squares of the contributions. When a connection contribution has components in
more than one direction, these are added linearly by default. ECCF requests that the sum be obtained by taking
the square root of the sum of the squares of the contributions.
There are no required arguments for ECCF.
Definitions
n/a
Notes
n/a
Example
1. ECCF is used to request that when a connection contribution has components in more than one direction,
the total contribution of connection factors is summed by taking the square root of the sum of the squares
of the contributions.
ECCF
Location
INPU Section
Description
The EDAT keyword is used to specify the end date or time of a simulation. EDAT consists of at least one required
argument which should be entered on the same line as the EDAT keyword itself when used.
Definitions
1. The date or time (from the initial date IDAT) when the simulation ends
2. Date or time format: DAYS, MONT, YEAR, or DATE
• DAYS - value is the number of days after the initial date
• MONT - value is the number of months after the initial date
• YEAR - value is the number of years after the initial date
• DATE (default)- value is a date (please see the IDAT keyword for a description of the date format)
Notes
• The default end date is the last event date given in the RECU section.
• When the end date is less than the last even date given in the RECU section, the simulation will end at the
earlier date (i.e. that specified by EDAT).
Example
1. EDAT is used to specify an end time of 1 year after the initial date specified by IDAT.
Description
The ERRO keyword is used to specify general simulation and output controls when errors or messages are en-
countered during a simulation run. ERRO consists of up to four optional arguments, all of which should be entered
on the same line as the ERRO keyword itself if used.
Definitions
Notes
• Using the maximum error count or NONF to override termination on an error is NOT recommended.
• See the Errors and Error Handling section for further details on error handling.
Example
1. ERRO is used with the NONF option to allow time steps even when errors have been encountered.
ERRO NONF
Location
INPU Section
Description
The ETUN keyword is used to turn on a package of minor algorithmic changes to enable MORE to match the
results of other simulators more closely. This keyword consists of one optional argument.
Syntax
ETUN [SWITCH]
Definitions
1. ON/OFF-switch
• Default: ON
Notes
Example
1. ETUN is used to turn on a package of minor algorithmic changes to enable MORE to match the results of
other simulators more closely.
ETUN
Location
Description
The EVEN keyword is used to specify that timesteps will observe event times when events are present in the
recurrent (RECU) section. The default is to do a normal timestep, then action all events with times less than the
current time. The EVEN keyword has one required argument which must be entered on the same line as the EVEN
keyword.
Definitions
Notes
• EVEN EXACT should be used unless events occur at such a large number of times that observing event
time restricts the timestep unacceptably.
• Please also see the ETAB, EFIL, EFOR, and EUNI keywords for more information regarding the input of
well event data for a simulation.
• For a detailed description of the events that can be used in MORE, please see the Working with Events and
the List of Events sections.
Example
1. EVEN with the EXACT option is used to limit time steps to match event times exactly.
EVEN EXACT
If we then specify events for the WPRD well with the HOUR option, as follows:
Additionally, we need to adjust the output frequency to output every time step by specifying the RATE and
FREQ keywords as follows in the RECU section:
RATE 1 DAY
FREQ 0 0 0
A 2D plot of oil production will show that the exact event times have been honoured by the simulator. See
EVEN.dat for complete example:
Location
INPU Section
Description
Turns on the fracture augmented flow option, which adds long range fractures to the reservoir model. These long
range fractures may be set up using the FAXY keyword.
Syntax
FAFL [LONG]
Definitions
Option: LONG
• Add long range connections along the whole fracture track
Notes
• There is a restriction in that FAFL is not currently available when MORE is run parallel.
Example
Location
FLUI Section
Description
This option is only relevant for equation of state compositional runs. When a two phase oil-gas hydrocarbon
state is encountered, the three phase flash option tests each of the two-phase states to see if they will further.
In that case a three phase hydrocarbon state is established and its Gibbs energy is minimised to calculate the
vapour-liquid-liquid state.
In the vast majority of cases a three phase hydrocarbon state is never formed. The only cases in which FL3P is
required are those in which CO2 is injected into relatively low-temperature reservoirs (~120 Deg F).
Syntax
FL3P
5.26 FLXR - Request that Reservoir Fluxes be read from a Flux File
Location
INPU section
Description
The FLXR keyword is used to request that reservoir fluxes or pressure type boundary values be read from a flux
file, for FLXT FLUX resp. FLXT PRES. If FLXR is specified, the flows in the reservoir between cells with
different FLXA values will be read from a .flx file.
FLXR requires one argument and may take several options which must all be entered on the same line as the
FLXR keyword.
Definitions
Notes
• By default, the boundary values are kept constant during the intervals between times recorded in the flux
file. When the last time on record has passed, MORE applies the last boundary values indefinitely for future
times.1
• Using the INTE option can help avoid time step chops, in particular in EOS runs with large recorded flux
time steps.
• For wells with completions defined in both active and inactive regions, only those in the active region are
present in the flux run. Therefore, it is not recommended to have wells cross the boundary of the active flux
region.
• By default, wells without completions inside the active flux region are excluded from group calculations.
However, the option GROSSG may be used to include the stored well rates from the flux file for wells outside
the active flux region. Alternatively, the group rate targets set in the full field run should be adjusted for use
in the flux run in order to omit contributions from inactive wells.
• Use the STAT option together with FLXT PRES to obtain the following statistical information about the
accuracy of the flux run:
– OFRR, OFTR - flux region to region oil flow rate and total in base run
– OFRA, OFTA - flux region to region oil flow rate and total in the actual (flux) run
– OFRE1 - absolute error of oil flow rate between base and flux run, summed over all region to region
connections
– OFRE2 - relative error of oil flow rate between base and flux run, summed over all region to region
connections
1 See the Flux Option section of the MORE Technical Reference for more information about the flux option in MORE.
– OFRE3 - standard deviation of the error of oil flow rate between base and flux run over all region to
region connections
– GFRR, GFTR - flux region to region gas flow rate and total in base run
– GFRA, GFTA - flux region to region gas flow rate and total in the actual (flux) run
– GFRE1 - absolute error of gas flow rate between base and flux run, summed over all region to region
connections
– GFRE2 - relative error of gas flow rate between base and flux run, summed over all region to region
connections
– GFRE3 - standard deviation of the error of gas flow rate between base and flux run over all region to
region connections
– WFRR, WFTR - flux region to region water flow rate and total in base run
– WFRA, WFTA - flux region to region water flow rate and total in the actual (flux) run
– WFRE1 - absolute error of water flow rate between base and flux run, summed over all region to region
connections
– WFRE2 - relative error of water flow rate between base and flux run, summed over all region to region
connections
– WFRE3 - standard deviation of the error of water flow rate between base and flux run over all region
to region connections
– MFRR, MFTR - flux region to region molar component flow rate and total in base run
– MFRA, MFTA - flux region to region molar component flow rate and total in the actual (flux) run
– MFRE1 - absolute error of molar component flow rate between base and flux run, summed over all
region to region connections
– MFRE2 - relative error of molar component flow rate between base and flux run, summed over all
region to region connections
– MFRE3 - standard deviation of the error of molar component flow rate between base and flux run over
all region to region connections
Example
1. FLXR is used to request that reservoir fluxes be read from a flux file named fluxInputFile.
FLXR fluxInputFile
5.26. FLXR - Request that Reservoir Fluxes be read from a Flux File 89
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The FLXT keyword is used to specify the type of boundary conditions imposed in a run using FLXR or FLXW.
FLXT takes one optional argument on the same line as the FLXT keyword itself.
Definitions
Notes
• The PRES option currently only works in fully implicit mode and in two-point flow approximation.
• The set of variables stored when using the PRES option is much larger than when using the FLUX option,
so the .flx files are larger as well.
• The NONE option cannot be combined with FLXR because boundary flows are zero.
• All options are supported in restarts: restarts can be performed on smaller sectors (i.e. flux regions) of the
reservoir.
• For the declaration of flux regions see the keywords FLXN and FLXA.
Examples
1. Setting up the base run with pressure boundary conditions (e.g. in sim_base.dat).
FLXW
FLXT PRES
3. Restart from a base run sim_base.dat and run with a restriction to smaller sector(s) of the grid (sec-
tors/flux regions are to be defined in the GRID section, c.f. keywords FLXA and FLXN) where a zero flow
boundary conditions are imposed on sector boundaries.
-- open base run files for initialisation
OPEN IRST
'sim_base'
FLXT NONE
4. Restart from a base run sim_base.dat and run a with restriction to smaller sector(s) of the grid where
flux boundary conditions are imposed on sector boundaries. The flux boundary data is read from the flux
file.
Location
INPU Section
Description
The FLXW keyword is used to request that reservoir fluxes be written to a file. If FLXW is specified, the flows in
the reservoir between cells with different FLXN values will be written to a .flx file. The name of the file will be
name.flx, where name is the root name of the run.
FLXW consists of one required argument and one optional one which should both be entered on the same line as
the FLXW keyword itself when used.
Definitions
Notes
• Flux files are ROFF files, and may be formatted (ASCII) or binary.
• See the Flux Option section of the MORE Technical Reference for more information about the flux option
in MORE.
Example
FLXW
As a result, for a run with a root name of daisy2, flux values will be written to a file named daisy2.flx.
Location
INPU Section
Description
Turns on the modelling of Forchheimer flow, which introduces a extra pressure drop for a given flow beyond
that expected from Darcy’s law. The effect of this term is generally only significant at high flow velocities. See
Forchheimer Flow in the MORE Technical Reference for details of Forchheimer flow.
Syntax
FORC [CELL][WELL][ALL]
Definitions
Notes
• Both CELL and WELL may be specified. A warning will be issued if neither CELL nor WELL is used, as
FORC will then have no effect
Example
1. Forchheimer effects in interblock flow are applied by using CELL argument of FORC keyword. See
FORC_CELL.dat for complete example:
FORC CELL
2. Forchheimer effects in well flows for all wells are applied by using WELL and ALL arguments of FORC
keyword. See FORC_WELL.dat for complete example:
3. Forchheimer effects in interblock flow and well flows for all wells are applied by using CELL, WELL and
ALL arguments of FORC keyword. See FORC_CELL_WELL.dat for complete example:
Location
INPU Section
Description
Enables the use of gas pseudo-pressure, which allows for the change in gas properties which pressure changes
occurring in the new-well region. See the Gas Pseudo-Pressure section of the Technical Reference where the
calculation and use of gas pseudo-pressure is described.
Syntax
GPP [ALL]
Definitions
1. ALL - Apply Gas Pseudo Pressure in all wells - if ALL is not used, WGPP keyword or GPP event must be
used to specify which wells.
Example
GPP ALL
Location
INPU Section
Description
The HYST (hysteresis) keyword is used to switch on hysteresis modelling. This is only required for the case in
which the table data does not show hysteresis, and only drainage endpoint data is entered, with the default setting
of IEPD. The unspecified imbibition endpoints taken from the rock tables may then be different from the drainage
endpoints. If HYST is entered, MORE will search for differences between the drainage and imbibition endpoints
and use hysteresis modelling as required.
Notes
1. In most cases HYST is not required as MORE can detect the need for modelling hysteresis from the data.
Example:
1. HYST is used to switch on hysteresis in a simulation.
HYST
Location
INPU Section
Description
The IDAT keyword is used to specify the initial date of a simulation, corresponding to a simulation time of zero.
IDAT consists of one required arguments which should be entered on the same line as the IDAT keyword itself
when used.
Definitions
1. Initial date:
• The initial date may have one of two formats:
(a) MMM DD YYYY
(b) DD MMM YYYY
Notes
Example
IDAT 4 JAN 87
Location
INPU Section
Description
The IEPD keyword is used set the way in which imbibition endpoint grid arrays are defaulted when using both
imbibition and end point scaling.
IEPD takes one compulsory argument which should be entered on the same line as the IEPD keyword itself.
Definitions
Notes
Example
1. IEPD is used with the Drainage option to turn set defaulted imbibition endpoint array values from the
drainage endpoint values.
IEPD D
Location
INPU Section
Description
The IMPL keyword is used to control the degree of implicitness in a simulation. IMPL consists of one required
argument which should be entered on the same line as the IMPL keyword itself when used.
Definitions
Notes
• FIBO may be used as an alias for FULL to request the fully implicit method.
• DELT or NONE may be used as aliases for IMPE to request the IMPES method.
• AIM may be used as an alias for ADAP to specify the IMPES method.
• If IMPL is not specified in a simulation:
– The fully implicit method (FULL) is the default for black oil runs.
– The IMPES (IMPE) method is the default for equation-of-state runs.
• The keyword ADAP may be used as an alternative to IMPL.
• A fully implicit method may be requested in one of three ways in Tempest MORE:
– IMPL FULL
– IMPL FIBO
– ADAP FULL
• The IMPES method may be requested in one of seven ways in Tempest MORE:
– IMPL IMPE
– IMPL DELT
– IMPL NONE
– ADAP NONE
• The AIM method may be requested in one of two ways in Tempest MORE:
– IMPL AIM
– IMPL ADAP
– ADAP
The AIMT keyword should also be used when requesting AIM, otherwise the run switches to IMPES.
Example
1. IMPL is used with FULL to specify that a fully implicit solution method be used in a simulation.
IMPL FULL
2. IMPL is used with IMPE to specify that the IMPES method be used in a simulation.
IMPL IMPE
3. IMPL is used with ADAP, together with the AIMT keyword to indicate that the adaptive implicit method
will be used in a simulation with a 5% target of implicit cells.
IMPL ADAP
AIMT FRAC 0.05
Location
INPU Section
Description
The IMPQ keyword is used to specify modifications to the IMPES equation used in MORE to be used with the
IMPL or ADAP keywords. IMPQ takes one optional argument on the same line as the IMPQ keyword itself. IMPQ
selects the modified IMPEQ method for explicit cells, as described in Overall non-linear formulation in MORE
Definitions
Notes
• For a run using the Adaptive Implicit Method, the IMPQ keyword is not necessary since the IMPEQ method
is selected automatically for explcit cells.
• For IMPES runs, it is possible to select the IMPEQ variant using the argument ON if required.
Examples
IMPL IMPE
IMPQ ON
2. Select the Adaptive Implicit Method. The IMPEQ method is automatically chosen for explicit cells and the
IMPQ keyword is not entered.
IMPL ADAP
Location
INPU Section
Description
The IPFL keyword is used to request a lookup of the inverse function when calculating pressure functions such
as formation volume factors. The use of inverse pressure lookup gives results which more closely match the
ECLIPSE simulator.
IPFL consists on one optional argument which should be entered on the same line as the IPFL keyword itself if
used.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF when turning the inverse pressure function lookup on
and off, respectively.
Example
1. IPFL is used with the ON option to turn the inverse pressure function lookup on.
IPFL ON
Location
INPU Section
Description
The INPU keyword is used as a section header to indicate the beginning of the Input section. The Input section
must begin with the INPU keyword before other INPU section keywords can be used. There are no required
arguments for INPU.
The Input data section is used to supply basic input data to the simulator. For more details on the Input section,
please see the Input Data Section Overview.
Definitions
n/a
Notes
n/a
Example
INPU
Location
INPU Section
Description
The IPR keyword requests that inflow performance tables are calculated for each well.
Definitions
Notes
• IPR output is requested using the GENE keyword in the RECU section.
Examples
IPR
Location
INPU Section
Description
The LOAD keyword is used to input a fast restart generated using the SAVE keyword.
LOAD should have one record which should be entered on the same line as the LOAD keyword itself.
Definitions
RECORD 1:
1. Root name of the fast restart file generated using the SAVE keyword
• The name should be enclosed in quotes if the name contains spaces or a slash (/)
Notes
• The LOAD keyword is used in place of the INPU, RELA, FLUI and GRID sections for a fast restart run.
The next keyword in the dataset should be INIT to continue processing the initial data.
• The only keywords which may be used before the LOAD keyword are IDAT, SDAT, EDAT, TITL and
OPEN. All others are ignored. When a restart is requested by the SDAT keyword, then OPEN IRST should
be used to specify the name of the restart file.
• Any data entered after the LOAD keyword and before the INIT keyword will be ignored.
• The same number of processors must be used as when generating the fast restart (SAVE). MORE will issue
an error message if the number of processors has changed.
• The file name should be enclosed in quotes if it contains a slash (/) character or else this will be treated as
the start of a comment instead. The file name must also be enclosed in quotes if blanks or special characters
are used.
• If a file name starts with \ or / or the second letter is a : character (e.g. D:base.dat) MORE will look in
the specified directory or location. If not, MORE will look in the current working directory in which MORE
is being run.
• As MORE files are binary, remember to select bin mode when using ftp to move files between computers.
• The fast restart file is typically a binary file (this is the default). If a formatted fast restart file has been
generated from the SAVE keyword, then the OPEN keyword should be used to specify that the input file is
formatted.
• Fast restarts cannot be used with grid coarsening (CXGR, CYGR, CZGR) in the present version or MORE.
Examples
1. LOAD is used to read a fast restart from the dataset ‘test1.dat’. The restart dataset starts with the LOAD
keyword.
LOAD 'test1.sav'
TITL 'Fast restart LOAD example'
INIT
--Begin INIT section processing
Note: If the input file is formatted, then the OPEN keyword is used to specify a formatted input.
2. LOAD is used to read a fast restart from the dataset ‘test1.dat’. A flexible restart is alo performed.
LOAD 'test1.sav'
TITL 'Fast and flexible restart LOAD example'
IDAT '01 Jan 2010'
SDAT '01 Jan 2016'
OPEN IRST
'test1' /
INIT
--Begin INIT section processing
Location
INPU Section
Description
The LOGF keyword is used to select a destination for standard output. The log information written to standard
output by MORE usually appears on the console when MORE is running. For examples, messages such as:
and
divi: 1075 25.0 49 0 1 9 121.55 42.869 0.0 200.00 0.0 0.7875 1004.4
Definitions
Notes
• NO may be used as an alias for OFF to turn off the log output.
• FILE may be used as an alias for DISK to send the log output to a file.
Example
1. LOGF is used to suppress the MORE standard output data that is written to the console.
LOGF OFF
Location
Description
The LUMP keyword is used to provide lumped component definitions for a simulation. LUMP must only be used
after the CNAM keyword has been specified. LUMP consists of two required arguments which should be entered
in succession on the same line as the LUMP keyword itself when used.
Definitions
Notes
• The maximum number of lumped components is 10. For example, one can lump 30 components into a
maximum of 10 lumped components.
• LUMP keyword simply outputs additional reports of the lumped component(s) in *.out file, and has no
effect on the simulation results.
Example
1. LUMP is used to lump the components C7P1 and C7P2 into a lumped component named C7+.
5.42 MAXC - Maximum CPU time for the simulation (in minutes)
Location
INPU Section
Description
The MAXC keyword is used to select a maximum CPU time for the simulation
Syntax
MAXC MaxCPUTime
Definitions
Examples
MAXC 1000
5.43 MAXE - Maximum elapsed time for the simulation (in minutes)
Location
INPU Section
Description
The MAXE keyword is used to select a maximum elapsed time for the simulation
Syntax
MAXE MaxElapsedTime
Definitions
Examples
MAXE 720
5.43. MAXE - Maximum elapsed time for the simulation (in minutes) 109
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The MAXM keyword is used to select a maximum memory for the simulation. It is usual to need this, as MORE
will detect when an attempt to allocate memory fails and stop the run. However, a few systems will over-allocate
memory, so that the allocation is fine but the memory is not really available. In such cases it may be useful to
allow MORE to limit the total memory used.
Syntax
MAXM MaxMemory
Definitions
Examples
MAXM 100
Location
INPU Section
Description
The MESL keyword is used to control the number of messages reported by the simulation. The keyword is
followed by 6 optional items on the same line.
Definitions
Examples
Limit the number of information and warning messages to 100 for all types, and to 50 for any particular type:
Location
INPU Section
Description
The MFC keyword requests that dual porosity (but not dual permeability) runs reduce the number of equations
prior to entering the main linear solver. This option is normally requested using the MFC argument of DPOR.
Examples
MFC
Location
INPU Section
Description
The MGDE keyword is used to set debug output options for the multigrid solver, which is selected with the MGLS
keyword. This keyword is available for development purposes but should not interest users.
Syntax
MGDE {options}
Definitions
Optional Arguments:
MSG - takes one integer argument:
• Output diagnostics from multigrid solver, higher integer is more diagnostics.
RECT:
• Use rectangular matrix representation in matrix multiply
RILU:
• Use rectangular matrix representation for ILU (does not work in parallel)
BARR:
• Insert barriers when doing timings in parallel runs
CYCL:
• Use a cyclic solver instead of a two-stage preconditioner
NAMG - takes one integer argument:
• Number of AMG iterations to use in two-stage preconditioner (Default: 1)
NILU - takes one integer argument:
• Number of ILU iterations to use in two-stage preconditioner. Only works with RILU option. (Default: 1)
NOPP:
• Do not perform additional pivoting operation prior to solving. Needed for back-compatibility with MORE
versions < 7.0.
DIAG:
• Use basic diagonal inverse in second-stage ILU. Needed for back-compatibility with MORE versions < 7.0.
Example
MGDE MSG 1
5.47. MGDE - Debug output requests for Multigrid linear solver 113
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The MGOP keyword is used to set algorithmic options for the multigrid solver, which is selected with the MGLS
keyword. This keyword is available for development purposes but should not interest users.
Definitions
Optional Arguments:
THRE - takes one fractional argument: + Strength threshold parameter (Default: 0.5)
NDS - takes one integer argument:
• Strength threshold parameter (Default: 1)
PMIS/CLJP:
• Use PMIS or CLJP coarsening (Default: PMIS)
EXTR/DIRE:
• Use extended+i reduced or direct interpolation (Default: EXTR)
SABS/SRS:
• Use absolute or Ruge-Stuben values in strength calculation (Default: SRS)
RRES - Relaxation algorithm before restriction. Takes one of four arguments:
• CF: coarse then fine
• FC: fine then coarse (Default)
• FORW: forward relaxation
• BACK: backward relaxation
RRES - Relaxation algorithm after interpolation. Takes one of four arguments:
• CF: coarse then fine
• FC: fine then coarse (Default)
• FORW: forward relaxation
• BACK: backward relaxation
Example
Location
INPU Section
Description
The MGLS keyword is used to select the Algebraic Multigrid Linear Solver as an alternative to the default nested
factorisation solver. The Algebraic Multigrid Linear Solver uses a two-stage preconditioning technique to solve
the linear equations from the Newton iterations. The MGLS keyword does not have any required arguments.
Definitions
n/a
Notes
• The default nested factorisation solver usually gives a good performance. However, if the number of linear
iterations - the column labelled LS in the output - is reaching 40 regularly, then it is worth trying the
multigrid solver.
• If the multigrid solver is still not improving performance, an additional keyword, MGVB can also be tried.
This will increase the cost of an individual linear solver iteration, but, should achieve convergence with less
linear iterations. The MGVB option is strongly encouraged for compositional models.
• For more information regarding the Algebraic Multigrid Linear Solver, please see the Solution of the Linear
System of Equations section of the MORE Technical Reference and the SPE Paper #115017.
Example
1. MGLS is used to select the Algebraic Multigrid Linear Solver as an alternative to the default nested factori-
sation solver in MORE.
MGLS
Location
INPU Section
Description
The MGVB keyword is used to specify the use of the FIPE linear equation set when the Algebraic Multigrid
Linear Solver is being used (MGLS). The MGVB keyword does not have any required arguments.
Definitions
n/a
Notes
• By using MGVB, an extra equation is added to the usual equation set which has characteristics better suited
to the two-stage Algebraic Multigrid Linear Solver. The extra equation substantially increases the cost of
each linear iteration, but may converge slightly faster.
• For more information regarding the Algebraic Multigrid Linear Solver, please see the Algebraic Multigrid
Linear Solver section of the MORE Technical Reference and the SPE Paper #115017.
Example
1. MGVB is used to Specify the use of the FIPE linear equation set when the Algebraic Multigrid Linear
Solver is being used (MGLS).
MGLS
MGVB
5.51 MIXK - Mix Oil and Gas Relative Permeabilities and Potentials
for Miscible Cases
Location
INPU Section
Description
The MIXK keyword is used to specify the mixing of oil and gas relative permeabilities and potentials for miscible
cases. MIXK is only relevant to equation-of-state runs in which miscible processes are being simulated. In a
miscible process, a cell can switch directly from being an oil to a gas due to a change in composition. This
can introduce a discontinuous change in the relative permeability being used (from Kro to Krg) and a resulting
discontinuity in the flow between the two cells which can make the fluid flow equations impossible to solve.
If MIXK is used, both oil and gas phases are given a relative permeability of the form:
where,
fo + fg = 1
fo is equal to:
• 1.0 when a cell composition is firmly ‘oil-like’
• 0.0 when a cell composition is firmly ‘gas-like’
• Varies continuously between 1.0 and 0.0 in the near miscible region
When a phase changes from an oil to a gas, there is also a possible discontinuity in the way in which it flows. If a
cell is an oil, it does not see the oil-gas capillary pressure, and it sees the oil density in other cells when calculating
the effect of gravity on flow rate. If a cell is a gas, it sees the oil-gas capillary pressure, and uses gas density in
other cells when calculating the effect of gravity. fo can be used to interpolate between the two cases where a cell
is an oil and where a cell is a gas.
MIXK has different arguments which can be used to apply different corrections to fix this. When this optional
argument of MIXK is used, it should be entered on the same line as the MIXK keyword itself. If no argument is
used with MIXK, it will automatically be assigned a default value.
The properties ‘oil-like’ and ‘gas-like’ are determined by the Li modification factor for property interpolation
using FCLI keyword.
Definitions
Notes
n/a
5.51. MIXK - Mix Oil and Gas Relative Permeabilities and Potentials for Miscible Cases 117
Tempest MORE Help, Release 8.1
Example
1. MIXK is used with the A option to specify interpolation between both relative permeabilities and flow
potentials for oil and gas in the miscible region.
MIXK A
Location
INPU Section
Description
The MINS keyword is used to select a minimum timestep for the simulation. The run will stop if a timestep length
less than the minimum is required.
Syntax
MINS MinStep
Definitions
Examples
MINS 1.0E-9
Location
INPU Section
Description
The MPFA keyword will select the multipoint flux method. This is an implementation of the Aavatsmark O-
method which allows for the effect of grid distortion in simulation grids.
Syntax
1. MPFA
The MPFA keyword has no arguments. The former argument L has been deprecated.
Notes
• As the extra terms in the coupling between cells change basic coupling from a 7-point to a 27-point scheme,
use of MPFA will generally increase the run-time of a run considerably. However, it may be a useful method
in assessing the effects of grid distortion.
Example
MPFA
The grids below display water saturations to demonstrate the effect of MPFA on grid distortions when it is
included and excluded from a simulation, respectively. See MPFA.dat for complete example.
Location
INPU Section
Description
Enables the use of multi-phase gas pseudo-pressure, which allows for the variation in fluid properties and satura-
tions as a function of the pressure in the near-well region. Details of the calculation and use of multi-phase gas
pseudo-pressure are described in the Gas Pseudo-pressure section of the Technical Reference Manual.
Syntax
Definitions
ALL - Apply Multi-Phase Gas Pseudo-pressure in all wells - if ALL is not used, WMPG keyword or MPGPP
event must be used to specify which wells.
DYNA - calculate multi-phase pseudo pressure dynamically. This is not normally required, but can improve
the pseudo-pressure calculation. The non-dynamical method, in which a table of gas pseudo-pressures is pre-
calculated, is fine most for most situations such as condensate blocking. If more than two phases have significant
flows at the same time, or there are effects such as velocity dependent relative permeabilities, the dynamic method
may be better, although there is some cost in terms of memory and CPU time.
Notes
n/a
Example
MPGP ALL
5.54. MPGP - Use Multi-Phase Gas Pseudo-pressure for well inflow 121
Tempest MORE Help, Release 8.1
Location
Description
The NEPT keyword is used to specify the number of pressure tables to use when reading ECLIPSE format fluid
properties. NEPT consists of one required argument which should be entered on the same line as the NEPT
keyword itself when used.
Definitions
1. Number of pressure tables expected when reading ECLIPSE format fluid properties
Notes
• In problems with more than one pressure table region, MORE normally expects to read the same keyword
a number of times. So, in a problem with 2 pressure table regions, the BASI keyword would appear twice.
This method may be used with ECLIPSE-compatible keywords such as GRAVITY and PVTO. However,
the standard approach for an ECLIPSE keyword is to read information for all the pressure table regions after
a single occurrence of the keyword.
• In ECLIPSE, the number of tables to be read is known as it is specified with the RUNSPEC keyword.
However, MORE does not support RUNSPEC, so NEPT is a way of specifying the number of pressure
tables expected.
• If NEPT is not supplied, the number of ECLIPSE tables read at one go will default to one, so the situation
reverts to the standard MORE approach in which the keyword is repeated and the data is assigned to the
pressure table regions in sequence.
• The keywords affected by NEPT are: DENSITY, GRAVITY, PVDG, PVTG, PVCO, PVDO, PVTO, ROCK,
PVTW, and WATERTAB. Native MORE keywords always follow the standard repeated keyword pattern.
Example
1. NEPT is used to specify that 2 pressure tables are expected when reading ECLIPSE format fluid properties
in MORE.
NEPT 2
DENSITY
49.1 64.79 0.06057 /
50.1 62.79 0.07054 /
PVTW
3600 1.00341 3.0D-6 0.96 0 /
3600 1.01341 4.0D-6 0.86 0.0001 /
/
This would be equivalent to the following input without the NEPT keyword:
DENSITY
49.1 64.79 0.06054 /
DENSITY
50.1 62.79 0.07054 /
PVTW
3600 1.00341 3.0D-6 0.96 0 /
PVTW
3600 1.01341 4.0D-6 0.86 0.0001 /
Both of the examples above will give precisely the same results.
5.55. NEPT - Number of Pressure Tables (for use when reading ECLIPSE format Fluid 123
Properties)
Tempest MORE Help, Release 8.1
Location
Description
The NEST keyword is used to specify the number of saturation tables to use when reading ECLIPSE format
fluid properties. In problems with more than one saturation table region, MORE normally expects to read the
same keyword a number of times. So, in a problem with 2 saturation table regions, the KRWO keyword would
appear twice. This method may be used with ECLIPSE-compatible keywords such as SWOF. However, the
standard approach for an ECLIPSE keyword is to read information for all the saturation table regions after a single
occurrence of the keyword. In ECLIPSE, the number of tables to be read is known as it is specified with the
RUNSPEC keyword. However, MORE does not support RUNSPEC, so NEST is a way of specifying the number
of saturation tables expected.
If NEST is not supplied, the number of ECLIPSE tables read at one go will default to one, so the situation reverts
to the standard MORE approach in which the keyword is repeated and the data is assigned to the saturation table
regions in sequence.
NEST consists of one required argument which should be entered on the same line as the NEST keyword itself
when used.
Definitions
1. Number of saturation tables expected when reading ECLIPSE format fluid properties
Notes
• The ECLIPSE keywords affected by NEST are: SGFN, SGOF, SOF2, SOF3, SWFN, and SWOF. Native
MORE keywords always follow the standard repeated keyword pattern.
Example
1. NEST is used to specify that 2 saturation tables are expected when reading ECLIPSE format fluid properties
in MORE.
NEST 2
SWOF
0.25 0.000 0.92 4.00
0.30 0.020 0.705 2.95
0.40 0.055 0.42 1.65
0.50 0.100 0.24 0.85
0.60 0.145 0.11 0.30
0.70 0.200 0.0 0.00
/
0.00 0.000 1.0 4.000
0.10 0.050 0.770 1.850
0.20 0.110 0.587 0.900
0.25 0.145 0.519 0.725
0.30 0.180 0.45 0.550
0.40 0.260 0.33 0.400
0.50 0.355 0.240 0.290
This would be equivalent to the following input without the NEST keyword:
SWOF
0.25 0.000 0.92 4.00
0.30 0.020 0.705 2.95
0.40 0.055 0.42 1.65
0.50 0.100 0.24 0.85
0.60 0.145 0.11 0.30
0.70 0.200 0.0 0.00
/
SWOF
0.00 0.000 1.0 4.000
0.10 0.050 0.770 1.850
0.20 0.110 0.587 0.900
0.25 0.145 0.519 0.725
0.30 0.180 0.45 0.550
0.40 0.260 0.33 0.400
0.50 0.355 0.240 0.290
0.60 0.475 0.173 0.200
0.70 0.585 0.102 0.160
0.80 0.715 0.057 0.110
0.90 0.850 0.021 0.050
1.00 1.000 0.0 0.000
/
Both of the examples above will give precisely the same results.
5.56. NEST - Number of Saturation Tables (for use when reading ECLIPSE format Fluid 125
Properties)
Tempest MORE Help, Release 8.1
Location
Description
The NEZT keyword is used to specify the number of Equation of State regions when reading ECLIPSE format
fluid properties.
NEZT consists of two required arguments which should be entered on the same line as the NEZT keyword itself
when used.
In problems with more than one equation of state region, MORE normally expects to read the same keyword a
number of times. So, in a problem with 2 Equation of State regions specified using EOSN, the PROP keyword
would appear twice. However, the standard approach for an ECLIPSE keyword is to read information for all the
EoS regions after a single occurrence of the keyword. In ECLIPSE, the number of Equations of State to be read is
known as it is specified with the RUNSPEC keyword. However, MORE does not support RUNSPEC, so NEZT is
a way of specifying the number of EoS properties expected.
If NEZT is not supplied, the number of ECLIPSE Equation of State regions read at one go will default to one, so
the situation reverts to the standard MORE approach in which the keyword is repeated and the data is assigned to
the Equation of State regions in sequence.
Definitions
1. Number of equation of state regions expected when reading ECLIPSE format fluid properties
• Default: 1
2. Number of surface equations of state regions expected when reading ECLIPSE format fluid properties
• Default: Value specified in item 1.
Notes
• If NEZT is not supplied, the number of EoS properties read at one go will default to one.
• The ECLIPSE keywords affected by NEZT are: EOS, MW, ZCRIT, VCRIT, TCRIT, PCRIT, ZCRITVIS,
VCRITVIS, BIC, ACF, OMEGAA, OMEGAB, SSHIFT, PARACHOR and RTEMP. Similarly, for Surface
Equations of State, additional ECLIPSE keywords are EOSS, MWS, ZCRITS, VCRITS, TCRITS, PCRITS,
BICS, ACFS, OMEGAAS, OMEGABS and SSHIFTS.
• It is not possible to match the ECLIPSE EoS keywords mentioned in the above paragraph with the equivalent
MORE EoS keywords (TEMP, PROP, INTE, OMGA, OMGB, EQUA, SURF, VOLU, VCVI, ZCVI, ZCOR
and GCOR) in the same dataset. An error will be reported if this is attempted.
• When using ECLIPSE keywords, the equation of state index should be specified for each stage in the SEPA
keyword. A warning will be given if this is not specified, and the separator will flash using the first surface
EoS. However, in the native MORE format, the separator stage temperature is used to index the surface EoS
specified using TEMP if the EoS index for the separator stage is not specified.
Example
1. NEZT is used to specify that 2 reservoir equations of state regions are expected together with 2 surface
equations of state when reading ECLIPSE format fluid properties in MORE.
NEZT 2 2
5.57. NEZT - Number of Equation of State Regions (for use when reading ECLIPSE format Fluid
127
Properties)
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
If one or more PEBI grids are defined MORE automatically switches to using the algebraic multigrid solver
(internally it effectively enables the MGLS keyword) rather than the default nested factorisation solver. The
NFLS keyword disables this automatic switching and forces use of nested factorisation, even when PEBI grids are
present.
Location
INPU Section
Description
The NOHY (no hysteresis) keyword is used to switch off hysteresis modelling. NOHY may be used to switch off
hysteresis even if the table data justifies using it. There are no required arguments for NOHY.
Definitions
n/a
Notes
n/a
Example
NOHY
Location
INPU Section
Description
If numerical aquifers are used, MORE places these in a hidden extra layer of cells. NUMA is required in the
INPUT section to ensure that this extra layer is allocated when the grid is set up.
Definitions
Notes
• If NUMA is not used in a run with numerical aquifers, a reminder message will be issued.
Location
INPU Section
Description
Definitions
RECORD 1:
1. File type (optional):
• INPU (default) - open alternate input unit
• ALL - open all files using name as the root
• ECLI - root name for grid, summary, init and restart files
• IRST - name of an input restart file
• MSF (or MST) - specify msf file format
• IMSF (or IMST) - specify input msf file format
• BLG - specify blg file format
• LOAD - specify load file format
2. File format (optional):
• FORM - request text-formatted files
For ECLIPSE files only:
• UNFO (default) - request unformatted (binary) files
• UNIX - request unformatted (binary) files which follow the UNIX (big-endian) byte ordering conven-
tion
• PC - request unformatted (binary) files which follow the PC (little-endian) byte ordering convention
• UPCA - request files with upper case mnemonics and units
• LOWC - request files with lower case mnemonics and units
• UPSU - request files with upper case files suffixes (i.e. SMSPEC)
RECORD 2:
1. Root name of the file
• The name should be enclosed in quotes if the name contains spaces or a slash (/)
Notes
• Unlike all the other options, which must be used in the INPU section, OPEN INPU may be used at any
point in the dataset.
• The file name should be enclosed in quotes if it contains a slash (/) character or else this will be treated as
the start of a comment instead. The file name must also be enclosed in quotes if blanks or special characters
are used.
• If a file name starts with \ or / or the second letter is a : character (e.g. D:base.dat) MORE will look in
the specified directory or location. If not, MORE will look in the current working directory in which MORE
is being run.
• When OPEN ECLI is used:
– If neither the PC nor UNIX options are requested, the big-endian (UNIX) type of file will be created.
Tempest will read either type of file on any platform. However, many other applications expect big-
endian files, so this is the default.
– UPSU (up-suffix) is required for some applications which read ECLIPSE files. UPCASE is not the
default, as some ECLIPSE file readers expect upper case mnemonics. LOWC (lower case) can be used
if lower case mnemonics are preferred. Tempest will read ECLIPSE files using either case convention.
• As MORE files are binary, remember to select bin mode when using ftp to move files between computers.
Examples
1. OPEN is used in combination with the SWIT keyword to switch input reading to an alternative file. The
combination of OPEN and SWIT will cause an alternative input file to be read.
OPEN
'wellhist.rates'
SWIT
With the input above, MORE will open the wellhist.rates file and start reading input data from it.
Subsequent SWIT keywords will cause input reading to switch between the main and alternate input files.
Note: If the intention is simply to read an entire include file, the INCL keyword may be used as a simpler
alternative to OPEN and SWIT.
Note: When reading alternate or included input files, the ABSP keyword may be used to control whether
directory names are passed down through the sequence of included files.
2. OPEN is used to place all the output files in a non-default location. For a run with the root name “base”, the
input file would be base.dat and the output file would be base.out. The MORE file system (MFS)
comprises a number of files which, by default, would share the same root (i.e. base.mis).
OPEN ALL may be used to choose an alternative file name for the MFS files. This may simply change the
name, as in:
OPEN ALL
'run13'
OPEN ALL
'rst\run12'
As a result, MORE will place the files in the rst directory with the root name “run12”.
If the specified directory does not exist, MORE will attempt to create it.
3. OPEN is used to specify the details of ECLIPSE format output files. ECLIPSE files will be created if the
EGRI, ESOL, or ESUM keywords are used, and OPEN need only be used to specify a non-default name or
to change the file characteristics. In this example, OPEN is used to change the name of an ECLIPSE outfile
file and make it a text file using the FORM option.
4. OPEN is used to request a restart from a run with a different name. If SDAT is used to perform a restart run,
MORE will extend the current file system. However, in some cases, it is useful to create an alternative study
starting from a base run. To do this, specify the name of the input restart file using OPEN IRST:
OPEN IRST
base12
Location
INPU Section
Description
The OPER (operation) keyword is used to specify whether timesteps will observe operation times when operations
are present in the recurrent (RECU) section. The default is for this to be the case; alternatively, one may take a
normal (longer) timestep, then action all operations with times less than the current time. The OPER keyword
consists of one required argument which should be entered on the same line as the OPER keyword itself when
used.
Definitions
Notes
• Operations are defined using the OPER keyword in the RECU section
• Please see the Operations section of the MORE Technical Reference for more information regarding Oper-
ations
Example
OPER with the NOEXACT option is used to limit time steps to match event times exactly.
OPER NOEXACT
Location
INPU Section
Description
The OPMX keyword is used to specify the maximum number of cells which can be reported as a printed map in
the .out file. OPMX consists of one required argument which should be entered on the same line as the OPMX
keyword itself when used.
Definitions
1. Maximum number of cells which can be reported as a printed map in the .out file
• Default: 10000
Notes
• The default OPMX value prevents huge unreadable maps being written to the .out file. These are normally
not used. However, OPMX can be used to reset the default if such output is really required.
Example
1. OPMX is used to assign a maximum number of 5000 cells which can be reported as a printed map in the
.out file.
OPMX 5000
5.63. OPMX - Maximum Number of Cells for a Printed Map in the .out File 135
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The PRIN keyword is used to define printing options for the input section data. PRIN consists of one optional
argument which should be written on the same line as the PRIN keyword itself if used.
Definitions
Notes
• By default, all basic input data is automatically output to the .out file of MORE if the PRIN keyword is
not used.
Example
1. PRIN is used with the ALL option to specify that all basic input data will be printed to the .out file of
MORE which can be seen under the Print tab when the results are viewed in Tempest View.
PRIN ALL
When the .out file is viewed under the Print tab in Tempest View, we will see the following output under
the INPU section:
INPU======================================================================================
Run summary
==========================================================================================
Number of components........................3
Component Names
Oil Gas Water
FLUI======================================================================================
Fluid property data
==========================================================================================
2. PRIN is used with the NONE option to specify that no basic input data will be printed to the .out file of
MORE which can be seen under the Print tab when the results are viewed in Tempest View.
PRIN NONE
Location
INPU Section
Description
The QCVF keyword is used to allow the use of a quadratic compressibility term when calculating pore volumes,
formation volume factors, and viscosity. The quadratic term gives results which more closely match the ECLIPSE
simulator.
QCVF consists of one optional argument which should be entered on the same line as the QCVF keyword if used.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF when turning the use of the quadratic compressibility
term on and off, respectively.
Example
1. QCVF is used with the ON option to request that a quadratic compressibility term be used in the calculation
of pore volumes, formation volume factors, and viscosities.
QCVF ON
Location
INPU Section
Description
If the BLOG keyword has been used to request that MORE writes out a binary log or blog file, RPTB can be used
to request that MORE extracts and reports its own blog file. This will be done at the end of the run, and the report
will be at the end of the MORE .out file.
Syntax
Location
INPU Section
Description
Use the RMS (root-mean-square) measure of error rather than the usual max norm.
Definitions
Notes
• RMS is a looser convergence criteria than the default max norm, and should be used with care to ensure
no mass balance errors follow. For this reason the default is to use the max norm for two iterations before
switching to the RMS norm.
• The optional argument ALL may be used as an alternative to 0 to enforce the RMS norm on all iterations.
This reproduces the behaviour of MORE v7.0 and earlier versions.
Example
RMS ALL
Location
INPU Section
Description
Enables the use of Russell-Goodrich, which allows for the change in gas properties which pressure changes oc-
curring in the new-well region. Russell-Goodrich is a simple form of gas pseudo-pressure in which only gas
expansion is modelled, using a constant Z-factor expression. The resulting inflow performance expression in-
volves the difference of the squares of the well and cell pressures. Full details may be found in the Technical
Reference.
Syntax
RG [ALL]
Definitions
1. ALL - Apply Russell-Goodrich in all wells - if ALL is not used, WRG keyword or RG event must be used
to specify which wells.
Notes
Example
RG ALL
Location
INPU Section
Description
The SAVE keyword is used to generate a fast restart file. This may then be used to replace the INPU, RELA, FLUI
and GRID sections in a subsequent run when the LOAD keyword is used. All the calculations for grid setup and
transmissibility calculations are written to the fast restart file.
SAVE has one optional argument which should be entered on the same line as the SAVE keyword itself.
Definitions
RECORD 1:
1. File format (optional):
• FORM - request ASCII-formatted files
Notes
• As MORE files are binary, remember to select bin mode when using ftp to move files between computers.
• The fast restart file is typically a binary file (this is the default). If a formatted fast restart file has been
generated from the SAVE keyword, then the OPEN keyword should be used to specify that the input file is
formatted.
• For the dataset ‘test1.dat’, the SAVE keyword will generate the fast restart file ‘test1.sav’.
• Fast restarts using SAVE and LOAD may not be used with the coarsening option in the present version of
MORE.
Examples
INPU
TITL 'Fast restart SAVE example'
-- INPUT section data
SAVE
FLUI
--- Fluid section data
Location
Description
The SCMP keyword is used to provide standard composition definitions for a fluid stream. Arguments for SCMP
consist of two records. The first record consists of one required argument which should be entered on the same
line as the SCMP keyword itself when used. The second record consists of a list of mole fractions that should be
entered on a line below the SCMP keyword. Data entry for this record must be terminated by using a slash (/)
after the final entry.
Definitions
RECORD 1:
1. The name to be assigned to the standard composition
RECORD 2:
1. List of mole fractions of component i in the standard composition, where i is equal to 1, 2, 3, ... up to the
number of components defined by CNAM
• Default: 0
• Minimum: 0
• Maximum: must sum up to 1.0
Notes
Example
1. SCMP is used to define a fluid named “RICH” with mole fractions of 0.6, 0.3, and 0.1 for components C1,
C2, and C3, respectively. The fraction of the other components all default to zero.
SCMP RICH
0.60 0.30 0.10 /
Location
INPU Section
Description
The SDAT keyword is used to specify the start date or time of a simulation. SDAT consists of at least one required
argument which should be entered on the same line as the SDAT keyword itself when used.
Definitions
1. The date or time (from the initial date IDAT) when the simulation begins
2. Date or time format: DAYS, MONT, YEAR, or DATE
• DAYS - value is the number of days after the initial date
• MONT - value is the number of months after the initial date
• YEAR - value is the number of years after the initial date
• DATE (default)- value is a date (please see the IDAT keyword for a description of the date format)
Notes
• The default start date is the initial date provided by the IDAT keyword.
• When the starting time is greater than zero, or the starting date is later than the initial date, the simulation
will restart using information saved from a previous run.
Example
1. SDAT is used to specify a starting time of 0 days from the initial date specified by IDAT .
2. SDAT is used to specify a restart run that starts 1 year after the initial date specified by IDAT.
Both of these cases will create a restart run that starts 1 year after the initial start date of 1 JAN 2000.
Location
INPU Section
Description
The SLIP keyword is used to request the use of gas-liquid phase slippage in a segmented well model. SLIP
consists of up to two optional argument which should be entered on the same line as the SLIP keyword itself if
used.
Definitions
Notes
• YES and NO can be used as aliases for ON and OFF when turning the use of gas-liquid phase slippage in a
segmented well model on and off, respectively.
• By default, the multi-segmented well model requested by the use of WSEG uses a no-slip flow model - all
phases move at the same velocity.
• If SLIP ON is used, the drift flux model of Shi, Holmes et al., SPE 84228, will be used to calculate the
amount of phase slip between the gas and liquid phases. This keyword will only have an effect if gas and at
least one of the oil or water phases are present in the problem.
• If SLIP ON is not requested, the effect of fraction can be included using a fast method in which the friction
evaluated by solving the well from toe to heel, assuming no crossflow (i.e. completions only produce for
producers and completions only inject for injectors). This obtains a good approximation to the required
friction at almost no extra cost compared to the standard model without multi-segments.
Example
SLIP is used with the ON option to turn use of gas-liquid phase slippage in a segmented well model.
SLIP ON
SLIP is used with the OFF option to turn off the use of gas-liquid phase slippage in a segmented well model.
SLIP OFF
5.72. SLIP - Request use of Gas-Liquid Phase Slippage in Segmented Well Model 145
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The SPLI (splits) keyword is used to specify splits for additional streams. Arguments for SPLI consist of two
records. The first record consists of one required argument and three optional ones which should all be entered
on the same line as the SPLI keyword itself when used. If values are not entered for the three optional arguments,
they will automatically take on their default values. The second record consists of a list of split factors for the
components in the stream. This list should be entered on a separate line below the SPLI keyword itself.
Definitions
RECORD 1:
1. Name of the new well stream being defined
The following optional arguments may be entered in any order when they are used:
1. Split of an injection or production stream, or both (optional): INJE, PROD, or BOTH
• INJE - specifies split of an injection stream
• PROD - specifies split of a production stream
• BOTH (default) - split both injection and production streams
2. Split stream origin (optional): OIL or GAS
• OIL - stream is split from the oil well stream (PROD only)
• GAS (default) - stream is split from the gas well stream
3. Treatment of new stream (optional): VAPO, LIQU, or SAME
• VAPO - treat new stream as vapour: ideal gas volumes for density
• LIQU - treat new stream as liquid: ideal mixing for density
• SAME (default) - stream density calculation follows oil (LIQU) or gas (VAPO)
RECORD 2:
1. List of split factors for component i: f strmi , where i is equal to 1, 2, 3, ... up to the number of components
defined by CNAM
• Default: 0
Notes
Example
1. SPLI is used to define a stream named S324 as a special stream that contains nitrogen for injection and
production.
SPLI S324
1.0
2. SPLI is used to specify a dry gas stream which is split from the separator gas stream. The dry gas stream
contains 100% of the N2 and C1, 80% of the C2, 40% of the C3, and 10% of the C4 from the separator gas
stream.
3. SPLI is used to specify the splitting of an NGL liquid stream from the separator gas. The NGL stream
contains 20% of the C3, 50% of the C4, 80% of the C5, and 100% of C7P1 and C7P2 from the separator
gas stream.
Specific gravities and ideal mixing are used to calculate the stock tank density of the NGL stream.
Location
INPU Section
Description
The STRE (streamlines) keyword is used to request output to drive streamline displays in Tempest View. STRE
consists of one optional argument which, if used, should be entered on the same line as the STRE keyword itself.
Definitions
Notes
• An additional output file (.msf) is created when the STRE keyword is used and additional static arrays are
written to the grid (*.grd) file. This file is written in ROFF format. If FORM is specified, the file is ASCII
text; otherwise, it is binary.
• For more information regarding the output and visualisation of streamlines in Tempest View, see the Stream-
lines help page.
Example
STRE
5.74. STRE - Request Output to Drive Streamline Displays in Tempest View 149
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The SWDA keyword is used to select saturation weighted density averaging in a simulation. There are no required
arguments for SWDA.
Notes
• When fluid flows are calculated between two grid blocks, MORE usually includes a gravity term based on a
simple phase average between two cells. Then the average density (ρpa v ) for phase p (where p is oil, water,
or gas) between cell 1 and cell 2 is:
1
ρpa v = × (ρp1 + ρp2 )
2
• This generally works well in black oil studies, as the density of a phase can be obtained as a function of
the pressure of the cell, even if a given phase is not present in a cell. However, in compositional and steam
injection cases, the density of an absent phase is hard to estimate. The SWDA option avoids this problem
by using a phase saturation (satp ) weighting in the density average:
When a phase is not present in a cell, its saturation is zero and so its contribution to the average density is
zero.
Example
1. SWDA is used to request the use of saturation weighted density averaging in a simulation.
SWDA
Location
INPU Section
Description
The TENS (tensor) keyword is used to specify the use of tensor permeabilities in a simulation. TENS consists of
one optional argument which should be entered on the same line as the TENS keyword itself if used.
Definitions
Notes
• If true xyz or true z input is used, MORE will automatically rotate the permeabilities into the grid coordinate
system.
• If TENS is used, it is possible to specify the permeabilities in two ways:
1. Use K_X, K_Y, K_Z, DEVX, DEVY, and AXES to define permeabilities in the principal axis directions
and the orientation of those axes.
2. Use K_X, K_Y, K_Z, KXY, KYZ and KZX to define six independent permeability components in the
local or true frames. KXY, KYZ and KZX default to zero.
• If DEVX, DEVY, and AXES are used to define tensor permeabilities, XYTRUE and ZTRUE have no effect.
• TENS requires the use of the fully implicit method (IMPL FULL) in a simulation.
• See the Tensor Permeability section of the MORE Technical Reference for more information regarding
tensor permeabilities in Tempest.
• See also to the “Arrays related to tensor permeabilities” section of the Discussion of Selected Arrays page
for more information regarding arrays and tensor permeabilities.
Example
1. TENS is used to specify that tensor permeabilities are to be used in a simulation. See TENS.dat for a
complete example:
TENS
2. TENS is used with XYTRUE to specify that tensor permeabilities with respect to true x and y directions are
to be used in a simulation.
TENS XYTRUE
3. TENS is used with ZTRUE to specify that tensor permeabilities with respect to the true z direction is to be
used in a simulation.
TENS ZTRUE
Location
INPU Section
Description
The TITL keyword is used to specify a run title for a simulation. Two title lines may be specified. The title is
printed on page headers in the output file and carried through to Tempest View.
TITL consists of one required argument which should be entered on the same line as the TITL keyword itself.
Definitions
Example
1. TITL is used to assign a run title of “History Match Run 458, July 14, 1987” to a simulation.
Location
INPU Section
Description
The UNIT keyword is used to assign the units to be used in a simulation. UNIT consists of one required argument
which should be entered on the same line as the UNIT keyword itself.
Definitions
Notes
• POFU (Practical Oil Field Units) and IMP (Imperial) may be used as aliases for FIELD to request field
units.
• The Units Table shows which units are used in the different systems.
Example
1. UNIT is used with METR to specify that the simulation will use metric units.
UNIT METR
2. UNIT is used with FIELD to specify that the simulation will use field units.
UNIT FIELD
Location
INPU Section
Description
Enables the use of velocity-dependent relative permeabilities in the new-well region. Details of the calculation
and use of velocity-dependent relative permeabilities is described in the velocity-dependent relative permeabilities
section of the Technical Reference Manual.
Syntax
Definitions
Notes
Example
Location
INPU Section
Description
VSC3 selects one of two methods of implementing three-point vertical relative permeability curve scaling. The
default (from MORE 7.1, and later) is to use a scaling which preserves a straight line segment. The optional
method is to use a linear variation in the scaling factor.
Definitions
1. VSC3 [LSIR|LSIS]
• LSIR (default) : Linear Scaling In Relative permeability - scaling factor changes such that a linear
relative permeability segment is preserved.
• LSIS : Linear Scaling In Saturation - scaling factor changes linearly with saturation.
Notes
• LSIR is generally preferred and it is likely LSIS will only be used for back-compatibility
Example
VSC3 LISIS
5.80. VSC3 - Select Scaling Method for Three-Point Vertical Scaling 155
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
The WDOP keyword is used to set the options used for calculating the wellbore density in a simulation. It
allows the choice of saturation weighting or mobile saturation weighting when calculating the welbore density.
Mobile saturation weighting uses (Sp-Spcr) rather than Sp when averaging densities over phases, where Sp is the
saturation of phase p, and Spcr is the critical saturation of that phase.
WDOP consists of one optional argument which should be entered on the same line as the WDOP keyword itself
if used. If WDOP is not specified in a simulation or if no argument is used with WDOP, a default method for
calculating the wellbore density will automatically be assigned.
Definitions
Notes
• The default is SATU, but MSAT may allow the density to better reflect the saturations of the mobile phases
in the wellbore.
Example
1. WDOP is used with the MSAT option to specify that mobile saturation weighting be used for calculating
the wellbore density in a simulation.
WDOP MSAT
Location
INPUT Section
Description
The WFPLUS keyword is used to setup global settings for the Improved well fracture functionality. The keyword
takes three optional arguments which should be entered on the same line as the WFPLUS keyword.
Syntax
Definitions
CONVERT [LEGACY] Convert fractures defined using the WFRA keyword or WFRA event to using the im-
proved well fracture model. See notes below. Optional argument:
• LEGACY - Apply the approximate shared path correction of the WFRA model instead of resolving the
flow along the fracture.
INAC Allow fractures to start in inactive cells along well trajectories
MODEL [1DIM | STAR] Select well fracture model. This takes one of two arguments:
• 1DIM (default) - Use a 1-dimensional topology for the fracture grid model.
• STAR - Use a simple star-shaped topology for the fracture grid model, i.e. the flow between each
fractured grid cell and the well is independent from all the others.
Notes
• The improved fracture model is adopted when a HFRA or VFRA event is used. To use the improved model
for fractures defined using the WFRA keyword or event, it is recommended to manually convert the WFRA
input to equivalent HFRA or VFRA events.
Alternatively, the CONVERT option may be used. This will switch on the improved 2D and 3D fracture
output. It will also direct MORE to internally convert WFRA input to equivalent VFRA/HFRA events
unless the LEGACY option is set. In this case, the improved fracture model is not applied to all fractures
defined by a WFRA keyword or event.
• As discussed in the technical reference, two topologies are available for the internal fracture grid, which
may be selected using the MODEL argument:
1. A one-dimensional grid along the fracture trajectory. Reservoir cells feed into the fracture at differ-
ent fracture grid nodes thus modelling the friction along the fracture accurately. This is the default
topology, or it may be explicitly selected using the MODEL 1DIM option.
2. A star-shaped topology (MODEL STAR) in which all reservoir cells connect to a single fracture grid
cell through independent flow paths. This corresponds to the standard WFRA model without shared
path correction (WFSP 0.0).
• The MODEL argument is a global setting which will apply to all fractures using the improved fracture model.
• It is not possible to convert fractures defined by WFRA unless the wells possess a defined track table.
5.82. WFPLUS - Settings for improved well fracturing model functionality 157
Tempest MORE Help, Release 8.1
Fig. 5.1: The simulated fracture network depicting a one-dimensional fracture flow path. The yellow points
denote nodes associated with reservoir cells, which are linked to the well fracture network by the connectivities
derived from rock permeability (green). The connectivities for links along the fracture (blue) are derived from the
fracture connectivity given in the fracture definition.
Fig. 5.2: The simulated fracture network using the star-shaped topology. In this setup, the reservoir cells (yellow
points) are linked to the well through a single internal node via two-point connectivities. No direct crossflow
through the fracture from one cell to another can occur.
• It is not possible to use the improved fracture model with multi-segmented wells.
• It is not possible to use the improved fracture model with coarsening.
• When using HFRA or VFRA events, the INAC option is required to allow fractures to start in inactive cells
along well trajectories.
• It is not possible to use the INAC option when the grid contains local grid refinements (LGRs).
• When converting WFRA events or keywords, fractures are modelled to start at the following active cells
along the well track, depending on the fracture type:
– V type - At all cells within the layers specified.
– H type - At the cells located at the lowest measured depth within the range specified.
When using the INAC option, these specifications are extended to inactive cells. When using the LEGACY
option, they are limited to existing completions.
Examples
WFPLUS CONVERT
2. For all well fractures defined by HFRA or VFRA, use a star-shaped topology for the fracture grid:
3. For all well fractures defined by HFRA or VFRA, use the improved one-dimensional fracture model. But
for all well fractures defined by a WFRA keyword or event apply the standard well fracture model and cast
the results into the improved 2D and 3D output:
5.82. WFPLUS - Settings for improved well fracturing model functionality 159
Tempest MORE Help, Release 8.1
Location
INPU Section
Description
When the WFRA (well fracture) keyword or equivalent WFRA event is used to set up a well fracturing operation,
by default the resulting transmissibilities are corrected to allow for the shared path taken along the fracture by
flows from different cells. See the model description for details. WFSP allows the user to set a coefficient to
control this correction, with a value between 0 (no shared path correction) and 1 (full shared path correction). This
coefficient can also be set for individual well fractures as an argument to the WFRA event or keyword. Individual
settings override global ones.
Syntax
Definitions
Examples
WFSP 0
2. Take a mixture of 30% no shared path correction and 70% shared path correction. In calculating the shared
path correction, half the contribution from the cells along the well trajectory is accounted for in either
fracture side’s flow path.
SIX
Location
FLUI Section
Description
The FLUI keyword is used as a section header to indicate the beginning of the Fluid section. The Fluid section
must begin with the FLUI keyword before any other FLUI section keywords can be used. FLUI consists of one
required argument which should be entered on the same line as the FLUI keyword itself when used.
The Fluid section is used to supply fluid property data. For more details on the Fluid section, please see the Fluid
Data Section Overview.
Definitions
Notes
n/a
Example
1. FLUI is used to indicate the beginning of the fluid section and to specify that the simulation is a black-oil
simulation using the BLAC option.
FLUI BLAC
2. FLUI is used to indicate the beginning of the fluid section and to specify that the simulation is an equation-
of-state simulation using the EOS option.
FLUI EOS
3. FLUI is used to indicate the beginning of the fluid section and to specify that the simulation is an equation-
of-state simulation with temperature variation using the EOST option.
161
Tempest MORE Help, Release 8.1
FLUI EOST
Location
FLUI Section
Description
The gas liquid surface tension is required to calculate the Reynolds number for velocity dependent relative perme-
ability modelling; see the Velocity Dependent Relative Permeabilities section in the MORE Technical Reference
Manual for more information.
Syntax
GLST Value
Definitions
Example
GLST 23.6
Location
FLUI Section
Description
The KVSP keyword is used to provide a table of permeability and pore volume modifiers as a function of pressure.
Arguments for KVSP consist of two records. The first record consists of up to four optional arguments which
should be entered on the same line as the KVSP keyword itself if used. The second record consists of a table with
up to five columns. Following the final row of KVSP data in the table, a solitary slash (/) on a separate line is
required to terminate the data entry for this keyword.
Definitions
KVSP
P1 KM(P1) PVM(P1) KMh(P1) PVMh(P1) /
P2 KM(P2) PVM(P2) KMh(P2) PVMh(P2) /
P3 KM(P3) PVM(P3) KMh(P3) PVMh(P3) /
...
/
where
• P - Pressure
– Units: psi (Field), bar (Metric)
• KM - Permeability multiplier
• PVM - Pore volume multiplier
• KMh - Permeability multiplier for hysteresis
• PVMh - Pore volume multiplier for hysteresis
Notes
• Options:
– IRRV, WRTI, and WRTP are global arguments, i.e. if specified on at least one table then all other
tables will inherit the argument.
– Since WRTP is a global setting, if different KVSP tables with multiple WRTP settings are used, the
WRTP setting specified for the last table is used for all tables, see the example below.
Functionality
• For detailed information on the functionality please see the KVSP section of the MORE Technical Reference.
• Application of Modifiers
– Permeability: the actual permeability modifier KMOD is applied to normal transmissibilities, NNC
(fault) transmissibilities, and well indices. The normal transmissibility Tij between cell i and cell j is
modified to TijP according to the rule:
6.3. KVSP - Pressure Dependent Permeabilities and Pore Volume Modifiers 165
Tempest MORE Help, Release 8.1
2. Irreversible: the global switch IRRV is ON. The KMh and PMh columns are empty.
As long as P < Pmin , where Pmin is the minimum pressure in the cell since the start of the run, the
actual modifiers are determined by looking up the KM and the PVM columns.
In situations where P > Pmin , the actual permeability modifier KMOD stays constant:
KMOD(P ) = KM(Pmin )
while the actual pore-volume modifier PVMOD follows the normal compressibility:
where Cr is the rock compressibility. With the irreversible option the pore volume follows the tabular
values on depletion but the compressibility curve on re-pressurisation:
3. Irreversible with option PREV: the global switch IRRV is ON. The KMh and PMh columns are
empty.
If a specific table has a defined reversal pressure Prev then this table is
– in reversible mode, as long as Pmin > Prev , i.e. the determination of the actual modifiers KMOD
and PVMOD is as described under 1.
– in irreversible mode, once Pmin has dropped below Prev , i.e. the determination of the actual
modifiers KMOD and PVMOD is as described under 2.
4. Hysteretic: the global switch IRRV is ON. KMh/PMh table data has been specified.
As long as P < Pmin , the actual modifiers are determined by looking up the KM and the PVM
columns.
In situations where P > Pmin , the actual modifiers are determined by looking up the KMh and the
PVMh columns and shifting the values for continuity.
5. Hysteretic with option PREV: the global switch IRRV is ON. KMh/PMh table data has been speci-
fied.
If a specific table has a defined reversal pressure Prev then this table is
– in reversible mode, as long as Pmin > Prev , i.e. the determination of the actual modifiers KMOD
and PVMOD is as described under 1.
– in hysteretic mode, once Pmin has dropped below Prev , i.e. the determination of the actual modi-
fiers KMOD and PVMOD is as described under 4.
• We recommend putting all KVSP tables in the same file. Tables are numbered according to their order of
appearance. When working with several files (containing KVSP tables), the order of appearance is affected
by the order of file inclusion.
• We recommend switching off unused tables (see keyword SKIP), because global switches can be set from
any table even if the table is not used.
• Switching off irreversibility for a specific table: in a deck with several KVSP tables it may be desired that
some are in irreversible mode while others shall be in reversible mode. In order to get irreversibility at all
the global switch IRRV must be ON. Since this sets all tables to irreversible mode, a specific table may set
back to reversible mode by assigning a zero reversal pressure (use PREV 0 on that table).
• For directional versions of the permeability modifiers see KVPXYZ.
Examples
1. Irreversible pressure modifier. Pore volumes are not changed. See KVSPExample1.dat
KVSP IRRV
10 0.5 /
50 1 /
100 3 /
360 10 /
500 30 /
/
2. Reversible pressure modifier. Pore volumes are not changed. Table values are with respect to 250 Bar (so if
cell is at 280 Bar, will lookup at a pressure value of 30). This applies to both tables because WRTP 250 is
global. See KVSPExample2.dat
KVSP
1 0.8 /
500 0.9 /
/
3. First table irreversible, second table reversible permeability modifier. Pore volumes are not changed. Switch
on irreversibility for all tables by specifying IRRV on the first table, but switch it off for the second table by
PREV 0. See KVSPExample3.dat
KVSP IRRV
1 0.7 /
500 0.8 /
/
KVSP PREV 0
1 0.8 /
500 0.9 /
/
KVSP IRRV
10 1 1.01 20 /
500 30 1.02 30 /
/
6.3. KVSP - Pressure Dependent Permeabilities and Pore Volume Modifiers 167
Tempest MORE Help, Release 8.1
5. Reversible permeability (by setting KMh=KM), but hysteretic pore-volume modifier. See KVSPExam-
ple5.dat
6. Multiple WRTP settings: since WRTP is a global setting, the last WRTP setting applies. In this example a
reference pressure value of 500 is used.
Location
FLUI Section
Description
KVPX,KVPY and KVPZ are like directional versions of the KVSP keyword. Pressure dependent permeability
modifiers can be supplied for flow in the X, Y and Z directions.
The data following KVPX, KVPY or KVPZ consists of a table with two or three columns. Following the final row
of KVPX, KVPY or KVPZ data in the table, a solitary slash (/) on a separate line is required to terminate the data
entry for this keyword.
Definitions
On same line as the keyword, optional: the reversibility pressure: PREV followed by required value
Each subsequent record:
The following arguments should be entered in a tabular format:
1. Pressure
• Units: psi (Field), bar (Metric)
2. Permeability multiplier
3. Optional hysteresis permeability multiplier
Notes
Examples
KVPX
10 30 /
50 10 /
100 3 /
160 1 /
200 0.5 /
/
2. Pressure vs permeability modifiers for X-direction, with hysteresis data provided, and a reversal pressure of
200 Bars
6.4. KVPX, KVPY and KVPZ - Directional Pressure Dependent Permeability Modifiers 169
Tempest MORE Help, Release 8.1
• Please see the KVSP section of the MORE Technical Reference for more information regarding KVSP
Examples:
KVSPTest1.dat KVSP,KVPX, KVPY and KVPZ examples with hysteresis data columns
Location
FLUI Section
Description
The OVPG keyword is used to specify the modification of oil viscosity with the pressure gradient. OVPG consists
of three required arguments which should all be entered in succession on the same line as the OVPG keyword
itself.
Definitions
Notes
Example
1. OVPG is used to reduce oil flow by a factor of 0.01 for pressure gradients up to 0.001, and the factor returns
to 1.0 for pressure gradients greater than 0.005:
This is more visible if the view is filtered to show only those cells with high values of FSHX (> 0.7 in this
case):
NB: FSHX value of 1 on the right-hand edge is an artificial effect caused by FSHX being defined at cell
boundaries, but displayed on cells, so this side of the grid does not have any physical values. Similar effect
can be seen for front and bottom faces of the grid for FSHY and FSHZ arrays respectively.
Location
FLUI Section
Description
The WVPG keyword is used to specify the modification of water viscosity with the pressure gradient. WVPG
consists of three required arguments which should all be entered in succession on the same line as the WVPG
keyword itself.
Definitions
Notes
Example
1. WVPG is used to reduce water flow by a factor of 0.01 for pressure gradients up to 0.001, and the factor
returns to 1.0 for pressure gradients greater than 0.005:
Location
FLUI Section
Description
PCVR is a means of limiting the maximum rate of change of capillary pressure in IMPES and AIM MORE runs.
In such runs, it is possible for capillary pressure instability to occur, and this can be sampled out using PCVR.
Syntax
PSVR rate
Definitions
Location
Description
The APIT keyword is used to turn on API tracking in Tempest. There are no required arguments for APIT.
Notes
• See the API Tracking section of the MORE Technical Reference for more information regarding API track-
ing in Tempest.
• Other keywords associated with API tracking in Tempest include:
– OPVT or PVTO - oil PVT data for black oil fluid
– SDEN - oil and gas surface densities for black oil
– SGRA - oil and gas surface specific gravities for black oil
– AGVD - initial variation of API gravity with depth
– OAPI - initial oil API array
– APIG - maximal number of API groups
Examples
1. APIT is used to request API tracking in Tempest. See API_example.dat for complete example.
APIT
Location
FLUI Section
Description
The APIG keyword is used to specify the maximal number of API groups in the run. APIG consists of one required
argument which should be entered on the same line as the APIG keyword itself when used.
Definitions
Notes
• For setting up different API groups see section API Groups of the MORE Technical Reference on API
Tracking. Note in particular that a change in monotonicity of the API data indicates the start of a new API
group.
• An error will be given if the number of groups does not match the API data.
Examples
APIG 3
Location
FLUI Section
Description
The TRAC keyword is used to define a tracer attached to a conserved fluid component. TRAC consists of two
required arguments which should be entered on the same line as the TRAC keyword itself.
Definitions
1. Tracer name
2. Name of component to carry tracer
Notes
• The name of the component to carry the tracer must be in the CNAM in the INPU section.
• The injection concentration for a tracer associated with an injection well may be defined using the WTRC
keyword or the TRAC event in the RECU section.
• The injection concentration for an aquifer may be defined using the ATRC keyword in the RECU section.
• Tracer dependent property multipliers may be defined with the TFUN keyword.
• After the two required arguments, one of the optional arguments AOGC, BOGC, AOWC or BOWC may be
added. These set the initial tracer concentration with respect to the initial fluid contacts; for example, AOGC
will set the tracer concentration to 1 above the oil-gas contact, and zero below it. The contacts depths are
those specified with the EQUI keyword.
Example
The TRC1 tracer can now be used with the WTRC keyword in the RECU section to set a tracer concentration
of 1 mole of tracer per mole of water for I-1 injection well.
The tracer concentration array is then displayed in the Recurrent tab of the results for display in 3D as
shown below. In the following figure, you can observe the distribution of the TRC1 tracer in the reservoir
after 10 years.
• See the Tracer section of the MORE Technical Reference for more information regarding tracers in Tempest.
Location
FLUI Section
Description
The TSET keyword is used to define a tracer set in an equation of state run. TSET takes one argument which
should be entered on the same line as the TSET keyword itself.
Definitions
Notes
• TSET does not require that a carrier component be named (as in the case of TRAC).
• TSET sets up a set of tracers, one for each hydrocarbon component. The initial distribution of the tracer set
is applied to all these tracers.
• For a production well, the set of components marked with tracers from the tracer set is flashed through the
separators to produce surface oil and gas rates for the tracer set.
• After the required argument, one of the optional arguments AOGC, BOGC, AOWC and BOWC may be
added. These set the initial tracer concentration with respect to the initial fluid contacts - for example,
AOGC sets the tracer concentration to 1 above the oil-gas contact, and to zero below it. The contacts depths
are those specified with the EQUI keyword.
Example
TSET A
TSET B
The A and B tracer sets could then be set up in the INIT section as:
A
ZVAR
1 1 1 1 0 0 0 0 /
B
ZVAR
0 0 0 0 1 1 1 1 /
The well, group and field TSET oil and gas production rates can then be obtained using the WELL, GROUP
and FIELD options of RATE. These are displayed in Tempest VIEW as WOPRA (well oil production rate
of tracer set A).
Note that when tracer sets are used, the well tracer rates are not displayed in VIEW. If individual tracer rates
are required, use TRAC rather than TSET.
2. See the Tracer section of the MORE Technical Reference for more information regarding tracers and tracer
sets in Tempest.
Location
FLUI Section
Description
The WATR keyword is used to define water properties in a simulation. WATR may be entered more than once (up
to 50 times) to define water properties for each pressure table region.
WATR consists of six required arguments which should be entered in succession on a separate line below the
WATR keyword itself when used.
Definitions
Notes
• Some simulators use a water formation volume factor (Bw ) at the reference pressure. This is related to the
ρw,sc
above by Bw = ρw,ref .
To enter water pressure data in formation volume factor form, use the PVTW keyword.
Example
1. WATR is used to provide water properties in a simulation. In this example, water is assigned a density of
61.2 lb/ft3 at standard conditions, a density of 59.6 lb/ft3 at reservoir conditions, a water compressibility of
2.2E-6/psi, a reference pressure of 4300 psi, a water viscosity of 0.5 cP, and a pressure derivative of water
viscosity of 0.000015 cP/psi.
WATR
61.2 59.6 2.2E-6 4300 0.5 0.000015
2. WATR is used to provide water properties in a simulation. In this case, the standard and reference densities
are defaulted while a water compressibility of 5E-6/psi is assigned along with a reference pressure of 3000
psi and a water viscosity of 0.70 cP. The pressure derivative of water viscosity is also assigned its default
value.
WATR
2* 5E-6 3000 0.7
Location
FLUI Section
Description
The BASI keyword is used to define basic fluid property data for black oil. BASI consists of three required
arguments which should all be entered in succession on a separate line below the BASI keyword itself when used.
Definitions
Notes
• It is possible to enter the BASI keyword more than once, and in doing so, define a different surface density
for each pressure table. In API-tracking runs the BASI statements (and also the corresponding PVT tables)
must be ordered such that oil density values increase.
• When a gas specific gravity or molecular weight is entered, it defines both a gas surface density and a gas
molecular weight:
MWgas
– Gas surface density = (Air surface density) ∗ MWair
Gas surface density
– MWgas = MWair ∗ Air surface density
• Note that the last molecular weight specified, for oil and gas, is the one used by MORE.
Examples
1. BASI is used to define an oil density at stock tank conditions of 56, an oil molecular weight of 190, and a
gas gravity of 0.792.
BASI
56 190 0.792
The gas gravity is with respect to air at standard conditions. This is 0.0763 lb/ft3 in field units and 1.223
kg/m3 in metric units.
2. BASI is used to define an oil density at standard conditions of 53, an oil molecular weight of 210, and a gas
molecular weight of 22.
6.13. BASI - Defines Black Oil Basic Fluid Property Data 183
Tempest MORE Help, Release 8.1
BASI
53 210 22
Location
FLUI Section
Description
The BDEN keyword can be used in a BRINE tracking simulation to augment the salt water properties with brine
surface densities.
Definitions
For each PVTB table BDEN specifies as many surface densities values as there are entries in the salt column of
the corresponding PVTB table.
• Units: lb/ft3 (Field), kg/m3 (Metric)
Notes
• BDEN is optional, if not used a constant water surface density as specified with WATR (or its alternatives)
is assumed.
• The surface density values must increase (or stay level) with the salt concentrations in the corresponding
PVTB table.
• See the Brine Tracking section of the MORE Technical Reference for more information regarding brine
tracking in Tempest.
Examples
1. BDEN is used a brine tracking simulation to augment a PVTB table with brine surface densities.
PVTB
-- P_ref Csalt_ref
3000.0 0.0 /
-- Csalt Bw Cw mu Cmu
0.0 1.000 3.0E-6 1.00 1.00E-6
7.0 0.9 2.0E-6 1.10 1.01E-6
10.0 0.8 1.9E-6 1.11 1.011E-6 /
BDEN
64.0 65.0 67.0 /
Location
FLUI Section
Description
The DENSITY keyword is used to define basic black oil fluid property data. DENSITY consists of three required
arguments which should be entered in succession on a separate line below the DENSITY keyword itself when
used.
Definitions
Notes
• Unlike most MORE keywords, all seven letters of the DENSITY keyword should be specified.
• The order of arguments in DENSITY follow the ECLIPSE oil-water-gas convention rather than the MORE
oil-gas-water convention.
• It is possible to enter several densities (one for each pressure table) by entering them in successive rows
under a single DENSITY keyword. In API-tracking runs the rows (and also the corresponding PVT tables)
must be ordered such that oil surface density values increase.
• SDEN provides an alternative which follows the MORE input convention.
• The default values for oil and gas densities match that of SDEN.
Examples
1. DENSITY is used to specify oil, water, and gas densities for a black oil system in metric units below.
DENSITY
786.84 999.551 0.968616
Location
FLUI Section
Description
The DPBD keyword is used to set the maximum rate of change of bubble point with time in a black oil model.
The default is for there to be no limit on how fast bubble point changes with time. DPBD consists of one required
argument which should be entered on a separate line below the DPBD keyword itself when used.
Definitions
1. Maximum rate of change of bubble point with time + Units: psi/day (Field), bars/day (Metric)
Notes
Example
1. DPBD is used to set a maximum rate of change of bubble point with time to be zero, indicating that the
bubble point of the undersaturated oil will not increase so that gas and undersaturated oil can co-exist in a
cell in a black oil system.
DPBD
0.0
6.16. DPBD - Maximum Rate of Change of Bubble Point with Time in a Black Oil Model 187
Tempest MORE Help, Release 8.1
6.17 GPVT - Define Gas PVT Data for Black Oil Fluid
Location
FLUI Section
Description
The GPVT keyword is used to define gas PVT data in a tabular format for black oil fluid. Arguments for GPVT
consist of a table with up to four columns which should start on a separate line below the GPVT keyword itself.
Of the four columns, the first three columns are required with the last column being optional. Following the final
row of GPVT data in the table, a solitary slash (/) on its own line is required to terminate the data entry for this
keyword.
Definitions
Notes
If a flat Rv value is required, simply ensure that in the rising part of the curve each value exceeds the
previous one by 1.0E-6.
Examples
1. GPVT is used to provide gas PVT data in a tabular format for a dry gas phase in field units.
GPVT Pg Bg Viscg
14.7 166.7 0.008
514.7 6.274 0.0112
1014.7 3.197 0.014
2014.7 1.614 0.0189
3014.7 1.080 0.0220
4014.7 0.811 0.0268
5014.7 0.649 0.0309
9014.7 0.386 0.0470
/
2. GPVT is used to provide gas PVT data in a tabular format for a wet gas phase in field units. The gas liquid
content is supplied as a function of pressure.
GPVT pg bg viscg Rv
1200 2.932 0.01523 0.01919
2000 1.7399 0.01731 0.02338
2800 1.2628 0.02042 0.03331
3200 1.1239 0.02237 0.03997
4315 0.8980 0.02900 0.06270
5515 0.7908 0.03831 0.09814
6765 0.7580 0.05297 0.15369
/
3. GPVT is used to provide gas PVT data in a tabular format for a dry gas phase in metric units. In this
example, the gas FVF (Bg ) in rm3 / 1000sm3 at 1 bar is greater than 1000 due to the higher temperature of
the reservoir than the stock tank.
6.17. GPVT - Define Gas PVT Data for Black Oil Fluid 189
Tempest MORE Help, Release 8.1
/-------------------------------
/ Gas Gas FVF Gas
/ Pressure Bg Viscosity
/ bar m3/1000m3 cP
/---------- ---------- ---------
GPVT
1.0 1378.48 0.0104
50.0 22.76 0.0130
100.0 10.53 0.0154
150.0 6.73 0.0198
200.0 5.10 0.0270
250.0 4.41 0.0372
300.0 3.94 0.0523
350.0 3.38 0.0675
400.0 2.96 0.0826
450.0 2.63 0.0978
500.0 2.36 0.1129
/
6.18 OPVD - Define PVT Data in Table Form for Dead Oil
Location
FLUI Section
Description
The OPVD keyword is used to define PVT data in a tabular format for dead oil. Arguments for OPVD consist of
a table with three columns which should start on a separate line below the OPVD keyword itself. Following the
final row of OPVD data in table, a solitary slash (/) on its own line is required to terminate the data entry for this
keyword.
Definitions
Notes
Examples
1. OPVD is used to define PVT data in table for for dead oil in metric units.
OPVD
1.0 1.03 0.311
50.0 0.98 0.322
100.0 0.97 0.332
150.0 0.963 0.340
200.0 0.954 0.349
250.0 0.941 0.356
300.0 0.938 0.367
350.0 0.921 0.380
400.0 0.911 0.387
450.0 0.901 0.390
500.0 0.987 0.398
/
6.18. OPVD - Define PVT Data in Table Form for Dead Oil 191
Tempest MORE Help, Release 8.1
6.19 OPVT - Define Oil PVT Data for Black Oil Fluid
Location
FLUI Section
Description
The OPVT keyword is used to define oil PVT data in a tabular format for black oil fluid. Arguments for OPVT
consist of a table with up to seven columns which should start on a separate line below the OPVT keyword itself.
Of the seven columns, the first four columns are required with the last three columns being optional. Following
the final row of OPVT data in the table, a solitary slash (/) on its own line is required to terminate the data entry
for this keyword.
Definitions
Notes
Examples
1. OPVT is used to define oil PVT data in a tabular format for black oil fluid in metric units. In this example
oil compressibility and the normalized viscosity slope are supplied for one saturation pressure. The slopes
at this pressure are calculated and used at all other saturation pressures for calculating Bo and µo in the
undersaturated region.
2. OPVT is used to provide oil PVT data in a tabular format for black oil fluid in field units. In this case,
the oil compressibility and the normalized viscosity slope are not input directly. As a result, they will be
determined from the last two data points, supplied at a constant Rs value.
OPVT PO BO VISCO RS
50.0 1.059 3.256 0.065
150.0 1.075 2.998 0.100
250.0 1.091 2.740 0.135
500.0 1.117 2.345 0.198
1000.0 1.157 1.930 0.297
1500.0 1.195 1.760 0.388
1700.0 1.211 1.728 0.424
3000.0 1.200 1.929 0.424
/
In other words, the last pressure is interpreted as an undersaturated pressure, providing oil data at Pbub =1700,
and P=3000. For saturated oil above Pbub =1700, an extrapolation of the saturated data at 1500 and 1700 will
be used. Internally, this type of data is converted into compressibility form.
For bubble point pressures above 1700 psi in this example, the saturated data between 1500 and 1700 will
be extrapolated. This is generally not desirable, and users are encouraged to enter the table in 6-column
form with at least one oil compressibility and one viscosity slope value.
3. OPVT is used to define oil PVT data in a tabular format for black oil fluid in metric units. In this case, the
oil compressibility has been set at all saturation pressures and the viscosibility defaulted to zero.
/---------------------------------------------------
/ Oil Oil FVF Oil Solution Oil
/ Sat pres Bo Visc GOR, compressibility
/ bar m3/sm3 cP 1000m3/m3 1/bar
/-------- -------- ------- --------- ------------
OPVT
1.02 1.052 0.729 0.000 1.56E-04
50.00 1.323 0.202 0.069 3.46E-04
100.00 1.651 0.143 0.163 4.71E-04
150.00 2.012 0.111 0.271 5.78E-04
200.00 2.398 0.094 0.394 6.44E-04
250.00 2.846 0.083 0.542 6.78E-04
300.00 3.675 0.071 0.801 7.74E-04
350.00 4.505 0.065 1.060 8.70E-04
400.00 5.334 0.061 1.319 9.65E-04
450.00 6.164 0.057 1.578 1.06E-03
6.19. OPVT - Define Oil PVT Data for Black Oil Fluid 193
Tempest MORE Help, Release 8.1
Location
FLUI Section
Description
The PRIN keyword is used to define black oil fluid property printing options. PRIN consists of one optional
argument for which there are three options. This argument, if used, should be entered on the same line as the
PRIN keyword itself.
Definitions
Notes
• If PRIN is not specified in a simulation, the default will be to print out all of the fluid data into the MORE
.out file.
• MORE 6 does not modify or re-interpolate the entered tables in any way, so some old MORE options such
as FULL are no longer meaningful.
Example
1. PRIN is used to request that only basic fluid data will be printed to the .out file of MORE, which can be
viewed under the Print tab when results are viewed in Tempest View.
PRIN BASI
Looking at the FLUI section in the .out file, we will see the following basic fluid data output:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
2. PRIN is used with the ALL option to request that all fluid data will be printed to the .out file of MORE,
which can be viewed under the Print tab when results are viewed in Tempest View. The ALL option will
output all of the data output by the BASI option but will also include additional pressure function tables as
well.
PRIN ALL
This is equivalent to entering PRIN without any argument as ALL is the default option on PRIN:
PRIN
Looking at the FLUI section in the .out file, we will see the following fluid data output:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
3. PRIN is used to request that no fluid data will be printed to the .out file of MORE.
PRIN NONE
This results in no fluid data being printed and the FLUI section in the .out file will not be present.
Location
FLUI Section
Description
The PVTG keyword is used to provide an alternative way of entering gas when the reservoir gas can contain stock
tank oil. PVTG consists of a series of sub-tables at various pressures.
Each sub-table consists of the following items
Definitions
1. Pressure
• Units: atm (Field), atm (Metric)
2. Oil-gas ratio for saturated gas at the specified pressure
• Units: stb/mscf (Field), sm3 /sm3 (Metric)
3. Gas formation volume factor
• Units: rb/mscf (Field), rm3 /sm3 (Metric)
4. Gas viscosity
• Units: cP (Field), cP (Metric)
5. Oil-gas ratio for undersaturated gas at the specified pressure
• Units: stb/mscf (Field), sm3 /sm3 (Metric)
6. Gas formation volume factor for undersaturated gas
• Units: rb/mscf (Field), rm3 /sm3 (Metric)
7. Gas viscosity for undersaturated gas
• Units: cP (Field), cP (Metric)
Notes
• The metric units of oil-gas ratio and gas formation volume factor are not the usual MORE ones for these
values
The following options may be used on the PVTG keyword line:
• MORE - Convert the data into MORE GPVT data (back-compatible with MORE 7.0 and previous versions)
• INVLu - Use inverse lookup (i.e. lookup 1/Bg and form Bg)
• NOINv - Do not use inverse lookup (i.e. just lookup Bg)
The default is NOIN - i.e. use the full table, but do not use inverse look-up.
INVL is the most ECLIPSE-compatible option.
Example
PVTG
30 0.00014 0.0523 0.0234
0.00007 0.0522 0.0236
0 0.0521 0.0238 /
90 0.00012 0.0132 0.0252
0 0.0131 0.0253 /
150 0.00015 0.00877 0.0281
0 0.00861 0.0275 /
210 0.00019 0.00554 0.0318
0 0.00555 0.0302 /
270 0.00029 0.00417 0.0355
0 0.00421 0.0330 /
330 0.00049 0.00357 0.0392
0 0.00361 0.0358 /
530 0.00060 0.00356 0.0393
0.00030 0.00358 0.0379
0 0.00360 0.0359 /
/
Location
FLUI Section
Description
The PVTO keyword is used to provide an alternative way of entering oil properties when the reservoir oil can con-
tain stock tank gas. PVTO consists of a series of sub-tables at various pressures, terminated by a table consisting
of a single ‘/’ character.
Each sub-table consists of the following items
Definitions
Notes
• When using the API Tracking option, the set of tables must be entered in increasing order of surface density
(or decreasing order of API gravity).
Example
Location
FLUI Section
Description
The PVTW keyword is used to provide an alternative way of entering water properties to WATR. PVTW consists
of five required arguments which should all be entered in succession on a separate line below the PVTW keyword
itself when used.
Definitions
Notes
Example
1. PVTW is used to provide water properties in a simulation. In this example, water is given a reference
pressure of 14.7 atm, a water formation volume of 1.0 at the reference pressure, a compressibility of 3.0E-
6/psi, a viscosity of 0.70 cP, and a pressure derivative of water viscosity of 0.00000156 cP/psi.
PVTW
14.7 1.0 3.0E-6 0.70 0.000000156
Location
FLUI Section
Description
The PVTB keyword is used to provide salt dependent water properties in BRINE tracking runs. This keyword is
used in place of PVTW.
Definitions
PVTB contains NEPT tables and every table consists of two records of data. Every record must be ended with a
slash ‘/’.
Record 1: two numbers
1. Reference pressure Pref
• Units: psia (Field), atm (Metric)
• Defaults: 14.696 psia (Field), 1 atm (Metric)
2. Reference salt concentration cref
• Units: lb/stb (Field), kg/sm3 (Metric)
• Default: 0.0
Record 2: five columns of data
1. Salt concentration cs
• Units: lb/stb (Field), kg/sm3 (Metric)
2. Water formation volume factor at reference pressure Bw,ref (cs )
• Units: rb/stb (Field), rm3 /sm3 (Metric)
dBw
3. Water compressibility Cw,ref (cs ) = − B1w dP (Pref )
Notes
• The salt concentrations must be ordered from smallest to largest. The water formation volume factor and
the compressibility must decrease or stay level with the salt concentration. The water vicosity and the
normalized viscosity slope must increase or stay level with the salt concentration.
• The water formation volume factor at pressure P and salt concentration cs is calculated by:
Bw,ref (cs )
Bw (cs , P ) =
1 + Cw,ref (cs ) · (P − Pref )
• PVTB tables may be attributed with brine surface densities using the BDEN keyword.
• See the Brine Tracking section of the MORE Technical Reference for more information regarding brine
tracking in Tempest.
Example
PVTB
-- P_ref Csalt_ref
3000.0 0.0 /
-- Csalt Bw Cw mu Cmu
0.0 1.000 3.0E-6 1.00 1.00E-6
7.0 0.9 2.0E-6 1.10 1.01E-6
10.0 0.8 1.9E-6 1.11 1.011E-6 /
6.25 SDEN - Oil and Gas Surface Densities for Black Oil
Location
FLUI Section
Description
The SDEN keyword is used to define oil and gas surface densities for a black oil system. SDEN is an alternative
to the BASI keyword as a way of entering the oil and gas surface densities. SDEN is also an alternative to SGRA
which allows for input of the oil and gas specific gravities at surface conditions. SDEN consists of two required
arguments which should both be entered in succession on a separate line below the SDEN keyword itself when
used.
Definitions
Notes
• It is possible to enter the SDEN keyword more than once, and in doing so, define a different surface density
for each pressure table. In API-tracking runs the SDEN statements (and also the corresponding PVT tables)
must be ordered such that oil surface density values increase.
Examples
1. In field units, SDEN is used to enter an oil surface density of 45 and a gas surface density of 0.070196.
SDEN
45.0 0.070196
This is equivalent to using the BASI keyword to define an oil surface density of 45, an oil molecular weight
of 200, and a gas gravity of 0.92.
BASI
45.0 200.0 0.92
6.25. SDEN - Oil and Gas Surface Densities for Black Oil 207
Tempest MORE Help, Release 8.1
6.26 SGRA - Oil API Gravity and Gas Specific Gravity for Black Oil
Location
FLUI Section
Description
The SGRA keyword is used to define oil API gravity and gas specific gravity at surface conditions for a black oil
system. An alternative to SGRA is the keyword SDEN which allows for direct input of the oil and gas surface
densities. SGRA consists of two required arguments which should both be entered in succession on a separate line
below the SGRA keyword itself when used.
Definitions
Notes
• Oil API gravity relates to the oil specific gravity (with respect to pure water) by
141.5
γAPI = − 131.5
γoil
• It is possible to enter the SGRA keyword more than once, and in doing so, define a different pair of gravities
for each pressure table. In API-tracking runs the SGRA statements (and also the corresponding PVT tables)
must ordered such that API gravity values decrease.
Examples
1. SGRA is used to enter an oil API gravity of 37.0 and a gas specific gravity 0.75.
SGRA
37.0 0.75
Location
FLUI Section
Description
The TEMP keyword is used to specify a temperature for black oil fluid descriptions. The use of TEMP in MORE
is simply a way to assign cells to PVT region numbers. Each temperature value is associated with a PVT table
index.
TEMP consists of one required argument which should be entered on the same line as the TEMP keyword itself.
Definitions
1. Temperature for which following oil and/or gas PVT data applies
• Units: o F (Field), o C (Metric)
• Defaults: 212.0o F (Field), 100.0o C (Metric)
Notes
• When reservoir temperature values are entered in the INIT section, these are compared with the list of
temperatures and used to assign PVT table numbers. Suppose 3 TEMP values of 120, 140, and 160o C were
entered. If the CONS keyword in the INIT section specifies a temperature of 140o C, all the cells would be
assigned to PVT table 2.
• This use of TEMP is completely separate from the use of RTEM to specify actual temperatures in the thermal
and steam options.
• As an alternative to using TEMP, cells may be assigned to PVT regions directly by using the GRID
section array PVTN.
Examples
TEMP 240
Location
FLUI Section
Description
The WPVT keyword is used to define water PVT data in a tabular format. Arguments for WPVT consist of a table
with up to three columns which should start on a separate line below the WPVT keyword itself. Following the
final row of WPVT data in the table, a solitary slash (/) on its own line is required to terminate the data entry for
this keyword.
Definition
Note
Example 1
1. Metric units
WPVT
1.0 1.03 0.311 /
50.0 0.98 0.322 /
100.0 0.97 0.332 /
150.0 0.963 0.340 /
200.0 0.954 0.349 /
250.0 0.941 0.356 /
300.0 0.938 0.367 /
350.0 0.921 0.380 /
400.0 0.911 0.387 /
450.0 0.901 0.390 /
500.0 0.987 0.398 /
/end
Location
FLUI Section
Description
The EQUA keyword is used to define the equation-of-state that should be applied in a compositional simulation.
EQUA consists of one optional argument which should be entered on the same line as the EQUA keyword itself
when used.
Definitions
Notes
Examples
1. EQUA is used with the SRK option to specify the use of the Soave-Redlich-Kwong equation of state in a
compositional simulation.
EQUA SRK
Location
Description
The INTE keyword is used to specify binary interaction coefficients for an equation-of-state simulation. Argu-
ments for INTE consist of two records. The first record consists of one optional argument which should be entered
on the same line as the INTE keyword itself if used. The second record consists of a table with up to four columns.
Of these four columns, the last three are required. This table should be entered on a separate line below the INTE
keyword. Following the final row of INTE data in the table, a solitary slash (/) on its own line is required to
terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Parameter duplication (optional): DUPL or NODU
• DUPL - indicates that interaction parameters specified at a previous temperature are to be duplicated
before any modifications are made (NOT allowed for the first INTE keyword)
• NODU (default) - indicates interaction parameters from the previous temperature should not be dupli-
cated (and will default to zero)
RECORD 2:
The following arguments should be entered in a tabular format.
1. Parameter specification format (optional): ROW or ROWR
• ROW - specifies parameters for all components with a lower component number (i.e. to the left of the
diagonal)
• ROWR - specifies parameters for all components with a higher component number (i.e. to the right of
the diagonal)
2. The name or number of the first component: ni
3. The name or number of the second component: nj
4. The value of the interaction parameter for components i and j
Notes
• When values are not supplied, they default to zero for those binary pairs.
• Please see the EOS Parameters section of the MORE Technical Reference for more information regarding
binary interaction parameters in Tempest.
Examples
INTE
C1 C15 0.050
C1 C20 0.050
C3 C15 0.005
C3 C20 0.005
/
Alternatively, to enter the same table as above using the ROW option, we would input the following:
INTE
ROW C15 0.050 0.005
ROW C20 0.050 0.005
/
And finally, to enter the same table as above using the ROWR option, we would input the following:
INTE
ROWR C1 3*0 2*0.050
ROWR C3 2*0 2*0.005
/
All three examples above give the same results. When values are not supplied, they default to zero for those
binary pairs. For instance, in the above examples, the interaction parameters for the binary pairs C1-C3,
C1-C6, C1-C10 etc. all default to zero.
Location
FLUI Section
Description
The FCLI keyword modifies the Li critical temperature correlation, which is used to distinguish between the oil
and gas phases in equation of state runs in which the phase identity is not otherwise known. It may also be used
to interpolate between oil and gas properties in miscible runs to avoid sharp property transitions when the phase
identity of a single phase hydrocarbon changes.
When determining phase identity, the Li correlation is only required when the cubic equation for the fluid Z-factor
yields only one root. Otherwise the root with the minimum Gibbs energy is taken and that identifies the phase -
the lower Z-factor generally being the liquid root. When only one root is obtained, the Li correlation is used to
estimate the mixture critical temperature as:
P
i Tci Vci zi
Tcrit = P
i Vci zi
where the sum is taken over hydrocarbon components, Tci is the component critical temperature, Vci is the compo-
nent critical volume and zi is the component mole fraction. Then if Tcrit is greater than the reservoir temperature,
Tabs , the system is an oil; if Tcrit is less than Tabs the system is a gas.
The FCLI keyword allows a modification factor to be added to the Li correlation:
P
i Tci Vci zi
Tcrit = FCLI × P
i Vci zi
which has the effect of tuning the point at which a cell is deemed to be oil or gas.
The second usage of the Li correlation is only used when the MIXK keyword is used. In that case we form the
factor:
Tcrit
F =
Tabs
so that if F > 1 the system is an oil, and if F < 1 the system is a gas. When the MIXK option is used oil and gas
properties are interpolated over the region F=0.9 to F=1.1, avoiding a discontinuity at F=1.
FCLI consists of two optional arguments both of which should be entered on the same line as the FCLI keyword
itself when used. The arguments are used for setting the Li modification factor for state identification and MIXK
interpolation. If just one is set, that FCLI value will be used in both cases.
Definitions
Notes
Examples
1. Set Li tuning factor to 1.05 (for both state and property calculations).
FCLI 1.05
2. Set Li tuning factor to 1.12 for state identification and 1.15 for property calculations.
6.31. FCLI - Tune the Li Critical Temperature Correlation used to distinguish between Oil and
215
Gas Phases in Equation of State Runs
Tempest MORE Help, Release 8.1
Location
FLUI Section
Description
The GCON (gas condensate) keyword is used to indicate that a study is a gas condensate one and all single phase
hydrocarbon states should be treated as gas. There are no required arguments for GCON.
Definitions
n/a
Notes
• GCON replaces the old PHAS keyword with the GAS argument.
Examples
GCON
Location
FLUI Section
Description
The GCOR keyword is used to modify the correlation used to obtain specific gravities in an equation-of-state
simulation. The specific gravity correlation is applied to any component with neither a default or supplied value
and any component with a supplied value of zero.
GCOR consists of two optional arguments which should be entered on the same line as the GCOR keyword itself
if used. Default values do exists for these arguments, but the 1* notation must be used in the place of the argument
to indicate that the use of the default value is desired and to retain the correct order for the entry of arguments.
Any remaining arguments which are not entered will take on their default values automatically and the 1* notation
need not be used.
Definitions
Notes
Examples
1. GCOR is used to provide the parameters to modify the correlation equation which is used to obtain specific
gravities for any component with neither a default or supplied value in an equation-of-state simulation.
Location
FLUI Section
Description
The KCOR keyword is used to provide correlation factors for the K-value used in the phase stability test in an
equation-of-state simulation.
KCOR consists of three optional arguments which should be entered on the same line below the KCOR keyword
itself if used. Default values do exist for these arguments, but the 1* notation must be used in the place of the
argument to indicate that the use of the default value is desired and to retain the correct order for the entry of
arguments. Any remaining arguments which are not entered will take on their default values automatically and
the 1* notation need not be used.
Definitions
Notes
Examples
1. KCOR is used to provide the parameters to modify the K-values for any component with neither a default
or supplied value in an equation-of-state simulation.
Location
Description
The OMGA keyword is used to define a parameters for equation of state simulations. OMGA values should be
set for temperatures (or equations of state) for which non-default values are required.
Arguments for OMGA consist of two records. The first record consists of an optional argument that should be
entered on the same line as the OMGA keyword itself if used. The second record consists of a list of parameters,
one for each component present. This list should be entered on a separate line below the OMGA keyword itself.
A slash (/) must be used after the final entry in the list to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Parameter format (optional): CONS, COMB, or MULT
• CONS - indicates the Ω0a constants are supplied
• COMB - indicates the combined values of the Ω0a constant and the temperature function, α, are sup-
plied so that Ωa = Ω0a α(Tr , ω) is given
• MULT (default) - indicates the values supplied are multipliers (λ) for the α parameter, so that Ωa =
λΩ0a α(Tr , ω) where both Ω0a and α(Tr , ω) are described here
RECORD 2:
1. The parameter for component i
• Either:
– The constant (CONS) Ω0a ,
– or the combined (COMB) values of Ω0a and α, or Ωa in other words
– or a multiplier (MULT)
Notes
• For each component, the equation-of-state a parameter used to construct the cubic equation of state is
defined by:
a = Ωa R2 Tc2 /Pc
where,
Ωa = Ω0a α(Tr , ω)
• When the CONS (constant) option is selected, the values of Ω0a should be supplied, while for the COMB
(combined) option, the complete value of Ωa should be entered.
• Equation of State Ω0b parameters may be modified using keyword OMGB
• Please see the EOS Parameters section of the MORE Technical Reference for more information regarding
EOS parameters in Tempest.
Examples
1. OMGA is used to supply multipliers for the a parameters for the components C1 and C2 in an equation-
of-state simulation. All other a parameters for the remaining components (C3, C4, and WATR) will be left
unchanged.
CNAM C1 C2 C3 C4 WATR
TEMP 150
OMGA MULT
1.05 0.93 /
Location
Description
The OMGB keyword is used to define b parameters for equation of state simulations. OMGB values should be set
for temperatures (or equations of state) for which non-default values are required.
Arguments for OMGB consist of two records. The first record consists of an optional argument that should be
entered on the same line as the OMGB keyword itself if used. The second record consists of a list of parameters,
one for each component present. This list should be entered on a separate line below the OMGB keyword itself.
A slash (/) must be used after the final entry in the list to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Parameter format (optional): CONS or MULT
• CONS - indicates the Ω0b constants are supplied
• COMB - indicates the combined values of the Ω0b constant and the temperature function β are supplied
so that Ωb = Ω0b β(Tr , ω) is given
• MULT (default) - indicates the values supplied are multipliers for the b parameter
RECORD 2:
1. The parameter for component i
• Either:
(a) The constant (CONS)(Ω0b )
(b) or the combined (COMB) values of Ω0b and β, or Ωb in other words
(c) or a multiplier (MULT)
Notes
• For each component, the equation of state b parameter used to construct the cubic equation of state is defined
by:
b = Ωb R Tc /Pc
where,
Ωb = Ω0b β(Tr , ω)
• When the CONS (constant) option is selected, the values of Ω0b should be supplied, while for the COMB
(combined) option, the complete value of Ωb should be entered.
• Equation of State Ω0a parameters may be modified using keyword OMGA
• Please see the EOS Parameters section of the MORE Technical Reference for more information regarding
EOS parameters in Tempest.
Examples
1. OMGB is used to supply the Ω0b constants for the Ωb calculation in the b parameter for the components C1,
C2, and C3 in an equation-of-state simulation. Only the first three components will use modified values for
the Ω0b constant. All other b parameters for the remaining components ( C4, C56, C7P1, and C7P2) will be
left unchanged.
Location
FLUI Section
Description
The PRIN keyword is used to define equation of state fluid property printing options. PRIN consists of two
optional arguments. The first optional argument has eight different options, while the second optional argument
has two options. These arguments, if used, should be entered on the same line as the PRIN keyword itself.
Definitions
1. Print option - NONE, BASI, ALL, PROP, OMEG, INTE, ORIG, or FINA
• NONE - none of the fluid data is printed
• BASI (default) - basic fluid data is printed
• ALL - all of the fluid data is printed
• PROP - properties of pure components are printed
• OMEG - omega A & B parameters used in EOS are printed
• INTE - interaction coefficients are printed
• ORIG - original solubility tables are printed
• FINA - final solubility tables are printed
2. Printing of full or partial final solubility table (optional) - FULL or PART (can only be used if FINA is used
in argument #1 above)
• FULL - final solubility tables are printed in full
• PART (default)- final solubility tables are printed in part
Notes
• If PRIN is not specified in a simulation, the default will be to print out the basic fluid data into the MORE
.out file.
• If multiple Equations of State (EoS) are specified, then PRIN will cause output for each EoS.
Example
1. PRIN is used to request that only basic fluid data will be printed to the .out file of MORE, which can be
viewed under the Print tab when results are viewed in Tempest View.
PRIN BASI
This is equivalent to entering PRIN without any argument as BASI is the default option on PRIN for EOS
systems:
PRIN
Looking at the FLUI section in the .out file, we will see the following basic fluid data output for an
equation of state system:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
EOS======================================================================================
2. PRIN is used to request that all fluid data will be printed to the .out file of MORE, which can be viewed
under the Print tab when results are viewed in Tempest View.
PRIN ALL
Looking at the FLUI section in the .out file, we will see the following fluid data output:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
EOS======================================================================================
Component properties
Component C1 C2 C3 C4 C5 C6 C7+
--------- -------- -------- -------- -------- -------- -------- --------
C1 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C3 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C4 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C6 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C7+ 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--------- -------- -------- -------- -------- -------- -------- --------
Component C1 C2 C3 C4 C5 C6 C7+
--------- -------- -------- -------- -------- -------- -------- --------
C1 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C3 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C4 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C6 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C7+ 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--------- -------- -------- -------- -------- -------- -------- --------
Component C1 C2 C3 C4 C5 C6 C7+
--------- -------- -------- -------- -------- -------- -------- --------
C1 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C3 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C4 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C6 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C7+ 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--------- -------- -------- -------- -------- -------- -------- --------
3. PRIN is used to request that no fluid data will be printed to the .out file of MORE.
PRIN NONE
This results in no fluid data being printed and the FLUI section in the .out file will not be present.
4. PRIN is used to request that the properties of pure components be printed to the .out file of MORE.
PRIN PROP
Looking at the FLUI section in the .out file, we will see the following fluid data output:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
EOS======================================================================================
Component properties
5. PRIN is used to request that the omega A & B parameters used in the EOS are printed to the .out file of
MORE.
PRIN OMEG
Looking at the FLUI section in the .out file, we will see the following fluid data output:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
EOS======================================================================================
6. PRIN is used to request that the interaction coefficients are printed to the .out file of MORE.
PRIN INTE
Looking at the FLUI section in the .out file, we will see the following fluid data output:
FLUI======================================================================================
Fluid property data
==========================================================================================
Molecular weights:
EOS======================================================================================
Component C1 C2 C3 C4 C5 C6 C7+
--------- -------- -------- -------- -------- -------- -------- --------
C1 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C3 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C4 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C6 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C7+ 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--------- -------- -------- -------- -------- -------- -------- --------
Component C1 C2 C3 C4 C5 C6 C7+
--------- -------- -------- -------- -------- -------- -------- --------
C1 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C2 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C3 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C4 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C6 0.0 0.0 0.0 0.0 0.0 0.0 0.0
C7+ 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--------- -------- -------- -------- -------- -------- -------- --------
Component C1 C2 C3 C4 C5 C6 C7+
Location
FLUI Section
Description
The PROP keyword is used to define component properties in an equation-of-state simulation. This keyword
is only required if non-library component names are used. (Please see Notes section below for list of library
components.)
Arguments for PROP consist of a table of up to eight columns which should start on a separate line below the
PROP keyword itself. Of the eight columns, the first five are required. The final three columns are optional.
Following the final row of PROP data in the table, a solitary slash (/) on its own line is required to terminate the
data entry for this keyword.
Definitions
The following arguments should be entered in a tabular format with each row of data representing the properties
of one component.
1. Name or number of the component (as listed in CNAM)
2. Molecular weight (Mw )
3. Critical temperature
• Units: o R (Field), o K (Metric)
4. Critical pressure (absolute)
• Units: psia (Field), barsa (Metric)
5. Pitzer acentric factor
6. Critical z-factor (used in Lohrenz-Bray-Clark viscosity correlation) (optional)
7. Specific gravity of the liquid at standard conditions (optional)
• Used for separator liquid density calculations when the ZFAC option is not specified on the SEPA
keyword.
8. Component parachor (optional)
• Default: Estimate from a correlation due to Macleod-Sugden, Reid et al:
Notes
• Library components are: N2, CO2, H2S, WATR, C1, C2, C3, IC4, C4, IC5, C5, C6 through to C16, C18,
C21, and C25.
• At the very least, the molecular weight, critical temperature, critical pressure, and acentric factor must be
supplied for any other components not listed in the library. Default values are not supplied in this case.
• When using multiple Equations of State together with EOSN, the PROP keyword may be specified for each
reservoir EoS region. If PROP is not defined for a given reservoir EoS region (defined by TEMP RESV),
then the properties are taken from the previous reservoir EoS region.
Examples
As a result, all of the library values for C1 except for the critical z-factor (Zcrit) are over-written by the
values provided by PROP.
2. In this example, PROP is used to specify the minimum amount of properties required (i.e. molecular weight,
critical temperature, critical pressure, and acentric factor) for the 6th and 7th components in the list given
by CNAM.
As the critical z-factor (Zcrit) and specific gravity were not provided in this case, they will be automatically
be calculated from internal correlations (please see the ZCOR and GCOR keywords for more information.
3. This example shows how to set up properties for multiple equation of state regions when using EOSN.
Location
FLUI Section
Description
The SOLU keyword is used to provide solubility tables for different components. Arguments for SOLU consist
of two records. The first argument consists of one required argument which should be entered on the same line as
the SOLU keyword itself. The second argument consists of a table with two required columns which should be
entered starting on a separate line below the SOLU keyword. Following the final row of SOLU data in the table,
a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. The soluble component
RECORD 2:
The following arguments should be entered in a tabular format.
1. Pressure (must be in ascending order)
• Units: psia (Field), barsa (Metric)
2. Solubility
• Units: Mscf/STB (for WATR - STB/Mscf) (Field), 103 m3 /m3 (for WATR - m3 /103 m3 ) (Metric)
Notes
• The SOLU keyword is required to turn on solubility modelling, otherwise hydrocarbons are assumed insol-
uble in water and vice-versa.
• When SOLU is used, a K-value flash is performed to calculate the equilibrium ratios for dissolved com-
ponents at reservoir conditions. After accounting for components dissolved in the aqueous phase, an EOS
flash is used to determine the hydrocarbon properties.
• For saturated cells containing both hydrocarbon and water phases, a K-value flash also determines the initial
ratios for dissolved components at reservor conditions. However, for cells that are not saturated, it is possible
to specify the initial gas-water ratio for hydrocarbons which dissolve in the aqueous phase directly using
the array RHAQ (if there is one soluble component) or RHA1, RHA2 etc. (if there is more than one soluble
component) in the same way the initial water-gas ratio for water in the hydrocarbon phase may be set using
the array RVW in the INIT section.
• Reporting oil and gas surface volume flows for wells and completions are always with respect to separator
conditions specified in the SEPA keyword. The separator flash is performed using hydrocarbon molar rates,
including any components dissolved in the aqueous phase which are included in the EOS flash at separator
conditions. The solubility tables are not accounted for in the separator calculations.
• For more information, see the Technical Reference.
Examples
1. SOLU is used to provide solubility tables for CO2 and water in an equation-of-state simulation.
SOLU CO2
150.00 0.0100
500.00 0.0198
1000.00 0.0297
1500.00 0.0388
3000.00 0.0660
/
SOLU WATR
147 0.000243
514 0.000829
1102 0.001560
1470 0.001673
2940 0.001873
4410 0.001990
7350 0.002217
/
The first solubility table specifies solubility of CO2 in the aqueous phase. The second solubility table
specifies solubility of water in the hydrocarbon phase.
Location
FLUI Section
Description
The SURF keyword is used to turn on the use of interpolation between immiscible and miscible relative perme-
ability curves for an equation-of-state simulation.
SURF consists of three optional arguments which should be entered on the same line as the SURF keyword itself
if used. Default values exist for these arguments but the 1* notation must be used in the place of the argument
to indicate that the use of the default value is desired and to retain the correct order for the entry of arguments.
Any remaining optional arguments which are not entered will take on their default values automatically and the
1* notation need not be used.
For more information on surface tension effects, see the Surface Tension Effects section of the MORE Technical
Reference.
Definitions
Notes
6.40. SURF - Reference Surface Tension Data for Equation-of-State Simulations 235
Tempest MORE Help, Release 8.1
Examples
1. SURF is used to set a reference surface tension of 12.0 dynes/cm in an equation-of-state simulation.
SURF 12.0
2. SURF is used to set a K-exponent of 0.20 in an equation-of-state simulation. Both the reference surface
tension and the third and final argument, Pfrac , are not assigned and so they take on their default values.
SURF 1* 0.20
Location
FLUI Section
Description
STDC may be used to reset the standard surface conditions for compositional runs. These are important as pro-
duced surface gas volumes in a compositional run are calculated as ideal gas volumes (Z=1) at standard conditions.
Default standard conditions are:
Field Units Metric Units
Surface temperature 60.0 Deg F 15.0 Deg C
Surface pressure 14.696 Psia 1.01325 Barsa
Definitions
Example
STDC 1* 13.6
Location
FLUI Section (after the EQUA and PROP keywords but before the corresponding parameters (OMGA and OMGB)
and INTE keyword)
Description
The TEMP keyword is used to specify a temperature for use in the calculation of equation-of-state coefficients. If
more than one TEMP keyword is entered, the first TEMP keyword must be used to specify the reservoir temper-
ature. Temperatures must also be supplied for each separator using equation-of-state calculations (EOS option)
and at standard conditions (60o F or 15o C) when the equation-of-state is used to calculate separator liquid densities
(ZFAC option on the SEPA keyword).
TEMP consists of one required argument which should be entered on the same line as the TEMP keyword itself
when used.
When using multiple Equation of State regions, together with EOSN to indicate reservoir regions where each
equation of state will apply, the TEMP keyword is used as a delimiter to indicate properties will be input for a new
equation of state.
Definitions
1. Temperature for which any following Equation of State data (such as OMGA, OMGB and INTE) apply
• Units: o F (Field), o C (Metric)
2. Identifier used for multiple equations of state only. All reservoir equations of state must be specified before
any surface equations of state. Further information is provided in the Technical Reference
• RESV - indicates properties are for a reservoir equation or state.
• SURF - indicates properties are for a surface equation or state
Notes
• The RESV argument is required when using multiple reservoir equations of state with EOSN. The SURF
argument may be omitted for subsequent surface equations of state, but is preferred for clarity when RESV
has been used.
Examples
1. TEMP is used with a single reservoir equation of state (EQUA) to assign a regional temperature of 200o F
for the reservoir, then TEMP is used again to assign a temperature of 60o F to which any following OMGA,
OMGB and INTE data apply.
--* Regional Temperature
TEMP 200
2. TEMP RESV is used with two equation of state regions to assign regional temperatures of 200o F and 250o F
to regions defined using EOSN. TEMP SURF is then used to assign temperatures of 60o F and 70o F for
surface conditions.
TEMP RESV is used as a delimiter for reservoir equations of state (EoS) to indicate that the following
properties apply to that reservoir EoS region.
TEMP SURF is used as a delimiter to indicate that the following properties apply for the surface EoS
specified at that temperature.
--* Equation of state parameters for the reservoir (required for the first EoS
,→region)
PROP ...
--* Equation of state parameters for the reservoir (may be omitted for
,→subsequent EoS regions)
PROP ...
--* Binary interaction parameters for the reservoir (may be omitted for
,→subsequent EoS regions)
INTE ...
Required
Location
FLUId section
Definitions:
• ALL: All single-phase points will be tested for phase transitions at every iteration This may be forced if it is
suspected that stability checks need to be done for all cells
• NEIG: only single-phase points which have two-phase neighbours and single-phase well points will be
tested for phase transitions at every step. In any event all cells will be tested every 10 time steps.
Example
TEST ALL
Location
FLUI Section
Description
The TOLE keyword is used to provide parameters that override the default convergence tolerances. Modification
of these parameters is not recommended unless the user has an advanced knowledge of Tempest MORE.
TOLE consists of 10 optional arguments which, if used, should be entered on a separate line below the TOLE
keyword itself. Default values do exist for these arguments, but the 1* notation must be used in the place of the
argument to indicate that the use of the default value is desired and to retain the correct order for the entry of
arguments. Any remaining arguments which are not entered take on their default values automatically and the 1*
notation need not be used.
Definitions
Examples
1. TOLE is used to reduce the tolerance on the residual norm for flash calculations.
TOLE
0.0002
Location
FLUI Section
Description
The VCOR keyword is used to modify the parameters in the Lohrenz-Bray-Clark (LBC) viscosity correlation
equation.
Arguments for VCOR consist of two records. The first record consists of one optional argument which should
be entered on the same line as the VCOR keyword itself if used. The second record consists of a list of five
factors used in the correlation of the LBC viscosity correlation equation. These optional factors, if used, should
be entered on a separate line below the VCOR keyword itself. Default values do exist for this list of factors, but
the 1* notation must be used in the place of the argument to indicate that the use of the default value is desired
and to retain the correct order for the entry of arguments. Any remaining arguments which are not entered take on
their default values automatically and the 1* notation need not be used.
Definitions
RECORD 1:
1. Format of values provided (optional): CONS or MULT
• CONS - the coefficients in the LBC correlation are supplied
• MULT (default) - indicates the values are multipliers to the coefficients of the LBC correlation
RECORD 2:
1. The first constant or multiplier in the LBC correlation: v0 or m0
• Default: v0 =0.10230, m0 =1.0
2. The second constant or multiplier in the LBC correlation: v1 or m1
• Default: v1 =0.023364, m1 =1.0
3. The third constant or multiplier in the LBC correlation: v2 or m2
• Default: v2 =0.058533, m2 =1.0
4. The fourth constant or multiplier in the LBC correlation: v3 or m3
• Default: v3 =-0.040758, m3 =1.0
5. The fifth constant or multiplier in the LBC correlation: v4 or m4
• Default: v4 =0.0099324, m4 =1.0
Notes
• The supplied values are treated as set (v0 , v1 , v2 , v3 , v4 ) of replacements of the original LBC coefficients if
the CONS option is used, or as set of multipliers (m0 , m1 , m2 , m3 , m4 ) if the default MULT option is used.
• µ0 and ζ are parameters derived from other fluid parameters and thus cannot be modified directly.
Examples
1. VCOR is used to set the first four coefficients of the Lohrenz-Bray-Clark correlation to their original values
while the fifth coefficient is multiplied by 1.005.
VCOR
4* 1.005
Location
FLUI section
Description
The default correlation used in compositional mode is the Lohrenz-Bray-Clark method (JPT, Oct 1964, SPE 915).
It is also possible to select an alternative by Al-Syabi, Danesh, Tohini, Todd and Tehrani (Chem Eng Sci, Vol 56,
2001) which is supported by PVTx. The VICO keyword allows this choice to be made.
Definitions
Example
VICO ADT
Location
FLUI Section
Description
The VCVI keyword is used to provide critical volumes to be used in the viscosity calculations. Arguments for
VCVI comprise a list of critical volumes which should be entered on a separate line below the VCVI keyword
itself.
Definitions
Notes
• If a default or negative value is used the normal critical volume entered with the PROP keyword will be
used.
Examples
1. VCVI is used to provide a list of critical volumes for viscosity calculations in an equation-of-state system.
VCVI
1.504 1.439 1.549 2.375 3.257 4.183 7.774 12.471 29.932 /
6.47. VCVI - Critical volumes for equation of state viscosity correlations 245
Tempest MORE Help, Release 8.1
Location
Description
The VOLU keyword is used to provide volume translation parameters. Arguments for VOLU comprise a list of
translation parameters which, when used, should be entered on a separate line below the VOLU keyword itself.
Definitions
1. List of ratios of volume translation parameter ‘c’ to the equation-of-state ‘b’ parameter
• Default: 0
• Maximum: 10
Notes
• See the EOS Parameters section of the MORE Technical Reference for more information regarding volume
translation parameters in Tempest.
Examples
1. VOLU is used to provide a list of volume translation parameters for an equation-of-state system.
VOLU
-0.1595 -0.1134 -0.08630 -0.03900 -0.0080 0.0655
Location
FLUI Section
Description
The ZCOR keyword is used to modify the correlation used to obtain critical Z-factors in an equation-of-state
simulation. The critical Z-factor correlation is applied to any component with neither a library nor a supplied
critical Z-factor value.
ZCOR consists of two optional arguments which should be entered on the same line as the ZCOR keyword itself
if used. Default values do exist for these arguments, but the 1* notation must be used in the place of the argument
to indicate that the use of the default value is desired and to retain the correct order for the entry of arguments.
Any remaining arguments which are not entered will take on their default values automatically and the 1* notation
need not be used.
Definitions
Notes
Examples
1. ZCOR is used to provide the parameters to modify the correlation equation which is used to obtain critical
Z-factors for any component with neither a default or supplied value in an equation-of-state simulation.
Location
FLUI Section
Description
The ZCVI keyword is used to provide critical Z-factors to be used in the viscosity calculations. Arguments for
ZCVI consist of a list of critical volumes which should be entered on a separate line below the ZCVI keyword
itself.
Definitions
Notes
• If a default or negative value is used the normal Z-factor entered with the PROP keyword will be used.
Examples
1. ZCVI is used to provide a list of critical Z-factors for viscosity calculations in an equation-of-state system.
ZCVI
0.292 0.274 0.284 0.281 0.274 0.263 0.264 0.263
Location
Description
The POLY keyword is used to turn on polymer modelling in Tempest. There are no required arguments for POLY.
Definitions
n/a
Notes
• Please see the Polymer section of the MORE Technical Reference for more information regarding polymer
modelling in Tempest.
Other keywords associated with polymer modelling in Tempest include:
• PPRO - water viscosity multiplier vs. polymer concentration
• PADT - polymer adsorption on rock in tabular form
• PAKW - effect of polymer adsorption on water relative permeability in tabular form
• PREG - array of polymer property region numbers
• CPLY - injection polymer concentration (subkeyword of WELL)
• POLY event - injection polymer concentration
• PADS - options for polymer adsorption on rock in functional form (PABS can be used as an alias for PADS)
• PSHE - polymer shearing effects in functional form
• PMIS - miscellaneous values for polymer adsorption in functional form
Examples
POLY
Location
FLUI Section
Description
The PPRO provides a table of water viscosity variation as a function of water polymer concentration. To use
PPRO, the POLY keyword must first be specified in the INPU or FLUI sections to turn on polymer modelling.
A separate table may be specified for each polymer property region region. These can be set up with keyword
PREG.
Definitions
Arguments for PPRO consist of a table with two columns which should start on a separate line below the PPRO
keyword itself. Following the final row of PPRO data in the table, a solitary slash (/) on its own line is required to
terminate the data entry for this keyword.
The following arguments should be entered in a tabular format.
1. Polymer concentration
• Units: lb/stb (Field), kg/sm3 (Metric)
2. Viscosity multiplier
• The viscosity multiplier should be greater than or equal to 1.
Notes
• Constant value extrapolation will be used for values outside the table. As this is unlikely to match the
physical values, it is best to ensure that PPRO covers the range of polymer concentrations encountered in
the study.
• Please see the Polymer section of the MORE Technical Reference for more information regarding polymer
modelling in Tempest.
Examples
1. PPRO is used to provide a table of water polymer concentration vs. water viscosity values for a polymer
model.
Location
FLUI Section
Description
The PADS keyword is used to control the functional model for polymer adsorption on rock. To use PADS, the
POLY keyword must first be specified in the INPU or FLUI sections to turn on polymer modelling.
PABS may be used as an alias for PADS.
PADS consists of one or more optional arguments. These arguments should be entered on the same line as the
PADS keyword itself.
Definitions
Notes
• If using the tabular option for polymer adsorption, the reversibility option is specified using the PADT
keyword.
• Please see the Polymer section of the MORE Technical Reference for more information regarding polymer
modelling in Tempest.
Examples
1. PADS is used to request that the functional polymer adsorption onto rock is irreversible and that the polymer
is lost to the rock
Location
FLUI Section
Description
PADT is a table which specifies the saturated polymer adsorption concentration on the rock as a function of the
polymer concentration in the water. To use PADT, the POLY keyword must first be specified in the INPU or FLUI
sections to turn on polymer modelling.
A separate table may be specified for each saturation table region.
Definitions
On the first occurrence of the PADT keyword, there are two optional arguments:
1. The rock density.
• Units: lb/ft3 (Field), kg/m3 (Metric)
2. Adsorption option:
• IRRE - irreversible adsorption (the adsorbed polymer concentration may increase but not decrease.)
• IRRV - alias for IRRE
• REVE - reversible adsorption.
By default the polymer adsorption is REVE. In the irreversible case the polymer per unit mass of rock will
not fall even if the water polymer concentration does fall.
For every occurrence of the PADT keyword, a table consisting of two columns should start on a separate line
below the PADT keyword itself. Following the final row of PADT data in the table, a solitary slash (/) on its own
line is required to terminate the data entry for this keyword.
The following arguments should be entered in a tabular format for every table.
1. Polymer concentration specified in mass per unit water surface volume.
• Units: lb/stb (Field), kg/sm3 (Metric)
2. The adsorbed polymer concentration specified in polymer mass per unit mass of rock.
• Units: lb/lb (Field), kg/kg (Metric)
Notes
• The first entry in this table must have zero in both columns.
• Note that the rock density is specified in units of kg/m3 or lbs/ft3 (not lbs/stb).
• Rock mass density: this is rock at reservoir conditions, including the pore space in the density, but not the
mass of anything filling the pore space.
• If the concentration goes above the highest polymer concentration value in the table, the table is extrapolated
at constant slope.
• If PADT is used, do not use PADS to set up the reversible or irreversible polymer adsorption option.
• The use of PADT models only the effect of the adsorption of the polymer and the resulting loss of polymer
to the water. There may also be a water relative permeability reduction effect due to the polymer adsorption.
This may be specified using PAKW.
• The absorbed polymer concentration in terms of polymer mass per unit rock mass is available in Tempest
VIEW as Cadm. This is related to the polymer adsorption per unit reservoir volume, Cads, by the condition:
P orosity
Cadm = Cads ×
Cv × RockDensity
where RockDensity is in standard units, (lbs/ft3 or Kgs/m3 ), and Cv is 5.61458 in field units, 1.0 in metric
units.
Example
Location
FLUI Section
Description
The PAKW keyword is a simple method of specifying the effect of any polymer adsorption on rock upon the water
phase relative permeability. It should be used in conjunction with the PADT keyword.To use PAKW, the POLY
keyword must first be specified in the INPU or FLUI sections to turn on polymer modelling.
A PAKW table may be specified for each saturation table region.
Definitions
For each occurrence of the PAKW keyword, a table consisting of two columns should start on a separate line
below the PAKW keyword itself. Following the final row of PAKW data in the table, a solitary slash (/) on its own
line is required to terminate the data entry for this keyword.
The following arguments should be entered in a tabular format for every table.
1. The adsorbed polymer concentration specified in polymer mass per unit mass of rock.
• Units: lb/lb (Field), kg/kg (Metric)
2. The water relative permeability modification factor (no units)
Notes
1. If the concentration goes above the highest polymer concentration value in the table, the table is extrapolated
at constant value.
2. Note that adsorbed polymer concentration in the first column of PAKW is specified in mass of polymer per
mass of rock - the same units as the second column of PADT.
Example
PAKW
0.0 1.0
0.00001 0.5
Location
FLUI Section
Description
The PSHE (polymer shearing) keyword is used to control polymer shearing effects. PSHE determines the treat-
ment of polymer shearing effects. To use PSHE, the POLY keyword must first be specified in the INPU or FLUI
sections to turn on polymer modelling.
PSHE consists of one optional argument for which there are three options. This argument should be entered on
the same line as the PSHE keyword itself if used.
Definitions
Notes
• NONE may be used as an alias for OFF to turn off polymer shearing effects.
• The polymer shearing effects require a considerable amount of extra calculation in MORE and should be
turned off unless required.
• The STOR keyword may be used to output the PSHE water phase flow multipliers as FSHX, FSHY, and
FSHZ.
• Please see the Polymer section of the MORE Technical Reference for more information regarding polymer
modelling in Tempest.
• Other keywords associated with polymer modelling in Tempest include:
– POLY - enable polymer modelling
– PPRO - water viscosity vs. polymer concentration
– PADS - polymer absorption on rock
– PMIS - polymer viscosity variation
– PREG - array of polymer property region numbers
– CPLY - injection polymer concentration (subkeyword of WELL)
– POLY event - injection polymer concentration
Examples
1. PSHE is used to request that the polymer shearing effects are turned on.
PSHE ON
Location
FLUI Section
Description
The PMIS (polymer miscellaneous) keyword is used to provide parameters for the polymer modelling correla-
tions. To use PMIS, the POLY keyword must first be specified in the INPU or FLUI sections to turn on polymer
modelling.
PMIS consists of six required arguments which should all be entered on the same line as the PMIS keyword itself
when used.
Definitions
Notes
• PMIS may be specified more than once. If so, the sets of polymer parameters are associated with the cells
in the grid according to values of the PREG array in the GRID section.
• If there is no PREG array, all cells will use values in the first PMIS keyword.
• The first four arguments are only relevant if using the PADS keyword to select the Hirasaki and Pope
functional model. They are not required when using PADT and PAKW.
• The fifth and sixth argument are relevant for the viscosity shearing model which may be turned on using the
PSHE keyword.
• Please see the Polymer section of the MORE Technical Reference for more information regarding polymer
modelling in Tempest.
• Other keywords associated with polymer modelling in Tempest include:
– POLY - enable polymer modelling
– PPRO - water viscosity vs. polymer concentration
– PADS - polymer adsorption on rock
Examples
Location
Description
The THER (thermal) keyword is used to turn on thermal modelling in Tempest. There are no required arguments
for THER.
Notes
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
• Other keywords associated with thermal modelling in Tempest include:
– GVVT - gas viscosity variation with temperature
– OVVT - oil viscosity variation with temperature
– WVVT - water viscosity variation with temperature
– UOIL - oil specific heat coefficients
– UGAS - gas specific heat coefficients
– UWAT - water specific heat coefficients
– UROC - rock specific heat coefficients
– THCO - oil heat conductivity coefficients
– THCG - gas heat conductivity coefficients
– THCW - water heat conductivity coefficients
– THCR - rock heat conductivity coefficients
– THXO - oil thermal expansion coefficients
– THXW - water thermal expansion coefficients
– THXR - rock thermal expansion coefficients
– HLOS - heat loss model
– RTEM - array of initial temperatures for thermal and steam options in a system under non-equilibrium
initialisation
– TREG - array of thermal property region numbers
– TEMP - injection temperature (subkeyword of WELL)
– TEMP event - injection temperature event
Examples
THER
Location
FLUI Section
Description
The GVVT keyword is used to provide a table of gas viscosity multiplication factors as a function of reservoir
temperature. To use GVVT, the THER keyword must first be specified in the INPU or FLUI sections to turn on
thermal modelling.
Arguments for GVVT consist of a table with two required columns which should start on a separate line below
the GVVT keyword itself. Following the final row of GVVT data in the table, a solitary slash (/) on its own line is
required to terminate the data entry for this keyword.
Definitions
Notes
• Constant value extrapolation is used for temperatures outside the range of the table. As this is unlikely to
match the physical values, it is best to ensure that GVVT covers the range of temperatures encountered in
the study.
• If more than one GVVT table is entered, it may be associated with grid cells using the TREG array in the
GRID section.
• See the Steam and Thermal Options section of the MORE Technical Reference for more information re-
garding thermal modelling in Tempest.
• Other keywords associated with thermal modelling in Tempest include:
– THER - enable thermal modelling
– OVVT - oil viscosity variation with temperature
– WVVT - water viscosity variation with temperature
– UOIL - oil specific heat coefficients
– UGAS - gas specific heat coefficients
– UWAT - water specific heat coefficients
– UROC - rock specific heat coefficients
– THCO - oil heat conductivity coefficients
– THCG - gas heat conductivity coefficients
– THCW - water heat conductivity coefficients
– THCR - rock heat conductivity coefficients
– THXO - oil thermal expansion coefficients
– THXW - water thermal expansion coefficients
Examples
1. GVVT is used to provide a table of gas viscosity multiplication factors as a function of temperature for a
thermal model.
GVVT
100.0 1.0
150.0 0.2
200.0 0.034
250.0 0.01
/
Location
FLUI Section
Description
The HLOS keyword is used to turn on the Vinsome and Westerveld boundary heat loss model in a simulation. To
use HLOS, the THER keyword must first be specified in the INPU or FLUI sections to turn on thermal modelling.
HLOS consists of one required argument for which there are two options. This argument should be entered on the
same line as the HLOS keyword itself when used.
Definitions
Notes
• The heat loss model attaches a Vinsome and Westerveld model of heat loss to the underlying and overlying
rock to the top and bottom of the reservoir. The model is connected to the top active cell and the bottom
active cell in each column of cells.
• The Vinsome and Westerveld model has a history parameter in the total heat loss from the reservoir to the
aquifer. As a Vinsome and Westerveld model is attached to each of the boundary cells, the heat loss must
be stored over restarts, and is written to the MORE output files as part of the RESTART record. This may
be displayed using Tempest as the mnemonic WVFX.
• See the Steam and Thermal Options section of the MORE Technical Reference for more information re-
garding the Vinsome and Westerveld heat loss model in Tempest.
• Other keywords associated with thermal modelling in Tempest include:
– THER - enable thermal modelling
– GVVT - gas viscosity variation with temperature
– OVVT - oil viscosity variation with temperature
– WVVT - water viscosity variation with temperature
– UOIL - oil specific heat coefficients
– UGAS - gas specific heat coefficients
– UWAT - water specific heat coefficients
– UROC - rock specific heat coefficients
– THCO - oil heat conductivity coefficients
– THCG - gas heat conductivity coefficients
– THCW - water heat conductivity coefficients
– THCR - rock heat conductivity coefficients
– THXO - oil thermal expansion coefficients
– THXW - water thermal expansion coefficients
Examples
1. HLOS is used with the ON option to turn on the Vinsome and Westerveld boundary heat loss model in a
thermal simulation.
HLOS ON
Location
FLUI Section
Description
The OVVT keyword is used to provide a table of oil viscosity multiplication factors as a function of reservoir
temperature. To use OVVT, the THER keyword must first be specified in the INPU or FLUI sections to turn on
thermal modelling.
Arguments for OVVT consist of a table with two required columns which should start on a separate line below
the OVVT keyword itself. Following the final row of OVVT data in the table, a solitary slash (/) on its own line is
required to terminate the data entry for this keyword.
Definitions
Notes
• Constant value extrapolation is used for temperatures outside the range of the table. As this is unlikely to
match the physical values, it is best to ensure that OVVT covers the range of temperatures encountered in
the study.
• If more than one OVVT table is entered, it may be associated with grid cells using the TREG array in the
GRID section.
• Please see the Thermal section of the MORE Technical Reference for more information regarding thermal
modelling in Tempest.
• Other keywords associated with thermal modelling in Tempest include:
– THER - enable thermal modelling
– GVVT - gas viscosity variation with temperature
– WVVT - water viscosity variation with temperature
– UOIL - oil specific heat coefficients
– UGAS - gas specific heat coefficients
– UWAT - water specific heat coefficients
– UROC - rock specific heat coefficients
– THCO - oil heat conductivity coefficients
– THCG - gas heat conductivity coefficients
– THCW - water heat conductivity coefficients
– THCR - rock heat conductivity coefficients
– THXO - oil thermal expansion coefficients
– THXW - water thermal expansion coefficients
Examples
1. OVVT is used to provide a table of oil viscosity multiplication factors as a function of temperature for a
thermal model.
OVVT
100.0 1.0
150.0 0.2
200.0 0.034
250.0 0.01
/
Location
FLUI Section
Description
The THCG keyword is used to provide gas heat conductivity coefficients. To use THCG, the THER keyword must
first be specified in the INPU or FLUI sections to turn on thermal modelling.
THCG consists of three required arguments which should be entered on the same line as the THCG keyword itself
when used.
Definitions
Notes
λg = (Ag + Bg · T ) · (1 + Cg · (P − Pref ))
where T is in o F or o C, and Pref is the reference pressure specified with REFE in the GRID section (defaulted
to 1 atm).
• Other heat conductivity coefficients that can be set include: oil heat conductivity coefficients (THCO), water
heat conductivity coefficients (THCW) and rock heat conductivity coefficients (THCR).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
1. THCG is used to provide gas heat conductivity coefficients for a simulation to set the gas heat conductivity
to 25 kJ/(m×day×o C).
THCG 25 0 0 /
Location
FLUI Section
Description
The THCO keyword is used to provide oil heat conductivity coefficients. To use THCO, the THER keyword must
first be specified in the INPU or FLUI sections to turn on thermal modelling.
THCO consists of three required arguments which should be entered on the same line as the THCO keyword itself
when used.
Definitions
Notes
λo = (Ao + Bo · T ) · (1 + Co · (P − Pref ))
where T is in o F or o C, and Pref is the reference pressure specified with REFE in the GRID section (defaulted
to 1 atm).
• Other heat conductivity coefficients that can be set include: gas heat conductivity coefficients (THCG),
water heat conductivity coefficients (THCW), and rock heat conductivity coefficients (THCR).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
1. THCO is used to provide oil heat conductivity coefficients for a simulation to set the oil heat conductivity
to 25 kJ/(m×day×o C).
THCO 25 0 0 /
Location
FLUI Section
Description
The THCR keyword is used to provide rock heat conductivity coefficients. To use THCR, the THER keyword
must first be specified in the INPU or FLUI sections to turn on thermal modelling.
THCR consists of three required arguments which should be entered on the same line as the THCR keyword itself.
Definitions
Notes
λr = (Ar + Br · T ) · (1 + Cr · (P − Pref ))
where T is in o F or o C, and Pref is the reference pressure specified with REFE in the GRID section (defaulted
to 1 atm).
• Other heat conductivity coefficients that can be set include gas heat conductivity coefficients (THCG), oil
heat conductivity coefficients (THCO) and water heat conductivity coefficients (THCW).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
1. THCR is used to provide rock heat conductivity coefficients for a simulation to set the rock heat conductivity
to 25 kJ/(m×day×o C).
THCR 25 0 0 /
Location
FLUI Section
Description
The THCW keyword is used to provide water heat conductivity coefficients. To use THCW, the THER keyword
must first be specified in the INPU or FLUI sections to turn on thermal modelling.
THCW consists of three required arguments which should be entered on the same line as the THCW keyword
itself.
Definitions
Notes
λw = (Aw + Bw · T ) · (1 + Cw · (P − Pref ))
where T is in o F or o C, and Pref is the reference pressure specified with REFE in the GRID section (defaulted
to 1 atm).
• Other heat conductivity coefficients that can be set include: gas heat conductivity coefficients (THCG), oil
heat conductivity coefficients (THCO), and rock heat conductivity coefficients (THCR).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
1. THCW is used to provide water heat conductivity coefficients for a simulation to set the water heat conduc-
tivity to 25 kJ/(m×day×o C).
THCW 25 0 0 /
Location
FLUI Section
Description
The THXO keyword is used to provide oil thermal expansion coefficients. To use THXO, the THER keyword
must first be specified in the INPU or FLUI sections to turn on thermal modelling.
THXO consists of two required arguments which should be entered on the same line as the THXO keyword itself.
Definitions
Notes
Examples
1. THXO is used to provide oil thermal expansion coefficients for a simulation to set Axo and Bxo to 3.8E-4
o -1
F and 0 respectively.
THXO 3.8E-4 0 /
Location
FLUI Section
Description
The THXR keyword is used to provide rock thermal expansion coefficients. To use THXR, the THER keyword
must first be specified in the INPU or FLUI sections to turn on thermal modelling.
THXR consists of two required arguments which should be entered on the same line as the THXR keyword itself.
Definitions
Notes
• As the temperature increases, the rock volume increases and the pore volume decreases.
• The cell pore volume as a function of temperature is:
Examples
1. THXR is used to provide rock thermal expansion coefficients for a simulation to set Axr and Bxr to 4.98E-5
o -1
C and 0 respectively.
THXR 4.98E-5 0 /
Location
FLUI Section
Description
The THXW keyword is used to provide water thermal expansion coefficients. To use THXW, the THER keyword
must first be specified in the INPU or FLUI sections to turn on thermal modelling.
THXW consists of two required arguments which should be entered on the same line as the THXW keyword itself.
Definitions
Notes
Examples
1. THXW is used to provide water thermal expansion coefficients for a simulation to set Axw and Bxw to 1.67
o -1
F and 9.26E-7 o F -2 respectively.
Location
FLUI Section
Description
The UGAS keyword is used to provide gas specific heat coefficients. To use UWAT, the THER keyword must first
be specified in the INPU or FLUI sections to turn on thermal modelling.
UGAS consists of two required arguments which should be entered on the same line as the UGAS keyword itself
when used.
Definitions
Notes
• Specific heat coefficients for gas are in the form of Cg = Ag + Bg ×T, where T is in o F or o C.
• Other specific heat coefficients which can be set include: oil specific heat coefficients (UOIL), water specific
heat coefficients (UWAT), and rock specific heat coefficients (UROC).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
1. UGAS is used to provide gas specific heat coefficients for a simulation to set oil specific heat to 0.5 BTU/(lb
o
F).
UGAS 0.5 0 /
Location
FLUI Section
Description
The UOIL keyword is used to provide oil specific heat coefficients. To use UOIL, the THER keyword must first
be specified in the INPU or FLUI sections to turn on thermal modelling.
UOIL consists of two required arguments which should be entered on the same line as the UOIL keyword itself.
Definitions
Notes
• Specific heat coefficients for oil are in the form of Co = Ao + Bo ×T, where T is in o F or o C
• Other specific heat coefficients which can be set include: gas specific heat coefficients (UGAS), water
specific heat coefficients (UWAT), and rock specific heat coefficients (UROC).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
1. UOIL is used to provide oil specific heat coefficients for a simulation to set oil specific heat to 0.5 BTU/(lb
o
F).
UOIL 0.5 0 /
Location
FLUI Section
Description
The UROC keyword is used to provide rock specific heat coefficients. To use UROC, the THER keyword must
first be specified in the INPU or FLUI sections to turn on thermal modelling.
UROC consists of four required arguments which should be entered on the same line as the UROC keyword itself.
Definitions
Notes
• Specific heat coefficients for rock are in the form of Cr = Ar + Br ×T, where T is in o F or o C
• Other specific heat coefficients which can be set include: gas specific heat coefficients (UGAS), oil specific
heat coefficients (UOIL), and water specific heat coefficients (UWAT).
• See the Thermal section of the MORE Technical Reference for more information regarding thermal mod-
elling in Tempest.
Examples
Location
FLUI Section
Description
The UWAT keyword is used to provide water specific heat coefficients. To use UWAT, the THER keyword must
first be specified in the INPU or FLUI sections to turn on thermal modelling.
UWAT consists of two required arguments which should be entered on the same line as the UWAT keyword itself.
Definitions
Notes
Examples
1. UWAT is used to provide water specific heat coefficients for a simulation to set oil specific heat to 1.5
BTU/(lb o F).
UWAT 1.5 0 /
Location
FLUI Section
Description
The WVVT keyword is used to provide a table of water viscosity multiplication factors as a function of reservoir
temperature. To use WVVT, the THER keyword must first be specified in the INPU or FLUI sections to turn on
thermal modelling.
Arguments for WVVT consist of a table with two required columns which should start on a separate line below
the WVVT keyword itself. Following the final row of WVVT data in the table, a solitary slash (/) on its own line
is required to terminate the data entry for this keyword.
Definitions
Notes
• Constant value extrapolation is used for temperatures outside the range of the table.
• If more than one WVVT table is entered, it may be associated with grid cells using the TREG array in the
GRID section.
• Please see the Thermal section of the MORE Technical Reference for more information regarding thermal
modelling in Tempest.
• Other keywords associated with thermal modelling in Tempest include:
– THER - enable thermal modelling
– GVVT - gas viscosity variation with temperature
– OVVT - oil viscosity variation with temperature
– UOIL - oil specific heat coefficients
– UGAS - gas specific heat coefficients
– UWAT - water specific heat coefficients
– UROC - rock specific heat coefficients
– THCO - oil heat conductivity coefficients
– THCG - gas heat conductivity coefficients
– THCW - water heat conductivity coefficients
– THCR - rock heat conductivity coefficients
– THXO - oil thermal expansion coefficients
– THXW - water thermal expansion coefficients
– THXR - rock thermal expansion coefficients
Examples
1. WVVT is used to provide a table of water viscosity multiplication factors as a function of temperature for a
thermal model.
WVVT
20.0 1.0
50.0 0.5
100.0 0.32
250.0 0.21
/
Location
FLUI Section
Description
The STEA (steam) keyword is used to turn on steam modelling in Tempest. It has the exact same effect as
including STEAM as a component in the CNAM keyword. There are no required arguments for STEA.
Definitions
n/a
Notes
• Please see the Steam/Thermal section of the MORE Technical Reference for more information regarding
steam modelling in Tempest.
• Other keywords associated with steam modelling in Tempest include:
– UPSI - upstream steam injection mobilities
– STEA - steam specification (subkeyword of WELL)
– STEAM event - steam injection properties
– SIT event - steam injection target
– SVIT event - steam voidage injection target
Examples
STEA
Location
FLUI Section
Description
The SOLV keyword is used to turn on the Todd-Longstaff solvent option and set the specific gravity or molecular
weight of a solvent. SOLV consists of one required argument and two optional arguments which should be entered
in succession on the same line as the SOLV keyword itself when used.
Note: Only the Todd-Longstaff solvent option, in which the solvent is treated as a separate phase, is now
supported. The multi-gas solvent option, in which the solvent was a second gas component which could dissolve
in the oil, has been withdrawn.
Definitions
Notes
• Please see the Solvent section of the MORE Technical Reference for more information regarding the treat-
ment of solvents in Tempest.
• Other keywords associated with solvent modelling in Tempest include:
– MISC - use miscible relative permeabilities with solvent
– TODD - use Todd-Longstaff viscosity mixing rule
– SPVT - define solvent PVT data
– MFVP - miscibility factor vs. pressure
– MFVS - miscibility vs. solvent fraction
– FFVS - solvent and gas fraction flows vs. solvent fraction
– MROW - miscible limit residual oil vs. water saturation
– MCSW - miscible critical solvent saturation vs. water saturation
– SSF - relative permeabilities for solvent phase as a function of solvent saturation
– SOLV - define injected solvent concentration
Examples
1. SOLV is used to set a solvent gravity of 0.787 with respect to air density.
SOLV 0.787
SOLV 65.2
3. SOLV is used to set a solvent molecular weight of 38.03 and the TL option is also used to request the
four-phase Todd-Longstaff option.
SOLV 38.03 TL
Location
FLUI Section
Description
The MFVP keyword is used to provide a miscibility factor vs. pressure table for a solvent simulation. The use
of MFVP requires that the four-phase Todd-Longstaff solvent option must be turned on with the SOLV or CNAM
keywords.
Arguments for MFVP consist of a table with two required columns which should start on a separate line below
the MFVP keyword itself. Following the final row of MFVP data in the table, a solitary slash (/) on its own line is
required to terminate the data entry for this keyword.
Definitions
Notes
• MFVP is a pressure table, so one is required for each pressure table region.
• Pressure values must increase with each entry in the table.
• Please see the Solvent section of the MORE Technical Reference for more information regarding the treat-
ment of solvents in Tempest.
• Other keywords associated with solvent modelling in Tempest include:
– SOLV - set surface density of solvent
– MISC - use miscible relative permeabilities with solvent
– TODD - use Todd-Longstaff viscosity mixing rule
– OSPVT - define oil-solvent PVT data
– SPVT - define solvent PVT data
– MFVS - miscibility vs. solvent fraction
– FFVS - solvent and gas fraction flows vs. solvent fraction
– MROW - miscible limit residual oil vs. water saturation
– MCSW - miscible critical solvent saturation vs. water saturation
– SSF - relative permeabilities for solvent phase as a function of solvent saturation
– SOLV_WELL - define injected solvent concentration
– TLMS - define minimum miscibility saturation factor
Examples
1. MFVP is used to specify a miscibility factor vs. pressure table for a solvent simulation.
MFVP P Fm
500 0.01
1000 0.05
2000 0.13
3000 0.43
4000 0.82
4300 1.0
10000 1.0
/
From the MFVP table above, full miscibility is developed at 4300 psi when the Fm value first equals 1.0.
Location
FLUI Section
Note: the MISC keyword is no longer required: it was only needed for the now-withdrawn multi-gas solvent
option. Users should now use the SURF keyword to enter surface tension data for equation-of-state simulations.
Description
The MISC keyword is used with the SOLV option to turn on the use of interpolation between immiscible and
miscible relative permeability curves for a solvent system. The use of MISC requires that the multi-gas solvent
option be turned on with the SOLV or CNAM keywords.
MISC consists of two optional arguments which should be entered on the same line as the MISC keyword itself if
used.
Definitions
Examples
1. MISC is used to set a reference surface tension of 12.0 dynes/cm in an equation-of-state simulation.
MISC 12.0
2. MISC is used to set a default reference surface tension of 10 dynes/cm and K-exponent of 0.20 in an
equation-of-state simulation.
MISC 1* 0.20
Location
FLUI Section
Note: the OSPVT oil-solvent table is no longer required: it was only needed for the now-withdrawn multi-gas
solvent option. Users should now use the Todd-Longstaff solvent model and enter solvent PVT data using the
SPTV keyword.
Description
The OSPVT keyword is used with the SOLV option to define oil-solvent PVT data for a solvent simulation. OS-
PVT is analogous to OPVT and is used when the SOLV option is employed. OPVT describes the PVT properties
of the oil in the presence of reservoir gas, while OSPVT describes the PVT properties of oil in the presence of
solvent.
Arguments for OSPVT consist of a table with up to seven columns which should start on a separate line below
the OSPVT keyword itself. Of the seven columns the first four columns are required, with the last three columns
being optional. Following the final row of OSPVT data in the table, a solitary slash (/) on its own line is required
to terminate the data entry for this keyword.
Definitions
Notes
Examples
Location
FLUI Section
Description
The SPVT keyword is used to define solvent PVT data for a solvent simulation. SPVT is analogous to GPVT and
is used when the SOLV option is employed. GPVT describes the PVT properties of the reservoir gas, whilst SPVT
describes the PVT properties of the solvent gas.
Arguments for SPVT consist of a table with three required columns which should start on a separate line below
the SPVT keyword itself. Following the final row of SPVT data in the table, a solitary slash (/) on its own line is
required to terminate the data entry for this keyword.
Definitions
Notes
• Please see the Solvent section of the MORE Technical Reference for more information regarding the treat-
ment of solvents in Tempest.
• Other keywords associated with solvent modelling in Tempest include:
– SOLV - set surface density of solvent
– MISC - use miscible relative permeabilities with solvent
– TODD - use Todd-Longstaff viscosity mixing rule
– OSPVT - define oil-solvent PVT data
– MFVP - miscibility factor vs. pressure
– MFVS - miscibility vs. solvent fraction
– FFVS - solvent and gas fraction flows vs. solvent fraction
– MROW - miscible limit residual oil vs. water saturation
– MCSW - miscible critical solvent saturation vs. water saturation
– SSF - relative permeabilities for solvent phase as a function of solvent saturation
– SOLV_WELL - define injected solvent concentration
– TLMS - define minimum miscibility saturation factor
Examples
Location
FLUI Section
Description
The TLMS keyword is used to set the minimum miscibility saturation factor in a solvent simulation. The use of
TLMS requires that the four-phase Todd-Longstaff solvent option be turned on with the SOLV or CNAM keyword.
TLMS consists of one required argument which should be entered on the same line as the TLMS keyword itself.
Definitions
Notes
Example
1. TLMS keyword is used to change the minimum miscibility saturation factor from default of 0.01 to 0.02.
TLMS 0.02
Location
FLUI Section
Description
The TODD keyword is used to specify that the Todd-Longstaff viscosity mixing rule should be used. As a function
of the omega parameter, the oil and gas viscosities are a mixture of the separate phase viscosities and a combined
oil/gas mixture viscosity. The use of TODD requires that the four-phase Todd-Longstaff solvent option be turned
on with the SOLV or CNAM keywords.
TODD consists of one required argument which should be entered on the same line as the TODD keyword itself.
Definitions
1. Omega
• Default: 2/3
Notes
• See the Solvent section of the MORE Technical Reference for more information regarding the Todd-
Longstaff model in Tempest.
• Other keywords associated with solvent modelling in Tempest include:
– SOLV - set surface density of solvent
– MISC - use miscible relative permeabilities with solvent
– OSPVT - define oil-solvent PVT data
– SPVT - define solvent PVT data
– MFVP - miscibility factor vs. pressure
– MFVS - miscibility vs. solvent fraction
– FFVS - solvent and gas fraction flows vs. solvent fraction
– MROW - miscible limit residual oil vs. water saturation
– MCSW - miscible critical solvent saturation vs. water saturation
– SSF - relative permeabilities for solvent phase as a function of solvent saturation
– SOLV_WELL - define injected solvent concentration
– TLMS - define minimum miscibility saturation factor
Example
1. In this example, we have a simple one dimensional displacement demonstrating a miscible flood. The
TODD keyword is used to specify that the simulation should use the Todd-Longstaff viscosity mixing rule
with an omega of 1.0, indicating the use of fully mixed viscosities and densities.
TODD 1.0
The resulting solvent phase profile shows a typical miscible profile, with no solvent ahead of the front and
no oil behind it, as shown below where the solvent and oil phase saturations are displayed after 10 years:
At the end of the run, recovery is 100% for both oil and reservoir gas. The gas-oil ratio shows an extremely
sharp rise at breakthrough:
2. In this example, we once again have a simple one dimensional displacement demonstrating a miscible
flood. However, in this case, the TODD keyword is used to specify that the simulation should use the
Todd-Longstaff viscosity mixing rule with an omega of 0.5, indicating only partial mixing of the miscible
components.
TODD 0.5
As a result, the solvent saturation still goes to 1 and the oil saturation is still 0 behind the front, but there is a
non-zero solvent saturation ahead of the front now. This can be seen below where the solvent and oil phase
saturations are displayed after 10 years:
At the end of the run, the recovery is still 100% but the gas breakthrough is less sharp:
Location
FLUI Section
Description
The CBM (coal bed methane) keyword is used to turn on coal bed methane modelling in Tempest. CBM consists
of one optional argument which should be entered on the same line as the CBM keyword itself if used.
Definitions
Notes
• See Coal Bed Methane Modelling for more information regarding coal bed methane modelling in Tempest.
• Other keywords associated with coal bed methane modelling in Tempest include:
– LANG - global values for coal bed methane modelling
– CDEN - density of coal
– FASH - array of ash fractions
– CLAN - array of Langmuir constants
– PLAN - array of Langmuir pressures
– TLAN - array of Langmuir times
– PDSI - array of initial desorption pressures
– GCRI - array of initial gas content of coal
• For an equation of state coal bed methane model, the following keywords become relevant:
– CCOA - components adsorbed by coal
– CLNn - array of Langmuir constants for absorbed component n
– PLNn - array of Langmuir pressures for absorbed component n
– TLNn - array of Langmuir times for absorbed component n
– PDSn - array of initial desorption pressure for absorbed component n
• For a coal bed methane model that uses the Palmer Mansoori option, the following keywords become
relevant:
– EROC - array of Young’s modulus values
– PROC - array of Poisson’s ratios
– FROC - array of mixing fractions
– FSHR - array of shrinkage factors
– CGRA - array of grain compressibilities
– ELOB - array of Palmer Mansoori EL/B values
Examples
1. CBM is used to request coal bed methane modelling in Tempest. See CoalBedMethane.dat for complete
example:
CBM
Location
FLUI Section
Description
The CCOA keyword is used to define the components adsorbed by coal in compositional coal bed methane mod-
elling. When the CBM option is being used in compositional mode, the CCOA keyword specifies which hydrocar-
bons are allowed to adsorb in the coal. This defines the adsorbed component indices for the component Langmuir
constants such as TLN1 , TLN2 , etc.
Arguments for CCOA consist of a list of components that are allowed to be adsorbed in the coal. This list should
be entered on the same line as the CCOA keyword itself when used.
Definitions
Notes
• See Coal Bed Methane Modelling for more information regarding coal bed methane modelling in Tempest.
• Other keywords associated with coal bed methane modelling in Tempest include:
– CBM - enable coal bed methane modelling
– LANG - global values for coal bed methane modelling
– CDEN - density of coal
– FASH - array of ash fractions
– CLAN - array of Langmuir constants
– PLAN - array of Langmuir pressures
– TLAN - array of Langmuir times
– PDSI - array of initial desorption pressures
– GCRI - array of initial gas content of coal
• For an equation of state coal bed methane model, the following keywords become relevant:
– CLNn - array of Langmuir constants for absorbed component n
– PLNn - array of Langmuir pressures for absorbed component n
– TLNn - array of Langmuir times for absorbed component n
– PDSn - array of initial desorption pressure for absorbed component n
• For a coal bed methane model that uses the Palmer Mansoori option, the following keywords become
relevant:
– EROC - array of Young’s modulus values
– PROC - array of Poisson’s ratios
– FROC - array of mixing fractions
– FSHR - array of shrinkage factors
Examples
1. CCOA is used to provide a list of components adsorbed by coal in compositional coal bed methane mod-
elling. In this example, we allow methane and carbon dioxide to be adsorbed by the coal.
CCOA C1 CO2
Thus, the Langmuir constants for methane will be CLN1, PLN1, and TLN1. For CO2, these will be CLN2,
PLN2, and TLN2.
Location
FLUI Section
Description
The CDEN keyword is used to specify coal density in a coal bed methane model. As the Langmuir volume is
specified in terms of mass, the density of the coal needs to be specified. This is entered using the CDEN keyword.
To use CDEN, the CBM keyword must first be specified in the INPU or FLUI sections to turn on coal bed methane
modelling.
Arguments for CDEN consist of one required argument which should be entered on the same line as the CDEN
keyword itself when used.
Definitions
1. Coal density
• Units: tons/acre-ft (Field), kg/m3 (Metric)
Notes
• The default coal density is obtained from a coal specific gravity of 1.3.
• 1 ton/acre-ft is 0.0459136 lbs/ft3 .
• See Coal Bed Methane Modelling for more information regarding coal bed methane modelling in Tempest.
• Other keywords associated with coal bed methane modelling in Tempest include:
– CBM - enable coal bed methane modelling
– LANG - global values for coal bed methane modelling
– FASH - array of ash fractions
– CLAN - array of Langmuir constants
– PLAN - array of Langmuir pressures
– TLAN - array of Langmuir times
– PDSI - array of initial desorption pressures
– GCRI - array of initial gas content of coal
• For an equation of state coal bed methane model, the following keywords become relevant:
– CCOA - components adsorbed by coal in compositional coal bed methane modelling
– CLNn - array of Langmuir constants for absorbed component n
– PLNn - array of Langmuir pressures for absorbed component n
– TLNn - array of Langmuir times for absorbed component n
– PDSn - array of initial desorption pressure for absorbed component n
• For a coal bed methane model that uses the Palmer Mansoori option, the following keywords become
relevant:
– EROC - array of Young’s modulus values
– PROC - array of Poisson’s ratios
Examples
1. CDEN is used to specify a coal density of 1742 tons/acre-ft for a coal bed methane model.
CDEN 1742
Location
FLUI Section
Description
The LANG keyword is used to set up global values of the Langmuir constants for coal bed methane modelling. To
use LANG, the CBM keyword must first be specified in the INPU or FLUI sections to turn on coal bed methane
modelling. Values which vary across the field may be set up using the CLAN, PLAN, and TLAN grid section
array keywords. For compositional coal bed methane models, keywords like CLN1, CLN2 etc. are used instead of
CLAN; PLN1, PLN2 etc. are used instead of PLAN; and TLN1, TLN2 etc. are used instead of TLAN.
Arguments for LANG consist of three required arguments which should all be entered in succession on the same
line as the LANG keyword itself when used.
Definitions
1. Langmuir constant: CL
• The Langmuir constant controls the volume of gas per mass of rock.
• Units: scf/ton (Field), sm3 /tonne (Metric)
• Default: 0
2. Langmuir pressure: PL
• The Langmuir pressure determines the amount of absorbed coal gas as a function of desorption pres-
sure.
• Units: psia (Field), barsa (Metric)
• Default: 1 atm
3. Langmuir time: TL
• The Langmuir time sets the time constant for coal gas desorption or absorption
• Units: days
• Default: 10 days
Notes
• The units employed in coal bed methane modelling are different from the usual MORE ones. For example,
CL is in terms of scf/ton, not Mscf, in field units, and sm3 /tonne, not ksm3 .
• A metric tonne is 1000 kgs. A field unit ton is a short (USA) ton of 2000 lbs.
• Please see the Coal Bed Methane section of the MORE Technical Reference for more information regarding
coal bed methane modelling in Tempest.
• Other keywords associated with coal bed methane modelling in Tempest include:
– CBM - enables coal bed methane modelling
– CDEN - density of coal
– FASH - array of ash fractions
– CLAN - array of Langmuir constants
– PLAN - array of Langmuir pressures
6.85. LANG - Global Values for Coal Bed Methane Modelling 301
Tempest MORE Help, Release 8.1
Examples
1. LANG is used to specify a Langmuir constant of 720 scf/ton, a Langmuir pressure of 571 psia, and a
Langmuir time of 10 days for a coal bed methane model.
Location
Description
The SHAL keyword is used to turn on shale gas modelling in Tempest. There are no required arguments for
SHAL.
Definitions
n/a
Notes
• See the shale gas section of the MORE Technical Reference for more information regarding shale gas
modelling in Tempest.
• Other keywords associated with coal bed methane modelling in Tempest include:
– AGVP - Available shale gas variation with pressure
– SRV - Set up a stimulated reservoir volume
– SRVW - Set up a stimulated reservoir volume along a trajectory
Examples
1. SHAL is used to request shale gas modelling in Tempest. See ShaleGas.dat for complete example:
SHAL
Location
FLUI Section
Description
The AGVP keyword is used to define the available gas per unit reservoir volume contained in a shale as a function
of pressure. To use AGVP, the SHAL keyword must first be entered in the INPU or FLUI sections to turn on shale
gas modelling. Arguments for AGVP consist of a table with two columns which should start on a separate line
below the AGVP keyword itself. Following the final row of AGVP data in the table, a solitary slash (/) on its own
line is required to terminate the data entry for this keyword.
Definitions:
The following arguments should be entered in a tabular format.
1. Saturation pressure
• Units: psi (Field), bar (Metric)
2. Available gas
• Units: mscf/rb (Field), ksm3 /rm3 (Metric)
The pressures must increase with each entry in the table.
Notes
• For shale gas modelling, the true porosity is assumed to be negligibly small. Hence, although the gas is only
absorbed by the rock volume, the latter is assumed to coincide with the reservoir volume.
Example: Field Units
AGVP
0.0 0.0 /
1000 0.03 /
/
Location
Description
The BRINE keyword is used to turn on brine tracking in Tempest. There are no required arguments for BRINE.
Notes
• See the Brine Tracking section of the MORE Technical Reference for more information regarding brine
tracking in Tempest.
• Other keywords associated with brine tracking in Tempest include:
– PVTB - brine PVT data
– BDEN - brine surface densities
– SCVD - initial variation of salt concentration with depth
– SALT - initial salt concentration array
– WSALT - salt injection concentration for an injector well
Examples
BRINE
SEVEN
Location
RELA Section
Description
Note: ADJU is a deprecated keyword which is read by MORE 6.0 and up but no longer has any effect and need
not be used.
The ADJU keyword is used to provide adjustments for the capillary pressures in relative permeability curves.
ADJU may be placed before a set of relative permeability data to influence the way in which these are read. The
values remain in place until another ADJU keyword is read.
ADJU consists of two optional arguments which should be entered on a separate line below the ADJU keyword
itself if used. If no arguments are entered with ADJU, they will automatically take on their default values.
Definitions
Notes
• If a non-default value of the scaling factor for the oil-water capillary pressures (Pcowlift) is read, the oil-
water capillary pressures in the relative permeability curves provided after ADJU will be divided by Pcowlift
so that Pcow = Pcow(table)/Pcowlift.
• If a non-default value of the scaling factor for the oil-gas capillary pressures (Pcoglift) is read, the oil-gas
capillary pressures in the relative permeability curves provided after ADJU will be divided by Pcoglift so
that Pcog = Pcog(table)/Pcoglift.
• To return to default ADJU values, simply enter a default-only value.
• Some other functions of the ADJU keyword, such as the specification of a connate water saturation are no
longer supported. Connate saturations are now specified by the first line of the water saturation table.
307
Tempest MORE Help, Release 8.1
Example
ADJU is used to introduce an oil-water capillary pressure scaling factor of 5 to a simple relative permeability table
with a linear oil-water capillary pressure variation as provided by KRWO.
ADJU
5
With the scaling factor introduced by ADJU, the input above would be equivalent to the following KRWO table
with the adjusted oil-water capillary pressures:
Location
INPU Section
Description
The EPS keyword is used to turn on the endpoint scaling options. By default, the scaling of capillary pressure
follows the relative permeability option. An alternative option is to use EPSP keyword to set a different option for
capillary pressure endpoint scaling.
EPS consists of one optional argument which should be entered on the same line as the EPS keyword itself if used.
Definitions
Notes
• Generally, 4-point scaling is the better option and is recommended, as is preserves the region in which both
phases are mobile.
• 4-point scaling is always used for looking up Krwg, the relative permeability of water in gas, for oil-wet
runs with endpoint scaling.
• Entering only the first letter of the required endpoint scaling option is sufficient. For example, for the
3POINT option, entering the following will suffice:
EPS 3
• See Relative Permeability Calculations in the MORE Technical Reference for more information about 3
and 4-point endpoint scaling in MORE.
Example
EPS 4
2. EPS is used to turn on the endpoint scaling option using the default 3POINT option and it is used with EPSP
to request a 2POINT capillary pressure endpoint scaling.
EPS
EPSP 2
Location
INPU Section
Description
The EPSP keyword is used to turn on the capillary pressure endpoint scaling option. By default, the scaling of
capillary pressure follows the relative permeability option set with EPS. If EPS is not entered, the default will be
3POINT.
EPSP consists of one required argument which should be entered on the same line as the EPSP keyword itself
when used.
Definitions
Notes
• Entering only the first letter of the required capillary pressure scaling option is sufficient. For exam-
ple, for the 2POINT option, entering the following will suffice:
EPSP 2
• NO and OFF may be used as aliases for 0POINT to suppress the scaling of capillary pressures.
• The capillary pressure is used to calculate saturations during equilibration in the transition zones, so the
options on the EPSP keyword will affect the initial solution as well as the dynamic capillary pressures.
• See Relative Permeability Calculations in the MORE Technical Reference for more information about cap-
illary pressure endpoint scaling.
Example
EPSP 4
2. EPS is used to request turn on the endpoint scaling option using the default 3POINT option and it is used
with EPSP to request a 2POINT capillary pressure endpoint scaling.
EPS
EPSP 2
Location
RELA Section
Description
The FRPC keyword is used to freeze capillary pressures for the duration of a run. In some runs, the capillary
pressures required to define the initial solution may be sufficiently large to cause instability in IMPES (Implicit
Pressures, Explicit Saturations) mode. FRPC allows the capillary pressures to be fixed at their initial values for the
duration of the run. This keyword is not required in fully implicit mode but is available when running in IMPES
mode.
There are no required arguments for FRPC.
Definitions
n/a
Notes
n/a
Example
1. FPRC is used to fix capillary pressures at their initial values for the duration of a run.
FRPC
7.5 FFVS - Solvent and Gas Fractional Flows vs. Solvent Fraction
Location
RELA Section
Description
The FFVS keyword is used to specify a table of solvent and gas fractional flows as a function of solvent fractions.
FFVS is a saturation table, so one is required for each saturation table region. The use of FFVS requires that the
four-phase Todd-Longstaff solvent option be turned on with the SOLV or CNAM keywords.
Arguments for FFVS consists of a table with three columns. This table should be entered on a separate line below
the FFVS keyword itself. Following the final row of FFVS data in the table, a solitary slash (/) on its own line is
required to terminate the data entry for this keyword.
Definitions
Notes
• The fraction of the combined gas+solvent saturation which is solvent, Fs, can be calculated as follows:
Ss
Fs =
Sg + Ss
where Fs is the solvent fraction, Ss is the solvent saturation, and Sg is the gas saturation
• Saturation values must increase with each table entry.
• See the The Four Phase Todd-Longstaff Solvent Model of the MORE Technical Reference for more infor-
mation regarding solvents.
• Other keywords associated with solvent modelling in Tempest include:
– SOLV - set surface density of solvent
– MISC - use miscible relative permeabilities with solvent
– TODD - use Todd-Longstaff viscosity mixing rule
– SPVT - define solvent PVT data
– OSPV - define oil-solvent PVT data
– MFVP - miscibility factor vs. pressure
– MFVS - miscibility vs. solvent fraction
– MROW - miscible limit residual oil vs. water saturation
– MCSW - miscible critical solvent saturation vs. water saturation
– SSF - relative permeabilities for solvent phase as a function of solvent saturation
– SOLV - define injected solvent concentration
– TLMS - define minimum miscibility saturation factor
Example
From the table above, a critical solvent fraction of 0.1 is imposed. This is used to indicate that solvent will
not flow in the gas+solvent phase until a solvent fraction of 0.1 is reached.
7.5. FFVS - Solvent and Gas Fractional Flows vs. Solvent Fraction 313
Tempest MORE Help, Release 8.1
Location
RELA Section
Description
The GSF keyword is used to define gas saturation functions. Arguments for GSF consist of a table of relative
permeabilities for gas as a function of gas saturation. This table should start on a separate line below the GSF
keyword and data entry for GSF must be terminated by a solitary slash (/) on a separate line below the last entry
in the table. The GSF table can consist of up to five columns. Of the five columns, the first three columns of data
are required. The last two columns of data are optional.
Definitions
Notes
• Saturation values must increase with each entry in the GSF table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in the table.
• If a hysteresis column is entered and is different from the non-hysteresis column, the appropriate hysteresis
modelling option will be enabled.
• The hysteresis column is the relative permeability for decreasing gas saturation. As gas is the non-wetting
phase with respect to liquid, a decreasing gas saturation corresponds to an imbibition process. So, in terms
of usual engineering terminology, Krg is the drainage process curve and Krgh is the imbibition process
curve.
• The drainage and imbibition curves must coincide at their upper limits. The imbibition curve must be
steeper than the drainage curve so that the residual gas on the imbibition curve, the trapped gas saturation,
will normally be larger than the critical gas saturation on the drainage curve.
• In all cases, the hysteresis capillary pressure corresponds to decreasing gas phase saturation.
• See the Relative Permeability Calculations section of the MORE Technical Reference for more information
regarding relative permeabilities, capillary pressures, and hysteresis.
Example
Some of the entries for Pcog in the GSF table above have been defaulted using the 1* convention. In this
case, these values will be interpolated.
Location
Description
The KRDR keyword is used to turn on directional relative permeabilities. The saturation tables used for flows
in the x-, y-, and z-directions are then specified in the GRID section using the KRDX , KRDY , and KRDZ array
keywords. Flows into wells are still controlled by the ROCK or ROCK saturation table numbers.
KRDR consists of one optional argument which should be entered on the same line as the KRDR keyword itself
if used.
Definitions
Notes
• IREV may be used as an alias for IRRV when requesting irreversible directional relative permeabilities in
KRDR.
• The KRDR default is reversible directional relative permeabilities.
• Different saturation tables may be specified for flows in the positive and negative x-, y-, and z-directions.
The saturation tables for positive direction flows are still specified using the KRDX, KRDY, and KRDZ
keywords.
• When the IRRV option is used with KRDR, the saturation tables for negative direction flows are specified
using the KRMX, KRMY, and KRMZ keywords.
• Please refer to the Directional Relative Permeabilities section of the MORE Technical Reference for more
information about directional relative permeabilities.
Example
1. KRDR is used to request directional relative permeabilities. See DIR_KR.dat for complete example:
KRDR
2. KRDR is used with the IRRV option to request irreversible directional relative permeabilities. See
DIR_KR_IRRV.dat for complete example:
KRDR IRRV
Location
RELA Section
Description
The KRGO keyword is used to define a gas-oil relative permeability table. Arguments for KRGO consist of two
records. The first record consists of one optional argument which should be entered on the same line as the KRGO
keyword itself if used. The second record consists of a table of gas-oil relative permeability data. This table should
start on a separate line below the KRGO keyword and data entry for KRGO must be terminated by a solitary slash
(/) on a separate line below the last entry in the table. The KRGO table can consist of up to seven columns. Of the
seven columns, the first three columns of data are required. The last four columns of data are optional.
Definitions
RECORD 1:
1. Specify that table entries are specified in reverse order (optional): REVE
• REVE - specifies that table entries are specified in reverse order; the first column becomes liquid
saturation and the columns for Krg (relative permeability of the gas phase in the presence of oil and
connate water) and Krog (relative permeability of the oil phase in the presence of oil and connate
water) are reversed.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Gas saturation (or liquid saturation if the REVE option is used)
2. Relative permeability of the gas phase in the presence of oil and connate water: Krg
3. Relative permeability of the oil phase in the presence of gas and connate water: Krog
4. Gas-oil capillary pressure in the presence of oil and connate water (optional): Pcog
5. Hysteresis gas relative permeability in the presence of oil and connate water (optional): Krgh
6. Hysteresis oil relative permeability in the presence of gas and connate water (optional): Krogh
7. Hysteresis gas-oil capillary pressure in the presence of oil and connate water (optional): Pcogh
Notes
• Saturation values must increase with each entry in the KRGO table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in the table.
• If a hysteresis column is the relative permeability for decreasing phase saturation. For capillary pressure,
the hysteresis column is the column for decreasing water saturation.
• As gas is the non-wetting phase with respect to liquid, a decreasing gas saturation corresponds to an imbi-
bition process. So, in terms of usual engineering terminology, Krg is the drainage process curve and Krgh
is the imbibition process curve.
• The Krg drainage and imbibition curves must coincide at their upper limits. The imbibition curve must be
steeper than the drainage curve so that the residual gas on the imbibition curve, the trapped gas saturation,
will normally be larger than the critical gas saturation on the drainage curve.
• As liquid is a wetting phase saturation with respect to gas, Krog is the imbibition process curve and Krogh
is the drainage process curve.
• Wetting (oil) phase hysteresis may be modelled. This will occur if the Krog and Krogh curves are different.
The Krog drainage and imbibition curves have the same critical saturations and maximum values, but the
relative permeability must be greater on the imbibition curve than on the drainage curve.
• Please refer to the Relative Permeability Calculations section of the MORE Technical Reference for more
information regarding relative permeabilities, capillary pressures, and hysteresis.
Example
As no capillary pressure has been specified in this table, it will be set to 0 by default.
Location
RELA Section
Description
The KRWG keyword is used to define a water in gas relative permeability table. Arguments for KRWG consist
of a table of water in gas relative permeability data. This table should start on a separate line below the KRWG
keyword and data entry for KRWG must be terminated by a solitary slash (/) on a separate line below the last entry
in the table. The KRWG table can consist of up to three columns. Of the three columns, the first two columns of
data are required. The last column of data is optional.
Definitions
Notes
• Saturation values must increase with each entry in the KRWO table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in the table.
• The KRWG table is only required for the oil-wet option. If oil is the wetting phase, water becomes the
intermediate phase, and the intermediate phase will generally have a different relative permeability with
respect to oil and with respect to water. The Krwo value is taken from the normal KRWO table, and the
Krwg value may be entered with KRWG.
• If the Krwg values are not entered with KRWG, they will be extracted from the Krog data (for example, as
entered with KRGO) and the supplied Krow values to define Kro as a simple function of oil saturation.
• If the Krwg values are entered with KRWG, it is possible to specify Krow and Krog as normal. However, it
is possible to omit the Krog values and these will then follow Krow as a function of oil saturation.
• If a hysteresis column is entered and is different from the non-hysteresis column, the appropriate hysteresis
modelling option will be enabled. As water is always wetting with respect to gas, the second column is
imbibition and the third one is drainage.
• Please refer to the Relative Permeability Calculations section of the MORE Technical Reference for more
information regarding relative permeabilities, capillary pressures, and hysteresis.
Example
1. KRWG is used to enter a simple water in gas relative permeability table without hysteresis.
KRWG Sw RKwg
0.3 0.0 /
0.5 0.1 /
0.7 0.5 /
/
Location
RELA Section
Description
The KRWO keyword is used to define a water-oil relative permeability table. Arguments for KRWO consist of a
table of water-oil relative permeability data. This table should start on a separate line below the KRWO keyword
and data entry for KRWO must be terminated by a solitary slash (/) on a separate line below the last entry in the
table. The KRWO table can consist of up to seven columns. Of the seven columns, the first three columns of data
are required. The last four columns of data are optional.
Definitions
Notes
• Saturation values must increase with each entry in the KRWO table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in the table.
• For a gas-water system (black oil option), the KRWO table is used to supply gas-water relative permeability.
In this case, the Krow column contains the values of Krg (i.e. gas-water is treated as hydrocarbon-water).
• The critical water saturation, Swcr, is the first value with a non-zero relative permeability value.
• If a hysteresis column is entered and is different from the non-hysteresis column, the appropriate hysteresis
modelling option will be enabled.
• The connate water saturation, Swco, is the first saturation value in the table. In versions of MORE prior to
MORE 5.5, the connate saturation was always set equal to the critical.
• The hysteresis column is the relative permeability for decreasing phase saturation. For the capillary pressure,
it is for decreasing water saturation.
• Please refer to the Relative Permeability Calculations section of the MORE Technical Reference for more
information regarding relative permeabilities, capillary pressures, and hysteresis.
Hysteresis in a water-wet system:
• In the default case of a water-wet system, oil is the non-wetting phase with respect to water, so a decreasing
oil saturation corresponds to an imbibition process. In terms of usual engineering terminology, Krow is the
drainage process curve and Krowh is the imbibition process curve.
• The Krow drainage and imbibition curves must coincide at their upper limits. The imbibition curve must
be steeper than the drainage curve so that the residual oil on the imbibition curve, the trapped oil saturation,
will normally be larger than the critical oil saturation on the drainage curve.
• When water is a wetting phase saturation with respect to oil, Krw is the water imbibition curve and Krwh is
the water drainage curve. Wetting phase hysteresis may be modelled - this requires that the Krw drainage
and imbibition curves have the same critical saturations and maximum values, but the relative permeabilities
must be greater on the imbibition curve than on the drainage curve.
Hysteresis in an oil-wet system
• If an oil-wet system is modelled using WETT, water is the non-wetting phase with respect to oil, so a
decreasing water saturation corresponds to an imbibition process. In terms of usual engineering terminology,
Krw is the drainage process curve and Krwh is the imbibition process curve, so non-wetting phase hysteresis
may be modelled for Krw.
• The Krw drainage and imbibition curves must coincide at their upper limits. The imbibition curve must
be steeper than the drainage curve so that the residual water on the imbibition curve, the trapped water
saturation, will normally be larger than the critical water saturation on the drainage curve.
• When oil is a wetting phase saturation with respect to water, Krow is the oil imbibition curve and Krowh
is the oil drainage curve. Wetting phase hysteresis may be modelled - this requires that the Krow drainage
and imbibition curves have the same critical saturations and maximum values, but the relative permeability
must be greater on the imbibition curve than on the drainage curve.
Example
1. KRWO is used to define a simple relative permeability table with capillary pressure. In this table, both the
connate water saturation and the critical water saturation are set to 0.3.
2. KRWO is used to define a relative permeability table with oil-in-water hysteresis. In this table, the connate
water saturation is set to 0.05 while the critical water saturation is set to 0.08.
In the KRWO table above, the normal critical oil saturation is 0.10 (at Sw=0.90) but the maximum trapped
oil saturation is 0.2 (at Sw=0.80).
Please note that the use of default values in the above table indicates linear interpolation between values.
Location
RELA Section
Description
The MCSW keyword is used to specify a table of miscible critical solvent saturation values with respect to water
saturation. The use of MCSW requires that the four-phase Todd-Longstaff solvent option be turned on with the
SOLV or CNAM keywords.
Arguments for MCSW consists of a table with two columns. This table should be entered on a separate line below
the MCSW keyword itself. Following the final row of MCSW data in the table, a solitary slash (/) on its own line
is required to terminate the data entry for this keyword.
Definitions
Notes
Example
1. MCSW is used to provide a table of miscible critical solvent saturation values with respect to water satura-
tion.
MCSW Sw Kcs
0.0 0.1
0.1 0.12
0.4 0.14
1.0 0.16
/
In this case, the rising critical solvent saturation with water saturation reflects the effect of water blocking.
7.11. MCSW - Miscible Critical Solvent Saturation with respect to Water Saturation 323
Tempest MORE Help, Release 8.1
Location
RELA Section
Description
The MROW keyword is used to specify a table of miscible residual oil saturation values with respect to water
saturation. The use of MROW requires that the four-phase Todd-Longstaff solvent option be turned on with the
SOLV or CNAM keywords.
Arguments for MROW consists of a table with two columns. This table should be entered on a separate line below
the MROW keyword itself. Following the final row of MROW data in the table, a solitary slash (/) on its own line
is required to terminate the data entry for this keyword.
Definitions
Notes
Example
1. MROW is used to provide a table of miscible residual oil saturation values with respect to water saturation.
MROW Sw Krow
0.0 0.1
0.1 0.12
0.4 0.14
1.0 0.16
/
In this case, the rising residual oil saturation with water saturation reflects the effect of water blocking in
hiding the oil from the solvent.
7.12. MROW - Miscible Residual Oil Saturation with respect to Water Saturation 325
Tempest MORE Help, Release 8.1
Location
RELA Section
Description
The MFVS keyword is used to specify a table of miscibility factors as a function of solvent fractions. MFVS is a
saturation table, so one is required for each saturation table region. The use of MFVS requires that the four-phase
Todd-Longstaff solvent option be turned on with the SOLV or CNAM keywords.
Arguments for MFVS consists of a table with two columns. This table should be entered on a separate line below
the MFVS keyword itself. Following the final row of MFVS data in the table, a solitary slash (/) on its own line is
required to terminate the data entry for this keyword.
Definitions
Notes
Example
MFVS Fs Fm
0.0 0.00
0.1 0.2
0.8 0.99
1.0 1.0
/
From the table above, when the solvent fraction reaches 80%, a miscibility of 99% will be attained.
Location
RELA Section
Description
The NWHY keyword is used to restore the hysteresis treatment of version of MORE up to and including MORE
6.3. In this case, all phase combinations use a non-wetting hysteresis treatment, in which the critical saturation of
a phase is allowed to vary.
There are no required arguments for NWHY.
Definitions
n/a
Notes
n/a
NWHY does not effect water-in-gas relative permeability in oil-wet runs - this is always wetting.
Examples
1. NWHY is used to select non-wetting phase hysteresis for all phase combinations.
NWHY
Location
RELA Section
Description
The OSF keyword is used to define oil saturation functions. Arguments for OSF consist of a table of relative
permeabilities for oil as a function of oil saturation. This table should start on a separate line below the OSF
keyword and data entry for OSF must be terminated by a solitary slash (/) on a separate line below the last entry
in the table. The OSF table can consist of up to five columns. Of the five columns, the first three columns of data
are required. The last two columns of data are optional.
Definitions
Notes
• Saturation values must increase with each entry in the OSF table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in the table.
• The ordering of Krow and then Krog is different from MORE’s usual oil, gas, water rule.
• If a hysteresis column is entered and is different from the non-hysteresis column, the appropriate hysteresis
modelling option will be enabled.
• The hysteresis column in the relative permeability for decreasing phase saturation. As oil is always wetting
with respect to gas, Krog corresponds to an imbibition process and Krogh to a drainage process. Wetting
phase hysteresis may be modelled in Krog.
Oil-water hysteresis in a water-wet system
• In the default case of water-wet system, oil is the non-wetting phase with respect to water, so a decreasing
oil saturation corresponds to an imbibition process. In terms of usual engineering terminology, Krow is the
drainage process curve and Krowh is the imbibition process curve. Non-wetting phase hysteresis can be
modelled in Krow.
Oil-water hysteresis in an oil-wet system
• If an oil-wet system is modelled using WETT, water is the non-wetting phase with respect to oil, so a
decreasing oil saturation corresponds to a drainage process. In terms of usual engineering terminology,
Krow is the imbibition process curve and Krowh is the drainage process curve, so wetting phase hysteresis
may be modelled in Krow.
• Please refer to the Relative Permeability Calculations section of the MORE Technical Reference for more
information regarding relative permeabilities, capillary pressures, and hysteresis.
Example
Some of the entries in the OSF table above have been defaulted. In these cases, MORE will fill them in by
interpolation in Soil.
Location
RELA Section
Description
The PCHC keyword is used to set a curvature parameter for capillary pressure hysteresis. The curvature parameter
used in the capillary pressure hysteresis treatment (Killough, SPE 5016) is defaulted to 0.1. PCHC allows this
value to be reset.
PCHC consists of one required argument which should be entered on the same line as the PCHC keyword itself
when used.
Definitions
1. Curvature parameter
Notes
• Values for the curvature parameter should be in the range of 0.01 to 0.5
Examples
PCHC 0.075
7.16. PCHC - Set Curvature Parameter for Capillary Pressure Hysteresis 331
Tempest MORE Help, Release 8.1
Location
RELA Section
Description
The PRIN keyword is used to define printing options for data output from the relative permeability section. PRIN
consists of one optional argument which should be entered on the same line as the PRIN keyword itself if used.
Definitions
Notes
n/a
Example
1. PRIN is used to request the output of relative permeability data. As PRIN is used without any arguments,
this will automatically default to the ALL option and all relative permeability data will be printed.
PRIN
In this case, all relative permeability data will be printed to the RELA section of the MORE .out file
(which can be viewed under the Print tab of the results section in Tempest View)
RELA======================================================================================
Relative permeability data
==========================================================================================
GRID======================================================================================
Grid Data
==========================================================================================
2. Alternatively, PRIN is used with the ALL option to specify that all of the relative permeability data is
printed.
PRIN ALL
In this case, data output will be similar to that shown in the example above.
3. PRIN is used with the BASI option to specify that basic relative permeability data is printed.
PRIN BASI
In this case, only the basic relative permeability data will be printed to the RELA section of the MORE
.out file (which can be viewed under the Print tab of the results section in Tempest View).
RELA======================================================================================
Relative permeability data
==========================================================================================
GRID======================================================================================
Grid Data
==========================================================================================
4. PRIN is used with the NONE option to specify that none of the relative permeability data is printed.
PRIN NONE
In this case, when the RELA section of the .out file (which can be viewed under the Print tab of the results
section in Tempest View), we can see that indeed, no relative permeability data is printed.
RELA======================================================================================
Relative permeability data
==========================================================================================
GRID======================================================================================
Grid Data
==========================================================================================
Location
RELA Section
Description
The RELA keyword is used as a section header to indicate the beginning of the Relative Permeability section. The
Relative Permeability section must begin with the RELA keyword before any other RELA section keywords can
be used. There are no required arguments for RELA.
The Relative Permeability section is used to supply relative permeability and capillary pressure data in a simu-
lation. For more details on the Relative Permeability section, please see the Relative Permeability Data Section
Overview .
Definitions
n/a
Notes
n/a
Example
RELA
Location
RELA Section
Description
The SSF keyword is used to define solvent saturation functions. The use of SSF requires that the four-phase
Todd-Longstaff solvent option be turned on with the SOLV or CNAM keyword.
Arguments for SSF consist of a table of relative permeabilities for the solvent phase as a function of solvent
saturation. This table should start on a separate line below the SSF keyword and data entry for SSF must be
terminated by a solitary slash (/) on a separate line below the last entry in the table. The SSF table consists of two
required columns.
Definitions
Notes
• Saturation values must increase with each entry in the SSF table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in the table.
• Please see the Solvent section of the MORE Technical Reference for more information regarding solvents.
• Other keywords associated with solvent modelling in Tempest include:
– SOLV - set surface density of solvent
– MISC - use miscible relative permeabilities with solvent
– TODD - use Todd-Longstaff viscosity mixing rule
– SPVT - define solvent PVT data
– OSPVT - define oil-solvent PVT data
– MFVP - miscibility factor vs. pressure
– MFVS - miscibility vs. solvent fraction
– FFVS - solvent and gas fraction flows vs. solvent fraction
– MROW - miscible limit residual oil vs. water saturation
– MCSW - miscible critical solvent saturation vs. water saturation
– SOLV_WELL - define injected solvent concentration
– TLMS - define minimum miscibility saturation factor
Example
SSF Ss Krs
0.22 0.00
0.30 0.07
0.40 0.15
0.50 0.24
0.60 0.33
0.80 0.65
0.90 0.83
1.00 1.00
/
Location
Description
The SCAL keyword allows scaling operations to be performed on relative permeability tables. The curves are
scaled so that the required connate and critical saturations are obtained. The saturation ranges between these
points are simply expanded or compressed to fit.
Arguments for SCAL consist of two records. The first record consists of one required argument which should be
entered on the same line as the SCAL keyword itself. The second record consists of six required arguments which
should all be entered in succession on a separate line below the SCAL keyword when used.
Definitions
RECORD 1:
1. The number of the original relative permeability curve which is to be scaled.
• Note: Curves are numbered as they are read in. The scaled curves are always after the original curves.
RECORD 2:
1. Critical water saturation for the scaled curves
2. Critical residual oil in water saturation for the scaled curves
3. Critical gas saturation for the scaled curves
4. Critical residual oil in gas saturation for the scaled curves
5. Argument no longer used but must be present. A value of 1* should be
used as a placeholder in this case.
6. Connate water saturation for the scaled curves
Notes
• SCAL is different from grid-based end point scaling which scales tables on a cell-by-cell basis, which is
performed using GRID section keywords such as SOGC , SOWC, SGL, SGCR, SGU, SWL, SWCR, and
SWU.
• Please refer to the Relative Permeability Calculations section of the MORE Technical Reference for more
information regarding relative permeabilities.
Example
1. SCAL is used to scale a set of saturation tables defined using KRWO and KRGO . The KRWO table has
a critical water saturation of 0.20, a critical residual oil in water saturation of 0.1, and a connate water
saturation of 0.12. The KRGO table has a critical gas saturation of 0.12 and a critical residual oil in gas
saturation of 0.03.
/
KRGO1 Sgas Krg Krog
0.00 0.0 1.0 /
0.12 0.0 1.0 /
0.85 1.0 0.0 /
0.88 1.0 0.0 /
/
SCAL is then used to set a new critical water saturation of 0.15, a new critical residual oil in water saturation
of 0.20, a new critical gas saturation of 0.2, a new critical residual oil in gas saturation of 0.20, and a new
connate water saturation of 0.10.
SCAL 1
0.15 0.20 0.20 0.20 1* 0.1 /
The effect of SCAL will be exactly the same as entering a second set of tables using KRWO and KRGO with
new critical and connate end points, as shown below.
/
KRGO2 Sgas Krg Krog
0.00 0.0 1.0 /
0.20 0.0 1.0 /
0.70 1.0 0.0 /
0.90 1.0 0.0 /
/
Location
Description
The TFUN keyword is used to enter a property multipliers with respect to either a tracer concentration or tem-
perature. Arguments for TFUN consist of two records. The first record consists of two required arguments, the
property name and the tracer name (or TEMP) which should be entered in succession on the same line as the
TFUN keyword. The second record consists of a table with two columns which should start on a separate line
below the TFUN keyword. Following the final row of TFUN data in the table, a solitary slash (/) on its own line
is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Property to be modified: the following properties are supported at present
• SOWC - critical oil saturation in water
• SOGC - critical oil saturation in gas
• SWCR - critical water saturation
• XKRO - oil relative permeability
• XKRG - gas relative permeability
• XKRW - water relative permeability
• VISW - water viscosity
2. Tracer name or TEMP
• Tracer name
• TEMP (temperature)
RECORD 2:
The following arguments should be entered in a tabular format.
1. Tracer concentrations or temperatures
2. Multipliers to be applied to properties (only VISW is supported at present)
Notes
• If a tracer name is used in record 1, that tracer must be set up using the TRAC keyword before the TFUN
keyword is used.
• TEMP can be used in record 1 only in thermal simulations.
• The table data must be non-negative, because the properties are non-negative quantities.
• Constant value extrapolation is used outside the range of the table to avoid negative values. It is thus
recommended that the tracer concentration or temperature range of record 2 cover the full range of values
likely to be encountered.
• If two or more TFUN keywords are found that modfy the same property, then all of these tables are honored
and the effective multiplier is the product of all individual multipliers. This allows for the modification of a
property to depend on several tracers.
Examples
1. TFUN is used to enter a table of critical water saturation multipliers as a function of temperature for a
thermal system.
Note how the scatterplot between reservoir temperature and critical water saturation is consistent with the
input TFUN table (Critical Water Saturation is set to 0.2 for this case):
2. Two TFUNs (both modifying property VISW) are used to set up a combined water viscosity multiplier.
The first table applies to tracer TRC1 while the second table applies to tracer TRC2. The combined water
viscosity multiplier is the product of both: Mult = Mult1 (TRC1) · Mult2 (TRC2)
Location
RELA Section
Description
The WETT keyword is used to provide wettability options for three-phase calculations. Arguments for WETT
comprise two optional arguments which, if used, should be entered in succession on the same line as the WETT
keyword itself.
Definitions
where,
Sw − Swco
f=
Sw + Sg − Swco
Substitute f into Kro (Sw , Sg ), and the relative permeability of oil is expressed as:
Sw − Swco Sg
Kro (Sw , Sg ) = Krow + Krog (So )
Sw + Sg − Swco Sw + Sg − Swco
Notes
• For more information about three-phase relative permeability options, see the Relative Permeabilities sec-
tion of the MORE Technical Reference.
Example
1. WETT is used to specify that a default water-wet system that uses Stone’s second method to calculate
three-phase relative permeabilities.
WETT
2. WETT is used with the WATE and STN1 options to specify a water-wet system that uses Stone’s first
method to calculate three-phase relative permeabilities.
3. WETT is used with the OIL and LINE options to specify an oil-wet system that uses the straight line
interpolation method to calculate three-phase relative permeabilities.
Location
RELA Section
Description
The WSF keyword is used to define water saturation functions. Arguments for WSF consist of a table of relative
permeabilities for water as a function of water saturation. This table should start on a separate line below the WSF
keyword and data entry for WSF must be terminated by a solitary slash (/) on a separate line below the last entry
in the table. The WSF table can consist of up to five columns. Of the five columns, the first three columns of data
are required; the last two columns of data are optional.
Definitions
Notes
• Saturation values must increase with each entry in the WSF table.
• Each table must be terminated by a solitary slash (/) on a separate line below the final entry in each WSF
table.
• If a hysteresis column is entered and is different from the non-hysteresis column, the appropriate hysteresis
modelling option will be enabled.
Water hysteresis in a water-wet system:
• In the default case of a water-wet system, water is the wetting phase, so a decreasing water saturation
corresponds to a drainage process. In terms of usual engineering terminology, Krw is the imbibition process
curve and Krwh is the drainage process curve. Wetting phase hysteresis can be modelled in Krw.
Water hysteresis in an oil-wet system:
• If an oil-wet system is modelled using WETT, water is the non-wetting phase with respect to oil, so a
decreasing water saturation corresponds to an imbibition process. In terms of usual engineering terminology,
Krw is the drainage process curve and Krwh is the imbibition process curve, so non-wetting phase hysteresis
may be modelled in Krw.
• In all cases, the hysteresis capillary pressure corresponds to decreasing water phase saturation.
• Please refer to the Relative Permeability Calculations section of the MORE Technical Reference for more
information regarding relative permeabilities, capillary pressures, and hysteresis.
Example
Location
RELA Section
Description
EIGHT
Keywords in the GRID section define the geometry of the simulation grid and the properties of the simulation
cells. This may be done using keywords or expressions. When no user values are supplied, a default will be used.
Some grid arrays, such as KYKX, are used to define other grid arrays. It is also possible to define user grid arrays.
Arrays can be set up using expressions linking them to other arrays. However, one way or another the following
arrays need to be in place for all runs before the grid calculations are performed.
Basic Arrays Used by the Transmissibility, Depth and Pore Volume Calculations
349
Tempest MORE Help, Release 8.1
As well as the basic arrays used in all runs, and listed in the table above, a number of other arrays are needed for
the grid calculations when special options are turned on:
Name Description
SOGC Critical saturation of oil in gas
SOWC Critical saturation of oil in water
SGL Connate gas saturation
SGCR Critical gas saturation
SGU Maximum gas saturation
SWL Connate water saturation
SWCR Critical water saturation
SWU Maximum water saturation
Polymer
Thermal
Dual Porosity
Gravity Drainage
The following arrays are not used directly by MORE, but can play an intermediate role in setting up the basic and
optional arrays defined above.
Name Description Units Default
KYKX K_Y / K_X md/md 1.0
KZKX K_Z / K_X md/md 1.0
NET Net Pay Thickness ft or m
LEVJ Leverett J-Factor md1/2
K_XH Permeability net thickness product
PHIH Porosity net thickness product
PNSW Pinchout switch array
When an intermediate array is entered, it does not get used directly by the program, but instead it defines other
arrays via a built-in expression.
Built-in intermediate arrays and their relevant expressions are listed below:
Array Default Used in the expression
KYKX 1 K_Y=KYKX * K_X
KZKX 1 K_Z=KZKX * K_X
K_XH No default K_X+K_XH/(THIC * NTOG)
PHIH No default PORO=PHIH/(THIC * NTOG)
NET No default NTOG=NET/THIC
LEVJ No default XPC=LEVJ * SQRT(PORO/K_X)
KYKX and KZKX are always set up and defaulted to 1.
K_XH, PHIH, NET and LEVJ are predefined, so a DEFINE keyword is not required, but they will only be used if
set up by the user.
The built in expressions are treated by layer - for example, you could define K_Z for some layers, and KZKX for
others. The KZKX expression would only be used in layers for which no K_Z values were defined.
The relationships above are built into the simulator, but you are not restricted to only these relationships. You can
DEFIne your own arrays and specify relationships between arrays using grid processing expressions discussed
later in this section.
The use of the PNSW pinchout switch array is detailed in the PINCH keyword description.
Definitions
PORO
120*0.3
Alternatively the keyword defining the array can be followed by an array sub-keyword which defines the layer
format. These are discussed in the next section (Array Subkeywords). As a first example, CONS implies that a
single constant value exists for a layer. So an alternative to the porosity input method above we could enter:
PORO UNIF
CONS
0.3
The porosity is uniform by layer, and constant within the layer specified, so only one value is needed.
Layer ranges are discussed in the expressions section. These may be set using two formats:
Using a bracketed range, e.g. PORO(1:2) Using arguments, e.g. PORO 1:2 The use of layer ranges is discussed
further in the section Layer Ranges and Vertical Modes immediately after the section on expressions.
After the array name comes the data or one or more grid array sub-keywords.
When an equals sign is encountered on a line which begins with an array name, MORE will process the line as an
array expression. This allows data in a layer to be set using a simple formula. This method is invoked by a line of
the following form:
array(l1:l2) = expression
An example would be:
K_Z=0.2*K_X
This would simply set the Kz value to 20% of the Kx value in all layers.
This operation could be restricted to a layer range, for example:
Kz(1:2)=0.4*Kx
Kz(3:4)=0.2*Kx
Note that the array names in these expressions are case-insensitive, and alias names are accepted.
When indices are not specified on the right hand side, as in this example, the left hand values apply throughout
the expression, so this is the same as:
Kz(1:2)=0.4*Kx(1:2)
Kz(3:4)=0.2*Kx(3:4)
However, it is possible to have a different range on the right hand side. The same Kz values could be obtained
using:
Kz(1:2)=0.4*Kx
Kz(3:4)=0.5*Kz(1:2)
Note that the number of layers in the operation is the same on both sides of the expression. It is also possible to
use values for a single layer in an expression, for example:
Kz(1:2)=0.4*Kx
Kz(3:4)=0.5*Kz(1)
The value in Kz layer 1 will be used to define Kz in both layers 3 and 4. Note unless one layer is used the number
of layers in the operation must match.
The right hand side can include any number of arrays which are defined. Besides array names the expression may
include:
• Constants of the form such as 4, 8.3, 5.6e+4.
• Operators +, -, /, * and ** for addition, subtraction, division, multiplication and exponentiation.
• Brackets to define sub-expressions - (, [ and { are all accepted.
• Functions:
PORO=0.19*IEQ(FIP,1)+0.21*IEQ(FIP,2)+0.37*IEQ(FIP,3)
This will set porosity to 0.19 where the array FIP is 1, 0.21 where FIP is 2 and 0.37 where FIP is 3.
Since the forward slash (/) denotes division in array expressions, a comment is indicated by a forward slash
followed by an asterisk (/*). Processing of the expression is terminated when these two characters are encountered.
The layer ranges are defined with respect to the current vertical input mode. If you are using VERT BLOC, the
layer indices are simply cell layers in the range 1 to Nz . This is fine for specifying cell properties such as porosity,
net to gross ratio and permeabilities.
In VERT POIN mode the layer indices refer to node layers. These are in the range 1 to Nz +1. It is possible to
select one or other side of a node layer using + or - following the index.
When properties are obtained in point mode, these will ultimately be sampled back onto the grid cells when used
in the simulator’s pore volume and transmissibility calculations.
Four keywords which specify cell locations are an exception to this default behaviour and have the following
built-in modes when used in expressions:
Keyword Horizontal Mode Vertical Mode
XGRI CONT DISC
YGRI CONT DISC
DEPT DISC DISC
THIC DISC BLOC
MORE holds grid arrays by layer. Layer indices are used in setting values both when using keywords and when
using expressions. Expressions are discussed in the next section. MORE has a flexible and powerful language for
entering grid data. Grid data is used for two purposes:
To define fault and dip geometry in reservoirs, it is helpful to define the positions of cells via the locations of their
corner points. Properties are usually associated with the cell volume. MORE allows values to be set at both blocks
and corners in a general way.
The treatment of layers and of cells within a layer are defined by the vertical and horizontal input modes. The
vertical case will be considered first.
Suppose we have a 10 x 4 x 3 grid simulation cells as shown below. This grid has 3 layers of blocks in the vertical
direction , as shown.
In practice, dipping or faulted geometries are normally defined by using the ZCORN and COORD keywords, or
reading a ROFF file, so there is no need to use anything other than BLOC mode. However, MORE’s more sophis-
ticated methods for entering layer data do permit quite complex grids to be entered using keywords, particularly
when combined with the INTE and LINEar interpolation methods. So if you wish to enter a dipped reservoir
rather than a staircase of flat blocks, select CONT or DISC on the grid subkeyword when entering DEPTh data.
NTOG
Net-to-gross ratio. This is included in pore volume and horizontal transmissibility calculations. NET is related
to NTOG by the expression NTOG = NET/THIC. Changing net thickness is not the same as changing gross
thickness, as the gross thickness effects the layer separation and thus the vertical transmissibility.
FLIP
FLIP region arrays are defined in the GRID section (see DEFI).
Fluid-in-place arrays contain pore volume multipliers which are used to calculate fluids-in-place.
If you define a well group with the same name as a FLIP array, the two will become associated for material
balance calculations.
FIPN
If a grid array is called FIPx where x is one of more other characters (for example, FIPN or FIP) it may be used
to assign a fluid in place region to each cell. Fluid in place reports will then be generated on a region-by-region
where the regions are the numbers set.
For example, the following will set up three fluid in place regions for a 10 layer reservoir:
FIPN
ZVAR
4*1 4*2 2*3 /
The regions will appear in Tempest as fluid in place regions like fipn1, fipn2 and fipn3.
These set the rock compressibility and reference pressure. Porosity is treated as a linear function of pressure:
Φ = Φo · [1 + Cr (P − Po )]
where:
Φo is the porosity supplied to the simulator,
Φ is the porosity at pressure P,
Cr is the rock compressibility, CROC, and
Po is the REFErence pressure array.
If multiple KVSP tables are entered, the tables may be assigned to cells using the KPTA grid array e.g.
KPTA
ZVAR
1 2 3 2 /
All the values for KPTA should lie in the range 1..|NKVSP|, where NKVSP is the number of tables entered using
the KVSP keyword.
If KPTA is not entered, all the cells will use KVSP table 1.
If the dual porosity or dual permeability options are being used, the SIGMA grid array should be set up to define
the amount of coupling between matrix and fracture cells. Although the SIGMA array is defined for the entire
grid, only the values for the first Nz/2 layers are used.
The matrix fracture transmissibility is constructed as:
Where
CDarcy is Darcy’s constant,
KM is the matrix cell permeability,
Vporv is the matrix cell pore volume, and
σ is the value supplied with the SIGMA keyword.
It is possible to relate SIGMA to typical dimensions of the matrix material in the reservoir:
However, note that Lx , Ly and Lz are not related to the size of the simulation cells used in the model, but rather
the size of the elements of matrix material in the reservoir.
As an alternative to specifying the matrix-fracture coupling in dual porosity runs using shape factors, a matrix
fracture time constant may be entered in days. If MFTC is entered, SIGMA values are obtained as:
SIGM=F/MFTC
where
µwater p
F =C × × φ/k
(IF T × λ)
and,
C is a constant which depends on the unit convention, equal to 34.22 (Field) and 368.4 (Metric),
µwater is the water viscosity,
IFT is the interfacial tension, taken as 40 dynes/cm,
λ is a dimensionless experimental constant, equal to 0.011, and
φ and k are the matrix porosity and permeability in mD.
Conversely, if SIGM is entered, MFTC will be obtained as MFTC=F/SIGM
If multiple shape fractions are being used, MFTC will be replaced by MFT1, MFT2 etc.
If the Palmer Mansoori option is being used with coal bed methane, ELOB may be used to define the shrinkage
factor FSHR. If ELOB is set, then FSHR will be obtained as ELOB/PLAN.
The values of permeability-net thickness and porosity-net thickness can be read into KX_H and PHIH using any
of the conventional grid processing sub-keywords. If these arrays are provided, but not K_Y and K_Z, MORE
will define permeability and porosity using:
When the TENS option is being used permeability is a general symmetric 3x3 tensor. Such a tensor has six
independent values per cell, and MORE supports two ways of defining these:
The usual permeability values K_X, K_Y, K_Z define the principal tensor values, and DEVX, DEVY and AXES
define the orientation of the principal frame with respect to the usual xyz coordinate system.
Specify the six independent components of the permeability tensor as K_X, K_Y, K_Z, KXY, KYZ and KZX. By
default these are specified with respect to the local grid coordinates, but the XYTRUE and ZTRUE arguments of
TENS enable them to be specified with respect to true xy and z coordinates respectively.
For either input option, MORE generates tensor permeability components with respect to grid and true xyz frames.
If PRINT MAP is used in the GRID section, these may be viewed with Tempest.
When using the single grid method for dual porosity modelling, DPSS or DPORO SING, fracture properties are
entered using separate keywords starting with F:
FOGR Fracture Krog at critical gas to define FYOG scaling factor KOGR
FOWR Fracture Krow at critical water to define FYOW scaling factor KOWR
FKGR Fracture Krg at critical oil to define FYKG scaling factor KRGR
FKWR Fracture Krg at critical oil to define FYKW scaling factor KRWR
For hysteresis, it is possible to specify separate hysteresis endpoint arrays. These are imbibition values, with
respect to a water wet-convention.
These are:
VARI A full set of values will be provided for each layer
CONS A single constant value will be provided for the layer
ZVAR A single value will be provided for each z-layer
LINE Use bilinear interpolation to define values
INTE Use general interpolation to define values
F(DE Define values as a function of depth
F(PO Define values as a function of porosity
FUNC Define values as a specified property
MODI Modify entered values
REPL Replace entered values
VARI processing is the default. For example, if you supply an array name and then supply numerical values
without a grid processing sub-keyword, the simulator will use the VARIable option. If the simulator encounters
no grid processing sub-keyword after reading a layer of values, the VARI option is used again. This process is
repeated until all layers are specified.
FUNC is a generalisation of the F(DE and F(PO which allows the input values to be constructed as a function of
any other chosen property. If the processing method depends on another array in this way, the the required array
must have been specified. For example, you cannot specify an array as a function of porosity, F(PO, if porosity
has not been specified.
When sub-keywords are used to specify values for a number of layers, a different method could be used in each
layer. The ZVAR keyword is somewhat different from the others, because it is used to specify the values for all
layers at once.
A non-default horizontal format may be specified as an argument on the array sub-keyword. As discussed above,
there are three options:
• BLOC - Nx · Ny values
• DISC - 4 · Nx · Ny values
• CONT - (Nx + 1)(Ny + 1) values
Normally, there is no need to modify the default mode. One case in which a non-default mode is useful is when
entering non-uniform cell depths or thickness’.
Location
Description
The CONS array sub-keyword is used to assign a single constant value to a layer or layers. It consists of one
required argument which should appear on a separate line following the CONS keyword itself.
Definitions
Examples
1. In a 10x10x5 grid, CONS is used with the porosity array (PORO) to assign different values to each layer.
See CONS_array.dat for complete example:
PORO
CONS
0.10
CONS
0.12
CONS
0.14
CONS
0.16
CONS
0.18
2. In a 10x10x5 grid, CONS and UNIF are used with the porosity array (PORO) to assign a poros-
ity of 0.1 throughout the grid. The porosity is uniform vertically and constant horizontally. See
CONS_array_PORO2.dat for complete example:
PORO UNIF
CONS
0.1
Location
GRID or INIT section (after a defined array name, and after depth has been completely specified).
Description
The F(DE keyword is used to specify an array as a function of depth. A depth array must be specified prior to
the use of the F(DE keyword. Arguments for the F(DE keyword consist of a table with two columns containing
a depth value and a corresponding array value. Following the final entry, a solitary slash (/) on a separate line is
required to terminate the data entry for this keyword.
Definitions
1. Depth value
2. Value of the array corresponding to the depth value
Examples
PORO UNIF
F(DE
5000 0.16
5200 0.18
5400 0.22
5800 0.25
/
Location
GRID or INIT section (after a defined array name, and after porosity data has been specified).
Description
The F(PO keyword is used to specify an array as a function of porosity. A porosity array must be specified prior to
the use of the F(PO keyword. The required arguments for F(PO consist of two records. The first record is optional
and used to describe the method of interpolation to be used. This record should follow directly after the F(PO
keyword on the same line. The second record starts on a separate line below the F(PO keyword and consists of
a table with two columns containing porosity and corresponding array values, respectively. Following the final
entry, a solitary slash (/) on a separate line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Method of interpolation (optional) - LOGA or LINE
• LOGA - logarithmic interpolation
• LINE (default) - linear interpolation
RECORD 2:
1. Porosity value
2. Value of the array corresponding to the porosity value
Examples
1. F(PO is used to specify x-permeability values with linear interpolation as a function of porosity. See
F(PO.dat for complete example:
K_X UNIF
F(PO
--POROSITY K_X (mD)
0.20 50
0.25 200
0.28 400
0.30 600
/
(Please note that the line directly following the F(PO keyword is a comment line used to aid readability. )
2. F(PO is used to specify x-permeability values with logarithmic interpolation as a function of porosity. See
FPO_2.dat for complete example:
K_X UNIF
F(PO LOGA
0.25 50
0.28 200
0.30 500
/
Location
GRID or INIT section (after a defined array name, and after the specified property have been completely specified).
Description
The FUNC keyword is a generalisation of the F(DE and F(PO keywords which allows the input values to be
constructed as a function of any other chosen property. As the processing method depends on another array, the
required array must have been specified first. For example, you cannot specify an array as a function of porosity,
F(PO, if porosity has not been specified.
Arguments for FUNC keyword consists of two records. The first record consists of one required argument which
should be entered on the same line as the FUNC keyword itself if used. The second record consists of a table with
two columns containing a specified property value and a corresponding array value. Following the final entry, a
solitary slash (/) on a separate line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Specified property name
RECORD 2:
The following arguments should be entered in a tabular format.
1. Value of the specified property
2. Value of the array corresponding to the specified property
Notes
• Constand interpolation is used for values outside the specified property’s pre-defined range.
Examples
DEFI XXXX
'User-Defined Array'
XXXX
ZVAR
0.15
0.20
0.25
0.30
0.35
/
K_X UNIF
FUNC XXXX
-- XXXX K_X (mD)
0.20 50
0.25 200
0.30 600
/
Note that if XXXX was replaced by PORO or DEPT keywords, the above example would be equivalent to
that of F(PO or F(DE keywords respectively.
Location
Description
The INTE keyword is used to specify distance weighted interpolation for an array. The required arguments for
the INTE keyword consists of two records. The first record follows directly after the INTE keyword on the same
line and consists of up to five optional arguments. The second record appears on a separate line below INTE and
consists of a table of values used to describe the location and value of the interpolation points. The size and format
of the table for Record 2 depends on the options chosen in Record 1.
Definitions
RECORD 1:
1. Exponent on the inverse distance (optional)
• Default: 1.0
• Minimum: 0.1; Maximum: 10
2. Number of nearest neighbours to include in the interpolation (optional)
• Default: 4
• Minimum: 2; Maximum: No limit
The record continues with the following descriptors in any order:
• RANGE followed by range of interpolation (values beyond this distance will be ignored) (optional)
– Default: Unlimited
– Minimum: 1.0E-6; Maximum: No limit
• NOXY or ALLX or TRIP or QUAD(optional)
– NOXY - no x and y-coordinates; use coordinates from previous usage
– ALLX - all of the x values are followed by all of the y-values and all values of the function values
(v-values)
– TRIP (default) - values are supplied as x,y,v triplets
– QUAD - values are supplied as x,y,v,r triplets where r is the radius of influence of the point
• SWIT (optional) - switch to the alternate input file to read the data
• NORO (optional) - do not do ROTA rotation-translation on input; ignored if ROTA is not used
RECORD 2:
1. Location of the ith interpolation point in the x-direction (xi )
2. Location of the ith interpolation point in the y-direction (yi )
3. Value of the array at point (xi , yi ) (vi )
Notes
• The INTE option uses a simple inverse distance weighting method. The values of exp and neighbours are
not critical when there are many values or when the locations are well distributed. However, in other cases
they may make some difference. You should use Tempest to view the values produced and check that they
are reasonable.
• The interpolation at a location (x, y) uses the n nearest interpolation points to (x, y). n is the minimum of
the number of neighbours specified in Item 2 of Record 1, or the number of lines in Record 2, whichever is
the least. For example, when using the QUAD option, at a given point (x, y), the interpolant is given by
Pn vj
j=1 ((x−x )2 +(y−y )2 ) p
2
j j
v = Pn 1
j=1 ((x−x )2 +(y−y )2 ) p
2
j j
where p is the exponent specified in Record 1, and the sums are over the n nearest neighbours (xj , yj ), j =
1, . . . , n. For the TRIP option, p = 12 . If RANGE (= r) is specified in Record 1, then only neighbours
p
within the range are included in the sums, such that (x − xj )2 + (y − yj )2 < r.
• Data entry formats for Record 2 of the TRIP, ALLX, and NOXY options:
Record 2: (for TRIP option (default))
x1 y1 v1
x2 y2 v2
: : :
/
Record 2: (for QUAD option)
x1 y1 v1 r1
x2 y2 v2 r2
: : : :
/
Record 2: (for ALLX option)
x1 x2 ...
y1 y2 ...
v1 v2 ...
Examples:
1. INTE is used to specify variable permeability using distance weighted interpolation. By default, data values
will be read and supplied as x,y,x triplets (TRIP option). See INTE.dat for complete example:
K-X UNIF
INTE
0 0 8
3734 0 11
0 1867 9
3734 1867 12
1867 933.5 14 /
I = 1 2 3 4 5 6 7 8 9
J=1 8.000 9.404 10.287 10.950 11.336 11.797 11.630 11.388 11.000
J=2 9.271 9.781 10.584 11.481 12.111 12.215 11.842 11.567 11.405
J=3 9.812 10.195 10.919 12.033 14.000 12.669 12.126 11.858 11.734
J=4 9.736 10.140 10.835 11.672 12.280 12.405 12.092 11.927 11.870
J=5 9.000 9.945 10.643 11.232 11.611 12.080 11.986 11.930 12.000
2. INTE is used with the ALLX option to specify variable porosity using distance weighted interpolation. See
INTE_PORO.dat for complete example:
I = 1 2 3 4 5 6 7 8 9
J=1 0.0900 0.1027 0.1051 0.1077 0.1120 0.108 0.1063 0.1017 0.1010
J=2 0.1031 0.1066 0.1098 0.1080 0.1095 0.107 0.1042 0.1013 0.1007
J=3 0.1088 0.1105 0.1150 0.1104 0.1085 0.106 0.1020 0.0997 0.0986
J=4 0.1121 0.1113 0.1107 0.1103 0.1074 0.106 0.1014 0.0981 0.0962
J=5 0.1200 0.1128 0.1118 0.1092 0.1050 0.103 0.1010 0.0964 0.0900
3. This sets the porosity in a number of circles in the xy space using the QUAD input option. Note that where
a cell is not within range of any of the specified points the previous cell value remains in place.
Porosity (fraction)
POROSITY UNIF
CONSTANT
0.1
POROSITY UNIF
INTE 2* QUAD
100 100 0.2 500
1000 1000 0.3 1000
2000 2000 0.4 1000
/
4. This example sets the user array KKM to a value of 3 within 300 metres of the point x=50,y=50:
KKM=1
KKM UNIF
INTE 2 10 RANGE 300 TRIP
50 50 3
/
Location
Description
The LINE keyword is used to specify linear (in the x or y-directions) or bi-linear (in the x and y-directions) inter-
polation for an array. Using the LINE keyword after a specified array name will allow for the linear interpolation
of the values of that array in the x and/or y directions between specified values.
LINE is to be used after a defined array name and its arguments consist of up to four records. The first record
follows directly after the LINE keyword and consists of up to three optional arguments. The second, third, and
fourth records each appear on separate lines below the LINE keyword and consist different arrays of values.
Definitions
RECORD 1:
1. NOXY or IN_X or IN_Y or X&Y (optional)
• NOXY - no x and y values are supplied; use same values as last time
• IN_X - linear interpolation in the x-direction; this is the only option for a 1-D problem or a 2-D cross
section (X-DI may also be used)
• IN_Y - linear interpolation in the y-direction (Y-DI may also be used)
• X&Y (default) - bi-linear interpolation in the x and y-directions
2. NORO (optional) - do not do ROTA rotation-translation on input; ignored if ROTA not used
3. SWIT (optional) - switch to the alternative input file to read the data
RECORD 2:
1. Locations of the ith interpolation points in x (list must be terminated with a slash)
• Omitted for the IN_Y or NOXY options
RECORD 3:
1. Locations of the jth interpolation points in y (list must be terminated with a slash)
• Omitted for the IN_X or NOXY options
RECORD 4:
1. Value of the array at each (x,y) point
• These values must be supplied for all x-values at y1 and then for all x-values at y2 and so forth until
all values have been supplied.
• No slashes are allowed until after the last point.
Examples
1. In a 10x10x5 grid, LINE is used with IN_X to perform linear interpolations in the x-direction for the x-
permeability array. The UNIF sub-keyword is also used with K_X to indicate that the arrays are uniform by
layer and only one layer of interpolation values will be provided.
K_X UNIF
LINE IN-X
500 9500 /
100 150 /
Tempest MORE will linearly interpolate the missing data between the given user data as shown below. See
LINE_KX_Ex1.dat for complete example:
2. Similar to the example above, in a 10x10x5 grid, LINE is used with IN_Y to perform linear interpolations
in the y-direction for the x-permeability array. See LINE_KX_Ex2.dat for complete example:
K_X UNIF
LINE IN-Y
500 9500 /
100 150 /
3. In a 10x10x5 grid, LINE is used with IN_X to perform linear interpolations in the x-direction for the
x-permeability array. This example is similar to Examples 1 and 2 above except that it shows that
users can input more than two points for Tempest MORE to interpolate between, as shown below. See
LINE_KX_Ex3.dat for complete example:
K_X UNIF
LINE IN-X
500.0 3690.0 7380.0 9500.0 /
100.0 107.2 123.9 150.0 /
Tempest MORE will then linearly interpolate the missing data between the given user data as shown below:
4. In a 4x4x3 grid, LINE is used to perform linear interpolations in the x-direction for the depth array at the
top of the first layer. See LINE_DEPT.dat for complete example:
5. In a 2x2x1 grid, LINE is used to perform bi-linear interpolations in the x and y-directions for the porosity
array. For the 6 interpolation points we are have specified, 9 interpolation values for porosity will be
required, one for each corner of every cell at the x and y-locations specified. See LINE_PORO.dat for
complete example:
PORO UNIF
LINE
0 5000 10000 /
0 5000 10000 /
0.10 0.12 0.14 0.20 0.22 0.24 0.30 0.32 0.34 /
A linear interpolation will then be performed at each face of the cells using the porosity values we have
specified above for each cell corner, resulting in 4 different porosity values. An average is then taken of
those 4 values and that is the value that is displayed in the 3D Viewer for that cell, as shown below:
6. In a 2x2x1 grid, LINE is used to perform bi-linear interpolations in the x and y-directions for the porosity
array. Then, LINE is used again, but this time with the NOXY option, to perform bi-linear interpolations
in the same x and y-directions for the x-permeability array. See LINE_PORO_KX_NOXY_Ex6.dat for
complete example:
PORO
LINE
0 5000 10000 /
0 5000 10000 /
0.10 0.12 0.14 0.20 0.22 0.24 0.30 0.32 0.34 /
K_X
LINE NOXY
100 110 120 130 140 150 160 170 180 /
Location
Description
The MODI keyword is used to modify the array values of specific cells. This keyword is usually placed on a
separate line under a defined array name. Exceptions to this rule occur when MODI is used to modify the trans-
missibility arrays (T_X, T_Y, T_Z ), pore volume arrays (PVOL), or depth arrays (DEPT). For more information
regarding the treatment of MODI with these keywords, see the Notes section.
Arguments for MODI consist of two records. The first record requires six arguments, placed on the same line
as the MODI keyword, to indicate the location of the cells whose values are to be modified. The two optional
arguments, ZERO and NINT, should also appear on this line. The second record consists of one or more (up to
four) modifier arguments which are entered on a separate line below the MODI keyword.
Definitions
RECORD 1:
1. First point to modify in the x (i) direction
• Default: 1
2. Last point to modify in the x (i) direction
• Default: maximum x (i) coordinate
3. First point to modify in the y (j) direction
• Default: 1
4. Last point to modify in the y (j) direction
• Default: maximum y (j) coordinate
5. First point to modify in the z (k) direction
• Default: 1
6. Last point to modify in the z (k) direction
• Default: maximum z (k) coordinate
7. ZERO (optional) - indicates that values less than xmin should be set to zero
8. NINT (optional) - round off the values to the nearest integer
RECORD 2:
1. Constant to be added (xadd)
• Default: 0
2. Multiplier (xmult)
• Default: 1
3. Minimum value (xmin)
• Default: 0
4. Maximum value (xmax)
• Default: 1020
Notes
Examples
1. Given an array with a porosity of 0.10 throughout, MODI is used to add 0.05 to porosity values in cells 4,7,1
to 6,10,5. See MODI_PORO_ADD.dat for complete example:
PORO
MODI 4 6 7 10 2*
0.05
2. Given an array with a porosity of 0.10 throughout, MODI is used to multiply all porosity values in layer 2
by 0.4. See MODI_PORO_MULT.dat for complete example:
PORO
MODI 4* 2 2
0 0.4
3. Given the initial porosity distribution seen in the “ORIGINAL” figure below, MODI is used to assign a
minimum porosity of 0.15 to all cells with a porosity that is less than 0.15. See MODI_PORO_MIN.dat for
complete example:
PORO
MODI 6*
2* 0.15
4. Given the initial porosity distribution seen in the “ORIGINAL” figure below, MODI is used to assign a
maximum porosity of 0.15 to all cells with a porosity that exceeds 0.15. See MODI_PORO_MAX.dat for
complete example:
PORO
MODI 6*
3* 0.15
5. Given the initial porosity distribution seen in the “ORIGINAL” figure below, MODI and ZERO are used to
assign a porosity of 0 to all cells with a porosity value that is less than 0.15. See MODI_PORO_ZERO.dat
for complete example:
PORO
MODI 6* ZERO
2* 0.15
6. Given the initial x-permeability distribution seen in the “ORIGINAL” figure below, MODI and NINT are
used to round off the values to the nearest integer. See MODI_KX_NINT.dat for complete example:
K_X
MODI 6* NINT
4*
7. In a field unit system, given an array with a pore volume of 3.56x106 rb throughout, MODI is used to add
a constant of 2x106 to the pore volume array in rows i=6 to 10. See MODI_PVOL_ADD.dat for complete
example:
PVOL 6 10 1 10 1 5 MODI
20000000
8. In a field unit system, given an array with a pore volume of 3.56x106 rb throughout, MODI is used to multiply
the pore volume array in rows i=4 to 6 by 2.0. See MODI_PVOL_MULT.dat for complete example:
PVOL 4 6 1 10 1 5 MODI
0 2.0
9. In a field unit system, given an array with a pore volume of 3.56x106 rb throughout, MODI is used to assign a
minimum pore volume of 4x107 ft3 to the cells in rows i=1 to 5 which have a pore volume less than 4x107 ft3
(or 7.12x106 rb). See MODI_PVOL_MIN.dat for complete example:
PVOL 1 5 1 10 1 5 MODI
2* 40000000
(Note that when field units are used, pore volumes will be displayed in rb in the 3D viewer, as shown in the
figure below, despite being input in ft:sup:‘3‘.)
10. Given the initial cell centre depths seen in the “ORIGINAL” figure below, MODI is used to lower the centre
depths of all cells by 500. The DOGR keyword must be used in this case to force grid calculations before
depths can be modified using MODI. See MODI_DEPT_ADD.dat for complete example:
DOGR
DEPT 6* MODI
500
Location
Description
The REPL keyword is used to replace the array values in specific cells. This keyword is usually placed on a
separate line under a defined array name. Exceptions to this rule occur when REPL is used to modify the trans-
missibility arrays (T_X, T_Y, T_Z), pore volume arrays (PVOL), or depth arrays (DEPT). For more information
regarding the treatment of REPL with these keywords, please refer to the Notes section below.
Arguments for REPL consist of two records. The first record requires six arguments which follow directly after
the REPL keyword to indicate the location of the cells whose values are to be replaced. The second record, entered
on a separate line below REPL, consists of an array of the values used to replace the original values in the specified
cells.
Definitions
RECORD 1:
1. First point to replace in the x (i) direction
• Default: 1
2. Last point to replace in the x (i) direction
• Default: Maximum x (i) coordinate
3. First point to replace in the y (j) direction
• Default: 1
4. Last point to replace in the y (j) direction
• Default: Maximum y (j) coordinate
5. First point to replace in the z (k) direction
• Default: 1
6. Last point to replace in the z (k) direction
• Default: Maximum z (k) coordinate
RECORD 2:
1. Values used to replace the original values in the cells specified in Record 1
Notes
• When REPL is used to replace values in an existing array, the values entered will take on the units that the
array is defined in in Tempest MORE.
• When using REPL with the transmissibility arrays (T_X, T_Y, T_Z), pore volume arrays (PVOL), or depth
arrays (DEPT), a different format from that described above must be used. In these cases, the array name
should be followed directly by Record 1 and then the REPL keyword. On a separate line below that should
be Record 2. Please see Examples 2 and 3 below for more information.
• When REPL is used with PVOL to replace pore volumes in specified cells, the values entered will be in ft3
(Field) or m3 (Metric). However, please note that when field units are used, PVOL will be converted to and
displayed on the 3D viewer in rb instead of ft3 . Please see Example 2 below for more information.
• When REPL is used with any of the transmissibility arrays (T_X, T_Y, or T_Z)to replace the transmissibility
in specified cells, the values entered will be in md-ft (Field) or md-m (Metric). However, please note that
when field units are used, these transmissibilities will be displayed on the 3D viewer in cP.rb/day/psi instead
of md-ft.
• When replacing transmissibility values, note that the transmissibility is associated with the lower index of
the connected cells. For example, the x-transmissibility between cell (1,1,1) and (2,1,1) is associated with
cell (1,1,1).
• Depth modifications can be only be performed in this way after DOGR or EDIT has been used to perform
the grid calculations. Otherwise, DEPT is a normal grid keyword, which is an alias for ZGRI.
• When using DEPT with REPL, the entry must be terminated with a slash appearing on a separate line after
the last entry in Record 2. Please see Example 2 for more information.
• After the grid calculations have been performed, modifying depths will not effect the cell locations or
transmissibilities.
Examples
1. Given a 10x10x5 grid with a porosity of 0.10 throughout, REPL is used to replace the first three porosity
values in rows 4 and 5 of the first and second layers. See REPL.dat for complete example:
PORO
REPL 1 3 4 5 1 2
0.12 0.23 0.20
0.15 0.18 0.19
0.22 0.16 0.17
0.21 0.14 0.11
2. In a field unit system, given a 10x10x5 grid with a pore volume of 2x107 ft3 (or 3.56x106 rb) throughout,
REPL is used to replace the pore volume in rows i=1 to 5 with 4x107 ft3 . See REPL_PVOL.dat for complete
example:
PVOL 1 5 4* REPL
250*40000000
(Please note that when field units are used, pore volumes will be displayed in rb in the 3D viewer, as shown
in the figure below, despite being input in |ft3|.)
3. Given a 4x4x4 grid, REPL is used to set new cell centre depth values for the reservoir. The DOGR key-
word must be used in this case to force grid calculations before depths can be replaced using REPL. See
REPL_DEPT.dat for complete example:
DOGR
DEPTH 6* REPL
5200 5600 5300 5700
5200 5600 5300 5700
5200 5600 5300 5700
5200 5600 5300 5700
Location
Description
The VARI keyword is used to specify that the input for an array is entered with values that are variable by layer.
VARI is the default processing method. Essentially, it simply specifies that the data will follow the grid array
sub-keyword. VARI’s arguments consist of two records. The first record is an optional argument used to describe
the format of the values supplied in the second record. This optional argument should follow directly after the
VARI keyword on the same line if used. The second record starts on a separate line below the VARI keyword and
consists of the values to be assigned to the array. The number of values required in the second record depends on
the option chosen in the first record.
Definitions
RECORD 1:
1. DISC or CONT or BLOC (optional)
• DISC - values are supplied in DISC format: 4 · Nx · Ny values
• CONT - values are supplied in CONT format: (Nx + 1)(Ny + 1) values
• BLOC (default) - values are supplied for BLOC format: Nx · Ny values
(where Nx = number of cells in the x-direction and Ny = number of cells in the y-direction)
RECORD 2:
1. The values to be assigned to the array
Notes
• When entering the values to be assigned to the array, no slashes are allowed, except on the last line. Inline
comments can be supplied using a slash followed by an asterisk (/*).
• One disadvantage of the VARI method is that the data format depends on the grid size - ZVAR, LINE, and
INTE options are independent of the Nx and Ny so may be preferable to the VARI option when changes to
the grid are anticipated.
Examples
1. In a 10x10x5 grid, VARI is used with a porosity array to specify variable porosities by layer. See
VARI_PORO.dat for complete example:
PORO
VARI
100*0.10
100*0.12
100*0.14
100*0.16
100*0.18
Location
Description
The ZVAR keyword is used to specify values of a data item for each layer. ZVAR must be used with a defined
array name. The arguments required for ZVAR consist of a list of values of the data item for each layer of the
model. These arguments should be supplied on separate lines below the ZVAR keyword.
Definitions
1. Value of the data item for each layer in the model. The number of values required depends on the vertical
variation selected on the line with the array name.
• Default: 0
Notes
• Since ZVAR defines all layers, it should not be used with other grid processing method keywords to define
an item.
Example
1. In a 10x10x5 grid, ZVAR is used to specify porosity values for each layer. See ZVAR.dat for complete
example:
PORO
ZVAR
0.10 0.12 0.14 0.16 0.18
Location
GRID Section
Description
The ACTN keyword is used to indicate whether the cells in a grid are active or inactive. Its arguments consist of
an array of active cell integer values. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (i.e. 150*1 can be used to assign a value of 1 to 150 cells).
Definitions
Notes
• This keyword is the only way of activating cells that have been made inactive, e.g. by using the PVOL
keyword.
• In a thermal run, setting ACTN to 2 will result in a cell which is purely rock. A very small pore volume of a
millionth of the original pore volume is retained, but isolated from the simulation.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format;
see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI and ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. ACTN is used to populate a 10x10x5 grid with 500 active cell integer values. See ACTN.dat for complete
example:
ACTN
0 1 1 1 1 1 0 1 0 1
1 0 1 0 0 1 0 0 1 1
1 1 0 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0 1 1
1 0 0 1 1 1 0 0 0 0
1 1 1 1 1 0 0 0 1 1
0 0 0 1 0 0 0 0 0 1
0 0 1 0 0 1 1 1 1 0
1 0 0 0 0 0 1 1 1 1
1 1 1 0 1 0 0 1 1 0
200*1
100*0
100*1
Toggling the Show data and cell outlines from inactive cells button on and off will allow for the user
to display or hide the inactive cells. When this button is toggled off , the grid above will appear as
follows:
Location
GRID Section
Description
The AQCD keyword is used to connect an aquifer at a given depth. This keyword consists of two required
arguments and one optional one, all of which directly follow AQCD on the same line.
Definitions
Notes
Examples
1. AQCD is used to connect the AQ1 aquifer at a depth of 5400 in all equilibration regions. See AQCD.dat for
complete example:
As a result, all cells below 5400 are made inactive and the water saturation in the grid appears as follows:
Additionally, the following data will appear in the Summary tab of the results for 2D plotting:
The addition of GENE with the AQUI option in the RECU section will also output the aquifer data shown
below into the Print file:
AQIF====================================================================
Aquifer Report at 2 Jan 2000, 1.0 days
========================================================================
Location
GRID Section
Description
Definitions
Notes
• NUMA keyword should be entered in the INPU section for numerical aquifers.
• Numerical aquifer’s depth (argument 10) should be below the oil-water contact.
• Initial pressure (argument 11) should be defaulted for equilibrated solution, and is required for non-
equilibrated solution (see example 5).
• Numerical aquifer connections can be set up using the keyword AQNC.
• Event CNAC can be used to complete a well in the numerical aquifer (see example 2).
• Use the argument AQUI under the GENE keyword to request output of aquifer status reports.
• Connections will be made between the first cell in a numerical aquifer and the grid.
• The user can cycle between grid, numerical aquifer or both using the toggle button in the 3D viewer.
– (default option) will show both the grid and the aquifers.
Examples
1. AQNN is used to set up a 5-cell numerical aquifer, named A1, with a cross-sectional area of 10,000 m2 ,
length of 6000 m, thickness of 25 m, porosity of 0.5, permeability of 100 mD, rock compressibility of
4*10-5 bar-1 , rock compressibility reference pressure of 2600 bars and depth of 5650 m.
AQNN is also used to set up another aquifer named A2. A2 is the same as A1 except that it has a length
of 2000 m and a thickness of 50 m. Equilibrated solution is setup so initial pressure (11th argument) is
defaulted. See aqn0.dat for complete example:
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
ETAB
P-1
0 PROD
0 CIJK 12 12 1 4 0.5 1 0 1* 1* COPEN DIR Z
0 LPT 100
0 BHPT 100
ENDE
Groups NA_A1, NA_A2 and Reservoir are added under the Group Tab:
The aquifer flux rates and totals are reported under Summary tab:
Numerical Aquifer A1 and the Reservoir will appear in the 3D viewer as follows. Note that the both the
aquifer and the reservoir are shown to scale:
The following report, on Numerical Aquifer cells and connection blocks, is generated in the Print file:
AQUN======================================================================================
Index Name Number Cell Cross Length Thickness Porosity Pore Perm
,→ Depth Initial Reference Reference PVT Sat Equil
of section volume
,→ pressure compress. pressure table table table
cells sq metre metre metre rm3 mD
,→ metre barsa 1/bars barsa
----- ------ ------- ----- -------- -------- --------- -------- -------- ------
,→-- -------- -------- --------- --------- ----- ----- -----
2. This example is the same as the first one except that the producer well P-1 is completed in the 4th cell of the
aquifer A1. Another producer well P-2 is completed in the 3rd cell of aquifer A2. See aqne.dat for complete
example:
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
ETAB
P-1
0 PROD
0 CNAC A1 4
0 LPT 100
0 BHPT 100
P-2
0 PROD
0 CNAC A2 3
0 LPT 100
0 BHPT 100
ENDE
3. This example is the same as the first one except that this example has an injector well I-1 with a polymer
concentration of 0.15 kg/m3 . See aqnp.dat for complete example:
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
ETAB
I-1
0 INJE
0 CIJK 1 1 1 4 0.5 1 0 1* 1* COPEN DIR Z
0 WIT 4000
0 POLY 0.15
0 BHPT 4000
ENDE
Polymer influx rates and totals in the numerical aquifer can be seen in the Print Tab:
AQIN======================================================================================
Numerical Aquifer Report at 1 Jan 2010, 3653.0 days
==========================================================================================
Aquifer Aquifer Inflow Inflow Cell Pressure Oil Gas Water
,→ Heat Heat Polymer Polymer
index name rate total satn satn satn
,→ inflow inflow inflow inflow
(into reservoir)
,→ rate total rate total
sm3/day ksm3 barsa
,→ MJ GJ Kg/day kKg
-------- ------- --------- ---------- ---- -------- ------ ------- --------
,→ ------- ------- -------- --------
4. This example is the same as the first one except that this example has an injector well I-1 with an injection
temperature of 278o C. See aqnt.dat for complete example:
AQNN A1 5 1E4 6000 25 0.5 100 4.0e-05 305 5650 /
AQNN A2 5 1E4 2000 50 0.5 100 4.0e-05 305 5650 /
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
ETAB
I-1
0 INJE
0 CIJK 1 1 1 4 0.5 1 0 1* 1* COPEN DIR Z
0 TEMP 278
0 WIT 100
0 BHPT 6000
ENDE
Heat inflow rates and totals in the numerical aquifer can be seen in the Print Tab:
AQIN======================================================================================
Numerical Aquifer Report at 1 Jan 2001, 366.0 days
==========================================================================================
5. This example is the same as the first one except that non-equilibrated solution is setup. Hence, an initial
pressure (11th argument) value of 300 bars is entered. AQNN is also used to set up another aquifer named
A2. A2 is the same as A1 except that it has a length of 2000 m and a thickness of 50 m. Equilibrated
solution is setup so initial pressure (11th argument) is defaulted. See aqn0_nequ.dat for complete example:
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
/ ======================================================================
INIT NEQU
/ ======================================================================
F(DEPTH) T P Pb SG SW
2320 1* 500 100 0.0 0.20 /
/
Initial pressure in the reservoir and numerical aquifers A1 and A2 is shown in the 3D viewer:
Location
GRID Section
Description
Definitions
Notes
• The aquifer will be connected to any available face in the specified direction in the box. This includes both
external faces on the edge of the reservoir and internal faces with no active neighbour. For the purposes of
AQNC, Z is regarded as increasing downwards.
An aquifer connection is made if is no active neighbour in the specified direction within the box. However,
this may not be the desired behaviour when the neighbour is inactive due to a MINP limit. Setting the 12th
argument to N ensures no connection is made in this case. Then aquifer connections will only be made
when the neighbour is inactive because ACTN =0.
• This information may also be read as the ECLIPSE format AQUCON keyword.
• The K+ direction corresponds to the bottom face of a cell.
• Keyword AQNN is used to set up a numerical aquifer.
• The transmissibility between the first aquifer cell and a reservoir cell is calculated as Ta,r = [la /(2ka aa ) +
lr /(2kr ar )]−1 , where ka,r , aa,r , la,r denote the permeability, cross-section and length of the aquifer and
reservoir cell, respectively. Setting the 10-th argument to 1 sets aa := ar .
• Setting the 11-th argument to Y can lead to unexpected results, such as connecting the aquifer to the middle
of the reservoir, and is thus discouraged.
• When an optional region is supplied as the 13th argument, it may be convenient to define this region by
using the DEFI keyword.
If the DEFI keyword is defined in the GRID section, it is essential to use the SAVE argument to ensure the
array does not get deleted after processing of the GRID section.
Examples
1. AQNN is used to set up aquifers A1 and A2. AQNC is used to connect aquifers A1 and A2 to lower face of
reservoir. See aqn0.dat for complete example:
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
ETAB
P-1
0 PROD
0 CIJK 12 12 1 4 0.5 1 0 1* 1* COPEN DIR Z
0 LPT 100
0 BHPT 100
ENDE
Groups NA_A1, NA_A2 and Reservoir are added under the Group Tab:
The aquifer flux rates and totals are reported under Summary Tab:
Numerical Aquifer A1 and the Reservoir will appear in the 3D viewer as follows. Note that the both the
aquifer and the reservoir are shown to scale:
The following report, on Numerical Aquifer cells and connection blocks, is generated in the Print file:
AQUN======================================================================================
Index Name Number Cell Cross Length Thickness Porosity Pore Perm
,→ Depth Initial Reference Reference PVT Sat Equil
of section volume
,→ pressure compress. pressure table table table
cells sq metre metre metre rm3 mD
,→ metre barsa 1/bars barsa
----- ------ ------- ----- -------- -------- --------- -------- -------- ------
,→-- -------- -------- --------- --------- ----- ----- -----
2. AQNC is used to connect the AQ1 aquifer in the X, Y and Z+ direction to layers 12-18 in a model. The areal
extent of the connection is described by a user-defined region array ASEC.
In the GRID section (typically an include file is used to import the definition of ASEC from another pro-
gram):
DEFI ASEC
'Aquifer connection region'
Location
GRID section
Description:
The BETA keyword is used to populate the cells in a grid with beta values. Beta values are used when evaluating
the effect of Forchheimer non-Darcy flow. In Forchheimer flow, the usual linear relationship between the fluid
flow and the pressure gradient breaks down. This can be represented by an extra contribution to the pressure drop
which goes like the square of the fluid velocity.
In all unit sets, BETA values are entered in units of the Forchheimer, with
1atm g
1F = ∗
sec2 m−1
See the Forchheimer Flow section of the MORE Technical Reference for details of Forchheimer flow.
The BETA keyword may be followed by an array of values. Cells will be populated in the x-direction first,
followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a
value to a specified number of cells.
Definitions
1. BETA values
• Default: 0
• Minimum: 0; No maximum
Notes
All the usual methods available for entering grid data are available for use with BETA - see for example, the
PORO keyword. These include CONS, ZVAR and the use of expressions. Expressions are particularly useful with
BETA, and the Forchheimer coefficient is often regarded as a function of permeability or porosity.
Users may find that available values of BETA are in units other than the Forchheimer. The Forchheimer has units
of inverse length, so the following conversion factors may be useful:
• 1F = 1.01325*106 cm-1
• 1F = 1.01325*108 m-1
• 1F = 1.01325*30.48*106 = 3.0884*107 ft-1
Beta values specified in inverse length units are typically rather large numbers and the Forchheimer, as proposed
by Holditch and Morse, SPE 5586, typically yields beta values of order 10F. So if a value has been supplied in
units of 1/cm, divide by 1.01325*1.06 to convert to Forchheimer units.
Examples
BETA=5.6
Location
GRID Section
Description
The CLAN keyword is used to populate the cells in a grid with a Langmuir constant in a coal bed methane system.
The Langmuir constant controls the volume of coal gas per mass of rock. When CLAN is used, the coal bed
methane option must be turned on using the CBM keyword in the INPU or FLUI sections. Arguments for the
CLAN keyword consist of an array of Langmuir constants.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. Langmuir constants
• Units: scf/ton (Field), sm3 /tonne (Metric)
• Default: 0
Notes
• To set up global values of the Langmuir constants, the LANG keyword should be used. Values which vary
across the field may be set up using the CLAN, PLAN, and TLAN keywords.
• For compositional coal bed methane models, keywords like CLN1, CLN2 etc. are used instead of CLAN;
see CLNn keyword for more information.
• The units employed in CBM modelling are different from the usual MORE ones. The Langmuir constant is
in terms of scf/ton, not Mscf, in field units and sm3 /tonne, not ksm3 , in metric units.
• A metric tonne is 1000kg. A field unit ton is a short (USA) ton of 2000lb.
• See Coal Bed Methane Modelling for more information regarding coal bed methane modelling in Tempest.
please
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
CLAN
720 720 720 721 720 720 720 720 722 720
720 725 720 720 720 720 720 720 720 720
720 720 720 720 720 720 720 720 720 720
720 720 720 720 722 720 723 720 720 722
720 723 720 720 720 720 720 720 720 724
720 720 720 724 720 720 721 720 720 720
720 725 720 720 720 720 724 720 720 720
721 720 720 720 724 720 720 720 720 720
720 721 720 720 720 720 720 720 720 720
723 720 720 720 720 720 720 720 725 722
200*720
The Langmuir constant array will then appear in the Initial tab of the results for display in 3D, as shown
below.
Location
GRID Section
Description
The CLNn keyword is used to populate the cells in a grid with a Langmuir constant for each component in a
compositional coal bed methane system. The Langmuir constant controls the volume of coal gas per mass of rock.
When CLNn is used, the coal bed methane option must be turned on using the CBM keyword in the INPU or FLUI
sections. Arguments for the CLNn keyword consist of an array of Langmuir constants for each component. The
array for each component is identified by replacing the ‘n’ in the CLNn keyword with an integer number which
corresponds to the component as defined in the INPU section by the CNAM keyword.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. Langmuir constants for absorbed component ‘n’ + Units: scf/ton (Field), sm3 /tonne (Metric)
• Default: 0
Notes
• To set up global values of the Langmuir constants, the LANG keyword should be used. Values which vary
across the field in each component may be set up using the CLNn, PLNn, and TLNn keywords.
• For black oil coal bed methane models, the CLAN is used instead of CLNn. Please see the CLAN keyword
for more information.
• The units employed in CBM modelling are different from the usual MORE ones. The Langmuir constant is
in terms of scf/ton, not Mscf, in field units and sm3 /tonne, not ksm3 , in metric units.
• A metric tonne is 1000kgs. A field unit ton is a short (USA) ton of 2000lbs.
• See Coal Bed Methane Modelling for more information regarding coal bed methane modelling in Tempest.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In the example below, CLNn is used to populate a 9x9x4 grid with 324 Langmuir constants for two com-
ponents (CO:sub:2 and C1). The integer number associated with each component which is used to replaced
the ‘n’ in the CLNn keyword corresponds to the order in which these components are listed after the CNAM
keyword in the INPU section. See CoalBedMethane_EOS.dat for complete example:
Thus, component 1 will correspond to CO2 while component 2 will correspond to C1. The CLNn keyword
can then be used accordingly, as follows.
CLN1
720 720 720 721 720 720 720 720 722
720 725 720 720 720 720 720 720 720
720 720 720 720 720 720 720 720 720
720 720 720 720 722 720 723 720 720
720 723 720 720 720 720 720 720 720
720 720 720 724 720 720 721 720 720
720 725 720 720 720 720 724 720 720
721 720 720 720 724 720 720 720 720
720 721 720 720 720 720 720 720 720
723 720 720 720 720 720 720 720 725
243*720
CLN2
722 723 722 722 722 722 722 722 720
722 722 720 722 722 722 722 722 722
722 722 722 722 722 721 722 722 722
722 722 724 722 722 722 722 722 725
721 723 722 722 722 723 721 722 722
722 722 720 722 722 722 722 723 722
722 722 725 722 722 722 722 722 722
722 722 721 722 722 722 722 722 722
722 722 722 722 724 722 722 722 720
243*722
The Langmuir constant arrays for CO2 and C1 will then appear in the Initial tab of the results for display in
3D, as shown below.
Location
Description
The CONS keyword is used to specify constant grid spacing in the x, y, or theta directions. This keyword must
appear after either the X-DI, Y-DI, or THET keywords. CONS consists of one required argument listed on a
separate line from the keyword itself.
Definitions
1. Total length of system in x or y direction (or total angle for the theta (θ) direction)
• Units: feet (Field), metres (Metric)
Notes
• CONS is treated rather differently for the radial R-DI case. Please see CONS (R-direction). for more
information.
Examples
1. In a 10x10x5 grid, X-DI is used with CONS to specify a uniform grid spacing and a total grid length of
10000.
X-DI
CONS
10000
2. In a 10x5x5 radial grid, THET is used with CONS to specify a uniform grid spacing and a total angle of
360o .
THET
CONS
360
Location
Description
The CONS keyword is used to specify constant grid spacing in the r-direction. This keyword must appear after the
R-DI keyword and consists of two required arguments which should appear on the separate line after the CONS
keyword is specified.
Definitions
Notes
• CONS is treated rather differently for the X-DI, Y-DI, or THET keywords. Please see CONS (X, Y, or THET
direction) for more information.
Examples
1. R-DI is used with CONS to specify a uniform grid spacing between the inner and outer radii of 0.5 and
2500, respectively. See CONS_R.dat for complete example:
R-DI
CONS
0.5 2500
Location
GRID Section
Description
The COOR keyword is used to establish coordinate lines on which the grid geometry may be constructed. COOR’s
arguments consist of two records. The first record contains an optional argument that should be written directly
after the COOR keyword on the same line if used. The second record consists of an array of the coordinate values.
The number of values needed depends on the coordinate option chosen in the first record. These values should
appear on separate lines below the COOR keyword. Following the final entry, a solitary slash (/) on a separate line
is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. ZXY or X&Y (optional)
• ZXY (default) - (N:sub:x+1)*(Ny +1) straight coordinate lines are specified (where Nx = number of
cells in the x-direction and Ny = number of cells in the y-direction). Each is defined by two points
at different depths. This default option is compatible with the ECLIPSE COORD keyword. - X&Y -
only x and y coordinate values are supplied. The z-direction coordinate lines are assumed straight and
parallel.
2. VERT (optional)
• Force coordinate lines to be vertical by setting the (X,Y) location for all points down each line to the
average of the supplied (X,Y) values.
RECORD 2:
1. Coordinate values (terminated by a slash (/) after the last entry)
Notes
• COOR does not completely define the grid - cell depth values must also be supplied by setting depths DEPT
or corner depth points for cells (ZCOR) and cell thicknesses THIC
• Few users will have occasion to generate COOR data by hand - this is almost universally generated by
pre-processors such as RMS, and commonly exported to MORE in GRDECL files.
Examples
1. COOR is used to specify the coordinates of a 3x3x10 grid. See COOR.dat for complete example:
COOR
-- x1 y1 z1 x2 y2 z2
0.00 0.00 5000.00 0.00 0.00 6000.00
1000.00 0.00 5000.00 1000.00 0.00 6000.00
2000.00 0.00 5000.00 2000.00 0.00 6000.00
3000.00 0.00 5000.00 3000.00 0.00 6000.00
0.00 1000.00 5000.00 0.00 1000.00 6000.00
1000.00 1000.00 5000.00 1000.00 1000.00 6000.00
2000.00 1000.00 5000.00 2000.00 1000.00 6000.00
3000.00 1000.00 5000.00 3000.00 1000.00 6000.00
Location
GRID Section
Description
The CROC keyword is used to populate the cells in a grid with rock compressibility values. Its arguments consist
of an array of rock compressibility values. Cells will be populated in the x-direction first, followed by the y-
direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified
number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. CROC is used to populate a 10x10x5 grid with 500 rock compressibility values. See CROC.dat for complete
example:
CROC
100*3.15e-06
100*2.78e-06
100*3.41e-06
100*3.21e-06
100*2.86e-06
Location
GRID Section
Description
The DATU keyword is used to specify the datum depth of the grid. It consists of one required argument and one
optional argument, both of which should follow directly after the DATU keyword on the same line. The datum
depth is mainly used in (i) calculating global and regional pressure averages, and (ii) setting bottom hole pressures
for all wells consistently.
Definitions
1. Datum depth
• Units: feet (Field), metres (Metric)
• Default: the top active cell in the reservoir
2. TOPC or TOPL (optional) - Assign an individual bottom hole reference depth to each well when it is first
opened.
• Default: none
Notes
• It is recommended that a datum depth should normally be specified since the default value is usually not
appropriate.
• The datum depth is used when reporting cell potentials and datum-corrected pressures. See the technical
appendix. It also provides a default reference depth for tubing head pressure tables (TUBI).
• When the DATU keyword is not specified, MORE calculates individual bottom hole reference depths for
each well as though the TOPC argument had been supplied.
• When TOPC or TOPL is set, the well reference depth is only calculated once at well opening time, no matter
if completions are opened or shut later. To dynamically modify the reference depth use event DREF.
• One of the following rules applies for calculating the well reference depths:
– TOPC: The reference depth equals the depth of the top open completion.
– TOPL: The reference depth equals the depth of the top reservoir cell connected to the well. This option
is only relevant to the improved well fracturing model, where reservoir layers outside the completion
range connect to the well.
Examples
1. DATU is used to assign a datum depth of 5000. See DATU_ex1.dat for complete example:
DATU 5000
2. DATU is used to assign a datum depth of 5000 and TOPC is also used to indicate that bottom hole pressures
will be calculated with reference to the top completion. See DATU_ex2.dat for complete example:
Location
Description
The DEFI keyword is used to define an array. Its arguments consists of two records The first record consists of one
required argument as well as optional arguments. These arguments should follow directly after the DEFI keyword
on the same line. The second record consists of one required argument enclosed in single quotes on a line below
the DEFI keyword.
Definitions
RECORD 1:
1. The name to be assigned to the array
This record may be followed by several optional arguments in any order:
• FLIP (optional) - designates the array as a fluid-in-place array; these arrays are saved for use through-
out the run and for post processing
• INTE or REGI (optional) - the array consists of INTEger values used to define a REGIon.
• SAVE (optional) - the array should be saved for use throughout the run and for post processing. This
is not required when using FLIP.
RECORD 2:
1. Title of the array enclosed in single quotes
Notes
• DEFI arrays in the GRID section are automatically added to the grid file and may be viewed using Tempest
VIEW. However DEFI arrays in the INIT section cannot be visualised using VIEW.
• Like all arrays, only the first four characters are used to identify a DEFI array, so these must be unique for
all DEFI arrays.
• FLIP arrays are treated as pore volume multipliers for fluid in place calculations. Defining an array as a
FLIP array will also create a new reporting group which will appear in the Groups tab of the results. This
new reporting group uses the pore volume multipliers specified when populating the FLIP array to calculate
fluids-in-place. When populating the FLIP array, if a fractional value such as 0.5 is used, 50% of the fluid
in the cell will contribute to the fluid in place total associated with the FLIP array. Please see Example #3
below for more information.
• The line following the DEFI keyword is always read as a title: it may be blank, but should not contain the
next significant keyword, as this would be mis-interpreted as a title.
• Once an array has been defined, it may be used just like any of the arrays which are predefined within the
simulator. The input of arrays is further discussed in the Array Data Entry section.
• By default, arrays specified using DEFI in the GRID section without either FLIP or SAVE will not persist
beyond the end of the GRID section. If DEFI is used in the GRID section to specify an aquifer connection
region for AQCO, it should be qualified with the INTE and SAVE flags.
• The SAVE flag is not required when using DEFI to indicate an aquifer connection region in the INIT section.
Examples
1. In this example, we need to define the layer permeabilities using the following Porosity-Permeability rela-
tionship:
K_X = (1/(72*TOR))*DP**2*PORO**3/(1-PORO)**2
We will need to define the particle size (DP) and tortuosity (TOR) arrays using the DEFI keyword before
the new K_X expression can be used, as follows. See DEFI_DP_TOR.dat for complete example:
DEFI DP
'Particle Size'
DEFI TOR
'Tortuosity'
These arrays are populated using the methods common to any of the other predefined arrays within the
simulator.
DP UNIF
CONS
100
TOR
ZVAR
0.005 0.004 0.003 0.002 0.001
Once the DP and TOR arrays have been defined, they can also be used just like any of the other predefined
arrays within the simulator. These arrays will appear in the Initial tab of the results, ready to be displayed
in 3D, as follows:
2. In this example, we show how grid processing expressions can be used to populate an array defined using
DEFI. We change the values in the x-permeability array by creating two new arrays, MPA and MPB, using
the DEFI keyword, as follows:
DEFI MPA
'PermMult_3'
DEFI MPB
'PermMult_Other'
These arrays and a new K_X array are then populated using grid processing expressions.
MPA = K_X*3*IEQ(FIPN,5)
MPB = K_X
K_X = MPA+MPB
The MPA array will be populated using the IEQ grid processing expression. IEQ is a function which returns
1 when its two arguments are equal, and 0 otherwise. Thus, in the expression for MPA above, x-permeability
will be multiplied by 3 only when the fluid-in-place region (FIPN) is equal to 5. The MPB array will retain
the x-permeability values which have been previously specified. Finally, the x-permeability array (K_X) is
changed to equal the value that results when the MPA and MPB arrays are added together.
Once the MPA and MPB arrays have been defined, they can also be used just like any of the other predefined
arrays within the simulator. These arrays will appear in the Initial tab of the results, ready to be displayed
in 3D, as follows. See DEFI_IEQ.dat for complete example:
3. In this example, DEFI is used to define an array called GCAP as a fluid-in-place array by using the FLIP
option.
GCAP UNIF
CONS
0.1
Once GCAP has been defined, it will appear in the Initial tab of the results, ready to be displayed in 3D, as
follows. See DEFI_GCAP_FLIP.dat for complete example:
Additionally, as GCAP has been defined as a FLIP array, a reporting group named GCAP will also be
created, which can be found in the Groups tab of the results for 2D plotting.
When the gas-in-place is plotted for both the entire field and the GCAP group, we can see that the gas-in-
place for GCAP is exactly 10% of the gas-in-place for the entire field, as shown in the figure below. These
values are expected since the GCAP array was populated with a pore volume multiplier of 0.1 when it was
defined above.
4. In this example, DEFI is used in the GRID section to define a region array called SECT which will then be
used to define a region for numerical aquifer connections using AQNC and AQCO:
In the GRID section:
The array SECT is then populated as an array of integers using grid processing expressions and may be used
to control connections to numerical aquifers.
AQNN
/-- Specify numerical aquifer
...
AQNC
/-- Specify numerical aquifer connections using the region SECT
...
AQCT
/-- Specify Carter-Tracy aquifer
...
AQCO
/-- Specify connections to the Carter-Tracy aquifer using the region SECT
...
Location
GRID Section
Description
The DEPT keyword is used to populate the cells in a grid with cell centre depth locations. Its arguments consist of
an array of cell centre depth locations. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. Cell Centre Depths
• Units: feet (Field), metres (Metric)
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO , FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for
further information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. DEPT is used to populate a 10x10x5 grid with 500 cell centre depth locations. See DEPT.dat for complete
example:
DEPT
100*5100
100*5300
100*5500
100*5700
100*5900
Location
Description
The DOGR keyword is used to force grid calculations to occur and request that pore volume and transmissibility
calculations are performed. This keyword must appear after the rock properties have been specified. DOGR does
not have any required arguments.
EDIT may be used as an alias to DOGR.
Notes
• Once DOGR is read, altering quantities which define the pore volumes and transmissibilities will have no
effect; however, PVOL, T_X , T_Y , T_Z and DEPT may be changed. Please see the PVOL, T_X , T_Y ,
and T_Z keywords for more information as they have special forms for entering a grid array. DEPT follows
the usual pattern for entering a grid array but now applies to the calculated cell centre depths used in the
simulation.
• After the grid calculations, the DEPT array is the cell centre depth and is a BLOC array.
• If DOGR is not specified, the grid calculations will automatically be performed when a transmissibility
value is encountered.
Examples
1. DOGR is used to force grid calculations to occur before lowering the centre depths of all cells by 500 using
the DEPT and MODI keywords.
DOGR
DEPT 6* MODI
500
Location
GRID Section
Description
The DPCF (Dykstra-Parsons Coefficient) keyword is used to enable the generation of a heterogeneous Dykstra-
Parsons relative permeability distribution. This generates a permeability distribution with a given standard de-
viation in log(K). The Gaussian random distribution may be started from a given seed to obtain repeatability if
required.
The DPCF keyword consists of two required arguments which should follow directly after the DPCF keyword on
the same line.
Definitions
Notes
• The Dykstra-Parsons method of generating a simple distribution of permeability values is described in the
Dykstra-Parsons chapter of the MORE Technical Reference.
• Essentially, the user-input values are treated as mean values, and a distribution is constructed. This is a
normal (or Gaussian) distribution in log(K) with a standard deviation obtained from the Dykstra-Parsons
coefficient.
• The Dykstra-Parsons coefficient is defined as:
EK =(K50 -K84.1 )/K50
where
– K50 is the permeability such that 50.0% of the sample has a higher permeability.
– K84.1 is the permeability such that 84.1% of the sample has a higher permeability.
• The sequence of pseudo-random numbers used to construct the Gaussian sequence is defined by a seed
value. This may be any integer in the range 1 to 231 -1, so there is plenty of choice. However, each seed will
generate a different uncorrelated sequence, so 1,2,3... may be used.
• If the seed argument is set to a number greater than 0, then this sets the seed value so that runs using this
seed number will be repeatable - i.e. they will always generate the same sequence of permeabilities. A
series of different seed values will generate a set of different distributions.
• If a seed argument of zero is specified, MORE will generate and report a unique new seed. Thus, successive
runs with a seed argument of zero will generate different sets of permeabilities. To re-generate one of these
runs, use the seed value reported in the output file and re-enter it as the seed argument.
Examples
DPCF 0.5 1
The figures below show the x-permeability and gas saturations arrays that result from the use of Dykstra-
Parsons coefficient. See DPCF.dat for complete example:
Location
Description
The DPOR keyword is used to request dual porosity modelling. DPOR will specify a double grid with gross
fracture permeabilities and no gravity drainage. This keyword consists of up to four optional arguments which
should follow directly after the DPOR keyword on the same line if used.
Definitions
1. MFC (optional) - use matrix-fracture condensation. This speeds the solver up by a factor of 2 to 3 times by
eliminating the matrix cells before entering the linear solver iteration. If this option is used DPOR must be
in the INPU section
2. GRAV (optional) - use gravity drainage
3. NET (optional) - treat fracture permeabilities as net (do not multiply by fracture porosity)
Notes
• The number of layers in the model must be even, and the first Nz /2 layers will be regarded as matrix cells,
the second Nz /2 as fracture cells.
• The corner point depth input may be simplified by using the DPGR keyword in the GRID section. This
allows the user to only enter the data for the matrix cells, which is then also used for the fracture cells.
• The position in space of the fracture cells will match the matrix cells - you need only enter cell location data
(for example, with COOR and ZCOR ) for the matrix cells.
• Each fracture cell will be connected to its matrix cell using a non-neighbour connection. The matrix-fracture
transmissibilities generated will be controlled by the sigma grid array.
• There are no transmissibilities directly between matrix cells in the dual porosity option - flow can only occur
between matrix cells via the fracture system.
• The GRAV option turns on gravity drainage modelling. If this option is used, the array DZMA should be set
to define the vertical height of the elements of the material which comprises the matrix volume.
• Permeabilities in the fracture system may be specified in net or gross terms. The use of the NET option
allows for the treatment of fracture permeabilities as net. In the absence of the NET option, the fracture
permeability will be read as a gross fracture permeability and the effective net permeability will be given
by:
Kfnet = Φf × Kfgross
Examples
1. DPOR is used to request dual porosity modelling with gravity drainage. See DPOR_GRAV.dat for complete
example:
DPOR GRAV
2. In this example, DPOR is used to request dual porosity modelling and by default, the permeability assigned
to the fracture using K_X will be a gross value.
DPOR
The resulting fracture permeability will then be displayed with its net value (100mD), instead of the entered
gross fracture permeability value (10000mD), in the 3D Viewer, as follows. See DPOR.dat for complete
example:
If we then introduce the NET option to the DPOR keyword, this will request that the fracture permeability
entered be treated as net values.
DPOR NET
The resulting fracture permeability, with a net value of 10000mD, is shown below. See DPOR_NET.dat for
complete example:
Location
Description
The DPER keyword is used to request dual permeability modelling. DPER will specify a double grid with matrix-
matrix flow, gross fracture permeabilities and no gravity drainage. This keyword is similar to the dual porosity
option requested by DPOR, but in this case, transmissibilities are generated directly between matrix cells. DPER
consists of two optional arguments which follow directly after the DPER keyword on the same line.
Definitions
Notes
• The number of layers in the model must be even, and the first Nz /2 layers will be regarded as matrix cells,
the second Nz /2 as fracture cells.
• The corner point depth input may be simplified by using the DPGR keyword in the GRID section. This
allows the user to only enter the data for the matrix cells, which is then also used for the fracture cells.
• For further details of the use of the dual permeability option in MORE, please refer to the MORE Technical
Reference.
Examples
1. DPER is used to request dual permeability modelling with gravity drainage and treating fracture permeabil-
ities as net. See DPER_GRAV_NET.dat for complete example:
Location
Description
The DPSS keyword is used to implement dual porosity source/sink modelling. This keyword consists of three
optional arguments which should all follow directly after the DPSS keyword on the same line.
Definitions
Notes
• DPSS uses a single input grid, so fracture properties must be specified using appropriate fracture grid key-
words, as listed in the “Arrays related to dual porosity modelling” section of the Discussion of Selected
Arrays article.
• When a DPSS run is initialized using non-equilibrium initialization (INIT NONE), the saturations may be
different in matrix and fracture, so separate keywords exist for the fracture saturations:
Keyword Default Description
fsoi Fracture oil saturation Description
fsga No Fracture gas saturation
fswa No Fracture water saturation
• The DPSS model strictly requires the use of fully implicit solver.
• For a full explanation of the DPSS option, see Dual Porosity Source/Sink (DPSS) Option in the MORE
Technical Reference.
Examples
1. DPSS is used to specify a dual porosity system with a single grid input and net fracture permeabilities.
DPSS NET
Location
GRID Section
Description
In dual porosity and dual permeability runs in which a double grid is being used, DPGR allows the cells depths
for just the first Nz/2 layers to be entered; these depths will be used for the second Nz/2 layers.
Syntax
DPGR
• This keyword takes no arguments
Examples
1. The following dual porosity example is based on a simple dataset using a grid of 1 x 1 x 4 cells (the first
two are matrix and latter two are fracture) with full grid geometry defined. See DPOR_without_DPGR.dat
for complete example:
SIZE 1 1 4
DPOR
COOR
0 0 4000 0 0 4020 --1st co-ordinate line
600 0 4000 600 0 4020 --2nd co-ordinate line
0 600 4000 0 600 4020 --3rd co-ordinate line
600 600 4000 600 600 4020 --4th co-ordinate line
/
ZCOR
4*4000 4*4010 --top and bottom corner point depth for 1st cell (matrix)
4*4010 4*4020 --top and bottom corner point depth for 2nd cell (matrix)
4*4000 4*4010 --top and bottom corner point depth for 3rd cell (fracture)
4*4010 4*4020 --top and bottom corner point depth for 4th cell (fracture)
/
This may be simplified using the DPGR keyword, so that only the matrix depths are sufficient. See
DPOR_with_DPGR.dat for complete example:
DPGR
ZCOR
4*4000 4*4010 --top and bottom corner point depth for 1st cell (matrix and
,→fracture)
4*4010 4*4020 --top and bottom corner point depth for 2nd cell (matrix and
,→fracture)
This can be very handy in large models with Gigabytes of ZCOR data.
Location
GRID Section
Description
The DZMA keyword is used to populate the cells in a grid with matrix material unit heights in dual porosity or
dual permeability systems with the gravity drainage option activated. When DZMA is used, the dual porosity or
dual permeability options must be turned on using the DPOR or DPER keywords, respectively, with the GRAV
option turned on in the INPU or GRID sections. Arguments for the DZMA keyword consist of an array of matrix
material unit heights.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information regarding dual porosity/permeability systems, please refer to the MORE Technical
Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. DZMA is used to populate an 8x8x2 grid with 128 matrix material unit heights.
DZMA
128*2.0
The DZMA array will then appear in the Initial tab of the results for display in 3D, as shown below:
The display can be switched between matrix and fracture grids by clicking on the Swap between matrix and
fracture (dual porosity models) button located on the toolbar on the left-hand side of the 3D Viewer.
Location
GRID section
Description
The EEGR keyword is used to output an ECLIPSE extensible gridfile. EEGR will write an ECLIPSE extensible
gridfile (often known as an EGRI file). The file suffix will be .egrid or .fegrid for the unformatted and
formatted cases, respectively. The EEGR keyword consists of one optional argument which, if used, also requires
its own argument. These entries should directly follow the EEGR keyword on the same line if used.
Definitions
1. FLIP (optional) - allows the y-axis to be inverted if required (the default value of y is 0)
2. y-transformation value (val) - must be used with FLIP
• If FLIP is used, y-values will be transformed by: y(output) = val - y
Examples
1. EEGR is used to output an ECLIPSE extensible gridfile with a y-axis inverted by 10. See EEGR.dat for
complete example:
EEGR FLIP 10
Location
GRID Section
Description
The EGRI keyword is used to output an ECLIPSE format grid file. It consists of one optional argument which, if
used, also requires its own argument. These entries should directly follow the EGRI keyword on the same line if
used.
Definitions
1. FLIP (optional) - allows the y-axis to be inverted if required (the default value of y is 0)
2. y-transformation value (val) (optional) - must be used with FLIP
• If FLIP is used, y-values will be transformed by: y(output) = val - y
Notes
Examples
1. EGRI is used to output a gridfile in ECLIPSE format with a y-axis inverted by 10. See EGRI.dat for
complete example:
EGRI FLIP 10
An .init and .grid file should then be created in the dataset’s directory, as follows:
Location
GRID Section
Description
The ELOB keyword is used to populate the cells in a grid with Palmer Mansoori EL/B values in a coal bed
methane system with the Palmer-Mansoori option activated. When ELOB is used, the coal bed methane option
must be turned on using the CBM keyword with the PM (Palmer-Mansoori) option in the INPU or FLUI sections.
Arguments for the ELOB keyword consist of an array of EL/B values.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. EL/B values
• Default: 0
Notes
• ELOB may be used to define the shrinkage factor, FSHR. If ELOB is set, then FSHR will be obtained as
ELOB/ PLAN.
• See Coal Bed Methane Modelling in the MORE Technical Reference for more information regarding coal
bed methane modelling.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. ELOB is used to populate a 10x10x3 grid with 300 EL/B values. See CoalBedMethane_PM.dat for complete
example:
ELOB
5.700 6.281 6.852 5.710 5.740 5.710 5.710 5.710 5.710 6.292
6.852 5.720 5.710 5.710 5.710 5.710 5.710 5.710 5.710 5.710
5.750 5.710 5.710 6.840 5.710 5.710 5.710 6.876 6.852 5.710
5.710 5.710 5.710 5.710 5.710 5.710 5.710 6.888 5.710 5.710
5.710 6.852 5.710 5.710 5.710 5.710 6.292 6.281 5.710 5.710
5.710 6.852 5.700 6.852 5.720 5.710 5.710 5.700 6.281 5.710
5.710 5.710 5.710 6.852 5.710 5.710 6.325 5.710 5.710 5.710
6.303 6.281 6.281 6.281 5.740 6.852 5.710 5.720 6.281 5.710
6.292 5.710 5.740 5.710 5.730 5.710 5.710 5.710 5.710 5.710
5.710 5.710 5.710 6.900 5.720 5.710 5.710 6.281 5.710 6.864
200*5.710
Location
GRID Section
Description
The ENDR keyword is used to terminate the application of data to the local grid and indicates a return to the global
grid when placed after the REFI keyword. ENDR must always be paired with REFI. There are no arguments for
ENDR.
Examples
1. The REFI and ENDR keywords are used to assign an array of porosity values to the 30 cells in the local
grid, MyLGR.
LGRD 5 3 2 9 10 8 10 1 1 MyLGR
REFI MyLGR
PORO
0.14 0.01 0.03 0.04 0.05
0.06 0.07 0.12 0.09 0.10
0.02 0.08 0.13 0.01 0.15
Location
GRID Section
Description
The EOSN keyword is used to populate the cells in a grid with Equation of State region numbers. If multiple
equations of state are entered for the reservoir, each Equation of State may be assigned to cells using the EOSN
keyword. Arguments for EOSN consist of an array of Equation of State indices. Cells will be populated in the
x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150
cells).
Definitions
Notes
• The number of reservoir Equations of State provided in the FLUI section (see Multiple Equations of State)
must be equal to the number of Equation of State regions used by EOSN in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. EOSN is used to populate a 10x10x11 grid with 3 EoS regions. See EOSN.dat for complete example:
EOSN
ZVAR
1 1 1 1
2 2 2
3 3 3 3
EoS region numbers can then be displayed in 3D from the Initial tab of the results, similarly to PVTN:
Location
GRID Section
Description
The EQUI keyword is used to populate the cells in a grid with equilibration table numbers. If multiple equilibration
tables are entered, the tables may be assigned to cells using the EQUI keyword. Arguments for EQUI consist of an
array of equilibration table numbers. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of equilibration tables provided by the EQUI KEYWORD in the INIT section must be equal to
the number of equilibration table numbers used by the EQUI keyword in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. EQUI is used to populate a 10x10x5 grid with 500 equilibration table numbers. See EQUI.dat for complete
example:
EQUI
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
Location
GRID Section
Description
The EROC keyword is used to populate the cells in a grid with Young’s modulus values in a coal bed methane
system with the Palmer-Mansoori option activated. When EROC is used, the coal bed methane option must
be turned on using the CBM keyword with the PM (Palmer-Mansoori) option in the INPU or FLUI sections.
Arguments for the EROC keyword consist of an array of Young’s modulus values.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. EROC is used to populate a 10x10x3 grid with 300 Young’s modulus values. See CoalBedMethane_PM.dat
for complete example:
EROC
445000 445300 445300 445000 445100 445500 445000 445100 445300 445000
445300 445000 445000 445000 445000 445000 445000 445000 445000 445000
445000 445100 445200 445200 445000 445000 445500 445500 445000 445000
445000 445000 445000 445000 445200 445000 445000 445000 445000 445000
445300 445200 445000 445000 445000 445000 445300 445100 445400 445200
445100 445000 445400 445000 445100 445000 445300 445400 445000 445400
445000 445000 445000 445000 445000 445400 445000 445000 445000 445000
445000 445000 445000 445200 445500 445500 445000 445000 445000 445000
445000 445000 445100 445000 445000 445000 445000 445100 445000 445000
445000 445000 445200 445000 445000 445500 445000 445000 445300 445000
200*445000
The EROC array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The FASH keyword is used to populate the cells in a grid with ash fractions in a coal bed methane system. When
FASH is used, the coal bed methane option must be turned on using the CBM keyword in the INPU or FLUI
sections. Arguments for the FASH keyword consist of an array of ash fractions.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. Ash fractions
• Default: 0
Notes
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
FASH
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
100*1.0
1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
The FASH array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The FAUL keyword is used to define faults. It provides a means to label a group of connections so they can easily
be modified by the FMUL keyword. The connections designated do not have to correspond to an actual fault.
They could only include a portion of an actual fault or even multiple faults. These keywords are provided strictly
for convenience in modifying fault connections. Fault connections can also be modified using the NNC and TCON
keywords.
The FAUL keyword consists of two records. The first record follows directly after the FAUL keyword on the same
line and consists of one required argument and three optional ones. The second record appears on the line below
the FAUL keyword and describes the path of the fault. This record requires at least four arguments.
Definitions
RECORD 1:
1. Name given to the fault
2. Starting layer number (optional)
• Default: 1
3. Ending layer number (optional)
• Default: maximum k-coordinate
4. MAX or MIN (optional)
• MAX - layer range based on maximum value for non-neighbour connections
• MIN (default) - layer range based on minimum value for non-neighbour connections
RECORD 2:
1. i-index of the block corner where the fault starts
2. j-index of the block corner where the fault starts
3. TO-I or TO-J
• TO-I - for a fault in the i-direction
• TO-J - for a fault in the j-direction
4. The i or j-index of the kth point designated along the fault
Notes
• The i and j indices are the indices of block corners or block interfaces, not block numbers. Please see
Example 1 below for more information.
• If multiple lines are used to specify a fault, all lines after the first must start with TO-I or TO-J.
Examples
1. For a 6x4x5 grid, FAUL is used with FMUL to produce the fault shown in the figure below, as follows. See
FAUL_FMUL_ex1.dat for complete example:
FAUL F_18
2 2 TO-I 4 TO-J 3 TO-I 6
The following images show the X and Y transmissibilities created by the faults:
Location
GRID Section
Description
The FAULTS keyword is used to define fault segments; unlike most MORE keywords, the keyword name FAULTS
must be supplied in full so as not to be confused with the alternative FAUL keyword. A fault is made up of several
segments, each starting with the same fault name. The fault names defined by the set of segments defined using
FAULTS can have their transmissibilities modified using the MULTFLT keyword.
The FAULTS keyword consists of eight arguments for each fault segment required. Each line of fault segment
information is listed on separate lines and must be terminated with a slash (/). Finally, the set of fault segments
must be terminated by a solitary slash (/) on a separate line to complete the data entry for FAULTS.
Definitions
1. Fault name
2. Lower cell number in the x-direction (XL)
• Default: 1
• Minimum: 1; Maximum: Nx
3. Upper cell number in the x-direction (XU)
• Default: Nx
• Minimum: 1; Maximum: Nx
4. Lower cell number in the y-direction (YL)
• Default: 1
• Minimum: 1; Maximum: Ny
5. Upper cell number in the y-direction (YU)
• Default: Ny
• Minimum: 1; Maximum: Ny
6. Lower cell number in the z-direction (ZL)
• Default: 1
• Minimum: 1; Maximum: Nz
7. Upper cell number in the z-direction (ZU)
• Default: Nz
• Minimum: 1; Maximum: Nz
8. Direction: X, X-, Y, Y-, Z, or Z-
• Alternatively, I, I-, J, J-, K, or K- can also be used
Notes
• If the direction is specified as X,X-,I or I-, then XL must equal XU. If the direction is set to Y,Y-,J or J- then
YL must equal YU and if direction = Z,Z-,K or K- then ZL must equal ZU.
• If the direction is X (or X+) then the fault contains any transmissibilities from a cell to its neighbour in the
positive X-direction. If the direction is X- then the fault contains any transmissibilities from a cell to its
neighbour in the negative X-direction.
• Each line of fault segment information is terminated with a slash (/) and the set of fault segments is termi-
nated with a solitary slash (/) on its own line.
• The FAULTS keyword is optionally exported from RMS where selecting GRDECL output.
Examples
1. In a 10x10x5 grid, FAULTS is used with MULTFLT to define two faults called MyFLT1 and MyFLT2.
MyFLT1 will have 3 fault segments while MyFLT2 will have 4 fault segments, as follows. See
FAULTS_2.dat for complete example:
FAULTS
--Name XL XU YL YU ZL ZU Direction
MyFLT1 2 2 1 5 1* 1* X /
MyFLT1 2 6 5 5 1* 1* Y /
MyFLT1 6 6 5 10 1* 1* X /
MyFLT2 5 5 1 3 1* 1* X /
MyFLT2 5 8 3 3 1* 1* Y /
MyFLT2 8 8 3 7 1* 1* X /
MyFLT2 8 10 7 7 1* 1* Y /
/
MULTFLT
--Name Multiplier
MyFLT1 0.10
MyFLT2 0.05
/
Note that the lines directly following both FAULTS and MULTFLT are comment lines used to aid readabil-
ity. Additionally, replacing the X and Y direction with I and J, respectively, will yield the same results).
The faults created in the example above are shown below with MyFLT1 in red and MyFLT2 in green:
The following images show the resulting X and Y transmissibilities created by the faults:
2. This example creates the same faults we have created in Example 1 above, except that the directions are set
to X- and Y-, as follows. See FAULTS_2_MINUS.dat for complete example:
FAULTS
--Name XL XU YL YU ZL ZU Direction
MyFLT1b 2 2 1 5 1* 1* X- /
MyFLT1b 2 6 5 5 1* 1* Y- /
MyFLT1b 6 6 5 10 1* 1* X- /
MyFLT2b 5 5 1 3 1* 1* X- /
MyFLT2b 5 8 3 3 1* 1* Y- /
MyFLT2b 8 8 3 7 1* 1* X- /
MyFLT2b 8 10 7 7 1* 1* Y- /
/
MULTFLT
--Name Multiplier
MyFLT1b 0.10
MyFLT2b 0.05
/
Note that the lines directly following both FAULTS and MULTFLT are comment lines used to aid readabil-
ity. Additionally, replacing the X and Y direction with I and J, respectively, will yield the same results).
The faults created in the example above are shown below with MyFLT1 in red and MyFLT2 in green:
The following images show the resulting X and Y transmissibilities created by the faults:
Location
GRID Section
Description
If the fracture augmented flow option has been requested with the FAFL keyword, FAXY may be used to enter the
fracture locations.
Syntax
Definitions
Notes
8.49 FLXA - Specify Which Flux Regions are Active in a FLXR Run
Location
GRID Section
Syntax
FLXA
Iact1 Iact2 Iact3 Iact4 Iact5 Iact6 /
Definitions
FLXA
1 2 5 8 /
8.49. FLXA - Specify Which Flux Regions are Active in a FLXR Run 473
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The FLXN keyword is used to populate the cells in a grid with flux region numbers. When used with the flux
boundary option, these regions can then be run as separate models (using the keyword FLXA) with boundary
fluxes defined in a previous full field run (using the keyword FLXW). Arguments for FLXN consist of an array
of flux region numbers. Cells will be populated in the x-direction first, followed by the y-direction, and then the
z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e.
150*3 can be used to assign a value of 3 to 150 cells).
Definitions
1. Region numbers
• Default: 0
Notes
• All region numbers specified in the keyword FLXA must be defined using the keyword FLXN in the GRID
section.
• If used in combination with a dual porosity/permeability grid, flux region numbers can only be assigned to
the matrix part of the grid. The fracture part is automatically set accordingly.
Examples
1. FLXN is used to populate a 10x10x5 grid with 500 region numbers numbers.
FLXN
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
Location
GRID Section
Description
The FLXY keyword is used to define a linear, fault-type feature of interest for refinement within a PEBI grid.
Multiple features can be defined by invoking FLXY multiple times.
The arguments for FLXY consists of a table with two columns that contain the (X,Y) locations of points along
the feature of interest. Each time the PEBI keyword is invoked MORE loops through the refinement features that
have been defined using FLXY and adds refinement cells along any part of a feature that is covered by the extent
of the PEBI grid. For fault-type features refinement cells are added with their centres lying symmetrically across
the feature and are given a spacing defined by the background resolution argument of the PEBI keyword.
Note that in order preserve the symmetrical placing of the fault-type PEBI cells across the feature it is necessary
to prevent other cells from being added close to the feature. Therefore the PEBI keyword constructs an exclusion
polygon around each fault-type feature to prohibit the movement or addition of any cells in that region. One
consequence of this is that if a trajectory-type feature is defined close to a fault-type feature then the fault-type
feature will have priority. This is demonstrated in the example below where the trajectory refinement is not
performed within the fault-type feature region.
Note that the PEBI grids used here cannot model vertical offsets other than by generating steeply sloping cells.
The FLXY option is offered simply to allow cell faces to line up with vertical, linear features.
Definitions
Examples
1. Using FLXY and PEBI to create a refined region around a trajectory-type region of interest:
FLXY
152.4 2895.6
2895.6 152.4
/
2. Demonstration of FLXY taking priority over TRXY. The trajectory refinement should extend to the centre
of the grid but that is covered by the fault-type feature region.
TRXY
152.4 152.4
1219.2 1219.2
/
FLXY
152.4 2895.6
2895.6 152.4
/
Location
GRID Section
Description
The FMUL keyword is used to assign transmissibility multipliers to faults defined using the FAUL keyword. The
FAUL and FMUL keywords provide a convenient way to label a fault so that the fault connections can be easily
modified.
The FMUL keyword consists of one required and one optional argument which should follow directly after FMUL
on the same line.
Definitions
Example
FAUL F_18
2 2 TO-I 4 TO-J 3 TO-I 6
The following images show the X and Y transmissibilities created by the faults:
Location
GRID Section
Description
The FROC keyword is used to populate the cells in a grid with mixing fractions in a coal bed methane system
with the Palmer-Mansoori option activated. When FROC is used, the coal bed methane option must be turned on
using the CBM keyword with the PM (Palmer-Mansoori) option in the INPU or FLUI sections. Arguments for
the FROC keyword consist of an array of mixing fractions.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. Mixing fractions
• Default: 0
Notes
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. FROC is used to populate a 10x10x3 grid with 300 mixing fractions. See CoalBedMethane_PM.dat for
complete example:
FROC
0.1 0.1 0.1 0.2 0.1 0.1 0.1 0.1 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
0.1 0.1 0.2 0.4 0.1 0.1 0.3 0.1 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
0.1 0.2 0.1 0.1 0.4 0.1 0.1 0.1 0.1 0.1
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.2
200*0.1
Location
GRID Section
Description
The FSHR keyword is used to populate the cells in a grid with shrinkage factors in a coal bed methane system
with the Palmer-Mansoori option activated. When FSHR is used, the coal bed methane option must be turned on
using the CBM keyword with the PM (Palmer-Mansoori) option in the INPU or FLUI sections. Arguments for
the FSHR keyword consist of an array of shrinkage factors.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. Shrinkage factors
• Default: 0
Notes
• Alternatively, ELOB may be used to define the shrinkage factor, FSHR. If ELOB is set, then FSHR will be
obtained as ELOB /PLAN.
• See Coal Bed Methane Modelling in the MORE Technical Reference for more information regarding coal
bed methane modelling.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. FSHR is used to populate a 10x10x3 grid with 300 shrinkage factors. See CoalBedMethane_PM.dat for
complete example:
FSHR
0.010 0.011 0.012 0.010 0.010 0.010 0.010 0.010 0.010 0.011
0.012 0.010 0.010 0.010 0.010 0.010 0.010 0.010 0.010 0.010
0.010 0.010 0.010 0.012 0.010 0.010 0.010 0.012 0.012 0.010
0.010 0.010 0.010 0.010 0.010 0.010 0.010 0.012 0.010 0.010
0.010 0.012 0.010 0.010 0.010 0.010 0.011 0.011 0.010 0.010
0.010 0.012 0.010 0.012 0.010 0.010 0.010 0.010 0.011 0.010
0.010 0.010 0.010 0.012 0.010 0.010 0.011 0.010 0.010 0.010
0.011 0.011 0.011 0.011 0.010 0.012 0.010 0.010 0.011 0.010
0.011 0.010 0.010 0.010 0.010 0.010 0.010 0.010 0.010 0.010
0.010 0.010 0.010 0.012 0.010 0.010 0.010 0.011 0.010 0.012
200*0.010
Location
GRID Section
Description
The GRDE keyword is used to request output of a grdecl file containing SPECGRID, ZCORN, COORD and
ACTNUM data. This enables grids created with MORE to be stored and read back into programs which support
these four keywords. GRDE consists of two optional arguments. If the optional argument FLIP is used, it also
requires its own argument as further described in the definitions below. All arguments for GRDE should directly
follow after GRDE on the same line.
Definitions
Examples
GRDE
2. GRDE is used to output grid data to the file mygrid.grdecl and transform as y(new) = 1000 - y(old).
8.55. GRDE - Request Output of Grid Data in ECLIPSE Keyword Form 483
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The GRID keyword is used as a section header line to indicate beginning of the GRID section. It does not require
any arguments.
The first part of the GRID section defines information required to evaluate the pore volumes, cell depths and trans-
missibilities. This calculation will normally be carried out once the entire grid section has been read. However,
using the DOGR or EDIT keywords will force the calculations to be performed. After this, the resulting pore
volumes, cell depths, and transmissibilities may be modified.
For more details on the grid section, please see the GRID - Data Overview section.
Location
GRID Section
Description
The HORI keyword is used to specify a horizontal data input mode where grid array layers are input in a horizontal
order. HORI consists of one optional argument for which there are two options. This argument should directly
follow the HORI keyword on the same line if used.
Definitions
Notes
• The old FAUL option is no longer required. Fault connections will automatically be generated for any grid
which is not of the flat block type.
• The default is HORI POIN, for historical reasons, as this is the traditional MORE default. However, most
studies use HORI BLOC.
• MORE 6 always runs the study in block mode, so HORI and MODE only concern the interpretation of input
grid data.
• The input mode can be reset during the processing of the grid section.
• For more information regarding the block and point modes of entry, please refer to the GRID - Data
Overview and Array Processing sections.
Examples
1. HORI is used to specify that grid array layers are entered in a horizontal block mode.
HORI BLOC
Location
GRID Section
Description
The IGCR keyword is used to scale the critical gas saturation in each cell for end point scaling when hysteresis
modelling is required. The critical gas saturation is the highest gas saturation for which the gas phase in immobile
in an oil-gas system. Arguments for the IGCR keyword consist of an array of critical gas saturation values. Cells
will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated
values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*0.23 can be used to assign
a value of 0.23 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process. As gas is always non-wetting with respect to oil and water, imbibition
occurs when the wetting phase saturation is increasing and the gas phase saturation is decreasing. Thus the
IGCR endpoints will be used for decreasing gas saturation.
• If the drainage and imbibition end point values (SGCR and IGCR) differ for one or more cells, hysteresis
modelling in gas relative permeability will be turned on.
• If directional relative permeabilities are being used (KRDR), the keywords AGCR, BGCR and CGRD may
be used to set the critical gas saturation endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IGL keyword is used to scale the connate gas saturation in each cell for end point scaling when hysteresis
modelling is required. The connate gas saturation is the lowest gas saturation found in the oil-gas relative per-
meability table defined by KRGO. Arguments for the IGL keyword consist of an array of connate gas saturation
values. Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last.
For repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*0.01 can be
used to assign a value of 0.01 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process. As gas is always non-wetting with respect to oil and water, imbibition
occurs when the wetting phase saturation is increasing and the gas phase saturation is decreasing. Thus the
IGL endpoints will be used for decreasing gas saturation.
• If the drainage and imbibition end point values (SGL and IGL) differ for one or more cells, hysteresis
modelling in gas relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AGL, BGL and CGL may be used to set
the connate gas saturation endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IGU keyword is used to scale the maximum gas saturation in each cell for end point scaling when hysteresis
modelling is required. The maximum gas saturation is the highest gas saturation found in the oil-gas relative per-
meability table defined by KRGO. Arguments for the IGU keyword consist of an array of maximum gas saturation
values. Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last.
For repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*0.8 can be
used to assign a value of 0.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process. As gas is always non-wetting with respect to oil and water, imbibition
occurs when the wetting phase saturation is increasing and the gas phase saturation is decreasing. Thus the
IGU endpoints will be used for decreasing gas saturation.
• If the drainage and imbibition end point values (SGU and IGU) differ for one or more cells, hysteresis
modelling in gas relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AGU, BGU and CGU may be used to set
the maximum gas saturation endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IOGC keyword is used to scale the critical oil-in-gas saturation for end point scaling. This is the highest oil
saturation for which the oil is immobile in an oil-gas system. Arguments for the IOGC keyword consist of an
array of critical oil-in-gas saturations. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (i.e. 150*0.23 can be used to assign a value of 0.23 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process. As gas is always non-wetting with respect to oil and water, imbibition
occurs when the wetting phase saturation is increasing. Thus the IGCR endpoints will be used for increasing
oil saturation.
• If the drainage and imbibition end point values (SOGC and IOGC) differ for one or more cells, hysteresis
modelling in oil-in-gas relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AOGC, BOGC and COGC may be used
to set the critical saturation of oil in gas endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IOWC keyword is used to scale the critical oil-in-water saturation in each cell for end point scaling. The
critical oil-in-water saturation is the highest oil saturation for which the oil is immobile in an oil-water system.
Arguments for the IOWC keyword consist of an array of critical oil-in-water saturation values. Cells will be
populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values,
an asterisk can be used to assign a value to a specified number of cells (i.e. 150*0.09 can be used to assign a value
of 0.09 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process, which is taken with respect to a water-wet system. As oil is then
non-wetting with respect to water, imbibition occurs when the wetting phase saturation is increasing. Thus
the IOWC endpoints will be used for increasing water saturation. This will also be true in the oil-wet case.
• If the drainage and imbibition end point values (SOWC and IOWC) differ for one or more cells, hysteresis
modelling in oil-in-water relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AOWC, BOWC and COWC may be used
to set the critical saturation of oil in water endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IWCR keyword is used to scale the critical water saturation in each cell for end point scaling for imbibition
processes when modelling hysteresis. The critical water saturation is the highest water saturation for which the
water is immobile in an oil-water system. Arguments for the IWCR keyword consist of an array of critical water
saturation values.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*0.13 can be used
to assign a value of 0.13 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process, which is taken with respect to a water-wet system. As oil is then
non-wetting with respect to water, imbibition occurs when the wetting phase saturation is increasing. Thus
the IWCR endpoints will be used for increasing water saturation. This will also be true in the oil-wet case.
• If the drainage and imbibition end point values (SWCR and IWCR) differ for one or more cells, hysteresis
modelling in water relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AWCR, BWCR and CWCR may be used
to set the critical water endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IWGC keyword is used to scale the critical imbibition water-in-gas saturation for end point scaling in the
oil-wet case. This is the highest water saturation for which the oil is immobile in a water-gas system. Arguments
for the IWGC keyword consist of an array of critical water-in-gas saturations. Cells will be populated in the x-
direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (i.e. 150*0.23 can be used to assign a value of 0.23 to 150
cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process. As gas is always non-wetting with respect to oil and water, imbibition
occurs when the wetting phase saturation is increasing. Thus the IWGC endpoints will be used for increasing
oil saturation.
• If the drainage and imbibition end point values (SOGC and IOGC) differ for one or more cells, hysteresis
modelling in oil-in-gas relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AWGC, BWGC and CWGC may be used
to set the critical saturation of oil in gas endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IWL keyword is used to scale the connate water saturation in each cell for end point scaling for imbibition
when modelling hysteresis. The connate water saturation is the smallest water saturation found in the oil-water
relative permeability table defined by KRWO. Arguments for the IWL keyword consist of an array of connate
water saturation values.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*0.11 can be used
to assign a value of 0.11 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process, which is taken with respect to a water-wet system. As oil is then
non-wetting with respect to water, imbibition occurs when the wetting phase saturation is increasing. Thus
the IWL endpoints will be used for increasing water saturation. This will also be true in the oil-wet case.
• If the drainage and imbibition end point values (SWL and IWL) differ for one or more cells, hysteresis
modelling in water relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AWL, BWL and CWL may be used to set
the connate water endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The IWU keyword is used to scale the maximum water saturation in each cell for end point scaling. The maximum
water saturation is the highest water saturation found in the oil-water relative permeability table defined by KRWO
. Arguments for the IWU keyword consist of an array of maximum water saturation values. Cells will be populated
in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk
can be used to assign a value to a specified number of cells (i.e. 150*1.0 can be used to assign a value of 1.0 to
150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• Imbibition here refers to the process, which is taken with respect to a water-wet system. As oil is then
non-wetting with respect to water, imbibition occurs when the wetting phase saturation is increasing. Thus
the IWU endpoints will be used for increasing water saturation. This will also be true in the oil-wet case.
• If the drainage and imbibition end point values (SWU and IWU) differ for one or more cells, hysteresis
modelling in water relative permeability will be turned on.
• If directional relative permeabilities are being used, the keywords AWU, BWU and CWU may be used to
set the connate water endpoints for imbibition in the I, J and K directions on the grid.
Location
GRID Section
Description
The KRPR keyword is used to populate the cells in a grid with KVSP reference pressures Pref . The WRTP option
of KVSP tables is there to indicate that KVSP tables are to be evaluated with respect to the reference pressure, that
is the tables are evaluated at the effective pressure Peff = P − Pref .
Notes
• KRPR is a normal grid array which will be automatically created when at least one KVSP table with the
WRTP option (a global option of KVSP) is found in the dataset.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
2. This example has two different KVSP tables. The KPTA keyword is used to assign tables to grid cells. While
KRPR is set up based on KPTA such that effectively the two tables are applied with individual reference
pressures. See KVSP_KRPR_Ex2.dat
-- in FLUID section
KVSP WRTP -- use the KRPR array
1 0.7 /
500 0.8 /
/
KVSP
1 0.8 /
500 0.9 /
/
-- in GRID section
SPEC -- a grid with 5 layers
10 10 5 /
KPTA -- first two layers use KVSP table 1, the other three use KVSP table 2
ZVAR
1 1 2 2 2 /
The KRPR array can inspected with the 3D View in VIEW. For this example it shows a KRPR array where
the upper two layers have reference pressure of 1000 while the lower three layers have reference pressure
of 2000.
Location
GRID Section
Description
The KPTA keyword is used to populate the cells in a grid with KVSP (pressure dependent permeabilities and pore
volume multipliers) table numbers. If multiple KVSP tables are entered, the tables may be assigned to cells using
the KPTA keyword. Arguments for KPTA consist of an array of KVSP table numbers. Cells will be populated in
the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can
be used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to
150 cells).
Definitions
Notes
• KPTA is a normal grid array which will be automatically created when KVSP tables are found in the dataset.
If KPTA is not entered, all the cells will use KVSP table 1.
• The number of KVSP tables provided in the FLUI section must equal the number of KVSP tables numbers
used by KPTA in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. Using KPTA to populate a 10x10x5 grid with 500 KVSP table numbers. See KVSP.dat for complete exam-
ple:
KPTA
100*1
100*2
100*1
100*2
100*1
Location
GRID Section
Description
The KRDX keyword is used to populate the cells in a grid with saturation table numbers for flow in the x-direction.
When KRDX is used, the directional relative permeabilities option must be turned on using the KRDR keyword in
the INPU or RELA sections. Arguments for the KRDX keyword consist of an array of saturation table numbers
for flow in the x-direction.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by KRDX in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. KRDX is used to populate a 10x10x5 grid with 500 saturation table numbers for flow in the x-direction. See
DIR_KR.dat for complete example:
KRDX
1 1 1 1 1 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
2 2 2 1 1 1 3 3 1 1
1 1 4 1 1 1 1 2 2 1
1 2 2 2 2 2 1 1 1 1
1 1 1 2 2 1 5 1 2 1
1 4 4 2 2 5 2 2 2 2
1 2 2 2 1 3 2 1 1 1
1 1 2 2 1 2 1 2 1 1
1 1 1 1 4 1 1 3 1 1
8.69. KRDX - Saturation Table Numbers for Flow in the X-Direction 499
Tempest MORE Help, Release 8.1
100*1
100*2
100*3
50*4 50*5
The array for saturation table numbers for flow in the x-direction will then appear in the Initial tab of the
results for display in 3D, as shown below.
Location
GRID Section
Description
The KRDY keyword is used to populate the cells in a grid with saturation table numbers for flow in the y-direction.
When KRDY is used, the directional relative permeabilities option must be turned on using the KRDR keyword
in the INPU or RELA sections. Arguments for the KRDY keyword consist of an array of saturation table numbers
for flow in the y-direction.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by KRDY in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. KRDY is used to populate a 10x10x5 grid with 500 saturation table numbers for flow in the y-direction. See
DIR_KR.dat for complete example:
KRDY
4 1 3 1 1 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
2 2 2 1 1 1 3 3 1 3
1 1 4 1 1 5 1 2 2 1
1 2 2 2 2 2 1 1 1 1
4 1 1 2 2 1 5 1 2 1
1 5 4 2 2 5 2 1 2 2
1 2 2 2 1 3 2 1 1 3
1 1 2 2 1 2 1 2 1 1
5 1 1 1 4 1 1 3 1 1
8.70. KRDY - Saturation Table Numbers for Flow in the Y-Direction 501
Tempest MORE Help, Release 8.1
100*5
100*1
100*4
50*2 50*3
The array for saturation table numbers for flow in the y-direction will then appear in the Initial tab of the
results for display in 3D, as shown below.
Location
GRID Section
Description
The KRDZ keyword is used to populate the cells in a grid with saturation table numbers for flow in the z-direction.
When KRDZ is used, the directional relative permeabilities option must be turned on using the KRDR keyword in
the INPU or RELA sections. Arguments for the KRDZ keyword consist of an array of saturation table numbers
for flow in the z-direction.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by KRDZ in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. KRDZ is used to populate a 10x10x5 grid with 500 saturation table numbers for flow in the z-direction. See
DIR_KR.dat for complete example:
KRDZ
5 1 2 1 3 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
4 4 2 1 1 1 3 3 1 2
1 1 4 1 1 5 1 2 1 2
1 2 2 2 2 2 1 1 1 2
4 1 1 2 2 1 5 1 2 1
1 5 5 2 3 3 2 1 2 2
1 2 5 2 1 3 2 1 1 3
1 1 5 2 1 2 1 5 5 1
5 1 1 1 4 1 1 3 1 1
8.71. KRDZ - Saturation Table Numbers for Flow in the Z-Direction 503
Tempest MORE Help, Release 8.1
100*4
100*2
100*3
50*5 50*1
The array for saturation table numbers for flow in the z-direction will then appear in the Initial tab of the
results for display in 3D, as shown below.
Location
GRID Section
Description
The KRMX keyword is used to populate the cells in a grid with saturation table numbers for flow in the negative
y-direction. When KRMX is used, the directional relative permeabilities option must be turned on using KRDR
keyword with the IRRV argument to request irreversible directional relative permeabilities in the INPU or RELA
sections. Arguments for the KRMY keyword consist of an array of saturation table numbers for flow in the
negative x-direction.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by KRMX in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. KRMX is used to populate a 10x10x5 grid with 500 saturation table numbers for flow in the negative x-
direction. See DIR_KR_IRRV.dat for complete example:
KRMX
3 1 3 1 1 2 2 1 1 3
1 1 2 1 4 1 1 2 1 1
2 2 2 1 1 1 3 3 1 3
1 1 4 1 1 5 1 2 2 1
1 2 2 2 2 2 1 1 1 1
4 1 3 2 2 1 5 1 2 1
1 5 4 2 2 5 2 1 1 2
8.72. KRMX - Saturation Table Numbers for Flow in the Negative X-Direction 505
Tempest MORE Help, Release 8.1
1 2 2 2 1 3 2 1 1 3
1 1 2 2 1 2 1 2 3 2
5 4 1 1 4 1 1 3 1 1
100*3
100*2
100*1
50*4 50*5
The array for saturation table numbers for flow in the negative x-direction will then appear in the Initial tab
of the results for display in 3D, as shown below.
Location
GRID Section
Description
The KRMY keyword is used to populate the cells in a grid with saturation table numbers for flow in the negative
y-direction. When KRMY is used, the directional relative permeabilities option must be turned on using the
KRDR keyword with the IRRV argument to request irreversible directional relative permeabilities in the INPU or
RELA sections. Arguments for the KRMY keyword consist of an array of saturation table numbers for flow in the
negative y-direction.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by KRMY in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. KRMY is used to populate a 10x10x5 grid with 500 saturation table numbers for flow in the negative y-
direction. See DIR_KR_IRRV.dat for complete example:
KRMY
1 1 1 1 1 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
2 2 2 1 1 1 3 3 1 1
1 1 4 1 1 1 1 2 2 1
1 2 2 2 2 2 1 1 1 1
1 1 1 2 2 1 5 1 2 1
1 4 4 2 2 5 2 2 2 2
8.73. KRMY - Saturation Table Numbers for Flow in the Negative Y-Direction 507
Tempest MORE Help, Release 8.1
1 2 2 2 1 3 2 1 1 1
1 1 2 2 1 2 1 2 1 1
1 1 1 1 4 1 1 3 1 1
100*2
100*3
100*5
50*1 50*4
The array for the saturation table numbers for flow in the negative y-direction will then appear in the Initial
tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The KRMZ keyword is used to populate the cells in a grid with saturation table numbers for flow in the negative
z-direction. When KRMZ is used, the directional relative permeabilities option must be turned on using KRDR
keyword with the IRRV argument to request irreversible directional relative permeabilities in the INPU or RELA
sections. Arguments for the KRMZ keyword consist of an array of saturation table numbers for flow in the negative
z-direction.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by KRMZ in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. KRMZ is used to populate a 10x10x5 grid with 500 saturation table numbers for flow in the negative z-
direction. See DIR_KR_IRRV.dat for complete example:
KRMZ
4 4 2 1 3 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
4 4 2 1 1 1 3 3 1 2
1 1 4 1 1 5 1 2 1 2
1 2 2 2 3 2 1 1 1 2
4 1 1 2 2 1 5 1 2 1
1 5 5 2 3 3 2 1 2 2
8.74. KRMZ - Saturation Table Numbers for Flow in the Negative Z-Direction 509
Tempest MORE Help, Release 8.1
1 2 5 2 1 3 2 1 1 3
1 1 5 2 1 2 1 5 5 1
5 1 1 1 4 1 1 3 1 1
100*1
100*2
100*4
50*5 50*3
The array for saturation table numbers for flow in the negative z-direction will then appear in the Initial tab
of the results for display in 3D, as shown below.
Location
GRID Section
Description
The K_X keyword is used to populate the cells in a grid with x-permeability values. Its arguments consist of an
array of x-permeability values. The K_X array should be specified in all datasets, unless transmissibilities are
explicitly entered using T_X. Cells will be populated in the x-direction first, followed by the y-direction, and then
the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number of cells
(i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. X-Permeability values
• Units: mD (Field and Metric)
• Default: 0
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If no permeability data is entered, then the default of zero is taken, so there will be no flow in the given
direction. However, if a transmissibility is subsequently entered, e.g.
T_X 6* REPL
500*20000
MORE will use this. It will not back-calculate the corresponding permeability.
Examples
1. K_X is used to populate a 10x10x5 grid with 500 x-permeability values. See K_X.dat for complete example:
K_X
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
115.9 112.5 98.5 146.8 137.1 84.2 65.4 132.9 114.6 74.2
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
115.9 112.5 98.5 146.8 137.1 84.2 65.4 132.9 114.6 74.2
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
40*152.1 60*85.6
70*100.2 30*128.9
20*75.5 80*162.0
100*50.6
Location
GRID Section
Description
The K_Y keyword is used to populate the cells in a grid with y-permeability values. Its arguments consist of
an array of y-permeability values. If K_Y is not specified, the y-permeability array will be populated with the
x-permeability array values. Cells will be populated in the x-direction first, followed by the y-direction, and then
the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number of cells
(i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. Y-Permeability values
• Units: mD (Field and Metric)
• Default: K_X corresponding array values
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If no permeability data is entered for K_Y, then the corresponding K_X data is used. If no permeability
data is entered for K_X either, then the default K_X of zero is taken, so there will be no flow in the given
direction(s). However, if a transmissibility is subsequently entered, e.g.
T_Y 6* REPL
500*20000
MORE will use this. It will not back-calculate the corresponding permeability.
Examples
1. K_Y is used to populate a 10x10x5 grid with 500 y-permeability values. See K_Y.dat for complete example:
K_Y
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
115.9 112.5 98.5 146.8 137.1 84.2 65.4 132.9 114.6 74.2
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
115.9 112.5 98.5 146.8 137.1 84.2 65.4 132.9 114.6 74.2
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
40*152.1 60*85.6
70*100.2 30*128.9
20*75.5 80*162.0
100*50.6
Location
GRID Section
Description
The K_Z keyword is used to populate the cells in a grid with z-permeability values. Its arguments consist of
an array of z-permeability values. If K_Z is not specified, the z-permeability array will be populated with the
x-permeability array values. Cells will be populated in the x-direction first, followed by the y-direction, and then
the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number of cells
(i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. Z-Permeability values
• Units: mD (Field and Metric)
• Default: K_X corresponding array values
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If no permeability data is entered for K_Z, then the corresponding K_X data is used. If no permeability
data is entered for K_X either, then the default K_X of zero is taken, so there will be no flow in the given
direction(s). However, if a transmissibility is subsequently entered, e.g.
T_Z 6* REPL
500*20000
MORE will use this. It will not back-calculate the corresponding permeability.
Examples
1. K_Z is used to populate a 10x10x5 grid with 500 z-permeability values. See K_Z.dat for complete example:
K_Z
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
115.9 112.5 98.5 146.8 137.1 84.2 65.4 132.9 114.6 74.2
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
115.9 112.5 98.5 146.8 137.1 84.2 65.4 132.9 114.6 74.2
132.2 65.9 147.5 154.2 58.9 111.3 125.7 78.6 120.7 60.1
150.2 165.4 74.2 54.2 135.2 101.5 55.7 118.4 138.4 80.9
40*152.1 60*85.6
70*100.2 30*128.9
20*75.5 80*162.0
100*50.6
Location
GRID Section (after y-direction ( Y-DI) or theta-direction (THET) keywords, but before pore volume and trans-
missibility modifiers)
Description
The LAYE keyword is used to define the layering in a grid. Its arguments consist of an array listing the number
of model layers in each geological layer. The values in this array must sum up to the number of model layers (i.e.
the total number of layers specified by SIZE or SPEC). The number of geological layers then equals the number
of values supplied in the array. The list must be terminated by a slash (/).
Definitions
Notes
• Initially, there is one model layer in each geological layer (i.e. the array processing options geologic (GEOL)
and variable (VARI) will behave in the same fashion.)
• The geologic layering option is recommended if changes to the vertical grid are anticipated. If this feature
is used, the vertical grid can be changed by specifying only new size (SIZE) and layering (LAYE) data. All
other grid data will be independent of the vertical grid.
Examples
1. In a 25x43x8 grid, LAYE is used to specify that the 8 model layers are divided into 5 different geological
layers. Five sets of layer values must then be supplied for subsequent grid data processed with the geologic
(GEOL) option. An example of this using porosity is shown below. See LAYE.dat for complete example:
LAYE
2 3 3* 1 /
PORO GEOL
1075*0.1
1075*0.2
1075*0.3
1075*0.4
1075*0.5
Location
GRID Section
Description
The LEVJ keyword is used to populate the cells in a grid with Leverett J-factors to correlate variations in capillary
pressure with rock properties. The arguments for LEVJ consist of an array of Leverett J-factors. The LEVJ array
is an intermediate array that is not used directly by MORE but can play an intermediate role in setting up the basic
and optional arrays in MORE. LEVJ is a predefined array so the DEFI keyword will not be required to define it,
but it will only be used if set up by the user.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
For more information about the Leverett J-factor, please refer to the Capillary Pressure and the Leverett J-Function
section of the MORE Technical Reference.
Definitions
1. Leverett J-factors
• Units: md1/2 (Field and Metric)
Notes
• In MORE, the reference capillary pressures will be entered using KRWO or WSF (for an oil-water case) or
KRGO or GSF (for an oil-gas case). The LEVJ array will then be used to set up a capillary pressure scaling
array (XPCW for oil-water capillary pressure in terms of water saturation or XPCG for oil-gas capillary
pressure in terms of gas saturation).
• LEVJ sets up capillary pressure scaling factors (XPCW and XPCG) using the following expression:
• By default, LEVJ sets up both the water-oil (XPCW) and gas-oil (XPCG) capillary scaling factors. It is
possible to set up only one of these using the optional LJOP keyword.
• It is also possible to enter XPCW or XPCG directly. In both cases, MORE will multiply the reference
capillary pressure data entered using KRWO /WSF and KRGO /WSF by XPCW and XPCG, respectively,
when calculating phase pressures to determine the phase flows in the simulation.
• If the dimensionless Leverett J-factor itself is known, it may be entered directly in the KRWO/KRGO or
WSF/GSF tables in place of the usual capillary pressure data. LEVJ should then be chosen to convert this
to the required capillary pressure values in the reservoir.
• The treatment of the Leverett J-factor in MORE is rather different than how it is treated in ECLIPSE where
users enter a surface tension rather than the product of the surface tension and a unit conversion factor.
To match the ECLIPSE form, MORE users must enter a LEVJ value which is the product of the required
surface tension and a unit conversion factor.
• When using the DPSS option, the Leverett J-factor will define scaling for the matrix cells only.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In a 1x1x70 grid, we have set the oil-water capillary pressure using the KRWO table as follows:
Displaying the oil-water capillary pressure in the 3D Viewer, we see the following:
LEVJ is then used to populate the grid with 70 Leverett J-factors equal to 5 to correlate variations in capillary
pressure with rock properties. See Rel_LEVJ.dat for complete example:
LEVJ
70*5
With the porosity (PORO) equal to 0.10 and the permeability (K_X) equal to 10mD throughout, we can
expect a capillary pressure scaling factor (XPCW) of:
The effect of the Leverett J-factor is thus to reduce the capillary pressures by a factor of 2. The resulting
oil-water capillary pressure and the effect it has on the oil-water transition zone can be seen in the figures
below:
Location
GRID Section
Description
The LJOP keyword is used to select that Leverett J-factors entered using the LEVJ keyword are used to set up only
the water-oil (XPCW) or gas-oil (XPCG) capillary scaling factors. This is done using the arguments WATER and
GAS respectively.
Notes
• By default, LEVJ sets up both the water-oil and gas-oil capillary scaling factors. LJOP should only be used
to restrict this behaviour.
• LJOP applies also to FLEV when used to set the Leverett J-function for fractures in DPSS models.
Example
LJOP is used to select that Leverett J-factors are used to set up only the water-oil capillary scaling factors.
LJOP WATER
Location
GRID Section
Description
The LGRD keyword is used to create a local grid refinement in specific cells of the global grid. This keyword is
directly followed by ten required arguments which describe the dimensions, location, and name of the local grid
refinement.
Definitions
Notes
• Wells will automatically be completed in local grids when they are part of a well’s trajectory.
• Alternatively, when the WELL keyword is used, the argument LGR of the LOCA sub-keyword of WELL
should be used to complete a well in the local grid.
• By default, refined cells acquire the properties of the global cells. However, these values may be modified
for the local grid using the REFI and ENDR keywords.
• The local grid name is used in the REFI keyword and when completing wells in the local grid.
• Local grid refinement may not be specified in runs where grid coarsening is specified (see COAR and CXGR
keywords).
Examples
LGRD 3 3 3 1 1 1 1 1 1 MyLGR1
LGRD 2 3 4 10 10 10 10 1 1 MyLGR2
LGRD 8 5 2 1 3 8 10 1 2 MyLGR3
Location
Description
The LOG1 keyword is used to specify logarithmic spacing for a radial grid in the R-direction in all but the first
interval. This keyword must appear after the R-DI keyword is used. LOG1 consists of three required arguments
which should be included on a separate line below the keyword itself.
Definitions
Example
1. R-DI is used with LOG1 to specify a logarithmic grid spacing in all but the first grid interval in the r-
direction. See LOG1.dat for complete example:
R-DI
LOG1
0.5 100 2500
8.82. LOG1 - Logarithmic Spacing Excluding the 1st Interval in the R-direction 525
Tempest MORE Help, Release 8.1
Location
Description
The LOGA keyword is used after the X-DI, Y-DI or THET keywords to specify logarithmic grid spacing in the X,
Y or Theta directions. This keyword must appear on a separate line after either the X-DI, Y-DI or THET keywords.
LOGA consists of two required arguments which should be listed on a separate line below the LOGA keyword
itself.
Definitions
1. Total length of system in x or y direction (or total angle for the θ-direction)
• Units: feet (Field), metres (Metric)
2. Ratio of adjacent grid spacings
Notes
• Please note that LOGA is treated differently when used with a radial grid and the R-DI keyword. For
the treatment of LOGA when used with the R-DI keyword, please see LOGA (R-direction).
Examples
1. X-DI is used with LOGA to specify logarithmic grid spacing in a 10x10x5 grid that has a total length of
10000 in the x-direction. See LOGA.dat for complete example:
X-DI
LOGA
10000 0.8
2. THET is used with LOGA to specify logarithmic grid spacing in the theta-direction in a 10x5x5 radial grid.
Y-DI
LOGA
360 0.5
Location
Description
The LOGA keyword is used after the R-DI keyword to specify logarithmic grid spacing in the R-direction of a
radial grid. This keyword must appear on a separate line after the R-DI keyword is used. LOGA consists of two
required arguments which should be included on a separate line below the LOGA keyword itself.
Definitions
Notes
• Please note that LOGA is treated differently when used with the X-DI, Y-DI or THET keywords. For
the treatment of LOGA when used with the X-DI, Y-DI or THET keywords, please see LOGA (X,Y or
Theta direction).
Examples
1. R-DI is used with LOGA to specify logarithmic grid spacing between the inner and outer radii of 0.5 and
2500, respectively. See LOGA_R.dat for complete example:
R-DI
LOGA
0.5 2500
Location
GRID Section
Description
The MFTC keyword is used to populate the cells in a grid with matrix-fracture time constants in a dual porosity
or dual permeability system. As an alternative to specifying the matrix-fracture coupling factors (SIGM) in dual
porosity runs using shape factors, matrix-fracture time constants may be entered in days using MFTC. For more
information about the relationship between MFTC and SIGM, please refer to the Discussion of Selected Arrays
section.
When MFTC is used, the dual porosity or dual permeability options must be turned on using the DPOR or DPER
keywords, respectively, in the INPU or GRID sections. Arguments for the MFTC keyword consist of an array of
matrix-fracture time constants.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information regarding dual porosity/permeability systems, please refer to the MORE Technical
Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MFTC is used to populate an 8x8x2 grid with 128 matrix-fracture time constants. See DualPoros-
ity_MFTC.dat for complete example:
MFTC
201.788 199.414 201.788 204.219 201.788 201.788 201.788 209.261
201.788 201.788 209.261 201.788 201.788 201.788 201.788 206.709
204.219 201.788 201.788 211.877 211.877 201.788 204.219 201.788
204.219 201.788 201.788 201.788 201.788 199.414 204.219 199.414
The MFTC array will then appear in the Initial tab of the results for display in 3D, as shown below:
The display can be switched between matrix and fracture grids by clicking on the Swap between matrix and
fracture (dual porosity models) button located on the toolbar on the left-hand side of the 3D Viewer.
A matrix-fracture coupling factor (SIGM) array will also be automatically calculated from MFTC, and this
array will also appear in the Initial tab of the results for display in 3D, as follows:
Location
GRID Section
Description
The MIND keyword is used to specify a minimum cell thickness tolerance. All cells with thicknesses less than
the minimum cell thickness tolerance specified by MIND will become inactive. MIND consists of one required
argument written on a separate line below the keyword itself.
Definitions
Notes
• If the MIND keyword is not entered at all, the minimum cell thickness is 0.1 metres (or 0.32808 feet).
• When a cell is made inactive on a minimum thickness basis and separates two active cells in the z-direction,
a pinchout will be generated if the cell separation is less than the pinch criterion set by PINC and also
defaulted to 0.1 metres (or 0.32808 feet).
• If a pinchout connection is not generated, an inactive cell between two active cells will be a barrier to flow.
• The following figure and notes describe the interaction between PINC and MIND:
Examples
1. MIND is used to make cells with thickness less than 100 inactive. See MIND.dat for complete example:
MIND
100
The display of cell thickness arrays before and after the addition of the MIND keyword can be seen in the
figure below. As expected, those cells with thicknesses less than or equal to 100 have been made inactive
and do not appear in the AFTER MIND figure.
Location
GRID Section
Description
The MINP keyword is used to specify a minimum pore volume tolerance. Any cells which have a pore volume less
than that specified by MINP will be made inactive. The MINP keyword consists of two records. The first record
consists of two optional arguments which are used to specify the treatment of the tolerance value and volume
units. This record should follow directly after the MINP keyword on the same line. The second record appears on
a separate line below MINP and consists of the value of the minimum pore volume tolerance.
Definitions
RECORD 1:
1. VALU (optional) - apply tolerance as absolute value for the pore volume
• Default: apply tolerance as a ratio to the average pore volume
2. Volume units (optional) - MORE or ECLI
• MORE - use MORE volume units
– Units: ft3 (Field), m3 (Metric)
• ECLI (default) - use ECLIPSE volume units
– Units: rb (Field), m3 (Metric)
RECORD 2:
1. The minimum pore volume tolerance
Notes
• If the MINP keyword is not entered at all, the minimum pore volume is 10-6 m3 .
• If neither MORE nor ECLI is specified, the ECLI unit system is used.
• Pore volume units in Tempest MORE are in ft3 (Field) or m3 (Metric). However, please note that when field
units are used, pore volumes will be converted to and displayed on the 3D viewer in rb instead of ft3 .
• MINP acts on active cells only. Cells which have been made inactive via ACTN will remain inactive even if
their pore volumes exceed the pore volume specified by MINP.
Examples
1. Given the pore volume distribution in the “ORIGINAL” figure below, MINP is used to make cells with pore
volumes less than 90% of the average pore volume inactive. See MINP_1.dat for complete example:
MINP
0.90
2. Given the pore volume distribution in the “ORIGINAL” figure below, displayed in rb units, MINP is used
to make cells with pore volumes less than 30x106 ft3 (Field units (MORE)) inactive. See MINP_2.dat for
complete example:
(Please note that when the MORE option is used with MINP to specify a minimum pore volume in f t3 , pore
volumes will still be displayed in rb in the 3D Viewer, and not in f t3 .)
3. Given the pore volume distribution in the “ORIGINAL” figure below, MINP is used to make cells with pore
volumes less than 4x106 rb (Field Units (ECLIPSE)) inactive. See MINP_3.dat for complete example:
Location
GRID Section
Description
The MLRP keyword allows a pore volume multiplier to be applied to the cells with a given MULN region number
Definitions
Notes
• This information may also be read using the ECLIPSE format MULTREGP keyword. In that case the
FLUXNUM and OPERNUM region arrays may also be selected to mark the operation.
• The values of MULN may also be entered using the alias keyword MULTREG.
Examples
1. Multiply the pore volumes of cells with a MULN region of 1 by 10, and those with a MULN region of 2 by
2:
MLRP 1 10.0 /
MLRP 2 2.0 /
Location
GRID Section
Description
The MLRT keyword sets up transmissibility multipliers between regions on the basis of MULN region
Definitions
1. First MULN region index. Default is -1, which will match any region value
2. Second MULN region index. Default is -1, which will match any region value
3. Multiplier. Must be non-negative
4. Direction values: X,Y,Z,XY,YX,XZ,ZX,XZ,ZX or XYZ (XYZ is default)
5. Special options: NNC, NON, NOA or ALL (ALL is default)
Notes
• If the first two arguments are set to equal positive values, the multiplier will apply to all cells with that region
number, and also to all connections between cells with that region number and any other region number.
• This information may also be read as the ECLIPSE format MULTREGT keyword. In that case the
FLUXNUM and OPERNUM region arrays may also be selected to mark the operation.
• NNC implies multiplier acts on fault connections only, NONnc implies on all connections except fault
connections, NOAQui implies on all connections except those between reservoir and numerical aquifers.
Examples
1. Apply a multiplier of 10 between MULN regions 1 and 2, and a multiplier of 2 between MULN regions 1
and 3:
8.89. MLRT - Transmissibility Multipliers Between Regions on Basis of MULN Region 541
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The MODE keyword is used to provide a simple means of switching between HORI BLOC and HORI POIN
mode whilst reading the grid section. MODE consists of one required argument for which there are two options.
This argument should accompany the MODE keyword on the same line.
Definitions
Notes
• MORE 6 and above always runs the study in block mode, so MODE only concerns the interpretation of
input grid data.
• The input mode can be reset during the processing of the grid section.
• For more information regarding the block and point modes of entry, please refer to the GRID - Data
Overview and Array Processing sections.
Examples
MODE BLOC
Location
GRID Section
Description
The MULN keyword is used to populate the cells in a grid with region numbers. These region numbers are
then used to work with inter-region transmissibility multipliers or cell pore volume multipliers using the keywords
MLRT or MLRP respectively. Arguments for MULN consist of an array of region numbers. Cells will be populated
in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk
can be used to assign a value to a specified number of cells (i.e. 150*3 can be used to assign a value of 3 to 150
cells).
Definitions
1. Region numbers
• Default: 0
Notes
• All region numbers used in the keywords MLRT or MLRP must be defined using the keyword MULN in the
GRID section.
Examples
1. MULN is used to populate a 10x10x5 grid with 500 region numbers numbers.
MULN
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
30*1 30*2 40*3
8.91. MULN - Region Numbers for Applying Inter-Region Transmissibility Multipliers 543
Tempest MORE Help, Release 8.1
Location
Description
The MULTFLT keyword is used to set transmissibility multipliers for faults. Unlike most MORE keywords,
the keyword name MULTFLT must be supplied in full so as not to be confused wth the alternative FMUL
keyword. The fault names defined by the set of segments defined using the FAULTS keyword can have their
transmissibilities modified using the MULTFLT keyword.
Arguments for MULTFLT consist of a table with two columns containing a fault name and corresponding trans-
missibility multiplier. Following the final entry, a solitary slash (/) on a separate line is required to terminate the
data entry for this keyword.
Definitions
1. Fault name
2. Transmissibility multiplier
Notes
• The fault names should have been already defined before the MULTFLT keyword is specified via the
FAULTS keyword.
Examples
1. In a 10x10x5 grid, FAULTS is used with MULTFLT to define two faults called MyFLT1 and MyFLT2.
MyFLT1 will have 3 fault segments while MyFLT2 will have 4 fault segments, as follows. See
FAULTS_2.dat for complete example:
FAULTS
--Name XL XU YL YU ZL ZU Direction
MyFLT1 2 2 1 5 1* 1* X /
MyFLT1 2 6 5 5 1* 1* Y /
MyFLT1 6 6 5 10 1* 1* X /
MyFLT2 5 5 1 3 1* 1* X /
MyFLT2 5 8 3 3 1* 1* Y /
MyFLT2 8 8 3 7 1* 1* X /
MyFLT2 8 10 7 7 1* 1* Y /
/
MULTFLT
--Name Multiplier
MyFLT1 0.10
MyFLT2 0.05
/
(Please note that the lines directly following both FAULTS and MULTFLT are comment lines used to aid
readability. Additionally, replacing the X and Y direction with I and J, respectively, will yield the same
results.)
The faults created in the example above are shown below with MyFLT1 in red and MyFLT2 in green:
The following images show the resulting X and Y transmissibilities created by the faults:
Location
GRID Section
Description
The MULX keyword is used to populate the cells in a grid with x-transmissibility multipliers. Its arguments
consist of an array of x-transmissibility multiplier values. Cells will be populated in the x-direction first, followed
by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a
specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MULX is used to populate a 10x10x5 grid with 500 x-transmissibility multiplier values. See MULX.dat for
complete example:
MULX
1 0 1 2 1 1 1 1 0 1
2 1 1 1 1 2 2 1 1 1
0 1 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 0 0
0 1 1 0 0 2 1 1 0 0
1 0 1 0 1 0 1 1 1 1
0 0 1 2 1 0 0 1 0 0
1 1 1 0 0 0 0 2 1 1
1 2 1 1 0 2 1 0 1 1
1 1 0 1 1 1 0 0 0 0
100*2
100*3
100*1
100*2
8.93. MULX (or MX, M-X, M_X, MULTX) - X-Transmissibility Multiplier 549
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The MULY keyword is used to populate the cells in a grid with y-transmissibility multipliers. Its arguments
consist of an array of y-transmissibility multiplier values. Cells will be populated in the x-direction first, followed
by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a
specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MULY is used to populate a 10x10x5 grid with 500 y-transmissibility multiplier values. See MULY.dat for
complete example:
MULY
1 0 1 2 1 1 1 1 0 1
2 1 1 1 1 2 2 1 1 1
0 1 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 0 0
0 1 1 0 0 2 1 1 0 0
1 0 1 0 1 0 1 1 1 1
0 0 1 2 1 0 0 1 0 0
1 1 1 0 0 0 0 2 1 1
1 2 1 1 0 2 1 0 1 1
1 1 0 1 1 1 0 0 0 0
100*2
100*3
100*1
100*2
8.94. MULY (or MY, M-Y, M_Y, MULTY) - Y-Transmissibility Multiplier 551
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The MULZ keyword is used to populate the cells in a grid with z-transmissibility multipliers. Its arguments
consist of an array of z-transmissibility multiplier values. Cells will be populated in the x-direction first, followed
by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a
specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MULZ is used to populate a 10x10x5 grid with 500 z-transmissibility multiplier values. See MULZ.dat for
complete example:
MULZ
1 0 1 2 1 1 1 1 0 1
2 1 1 1 1 2 2 1 1 1
0 1 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 0 0
0 1 1 0 0 2 1 1 0 0
1 0 1 0 1 0 1 1 1 1
0 0 1 2 1 0 0 1 0 0
1 1 1 0 0 0 0 2 1 1
1 2 1 1 0 2 1 0 1 1
1 1 0 1 1 1 0 0 0 0
100*2
100*3
100*1
100*2
8.95. MULZ (or MZ, M-Z, M_Z, MULTZ) - Z-Transmissibility Multiplier 553
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The MXM keyword is used to populate the cells in a grid with x-transmissibility multipliers in the negative x-
direction. Its arguments consist of an array of x-transmissibility multiplier values. Cells will be populated in the
x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150
cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MXM is used to populate a 10x10x5 grid with 500 x-transmissibility multiplier values in the negative x-
direction. See MXM.dat for complete example:
MXM
1 0 1 2 1 1 1 1 0 1
2 1 1 1 1 2 2 1 1 1
0 1 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 0 0
0 1 1 0 0 2 1 1 0 0
1 0 1 0 1 0 1 1 1 1
0 0 1 2 1 0 0 1 0 0
1 1 1 0 0 0 0 2 1 1
1 2 1 1 0 2 1 0 1 1
1 1 0 1 1 1 0 0 0 0
100*2
100*3
100*1
100*2
The MXM array will then appear in the Initial tab of the results for display in 3D, as shown below.
8.96. MXM (or MULTX-) - X-Transmissibility Multiplier in the Negative X-Direction 555
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The MYM keyword is used to populate the cells in a grid with y-transmissibility multipliers in the negative y-
direction. Its arguments consist of an array of y-transmissibility multiplier values. Cells will be populated in the
x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150
cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MYM is used to populate a 10x10x5 grid with 500 y-transmissibility multiplier values in the negative y-
direction. See MYM.dat for complete example:
MYM
1 0 1 2 1 1 1 1 0 1
2 1 1 1 1 2 2 1 1 1
0 1 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 0 0
0 1 1 0 0 2 1 1 0 0
1 0 1 0 1 0 1 1 1 1
0 0 1 2 1 0 0 1 0 0
1 1 1 0 0 0 0 2 1 1
1 2 1 1 0 2 1 0 1 1
1 1 0 1 1 1 0 0 0 0
100*2
100*3
100*1
100*2
The MYM array will then appear in the Initial tab of the results for display in 3D, as shown below.
8.97. MYM (or MULTY-) - Y-Transmissibility Multiplier in the Negative Y-Direction 557
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The MZM keyword is used to populate the cells in a grid with z-transmissibility multipliers in the negative z-
direction. Its arguments consist of an array of z-transmissibility multiplier values. Cells will be populated in the
x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150
cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. MZM is used to populate a 10x10x5 grid with 500 z-transmissibility multiplier values in the negative z-
direction. See MZM.dat for complete example:
MZM
1 0 1 2 1 1 1 1 0 1
2 1 1 1 1 2 2 1 1 1
0 1 0 0 1 1 0 1 0 1
0 1 0 0 0 0 0 0 0 0
0 1 1 0 0 2 1 1 0 0
1 0 1 0 1 0 1 1 1 1
0 0 1 2 1 0 0 1 0 0
1 1 1 0 0 0 0 2 1 1
1 2 1 1 0 2 1 0 1 1
1 1 0 1 1 1 0 0 0 0
100*2
100*3
100*1
100*2
The MZM array will then appear in the Initial tab of the results for display in 3D, as shown below.
8.98. MZM (or MULTZ-) - Z-Transmissibility Multiplier in the Negative Z-Direction 559
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
NEPS controls end point scaling when calculating non-neighbour connection flows when the saturation table index
for the connection has been explicitly set using keyword NNC.
NEPS has no effect for non-neighbour connections where the saturation table index has been defaulted or not
specified. The non-neighbour connection are calculated using the relative permeabilities in the connecting grid
blocks, accounting for any end point scaling supplied for the grid blocks
Defaults
When the saturation table indices have not been explcitly specified for an NNC the mobilities for the flow across
the NNC are calculated using the saturation tables for grid cells at the first and second points of the NNC (specified
using keyword SATN) together with any end point scaling for the grid block.
When the saturation table indices have been explicitly specified for a non-neighbour connection, none of the end
points from the grid cells at the first and second points apply to the mobility calculation for the NNC. NEPS will
override this behaviour.
NEPS consists of 3 optional arguments which may be specified in any order.
Definitions
• HORIZ - The non-neighbour connection flow is calculated using the NNC saturation table with the horizon-
tal end points from the completion grid block.
• VERT - The non-neighbour connection flow is calculated using the NNC saturation table with the vertical
relative permeability end points from the completion grid block.
• PC - The non-neighbour connection flow is calculated using the NNC saturation table with the vertical
capillary pressure end points from the completion grid block.
Notes
Example
Layer 5 in a model is an inactive shale layer. Non-neighbour connections are used to connect layers 4 and 6 using
saturation tables 2 and 3.
This run is assumed to use end point scaling (specified using SWL, SWU SWCR etc., XKRO, XKRG, YKOW, YKOG
etc. and XPCW, XPCG). All the horizontal and vertical relative permeability end points from the 4th saturation
table are used to calculate the non-neighbour connection relative permeabilities, and only the vertical grid block
scalings for capillary pressure (XPCW, XPCG) will be applied to this table.
NEPS PC
8.99. NEPS - Set options for endpoint scaling at non-neighbour connections 561
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The NNC keyword is used to define non-neighbour connections. This keyword consists of two records. The first
record follows directly after the NNC keyword on the same line and contains different options that can be applied
to the non-neighbour connections. The second record consists of a table with at least 7 columns describing the
locations and transmissibility of the non-neighbour connections. Each line following the NNC keyword specifies
a single non-neighbour connection (i.e. the indices of the two points connected and the value of the connecting
transmissibility.) Once all of the non-neighbour connections have been specified, a solitary slash (/) on a separate
line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. MULT (optional) - values are treated as transmissibility multipliers (MODI can also be used)
2. MORE (optional) - use MORE transmissibility units
• Units: md-ft (Field), md-m (Metric)
3. ECLI (default) - use ECLIPSE transmissibility units
• Units: cP×rb/day/psi (Field), cP×rm3 /day/bars (Metric)
4. ONPD vpd (optional) - use these connections once the pressure difference across them exceeds vpd
5. LGR1 name (optional) - specify local grid of first point. name can be either a local grid name or GLOBAL
6. LGR2 name (optional) - specify local grid of second point. name can be either a local grid name or
GLOBAL
RECORD 2:
1. i-index of the first point
2. j-index of the first point
3. k-index of the first point
4. i-index of the second point
5. j-index of the second point
6. k-index of the second point
7. Transmissibility for the connection
8. Saturation table for first point in the connection (optional)
• Default: the saturation table number for the grid cell containing the first point
9. Saturation table for second point in the connection (optional)
• Default: the saturation table number for the grid cell containing the second point
Notes
• Non-neighbour connection data can be output to the Print file by using the PRIN keyword with the NNC
option. The resulting output produced can be found by performing a search for NNC in the Print file. For
more information regarding the data generated in the Print file for non-neighbour connections, please see
the examples below.
• The non-neighbour connection data that is output to the Print file will appear in both MORE transmis-
sibility units (md-ft (Field), md-m (Metric)) and ECLIPSE transmissibility units (cP×rb/day/psi (Field),
cP×rm3/day/bars (Metric)). ECLIPSE units can be converted to MORE units using the following factors:
0.001127 (Field), 0.008527 (Metric).
• The saturation table used to calculate the mobilities for flow across the non-neighbour connection is nor-
mally taken from the connecting cells. This may be overriden by specifying a non-default value for the
8th and 9th arguments. The same saturation table number applies when hysteresis is present and the satura-
tion tables (e.g. KRGO, KRWG and KRWO) are specified with columns for both drainage and imbibition
processes.
When the saturation table has been specified in the 8th and 9th arguments and End Point Scaling is used,
keyword NEPS may be used to control whether the end points for the non-neighbour connection mobility
calculation are taken from this saturation table or from the connecting grid cells.
Examples
1. Given a 10x10x10 grid in a field-unit system, NNC is used to specify 3 different non-neighbour connections
in default ECLIPSE transmissibility units (cP.rb/day/psi). PRIN with NNC is then used to output the non-
neighbour connection data to the Print file, as follows. See NNC_2.dat for complete example:
NNC
4 5 6 4 5 9 23.5
5 5 6 5 5 9 24.3
6 5 6 6 5 9 27.6
/
The following results are then obtained from the GRID section of the Print file:
Number of non-neighbour connections is 3
Number of explicitly entered fault connections..3
Number of x-direction column to column faults...0
Number of y-direction column to column faults...0
Number of local grid connections................0
Number of dual porosity connections.............0
Number of pinchout connections..................0
Number of tensor connections....................0
NNC======================================================================================
2. Given a 10x10x10 grid in a field-unit system, NNC is used with the MORE option to specify 3 different non-
neighbour connections in MORE transmissibility units (md-ft). PRIN with NNC is then used to output the
non-neighbour connection data to the Print file, as follows. See NNC_2_MORE.dat for complete example:
NNC MORE
4 5 6 4 5 9 23.5
5 5 6 5 5 9 24.3
6 5 6 6 5 9 27.6
/
The following results are then obtained from the GRID section of the Print file:
NNC======================================================================================
Location
GRID Section
Description
This keyword stops MORE from generating non-neighbour transmissibilities due to fault and pinchout connections
- i.e. those connections related to grid geometry. It may be used from pre-processor programs such as RMS
which generate transmissibilities and non-neighbour connections and pass these to MORE using keywords such
as TRANX and NNC. In that case, MORE should not also generate these connections, and NOGEONNC can be
used to suppress this and prevent double-counting.
In radial mode with Ntheta>1, NOGE also suppresses ‘completing the circle’ transmissibilities. Non-neighbour
connections for dual porosity and dual permeability modelling are not effected by NOGEONNC.
Example
NOGE
Location
GRID Section
Description
This keyword stops MORE from generating any non-neighbour connections. This is useful in some development
situations but almost never applicable to a real engineering case.
Location
Description
The NOXY keyword is used to restore the normal grid subdivisions after the use of the XDIV and/or YDIV
keywords. There are no required arguments for NOXY.
Notes
• XDIV and YDIV allow grid arrays to be entered for large intervals defined by a subdivision of the basic grid.
Examples
1. In this example, we have a 9x12x4 grid and we want to enter a grid using the COOR and ZCOR keywords.
However, we want to avoid entering 9x12 coordinate lines. Thus, we can construct the data needed for
COOR and ZCOR for a coarse 3x4x4 grid by introducing the XDIV and YDIV keywords, as follows. See
NOXY_XDIV_YDIV.dat for complete example:
SIZE 9 12 4
XDIV
2 4 3 /
YDIV
2 4 4 2 /
We then enter the COOR and ZCOR data for the 9x12x4 grid using the corner point data for the smaller
3x4x4 grid.
COOR
0.00000 0.00000 5000.00 0.00000 0.
,→00000 6000.00
1111.11 0.00000 5000.00 1111.11 0.
,→00000 6000.00
2222.22 0.00000 5000.00 2222.22 0.
,→00000 6000.00
3333.33 0.00000 5000.00 3333.33 0.
,→00000 6000.00
8.103. NOXY - Restore Normal Grid Subdivisions after XDIV or YDIV 567
Tempest MORE Help, Release 8.1
Now, if our reservoir has a steady dip and we still wanted to enter the COOR x-y coordinate lines for the
coarsened 3x4x4 grid but then enter ZCOR depths for the finer 9x12x4 grid, we can use NOXY for this. We
would use XDIV and YDIV before the COOR keyword to enter coordinate data for a 3x4x4 grid, as above,
and then introduce NOXY before the ZCOR keyword to enter ZCOR data for the original fine 9x12x4 grid.
See NOXY.dat for complete example:
SIZE 9 12 4
XDIV
2 4 3 /
YDIV
2 4 4 2 /
COOR
0.00000 0.00000 5000.00 0.00000 0.
,→ 00000 6000.00
1111.11 0.00000 5000.00 1111.11 0.
,→ 00000 6000.00
2222.22 0.00000 5000.00 2222.22 0.
,→ 00000 6000.00
3333.33 0.00000 5000.00 3333.33 0.
,→ 00000 6000.00
8.103. NOXY - Restore Normal Grid Subdivisions after XDIV or YDIV 569
Tempest MORE Help, Release 8.1
ZCOR
216*5000.00 216*5250.00
216*5250.00 216*5500.00
216*5250.00 216*5500.00
216*5500.00 216*5750.00
216*5500.00 216*5750.00
216*5750.00 216*6000.00
216*5750.00 216*6000.00
216*6000.00 216*6250.00
/
2. A 2x2x1 grid is specified by providing a simplified input using the keywords COOR, DEPT, THIC, XDIV
and YDIV. The grid is populated with different active numbers using the keyword ACTN.
SPEC
2 2 1 /
XDIV
2 /
YDIV
2 /
COOR
0 0 5000 0 0 6000
10000 0 5000 10000 0 6000
0 10000 5000 0 10000 6000
10000 10000 5000 10000 10000 6000
/
DEPTH=5000
THIC=1000
K_X=100
PORO=0.1
CROC=3e-06
REFE=14.7000
ACTN
1 2 3 4
The active cell array is not honoured because keyword NOXY was not used to restore normal grid subdivi-
sions after keywords XDIV and YDIV are used:
If the keyword NOXY is used, the active cell array is honoured. See NOXY_ACTN.dat for complete
example:
NOXY
ACTN
1 2 3 4
8.103. NOXY - Restore Normal Grid Subdivisions after XDIV or YDIV 571
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The NTOG keyword is used to populate the cells in a grid with net-to-gross ratios. Its arguments consist of an
array of net-to-gross ratio values. Cells will be populated in the x-direction first, followed by the y-direction, and
then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number of
cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The net-to-gross ratio is included in pore volume and horizontal transmissibility calculations. NET is related
to NTOG by the expression NTOG=NET/THIC. Changing net thickness is not the same as changing gross
thickness, as the gross thickness effects the layer separation and thus the vertical transmissibility.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. NTOG is used to populate a 10x10x5 grid with 500 net-to-gross ratio values. See NTOG.dat for complete
example:
NTOG
0.60 0.78 0.80 0.70 0.48 0.36 0.84 0.59 0.30 1.00
0.85 0.02 0.08 0.52 0.19 0.96 0.35 0.35 0.50 0.64
0.97 0.40 0.66 0.34 0.76 0.76 0.39 0.20 0.31 0.03
0.40 0.69 0.91 0.37 0.33 0.76 0.91 0.15 0.01 0.72
0.42 0.97 0.15 0.91 0.50 0.58 0.07 0.72 0.74 0.41
0.14 0.31 0.51 0.53 0.39 0.36 0.49 0.56 1.00 0.20
0.98 0.24 0.13 0.45 0.02 0.37 0.09 0.38 0.90 0.84
0.44 0.22 0.83 0.07 0.04 0.73 0.92 0.84 0.95 0.45
0.66 0.12 0.24 0.87 0.82 0.69 0.91 0.85 0.52 0.60
0.46 0.17 0.18 0.83 0.16 0.23 0.53 0.18 0.57 0.37
100*1.00
100*0.80
100*0.75
100*0.50
Location
INIT Section
Description
The PDSI keyword is used to populate the cells in a grid with an initial coal desorption pressures in a coal bed
methane system. When PDSI is used, the coal bed methane option must be turned on using the CBM keyword
in the INPU or FLUI sections. Arguments for the PDSI keyword consist of an array of initial coal desorption
pressures.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For compositional coal bed methane models, keywords like PDS1, PDS2 etc. are used instead of PDSI.
Please see the PDSn keyword for more information.
• GCRI may be entered as an alternative to PDSI. PDSI will then be set up as a function of GCRI so that
the required initial gas content is obtained. The relationship between the gas-coal ratio (GCR) and the
desorption pressure is:
P DS
GCR = CLAN ×
P LAN + P DS
GCR
P DS = P LAN ×
CLAN − GCR
where,
– GCR = gas-coal ratio
– CLAN = Langmuir constant
– PDS = desorption pressure
– PLAN = Langmuir pressure
• If the calculated coal desorption pressure is greater than the initial pressure, it will be reset to the initial
pressure.
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. PDSI is used to populate a 10x10x3 grid with 300 initial coal desorption pressures.
PDSI
100*1000
100*1108
100*1115
The initial coal desorption pressure array will then appear in the Recurrent tab of the results for display in
3D, as shown below.
Location
INIT Section
Description
The PDSn keyword is used to populate the cells in a grid with an initial coal desorption pressures in a composi-
tional coal bed methane system. When PDSn is used, the coal bed methane option must be turned on using the
CBM keyword in the INPU or FLUI sections. Arguments for the PDSn keyword consist of an array of initial coal
desorption pressures. The array for each component is identified by replacing the ‘n’ in the PDSn keyword with
an integer number which corresponds to the component as defined in the INPU section by the CNAM keyword.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For black oil coal bed methane models, the PDSI keyword is used instead of PDS1, PDS2 etc. Please see
the PDSI keyword for more information.
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In the example below, PDSn is used to populate a 9x9x4 grid with 324 initial coal desorption pressures for
each of its two components (CO2 and C1). The integer number associated with each component which is
used to replaced the ‘n’ in the PDSn keyword corresponds to the order in which these components are listed
after the CNAM keyword in the INPU section. See CoalBedMethane_EOS.dat for complete example:
Thus, component 1 will correspond to CO2 while component 2 will correspond to C1. The PDSn keyword
can then be used accordingly, as follows.
PDS1
343*0.1
PDS2
343*1000
The initial coal desorption pressure arrays for CO2 and C1 will then appear in the Recurrent tab of the
results as desaturation
pressure for display in 3D, as shown below.
Location
GRID Section
Description
The PEBI keyword is used to create an unstructured local grid refinement in specific cells of the global grid. This
keyword is directly followed by ten required arguments which describe the dimensions, location, and name of the
PEBI grid refinement.
Definitions
Notes
• If the background resolution argument is defaulted then it is set to an average of the (X,Y) cell dimensions
of the global grid cells covered by the PEBI grid.
• If the refined resolution argument is defaulted then it is set to the background resolution.
• Refined points are added using the TRXY and FLXY keywords.
• Wells will automatically be completed in PEBI grids when they are part of a well’s trajectory.
• Alternatively, when the WELL keyword is used, the argument LGR of the LOCA sub-keyword of WELL
should be used to complete a well in the PEBI grid.
• The PEBI grid name is used in the REFI keyword and when completing wells in the PEBI grid.
• PEBI grid refinement may not be specified in runs where grid coarsening is specified (see COAR and CXGR
keywords).
• PEBI grids may only be created in regions where the global grid is vertical.
• For any run containing at least one PEBI grid the algebraic multigrid linear solver will be automatically
selected but this can be overruled by using the NFLS keyword.
Examples
TRXY
152.4 152.4
1219.2 1219.2
/
Location
Description
The PDIV keyword is used to specify the division of the plane between processors for parallel simulation. PDIV
must be entered before the grid size is entered. This keyword consists of two records. The first record follows
directly after the PDIV keyword and specifies the direction of the division. The second record appears on a
separate line below the PDIV keyword and specifies the division of the plane. This record must be terminated by
a slash (/) after the last entry.
Definitions
Notes
• The upper plane assigned to the last processor must be the remainder of the plane, so it is not specified.
• There is normally no need to specify PDIV. MORE will attempt to split the reservoir between the available
processors in such a way as to balance up the number of active cells. However, in some cases, the default
cannot be used because wells or local grids are split between processors. In that case, PDIV may be used to
reset the plane division manually.
• There must be at least two global planes between successive LGRs for the model to be successfully split in
a parallel run. Otherwise, the simulation will not proceed and the user will have to either reduce the scope
of LGRs or run the simulation on lesser number of processors.
• PDIV must be specified in relation to all the cells in the simulation model, including those that are inactive.
• Plane division data can be output to the Print file by using the PRIN keyword with the PPCE option. The
resulting output produced can be found by performing a search for PARA in the Print file. For more in-
formation, please see Example 1 below. Another example can also be found in Example 2 from the PRIN
keyword examples.
• PDIV divisions are not supported with COAR. When COAR is used, MORE will apply a regular parallel
division of planes in the direction (X or Y) specified with PDIV.
Examples
1. In a 16x20x5 grid, PDIV is used to specify the division of the x-plane between 4 processors. See PDIV.dat
for complete example:
PDIV X
4 8 12 /
8.108. PDIV - Division of Plane between Processors for Parallel Simulation 581
Tempest MORE Help, Release 8.1
In the example above, planes 1-4 in the x-direction are assigned to the processor 1, planes 5-8 to processor
2, planes 9-12 to processor 3 and the last four planes to processor 4.
If the PRIN keyword with the PPCE option is also entered in the GRID section, then the following data will
be output to the Print file:
PARA======================================================================================
Processor per cell data can also be displayed in 3D from the Recurrent tab of the results:
8.108. PDIV - Division of Plane between Processors for Parallel Simulation 583
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The PINC keyword is used to specify a pinchout tolerance. PINC consists of one required argument and one
optional argument. The optional argument follows directly after PINC and turns the pinch-out on or off. If this
argument is not present, it will automatically be defaulted to “on”. The required argument is the pinchout tolerance
value which should appear on a separate line below the PINC keyword.
Definitions
1. ON or OFF
• ON (default) - pinch-out blocks with a thickness which is less than the pinchout tolerance
• OFF - do not pinch-out blocks
2. Pinchout Tolerance - inactive blocks with a thickness which is less than the pinchout tolerance are pinched
out
• Units: feet (Field), metres (Metric)
• Default: 0.5 metres
Notes
• A pinchout is a non-neighbour connection between two active cells separated by one or more inactive cells.
Those cells may be inactive because of a pore volume below the minimum pore volume value specified by
MINP, or a thickness below the minimum cell thickness set by MIND, or due to the values in the active cell
array specified by ACTN.
• If a pinchout connection is not generated, an inactive cell between two active cells will be a barrier to flow.
• Pinchout connections will only be generated when inactive cells separate active ones. To make cells inactive
on the basis of their thickness, use the MIND keyword.
• The following figure and notes describe the interaction between PINC and MIND:
• Sometimes it is useful to be able to control pinchout generation by turning the pinchout on or off in each
cell. The pinchout switch array, specified using PNSW, enables this to be done. Please see Example 2 below
for more information.
Examples
1. Using MIND to make cells with a thickness less than 100 inactive, the cell thickness array will be displayed
as follows:
PINC is used to pinch-out blocks with a thickness less than 110. See PINC.dat for complete example:
PINC ON
110
If the PRIN keyword with the NNC option is also entered in the GRID section, the resulting pinchout
connections created can be seen in the Print file of the results, as shown below.
NNC======================================================================================
2. The following example illustrates how PNSW may be used with PINC. As the PNSW keyword is used to
specify an array with values that turn the pinchout on or off in each cell, we can use PNSW to turn off 8 of
the 16 pinchouts created in Example 1 above by assigning a PNSW value of 0 to those cells in the pinchout
layer, as follows. See PINC_PNSW.dat for complete example:
PNSW
16*1
16*1
16*1
0 1 0 1
1 0 1 1
0 0 0 1
1 0 1 0
16*1
Upon examining the NNC section of the Print file, we can still see the 8 pinchout connections that have have
not been closed by the PNSW array, as shown below.
NNC======================================================================================
The pinchout switch values array will also be output to the Initial tab of the results for display in 3D, as
follows:
Location
GRID Section
Description
The PLAN keyword is used to populate the cells in a grid with a Langmuir pressures in a coal bed methane system.
The Langmuir pressure determines the amount of absorbed coal gas as a function of desorption pressure. When
PLAN is used, the coal bed methane option must be turned on using the CBM keyword in the INPU or FLUI
sections. Arguments for the PLAN keyword consist of an array of Langmuir pressures.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
1. Langmuir pressures
• Units: psia (Field), bar (Metric)
• Default: 1 atm
Notes
• To set up global values of the Langmuir constants, the LANG keyword should be used. Values which vary
across the field may be set up using the CLAN, PLAN, and TLAN keywords.
• For compositional coal bed methane models, keywords like PLN1, PLN2 etc. are used instead of PLAN.
Please see the PLNn keyword for more information.
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
PLAN
570 571 571 571 574 571 571 571 571 572
571 572 571 571 571 571 571 571 571 571
575 571 571 570 571 571 571 573 571 571
571 571 571 571 571 571 571 574 571 571
571 571 571 571 571 571 572 571 571 571
571 571 570 571 572 571 571 570 571 571
571 571 571 571 571 571 575 571 571 571
573 571 571 571 574 571 571 572 571 571
572 571 574 571 573 571 571 571 571 571
571 571 571 575 572 571 571 571 571 572
200*571
The Langmuir pressure array will then appear in the Initial tab of the results for display in 3D, as shown
below.
Location
GRID Section
Description
The PLNn keyword is used to populate the cells in a grid with a Langmuir pressure for each component in a
compositional coal bed methane system. The Langmuir pressure determines the amount of absorbed coal gas as
a function of desorption pressure. When PLNn is used, the coal bed methane option must be turned on using
the CBM keyword in the INPU or FLUI sections. Arguments for the PLNn keyword consist of an array of
Langmuir pressures for each component. The array for each component is identified by replacing the ‘n’ in the
PLNn keyword with an integer number which corresponds to the component as defined in the INPU section by
the CNAM keyword.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• To set up global values of the Langmuir constants, the LANG keyword should be used. Values which vary
across the field in each component may be set up using the CLNn, PLNn, and TLNn keywords.
• For black oil coal bed methane models, the PLAN is used instead of PLNn. Please see the PLAN keyword
for more information.
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In the example below, PLNn is used to populate a 9x9x4 grid with 324 Langmuir pressures for two com-
ponents (CO2 and C1). The integer number associated with each component which is used to replaced the
‘n’ in the PLNn keyword corresponds to the order in which these components are listed after the CNAM
keyword in the INPU section. See CoalBedMethane_EOS.dat for complete example:
Thus, component 1 will correspond to CO2 while component 2 will correspond to C1. The PLNn keyword
can then be used accordingly, as follows.
PLN1
570 571 571 571 574 571 571 571 572
571 572 571 571 571 571 571 571 571
575 571 571 570 571 571 571 573 571
571 571 571 571 571 571 571 574 571
571 571 571 572 571 571 572 571 571
571 571 570 571 572 571 571 570 573
571 571 571 571 571 571 575 571 571
573 571 571 571 574 571 571 572 571
572 571 574 571 573 571 571 571 571
571 571 571 575 572 571 571 571 571
243*571
PLN2
573 573 573 573 573 573 571 573 572
573 574 573 573 573 573 573 573 573
573 573 573 576 573 572 573 573 573
570 573 573 573 573 573 573 573 573
573 573 573 573 571 573 573 573 573
572 573 573 573 573 573 570 573 573
573 573 570 574 573 573 573 573 573
575 574 573 573 573 573 570 573 573
572 573 573 571 573 573 573 573 575
243*573
The Langmuir pressure arrays for CO2 and C1 will then appear in the Initial tab of the results for display in
3D, as shown below.
The variation of permeability with porosity in the Palmer-Mansoori model (see MORE Technical Reference,
section 12.2) defaults to a cubic. The PMEX keyword enables the Palmer-Mansoori exponent to be reset.
Location
GRID Section
PMEX exponent
Default 3.0
Example
PMEX 2.3
Location
GRID Section
Description
The PNSW keyword is used to populate the cells in a grid with pinchout switch values. This keyword allows the
user to turn the pinchout defined by PINC on or off in each cell. Its arguments consist of an array of pinchout
switch values. A PNSW value of 0 will turn off the pinchout in a cell while a PNSW value of 1 will turn the
pinchout on.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. Using MIND to make cells with a thickness less than 100 inactive, the cell thickness array will be displayed
as follows:
If the PRIN keyword with the NNC option is also entered in the GRID section, the resulting pinchout
connections created can be seen in the Print file of the results, as shown below.
Number of non-neighbour connections is 16
Number of explicitly entered fault connections..0
Number of x-direction column to column faults...0
Number of y-direction column to column faults...0
Number of local grid connections................0
Number of dual porosity connections.............0
Number of pinchout connections..................16
Number of tensor connections....................0
NNC======================================================================================
As the PNSW keyword is used to specify an array with values that turn the pinchout on or off in each cell,
we can use PNSW to turn off 8 of the 16 pinchouts created above by assigning a PNSW value of 0 to those
cells in the pinchout layer, as follows. See PINC_PNSW.dat for complete example:
PNSW
16*1
16*1
16*1
0 1 0 1
1 0 1 1
0 0 0 1
1 0 1 0
16*1
Upon examining the NNC section of the Print file, we can still see the 8 pinchout connections that have have
not been closed by the PNSW array, as shown below.
Number of non-neighbour connections is 8
Number of explicitly entered fault connections..0
Number of x-direction column to column faults...0
Number of y-direction column to column faults...0
Number of local grid connections................0
Number of dual porosity connections.............0
Number of pinchout connections..................8
Number of tensor connections....................0
NNC======================================================================================
The pinchout switch values array will also be output to the Initial tab of the results for display in 3D, as
follows:
Description
The PORO keyword is used to populate the cells in a grid with porosity values. Its arguments consist of an array
of porosity values. The PORO array must be specified in all datasets. Cells will be populated in the x-direction
first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to
assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. Porosity values
• Default: 1
• Minimum: 0; Maximum: 1
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS , F(DE , F(PO , FUNC , INTE , LINE , MODI , REPL , VARI , or ZVAR keywords for
further information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. PORO is used to populate a 10x10x5 grid with 500 porosity values. See PORO.dat for complete example:
PORO
0.10 0.12 0.11 0.13 0.10 0.14 0.15 0.17 0.06 0.12
0.15 0.11 0.07 0.10 0.16 0.18 0.14 0.05 0.11 0.09
0.14 0.09 0.05 0.07 0.08 0.10 0.11 0.07 0.18 0.06
0.11 0.11 0.16 0.10 0.14 0.05 0.08 0.15 0.17 0.19
0.20 0.10 0.12 0.06 0.06 0.12 0.13 0.14 0.11 0.15
0.10 0.12 0.11 0.13 0.10 0.14 0.15 0.17 0.06 0.12
0.15 0.11 0.07 0.10 0.16 0.18 0.14 0.05 0.11 0.09
0.14 0.09 0.05 0.07 0.08 0.10 0.11 0.07 0.18 0.06
0.11 0.11 0.16 0.10 0.14 0.05 0.08 0.15 0.17 0.19
0.20 0.10 0.12 0.06 0.06 0.12 0.13 0.14 0.11 0.15
40*0.12 60*0.05
70*0.10 30*0.15
20*0.07 80*0.13
100*0.08
Location
Definitions
Record 1:
PORV i1 i2 j1 j2 k1 k2
Record 2:
valuei1 ,j1 ,k1 valuei1+1 ,j1 ,k1 ... valuei2 ,j1 ,k1 valuei1 ,j1+1 ,k1 ...
The PORV, TRANX, TRANY and TRANZ keywords are similar to the PVOL, T_X, T_Y and T_Z keywords used
with REPLACE. If the i1..k2 box is defaulted, PORV may be entered as just the keyword followed by nx*ny*nz
values on the next line.
PORV,TRANX,TRANY and TRANZ differ from PVOL, T_X, T_Y and T_Z in the units assumed:
For PORV.
MORE has traditionally used cubic feet in field units and cubic metres in metric units. PORV follows the ECLIPSE
unit convention of using stb in field units and cubic metric units in metric units.
For TRANX, TRANY and TRANZ.
MORE has mD-ft and mD-metres for transmissibilities. TRANX, TRANY and TRANZ follow the ECLIPSE
convention of using in cP×rb/day/psi or cP×rm3 /day/bars. Compared to the usual MORE units, the ECLIPSE
units include an extra Darcy constant of 0.001127 in POFU and 0.00852702 in metric.
Using PVOL, TRANX, TRANY and TRANZ allows ECLIPSE arrays to be input without needing to change to
MORE units.
PVOL, TRANX, TRANY and TRANZ can only be performed in this way after DOGR or EDIT has been used to
perform the grid calculations.
Location
GRID Section
Description
The PREG keyword is used to populate the cells in a grid with polymer property region numbers for polymer
simulations. When the polymer option has been turned on using the POLY keyword in the INPU section, the
PREG keyword may be used to assign sets of PPRO and PMIS data to cells. Arguments for the PREG keyword
consist of an array of polymer property region numbers. Values should be between 1 and NPREG where NPREG is
the number of sets of PPRO and PMIS data provided.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. PREG is used to populate a 10x10x4 grid with 400 polymer property region numbers. See PREG.dat for
complete example:
PREG
100*1
100*2
100*3
100*4
The property region number array will then appear in the Initial tab of the results for display in 3D, as shown
below.
Location
GRID Section
Description
The PROC keyword is used to populate the cells in a grid with Poisson’s ratio values in a coal bed methane system
with the Palmer-Mansoori option activated. When PROC is used, the coal bed methane option must be turned on
using the CBM keyword with the PM (Palmer-Mansoori) option in the INPU or FLUI sections. Arguments for
the PROC keyword consist of an array of Poisson’s ratio values.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information regarding coal bed methane modelling, please refer to the MORE Technical Refer-
ence.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. PROC is used to populate a 10x10x3 grid with 300 Poisson’s ratio values. See CoalBedMethane_PM.dat
for complete example:
PROC
0.39 0.38 0.39 0.39 0.35 0.39 0.39 0.39 0.37 0.39
0.39 0.39 0.36 0.39 0.39 0.39 0.39 0.39 0.38 0.39
0.39 0.39 0.39 0.39 0.37 0.39 0.39 0.39 0.39 0.36
0.37 0.39 0.39 0.38 0.39 0.36 0.38 0.39 0.39 0.39
0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.39
0.38 0.39 0.38 0.38 0.39 0.39 0.39 0.39 0.39 0.38
0.35 0.39 0.39 0.38 0.39 0.37 0.39 0.39 0.39 0.39
0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.35 0.39 0.39
0.39 0.39 0.36 0.39 0.39 0.39 0.37 0.35 0.39 0.39
0.38 0.39 0.39 0.39 0.39 0.39 0.39 0.39 0.38 0.39
200*0.39
The PROC array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The PVOL keyword is used to modify or replace values for active cells in the pore volume array that has been
automatically calculated by Tempest MORE during grid calculations. PVOL must be used with the MODI or
REPL keywords and cannot be used on its own to populate the cells in a pore volume array.
Arguments for the PVOL keyword consist of two records. The first record requires seven arguments, placed on the
same line as the PVOL keyword, to indicate the location of the cells whose values are to be modified or replaced
and either the MODI or REPL keywords as the final argument. If the MODI keyword is used, the second record
should consist of one or more (up to four) modifier arguments which are entered on a separate line below Record
1. If the REPL keyword is used, the second record should consist of an array of values used to replace the original
values in the cells specified by Record 1.
Definitions
RECORD 1:
1. First point to modify or replace in the x (i) direction
• Default: 1
2. Last point to modify or replace in the x (i) direction
• Default: maximum x (i) coordinate
3. First point to modify or replace in the y (j) direction
• Default: 1
4. Last point to modify or replace in the y (j) direction
• Default: maximum y (j) coordinate
5. First point to modify or replace in the z (k) direction
• Default: 1
6. Last point to modify or replace in the z (k) direction
• Default: maximum z (k) coordinate
7. MODI or REPL
RECORD 2:
If the MODI keyword is used:
1. Constant to be added (xadd)
• Default: 0
2. Multiplier (xmult)
• Default: 1
3. Minimum value (xmin)
• Default: 0
4. Maximum value (xmax)
• Default: 1020
If the REPL keyword is used:
1. Values used to replace the original pore volumes in the cells specified in Record 1
Notes
• Pore volume units in Tempest MORE are in ft3 (Field) or m3 (Metric). However, please note that when field
units are used, PVOL will be converted to and displayed on the 3D viewer in rb instead of ft3 .
• Cells previously made inactive by using the ACTN keyword or by setting their pore volume to zero, cannot
be reactivated using PVOL. Use ACTN instead.
• RVOL may be used as an alias to PVOL. Units of RVOL will also be ft3 (Field) or m3 (Metric).
• When MODI is used to add a constant to the values in an existing PVOL array, the constant will take on the
units in which PVOL is displayed in the 3D viewer with, which are rb instead of ft3 . Please see Example 1
for more information.
• When MODI is used to assign a minimum or maximum value to an existing PVOL array, the values entered
should represent units in which the PVOL array is defined, which are in ft3 . However, when PVOL is
displayed in the 3D Viewer, these values will be converted to and displayed in rb instead of ft3 . Please see
Example 2 for more information.
• When REPL is used with PVOL to replace pore volumes in specified cells, the values entered will be in ft3
(Field) or m3 (Metric). However, please note that when field units are used, PVOL will be converted to and
displayed on the 3D viewer in rb instead of ft3 . Please see Example 4 below for more information.
Examples
1. In a field unit system, given an array with a pore volume of 3.56x106 rb throughout, MODI is used to add a
constant of 2x106 to the pore volume array in rows i=6 to 10.
PVOL 6 10 1 10 1 5 MODI
20000000
2. In a field unit system, given an array with a pore volume of 3.56x106 rb throughout, MODI is used to multiply
the pore volume array in rows i=4 to 6 by 2.0.
PVOL 4 6 1 10 1 5 MODI
0 2.0
3. In a field unit system, given an array with a pore volume of 3.56x106 rb throughout, MODI is used to assign a
minimum pore volume of 4x107 ft3 to the cells in rows i=1 to 5 which have a pore volume less than 4x107 ft3
(or 7.12x106 rb).
PVOL 1 5 1 10 1 5 MODI
2* 40000000
(Please note that when field units are used, pore volumes will be displayed in rb in the 3D viewer, as shown
in the figure below, despite being input in f t3 .)
4. In a field unit system, given a 10x10x5 grid with a pore volume of 2x107 ft3 (or 3.56x106 rb) throughout,
REPL is used to replace the pore volume in rows i=1 to 5 with 4x107 ft3 .
PVOL 1 5 4* REPL
250*40000000
(Please note that when field units are used, pore volumes will be displayed in rb in the 3D viewer, as shown
Location
Definitions
*Record 1:*
PORV i1 i2 j1 j2 k1 k2 {REPL MODI}{ZERO}
*Record 2:* (MODIfy option)
xadd xmult xmin xmax
Defaults: 0 1 0 1E20
*Record 2:* (REPLace option)
valuei1 ,j1 ,k1 valuei1+1 ,j1 ,k1 ... valuei2 ,j1 ,k1 valuei1 ,j1+1 ,k1 ...
tran either PVOL or the name of a transmissibility array. Options are PVOL, T_X, T_Y, T_Z and MVLM.
i1 index of first value to change in x (i) direction, all indices default to values giving the maximum
range for the direction (see table)
i2 index of last value to change in x direction
j1 index of first value to change in y direction
j2 index of last value to change in y direction
k1 index of first value to change in z direction
k2 index of last value to change in z direction
MODI values are to be modified
REPL values are to be replaced
ZERO values less than xmin are set to zero
xadd value added to the original
xmult multiplier applied to original value
xmin minimum value
xmax maximum value
val- values used to REPLace the original values
ueijk
The grid block indices default to the maximum range for the three different directions.
MODIfications are applied as follows:
value(modified) = MINIMUM xmax, xadd + xmult × value(original)
Normally, modified values less than xmin, are set equal to xmin. However, for the ZERO option, modified values
less than xmin are set to zero.
Notes
When modifying transmissibilities, note that the transmissibility is associated with the lower index of the con-
nected cells. For example, the x-transmissibility between cell (1,1,1) and (2,1,1) is associated with cell (1,1,1).
Depth modifications can only be performed in this way after DOGR or EDIT has been used to perform the grid
calculations. Otherwise DEPT is a normal grid keyword which is an alias for ZGRI. Note that after the grid
calculations have been performed, modifying depths will not effect the cell locations or transmissibilities.
Pore volume units are ft3 for Practical Oil Field Units (POFU) and m3 for METRic. Transmissibility coefficients
units are md-ft for Practical Oil Field Units (POFU) and md-m for METRic. These differ from the transmissibility
values used by simulators such as ECLIPSE which are effectively in cP×rb/day/psi or cP×rm3 /day/bars and
include an extra Darcy constant of 0.001127 in POFU and 0.00852702 in metric.
To enter pore volumes and transmissibility values in ECLIPSE units use the related keywords PORV_TRANXYZ.
RVOL may be used as an alias to PVOL.
MVLM may be used in DPSS (single grid dual porosity) mode to modify the matrix pore volume. If more than
one matrix fraction is present the keyword may be one of MVL1, MVL2..etc.
Examples
1. Pore volumes in the I=1 row of the grid are multiplied by two:
PVOL 2*1 /
0.0 2.0 /
2. Any blocks with a pore volume less than 10 are removed from the reservoir.
PVOLUME 6* ZERO
2* 10 /
T_X 4* 3 3 MODI
0 0.3 /
4. New cell centre depth values are set for the reservoir:
Replaces the first three values in rows 4 and 5 of the second layer.
8.119. PVOL tran, DEPT - Pore Volume, Transmissibility, Depth Modify/Replace 611
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The PVBM keyword is used to multiply pore volumes along a boundary of the reservoir. PVBM consists of eight
required arguments, all of which should be entered in succession on the same line as the PVBM keyword itself
when used.
Definitions
Notes
• Boundary cells are identified on any available face in the specified direction within the box. This includes
both external faces on the edge of the reservoir and internal faces with no active neighbour. Any such cells
will have their pore volumes multiplied by the specified amount.
It there is no active neighbour in the specified direction within the box, the pore volume is multiplied by the
specified amount. However, it may be desirable not to do so when the neighbour is inactive due to a MINPV
limit. Setting the 9th argument to N ensures no modifications are made in this case. Then only neighbours
which are inactive because ACTN =0 will lead to modified pore volumes.
For the purposes of PVBM, Z is regarded as increasing downwards.
• Several PVBM keywords may be specified to build up a set of pore volume modifiers on the boundary of
the reservoir.
• Only the pore volumes for cells within the global grid are modified. The keyword does not apply to cells
within local grids.
• Each time a connection box is specified, the pore volumes are edited for the appropriate boundary cells. If
a cell lies in two connection boxes specified using PVBM, then two multipliers will be applied. However,
when multiple faces are specified for the same connection box (using strings such as X+Y- etc.), the pore
volume modifier is only applied once per cell which has an inactive neighbour in the appropriate directions.
• When an optional region is supplied as the 10th argument, it may be convenient to define this region by
using the DEFI keyword.
If the DEFI keyword is defined in the GRID section, it is essential to use the SAVE argument to ensure the
array does not get deleted after processing of the GRID section.
Examples
1. PVBM is used to modify the pore volumes by 10.0 for all boundary cells in the X+ direction, for layers 10
to 15 in the model:
PVBM 10.0 1* 1* 1* 1* 10 15 X+
2. PVBM is used to modify the pore volumes by 100.0 for all boundary cells in the positive and negative X
and Y directions, for layers 10 to 15 in the model:
3. PVBM is used to modify the pore volumes by 100.0 for all boundary cells in the X+ and Y- directions, for
layers 10 to 15 in the model, but excluding any cells in the box 1 10 1 20 10 15:
The pore volumes are edited on the X+ and Y- faces as indicated by red in the following figure.
Fig. 8.2: Use of PVBM to modify pore volumes on the boundary of the reservoir. Red cells indicate the modified
pore volumes.
Location
GRID Section
Description
The PVFL keyword stands for Pore Volume Floor and is used to assign a minimum pore volume for all active
cells. This keyword consists of one required argument which directly follows PVFL on the same line. An optional
argument can also be used to specify the units for the pore volume tolerance.
Definitions
Notes
1. Pore volume units in Tempest MORE are in ft3 (Field) or m3 (Metric). However, please note that when field
units are used, pore volumes will be converted to and displayed on the 3D viewer in rb instead of ft3 .
Examples
1. Given the following pore volume distribution seen in the “ORIGINAL” figure below, PFVL is used to make
all active cells have a pore volume of at least 2.0x106 . See PVFL.dat for complete example:
PVFL 2000000
2. Given the following pore volume distribution seen in the “ORIGINAL” figure below, displayed in rb units,
PFVL is used with the ECLI option to make all active cells have a pore volume of at least 2.0x106 rb (Field
Units (ECLIPSE)). See PVFL_ECLI.dat for complete example:
3. Given the following pore volume distribution seen in the “ORIGINAL” figure below, displayed in rb units,
PFVL is used with the MORE option to make all active cells have a pore volume of at least 2.0x107 ft3
(Field Units (MORE)), which is equal to approximately 3.56x106 rb. See PVFL_MORE.dat for complete
example:
(Please note that when the MORE option is used with PVFL to specify a minimum pore volume in f t3 , pore
volumes will still be displayed in rb in the 3D Viewer, and not in f t3 .)
Location
GRID Section
Description
The PVTN keyword is used to populate the cells in a grid with pressure table numbers. If multiple pressure tables
are entered, the tables may be assigned to cells using the PVTN keyword. Arguments for PVTN consist of an
array of pressure table numbers. Cells will be populated in the x-direction first, followed by the y-direction, and
then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number of
cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The number of pressure tables provided in the FLUI section must be equal to the number of pressure table
numbers used by PVTN in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. PVTN is used to populate a 10x10x5 grid with 500 saturation table numbers. See PVTN.dat for complete
example:
PVTN
1 1 1 1 1 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
2 2 2 1 1 1 3 3 1 1
1 1 4 1 1 1 1 2 2 1
1 2 2 2 2 2 1 1 1 1
1 1 1 2 2 1 5 1 2 1
1 4 4 2 2 5 2 2 2 2
1 2 2 2 1 3 2 1 1 1
1 1 2 2 1 2 1 2 1 1
1 1 1 1 4 1 1 3 1 1
100*1
100*2
100*3
50*4 50*5
Pressure table region data can then be displayed in 3D from the Initial tab of the results:
Location
GRID Section
Description
The PRIN keyword is used to define the grid print options and controls the information that is written to the GRID
section of the Print file, except for the ACTI option (Please see notes below for more information regarding ACTI).
PRIN consists of seven possible options which follow directly after PRIN on the same line.
Definitions
Notes
• The PRIN keyword exists in different forms in different sections of the input, thus, one must be diligent to
ensure the correct form of PRIN is being used in the relevant section.
• For large studies, printing arrays to the output file is fairly useless due to the large volume of output pro-
duced. It is recommended to use Tempest to view the data in this case.
• There are no compatibility issues between active and non-active files - MORE will automatically detect the
type of any input files and write out the required output files.
• The ZONE keyword can be used with PRIN to specify zones for array printing to the GRID section of the
Print file. Please see Example 2 below for more information.
• The ACTI option applied to the .grd and .ara file arrays which are files that are loaded by Tempest
View. There are no effects on the .out file output. When ACTI is used with PRIN, values will only be
output for active cells. There is a small effect with the grid displays. Please see Example 3 below for more
information.
Examples
The following grid, where all inactive cells appear in grey, was used for Examples 1 to 4 below:
1. PRIN is used with the MAP and array options to specify that the porosity and x-permeability arrays are to
be written to the GRID section of the print file for post-processing. See PRIN_PORO_KX.dat for complete
example:
MAP=======================================================================================
Map of PORO at 1 Jan 2000, 0.0 days
==========================================================================================
Layer iz= 1
ix= : 1 2 3 4 5
Row iy= 1: 0.300 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0 0.300
Row iy= 3: 0.300 0.300 0.0 0.0 0.300
Row iy= 4: 0.300 0.300 0.300 0.300 0.300
Row iy= 5: 0.300 0.300 0.300 0.300 0.300
Layer iz= 2
ix= : 1 2 3 4 5
Row iy= 1: 0.300 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0 0.300
Row iy= 3: 0.300 0.300 0.0 0.0 0.300
Row iy= 4: 0.300 0.300 0.300 0.300 0.300
Row iy= 5: 0.300 0.300 0.300 0.300 0.300
Layer iz= 3
ix= : 1 2 3 4 5
Row iy= 1: 0.300 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0 0.300
Row iy= 3: 0.300 0.300 0.0 0.0 0.300
Row iy= 4: 0.300 0.300 0.300 0.300 0.300
Row iy= 5: 0.300 0.300 0.300 0.300 0.300
==========================================================================================
MAP=======================================================================================
Map of K_X at 1 Jan 2000, 0.0 days
==========================================================================================
Layer iz= 1
All values are 100.000
Layer iz= 2
All values are 100.000
Layer iz= 3
All values are 100.000
==========================================================================================
2. PRIN is used with the ZONE keyword to specify that the porosity values in the active cells in a zone that
ranges from cells (1,1,1) to (4,3,2) will be output to the GRID section of the print file for post-processing.
See PRIN_ZONE.dat for complete example:
MAP=======================================================================================
Map of PORO at 1 Jan 2000, 0.0 days
==========================================================================================
Layer iz= 1
ix= : 1 2 3 4
Row iy= 1: 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0
Row iy= 3: 0.300 0.300 0.0 0.0
Layer iz= 2
ix= : 1 2 3 4
Row iy= 1: 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0
Row iy= 3: 0.300 0.300 0.0 0.0
==========================================================================================
3. PRIN is used with the ACTI option to specify that the x-permeability values for only the active cells will
be written to the .grd and .ara files which are used by Tempest View. See PRIN_ACTI_KX.dat for
complete example:
When displayed in 3D, the inactive cells in the x-permeability array will appear inactive with a value of 0
in the legend when highlighted, indicating no values were written out to the .grd and .ara files for the
inactive cells.
Alternatively, when ACTI is not used, the inactive cells in the x-permeability array will appear active with
a value of 100 in the legend when highlighted, indicating that values for these inactive cells were indeed
written out to the .grd and .ara files.
4. PRIN is used with the NNC option to specify that a listing of all non-neighbour connections will be written
to the GRID section of the print file for post-processing. See PRIN_NNC.dat for complete example:
PRIN NNC
NNC======================================================================================
----- ------------- ---- ---- ---- --- ---- ---- ---- --- -------- --------
,→ -------
5. When running a project in parallel on 4 processors, PRIN is used with the PPCE option to request the
output of the number of cells per processor to the GRID section of the print file for post-processing. See
PRIN_PPCE.dat for complete example:
PRIN PPCE
PARA======================================================================================
Location
GRID Section
Description
The R-DI keyword is used to define grid spacing in the r-direction in a radial grid. Its arguments consist of two
records, each listed their own separate lines following the R-DI keyword. Record 1 describes the grid processing
method used while Record 2 defines the the grid spacing values in the r-direction.
Definitions
RECORD 1:
1. One of the following grid processing keywords: CONS, VARI, LOGA, or LOG1
RECORD 2:
1. R-direction grid spacing values
Examples
1. Using R-DI with CONS (R-direction) to specify a uniform grid spacing between the inner and outer radii of
0.5 and 2500, respectively:
R-DI
CONS
0.5 2500
2. Using R-DI with VARI (R-direction) to specify a radial grid with an inner radius of 0.5 and a variable grid
spacing which gives an outer radius of 2500:
3. R-DI is used with LOGA (R-direction) to specify logarithmic spacing in the r-direction in a grid with an
inner radius of 0.5 and an outer radius of 2500:
4. R-DI is used with LOG1 to specify a logarithmic grid spacing in all but the first grid interval in the r-
direction.
R-DI
LOG1
0.5 100 2500
Location
GRID Section
Description
The REFI keyword is used to change the global array values in local grids only. Following a REFI keyword, grid
data may be entered or modified for the refined local grid only. It consists of one argument which is the name of
the local grid. This argument should be placed on the same line directly after the REFI keyword.
The next line consists of the name of the array in which it is desired to enter local grid array values for (i.e. PORO,
K_X etc...). Following the array name, on the next line, the values of the new array for the local grid should then
listed. The number of values listed should correspond directly to the number of local grid cells. Finally, ENDR
should be input at the end of the array to terminate the application of the data to the local grid and return to the
global grid.
Definitions
Examples
1. The REFI/ENDR keywords are used to assign an array of porosity values to the 30 cells in the local grid,
MyLGR. See REFI.dat for complete example:
LGRD 5 3 2 9 10 8 10 1 2 MyLGR
REFI MyLGR
PORO
0.14 0.01 0.03 0.04 0.05
0.06 0.07 0.12 0.09 0.10
0.02 0.08 0.13 0.01 0.15
Location
GRID Section
Description
The REFE keyword is used to populate the cells in a grid with rock compressibility reference pressures. Its
arguments consist of an array of rock compressibility reference pressure values. Cells will be populated in the
x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150
cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. REFE is used to populate a 10x10x5 grid with 500 rock compressibility reference pressure values. See
REFE.dat for complete example:
REFE
500*14.7
Location
GRID Section
Description
The ROCK keyword is used to populate the cells in a grid with saturation table numbers. If multiple relative
permeability tables are entered, the tables may be assigned to cells using the ROCK keyword. Arguments for
ROCK consist of an array of saturation table numbers. Cells will be populated in the x-direction first, followed
by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a
specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• A typical ROCK array is usually generated in RMS by indexing the different facies types and then exported
to Tempest MORE when the GRID file is written via the GRDECL export.
• The number of sets of relative permeability curves provided using KRWO and KRGO in the RELA section
must equal the number of saturation tables numbers used by ROCK in the GRID section.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. ROCK is used to populate a 10x10x5 grid with 500 saturation table numbers. See ROCK.dat for complete
example:
ROCK
1 1 1 1 1 2 2 1 1 1
1 1 2 1 4 1 1 2 1 1
2 2 2 1 1 1 3 3 1 1
1 1 4 1 1 1 1 2 2 1
1 2 2 2 2 2 1 1 1 1
1 1 1 2 2 1 5 1 2 1
1 4 4 2 2 5 2 2 2 2
1 2 2 2 1 3 2 1 1 1
1 1 2 2 1 2 1 2 1 1
1 1 1 1 4 1 1 3 1 1
100*1
100*2
100*3
50*4 50*5
Location
GRID Section
Description
The ROFF keyword is used to specify a ROFF grid file to be read into the simulation. ROFF consists of one
required and optional arguments which should be written in succession on the same line as the ROFF keyword
itself when used.
Definitions
File name
FLIP or NOFL (optional):
• FLIP - flip the sign of the y-values on reading the ROFF file
• NOFL (default) - no flip of the sign of the y-values on reading the ROFF file
REVE or NORE (optional):
• REVE - reverse the ordering of cells in the J-direction when loading the ROFF file
• NORE (default) - do not reverse the ordering of cells in the J-direction when loading the ROFF file
VERT (optional)
• Force coordinate lines to be vertical by setting the (X,Y) location for all points down each line to the average
of the supplied (X,Y) values.
Notes
• ROFF files may be binary or text, but MORE will distinguish between these cases and read the appropriate
file type. For binary files, MORE will handle byte-swapped and non-byte-swapped files, so that files may
be moved between UNIX and PC platforms without difficulty.
• The name may be included in quotes if required.
• The defaults have changed in MORE 7.0 and are now NOFL and NORE - the data is simply loaded.
• A full description of the ROFF format for 3D grids is available here.
Example
1. ROFF is used to request that the binary ROFF file “emeraldGrid.bin” be read into a simulation. See emer-
ald.dat for complete example:
ROFF emeraldGrid.bin
2. ROFF is used to request that the formatted ROFF file “emeraldGrid.asc” be read into a simulation and the
NOFL option is also used to indicate that the sign of the y-values in the ROFF file should not be flipped.
See emerald_form.dat for complete example:
Location
GRID Section (before entering an item that has to be rotated and translated)
Description
The ROTA keyword is used to set up a rotation and/or transformation of the grid from external to internal positions
which can be turned on or off as required. ROTA is used to place the simulation grid into the external coordinate
system and does not actually shift or rotate the reservoir. To use ROTA, it must be entered in the GRID section
before entering an item that is to be rotated and translated. ROTA consists of three required arguments describing
the base points for the internal coordinates and the angle of grid rotation. These arguments should all be entered
directly after the ROTA keyword on the same line.
Definitions
Notes
• Unlike Z-DI, ROTA does not move the grid - it sets up a transformation from external to internal positions
which can be turned on or off as required.
• Tempest will always plot with respect to the model coordinates.
• The original and translated coordinate systems are related by:
x0 = xo + x cos(θ) − y sin(θ)
y 0 = yo + x sin(θ) + y sin(θ)
where x’ and y’ denote the external coordinates and x and y the model coordinates.
• When ROTA is specified, external location data will be transformed into internal coordinates when read
according to the transformation:
• ROTA can be particularly useful when reading grid location data which is defined in terms of large UTM
values. ROTA can be used to work in model coordinates which are smaller and more convenient. (Please see
Example 2 below for more information). Then, by default, if wells are located using X-Y coordinates, these
will be treated as external coordinates and transformed in the same way. However, the NORO (No Rotation)
option in the HORI, LOCA, TTAB, and TFIL keywords allow these to be read as model coordinates.
• ROTA cannot be used together with the ECLIPSE keyword MAPAXES.
Examples
1. ROTA is used to rotate the model 45 degrees clockwise from the original coordinate system starting at the
location (1000,0). See ROTA.dat for complete example:
ROTA 1000 0 45
2. For this example, suppose that the grid is originally located at (x=200000, y=300000) so that the first few
lines of COOR data read as follows:
COOR
200000.00 300000.00 0.00 200000.00 300000.00 100000.00
210000.00 300000.00 0.00 210000.00 300000.00 100000.00
220000.00 300000.00 0.00 220000.00 300000.00 100000.00
230000.00 300000.00 0.00 230000.00 300000.00 100000.00
240000.00 300000.00 0.00 240000.00 300000.00 100000.00
250000.00 300000.00 0.00 250000.00 300000.00 100000.00
The ROTA keyword can then be used to enable the model coordinates based at (0,0) to be employed. See
ROTA_UTM.dat for complete example:
The x-locations of the cells before and after the ROTA keyword is used to transform the model can be seen
displayed in geological coordinates in the figures below.
Location
GRID Section
Description
The reference pressures are usually set using the REFE GRID section keyword. However, if RPIP is specified the
reference pressures will be set to the initial pressures.
Note
In the case of a restart run, the reference pressures are set to the original run initial pressures, not the first pressure
in the restarted run.
Example
RPIP
Location
GRID Section
Description
The SIGM keyword is used to populate the cells in a grid with matrix-fracture coupling factors in a dual porosity
or dual permeability system. If the dual porosity or dual permeability options are being used, the SIGM grid array
should be set up to define the amount of coupling between matrix and fracture cells. Although the SIGM array is
defined for the entire grid, only the values for the first Nz /2 layers are used.
When SIGM is used, the dual porosity or dual permeability options must be turned on using the DPOR or DPER
keywords, respectively, in the INPU or GRID sections. Arguments for the SIGM keyword consist of an array of
matrix-fracture coupling factors.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
Where
– CDarcy is Darcy’s constant,
– KM is the matrix cell permeability,
– Vporv is the matrix cell pore volume, and
– σ is the value supplied with the SIGM keyword.
• It is possible to relate SIGM to typical dimensions of the matrix material in the reservoir using the following
equation:
However, note that Lx , Ly and Lz are not related to the size of the simulation cells used in the model, but
rather the size of the elements of matrix material in the reservoir.
• For more information regarding dual porosity/permeability systems, please refer to the Dual Poros-
ity/Permeability Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. SIGM is used to populate an 8x8x2 grid with 128 matrix-fracture coupling factors. See DualPorosity.dat for
complete example:
SIGM
0.084 0.085 0.084 0.083 0.084 0.084 0.084 0.081
0.084 0.084 0.081 0.084 0.084 0.084 0.084 0.082
0.083 0.084 0.084 0.080 0.080 0.084 0.083 0.084
0.083 0.084 0.084 0.084 0.084 0.085 0.083 0.085
0.084 0.084 0.082 0.084 0.080 0.084 0.084 0.084
0.084 0.084 0.082 0.084 0.083 0.084 0.084 0.080
0.084 0.084 0.084 0.083 0.085 0.083 0.084 0.084
0.084 0.085 0.084 0.085 0.084 0.084 0.082 0.084
64*0.0
The SIGM array will then appear in the Initial tab of the results for display in 3D, as shown below:
The display can be switched between matrix and fracture grids by clicking on the Swap between matrix and
fracture (dual porosity models) button located on the toolbar on the left-hand side of the 3D Viewer.
A matrix-fracture time constant (MFTC) array will also be automatically calculated from SIGM, and this
array will also appear in the Initial tab of the results for display in 3D, as follows:
For more information regarding the relationship between SIGM and MFTC, please refer to the Discussion
Location
GRID Section
Description
The SGCR keyword is used to scale the critical gas saturation in each cell for end point scaling. The critical gas
saturation is the highest gas saturation for which the gas phase in immobile in an oil-gas system. Arguments for
the SGCR keyword consist of an array of critical gas saturation values. Cells will be populated in the x-direction
first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to
assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XGCR, YGCR and ZGCR may be used
to set the critical gas saturation endpoints in the I, J and K directions on the grid.
Examples
1. SGCR is used to populate a 10x10x5 grid with 500 critical gas saturation values. See SGCR.dat for complete
example:
SGCR
0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01
0.01 0.02 0.01 0.01 0.01 0.04 0.01 0.03 0.01 0.01
0.01 0.01 0.04 0.01 0.01 0.01 0.01 0.01 0.01 0.01
0.05 0.01 0.01 0.01 0.02 0.01 0.01 0.01 0.01 0.01
0.01 0.01 0.05 0.01 0.01 0.01 0.01 0.05 0.01 0.03
0.01 0.01 0.01 0.01 0.02 0.02 0.01 0.01 0.01 0.01
0.01 0.02 0.01 0.01 0.01 0.01 0.01 0.04 0.01 0.01
0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01
0.03 0.01 0.01 0.03 0.04 0.01 0.01 0.01 0.02 0.01
0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01
100*0.02
100*0.01
100*0.03
100*0.05
The SGCR array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The SGL keyword is used to scale the connate gas saturation in each cell for end point scaling. The connate
gas saturation is the lowest gas saturation found in the oil-gas relative permeability table defined by KRGO.
Arguments for the SGL keyword consist of an array of connate gas saturation values. Cells will be populated in
the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can
be used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to
150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XGL, YGL and ZGL may be used to set
the connate gas saturation endpoints in the I, J and K directions on the grid.
Examples
1. SGL is used to populate a 10x10x5 grid with 500 connate gas saturation values. See SGL.dat for complete
example:
SGL
0.01 0.01 0.00 0.02 0.00 0.00 0.00 0.00 0.01 0.00
0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00
0.00 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.00 0.00
0.01 0.00 0.01 0.01 0.00 0.00 0.01 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.01 0.00
0.00 0.00 0.00 0.00 0.02 0.02 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.02 0.02 0.00 0.00 0.00 0.00 0.00
0.01 0.01 0.00 0.00 0.00 0.01 0.00 0.00 0.00 0.00
0.00 0.01 0.00 0.00 0.00 0.01 0.00 0.00 0.00 0.01
400*0.00
The SGL array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The SGU keyword is used to scale the maximum gas saturation in each cell for end point scaling. The maximum
gas saturation is the highest gas saturation found in the oil-gas relative permeability table defined by KRGO.
Arguments for the SGU keyword consist of an array of maximum gas saturation values. Cells will be populated
in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk
can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value of 102.8
to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XGU, YGU and ZGU may be used to set
the critical gas saturation endpoints in the I, J and K directions on the grid.
Examples
1. SGU is used to populate a 10x10x5 grid with 500 maximum gas saturation values. See SGU.dat for complete
example:
SGU
1.00 1.00 1.00 0.99 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 0.98 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.97 1.00
0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 0.99 1.00 1.00 1.00 0.96
1.00 1.00 0.96 1.00 1.00 1.00 1.00 1.00 1.00 0.99
1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.95 0.95 1.00
1.00 0.98 0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00
0.95 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 0.98 1.00 1.00 1.00 1.00
100*1.00
100*0.99
100*0.96
100*1.00
The SGU array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The SOCO keyword is used in a black oil run to define a connate oil saturation which is used for initialisation.
Arguments for the SOCO keyword consist of an array of connate oil saturation values. Cells are populated in the
x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be
used to assign a value to a specified number of cells (that is, 150*102.8 can be used to assign a value of 102.8 to
150 cells).
Definitions
Notes
• SOCO will affect the equilibration of the reservoir using keyword EQUI. During simulation, oil will move
as long as it is mobile, and may vapourise into a mobile gas phase.
• If SOCO is set higher than SOWC or SOGC, then SOCO is reset to the minimum of SOWC and SOGC.
• Is SOCO is set, and SOWC is not set, then SOWC values will adjusted by MORE to ensure consistency of
the end-points so that Soco ≤ min(Sowcr, Sogcr): If SOWC is not set, typically SOWC will be taken
from the relevant KRWO table. If this is inconsistent, then SOWC is set according to
SowcrT able − SocoT able
SOW C = SOCO + (1 − SW L − SOCO) .
1 − SwlT able − SocoT able
• All the usual methods of setting up a grid array, including expressions, may be used to set SOCO values.
• SOL may be used as an alias for SOCO.
• When SOCO is specified in a model initialised by equilibration (EQUI), MORE will initialise the reservoir
with connate oil in the gas cap, water zone and both gas-oil and oil-water transition zones, according to
values set by SOCO. This is equivalent to setting AQUW OFF and GCPG OFF.
Location
GRID Section
Description
The SOGC keyword is used to scale the critical oil-in-gas saturation for end point scaling. This is the highest oil
saturation for which the oil is immobile in an oil-gas system. Arguments for the SOGC keyword consist of an
array of critical oil-in-gas saturations. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (i.e. 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XOGC, YOGC and ZOGC may be used
to set the critical saturation of oil in gas endpoints in the I, J and K directions on the grid.
Examples
1. SOGC is used to populate a 10x10x5 grid with 500 critical oil-in-gas saturations. See SOGC.dat for com-
plete example:
SOGC
0.20 0.20 0.23 0.18 0.20 0.20 0.20 0.20 0.20 0.21
0.20 0.20 0.20 0.20 0.21 0.22 0.22 0.20 0.20 0.21
0.21 0.21 0.21 0.21 0.20 0.20 0.20 0.20 0.20 0.20
0.24 0.20 0.23 0.18 0.20 0.25 0.20 0.24 0.20 0.19
0.22 0.20 0.23 0.18 0.20 0.20 0.20 0.20 0.25 0.20
0.22 0.20 0.23 0.15 0.24 0.20 0.25 0.20 0.20 0.23
0.20 0.20 0.16 0.18 0.20 0.20 0.20 0.23 0.20 0.22
0.18 0.22 0.23 0.18 0.20 0.22 0.20 0.20 0.20 0.22
0.18 0.20 0.23 0.18 0.20 0.20 0.20 0.20 0.20 0.22
0.18 0.20 0.23 0.18 0.20 0.20 0.20 0.20 0.20 0.21
100*0.20
100*0.18
100*0.22
100*0.24
The SOGC array will then appear in the Initial tab of the results for display in 3D, as shown below.
Location
GRID Section
Description
The SOWC keyword is used to scale the critical oil-in-water saturation in each cell for end point scaling. The
critical oil-in-water saturation is the highest oil saturation for which the oil is immobile in an oil-water system.
Arguments for the SOWC keyword consist of an array of critical oil-in-water saturation values. Cells will be
populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an
asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be used to assign a value
of 102.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XOWC, YOWC and ZOWC may be used
to set the critical saturation of oil in water endpoints in the I, J and K directions on the grid.
Examples
1. SOWC is used to populate a 10x10x5 grid with 500 critical oil-in-water saturations.
See SOWC.dat for complete example:
SOWC
0.20 0.20 0.15 0.18 0.20 0.20 0.20 0.20 0.20 0.21
0.20 0.20 0.20 0.20 0.21 0.22 0.22 0.20 0.20 0.21
0.21 0.21 0.21 0.21 0.20 0.20 0.20 0.20 0.20 0.20
0.15 0.20 0.20 0.18 0.19 0.15 0.20 0.16 0.20 0.19
0.22 0.20 0.18 0.18 0.20 0.20 0.20 0.20 0.21 0.20
0.22 0.20 0.18 0.15 0.15 0.20 0.16 0.20 0.20 0.21
0.20 0.20 0.16 0.18 0.20 0.20 0.20 0.21 0.20 0.22
0.18 0.22 0.21 0.18 0.20 0.19 0.22 0.20 0.20 0.22
0.18 0.20 0.21 0.18 0.20 0.20 0.20 0.20 0.20 0.22
0.18 0.20 0.22 0.18 0.20 0.20 0.20 0.20 0.20 0.21
100*0.19
100*0.18
100*0.22
100*0.16
The SOWC array will then appear in the Initial tab of the results for display in 3D, as shown below
Location
GRID Section
Description
The SWCR keyword is used to scale the critical water saturation in each cell for end point scaling. The critical
water saturation is the highest water saturation for which the water is immobile in an oil-water system. Arguments
for the SWCR keyword consist of an array of critical water saturation values. If SWCR is supplied but SWL is
not, then SWL is supplied automatically and takes on the values of SWCR. Additionally, if SWL is set higher than
SWCR, then SWL is reset to equal SWCR.
Cells are populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated
values, an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8 can be used to
assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, see the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keywordis somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XWCR, YWCR and ZWCR may be used
to set the critical saturation of water endpoints in the I, J and K directions on the grid.
Examples
1. SWCR is used to populate a 10x10x5 grid with 500 critical water saturation values. See SWCR.dat for a
complete example:
SWCR
0.20 0.20 0.15 0.18 0.20 0.20 0.20 0.20 0.20 0.21
0.20 0.20 0.20 0.20 0.21 0.22 0.22 0.20 0.20 0.21
0.21 0.21 0.21 0.21 0.20 0.20 0.20 0.20 0.20 0.20
0.15 0.20 0.20 0.18 0.19 0.15 0.20 0.16 0.20 0.19
0.22 0.20 0.18 0.18 0.20 0.20 0.20 0.20 0.21 0.20
0.22 0.20 0.18 0.15 0.15 0.20 0.16 0.20 0.20 0.21
0.20 0.20 0.16 0.18 0.20 0.20 0.20 0.21 0.20 0.22
0.18 0.22 0.21 0.18 0.20 0.19 0.22 0.20 0.20 0.22
0.18 0.20 0.21 0.18 0.20 0.20 0.20 0.20 0.20 0.22
0.18 0.20 0.22 0.18 0.20 0.20 0.20 0.20 0.20 0.21
100*0.19
100*0.18
100*0.22
100*0.20
The SWCR array is then displayed in the Initial tab of the results for display in 3D, as illustrated in the
following figure.
Location
GRID Section
Description
The SWGC keyword is used to scale the critical water-in-gas saturation for end point scaling in the oil-wet case.
This is the highest water saturation for which the water is immobile in a water-oil system. Arguments for the
SWGC keyword consist of an array of critical water-in-gas saturations. Cells are populated in the x-direction first,
followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a
value to a specified number of cells (that is, 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, see the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• If directional relative permeabilities are being used, the keywords XWGC, YWGC and ZWGC may be used
to set the critical saturation of water in gas endpoints in the I, J and K directions on the grid.
Location
GRID Section
Description
The SWL keyword is used to scale the connate water saturation in each cell for end point scaling. The connate
water saturation is the smallest water saturation found in the oil-water relative permeability table defined by
KRWO. Arguments for the SWL keyword consist of an array of connate water saturation values. If SWL is
supplied but SWCR is not, then SWCR is supplied automatically and takes on the values of SWL.
Cells are populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated
values, an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8 can be used to
assign a value of 102.8 to 150 cells).
Definitions
Notes
• For more information about end point scaling, please refer to the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XWL, YWL and ZWL may be used to
set the connate saturation of water endpoints in the I, J and K directions on the grid.
• If SWL is set, and SWCR is not set, then SWCR values will be adjusted by MORE to ensure consistency of
the end-points so that Swl ≤ Swcr: If SWCR is not set, typically SWCR will be taken from the relevant
KRWO table. If this is inconsistent, then SWCR is set according to
SwcrT able − SwlT able
SW CR = SW L + (SW U − SW L)
SwuT able − SwlT able
Examples
1. SWL is used to populate a 10x10x5 grid with 500 connate water saturation values. See SWL.dat for a
complete example:
SWL
0.20 0.20 0.15 0.18 0.20 0.20 0.20 0.20 0.20 0.21
0.20 0.20 0.20 0.20 0.21 0.22 0.22 0.20 0.20 0.21
0.21 0.21 0.21 0.21 0.20 0.20 0.20 0.20 0.20 0.20
0.15 0.20 0.20 0.18 0.19 0.15 0.20 0.16 0.20 0.19
0.22 0.20 0.18 0.18 0.20 0.20 0.20 0.20 0.21 0.20
0.22 0.20 0.18 0.15 0.15 0.20 0.16 0.20 0.20 0.21
0.20 0.20 0.16 0.18 0.20 0.20 0.20 0.21 0.20 0.22
0.18 0.22 0.21 0.18 0.20 0.19 0.22 0.20 0.20 0.22
0.18 0.20 0.21 0.18 0.20 0.20 0.20 0.20 0.20 0.22
0.18 0.20 0.22 0.18 0.20 0.20 0.20 0.20 0.20 0.21
100*0.19
100*0.18
100*0.22
100*0.20
The SWL array is then displayed in the Initial tab of the results for display in 3D, as illustrated in the
following figure.
Location
GRID Section
Description
The SWU keyword is used to scale the maximum water saturation in each cell for end point scaling. The maximum
water saturation is the highest water saturation found in the oil-water relative permeability table defined by KRWO.
Arguments for the SWU keyword consist of an array of maximum water saturation values. Cells are populated in
the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values, an asterisk can
be used to assign a value to a specified number of cells (that is, 150*102.8 can be used to assign a value of 102.8
to 150 cells).
Definitions
Notes
• For more information about end point scaling, see the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
• If directional relative permeabilities are being used, the keywords XWU, YWU and ZWU may be used to
set the upper saturation of water endpoints in the I, J and K directions on the grid.
Examples
1. SWU is used to populate a 10x10x5 grid with 500 maximum water saturation values. See SWU.dat for a
complete example:
SWU
1.00 1.00 1.00 0.99 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 0.98 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.97 1.00
0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 0.99 1.00 1.00 1.00 0.96
1.00 1.00 0.96 1.00 1.00 1.00 1.00 1.00 1.00 0.99
1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.95 0.95 1.00
1.00 0.98 0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00
0.95 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 0.98 1.00 1.00 1.00 1.00
100*1.00
100*0.99
100*0.96
100*1.00
The SWU array is then displayed in the Initial tab of the results for display in 3D, as illustrated in the
following figure.
Location
GRID Section
Description
The SIZE keyword is used to define the grid size and type. This keyword must appear before any grid definition
keywords. It consists of three required arguments and three optional arguments, all appearing on the same line as
the SIZE keyword.
Definitions
Notes
• The UTM option is no longer required - MORE 6 can handle grids in left-handed coordinates without user
intervention.
Examples
1. SIZE is used to specify a Cartesian grid with a size of 5x8x3. See SIZE.dat for complete example:
SIZE 5 8 3
2. SIZE is used to specify a radial grid with 10 grid intervals in the r-direction, 5 grid intervals in the theta-
direction, and 6 grid intervals in the z-direction. See SIZE_RADI.dat for complete example:
SIZE 10 5 6 RADI
Location
Description
The SPEC keyword is used to define the grid’s size and type. It is used as an alternative keyword to SIZE which
is compatible with output from some grid generation packages. The data for SPEC is handled in exactly the same
way as for SIZE.
SPEC consists of 3 required arguments and one optional one. The required arguments describe the number of
grid intervals in each dimension, all of which should be entered on a separate line below the SPEC keyword. The
optional argument is used to indicate if the grid is a radial or Cartesian one.
Definitions
Examples
1. SPEC is used to specify a Cartesian grid with a size of 5x8x3. See SPEC.dat for complete example:
SPEC
5 8 3
2. SPEC is used to specify a radial grid with 10 grid intervals in the r-direction, 5 grid intervals in the theta-
direction, and 6 grid intervals in the z-direction. See SPEC_RADI.dat for complete example:
SPEC
10 5 6 1* TRUE
Location
GRID Section
Description
The SORM keyword is used in an equation of state run to define an oil saturation which is held back from the
simulation.
Definitions
Location
GRID Section
Description
The TCON keyword is used to define transmissibilities of non-neighbour connections. This keyword provides an
alternative to the NNC keyword for supplying non-neighbour connection information. For every cell in the box of
cells defined in TCON, non-neighbour connections are generated or multiplied between that cell and the cell at an
offset, which is also specified using TCON.
The required arguments for TCON consist of two records.
• The first record follows directly after the TCON keyword on the same line and consists of cell locations and
their offset values.
• The second record follows on a separate line below TCON and consists of the transmissibility values be-
tween the non-neighbour connections.
Definitions
RECORD 1:
1. The value to add to the i-index to obtain the i-index of the connected point
2. The value to add to the j-index to obtain the j-index of the connected point
3. The value to add to the k-index to obtain the k-index of the connected point
4. i-index of the lower point in range (il )
5. i-index of the upper point in range (iu )
6. j-index of the lower point in range (jl )
7. j-index of the upper point in range (ju )
8. k-index of the lower point in range (kl )
9. k-index of the upper point in range (ku )
10. UNIF (optional) - specifies all the values are uniform
11. MULT (optional) - values are treated as transmissibility multipliers (MODI can also be used)
12. Previous non-neighbour connections must have been defined before MULT can be used.
RECORD 2:
1. Transmissibility values between non-neighbour connections.
• Only a single transmissibility value is read if the UNIF option is used. If UNIF is not used, (iu − il +
1) × (ju − jl + 1) × (ku − kl + 1) values are read with the i-index incremented fastest and the k-index
incremented slowest.
• Units: md-ft (Field); md-m (Metric)
Notes
Examples
1. TCON is used to set diagonal (i,j,k to i-1,j+1,k) transmissibilities to 9 different values for a 10x10 block
system in the first layer. PRIN with NNC is then used to output the non-neighbour connection data to the
Print file, as follows. See TCON.dat for a complete example:
TCON -1 +1 0 2 4 1 3 2*1
481 473 482 489 470 483 465 498 485
The following results are then obtained from the GRID section of the Print file:
NNC======================================================================================
2. TCON is used with the UNIF option to set diagonal (i,j,k to i-1,j+1,k) transmissibilities to 481 for a 10x10
block system in the first layer. PRIN with NNC is then used to output the non-neighbour connection data to
the Print file, as follows.See TCON_UNIF.dat for a complete example:
The following results are then obtained from the GRID section of the Print file:
NNC======================================================================================
3. Having defined the same transmissibilities for non-neighbour connections as above in Example 2, TCON is
then used again to multiply those transmissibility values by multipliers which range from 0.001 to 0.1 in the
first layer of a 10x10 block system. PRIN with NNC is then used to output the non-neighbour connection
data to the Print file, as follows.See TCON_MULT.dat for a complete example:
Alternatively, MODI can be used in the place of MULT, as illustrated in the following:
481
The following results are then obtained from the GRID section of the Print file for both scenarios mentioned
above:
NNC======================================================================================
Location
GRID Section
Description
The THET keyword is used to define grid spacing in the theta-direction. Its arguments consist of three records.
The first record is an optional argument used to describe the vertical variation of the theta array. This argument
should directly follow after the THET keyword on the same line. The second record describes the grid processing
method used and it should be listed on a separate line following the THET keyword. The third record defines
the grid spacing values in the theta-direction and this record should be listed on a separate line below the second
record.
Definitions
RECORD 1:
1. One of the following array data entry sub-keywords (optional): GEOL , UNIF, or VARI
• Default: VARI
RECORD 2:
1. One of the following grid processing sub-keywords: CONS, VARI LOGA
• Default: VARI
RECORD 3:
1. Theta-direction grid spacing values
• Units: degrees
Examples
1. THET is used with CONS to specify a uniform grid spacing and a total angle of 360o in the theta-direction.
See THET_CONS.dat for a complete example:
THET
CONS
360
2. THET is used with VARI to specify 5 grid spacings of varying angles in the theta-direction. See
THET_VARI.dat for a complete example:
THET
VARI
36 45 60 90 135
3. THET is used with LOGA to specify logarithmic grid spacing in the theta-direction. See THET_LOGA.dat
for a complete example:
Y-DI
LOGA
360 0.5
Location
GRID Section
Description
The DEPT keyword is used to populate the cells in a grid with cell thicknesses. Its arguments consist of an array of
cell thicknesses. Cells are populated in the x-direction first, followed by the y-direction, and then the z-direction
last. For repeated values, an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8
can be used to assign a value of 102.8 to 150 cells).
Definitions
1. Cell Thickness
• Units: feet (Field), metres (Metric)
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. THIC is used to populate a 10x10x5 grid with 500 cell thicknesses. See THIC.dat for a complete example:
THIC
100*50
100*100
100*150
100*200
100*250
Location
GRID Section
Description
The TLAN keyword is used to populate the cells in a grid with Langmuir times in a coal bed methane system.
The Langmuir time sets the time constant for coal gas desorption or absorption. When TLAN is used, the coal
bed methane option must be turned on using the CBM keyword in the INPU or FLUI sections. Arguments for the
TLAN keyword consist of an array of Langmuir times.
Cells are populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated
values, an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8 can be used to
assign a value of 102.8 to 150 cells).
Definitions
1. Langmuir times
• Units: days
• Default: 10 days
Notes
• To set up global values of the Langmuir constants, the LANG keyword should be used. Values which vary
across the field may be set up using the CLAN, PLAN and TLAN keywords.
• For compositional coal bed methane models, keywords like TLN1, TLN2 etc. are used instead of TLAN.
See the TLNn keyword for more information.
• For more information regarding coal bed methane modelling, see the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
TLAN
10.0 10.0 11.0 10.0 10.0 12.0 10.0 10.0 10.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 12.0 12.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 11.0
10.0 11.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
12.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
11.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 12.0 10.0 10.0
10.0 10.0 11.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
10.0 10.0 12.0 10.0 11.0 10.0 10.0 10.0 11.0 10.0
200*10.0
The Langmuir time array is then displayed in the Initial tab of the results for display in 3D, as illustrated in
the following figures.
Location
GRID Section
Description
The TLNn keyword is used to populate the cells in a grid with a Langmuir time for each component in a composi-
tional coal bed methane system. The Langmuir time sets the time constant for coal gas desorption or absorption.
When TLNn is used, the coal bed methane option must be turned on using the CBM keyword in the INPU or
FLUI sections. Arguments for the TLNn keyword consist of an array of Langmuir times for each component. The
array for each component is identified by replacing the ‘n’ in the TLNn keyword with an integer number which
corresponds to the component as defined in the INPU section by the CNAM keyword.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• To set up global values of the Langmuir constants, the LANG keyword should be used. Values which vary
across the field in each component may be set up using the CLNn, PLNn, and TLNn keywords.
• For black oil coal bed methane models, the TLAN keyword is used instead of TLNn. See the TLAN keyword
for more information.
• For more information regarding coal bed methane modelling, see the MORE Technical Reference.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
See the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In the example below, TLNn is used to populate a 9x9x4 grid with 324 Langmuir times for two components
(CO2 and C1). The integer number associated with each component which is used to replaced the ‘n’ in the
TLNn keyword corresponds to the order in which these components are listed after the CNAM keyword in
the INPU section. See CoalBedMethane_EOS.dat for a complete example:
Thus, component 1 will correspond to CO2 while component 2 will correspond to C1. The TLNn keyword
can then be used accordingly, as follows.
TLN1
10.0 10.0 11.0 10.0 10.0 12.0 10.0 10.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 12.0 12.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
10.0 11.0 10.0 10.0 10.0 10.0 10.1 10.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
12.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 12.0
11.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.0
10.0 10.0 10.0 10.0 10.0 10.0 10.0 12.0 10.0
10.0 10.0 11.0 10.0 10.0 10.0 10.0 10.0 10.0
10.0 10.0 12.0 10.0 11.0 10.0 10.0 10.0 11.0
243*10.0
TLN2
11.0 11.0 12.0 10.0 11.0 11.0 12.0 11.0 11.0
11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0
11.0 11.0 11.0 11.0 12.0 11.0 11.0 11.0 12.0
12.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0
11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0
11.0 11.0 12.0 11.0 10.0 10.0 11.0 11.0 11.0
11.0 11.0 11.0 11.0 12.0 11.0 11.0 10.0 11.0
11.0 11.0 10.0 11.0 11.0 11.0 11.0 11.0 11.0
11.0 11.0 10.0 11.0 11.0 11.0 12.0 11.0 10.0
243*11.0
The Langmuir time arrays for CO2 and C1 are then displayed in the Initial tab of the results for display in
3D, as illustrated in the following figures.
Location
Description
The TMUL keyword is used to specify a non-neighbour transmissibility multiplier. The value of the multiplier is
applied to all non-neighbour connections set up with the NNC or TCON keywords which follow a given TMUL
keyword. TMUL consists of one required argument which appears on the same line as the keyword itself.
Definitions
Notes
• The TMUL keyword is provided as a convenient way to modify the values of non-neighbour coefficients.
• Non-neighbour connection data can be output to the Print file by using the PRIN keyword with the NNC
option. The resulting produced output can be found by performing a search for NNC in the Print file. See
the following examples for more information regarding the data generated in the Print file for non-neighbour
connections.
• The non-neighbour connection data that is output to the Print file is displayed in MORE transmissibility
units (md-ft (Field), md-m (Metric)). When non-neighbour connections are defined in the default ECLIPSE
transmissibility units (cP×rb/day/psi (Field), cP×rm3 /day/bars (Metric)) using the NNC keyword, these
values can be converted to MORE units using the following factors: 0.001127 (Field), 0.008527 (Metric).
Examples
1. In a metric-unit system, TMUL is used to multiply the two transmissibilities defined using the NNC keyword
in MORE units (md-m) by 0.5 . PRIN with NNC is then used to output the non-neighbour connection data
to the Print file, as follows. See TMUL_NNC_MORE.dat for complete example:
TMULT 0.5
NNC MORE
4 5 6 1 3 2 24.2
5 4 6 2 3 1 55.2
/
The following results are then obtained from the GRID section of the Print file:
NNC======================================================================================
2. In a metric-unit system, TMUL is used to multiply the two transmissibilities defined using the NNC keyword
in default ECLIPSE units (cP×rm3 /day/bars) by 0.5. PRIN with NNC is then used to output the non-
neighbour connection data to the Print file, as follows. See TMUL_NNC.dat for complete example:
TMULT 0.5
NNC
4 5 6 1 3 2 24.2
5 4 6 2 3 1 55.2
/
The following results are then obtained from the GRID section of the Print file:
NNC======================================================================================
3. In a field-unit system, TMUL is used to multiply the four transmissibilities defined using the TCON keyword
by 0.1. PRIN with NNC is then used to output the non-neighbour connection data to the Print file, as follows.
See TMUL_TCON.dat for complete example:
TMULT 0.1
TCON +1 +1 0 1 4 2*1 2*1 UNIF
85.3
The following results are then obtained from the GRID section of the Print file:
NNC======================================================================================
Location
GRID Section
Description
The TREG keyword is used to populate the cells in a grid with thermal property region numbers for thermal
simulations. When the thermal option has been turned on using the THER keyword in the INPU section, the
TREG keyword may be used to assign different OVVT tables to cells. Arguments for the TREG keyword consist
of an array of thermal property region numbers. Values should be between 1 and NTREG where NTREG is the
number of OVVT tables provided in the FLUI section.
Cells are populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated
values, an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8 can be used to
assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
See the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. TREG is used to populate a 21x21x4 grid with 1764 thermal property region numbers. See TREG.dat for a
complete example:
TREG
441*1
441*2
441*3
441*4
The thermal property region number array is then displayed in the Initial tab of the results for display in 3D,
as illustrated in the following figure.
Location
GRID Section
Description
The TRXY keyword is used to define a linear, trajectory-type feature of interest for refinement within a PEBI grid.
Multiple features can be defined by invoking TRXY multiple times.
The arguments for TRXY consists of a table with two columns that contain the (X,Y) locations of points along
the feature of interest. Each time the PEBI keyword is invoked MORE loops through the refinement features that
have been defined using TRXY and adds refinement cells along any part of a feature that is covered by the extent
of the PEBI grid. For trajectory-type features refinement cells are added with their centres lying on the feature and
are given a spacing defined by the refined resolution argument of the PEBI keyword.
Definitions
Examples
1. Using TRXY and PEBI to create a refined region around a trajectory-type region of interest:
TRXY
152.4 152.4
1219.2 1219.2
/
Location
Description
The TSUM keyword is used to modify the sum of transmissibilities divided by pore volumes in each cell. It
provides a means to limit the transmissibilities in selected areas of the reservoir so that reasonable properties are
achieved and stability problems are avoided. The required arguments for this keyword consist of two records, as
further described below. Record 1 should appear on the same line as the TSUM keyword, while Record 2 follows
on a separate line below it.
Definitions
RECORD 1:
1. Index value of the first value to change in the x (i) direction
• Default: 1
• Minimum: 1; Maximum: maximum x (i) coordinate
2. Index value of the last value to change in the x (i) direction
• Default: maximum x (i) coordinate
• Minimum: 1; Maximum: maximum x (i) coordinate
3. Index value of the first value to change in the y (j) direction
• Default: 1
• Minimum: 1; Maximum: maximum y (j) coordinate
4. Index value of the last value to change in the y (j) direction
• Default: maximum y (j) coordinate
• Minimum: 1; Maximum: maximum y (j) coordinate
5. Index value of the first value to change in the z (k) direction
• Default: 1
• Minimum: 1; Maximum: maximum z (k) coordinate
6. Index value of the last value to change in the z (k) direction
• Default: maximum z (k) coordinate
• Minimum: 1; Maximum: maximum z (k) coordinate
RECORD 2:
1. Multiplier added to the original value
• Default: 1
2. Maximum value
• Default: 1E20
Notes
• When the pay in a reservoir approaches zero, it is sometimes difficult to construct grid data which is con-
sistent in the edge blocks. The TSUM keyword provides a means to limit the transmissibilities in selected
areas of the reservoir so that reasonable properties are achieved and stability problems are avoided.
• The units for the sum of transmissibility coefficients divided by pore volume are (md-ft)/(ft3 ) for field units
and (md-m)/(m3 ) for metric units.
Example
1. TSUM is used to apply a multiplier to all transmissibilities connected to blocks in layer 5 which have a sum
of transmissibilities divided by pore volume which exceed 0.05. The multiplier is calculated so the sum
divided by pore volume will not exceed 0.05 at any block. See TSUM.dat for complete example:
TSUM 4* 5 5
1* 0.05
Location
GRID Section
Description
The T_X, T_Y or T_Z keywords are used to modify or replace values in the x, y, or z-transmissibility arrays that
has been automatically calculated by Tempest MORE during grid calculations. These keywords must be used with
the MODI or REPL keywords and cannot be used on their own to populate the cells in a transmissibility array.
Arguments for the T_X, T_Y or T_Z keywords consist of two records. The first record requires seven arguments,
placed on the same line as the T_X, T_Y, or T_Z keywords, to indicate the location of the cells whose values are
to be modified or replaced and either the MODI or REPL keywords as the final argument. If the MODI keyword is
used, the second record should consist of one or more (up to a total of four) modifier arguments which are entered
on a separate line below Record 1. If the REPL keyword is used, the second record should consist of an array of
values used to replace the original values in the cells specified by Record 1.
Definitions
RECORD 1:
1. First point to modify or replace in the x (i) direction
• Default: 1
2. Last point to modify or replace in the x (i) direction
• Default: maximum x (i) coordinate
3. First point to modify or replace in the y (j) direction
• Default: 1
4. Last point to modify or replace in the y (j) direction
• Default: maximum y (j) coordinate
5. First point to modify or replace in the z (k) direction
• Default: 1
6. Last point to modify or replace in the z (k) direction
• Default: maximum z (k) coordinate
7. MODI or REPL
RECORD 2:
If the MODI keyword is used:
1. Constant to be added (xadd)
• Default: 0
2. Multiplier (xmult)
• Default: 1
3. Minimum value (xmin)
• Default: 0
Notes
• TX, TY, TZ and T-X, T-Y, T-Z may all be used as aliases for T_X, T_Y, and T_Z, respectively.
• When MODI is used, the modification is applied as:
value(modif ied) = M IN IM U M xmax , xadd + xmult × value(original)
• Transmissibility units in Tempest MORE are in md-ft (Field) or md-m (Metric). However, note that when
field units are used, these transmissibilities will be displayed on the 3D viewer in cP×rb/day/psi instead of
md-ft.
• When MODI is used to add a constant to the values in an existing T_X, T_Y, or T_Z array, the constant
takes on the units in which transmissibility arrays are displayed in the 3D viewer, which are cP×rb/day/psi
instead of md-ft. See Example 1 below for more information.
• When MODI is used to assign a minimum or maximum value to an existing T_X, T_Y, or T_Z array, the
values entered should represent units in which the transmissibility arrays are defined, which are in md-ft.
However, when T_X, T_Y, or T_Z are displayed in the 3D Viewer, these values will be converted to and
appear in cP×rb/day/psi instead of md-ft. See the following example for more information.
• When REPL is used with any of the transmissibility arrays (T_X, T_Y, or T_Z) to replace the transmissibility
in specified cells, the values entered will be in md-ft (Field) or md-m (Metric). However, please note that
when field units are used, these transmissibilities will be displayed on the 3D viewer in cP×rb/day/psi
instead of md-ft. See the following example for more information.
• When replacing transmissibility values, note that the transmissibility is associated with the lower index of
the connected cells. For example, the x-transmissibility between cell (1,1,1) and (2,1,1) is associated with
cell (1,1,1).
Examples
1. In a field unit system, given an array with an initial x-transmissibility as seen in the “ORIGINAL” figure
below, MODI is used to add a constant of 200 to the x-transmissibility in rows i=2 to 5.
T_X 2 5 1 10 1 5 MODI
200
2. In a field unit system, given an array with an initial y-transmissibility as seen in the “ORIGINAL” figure
below, MODI is used to multiply the y-transmissibility array in rows i=4 to 6 by 3.0.
T_Y 4 6 1 10 1 5 MODI
0 3.0
3. In a field unit system, given an array with an initial y-transmissibility as seen in the “ORIGINAL” figure
below, MODI is used to assign a maximum z-transmissibility to all of the cells in the grid which have a
z-transmissibility greater than 350000 mD.ft (or approximately 394.5 cP×rb/day/psi).
T_Z 6* MODI
3* 350000
Note that when field units are used, transmissibilities are displayed in cP×rb/day/psi in the 3D viewer (as
illustrated in the following figure), despite being input in md-ft.
4. In a field unit system, given an array with an initial x-transmissibility as seen in the “ORIGINAL” figure
below, REPL is used to replace the x-transmissibility in rows i=1 to 5 with 30000 md-ft (or approximately
33.8 cP×rb/day/psi).
T_X 1 5 4* REPL
250*30000
Note that when field units are used, transmissibilities are displayed in cP×rb/day/psi in the 3D viewer (as
illustrated in the following figure), despite being input in md-ft.
Location
Description
The VARI keyword is used to specify variable grid spacing in the X, Y, or theta directions. This keyword must
appear after either X-DI, Y-DI or THET are used. The number of required arguments for VARI will depend on the
number of grid intervals (N) specified by the SIZE keyword in the X, Y or theta directions. All arguments should
be supplied on a separate line below the VARI keyword.
Definitions
Notes
• For the treatment of VARI when used with a radial grid and the keyword R-DI, please see VARI (R-direction).
Example
1. Y-DI is used with VARI to specify variable grid spacing in 10x10x5 grid that has a total length of 10000 in
the y-direction. See VARI.dat for complete example:
Y-DI
VARI
1500 2*800 700 1200 600 900 2*1000 1500
2. THET is used with VARI to specify five grid spacings of varying angles in the theta-direction. See
THET_VARI.dat for complete example:
THET
VARI
36 45 60 90 135
Location
Description
The VARI keyword is used to specify variable grid spacing in the R-direction of a radial grid. This keyword must
appear after the R-DI keyword is used. The number of required arguments for VARI when used with R-DI will
depend on the number of grid intervals (N) specified by the first argument in SIZE. Given N grid intervals, the
number of required arguments becomes N+1. All arguments should be supplied on a separate line below the VARI
keyword.
Definitions
Notes
• For the treatment of VARI when used with the keywords X-DI, Y-DI, or THET, please see VARI (X, Y, or
THET direction).
Example
1. In a 10x1x4 radial grid, R-DI is used with VARI to specify a radial grid with an inner radius of 0.5 and a
variable grid spacing which gives an outer radius of 2500. See VARI_R.dat for complete example:
R-DI
VARI
0.5 7.7 15.5 26.4 50.8 65.2 95.4 152.8 280.5 605.2 1200
Location
GRID Section
Description
The VERT keyword is used to specify a vertical data input mode where grid array layers are input in a vertical
order. VERI consists of one optional argument for which there are two options. This argument, if used, should
directly follow the VERI keyword on the same line .
Definitions
Notes
• The default is VERT POIN, for historical reasons, as this is the traditional MORE default. However, most
studies use VERT BLOC.
• MORE 6 always runs the study in block mode, so VERT only concerns the interpretation of input grid data.
• The input mode can be reset during the processing of the grid section.
• For more information regarding the block and point modes of entry, please refer to the GRID - Data
Overview and Array Processing sections.
Examples
1. VERT is used to specify that grid array layers are entered in a vertical block mode.
VERT BLOC
Location
GRID Section
Description
The X-DI keyword is used to define grid spacing in the x-direction. Its arguments consist of two records, each
listed their own separate lines following the X-DI keyword. Record 1 describes the grid processing method used
while Record 2 defines the the grid spacing values in the x-direction.
Definitions
RECORD 1:
1. One of the following grid processing keywords: CONS, VARI, LOGA
RECORD 2:
1. x-direction grid spacing values
Examples
1. X-DI is used with CONS to specify a uniform grid spacing and a total grid length of 10000 in the x-direction.
See X_DI_CONS.dat for complete example:
X-DI
CONS
10000
2. X-DI is used with VARI to specify 10 grid spacings of varying lengths in the x-direction. See
X_DI_VARI.dat for complete example:
X-DI
VARI
1000 2*500 2000 1000 2500 250 750 1000 500
3. X-DI is used with LOGA to specify logarithmic grid spacing in the x-direction.
X-DI
LOGA
10000 0.8
Location
Description
The XDIV keyword is used to specify grid subdivisions in the x-direction. The XDIV keyword acts as a tool that
can be used to simplify the input of grid data for large grids. Thus, XDIV must appear before the COOR keyword
is entered. The sum of the values of the arguments entered for XDIV must equal the number of grid intervals in
the x-direction specified by by SIZE or SPEC. All arguments should be listed on a separate line below the XDIV
keyword and this list must be terminated by a slash (/).
Definitions
1. Number of grid intervals in the ith grouping (the total of all the grid interval divisions must equal the number
of grid intervals in the x-direction.)
Notes
• When layer properties are set using array keywords, the number of values will similarly correspond to the
number of grid intervals.
• To restore input on the original grid, use NOXY.
Examples
SIZE 2 1 1
COOR
0.00000 0.00000 5000.00 0.00000 0.
,→ 00000 6000.00
5000.00 0.00000 5000.00 5000.00 0.
,→00000 6000.00
10000.00 0.00000 5000.00 10000.00 0.
,→00000 6000.00
If we wanted to simplify the input of the grid data, we could introduce XDIV to subdivide the two intervals
in the x-direction into one larger interval. We would then only need to specify COOR and ZCOR for the
1 large interval in the x-direction (i.e. two corner point locations in x) instead of the two intervals initially
specified (that is, three corner point locations in x). See XDIV.dat for complete example:
SIZE 2 1 1
XDIV
2 /
COOR
0.00000 0.00000 5000.00 0.00000 0.
,→ 00000 6000.00
10000.00 0.00000 5000.00 10000.00 0.
,→00000 6000.00
Both sets of grid data above will give the following 3D grid:
2. In a 9x12x4 grid, XDIV is used to subdivide the nine intervals in the x-direction into three larger intervals
so that grid data for the larger 9x12x4 grid can be specified using corner point data for the smaller 3x12x4
grid:
SIZE 9 12 4
YDIV
2 4 3 /
Now, when specifying grid coordinates using COOR and ZCOR, the specification should only be for the
three large intervals in the x-direction (that is, four corner locations in x) instead of the nine intervals
initially specified.
3. A 2x2x1 grid is specified by providing a simplified input using the keywords COOR, DEPT, THIC, XDIV
and YDIV. The grid is populated with different active numbers using the keyword ACTN.
SPEC
2 2 1 /
XDIV
2 /
YDIV
2 /
COOR
0 0 5000 0 0 6000
10000 0 5000 10000 0 6000
0 10000 5000 0 10000 6000
10000 10000 5000 10000 10000 6000
/
DEPTH=5000
THIC=1000
K_X=100
PORO=0.1
CROC=3e-06
REFE=14.7000
ACTN
1 2 3 4
The active cell array is not honoured because keyword NOXY was not used to restore normal grid subdivi-
sions after keywords XDIV and YDIV are used:
If the keyword NOXY is used, the active cell array is honoured. See NOXY_ACTN.dat for complete exam-
ple:
NOXY
ACTN
1 2 3 4
Location
GRID Section
Description
The XGRI keyword is used to populate the cells in a grid with x-grid locations. Its arguments consist of an array
of x-grid locations. Cells will be populated in the x-direction first, followed by the y-direction, and then the z-
direction last. For repeated values, an asterisk can be used to assign a value to a specified number of cells (that is,
150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. X-grid locations
• Units: feet (Field), metres (Metric)
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. XGRI is used to populate a 2x2x2 grid with 8 x-grid locations. See XGRI.dat for complete example:
XGRI
3000 10000
3000 10000
3000 10000
3000 10000
Location
GRID Section
Description
The XKRG keyword is used to vertically scale the relative permeability of gas at the maximum gas saturation in
an oil-gas relative permeability curve defined by KRGO. Arguments for the XKRG keyword consist of an array of
gas relative permeability multipliers. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (that is, 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply nu-
merical values without a grid processing sub-keyword, the simulator uses the VARI option. If the simulator
encounters no grid processing sub-keyword after reading a layer of values, the VARI option is used again.
This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. XKRG is used to populate a 10x10x5 grid with 500 gas relative permeability multipliers. See XKRG.dat
for complete example:
XKRG
1.00 0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.99
0.99 0.99 1.00 1.00 1.00 0.97 1.00 1.00 1.00 0.97
1.00 1.00 1.00 1.00 1.00 0.98 0.99 1.00 1.00 1.00
1.00 1.00 0.97 1.00 1.00 1.00 1.00 0.96 1.00 1.00
1.00 1.00 1.00 0.98 0.95 1.00 1.00 1.00 1.00 1.00
0.98 1.00 1.00 1.00 0.95 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 0.98 1.00 0.99 0.98
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 0.99 1.00 1.00 1.00 1.00 0.96 1.00 1.00
100*1.00
100*0.99
100*0.98
100*1.00
The gas relative permeability multiplier array is then displayed in the Initial tab of the results for display in
3D, as illustrated in the following figure.
Location
GRID Section
Description
The XKRO keyword is used to vertically scale the relative permeability of oil at the maximum oil saturation in an
oil-water relative permeability curve defined by KRWO. Arguments for the XKRO keyword consist of an array of
oil relative permeability multipliers. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (that is, 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option is
used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. XKRO is used to populate a 10x10x5 grid with 500 oil relative permeability multipliers. See XKRO.dat for
complete example:
XKRO
1.00 0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.99
0.99 0.99 1.00 1.00 1.00 0.97 1.00 1.00 1.00 0.97
1.00 1.00 1.00 1.00 1.00 0.98 0.99 1.00 1.00 1.00
1.00 1.00 0.97 1.00 1.00 1.00 1.00 0.96 1.00 1.00
1.00 1.00 1.00 0.98 0.95 1.00 1.00 1.00 1.00 1.00
0.98 1.00 1.00 1.00 0.95 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 0.98 1.00 0.99 0.98
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 0.99 1.00 1.00 1.00 1.00 0.96 1.00 1.00
100*1.00
100*0.99
100*0.98
100*1.00
The oil relative permeability multiplier array is then displayed in the Initial tab of the results for display in
3D, as illustrated in the following figure.
Location
GRID Section
Description
The XKRW keyword is used to vertically scale the relative permeability of water at the maximum water saturation
in an oil-water relative permeability curve defined by KRWO. Arguments for the XKRW keyword consist of an
array of water relative permeability multipliers. Cells will be populated in the x-direction first, followed by the y-
direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified
number of cells (that is, 150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. XKRW is used to populate a 10x10x5 grid with 500 water relative permeability multipliers. See XKRW.dat
for complete example:
XKRW
1.00 0.99 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.99
0.99 0.99 1.00 1.00 1.00 0.97 1.00 1.00 1.00 0.97
1.00 1.00 1.00 1.00 1.00 0.98 0.99 1.00 1.00 1.00
1.00 1.00 0.97 1.00 1.00 1.00 1.00 0.96 1.00 1.00
1.00 1.00 1.00 0.98 0.95 1.00 1.00 1.00 1.00 1.00
0.98 1.00 1.00 1.00 0.95 1.00 1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00 1.00 1.00 0.98 1.00 0.99 0.98
1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
1.00 1.00 0.99 1.00 1.00 1.00 1.00 0.96 1.00 1.00
100*1.00
100*0.99
100*0.98
100*1.00
The water relative permeability multiplier array is then displayed in the Initial tab of the results for display
in 3D, as illustrated in the following figure.
Location
GRID Section
Description
The XPCG keyword is used to scale the gas-oil capillary pressure in a gas-oil relative permeability curve defined
by KRGO. Arguments for the XPCG keyword consist of an array of gas capillary pressure multipliers. Cells will
be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values,
an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8 can be used to assign a
value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In a 1x1x70 grid, we have set the gas-oil capillary pressure using the KRGO table as follows. See XPCG.dat
for complete example:
Displaying the gas-oil capillary pressure in the 3D Viewer, we see the following:
XPCG is then used to populate the grid with 70 gas capillary pressure multipliers equal to 0.25 to scale the
gas-oil capillary pressure to be one-quarter of its current value.
XPCG
70*0.25
The resulting gas-oil capillary pressure and the effect it has on the gas-oil transition zone can be seen in the
following figures:
The gas capillary pressure multiplier array will also appear in the Initial tab of the results for display in 3D,
as shown in the following figure.
Location
GRID Section
Description
The XPCW keyword is used to scale the water-oil capillary pressure in an oil-water relative permeability curve
defined by KRWO. Arguments for the XPCW keyword consist of an array of water capillary pressure multipliers.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (that is, 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. In a 1x1x70 grid, we have set the oil-water capillary pressure using the KRWO table as follows. See
XPCW.dat for complete example:
Displaying the oil-water capillary pressure in the 3D Viewer, we see the following:
XPCW is then used to populate the grid with 70 water capillary pressure multipliers equal to 0.5 to scale
the oil-water capillary pressure to be one-half of its current value.
XPCW
70*0.5
The resulting oil-water capillary pressure and the effect it has on the oil-water transition zone can be seen
in the figures below:
The water capillary pressure multiplier array will also appear in the Initial tab of the results for display in
3D, as shown below.
Location
GRID Section
Description
The Y-DI keyword is used to define grid spacing in the y-direction. Its arguments consist of three records. The
first record is an optional argument used to describe the vertical variation of the Y-DI array. This argument should
directly follow after the Y-DI keyword on the same line. The second record describes the grid processing method
used and it should be listed on a separate line following the Y-DI keyword. The third record defines the grid
spacing values in the y-direction and this record should be listed on a separate line below the second record.
Definitions
RECORD 1:
1. One of the following array data entry sub-keywords (optional): GEOL, UNIF, or VARI
• Default: VARI
RECORD 2:
1. One of the following grid processing sub-keywords: CONS, VARI, or LOGA
• Default: VARI
RECORD 3:
1. Y-direction grid spacing values
• Units: feet (Field), metres (Metric)
Examples
1. Y-DI is used with CONS to specify a uniform grid spacing and a total grid length of 10000 in the y-direction.
See Y_DI_CONS.dat for complete example:
Y-DI
CONS
10000
2. Y-DI is used with VARI to specify 10 grid spacings of varying lengths in the y-direction. See
Y_DI_VARI.dat for complete example:
Y-DI
VARI
1000 2*500 2000 1000 2500 250 750 1000 500
3. Y-DI is used with LOGA to specify logarithmic grid spacing in the y-direction. See Y_DI_LOGA.dat for
complete example:
Y-DI
LOGA
10000 1.2
Location
Description
The YDIV keyword is used to specify grid subdivisions in the y-direction. The YDIV keyword acts as a tool that
can be used to simplify the input of grid data for large grids. Thus, YDIV must appear before the COOR keyword
is entered. The sum of the values of the arguments entered for YDIV must equal the number of grid intervals
in the y-direction specified by SIZE or SPEC. All arguments should be listed on a separate line below the YDIV
keyword and this list must be terminated by a slash (/).
Definitions
1. Number of grid intervals in the ith grouping (the total of all the grid interval divisions must equal the number
of grid intervals in the y-direction.)
Notes
• When layer properties are set using array keywords, the number of values will similarly correspond to the
number of grid intervals.
• To restore input on the original grid, use NOXY.
Example
SIZE 1 2 1
COOR
0.00000 0.00000 5000.00 0.00000 0.
,→ 00000 6000.00
10000.00 0.00000 5000.00 10000.00 0.
,→00000 6000.00
If we wanted to simplify the input of the grid data, we could introduce YDIV to subdivide the two intervals
in the y-direction into one larger interval. We would then only need to specify COOR and ZCOR for the one
large interval in the y-direction (that is, two corner point locations in y) instead of the two intervals initially
specified (that is, three corner point locations in y). See YDIV.dat for complete example:
SIZE 1 2 1
YDIV
2 /
COOR
0.00000 0.00000 5000.00 0.00000 0.
,→ 00000 6000.00
10000.00 0.00000 5000.00 10000.00 0.
,→00000 6000.00
Both sets of grid data above will give the following 3D grid:
2. In a 9x12x4 grid, YDIV is used to subdivide the 12 intervals in the y-direction into four larger intervals so
that grid data for the larger 9x12x4 grid can be specified using corner point data for the smaller 9x4x4 grid:
SIZE 9 12 4
YDIV
2 4 4 2 /
Now, when specifying grid coordinates using COOR and ZCOR, the specification should only be for the
four large intervals in the y-direction (that is, five corner locations in y) instead of the 12 intervals initially
specified.
3. A 2x2x1 grid is specified by providing a simplified input using the keywords COOR, DEPT, THIC, XDIV
and YDIV. The grid is populated with different active numbers using the keyword ACTN.
SPEC
2 2 1 /
XDIV
2 /
YDIV
2 /
COOR
0 0 5000 0 0 6000
10000 0 5000 10000 0 6000
0 10000 5000 0 10000 6000
10000 10000 5000 10000 10000 6000
/
DEPTH=5000
THIC=1000
K_X=100
PORO=0.1
CROC=3e-06
REFE=14.7000
ACTN
1 2 3 4
The active cell array is not honoured because keyword NOXY was not used to restore normal grid subdivi-
sions after keywords XDIV and YDIV are used:
If the keyword NOXY is used, the active cell array is honoured. See NOXY_ACTN.dat for complete exam-
ple:
NOXY
ACTN
1 2 3 4
Location
GRID Section
Description
The YGRI keyword is used to populate the cells in a grid with y-grid locations. Its arguments consist of an array
of y-grid locations. Cells will be populated in the x-direction first, followed by the y-direction, and then the z-
direction last. For repeated values, an asterisk can be used to assign a value to a specified number of cells (that is,
150*102.8 can be used to assign a value of 102.8 to 150 cells).
Definitions
1. Y-grid locations
• Units: feet (Field), metres (Metric)
Notes
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. YGRI is used to populate a 2x2x2 grid with eight y-grid locations. See YGRI.dat for complete example:
YGRI
8000 8000
10000 10000
8000 8000
10000 10000
Location
GRID Section
Description
The YKOG keyword is used to vertically scale the relative permeability of oil up to and at the oil saturation
corresponding to the critical saturation of the gas phase (plus connate saturation of the water phase). Cells will be
populated in the x-direction first, followed by the y-direction, and then the z-direction last. For repeated values,
an asterisk can be used to assign a value to a specified number of cells (that is, 150*0.8 can be used to assign a
value of 0.8 to 150 cells).
Definitions
Notes
• The requested multiplier will be used from an oil saturation of zero to the saturation corresponding to the
gas critical saturation (with connate water, if present); that is, YKOG will be used for 0 < So < SR where
SR = 1 − Sgcr − Swl .
• From the oil saturation corresponding to the other phase critical saturation to the maximum saturation of
1.0, the multiplier will interpolate from YKOG to XKRO that is, interpolation between XKRO and YKOG
will be used for SR < So < 1
– The default value of XKRO is 1.0.
• An alternative means of setting YKOG is to use the grid array KOGR (or the alias KRORG). This specifies
the required oil relative permeability at the crticial gas saturation (plus connation water saturation). MORE
will construct the required YKOG value from the supplied value and the table value
Examples
1. YKOG is used to set the oil relative permeability at critical gas to 0.6.
YKOG=0.6
The oil relative permeability multiplier YKOG array will then appear in the Initial tab of the results for
display in 3D.
8.169. YKOG - Oil Relative Permeability Multiplier at Critical Gas Saturation 731
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The YKOW keyword is used to vertically scale the relative permeability of oil up to and at the oil saturation
corresponding to the critical saturation of the water phase. Cells will be populated in the x-direction first, followed
by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a
specified number of cells (that is, 150*0.8 can be used to assign a value of 0.8 to 150 cells).
Definitions
Notes
• The requested multiplier will be used from an oil saturation of zero to the saturation corresponding to the
water critical saturation; that is, YKOW will be used for 0 < So < SR where SR = 1 − Swcr .
• From the oil saturation corresponding to the other phase critical saturation to the maximum saturation of
1.0, the multiplier will interpolate from YKOW to XKRO that is, interpolation between XKRO and YKOW
will be used for SR < So < 1
– The default value of XKRO is 1.0
• An alternative means of setting YKOW is to use the grid array KOWR (or the alias KRORW). This specifies
the required oil relative permeability at the critical saturation of the water phase. MORE will construct the
required YKOW value from the supplied value and the table value
Examples
1. YKOW is used to set the oil relative permeability at critical water to 0.6.
YKOW=0.6
The oil relative permeability multiplier YKOW array will then appear in the Initial tab of the results for
display in 3D.
Further examples on vertical scaling keywords can be found here.
Location
GRID Section
Description
The YKRG keyword is used to vertically scale the relative permeability of gas up to and at the gas saturation
corresponding to the critical saturation of the other phase. For a case with oil, water and gas this would be critical
oil in gas plus connate water. For a gas-water run it would be critical water. Arguments for the YKRG keyword
consist of an array of gas relative permeability multipliers. Cells will be populated in the x-direction first, followed
by the y-direction, and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a
specified number of cells (that is, 150*0.8 can be used to assign a value of 0.8 to 150 cells).
Definitions
Notes
• The requested multiplier will be used from a gas saturation of zero to the saturation corresponding to the
other phase critical saturation; that is, YKRG will be used for 0 < Sg < SR where SR = 1 − Sogcr − Swl
for three-phase runs, and SR = 1 − Swcr for gas/water runs.
• From the gas saturation corresponding to the other phase critical saturation to the maximum saturation of
1.0, the multiplier will interpolate from YKRG to XKRG that is, interpolation between XKRG and YKRG
will be used for SR < Sg < 1.
– The default value of XKRG is 1.0
• An alternative means of setting YKRG is to use the grid array KRGR. This specifies the required gas relative
permeability at the other phase critical saturation. MORE will construct the required YKRG value from the
supplied value and the table value
Examples
1. YKRG is used to set the gas relative permeability at critical oil and connate water to 0.6.
YKRG=0.6
The gas relative permeability multiplier YKRG array will then appear in the Initial tab of the results for
display in 3D.
8.171. YKRG - Gas Relative Permeability Multiplier at Critical Other-Phase Saturation 733
Tempest MORE Help, Release 8.1
Location
GRID Section
Description
The YKRW keyword is used to vertically scale the relative permeability of water up to and at the water saturation
corresponding to the critical saturation of the other phase. For a case with oil, water and gas this would be critical
oil in water. For a gas-water run it would be critical gas. Arguments for the YKRW keyword consist of an array of
water relative permeability multipliers. Cells will be populated in the x-direction first, followed by the y-direction,
and then the z-direction last. For repeated values, an asterisk can be used to assign a value to a specified number
of cells (that is, 150*0.8 can be used to assign a value of 0.8 to 150 cells).
Definitions
Notes
• The requested multiplier will be used from a water saturation of zero to the saturation corresponding to
the other phase critical saturation i.e. YKRW will be used for 0 < Sw < SR where SR = 1 − Sowcr for
three-phase runs, and SR = 1 − Sgcr for gas/water runs.
• From the water saturation corresponding to the other phase critical saturation to the maximum saturation of
1.0, the multiplier will interpolate from YKRW to XKRW i.e. interpolation between XKRW and YKRW
will be used for SR < Sw < 1.
– The default value of XKRW is 1.0
• An alternative means of setting YKRW is to use the grid array KRWR. This specifies the required water
relative permeability at the other phase critical saturation. MORE will construct the required YKRW value
from the supplied value and the table value
Examples
1. YKRW is used to set the water relative permeability at critical oil to 0.5.
YKRW=0.5
The water relative permeability multiplier YKRW array will then appear in the Initial tab of the results for
display in 3D.
Location
GRID Section
Description
The ZCOR keyword supplies corner point depths for cells in discontinuous form and is often used with the
ECLIPSE COORD keyword. ZCOR can only be entered for the global grid and its arguments consist of an
array of depth values.
Definitions
1. Depth values
• The number of depth values required is: 8 × Nx × Ny × Nz
where,
– Nx = number of cells in the x-direction,
– Ny = number of cells in the y-direction, and
– Nz = number of cells in the z-direction).
Examples
1. ZCOR is used to supply corner depth points to a 10x10x5 grid. See ZCOR.dat for complete example:
ZCOR
400*5000.00
400*5200.00
400*5200.00
400*5400.00
400*5400.00
400*5600.00
400*5600.00
400*5800.00
400*5800.00
400*6000.00
2. ZCOR is used to supply different corner depth points to a 10x10x5 grid. See ZCOR_NNC.dat for complete
example:
ZCOR
160*5000 240*5100
160*5200 240*5300
160*5200 240*5300
160*5400 240*5500
160*5400 240*5500
160*5600 240*5700
160*5600 240*5700
160*5800 240*5900
160*5800 240*5900
160*6000 240*6100
Location
GRID Section
Description
The Z-DI keyword is used to rotate and/or translate a grid in the z-direction. This keyword consists of six argu-
ments which should be entered on a separate line below the Z-DI keyword.
Definitions
Notes
• The following formula is used to calculate the new cell position (x0 , y 0 , z 0 ) :
–
y 0 = y0 + (x − x0 )(sin φ × cos φ × cos θ − cos φ × sin φ) + (y − y0 )(sin2 φ × cos θ + cos2 φ) − (z − z0 ) sin φ × cos
• The transformation to the new z-direction is applied at the start of the grid calculations. MORE 6 transforms
the cell positions as well as the cell depths, so the new grid locations are visible in Tempest. If well positions
are specified in xyz space, remember that the grid has been moved by the transformation. Please see the
examples below for more information.
• Z-DI cannot be used for radial grids.
Examples
1. Given the grid seen in the “ORIGINAL” figure below, Z-DI is used to dip the grid by 10o . See Z_DI.dat for
complete example:
Z-DI
10 5*
Both the original and modified grid and their new depths can be seen below.
2. Given the grid seen in the “ORIGINAL” figure below, Z-DI is used to dip the grid by 10o in the minus
x-direction. See Z_DI_2.dat for complete example:
Z-DI
10 -180 4*
Both the original and modified grid and their new depths can be seen below.
3. Given the grid seen in the “ORIGINAL” figure below, Z-DI is used to translate the grid from the point
(0,0,0) at an original reference depth of 5000 down to a new reference depth of 6000. See Z_DI_3.dat for
complete example:
Z-DI
0 0 1000 0 0 0
Both the original and modified grid and their new depths can be seen below.
Location
Description
The ZONE keyword is used to specify zones for array printing to the GRID section of the Print file. This keyword
must be paired with the PRIN keyword in the GRID section of the input files. ZONE consists of six required
arguments which follow directly after ZONE on the same line.
Definitions
Notes
• If no zones are specified, values will be printed for the entire grid.
Examples
Given the following grid below where all inactive cells appear in grey:
1. PRIN is used with the ZONE keyword to specify that the porosity values in the active cells in a zone that
ranges from cells 1,1,1 to 4,3,2 will be output to the GRID section of the print file for post-processing. See
PRIN_ZONE.dat for complete example:
MAP=======================================================================================
Map of PORO at 1 Jan 2000, 0.0 days
==========================================================================================
Layer iz= 1
ix= : 1 2 3 4
Row iy= 1: 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0
Row iy= 3: 0.300 0.300 0.0 0.0
Layer iz= 2
ix= : 1 2 3 4
Row iy= 1: 0.300 0.300 0.300 0.300
Row iy= 2: 0.300 0.300 0.0 0.0
Row iy= 3: 0.300 0.300 0.0 0.0
==========================================================================================
NINE
The equilibrium initialisation option starts with the three phases in gravity capillary pressure equilibrium. If the
capillary pressures are non-zero, there will be transition zones in which the difference in the phase hydrostatic
pressures are balanced by the capillary pressures. Outside the transition zones the pressure variation with depth is
such that the mobile phases are in hydrostatic equilibrium.
Generally an equilibrated solution is quiescent - it will not change if the simulator is run with no production or
injection, so the initial solution is stable and there is no flow in the absence of any wells or aquifer support.
There is no problem having multiple saturation tables used in the same equilibration region. Different pressure
tables should only occur in different equilibration regions, as they imply different vertical pressure variations.
When multiple equilibration regions are used these should generally not be in communication, to avoid large
initial flows attempting to equalise the contact depths. In this case, it is also possible to specify threshold pressures
between equilibration regions to enforce a quiescent initial solution. The non-equilibrium initialisation option
allows a completely general specification of the initial pressures and saturations. This is very general, and allows
the simulator to be initialised using log data, but can easily produce a non-quiescent initial solution and so should
be used with caution.
It is possible to specify an initial water saturation distribution with an equilibrium initialisation solution - the basic
hydrostatic pressure variation with depth is retained, but additional capillary pressure terms are added on a cell by
743
Tempest MORE Help, Release 8.1
cell basis to stabilise the initial solution and ensure that the initial solution becomes quiescent. See Stabilisation
of the Initial Solution using Capillary Pressure Modifications.
Further information on initialisation can be found in the Technical Reference.
Location
INIT Section
Syntax
Definitions
array The name of an array or property to be specified or modified. See below for the list of relevant arrays.
(l1 : An optional layer range specification. Default is all layers.
l2 )
BLOC Vertically the array has a value for each layer of cells (Nz values)
DISC Values at the top and bottom of each layer (2.Nz values).
CONT Vertically the array is continuous (Nz +1 values).
GEOL Vertically the array is represented by piecewise discontinuous constants over the groupings specified
by the LAYEring keyword.
UNIF The array is vertically uniform, only one layer of data is read.
VARI Values are variable by layer.
The relevant arrays are listed here.
Example
PRESSURE
ZVAR
2000 2010 2018 2030
Notes
• All the rules for entering grid arrays described in the GRID section apply to solution arrays set in the INIT
section.
• It is possible to use SWAT with equilibrium initialisation. When SWAT is used with equilibrium initialisa-
tion, the user-supplied initial water saturation will be used with the pressure distribution from the equilibra-
tion, but introducing an extra capillary pressure contribution to support the specified water saturations.
• In a dissolved gas run, if a supplied bubble point is greater than the supplied pressure in a cell, (which would
correspond to supersaturated oil), the bubble point will be reset to the cell pressure.
• In a vapourised oil run, if a supplied RV value (the vapour oil-gas ratio) is greater than the saturated RV at
the supplied cell pressure, (which would correspond to supersaturated vapour), the RV value will be reset to
the cell saturated RV value.
• GCRI may be entered as an alternative to PDSI. GCRI sets the initial gas/coal ratio in scf/ton or m3 /tonne.
PSDI will be set up as a function of GCRI so that the required initial gas content is obtained.
The relationship between the gas-coal ratio (GCR) the coal desorption pressure is:
P DS
GCR = CLAN ×
P LAN + P DS
GCR
P DS =
CLAN − CGR
If the calculated coal desorption pressure is greater than the initial pressure, it will be reset to the initial
pressure. Note that the GCRI value entered is a function of the coal alone - an ash fraction is not included
when calculating the desorption pressure.
Location
INIT Section
Description
The AQCT keyword is used to specify the properties for a Carter-Tracy aquifer. Arguments for AQCT consist
of ten required arguments and four optional ones. All of these arguments should be entered in succession on the
same line as the AQCT keyword itself when used.
Definitions
• Default: 0.0
14. EQUI (optional) - the aquifer will be set up in equilibrium with the reservoir; has same effect as defaulting
the initial pressure.
15. NOBACK (optional) - used to ban water backflow (please see notes below for more information).
Notes
• Once the aquifer has been defined with AQCT, it should be connected to the reservoir using AQCO.
• If the water viscosity argument is defaulted MORE looks up the viscosity in the water pressure table. This
change makes it possible to have the viscosity in line with the other water properties, i.e. by looking them
up from the same table. Earlier versions of MORE use a viscosity default value of 0.3 cP. The previous
behaviour can be recovered by setting the viscosity argument to 0.3 instead of defaulting it.
• The influence function table index defaults to table 0. In this default case, the Carter-Tracy model will use
the default radial flow, infinite reservoir, constant terminal rate influence function due to Van Everdingen
and Hurst. If a value greater than zero is entered, the required influence function table should be entered
using the AQUT keyword. Please note that the required influence function table should have been entered
before that table is used in an AQCT keyword.
• The salt concentration has an effect only in Brine Tracking applications and should only be specified when
using this option.
• Water backflow from the reservoir to the aquifer is permitted since MORE 6.2. However, to ban backflow
and obtain compatibility with earlier versions of MORE, the NOBACK argument may be used.
• See the Aquifer Modelling section of the MORE Technical Reference for more information regarding
Aquifer Modelling in Tempest.
Examples
1. AQCT is used to define a Carter-Tracy aquifer named AQ1. This aquifer will have a depth of 7450, a
permeability of 10 mD, a porosity of 0.1, a compressibility of 0.00001, an inner radius of 1000, an angular
extent of 360o , and a height of 50. The initial aquifer pressure will be defaulted to be in equilibrium with
the initial reservoir pressure and finally, a water viscosity of 0.30 is assigned to the aquifer.
Location
INIT Section
Description
The AQCO keyword is used to connect an analytical aquifer to a reservoir in x,y,z coordinates. Before an analytical
aquifer can be connected it must be defined using either AQCT for a Carter-Tracy or AQFE for a Fetkovich aquifer.
AQCO consists of eight required and four optional arguments, all of which should be entered in succession on the
same line as the AQCO keyword itself.
Definitions
Notes
• The aquifer will be connected to any available face in the specified direction in the box. This includes both
external faces on the edge of the reservoir and internal faces with no active neighbour. For the purposes of
AQCO, Z is regarded as increasing downwards.
An aquifer connection is made if no active neighbour is in the specified direction within the box. However,
this may not be the desired behaviour when the neighbour is inactive due to a MINP limit. Setting the 9th
argument to N ensures no connection is made in this case. Then aquifer connections will only be made
when the neighbour is inactive because ACTN =0.
• Several AQCO keywords may be specified for the same aquifer to build up the required number of connec-
tions.
• When an optional region is supplied as the 10th argument, it may be convenient to define this region by the
using DEFI keyword.
If the DEFI keyword is defined in the GRID section, it is essential to use the SAVE argument to ensure the
array does not get deleted after processing of the GRID section.
• The influx from the aquifer will be shared between the connected cells. The fraction Fi of the total influx
from the aquifer into the reservoir for every aquifer connection i is determined by the product of the influx
coefficient Ci and the influx multiplier Mi of that connection, i.e.
Ci Mi
Fi = P
i Ci Mi
The default influx coefficient/multiplier are set according to the AQWO keyword, but they may be manually
set using the using the 11th and 12th arguments of the AQCO keyword. In this case, the units of Ci and Mi
should be made consistent with the AQWO setting, to ensure that a mixture of defaulted and user-defined
coefficients result in well-defined factors Fi .
Examples
1. AQCO is used to connect the AQ1 aquifer in the Z+ direction to the base of the 17th layer in a model.
AQCO AQ1 1* 1* 1* 1* 17 17 Z+
2. AQCO is used to connect the AQ1 aquifer in the X, Y and Z+ direction to layers 12-18 in a model. The
areal extent of the connection is described by a user-defined region array ASEC.
In the GRID section (typically an include file is used to import the definition of ASEC from another pro-
gram):
DEFI ASEC
'Aquifer connection region'
Location
INIT Section
Description
The AQFE keyword is used to specify the properties of a Fetkovitch aquifer. AQFE consists of six required
arguments and two optional ones, all of which should be entered in succession on the same line as the AQFE
keyword itself when used.
Definitions
Notes
• Once the aquifer has been defined with AQFE, it should be connected to the reservoir using AQCO.
• Water backflow from the reservoir to the aquifer is permitted since MORE 6.2. However, to ban backflow
and obtain compatibility with earlier versions of MORE, the NOBACK argument may be used.
• The salt concentration has an effect only in Brine Tracking applications and should only be specified when
using this option.
• See the Aquifer Modelling section of the MORE Technical Reference for more information regarding
Aquifer Modelling in Tempest.
Examples
1. AQFE is used to define a Fetkovitch aquifer named AQ1 with a depth of 7450, an initial pore volume of
2.3E10, a compressibility of 0.5E-5, and a productivity of 20200.
Location
INIT Section
Description
The AQUT keyword is used to introduce a Carter-Tracy aquifer influence function table. The Carter-Tracy aquifer
model normally uses the radial flow, infinite reservoir, constant terminal rate influence function of van Everdingen
and Hurst (table 1,1 ). This is the default table, but users may wish to specify an alternative table of dimensionless
pressure vs. dimensionless time. AQUT may be used to enter a series of such tables.
Arguments for AQUT consist of a table with two required columns. This table should start on a separate line below
the AQUT keyword and data entry for AQUT must be terminated by a solitary slash (/) on its own line below the
last row of AQUT data.
Definitions
Notes
• The use of one of the user-defined influence function tables is selected by specifying a non-default influence
function table as the 12th argument of the AQCT keyword.
• In the case of extrapolation MORE uses a scaled version of the default table (of van Everdingen and Hurst).
The scaling is such that the user-specified table is matched.
Examples
AQUT
0 0
1.0E-2 0.19
2.0E-1 0.41
4.0E-1 0.62
1.0 0.82
1.5 0.92
4.0 1.30
10 1.65
50 2.38
100 2.73
500 3.51
1000 3.86
/
1 Carter, R.D. and Tracy, G.W., Trans., AIME SPE-1626-G, Vol. 219 (1960)
Location
INIT Section
Description
The AQUW keyword is used to force 100% water saturation in the water zone of an aquifer. By default, MORE
sets water saturations below the water-oil transition zone to 1, even if an SWU value of less than 1 is entered.
AQUW allows this behaviour to be changed.
Arguments for AQUW consist of two optional arguments which should be entered on the same line as the AQUW
keyword itself if used. If no value is entered for these optional arguments, they will take on the default value.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF when forcing 100% water saturation in the water zone
on and off, respectively.
• When running under ECLIPSE tuning, the setting of water saturations to 100% in the water zone is turned
OFF - AQUW may be used to turn it back on if required.
Examples
1. AQUW with the ON option is used to force 100% water saturation in the water zone of an aquifer.
AQUW ON
2. AQUW with the OFF option is used to stop forcing 100% water saturation in the water zone of an aquifer.
AQUW OFF
3. AQUW with the ON and SWI option is used to force 100% water saturation below the Oil-Water Contact
when SWATINIT is specified.
AQUW ON SWI
Location
INIT Section
Description
The AQWO keyword is used to set the defaults for the analytical aquifer connection influx coefficient and multi-
pliers. AQWO consists of one optional argument which should be entered on the same line as the AQWO keyword
itself. If no value is entered for this optional argument, it will take on the default value.
The fraction Fi of the total influx from an aquifer into the reservoir for every aquifer connection i is determined
by the product of the influx coefficient Ci and the influx multiplier Mi of that connection, i.e.
Ci Mi
Fi = P
i C i Mi
The influx coefficient and multipliers may be set using the 11th and 12th arguments of the AQCO keyword.
Definitions
Notes
• The AQWO settings have an effect only on aquifer connections where the influx coefficient and/or the influx
multiplier are not specified or defaulted.
• Weight option EVEN gives back compatibility with older versions of MORE.
• Weight option AREA gives compatibility with ECLIPSE.
• Weight option KAREA is the recommended option.
Examples
1. AQWO is used with the AREA option to specify that aquifer connection weighting will be dependent on
area.
AQWO AREA
Location
INIT Section
Description
The GCPG keyword is used to allow or not allow connate oil in gas cap. By default, MORE does not place a
connate oil saturation in the gas cap above the oil-gas transition zone. GCPG allows this behaviour to be changed.
GCPG takes one argument which should be entered on the same line as the GCPG keyword itself. If no value is
entered for this arguments, it will take the default value.
Definitions
Notes
Examples
GCPG with the OFF option is used to allow connate oil in the gas cap.
GCPG OFF
Location
INIT Section
Description
The INIT keyword is used as a section header to indicate the beginning of the Initialisation section. The Initialisa-
tion section must begin with the INIT keyword before any other INIT section keywords can be used. Arguments
for INIT consist of one optional argument which should be entered on the same line as the INIT keyword itself if
used.
The Initialization section is used to define the initial conditions for the simulation. For more details on the Initiali-
sation section, please see the Initialisation Data Section Overview. Additionally, please also see the Discussion of
Equilibrium and Non-equilibrium Initialisation section and the Technical Reference Initial Conditions for more
information.
Definitions
Notes
Example
INIT NEQU
Location
INIT Section
Description
The OFIP keyword is used to provide original fluid in place values. OFIP is useful when the simulation does not
start at original reservoir conditions (e.g. when the simulation starts after primary depletion or when the simulation
starts at tertiary conditions.) In this situations, the OFIP keyword can be used to supply the true original fluids in
place.
Arguments for OFIP consist of a two records. The first record consists of one required argument which should
be entered on the same line as the OFIP keyword itself when used. The second record consists of up to three
arguments which should be entered on a separate line below the OFIP keyword when used.
Definitions
RECORD 1:
1. Name of region for which original fluid in place values apply
• ALL specifies the total reservoir
RECORD 2:
1. Original stock tank volume of oil
• Units: Mstb (Field), ksm3 (Metric)
• Default: the value at the start of the simulation
2. Original volume of gas at standard conditions
• Units: MMscf (Field), Msm3 (Metric)
• Default: the value at the start of the simulation
3. Original stock tank volume of water
• Units: Mstb (Field), ksm3 (Metric)
• Default: the value at the start of the simulation
Notes
n/a
Examples
1. OFIP is used to specify that material balance calculations for the entire reservoir should use a value of
30,000 for the original oil in place. The values for gas and water will be defaulted to those at the beginning
of the simulation.
OFIP ALL
30000
2. OFIP is used to specify that material balance calculations for the entire reservoir should use a value of
20,000 for the original oil in place and a value of 25,000 for the original water in place. The value for gas
will be defaulted to the value it has at the beginning of the simulation.
OFIP ALL
20000 1* 25000
Location
INPUt Section
Description
The PCSC keyword is used to set options for initial capillary pressure scaling when SWAT or SGAS are specified
in the INIT section. When using INIT EQUI with EQUI, PCSC can be used to scale the capillary pressure to
stabilise the initial solution while honouring an initial saturation distribution. PCSC is an alternative to PCSH ,
which applies a shift to the capillary pressures to achieve stability of the initial solution.
The keyword PCSH is recommended over PCSC.
Typically, when initial water or gas saturations are specified using SWAT or SGAS keywords, PCSC may be used to
ensure the initial solution is stable, so there is no flow in the absence of any well production or injection. Capillary
pressure scalings for XPCG, XPCW are calculated for each grid cell in the model and are applied throughout the
simulation.
For example, in the oil-water case, an additional scaling P cowScale is calculated for each grid cell. The oil-water
capillary pressure P cow used by MORE during the simulation is then
P cow = P cowLookup (Sw) × P cowScale ,
where P cowLookup (Sw) is the capillary pressure data taken from the KRWO table (and with any user-defined
end-point scaling). The additional scaling P cowScale in P cog is applied analogously.
Arguments for PCSC consist of one optional argument which should be entered on the same line as the PCSC
keyword itself if used. If no value is entered for this optional argument, it will take on the default value.
Definitions
Notes
• PCSC is typically used whenever initial water (and gas) saturations SWAT (and SGAS) are specified. If
SWAT (and SGAS) are specified, then they must be specified for each active cell in the grid in order for
PCSC to have an effect. In some cases, one may wish to honour an initial saturation distribution (such
as SWAT in the oil-water transition zone) without knowledge of the oil-water capillary pressure curves
P cow: Use of the PCSC keyword will calculate the oil-water capillary pressure scalings to ensure the initial
solution is stable. These scalings are applied throughout the simulation.
• When specifying initial saturation distributions (SWAT and SGAS) in the INIT section, use the keyword
EQUI to specify the contact depths. PCSC will then instruct MORE to calculate oil-water (for SWAT) and
gas-oil (for SGAS) capillary pressure scalings (XPCW, XPCG) such that the initial solution is stable: there
will be no (or minimal) movement of fluids on initialisation in the absence of well production and injection.
MORE will first construct hydrostatic phase pressure curves given the data in EQUI and then calculate the
capillary pressures which would be required to support the initial saturation distribution.
For example, to support an initial SWAT distribution, the oil-water capillary pressure scaling P cowScale in
the mobile oil-water region will be calculated from the relation
using phase pressures P o for oil, P w for water, and the entered oil-water capillary pressure P cowLookup
(taken from the KRWO table and with any user-defined end-point scaling). Similarly, to support an initial
SGAS distribution, the gas-oil capillary pressure shift P cogScale is calculated from the relation
• If the oil-water capillary pressure is defaulted (or is zero) in KRWO (for a given saturation region) and the
PCSC keyword is used (or if initial water saturation SWAT is specified in the INIT section), MORE will
first modify the oil-water capillary pressure table to be
P cowLookup = 1 atm
before calculating the capillary pressure scaling P cowScale for each active grid cell in the reservoir. Oth-
erwise it would not be possible to apply any end point scaling. The oil-water capillary pressure used by
MORE in the simulation is then P cow = P cowLookup × P cogScale for the duration of the run.
• If the gas-oil capillary pressure is defaulted (or is zero) in KRWG (for a given saturation region) and the
PCSC keyword is used (or if initial gas saturation SGAS is specified in the INIT section), MORE will first
modify the tabular gas-oil capillary pressure to be
P cogLookup = 1 atm
before calculating the capillary pressure scaling P cogScale for each active grid cell in the reservoir. The
gas-oil capillary pressure used by MORE in the simulation is then P cog = P cogLookup × P cogScale for the
duration of the run.
• When using the MIN or LIM options, MORE will enable end-point scaling of capillary pressures (XPCW,
XPCG) to do calculate the scale factors. For example
Po − Pw
XP CW = P cowScale = ,
P cowLookup (Sw)
where P cowLookup (Sw) is the oil-water capillary pressure entered in KRWG at the given water saturation
Sw specified by SWAT, accounting for any user-defined capillary scalings in SWL etc.
When using the MIN or LIM options, the capillary pressure scalings are set to achieve a stable initial
solution only in regions described above. Outside of this depth range, the scalings are taken to be those at
the nearest end point of the given depth range in order to ensure continuity of the capillary pressures.
9.12. PCSC - Set Options for Initial Capillary Pressure Scaling 761
Tempest MORE Help, Release 8.1
• The PCSH keyword is recommended over the PCSC keyword because any end-point scaling arrays XPCW,
XPCG are left unchanged. When an initial water saturation Sw < 1 is specified via SWAT below the oil-
water contact specified in EQUI, the P cow shift may be negative, which is quite correct, but could lead to
a sign change in XPCW when converting shifts (P cowShift ) to scalings using PCSC. MORE does not allow
sign changes in XPCW when using PCSC, and will reset XP CW = 1 whenever this occurs. The XPCW
scaling required for stability is only set when water saturation Sw < 1, and the XPCG scaling is only set
when Sg < 1.
• PCSC may also be used in conjunction with end-point scaling on P cow (keywords SWL SWU and XPCW)
or P cog (keywords SGL, SGU and XPCG)
• The scaled end-points (P cowScale (P cogScale ) required to achieve a stable initial solution with capillary
pressure scaling for P cow (P cog) may be output with mnemonic XPCW (XPWG) for 3D visualisation
using Tempest VIEW, when XPCW (XPCG) is given as an argument to the STOR keyword.
Location
INIT Section
Description
The PCSH keyword is used to set options for initial capillary pressure shifts when SWAT or SGAS are specified
in the INIT section. When using INIT EQUI with EQUI, PCSH can be used to add shifts to the capillary pressure
to stabilise the initial solution while honouring an initial saturation distribution. PCSH is an alternative to PCSC,
which scales the capillary pressures to achieve stability of the initial solution.
Typically, when initial water or gas saturations are specified using SWAT or SGAS keywords, PCSH may be used to
ensure the initial solution is stable, so there is no flow in the absence of any well production or injection. Capillary
pressure shifts are calculated for each grid cell in the model and are applied throughout the simulation.
For example, when SWAT is specified and the model has oil and water, a shift P cowShif t is calculated for all grid
cells. The oil-water capillary pressure P cow used by MORE during the simulation is then
where P cowLookup (Sw) is the capillary pressure data taken from the KRWO table and with any user-defined
endpoint scaling). Similarly, when SGAS is specified, a shift in P cog is calculated and the gas-oil capillary
pressure P cog used by MORE during the simulation is then
Arguments for PSCH consist of one optional argument which should be entered on the same line as the PCSH
keyword itself if used. If no value is entered for this optional argument, it will take on the default value.
Definitions
9.13. PCSH - Set Options for Initial Capillary Pressure Shifts 763
Tempest MORE Help, Release 8.1
• OFF - turns off the capillary pressure stabilisation shifts. The initial solution will not generally be
static and it may be worth running the reservoir for a period with no production or injection to allow
transient efforts to resolve. Using this will disable the PCSH MIN default which is applied when an
initial SWAT distribution is specified without any PCSH keyword.
Note that FULL is back compatible with MORE 6.0.
Note: If initial saturations (SWAT or SGAS) are specified and neither PCSH or PCSC are specified, then PCSH
will be switched on by default with the MIN argument.
Examples
1. PCSH is used with the LIMI option to specify limited initial capillary pressure stabilisation shifts should be
applied. The initial solution will then be quiescent.
PCSH LIMI
2. PCSH is used with the OFF option to turn off initial capillary pressure stabilisation shifts. In this case the
initial solution may not be quiescent and some flows may occur in the absence of any wells or aquifers.
PCSH OFF
Notes
• PCSH is typically used to ensure a stable initial solution whenever initial water (and gas) saturations SWAT
(and SGAS) are specified together with the EQUI keyword. If SWAT (and SGAS) are specified, then they
must be specified for each active cell in the model in order for PCSH to have an effect.
• Using keyword PCSH will then instruct MORE to calculate oil-water (and gas-oil) capillary pressure shifts
such that the initial solution is stable: there will be no (or minimal) movement of fluids on initialization
in the absence of well and aquifer flows. MORE will construct hydrostatic phase pressure curves given
the data in EQUI and then calculate the capillary pressures which would be required to support the initial
saturation distribution. For example, to support a given initial SWAT distribution, the oil-water capillary
pressure shift P cowShif t will be calculated for each cell in the mobile region using
using phase pressures P o for oil, P w for water, and the tabular oil-water capillary pressure P cowLookup (Sw)
(taken from the KRWO table and with any user-defined endpoint scaling).
• If the oil-water capillary pressure is defaulted (or is zero) in KRWO (for a given saturation region) and the
PCSH keyword is used (or if initial water saturation SWAT is specified in the INIT section), MORE will
first modify the oil-water capillary pressure table to be
before calculating the capillary pressure shift P cowShif t for each active grid cell in the reservoir.
This modification is required when a zero initial tabular P cowLookup is given, in order for PCSH to determine
a stable initial solution, otherwise the P cow in each cell would be constant for all water saturations. It
is then possible to honour the initial SWAT distribution when no P cow table data is available, although
entering a non-zero initial P cow curve is encouraged. The oil-water capillary pressure used by MORE in
the simulation is then P cowLookup (Sw) + P cowShif t for the duration of the run.
• If the gas-oil capillary pressure is defaulted (or is always zero) in KRGO (for a given saturation region) and
the PCSH keyword is used (or if initial gas saturation SGAS is specified in the INIT section), MORE will
first modify the gas-oil capillary pressure table to be
before calculating the capillary pressure shift P cogShif t for each active grid cell in the reservoir. This
is done for the reasons explained above for Pcow. The gas-oil capillary pressure used by MORE in the
simulation is then P cogLookup (Sg) + P cogShif t for the duration of the run.
• When using the MIN or LIM options, the capillary pressure shifts are set to achieve a stable initial solution
only in regions described above. Outside of this depth range, the shifts are taken to be those at the nearest
end point of the given depth range in order to ensure continuity of the capillary pressures. A constant value
extrapolation is taken outside the initial range.
For example, when using the MIN option, the oil-water capillary pressure shifts (P cowShif t ) are calculated
in the mobile oil-water transition zone Swcr < Sw < 1−Sowcr between the highest depth of mobile water
(dtmw) where Sw = Swcr and the lowest depth of mobile oil in water (dbmow) where So = Sowcr. The
mobile oil in water transition zone is then dtmw < d < dbmow.
Above the highest depth of mobile water, d < dtmw, where Sw < Swcr, the shift P cowShif t is constant,
Similarly, below the lowest depth of mobile oil in water (dbmow), where So < Sowcr, the shift is constant,
When the oil-water contact depth dcow specified in the EQUI keyword is below the calculated value of
dbmow, then the transition zone is extended to include dcow, which ensures quiescence with the water
pressure following the hydrostatic curve for depths d > dcow.
Analogously, when using the MIN option for P cogShif t , gas-oil capillary pressure shifts to achieve a stable
initial solution will be calculated in the mobile oil-gas transition zone Sgcr < Sg < 1 − Sogcr between the
highest depth of mobile oil in gas (dtmog) where So = Sogcr , and the lowest depth of mobile gas (dbmg)
where Sg = Sgcr.
Above the highest mobile oil in gas, d < dtmog, with So < Sogcr, the shift is constant,
Similarly, below the lowest depth of mobile gas, d > dbmg, where Sg < Sgcr, the shift is constant
• PCSH may also be used in conjunction with endpoint scaling for P cog (keywords SGL, SGU and XPCG)
or P cow (keywords SWL, SWU and XPCW). MORE applies the scaled endpoints XPCW, XPCG to P cow,
P cog before adding the shifts P cowShif t , P cogShif t .
• When AQUW ON has been used to force 100% water saturation in the water zone, any SWAT values are
reset to Sw = 1 below the oil-water contact depth, and any SWAT values Sw > 0.9999 above the oil-water
contact depth are reset to equilibrated values.
• The PCSH keyword is preferred over the PCSC keyword because any end-point scaling arrays XPCW,
XPCG are left unchanged.
• The capillary pressure shifts P cowShif t (P cogShif t ) for P cow (P cog) may be output for 3D visualisation
in Tempest VIEW with mnemonic PCWS (PCGS), when PCWS (PCGS) is given as an argument to the
STOR keyword.
9.13. PCSH - Set Options for Initial Capillary Pressure Shifts 765
Tempest MORE Help, Release 8.1
Location
INIT Section
Description
The TMVD keyword is used to specify temperature variation of reservoir temperature for equation-of-state mod-
elling. It allows for a depth dependent temperature gradient to be imposed on an equation-of-state run.
Arguments for TMVD consist of two records. The first record consists of one optional argument which, if used,
should be entered on the same line as the TMVD keyword itself. The second record consists of a table with two
columns which should start on a separate line below the TMVD keyword. Following the final row of TMVD data
in the table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Index of region number to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depths
2. Temperatures
• Units: o R (Field), o C (Metric)
Notes
• The EOST option should be selected on the FLUI keyword if TMVD is used.
• If TMVD is used, the temperature on the first TEMP keyword in the FLUI section can be omitted.
Examples
1. TMVD is used to provide temperature variation data for the reservoir temperature in an equation-of-state
model.
TMVD
1200 203
8000 208
/
Location
INIT Section
Description
The EQUI keyword is used to specify equilibration depths and pressures for a system under equilibrium initiali-
sation (specified by using the EQUI option with the INIT keyword). The EQUI keyword allows the user to supply
the locations of the gas-oil and water-oil contacts, the capillary pressure at the contacts, and the depth and pressure
at a reference location.
EQUI has three optional arguments, EXWR, PREC and PCWD.
Arguments for the EQUI keyword consist of a table with six columns containing different depth and pressure
values.
Definitions
Notes
• The number of sub-levels can be set to an integer value greater than one, in which case multi-level equi-
libration will be used. In multi-level equilibration the cell is divided into Nlev depth intervals, each one
equilibrated at its own depth, and then the overall grid block saturation is obtained by summation. In the
single level case the saturation obtained at the cell centre is applied throughout the entire cell. Multi-level
equilibration can yield a more precise fluid in place when the grid is coarse in the vertical direction, at the
cost of a potential slight initial movement in the solution, as the summed saturations do not yield capillary
pressures which precisely honour the hydrostatic phase pressure vs. depth curves.
Examples
1. EQUI is used to specify a reference depth of 5000 ft., a reference pressure of 2307.43 psia, a gas-oil contact
of 5200 ft., an oil-water contact of 5800 ft, and no capillary pressure at the fluid contacts for a system that
is initially in equilibrium. See EQUI_Ex1.dat for complete example:
EQUI
5000.00 2307.43 5200.00 0.00000 5800.00 0.00000
When the ternary property is plotted in 3D for this grid, we will be able to see the distinct gas-oil and
oil-water contacts that we have specified, as follows:
2. In this example, we have a grid with 4 different equilibration regions, as specified by the equilibration table
numbers assigned to each region using the EQUI keyword in the GRID section. Then, the EQUI keyword
in the INIT section can be used to assign different equilibration data to each of the 4 equilibration regions,
as follows. See
EQUI_Ex2.dat for complete example:
EQUI
5100.00 2307.43 5100.00 0.00000 5200.00 0.00000 /Equilibration
,→Region 1
Below, we have displayed the equilibration regions and the ternary property for the grid to demonstrate the
different gas-oil and oil-water contacts that we have specified in each region.
Location
Description
The CONS (constant) keyword is used to specify the initial temperature, pressure, gas and water saturations, and
compositions for a system that is initially in equilibrium.
Arguments for CONS consist of two records. The first record consists of one optional argument which should
be entered on the same line as the CONS keyword itself if used. The number of arguments required for the
second record varies depending on whether a black oil or equation-of-state system is used. For a black oil system,
CONS consists of two required arguments. For an equation-of-state system, CONS consists of three required
arguments. In both cases, these required arguments should be entered in succession on a separate line below the
CONS keyword when used.
Definitions
RECORD 1
1. Index of equilibration region to which this data applies (optional)
• Default: If this value is not supplied, the data applies to the entire grid
RECORD 2:
The following arguments should be entered in a tabular format.
1. Initial temperature for fluid properties (for black oil systems only)
• Units: o F (Field), o C (Metric)
2. Initial saturation pressure (for black oil systems only)
• Units: psi (Field), bar (Metric)
• For black oil systems, the initial saturation pressure is the oil bubble point, Pbub . If Pbub is set higher
than the initial pressure P, Pbub will be reset to P.
• For equation-of-state systems, the initial saturation pressure is not used - this is determined from the
composition.
3. Initial composition (for equation-of-state systems only)
• The initial composition may be set by either:
– Entering the name of a known composition (see SCMP keyword)
– Or, by entering a series of mole fractions which must sum to 1. Default values are 0.
• An initial composition is not required in the black oil case, as the composition is a unique function of
the bubble point.
Notes
• Even though a value for the initial temperature and saturation pressure arguments are not required for
equation-of-state systems, a placeholder is still needed for these arguments so that the initial composition
argument can be read in the proper position. In this case, a simple 2* argument can be used as a placeholder
for these two arguments. Please see Examples #2 and #3 below for more information.
Examples
1. For a black oil system, CONS is used to set an initial temperature of 200 and an initial saturation pressure
of 4015.
CONS
200 4015
2. For an equation-of-state system, CONS is used to set an initial composition as defined by the SCMP keyword
as ROIL in the INPU (Input) or RECU (Recurrent) sections.
CONS
2* ROIL
3. For an equation-of-state system, CONS is used to set an initial composition using a series of mole fractions
adding up to 1.
CONS
2* 0.65 0.22 0.05 0.08
Location
Description
The F(DE (function of depth) keyword is used to specify depth dependent initial conditions for a system that is
initially in equilibrium.
Arguments for F(DE consist of two records. The first record consists of one optional argument. If this optional
argument is used, it should be entered on the same line as the F(DE keyword itself. The second record consists
of a table with four columns. Data entry for this record should start on a separate line below the F(DE keyword
itself. Following the final row of F(DE data in the table, a solitary slash (/) on its own line is required to terminate
the data entry for this keyword.
Definitions
RECORD 1:
1. Index of the equilibration region for which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Temperature for fluid properties (for black oil systems only)
• Units: o F (Field), o C (Metric)
3. Initial saturation pressure (for black oil systems only)
• Units: psi (Field), bar (Metric)
• For black oil, the initial saturation pressure is the oil bubble point, Pbub . If Psub is set higher than the
initial pressure P, Pbub will be reset to P.
• For equation-of-state systems, the initial saturation pressure is not used - this is determined from the
composition.
4. Initial composition (for equation-of-state systems only)
• The initial composition may be set by either:
– Entering the name of a known composition (see SCMP keyword)
– Or, by entering a series of mole fractions which must sum to 1. Default values are 0.
• An initial composition is not required in the black oil case, as the composition is a unique function of
the bubble point.
Notes
• PBVD can be used to provide a simple alternative to F(DE for setting up bubble point variation with depth
in the oil zone for a system in equilibrium.
• RSVD also offers an alternative to PBVD and F(DE for setting up oil zone bubble point variation with depth
for a system in equilibrium.
Examples
1. In a black oil system at equilibrium, F(DE is used to provide different initial temperatures and pressures as a
function of depth. In this system, the bubble point pressure of the oil varies from 6300 at the gas-oil contact
to 5500 at the water-oil contact.
2. In an equation of state system at equilibrium, F(DE is used to set the initial composition as a function of
depth. The composition will be set to RESG, which has been previously specified using the SCMP keyword.
This composition will be set at a depth of 7300.
Location
Description
The GOCX keyword is used to specify that the oil composition should be used to define the gas composition at
the gas-oil contact for an equation-of-state system that is initially in equilibrium. GOCX consists of two optional
arguments which should be entered in succession on the same line as the GOCX keyword itself if used.
Definitions
Notes
Examples
1. GOCX is used to specify that the oil composition should be used to define the gas composition at the gas-oil
contact in an equation of state system.
GOCX
2. GOCX is used to specify that the oil composition should be used to define the gas composition at the gas-oil
contact in an equation of state system. This data will be applied to equilibration region #2 and the PSET
option will also be included to indicate that the reference pressure is to be set to the oil saturation pressure.
GOCX 2 PSET
Location
Description
The GOCY keyword is used to specify that the gas composition should be used to define the oil composition at
the gas-oil contact for an equation-of-state system that is initially in equilibrium. GOCY consists of two optional
arguments which should be entered in succession on the same line as the GOCY keyword itself if used.
Definitions
Notes
Examples
1. GOCY is used to specify that the gas composition should be used to define the oil composition at the gas-oil
contact in an equation of state system.
GOCY
2. GOCY is used to specify that the gas composition should be used to define the oil composition at the gas-oil
contact in an equation of state system. This data will be applied to equilibration region #2 and the PSET
option will also be included to indicate that the reference pressure is to be set to the gas saturation pressure.
GOCY 2 PSET
9.19. GOCY - Use Gas Composition at the Gas-Oil Contact to Define Oil Composition 775
Tempest MORE Help, Release 8.1
Location
INIT Section
Description
The GCRI keyword is used to populate the cells in a grid with initial gas contents of coal in a coal bed methane
system. It can be used in black oil simulations as an alternative to PDSI . When GCRI is used, the coal bed
methane option must be turned on using the CBM keyword in the INPU or FLUI sections. Arguments for the
GCRI keyword consist of an array of values for the initial gas content of coal in each cell.
Cells will be populated in the x-direction first, followed by the y-direction, and then the z-direction last. For
repeated values, an asterisk can be used to assign a value to a specified number of cells (i.e. 150*102.8 can be
used to assign a value of 102.8 to 150 cells).
Definitions
Notes
• A metric tonne is 1000kg. A field unit ton is a short (USA) ton of 2000lb.
• The keyword defining an array can be followed by an array sub-keyword which defines the layer format.
Please see the CONS, F(DE, F(PO, FUNC, INTE, LINE, MODI, REPL, VARI, or ZVAR keywords for further
information.
• The VARI processing method is the default. For example, if you supply an array name and then supply
numerical values without a grid processing sub-keyword, the simulator will use the VARI option. If the
simulator encounters no grid processing sub-keyword after reading a layer of values, the VARI option will
be used again. This process is repeated until all layers are specified.
• When sub-keywords are used to specify values for a number of layers, a different method could be used in
each layer. The ZVAR sub-keyword is somewhat different from the others because it is used to specify the
values for all layers at once.
Examples
1. GCRI is used to populate a 10x10x3 grid with 300 values for the initial gas content of coal.
GCRI
100*85
100*90
100*95
The addition of the GCR option to the STOR keyword will then allow the gas content of coal array to appear
in the Recurrent section of the results to be displayed in 3D, as follows:
Location
Description
The AGVD keyword is used for setting up API gravity variation with depth in the oil zone for a system that is
initially in equilibrium.
Arguments for AGVD consist of two records. The first record consists of one optional argument which should
be entered on the same line as the AGVD keyword itself if used. The second record consists of a table with two
columns which should start on a separate line below the AGVD keyword. Following the final row of AGVD data
in the table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Oil API
• Units: dimensionless
Notes
• See the API Tracking section of the MORE Technical Reference for more information regarding API track-
ing in Tempest.
Examples
1. AGVD is used to set the initial variation of API gravity as a function of depth in a black oil system at
equilibrium.
AGVD
6000.0 35.0
6990.0 33.0
7150.0 32.0
8000.0 20.0
/
Location
Description
The MFVD keyword is used to set up the initial variation of composition as a function of depth in a system that is
initially in equilibrium.
Arguments for MFVD consist of two records. The first record consists of one optional argument which should
be entered on the same line as the MFVD keyword itself if used. The second record consists of a table with at
least two columns which should start on a separate line below the MFVD keyword. The number of columns in the
table depend on the number of components specified in the system using the CNAM keyword in the INPU section.
Following the final row of MFVD data in the table, a solitary slash (/) on its own line is required to terminate the
data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default:If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Composition (list of compositions for each component)
Notes
n/a
Examples
1. MFVD is used to set the initial variation of composition as a function of depth in an equation of state
system at equilibrium. The composition of 5 different components will be given to be interpolated between
the depths of 2000 and 4000.
MFVD
2000 0.1 0.2 0.1 0.5 0.2 /
4000 0.1 0.2 0.2 0.4 0.2 /
/
Location
Description
The PBVD keyword is used to provide a simple alternative to F(DE for setting up a bubble point variation with
depth in the oil zone for a system that is initially in equilibrium.
Arguments for PBVD consist of two records. The first record consists of one optional argument which should
be entered on the same line as the PBVD keyword itself if used. The second record consists of a table with two
columns which should start on a separate line below the PBVD keyword. Following the final row of PBVD data
in the table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Bubble point pressure
• Units: psia (Field), barsa (Metric)
Notes
• For black oil systems, the initial saturation pressure is the oil bubble point, Pbub . If Pbub is set higher than
the initial pressure P, Pbub will be reset to P.
• For equation of state systems, the initial saturation pressure is not used - this is determined from the com-
position.
• The values supplied with PBVD are only used below the gas-oil contact. Above the gas-oil contact, the oil
is assumed to be saturated.
• RSVD also offers an alternative to PBVD and F(DE for setting up oil zone bubble point variation with depth
for a system in equilibrium.
Examples
1. PBVD is used to set the initial variation of bubble point pressures as a function of depth in a black oil system
at equilibrium.
PBVD
1200 3467
8000 3654
/
Location
Description
The PDVD keyword is used to set the dew point of a condensate case run in non-equation of state mode.
Arguments for PDVD consist of two records. The first record consists of one optional argument which should
be entered on the same line as the PDVD keyword itself if used. The second record consists of a table with two
columns which should start on a separate line below the PDVD keyword. Following the final row of PDVD data
in the table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Dew point pressure
• Units: psia (Field), barsa (Metric)
Notes
• For equation of state systems, the initial dew point pressure is not used - this is determined from the com-
position.
• The values supplied with PDVD are only used above the gas-oil contact.
• RVVD also offers an alternative to PDVD.
Examples
1. PDVD is used to set the initial variation of dew point pressures as a function of depth.
PDVD
1200 2467
8000 2654
/
Location
Description
The RSVD keyword is used to provide an alternative to PBVD and F(DE for setting up bubble point pressure
variation with depth in the oil zone for a system that is initially in equilibrium.
Arguments for RSVD consist of two records. The first record consists of one optional argument which should
be entered on the same line as the RSVD keyword itself if used. The second record consists of a table with two
columns which should start on a separate line below the RSVD keyword. Following the final row of RSVD data
in the table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default:If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Solution gas-oil ratio
• Units: mscf/stb (Field), ksm3 /sm:sup:3 (Metric)
Notes
• The metric units for the solution gas-oil ratio are the normal MORE units (ksm3 /sm3 ), not sm3 /sm3 as used
by ECLIPSE and some other simulators.
Examples
1. RSVD is used to set the initial variation of solution gas-oil ratios as a function of depth in a black oil system
at equilibrium.
RSVD
1200 1.25
8000 1.32
/
Location
Description
The RVVD keyword is used to set up the initial variation of the vapour oil-gas ratio as a function of depth in a
system that is initially in equilibrium. Arguments for RVVD consist of two records. The first record consists of
one optional argument which should be entered on the same line as the RVVD keyword itself if used. The second
record consists of a table with two columns which should start on a separate line below the RVVD keyword.
Following the final row of RVVD data in the table, a solitary slash (/) on its own line is required to terminate the
data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default:If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Vapour oil-gas ratio
• Units: stb/Mscf(Field), sm3 /1000sm3 (Metric)
Notes
• The values supplied with the RVVD keyword are only used above the gas-oil contact. Below the gas-oil
contact, the reservoir vapour is assumed to be saturated.
Examples
1. RVVD is used to set the initial variation of vapour oil-gas ratios as a function of depth in a black oil system
at equilibrium. The values provided are in metric units.
RVVD
1200 1.021
8000 1.132
/
9.26. RVVD - Initial Variation of Vapour Oil-Gas Ratio with Depth 783
Tempest MORE Help, Release 8.1
Location
Description
The SCVD keyword is used for setting up salt concentration variation with depth for a system that is initially in
equilibrium.
Arguments for SCVD consist of two records. The first record consists of one optional argument which should
be entered on the same line as the SCVD keyword itself if used. The second record consists of a table with two
columns which should start on a separate line below the SCVD keyword. Following the final row of SCVD data
in the table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Salt concentration
• Units: lb/stb (Field), kg/sm3 (Metric)
Notes
• See the Brine Tracking section of the MORE Technical Reference for more information regarding brine
tracking in Tempest.
Examples
1. SCVD is used to set the initial variation of salt concentration as a function of depth in a system at equilib-
rium.
SCVD
5000.0 5.0
5200.0 6.7
5400.0 8.3
5500.0 9.0
/
Location
INIT Section
Description
The THPD keyword is used to specify threshold pressures between pairs of equilibration regions (specified by
using the EQLN keyword together with the INIT keyword).
The threshold pressure ∆p is used to supply a minimum potential difference before flow occurs between pairs of
equilibration regions. If the potential difference in the simulation exceeds ∆p, the flow between thse regions is
then calculated by reducing the actual potential difference by the amount ∆p.
Each row of the THPD keyword has three required arguments and two additional optional arguments.
Definitions
The following required arguments should be entered after the THPD keyword:
1. Index of first equilibration region (I)
2. Index of second equilibration region (J)
3. Threshold pressure (∆p) for flows between the pair of equilibration regions I and J
• Default: -1.0
• Units: psi (Field), bar (Metric)
If a negative value is entered for ∆p, or item 3 is defaulted, then the initial threshold pressure is calculated
by the code to ensure there is no initial flow between regions I and J. This is done at initialisation of the
reservoir. The value of ∆p used by MORE is then the maximum potential difference for all connections
between equilibration regions I and J, over all phases with a non-zero saturation in the upstream cell. This
option is useful for ensuring the initial state of the reservoir is quiescent in the presence of multiple contacts
specified using the EQUI keyword in the INIT section.
Optional arguments may also be used on the same line of the table after the required arguments.
1. IRRE
The IRRE argument may be used on the same line as the THPD keyword to specify that the threshold
pressure is irreversible. Then the threshold pressure ∆p only applies for flows from I to J and not for flows
from J to I.
The default is that the threshold pressure is reversible, and the same pressure difference is applied to flows
from I to J as well as from J to I.
2. ONPD
The ONPD argument modifies the behaviour of the THPD keyword, similar to the ONPD argument with
the NNC keyword. In this case, as soon as the potential difference for any connection between equilibration
regions I and J exceeds ∆p in magnitude, the flow is calculated using the full potential difference. This
remains so even if the potential difference subsequently drops below ∆p. Therefore, this can be considered
as a break through pressure, where the potential difference ∆p is used to break an existing barrier, which is
then subsequently always open to flow.
The ONPD option may not be used together with the IRRE flag.
Functionality
Flows between any pairs of equilibration regions I and J not entered using the THPD keyword default has a
threshold pressure of 0.0, which means that the threshold pressure calculation between these regions is not active.
Consider Darcy flow between two cells i and j, which belong to equilibration regions I and J respectively. In the
absence of any threshold pressure or non-Darcy effects, the flow from cell i to j for a given phase p is given by
where M , P , ρ, d and P c denote mobility, oil phase pressure, mass density, depth and capillary pressure, re-
spectively. Φp,ij is used as shorthand for the potential difference between cells i and j. Suppose that a threshold
pressure ∆PIJ is imposed between the equilibration regions I and J. Then the actual flow F p,ij used by MORE
is
(
max (Φp,ij − ∆PIJ , 0) if Φp,ij > 0
F p,ij = Mp,ij × .
− max (−Φp,ij − ∆PJI , 0) if Φp,ij < 0
When the threshold pressure PIJ between equilibration regions I and J is irreversible, then ∆PJI 6= ∆PIJ , else
they are equivalent, ∆PIJ = ∆PJI .
When the ONPD flag is specified with a break through pressure ∆PIJ between equilibration regions I and J,
then the actual flow F p,ij from i to j is zero until such time as |Φp,ij | > |∆Pp,ij | for any flowing phase p. At
subsequent times, the connection from i to j is always fully available for flow, the break through pressure ∆PIJ is
no longer used for that connection, and F p,ij = Fp,ij . The break through pressures ∆PIJ between equilibration
regions I and J are always reversible, so that ∆PIJ = ∆PJI .
Examples
1. In this example, we have a grid with 4 different equilibration regions, as specified by the equilibration table
numbers assigned to each region using the EQLN keyword in the GRID section. Then, the THPD keyword in
the INIT section can be used to assign different threshold pressures for flows between equilibration regions,
as follows.
THPD 1 2 1*
THPD 2 3 50.0 IRRE
THPD 3 2 70.0 ONPD
THPD 3 4 5.0 ONPD
Assuming Field units, the threshold pressures for flows between equilibration regions 1 and 2 are calculated
from the initial conditions of the reservoir. Flows from region 2 to region 3 use a threshold pressure of 50.0
psi, whereas any flows from region 3 to region 2 require a break through pressure of 70 psi. Flows between
regions 3 and 4 use a break through pressure of 5 psi.
2. Consider another example with 4 different equilibration regions, and the initial state of the reservoir is
equilibrated using the EQUI keyword in the INIT section, with different contact depths specified in each
equilibration region. Due to the different contact depths, the initial state of the reservoir is not quiescent if
there are flow paths between the equilibration regions (that is, there is likely to be flow between equilibration
regions in the absence of any wells or aquifers). However, specifying THPD with defaulted threshold pres-
sures instructs MORE to calculate initial threshold pressures so as to make the initial state of the reservoir
quiescent.
-- Specify fluid contacts
-- Dref(ft) Pref(psia) GOC(ft) Pcgo(psi) OWC(ft) Pcow(psi)
EQUI
5100.00 2307.43 5100.00 0.00000 5200.00 0.00000 --Equilibration
,→Region 1
THPD 1 2 1*
THPD 1 3 1*
THPD 1 4 1*
THPD 2 3 1*
THPD 2 4 1*
THPD 3 4 1*
MORE reports the initial threshold pressures which are determined to achieve a quiescent initial solution in
the .out file as follow:
Threshold pressures
Location
Description
The TRIM keyword is used to reset the composition of saturated cells in the gas zone to prevent oil appearance at
the start of a run for systems that are initially in equilibrium. TRIM only has an effect on equilibrated equation of
state runs.
If a cell in the gas zone (that is, above the gas-oil contact depth) has a zero oil saturation after equilibration, TRIM
checks that the gas is not super-saturated. A super-saturated cell has a saturation pressure (or dew point pressure,
for a gas) greater than the cell pressure and so, drops out a small amount of oil when the run starts. With TRIM,
the composition of such a cell is modified so that is is just saturated and so it is not unstable once the run starts.
TRIM does not require any arguments when it is used.
Examples
1. TRIM is used to reset the composition of saturated cells in the gas zone to prevent oil appearance at the start
of a run for an equation-of-state system that is initially in equilibrium.
TRIM
Location
Description
The XMFV keyword is used to set up the initial variation of the oil composition as a function of depth in a system
that is initially in equilibrium. XMFV is only required for equation of state runs in which the gas-oil contact is
within the reservoir.
Arguments for XMFV consist of two records. The first record consists of one optional argument which should
be entered on the same line as the XMFV keyword itself if used. The second record consists of a table with at
least two columns which should start on a separate line below the XMFV keyword. The number of columns in the
table depend on the number of components specified in the system using the CNAM keyword in the INPU section.
Following the final row of XMFV data in the table, a solitary slash (/) on its own line is required to terminate the
data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Oil composition (list of oil compositions for each component)
Examples
1. XMFV is used to set the initial variation of the oil composition as a function of depth in an equation of
state system at equilibrium. The oil composition of 6 different components will be given to be interpolated
between the depths of 2000 and 4000.
XMFV
2000 0.50 0.03 0.07 0.20 0.15 0.05 /
4000 0.50 0.03 0.07 0.20 0.15 0.05 /
/
9.30. XMFV - Initial Variation of Oil Composition with respect to Depth 789
Tempest MORE Help, Release 8.1
Location
Description
The YMFV keyword is used to set up the initial variation of the gas composition as a function of depth for a system
that is initially in equilibrium. YMFV is only required for equation of state runs in which the gas-oil contact is
within the reservoir.
Arguments for YMFV consist of two records. The first record consists of one optional argument which should
be entered on the same line as the YMFV keyword itself if used. The second record consists of a table with at
least two columns which should start on a separate line below the YMFV keyword. The number of columns in the
table depend on the number of components specified in the system using the CNAM keyword in the INPU section.
Following the final row of YMFV data in the table, a solitary slash (/) on its own line is required to terminate the
data entry for this keyword.
Definitions
RECORD 1:
1. Index of equilibration region to which this data applies (optional)
• Default: If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Gas composition (list of gas compositions for each component)
Notes
n/a
Examples
1. YMFV is used to set the initial variation of the gas composition as a function of depth in an equation of
state system at equilibrium. The gas composition of 9 different components will be given to be interpolated
between the depths of 7000 and 8000.
YMFV
2000 0.0121 0.0194 0.7099 0.0869 0.0491 0.0767 0.0372 0.0053 0.0034 /
4000 0.0118 0.0184 0.7166 0.0858 0.0481 0.0745 0.0371 0.0048 0.0029 /
/
Location
Description
The CONS (constant) keyword is used to specify the initial temperature, pressure, gas and water saturations, and
compositions for a system that is not in equilibrium initially.
Arguments for CONS consist of two records. The first record consists of one optional argument which should be
entered on the same line as the CONS keyword itself if used. The number of arguments required for the second
record varies depending on whether a black oil or equation-of-state system is used. For a black oil system, CONS
consists of five required arguments. For an equation-of-state system, CONS consists of six required arguments. In
both cases, these required arguments should be entered in succession on a separate line below the CONS keyword
when used.
Definitions
RECORD 1
1. Index of equilibration region to which this data applies (optional)
• Default: If this value is not supplied, the data applies to the entire grid
RECORD 2
1. Initial temperature for fluid properties
• Units: o F (Field), o C (Metric)
2. Initial pressure
• Units: psi (Field), bar (Metric)
3. Initial bubble point pressure
• Units: psi (Field), bar (Metric)
4. Initial gas saturation
5. Initial water saturation
• Default: Swc
6. Initial composition (for equation-of-state systems only)
• The initial composition may be set by either:
– Entering the name of a known composition (see :SCMP keyword)
– Or, by entering a series of mole fractions which must sum to 1. Default values are 0.
• An initial composition is not required in the black oil case, as the composition is a unique function of
the bubble point.
Examples
1. CONS is used to set initial conditions for a non-equilibrium black oil system.
CONS
1* 3000 1* 0.0 0.25
2. CONS is used to set an initial conditions for a non-equilibrium equation of state system. The temperature
and bubble point pressure will be given default values while the pressure will be assigned a value of 3550.
The initial gas and water saturations will be set to 0.80 and 0.20, respectively, while the initial composition
will be defined as RESG. Compositions contained in RESG are defined by the SCMP keyword in the INPU
(Input) or RECU (Recurrent) sections.
CONS
1* 3550 1* 0.8 0.2 RESG
3. CONS is used to set an initial conditions for a non-equilibrium equation of state system. The temperature
and bubble point pressure will be given default values while the pressure will be assigned a value of 3550.
The initial gas and water saturations will be set to 0.80 and 0.20, respectively, while the initial composition
will be defined with a series of mole fractions adding up to 1.
CONS
1* 3550 1* 0.8 0.2 0.65 0.22 0.05 0.08
Location
Description
The F(DE (function of depth) keyword is used to specify depth dependent initial conditions for a system that is
not in equilibrium initially. Arguments for F(DE consist of two records. The first record consists of one optional
argument. If this optional argument is used, it should be entered on the same line as the F(DE keyword itself. The
second record consists of a table with seven columns. Data entry for this record should start on a separate line
below the F(DE keyword itself. Following the final row of F(DE data in the table, a solitary slash (/) on its own
line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Number of the equilibration region for which this data applies (optional)
• Default:If not supplied or if only one equilibration region exists, the data is applied to the entire grid.
RECORD 2:
The following arguments should be entered in a tabular format.
1. Depth
• Units: feet (Field), metres (Metric)
2. Temperature
• Units: o F (Field), o C (Metric)
3. Initial pressure
• Minimum: 1
• Units: psi (Field), bar (Metric)
4. Initial bubble point pressure
• Maximum: P
• Units: psi (Field), bar (Metric)
5. Initial gas saturation
6. Initial water saturation
• Default: Swc
7. Initial composition + The initial composition may be set by either:
• Entering the name of a known composition (see SCMP keyword)
• Or, by entering a series of mole fractions which must sum to 1.
• Default values are 0.
Notes
n/a
Examples
2. In a non-equilibrium system, F(DE is used to provide initial conditions as a function of depth. An initial
composition is provided as RESG, which is defined by the SCMP keyword in the INPU or RECU sections.
Location
Description
The TMF keyword is used to set the total mole fractions for each component in each cell for an equation-of-state
system that is not in equilibrium initially. Arguments for TMF consist of a table of total mole fractions for each
component. The number of mole fractions required for each component is equal to the number of grid cells in
simulation. This table should start on a separate line below the TMF keyword itself when entered.
Definitions
1. Table of mole fractions for each hydrocarbon component present in the system
• The number of mole fractions required for each component is: Nx *Ny *Nz where Nx is the number of
grid cells in the x-direction, Ny is the number of grid cells in the y direction and Nz is the number of
grid cells in the z direction.
Notes
n/a
Examples
1. In a 10x10x5 grid with 5 components, TMF is used to provide total mole fractions for each component in
each cell.
TMF
0.0231 499*0.0121 / mole fractions for hydrocarbon component 1
0.0094 499*0.0194 / mole fractions for hydrocarbon component 2
500*0.7412 / mole fractions for hydrocarbon component 3
500*0.1682 / mole fractions for hydrocarbon component 4
500*0.0591 / mole fractions for hydrocarbon component 5
TEN
Location
RECU Section
Description
The ALLX keyword is used to set the crossflow on or off for all wells. By default, crossflow is on for all wells and
in this case, fluid is allowed to flow from high pressure layers to low pressure layers through cross-flowing wells.
When crossflow is turned off, the flow of material from layer to layer is stopped in the wells.
ALLX consists of one optional argument which, if used, should be entered on the same line as the ALLX keyword
itself. If no optional argument is entered, the ALLX keyword will default to ‘ON’ to set the crossflow to be on for
all wells.
Definitions
1. ON or OFF
• ON (default) - turn crossflow on for all wells
• OFF - turn off crossflow for all wells
Notes
• YES and NO may be used as aliases for ON and OFF when turning the crossflow for all wells on and off,
respectively.
• The location of the ALLX keyword in the RECU section is significant, and crossflow can be turned on and
off multiple times in a run.
• To turn on/off crossflow for one well, use XFLO event.
• A recommended alternative to this keyword is GXFLO event for group ALL.
Examples
1. ALLX is used to turn on crossflow for all wells in the following example. As shown in the grid below, we
have two sets of layers, separated by permeability barrier. An injector is used to pressure up the bottom
region whilst a producer, WPRD1, lowers the pressure of the entire grid. Well WPRD2 also joins up all the
layers in the grid but only produces oil for 2 years, after which it is stopped.
797
Tempest MORE Help, Release 8.1
ALLX ON
With ALLX ON, we can see that the WPRD2 well allows for crossflow, as depicted in the final oil saturation
image and wellbore plot of the cumulative oil flow shown below. See ALLX_ON.dat for complete example:
2. In this example, ALLX is used to turn off crossflow for all wells using the same grid in Example #1 above.
Here, we use ALLX with the OFF option, as follows:
ALLX OFF
As a result, no crossflow is allowed, as depicted in the final oil saturation image and wellbore plot of the
cumulative oil flow shown below. See ALLX_OFF.dat for complete example:
Location
RECU Section
Description
The ARRA (array) keyword is used to control the detailed array output for the initial and recurrent 3D data. The
ARRA keyword must be present and accompanied by the GENE keyword in a simulation run for 3D data output
to occur.
Arguments for ARRA consist of two records. The first record consists of three optional arguments which should
be entered on the same line as the ARRA keyword itself. The second record consists of an array of time or date
outputs which should be entered on a separate line below the ARRA keyword. This record must be present when
the ARRA keyword is used. The data entry for this record must be terminated with a slash (/). On a line below
this, any number of ARRA subkeywords, such as GENE, STOR, FLIP, can be used to request additional array
data output.
Definitions
Notes
• For recurrent grid data to be created for plotting in 3D, the GENE keyword must be used with ARRA.
• When ARRA is used without GENE, MORE will issue a warning when the dataset is run denoting: “Warn-
ing 815 (Needs GENE with ARRA in RECU section for restarts or Tempest plots) has occurred” and no
recurrent array output will appear in the Recurrent tab of the results section.
• The SATU, DENS, VISC, RELK, MOBI subkeywords can also be used with ARRA to request the output of
phase saturations, densities, viscosities, relative permeabilities, and mobilities, but it is recommended that
the more common approach of applying GENE or STOR to request these properties be used.
• When streamline displays are activated using the STRE keyword in the INPU section, the initial time step for
the displayed recurrent array data will be one day after the initial date of the simulation set using IDAT in the
INPU section. This one day reporting delay is due to the nature of the calculations needed for streamlines.
To get recurrent array data output on the initial date of the simulation, the user can either specify a very tiny
time step in the time interval array for record two of the ARRA keyword, or if streamline displays are not
required, remove the STRE keyword in the INPU section. Please see Example #4 for more information.
• The initial time step for the recurrent array data in restart runs will not be affected by the presence of the
STRE keyword and the initial time step reported will be the same as the date specified by the SDAT keyword
in the INPU section.
Examples
1. ARRA is used to specify data output in years and an array of times is given to indicate the specific time
intervals between output. GENE is also used to request that fluid-in-place summaries will be written to the
output file and restart information will be written to the MORE file system to drive Tempest at the times
specified by the ARRA keyword.
ARRA YEAR
0 2 4 6 8 10 12 14 /
GENE REST FLIP
Looking in the Recurrent tab of the Results, we will see that array data has been output for 3D visualisation
at the intervals specified. See ARRA.dat for complete example:
2. This example is similar to the one above except that the EQUA argument will be added to the ARRA
keyword to specify that array data will be output at equal time intervals of 2 years. In this case, only one
value is needed for the array of time intervals.
Looking in the Recurrent tab of the Results, we will see that array data has been output for 3D visualisation
at exactly 2 year intervals. See ARRA_EQUA.dat for complete example:
3. This example is also similar to the ones above except that the END argument will be added to the ARRA
keyword to specify that array data will also be output at the end of the simulation.
ARRA YEAR EQUA END
2.0 /
GENE REST FLIP
Looking in the Recurrent tab of the Results, we will see that array data has been output for 3D visualisation
at exactly 2 year intervals and also at the end of the simulation (i.e. January 1, 2015). See ARRA_END.dat
for complete example:
4. We can see that all of the recurrent data output for the three examples above have an initial time step on
January 2, 2000 while the initial date of simulation for these examples was specified at January 1, 2000.
This will always be the case when streamlines displays are enabled. If it is desired to have recurrent data
output on the initial date of the simulation vs. one day after the initial date of the simulation, one of two
procedures can be followed:
(1) If streamline displays are not required, we can remove the STRE keyword from the INPU section to
disable streamline displays.
We will then see the following time step outputs in the Recurrent tab of the results. See
ARRA_NoStream.dat for complete example:
We will then see that the first time step displayed in the Recurrent tab of the results start on Jan-
uary 1, 2000 instead of January 2, 2000, and streamline displays and data will still be available. See
Location
RECU Section
Description
The ATRC (aquifer tracer) keyword is used to set the tracer injection concentration for an aquifer. This keyword
consists of three required arguments which should be entered in succession on the same line as the ATRC keyword
itself when used.
Definitions
Notes
• The name of the component which carries the tracer must be one of the components that are listed under the
CNAM keyword in the INPU section.
• It is possible to define one or more named tracers using the TRAC keyword. A tracer is transported by a
named component. The concentration of a tracer injected by a well may be defined using WTRC or the
TRAC event. The concentration of a tracer in water injected by an aquifer may be defined using the ATRC
keyword.
Examples
1. ATRC is used to assign the BRIN tracer to the AQ1 aquifer at a concentration of 100%. To do this, we must
first define a tracer named BRIN in the FLUI section as follows:
The BRIN tracer can now be used with the ATRC keyword in the RECU section:
With the presence of a tracer, a tracer icon will appear in the Recurrent tab of the results which will allow
you to plot the concentration of the tracer in the reservoir with time in 3D. In the figure below, we can see
the distribution of the BRIN tracer in the reservoir from the AQ1 aquifer after 20 years. See ATRC.dat for
complete example.
Location
RECU Section
Description
The BCKT keyword is used to request back-tracking Newton iterations when solving each timestep.
Typically this keyword will only used for debugging by MORE developers.
Definitions
1. LINE (optional) - request a linearity check of the Jacobian used in the Newton iteration
Example
BCKT
Location
RECU Section
The BRAN (branch) keyword is used to define a branch structure for a set of tracks. It sets the parent track for a
child track and sets the measured depth at which the child track kicks off from the parent track. BRAN consists of
three required arguments and one optional one which should all be entered in succession on the same line as the
BRAN keyword.
Definitions
Notes
• Parent and child trajectories must first be defined using the TTAB, ENDT or TFIL well track definition
format before the BRAN keyword can be used.
• If the BRAN and CRAT arguments of the RATE keyword are also entered in the RECU section, the resulting
branch and completion summary vectors created can be seen in the Wells tab of the Results section, as
shown in example 1. Note that the plotted measured depths along a branch may be shifted in order to yield
consistent values at the branch point between the child and parent trajectories.
• If used with the WSEG keyword, Well Track Table and Well Event Table must first be defined using TTAB
ENDT and ETAB ENDE respectively before the WSEG keyword can be used.
Examples
1. BRAN is used to add a branch to the P-1 well trajectory at a measured depth of 5500. To do this, one must
first ensure that the parent (P-1)and child (P-1:1) branch trajectories are both defined using the TTAB format.
P-1:1
2500 5500 5500 5500
8000 5500 5500 11000
ENDT
We then introduce the BRAN keyword to define the branch structure for P-1 and P-1:1.
We may use the PERF event, to add completions to P-1 and P-1:1, as follows. See BRAN.dat for complete
example:
The resulting completed branch will then appear on the 3D Viewer as follows. Measured depths are marked
on this image for clarity.
The well P-1 in the wells tab can also be expanded to show the completions of each branch, as shown below.
fish:1
5000 2000 5500 6500
6000 3000 5500 7910
fish:2
5000 2000 5500 6500
4000 3000 5500 7910
fish:3
5000 4000 5500 8500
6000 5000 5500 9910
fish:4
5000 4000 5500 8500
fish:5
5000 6000 5500 10500
6000 7000 5500 11910
fish:6
5000 6000 5500 10500
4000 7000 5500 11910
fish:7
5000 8000 5500 12500
6000 9000 5500 13910
fish:8
5000 8000 5500 12500
4000 9000 5500 13910
ENDT
We then introduce the BRAN keyword to define the branch structure. See BRAN_fishbone.dat for complete
example:
fish
01/Jan/2000 PROD
01/Jan/2000 PERF 7000 8000 0.5 0 10
01/Jan/2000 PERF 9000 10000 0.5 0 10
01/Jan/2000 PERF 11000 12000 0.5 0 10
01/Jan/2000 LPT 5000
01/Jan/2000 BHPT 1500
01/Jan/2000 PERF 7500 7910 0.5 0 10 BRANCH 1
01/Jan/2000 PERF 7500 7910 0.5 0 10 BRANCH 2
01/Jan/2000 PERF 9500 9910 0.5 0 10 BRANCH 3
01/Jan/2000 PERF 9500 9910 0.5 0 10 BRANCH 4
01/Jan/2000 PERF 11500 11910 0.5 0 10 BRANCH 5
01/Jan/2000 PERF 11500 11910 0.5 0 10 BRANCH 6
01/Jan/2000 PERF 13500 13910 0.5 0 10 BRANCH 7
01/Jan/2000 PERF 13500 13910 0.5 0 10 BRANCH 8
ENDE
The resulting completed branches will then appear on the 3D Viewer as follows:
The well “fish” in the wells tab can also be expanded to show the completions of each branch, as shown
below.
bb:1
2000 2000 5800 5800
7000 2000 5800 10800
bb:2
3000 2000 5800 6800
3000 8000 5800 12800
bb:3
3000 4000 5800 8800
8000 4000 5800 13800
bb:4
4000 4000 5800 9800
4000 9000 5800 14800
bb:5
4000 6000 5800 11800
9000 6000 5800 16800
We then introduce the BRAN keyword to define the branch structure. See BRAN_BranchOfBranch.dat for
complete example:
bb
01/Jan/2000 PROD
01/Jan/2000 PERF 5800 6000 0.5 0 10
01/Jan/2000 LPT 5000
01/Jan/2000 BHPT 1500
01/Jan/2000 PERF 8800 10800 0.5 0 10 BRANCH 1
01/Jan/2000 PERF 10800 12800 0.5 0 10 BRANCH 2
01/Jan/2000 PERF 11800 13800 0.5 0 10 BRANCH 3
01/Jan/2000 PERF 12800 14800 0.5 0 10 BRANCH 4
01/Jan/2000 PERF 14800 16800 0.5 0 10 BRANCH 5
ENDE
The resulting branches will then appear on the 3D Viewer as follows. Measured depths are marked on this
image for clarity.
The well ‘bb’ in the wells tab can also be expanded to show the completions of each branch, as shown
below.
4. In this example, BRAN is used with the WSEG (multi-segmented well) option.
P-1:1
1500 4500 5500 0
6000 4500 5500 4500
ENDT
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5600 5800 0.5 0 10
01/Jan/2000 PERF 3500 4500 0.5 0 10 BRANCH 1
01/Jan/2000 OPT 5000
01/Jan/2000 BHPT 1500
ENDE
We introduce the BRAN, WSEG, and RRTA keywords to define the branch structure, multi-segmented well
option and a roughness and radius table respectively. See BRAN_WSEG.dat for complete example:
RRTA RTAB1
--MD Rad Roughness
5000 0.10 0.01
5500 0.50 0.05
/
RRTA RTAB2
--MD Rad Roughness
0 0.60 0.55
1000 0.70 0.56
2000 0.80 0.57
3000 0.90 0.58
4000 0.99 0.59
/
If the argument SEGM under the GENE keyword in the RECU section is entered, the segment properties
can be viewed in the PRINT file and a plot using Tempest VIEW, as shown below:
Location
RECU Section
Description
The CMPR (compressor) keyword is used to set up a multi-stage compressor. Arguments for CMPR consist of
two records. The first record consists of one required argument and two optional ones which should all be entered
in succession on the same line as the CMPR keyword itself when used. The second record consists of at least three
rows of data for each stage of the compressor. The very final row of data for CMPR must be terminated by a slash
(/) to complete the data entry for CMPR.
Definitions
RECORD 1:
1. Compressor name
2. Number of compressor stages (optional)
• Default: 1
3. Gas or oil surface volume (optional): SGAS or SOIL
• SGAS (default) - gas surface volume
• SOIL - oil surface volume
RECORD 2: (For each stage)
1. Input pressure values (Np)
• Data entry for input pressure values must be terminated by a slash (/).
• Units: psia (Field), bars (Metric)
2. Flow rate values (Nq)
• Units:
– for SGAS - mscf/day (Field), ksm3 /day (Metric)
– for SOIL - stb/day (Field), sm3 /day (Metric)
3. Pressure gain values (Np*Nq)
• Units: psia (Field), bars (Metric)
Notes
• If there are Np pressure values and Nq flow values, then Np*Nq pressure gain values will be expected. The
ordering is that the pressure values change fastest - i.e. the first Np pressure gain values correspond to the
first flow rate values.
Examples
1. CMPR is used to set up a compressor named COMPRES with 2 stages. Each stage of this compressor will
have 2 inflow pressures (Np) and 2 flow rates (Nq) which in turn require 4 (Np*Nq) pressure gain values in
total.
CMPR COMPRES 2
1000 2000 / inflow pressures for stage 1
0 1000 / flow rates for stage 1
20 30 -- pressure gains for the two pressures, flow rate 1, stage 1
30 50 / pressure gains for the two pressures, flow rate 2, stage 1
Location
Description
The CNAC sub-keyword of WELL is used to provide a simple means of completing a well in a numerical aquifer.
As a sub-keyword of WELL , CNAC can only be used after the WELL keyword is specified.
If the Events format is used to enter well data, please use the CNAC event to enter completions in numerical
aquifers.
Definitions
Notes
Examples
1. CNAC is used to complete wells P-1 and P-2 in the 4th and 3rd cells of aquifers A1 and A2 respectively. See
aqnw.dat for complete example:
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
Location
RECU Section
Description
The DEBJ keyword is used to request output of the reservoir Jacobian (including any non-neighbour connections)
to the debug file for specific cells of the global or local grids. This keyword is directly followed by eight required
arguments which describe which grid cells are output.
Typically this keyword will only used for debugging by MORE developers. See also the DEBR keyword to print
the reservoir residual.
Definitions
Notes
• DEBJ for the global grid only may be also controlled by setting items 1 and 6 to 10 in the DEBU keyword.
Example
1. Using DEBJ to report the Jacobian both in the part of the global grid and within the local grid MyLGR1:
DEBJ 2 3 8 10 10 10 3 global
DEBJ 1 3 2 5 3 3 3 MyLGR1
Location
RECU Section
Description
The DEBJ keyword is used to request output of the reservoir residual (including any non-neighbour connections)
to the debug file for specific cells of the global or local grids. This keyword is directly followed by eight required
arguments which describe which grid cells are output.
Typically this keyword will only used for debugging by MORE developers. See also the DEBJ keyword to print
the reservoir Jacobian.
Definitions
Notes
• DEBR for the global grid only may be also controlled by setting items 1 and 6 to 10 in the DEBU keyword.
Example
1. Using DEBR to report the residual both in the part of the global grid and within the local grid MyLGR1:
DEBR 2 3 8 10 10 10 3 global
DEBR 1 3 2 5 3 3 3 MyLGR1
Location
RECU Section
Description
The DEBW keyword is used to request debug output from the well solver. This keyword is directly followed by a
list of well names.
Typically this keyword will only used for debugging by MORE developers.
Notes
• Debug output for all wells may also be set using item 5 in the DEBU keyword.
• The well list is reset by each subsequent use of DEBW.
Example
1. DEBW is used to create debug output for individual wells PROD1, PROD2 and INJE1.
Location
RECU Section
Description
The DELT keyword is used to set the next time step size for running a simulation. DELT consists of one optional
argument which should be entered in succession on the same line as the DELT keyword itself if used.
Definitions
Notes
Examples
1. DELT is used to set a time step of 5 days. See DELT.dat for complete example:
DELT 5
Location
Description
The DENS keyword is used to request that density data be output by MORE, either to the .out file or to ECLIPSE
solution files.
Syntax
Notes
• To output 3D arrays for visualisation through Tempest VIEW, use STOR rather than DENS.
• Printed output of cell values to the .out file is not normally useful except for small cases
Example
Location
RECU Section
Description
The DTMX keyword is used to set maximum time step controls. Arguments for DTMX consists of two records.
The first record consists of two optional arguments that should be entered in succession on the same line as the
DTMX keyword itself if used. The second record consists of a table with up to seven columns of values that reflect
the time step controls. Of the seven columns, only the first three columns of values are required while the last four
columns are optional. Following the final row of DTMX data in the table, a solitary slash (/) on a separate line is
required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Units of time for time when the supplied values become effective (Column 1 in Record 2) (optional) -
DAYS, MONT, YEAR, or DATE
• DAYS - time given in days
• MONT - time given in months
• YEAR - time given in years
• DATE (default) - time given as a date
2. Units of time for maximum allowed timestep size (Column 2 of Record 2) (optional): DAYS, MONT, or
YEAR
• DAYS (default) - time given in days
• MONT - time given in months
• YEAR - time given in years
RECORD 2:
1. Time when the supplied values become effective
• Default: 0
2. Maximum allowed timestep size
• Default: 32 days
3. Target saturation change
• Default: 0.15
4. CFL tolerance, used in ADAP and IMPES modes (optional)
• Default: 1.0
5. Maximum allowed time step after a well control change (optional)
• Default: 10 days
6. Target pressure change (optional)
• Default: 100 atm
7. Target temperature change (optional)
• Default: 50o F
Notes
• CFL stands for Courant-Friedrich-Lewy factor. It is essentially the throughput ratio: the ratio of the amount
of a fluid flowing through a grid cell in a time step to the amount in the grid cell. IMPES runs become
unstable when the throughput ratio is greater than 1, but instability can sometimes be seen for lower values
of throughput value, depending on the shape of the relative permeability curves and the capillary pres-
sures. Reducing the CFL tolerance is often a good move in an IMPES run if time steps are chopping or if
oscillations in the GOR or water cut are seen.
• Recommended alternatives to 2nd , 3rd , 5th , 6th and 7th arguments of the 2nd record are TSMX, TSDS, TSWM,
TSDP and TSDT events respectively.
Examples
1. DTMX is used to specify a maximum time step of one month and a maximum saturation change of 5% for
the first two years; at 2 years, the limits are changed to a maximum time step of two months and a maximum
saturation change of 10%.
Location
RECU Section
Description
The EFIL keyword is used to include a file which contains event data. EFIL has a single argument, the name of
the file which should be included. The file name must be entered on a separate line below the EFIL keyword.
Definitions
Notes
• ETAB provides an alternative means of specifying the entering the events without using an include file.
• The input format of event data is defined by the EFOR keyword.
• The units convention for events may be set using EUNI.
• EVENTS EXACT may be used to require that simulation steps match event times exactly.
• Please also see the ETAB, EFOR, and EUNI keywords for more information regarding the input of well
event data for a simulation.
• For a detailed description of the events that can be used in MORE, please see the Working with Events and
the List of Events sections.
Examples
1. EFIL is used to include a ‘wells.event’ file, which includes well event data, in a simulation.
The event data is contained in the file ‘wells.event’ and must follow the format specified with the EFOR
keyword. The file ‘wells.event’ could look as follows
Location
RECU Section
Description
The EFOR keyword is used to provide the format definition for well event data entered using either ETAB or EFIL.
EFOR can have up to nine arguments, of which one is required. These arguments should all be entered on the
same line as the EFOR keyword.
Definitions
1. WELL (optional) - its presence indicates that the name of the event owner will be specified on each record.
2. Date format
• The date format specification consists of the components DD, MM/MMM, YYYY and a delimiter
– DD implies an integer in the range 1 to 31
– MM implies an integer in the range 1 to 12
– MMM implies a three-letter month name: {jan, feb,...,dec}
– YYYY implies a four digit year
– Any non-alphanumeric character can serve as a delimiter
• The date format is specified by writing the three components in the desired order with the chosen
delimiter in-between. Moreover, the date format must be enclosed in quotes.
Example: if the format is ‘MMM:DD:YYYY’, MORE expects event dates of the form Jan:01:1947.
• An alternative date format is DAYS, in which case event times have to be specified in days from the
initial date of the simulation.
3. Optional column identification data associated with events PERF and SQUE: MDL, MDU, RAD, DIAM,
SKIN, and/or MULT
• MDL - first measured depth
• MDU - second measured depth
• RAD - radius
• DIAM - diameter
• SKIN - skin value
• MULT - multiplier; this is the zonal multiplier used in the well index calculation (see Well Index
Calculations in the MORE Technical Reference for more information)
Notes
• The EFOR keyword can be used several times in the same run. When MORE reads an ETAB or EFIL the
format settings of the last preceding EFOR keyword will be applied.
• If the EFOR keyword has not been used, MORE assumes a default format equivalent to
• The optional column identification data affects only the event data of the events PERF and SQUE.
It is possible to specify a different order of the event data, for example, by
EFOR 'DD/MMM/YYYY' MDL MULT MDU SKIN RAD
In event tables following this EFOR statement, MORE assumes the order MDL, MULT, MDU, SKIN, RAD
when reading event data of PERF and SQUE.
It is also possible to reduce the event data to be specified, for example, with
EFOR 'DD/MMM/YYYY' MDL MDU SKIN
In event tables following this EFOR statement, MORE assumes that PERF or SQUE events provide only
MDL, MDU, and SKIN (in this order) as event data while the missing event data is to be defaulted. Note
that there are no default values for MDL and MDU.
Moreover, if the optional column data is left out, e.g.
EFOR 'DD.MMM.YYYY'
only the date format for the following event tables is adjusted. For the optional column data the last re-
ordered/reduced format (or the default format, if it has never been modified) is assumed.
• For a detailed description of the events that can be used in MORE, please see the Events Overview and the
List of Events sections.
• Please also see the EFIL, ETAB, and EUNI keywords for more information regarding the input of well event
data for a simulation.
Examples
The following four examples demonstrate the use of the WELL option and different date formats. Apart from that
all four examples are equivalent.
1. EFOR is used to specify a date format of DD/MMM/YYYY. The option WELL says that any record starts
with the owner of the event. In this example the well w_1 and the group g_1 are owners.
EFOR WELL 'DD/MMM/YYYY' MDL MDU DIAM MULT SKIN
ETAB
w_1 01/Jan/1975 PERF 0 1000 0.05 1.0 0.0
w_1 01/Jan/1975 OPT 750
g_1 01/Jan/1975 GOPT 1000
ENDE
2. In this example the option WELL is not present. This indicates that owner names have to be put on separate
lines. Moreover, each line with an owner name on it starts a block and all the events of this block belong to
that owner. Here, the events PERF and OPT are in the same block and belong to owner w_1.
EFOR 'DD/MMM/YYYY' MDL MDU DIAM MULT SKIN
ETAB
w_1
01/Jan/1975 PERF 0 1000 0.05 1.0 0.0
01/Jan/1975 OPT 750
g_1
01/Jan/1975 GOPT 1000
ENDE
4. An alternative format for specifying event times is DAYS. When using this format event-times have to be
specified in days from the initial date, not as calendar dates. Assuming the 1st Jan 1975 as the initial date,
the example below is equivalent to others.
Location
RECU Section
Description
The ETAB keyword is used to place event data directly into the RECU section. The data input for an ETAB
follows the same rules as the data input in a file included by the EFIL keyword. In contrast to EFIL, which is
terminated by end-of-file, an ETAB is terminated by using the ENDE keyword.
Definitions
n/a
Notes
Examples
1. In this example, ETAB is used to provide in-line production data for the WINJ injection well and the WPRD
production well. EFOR is used to define the format of the ETAB data and the well name will be entered on
each line in this case.
ETAB
ENDE
Alternatively, another format we can use to enter the same data as shown above is demonstrated below.
Here, we will just specify the well names once and all relevant event data is listed below it. Thus, in this
case, EFOR and ETAB will take the following format:
ETAB
WINJ
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 2000.00
01/Jan/2000 BHPT 1.00000e+04
WPRD
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
ENDE
Location
RECU Section
Description
The ENDE keyword terminates an event table specified with the keyword ETAB. There are no arguments for
ENDE.
Definitions
n/a
Notes
• Please also see the EFIL, ETAB, and EUNI, and EFOR keywords for more information regarding the input
of well event data for a simulation.
• For a detailed description of the events that can be used in MORE, please see the Events Overview section.
Examples
1. ENDE is used to terminate the reading of event data from the current ETAB table.
ETAB
P-1 2010:JLY:01 LTAB TAB1
P-1 2010:JLY:02 PROD
P-1 2010:JLY:20 THPT 1200
P-1 2010:JLY:20 OPT 5000
ENDE
Location
Description
The ENDH keyword is used to indicate the end of historical well data that has been input using the HTAB keyword.
ENDH must be paired with HTAB to terminate that table when the well names in the table are entered on separate
lines. There are no arguments for ENDH.
Definitions
n/a
Notes
n/a
Examples
1. HTAB is used to provide the historical oil, gas, and water rates and bottom hole pressures for two wells,
WPRDA and WPRDB. HUNI is also used to define the units of the rates and HFOR is used to define the
format of the historical data given in HTAB . In this case, the well names are entered on separate lines so
ENDH must be used to terminate the table.
HUNI
stb/day Mscf/day 2* psia
HTAB
WPRDA
0 1172 934.5 3.68 2300
35 1238 982.9 4.73 2294
74 1194 952.2 7.23 2292
110 1182 944.0 6.41 2286
128 1195 957.6 5.21 2281
175 1172 930.4 8.41 2279
WPRDB
0 823 617.3 2.35 2299
30 827 613.9 5.49 2287
65 796 587.2 3.23 2285
93 784 556.1 1.14 2283
120 788 521.0 2.52 2281
170 751 515.7 0.21 2279
ENDH
This historical tabulated data will then automatically appear in the Wells tab of the results in Tempest View
for plotting. When this data is plotted with the calculated data, we can produce the following plots:
Location
RECU Section
Description
The ENDO keyword is used to terminate the definition of an Operation (OPER). There are no required arguments
for ENDO.
Definitions
n/a
Notes
• See also the OPER keyword and the Operations in the MORE Technical Reference for more information
regarding using Operations in Tempest.
Examples
OPERATION changeWellRate
ENDO
Location
Description
The ENDT keyword is used to indicate the end of welltrack data that has been input using the TTAB keyword.
ENDT must always be paired with TTAB when it is used. There are no arguments for ENDT.
Definitions
n/a
Notes
n/a
Examples
1. TTAB and ENDT are used to enter in well tracks for wells WP_A and WP_B.
TTAB
WP_A
-- X Y Z MD
23613.4 764512.0 100.0 100.0
23620.7 764839.0 4300.0 4300.0
23731.2 765193.0 5000.0 5300.0
23782.7 765921.0 5000.0 6300.0
WP_B
-- X Y Z MD
24107.3 764313.0 0.0 0.0
24098.2 764298.0 4510.0 4510.0
24052.7 765213.0 5056.0 5457.0
24008.9 765103.0 5065.0 6437.0
ENDT
2. TTAB and ENDT are used to enter in well tracks for wells I-1 and P-1 with the NORO option.
TTAB NORO
I-1
-- X Y Z MD
2500.00 3500.00 5000.00 5000.00
2500.00 3500.00 6000.00 6000.00
P-1
-- X Y Z MD
7500.00 9500.00 5000.00 5000.00
7500.00 9500.00 6000.00 6000.00
ENDT
3. TTAB and ENDT are used to define the welltrack for a horizontal well, P_HORIZ.
TTAB
P_HORIZ
-- X Y Z MD
1500.000 500.000 5000.00 5000.00
1500.000 500.000 5400.00 5400.00
8500.000 500.000 5400.00 6000.00
ENDT
Note: Perforations for the well were specified using the PERF event.
Location
RECU Section
Description
The EUNI keyword is used to define the units for the events PERF and SQUE. EUNI has two required arguments
which must both be entered on the same line as the EUNI keyword.
Definitions
Notes
• The EUNI keyword can be used several times in the same run. When MORE reads an ETAB or EFIL the
unit settings of the last preceding EUNI keyword will be applied.
• If EUNI is not used, the units are either FEET or METRES depending on the unit system of the simulation,
see keyword UNIT.
• See also the ETAB, EFIL, and EFOR keywords for more information regarding the input of well event data
for a simulation.
• See the Working with Events section for a detailed description of the events that can be used in MORE.
Examples
1. EUNI is used to specify that measured depths will be entered in METRES and well diameters will be entered
in CMS.
ETAB
P-104 01/01/2001 PROD
P-104 01/01/2001 PERF 4354 4386 10
ENDE
Location
RECU Section
Description
The ESOL keyword is used to write out ECLIPSE format restart files. The content of the ECLIPSE files will
follow that of the MORE file system files. The syntax for ESOL is very similar to that for the ARRA keyword.
Arguments for ESOL consist of two records. The first record consists of three optional arguments which should
be written on the same line as the ESOL keyword itself. The second record consists of an array of time or date
outputs written on the line below the ESOL keyword. This record must be present when the ESOL keyword is
used. The data entry for this record must be terminated with a slash (/). On a line below this, any number of ESOL
subkeywords, which include GENE with the PRES option, or the SATU, DENS, VISC, RELK, MOBI subkeywords,
can be used to request additional array data output.
Definitions
RECORD 1:
1. Units of incremental time: DAYS, MONT, YEAR, or DATE
• DAYS - times are given in days
• MONT - times are given in months
• YEAR - times are given in years
• DATE (default) - times are given in date format
2. EQUA (optional) - output at equal time intervals (only a single incremental time is read)
3. END (optional) - output at the end of the simulation (in addition to other times)
RECORD 2:
1. Array of times (or dates) for data output
• If the EQUA argument is used in Record One, only a single incremental time should be supplied;
otherwise, specific output times should be specified.
• This list must be terminated with a slash (/).
Notes
• Please also see EGRI for writing grid and init data and ESUM for summary rate data. The file will have the
same root as the input file unless the ECLI option on the OPEN keyword has been set.
• The subkeywords which can be used with ESOL include:
– GENE PRES
– SATU OIL, WATR, and/or GAS
– VISC OIL, WATR, and/or GAS
– DENS OIL, WATR, and/or GAS
– RELK OIL, WATR, and/or GAS
– MOBI OIL, WATR, and/or GAS
Examples
1. ESOL is used to specify data output in years and an array of times is given to indicate the specific time
intervals between output. GENE is also used to request that a pressure map be printed into the ECLIPSE
restart file that is created. SATU is also used with OIL to request that oil saturations be output to the
ECLIPSE .unrst file also.
ESOL YEAR
0 2 4 6 8 10 12 14 /
GENE PRES
SATU OIL
When this example is run, the user should see a .unrst file created in the directory where the example file
is located, for use in ECLIPSE.
2. This example is similar to the one above except that the EQUA argument will be added to the ESOL keyword
to specify that array data will be output at equal time intervals of 2 years. In this case, only one value is
needed for the array of time intervals. See ESOL.dat for complete example:
When this example is run, the user should see a .unrst file created in the directory where the example file
is located, for use in ECLIPSE.
Location
RECU Section
Description
The ESUM keyword is used to write out ECLIPSE format summary files. When ESUM is present in a simulation,
MORE will create a .smspec file for use in ECLIPSE. This file can be found in the same folder where the MORE
dataset is saved.
Arguments for ESUM consist of two records. The first record consists of one required argument and a variety of
optional ones. The summary package options that can be used with ESUM are further described below. All of
these arguments should be entered on the same line as the ESUM keyword itself when used.
On a separate line underneath ESUM, the second record consists of a series of the times or dates should be listed.
This list must be terminated by a slash (/).
Definitions
RECORD 1:
1. EQUA (optional)- specifies ECLIPSE format summary data to be written out at equal time intervals
2. Units of the time interval: DAY, MONTH, YEAR, or DATE
• DAY - time interval in days
• MONTH - time interval in months
• YEAR - time interval in years
• DATE - time interval given in dates; must be in the form of day month year, where year may have 2 or
4 digits (1900 will be added in the 2 digit case.)
3. END (optional) - if END is specified, a final ESUM record will always be written at the end of the run
4. Summary package options (optional) - any number of these packages may be requested
• STAT - statistics for the field
• STAG - statistics for the groups
• FIELD - quantities for the whole field
• GROUP - quantities for groups of wells
• WELL - quantities for wells
• BRAN - quantities for the branches
• SLIM - special output for slim-tube studies
• GROSS - gross well rates
• OIL - oil injection rates
• REGIONS - regional data (see notes section below for more information)
• ITER - details of simulation iterations
• RRF - region-to-region flows
• NETW - network model output
• RECY - recycle quantities
Notes
• The contents of the summary packages above as the same as for the RATE keyword, with one extra package,
the REGIONS package. If the REGIONS package is requested, and fluid-in-place region numbers have been
specified using the FIPN keyword, then the following items will be added to the summary file data for each
region index:
Mnemonic Description
rpr Hydrocarbon volume pressure average
rprp Pore volume weighted average pressure
rprd Datum-corrected hydrocarbon volume pressure average
rprpd Datum-corrected pore volume weighted average pressure
rrrv Pore volume at reference conditions
rrpv Pore volume at reservoir conditions
rhpv Hydrocarbon pore volume at reservoir conditions
roip Oil in place
roipl Oil in place in liquid phase
roipg Oil in place in gas phase
rgip Gas in place
rgipl Gas in place in liquid phase
rgipg Gas in place in gas phase
ragip Adsorbed gas in place
rfgip Free gas in place
rwip Water in place
rosat Oil saturation
rgsat Gas saturation
rwsat Water saturation
rovis Oil viscosity
rgvis Gas viscosity
rwvis Water viscosity
roden Oil density
rgden Gas density
rwden Water density
rppo Oil potential
rppg Gas potential
rppw Water potential
ropr Oil production rate
rgpr Gas production rate
rwpr Water production rate
rlpr Liquid production rate
roir Oil injection rate
rgir Gas injection rate
rwir Water injection rate
ropt Oil production total
rgpt Gas production total
rwpt Water production total
Continued on next page
• Please also see EGRI for writing grid and initial data and ESOL for recurrent data. The file will have the
same root as the input file unless the ECLI option on the OPEN keyword has been set.
Examples
1. ESUM is used to request that ECLIPSE summary data be written out at equal 6 month intervals with the
FIELD and WELLS summary package data. See ESUM.dat for complete example:
2. ESUM is used to request that ECLIPSE summary data be written out at 1, 10, 1000, and 2000 days.
3. ESUM is used to request that ECLIPSE summary data be written out at specific dates with the REGIONS
summary package.
Location
Description
The FLIP keyword is used to request output reporting for one or more fluid-in- place region. FLIP is a subkeyword
of ARRA and it must be used with ARRA to obtain FLIP output in the .out file.
Arguments for FLIP consist of a list of fluid-in-place regions which have been defined in the GRID section using
the DEFI keyword. This list of fluid-in-place regions should be written on the same line as the FLIP keyword
itself when used.
Definitions
Notes
• FLIP region arrays are defined in the GRID section (see DEFI and array).
Examples
1. FLIP is used to output fluid in place and material balances for the fluid in place regions ABCD and EFGH
in the MORE .out file at yearly intervals as specified by the ARRA keyword. See FLIP.dat for complete
example:
Fluid-in-place data for each fluid-in-place region specified under FLIP will then be output to the MORE
.out file which can be viewed under the Print tab of the results in Tempest View. This data will appear in
the FLIP section of the Print file at yearly intervals, an example of which is shown below:
FLIP===========================================================================
Fluid in place at 1 Jan 2002, 731.0 days
===============================================================================
Location
Description
The FREQ keyword is used to specify the frequency of the summary output as defined by the RATE keyword.
FREQ must always be used with RATE.
Arguments for FREQ consists of three optional arguments which should all be entered on the same line as the
FREQ keyword itself if used.
Definitions
1. Frequency of the summary output to the standard output unit (the runtime monitor)
• Minimum: 0
• Default: 0
2. Frequency of the summary output to the alternate output unit (the .out file)
• Minimum: 0
• Default: 0
3. Frequency of the well and group output to the RATE file for post processing (the .rat file)
• Minimum: 0
• Default: 1000000 (or previous value)
Notes
• A positive frequency is treated as a multiple of the incremental time between rate reports specified by the
first argument of the RATE keyword.
• A frequency of 0 will cause output at every time step.
• A frequency of -1 will cause output at each ARRA time (when restarts are written).
• A frequency of -2 will cause output only after each RATE card is read.
• Calculation of historical cumulatives in Tempest View:
In some cases, historical rate values but no historical cumulatives are supplied to MORE. In this case,
Tempest View will calculate the historical cumulatives (wopt etc.) using the rate values reported by MORE
in the rate file. The time spacing of these values is controlled by the RATE and FREQ keywords.
If the true historical rates change more frequently than the reported rates, then the cumulatives reported in
Tempest View may be inaccurate. For example, historical rates may be specified in HTAB weekly, but the
simulator will output monthly and the cumulative values will be based on the instantaneous rate values at
the end of each month.
If this is a concern, users should calculate the historical cumulatives outside of the simulator and supply the
values alongside the rate values in HTAB.
• The output of data to the .out file is controlled by the GENE keyword. Packages specified in the RATE
keyword control output to the files used by Tempest View.
Examples
1. FREQ is used with RATE to specify that summary output be written to the standard output unit (the runtime
monitor) at one month intervals, to the alternate unit (the .out file) at 3 month intervals, and to the RATE
file for post processing at 6 month intervals. See FREQ_1.dat for complete example:
RATE 1 MONTH
FREQ 1 3 6
In the standard output, we will then see summary output at one month intervals:
And in the .out file, we will see output at three month intervals:
Finally, for the RATE file, we will see all 2D data being plotted every six months. For example, when we
plot the bottom hole pressure for a producer well, we will see data points every six months, as shown below:
2. In this example, FREQ is used with RATE to specify that summary output be written to the standard output
unit (the runtime monitor) at every time step, to the alternate output unit (the .out file) at one month
intervals, and to the RATE file for post processing at each ARRA time, which will be every year in this case.
See FREQ_2.dat for complete example:
RATE 1 MONTH
FREQ 0 1 -1
In the standard output, we will then see summary output at every time step:
And in the .out file, we will see output at one month intervals:
And as the last argument of FREQ is set to -1 so that the rate file output matches the one year time intervals
specified by ARRA, we will see all 2D data being plotted every year, as shown below:
3. FREQ is used with RATE to specify that summary output be written to all output units only after each RATE
card is read. See FREQ_3.dat for complete example:
RATE 1 MONTH
FREQ -2 -2 -2
In the standard output, we will then only see summary output at the point after the RATE card is read:
Finally, for the RATE file, we will see all 2D data being plotted at the point after the RATE card is read.
For example, when we plot the bottom hole pressure for a producer well, we will see only one data point to
indicate the point after the RATE card has been read, as shown below:
Location
RECU Section
Description
The GCOM keyword sets up a limit so that if pipeline pressure falls below a given value, or if oil or gas flow rate
is too low, then a compressor (defined by the CMPR keyword) will be switched on or have another remedial action
taken. GCOM consists of at least five required arguments which should all be entered in succession on the same
line as the GCOM keyword itself when used.
Definitions
1. Group name
2. Limit type: PIN, POUT, OIL, or GAS
• PIN - inlet pressure
• POUT - outlet pressure
• OIL - oil flow rate
• GAS - gas flow rate
3. Limit value
4. Limit action: COMP, PUMP, LIFT, or ALQS
• COMP - use compressor table
• PUMP - use pipeline pump table (set up with PLPU)
• LIFT - use artificial lift table
• ALQS - use well artificial lift values
5. Action details:
• For COMP - compressor name
• For PUMP - pipeline pump name
• For LIFT - lift table name
• For ALQS - ALQ shift & maximum number of shifts
Notes
• Note that, unlike other production limits such as those imposed by GLIM, GCOM always sets a MINIMUM
limit, i.e. they trigger if the pressure or rate is too low. There is currently no option to impose GCOM limits
as maximum or hold limits.
• For more information regarding the use of the limit actions COMP, PUMP, LIFT, and ALQS, please see
please see the CMPR, PLPU, LIFT, or ALQ keywords, respectively.
• A recommended alternative to this keyword is GCOM event.
Examples
1. GCOM is used to request up to two ALQ increments of 200 if the gas rate of group DC falls below 120000
ksm3/day.
10.26. GCOM - Set Up Action to be Taken if Group Pipeline Limit Cannot be Met 857
Tempest MORE Help, Release 8.1
Location
Description
The GENE keyword is used to request specific data to be output by MORE. GENE is a subkeyword of ARRA and
it must be used with ARRA in order to obtain recurrent data for 3D visualisation. GENE is also used to control the
data that is written out to the .out file in MORE.
Any number of optional arguments can be used with GENE and they all must be listed on the same line as the
GENE keyword itself in any order. Each option will produce different data output in the MORE .out file which
can be directly viewed under the Print tab of the results in Tempest View.
Definitions
Notes
• For the X_NN, Y_NN, and Z_NN arguments, the NN should be replaced with a number indicated the NNth
component when used. For example, X_02, Y_02, and Z_02 would request the output of the oil phase, gas
phase, and total hydrocarbon mole fractions of the second component, respectively. X_11 would request
the output of the oil phase mole fraction for the 11th component, and so on. Please see Example #2 below
for more information.
• For large runs, printed array maps in the output file may be difficult to read and use a lot of disk space. In
these cases, using REST with GENE and viewing the results using Tempest View may be best.
• All of the arrays that can be output for 3D visualisation using STOR can also used with the GENE keyword
to be written to the .out file or ECLIPSE esol files if desired.
• The pressure reported is the oil phase pressure in a run which contains oil, the gas pressure in a gas-water
run, and the phase pressure in a run with just one phase present.
Examples
1. GENE is used with REST, FLIP, PRES, and CMPL to request the output of recurrent data to Tempest View
for 3D visualisation, and fluids in place data and pressure maps to the .out file of MORE. See GENE.dat
for complete example:
Taking a look at the .out file which can be seen in the Print tab of the results, we will see the following
data output at each time step:
FIPA======================================================================================
Fluid in place at 2 Jan 2000, 1.0 days
==========================================================================================
...
MAP=======================================================================================
Map of PRES at 2 Jan 2000, 1.0 days
==========================================================================================
Layer iz= 1
ix= : 1 2 3 4 5 6 7
,→ 8 9 10
Row iy= 1: 2335.1 2334.5 2334.2 2334.1 2334.1 2334.1 2334.0
,→2334.0 2334.0 2334.0
Row iy= 2: 2334.5 2334.3 2334.2 2334.1 2334.1 2334.1 2334.0
,→2334.0 2334.0 2334.0
Row iy= 3: 2334.2 2334.2 2334.1 2334.1 2334.1 2334.1 2334.0
,→2334.0 2334.0 2334.0
Row iy= 4: 2334.1 2334.1 2334.1 2334.1 2334.1 2334.0 2334.0
,→2334.0 2334.0 2334.0
Row iy= 5: 2334.1 2334.1 2334.1 2334.1 2334.0 2334.0 2334.0
,→2334.0 2334.0 2334.0
Row iy= 6: 2334.1 2334.1 2334.1 2334.0 2334.0 2334.0 2334.0
,→2334.0 2334.0 2334.0
Row iy= 7: 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0
,→2334.0 2334.0 2333.9
Row iy= 8: 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0
,→2334.0 2333.9 2333.7
Row iy= 9: 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0
,→2333.9 2333.6 2332.9
Row iy= 10: 2334.0 2334.0 2334.0 2334.0 2334.0 2334.0 2333.9
,→2333.7 2332.9 2328.9
...
Layer iz= 5
ix= : 1 2 3 4 5 6 7
,→ 8 9 10
Row iy= 1: 2551.2 2548.5 2547.9 2547.8 2547.7 2547.7 2547.7
,→2547.7 2547.7 2547.7
Row iy= 2: 2548.5 2548.0 2547.8 2547.7 2547.7 2547.7 2547.7
,→2547.7 2547.7 2547.7
Row iy= 3: 2547.9 2547.8 2547.8 2547.7 2547.7 2547.7 2547.7
,→2547.7 2547.7 2547.7
Row iy= 4: 2547.8 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7
,→2547.7 2547.7 2547.7
Row iy= 5: 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7
,→2547.7 2547.7 2547.7
Row iy= 6: 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7
,→2547.7 2547.7 2547.7
Row iy= 7: 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7
,→2547.7 2547.6 2547.6
Row iy= 8: 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7
,→2547.6 2547.5 2547.4
Row iy= 9: 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7 2547.6
,→2547.5 2547.3 2547.0
Row iy= 10: 2547.7 2547.7 2547.7 2547.7 2547.7 2547.7 2547.6
,→2547.4 2547.0 2546.1
As seen above, fluid in place data will be output in the .out file, along with pressure map data for every
cell of the 10x10x5 grid used in this example.
2. GENE is used with X_05, Y_05, and Z_05 to output the oil phase, gas phase, and total hydrocarbon mole
fractions of the 5th component in a compositional simulation. See GENE_EOS.dat for complete example:
Taking a look at the .out file which can be seen in the Print tab of the results, we will see the maps of the oil
phase, gas phase, and total hydrocarbon mole fractions output at every time step:
MAP=======================================================================================
Map of X_05 at 1 Jan 2001, 366.0 days
==========================================================================================
Layer iz= 1
All values are 0.040
Layer iz= 2
All values are 0.040
Layer iz= 3
All values are 0.040
Layer iz= 4
All values are 0.040
Layer iz= 5
All values are 0.040
==========================================================================================
MAP=======================================================================================
Map of Y_05 at 1 Jan 2001, 366.0 days
==========================================================================================
Layer iz= 1
All values are 0.040
Layer iz= 2
All values are 0.040
Layer iz= 3
All values are 0.040
Layer iz= 4
All values are 0.040
Layer iz= 5
All values are 0.040
==========================================================================================
MAP=======================================================================================
Map of Z_05 at 1 Jan 2001, 366.0 days
==========================================================================================
Layer iz= 1
All values are 0.040
Layer iz= 2
All values are 0.040
Layer iz= 3
All values are 0.040
Layer iz= 4
All values are 0.040
Layer iz= 5
All values are 0.040
==========================================================================================
As the REST option was also used with GENE, these mole fractions will also appear in the Recurrent tab
of Tempest View for 3D visualisation.
3. GENE used with WELL and TARG to output the well targets, rates, and totals. For injectors, the first and
secondary targets, which apply to WAG, are shown. Targets in brackets (..) are inactive during the interval
of the WAG sequence in which the targets are reported.
WELL======================================================================================
Well summary at 2 Sep 2014, 1.0 days
==========================================================================================
Well status:
Well Prod Open Control Pbhp Pthp Oil Pre Gas
,→ Water Liquid Resv GOR WCT dref
Gas lift Alq
Name Inje Shut Mode rate rate
,→ rate rate rate rate
psia psia psia stb/day mscf/
,→day stb/day stb/day rb/day mscf/stb feet mscf/day
---------------- ---- ---- --------- -------- -------- -------- -------- ------
,→-- -------- -------- -------- -------- -------- -------- -------- --------
WINJ Inje Open Gas rate 2336.4 2336.4 2334.1 0.0 800.
,→346 0.0 0.0 1007.7 0.0 0.0 5100.0 0.0 0.0
WPROD Prod Open Gas rate 2329.5 2329.5 2332.8 1000.4 800.
,→346 0.002 1000.4 1553.8 0.800 0.002E-3 5100.0 0.0 0.0
---------------- ---- ---- --------- -------- -------- -------- -------- ------
,→-- -------- -------- -------- -------- -------- -------- -------- --------
Well totals:
Well Open Oil Gas Water Liquid Resv Oil
,→Gas Water Resv
Name shut prod prod prod prod prod inj
,→inj inj inj
total total total total total total
,→total total total
mstb mmscf mstb mstb mrb mstb
,→mmscf mstb mrb
---------------- ---- -------- -------- -------- -------- -------- -------- ---
,→----- -------- --------
Location
RECU Section
Description
Set the fuel requirement for a group. Both a fraction of the group gas production and a gas rate may be set.
Syntax
Definitions
1. Group name
2. The fuel rate for the group
• Units: (mscf/day) (Field) or (ksm:sup:3/day) (Metric)
• Default:0
3. The fuel fraction for the group
• Default: 0
Notes
Example
Location
RECU Section
Description
The GLIF keyword is used to request that the amount of artificial lift be set to optimise the production of a group.
GLIF consists of two required arguments and two optional ones which should all be entered in succession on the
same line as the GLIF keyword itself when used.
Definitions
1. Group name
2. The maximum amount of lift that may be applied to the group (liftmax)
• Units: mscf/day (Field) or (ksm:sup:3/day (Metric)
• Default: 0
3. The minimum oil rate improvement per unit lift gas added (optional)
• Default: 1.0E-6
4. The size of gas rate packet to be added at each step of the optimisation (optional)
• Units: mscf/day (Field) or ksm3 /day (Metric)
• Default: 0.05*liftmax
Notes
• The distribution of the lift gas is done by adding packets of gas to the wells in the group, giving the packet
to the well which shows the greatest improvement in oil production rate. This continues until the maximum
gas lift is reached, or adding more gas lift becomes unproductive. If there are a large number of wells in a
group, the default packet size may be too large, and it may be best to enter a smaller packet size. As the
packet is the unit in which lift gas is added, it should be small compared to the typical amount of lift gas
expected per well.
• To be used with GLIF, wells in the group to which lift is applied must have an associated TUBI table with a
range of artificial lift (ALQ) values or have a lift table with some gas rate dependence. The ALQ value will
be used in preference if both are present.
• If the ALQ is used, then ALQ will be regarded as the lift gas rate; otherwise, the gas rate at which the well
is operated will be displaced from the actual production rate by the lift gas rate. GLIF will request that the
lift operating point for each well which meets these conditions is set by partitioning the available lift gas for
the group. The available lift gas is split into packets, each being assigned to the well which shows the best
oil rate improvement. Group lift values from zero to liftmax will be tested, increasing the lift value within
this range until the well is operating on a bhp or rate target.
• If a well has been shut because the well could not operate at the current thp target, GLIF will attempt to
open the well by adding lift.
• If the third argument of the GLIF keyword (the minimum oil rate improvement per unit lift gas added) has
been specified, lift will only be added whilst the improvement, measured d(Qo)/d(Lift), is greater than the
value entered for this argument.
• A recommended alternative to this keyword is GLIF event.
Examples
1. GLIF is used to request that the maximum amount of lift that may be applied to the group G100 is 1000
with a minimum oil rate improvement per unit lift gas added of 1.34.
Location
Description
The GLIM keyword is used to define group production limits. GLIM consists of three required arguments and up
to two optional ones, which are further defined in the Definitions section below. All of these arguments should be
entered in succession on the same line as the GLIM keyword itself when used.
Definitions
• DRIL - a producer from the drilling queue belonging to this group will be drilled to meet a group
minimum rate limit violation
• GRED - redefine one or more wells in the group when limit violation occurs
• SHUT - shut all the wells in the group when limit violation occurs
• STOP - the simulation will be stopped as a result of the group limit violation (MAX and MIN cases
only)
Notes
• A group can only have one limit value for a given pair of limit type and action (e.g. OIL & STIM). If a new
limit value is specified for an existing pair (e.g. OIL & STIM), it replaces the existing value. If a new limit
value is specified for a new pair (e.g. OIL & DRIL), then it will define an additional limit.
• There is a difference between the treatment of MAX/MIN and HOLD limits:
– The MAX and MIN limits define events at which actions are taken
– The HOLD option defines a continuous adjustment of the group to meet a rate target
• In case of DRIL actions the wells to be drilled must be put in the drill queue. Setting up the drill queue is
described in the well management section of the Tempest MORE Technical Reference.
• A recommended alternative to this keyword is GPLIM event.
Examples
1. GLIM is used to specify a target oil rate limit of 10000 for all production wells. If the rate exceeds this limit,
the production wells will be controlled to meet the group target. This action is specified using the HOLD
option.
2. GLIM is used to specify a minimum oil rate of 4000. If this limit event occurs, a well will be activated from
the drilling queue. This action is specified using the DRIL option.
3. GLIM is used to stop a run is the group oil rate falls below 100.
Location
RECU Section
Definitions
Description
GLOP sets non-default intervals for well and group gas lift optimisations.
Example
Location
RECU Section
Description
Use the new group control algorithm (introduced in MORE 6.7). This only limits wells controlled by a given
group limit when that group actually starts acting. This produces a sharp transition when the active limit changes
- for example from a group oil limit to a group liquid limit.
GNEW is generally more precise than the previous method (selected with GOLD). With GNEW the wells are not
backed off as the group limit is approached.
Syntax
GNEW
Location
RECU Section
Description
Use the old group control algorithm, rather than the new one introduced in MORE 6.7, selected using GNEW.
GNEW only limits wells controlled by a given group limit when that group actually starts acting. This produces a
sharp transition when the active limit changes - for example from a group oil limit to a group liquid limit.
GNEW is generally more precise than the previous method. With GOLD the wells are backed off as the group
limit is approached, so that the imposition of the group limit does not cause such a sharp change in the well rates.
Syntax
GOLD
Location
RECU Section
Description
The GPAL keyword is used to specify a group artificial lift quantity for the pipe attached to a group. This only
has an effect when the group has a pipe condition which has been characterised using a table with an artificial lift
variable. Please see the TUBI keyword for details of entering tubing tables with artificial lift.
GPAL consists of two required arguments which should both be entered in succession on the same line as the
GPAL keyword itself when used.
Definitions
1. Group name
2. Group artificial lift quantity
Notes
• See the Network Model section of the MORE Technical Reference For more information regarding network
models.
• A recommended alternative to this keyword is GPAL event.
Examples
1. GPAL is used to set a group artificial lift quantity of 39.0 to the group GROUP_SOUTH.
Location
RECU Section
Description
The GPIP (group pipe) keyword is used to attach a named pipe to a group of wells. This keyword enables the
pressure drop between one network node group and the parent network node group to be calculated. GPIP consists
of two required arguments and one optional one. These arguments should all be entered on the same line as the
GPIP keyword itself when used.
Definitions
1. Group name
2. Pipe name
3. OFF (optional) - stops further pipe calculations for the group
Notes
Examples
The OFF option is then introduced to stop further pipe calculations for the group, as follows:
Location
RECU Section
Description
The GPMI (group pressure minimum) keyword is used to set the minimum pressure for a node in the network.
If the node pressure attempts to fall below this value, it will be held at the specified pressure and so increase the
pressure of nodes further down the network. This will have the effect of limiting the production of thp controlled
wells.
GPMI consists of two required arguments and one optional one which should all be entered on the same line as
the GPMI keyword itself when used.
Definitions
1. Group name
2. Minimum pressure value
• Units: psi (Field), bars (Metric)
3. OFF (optional) - specifies that the minimum pressure will no longer be used
Notes
Examples
1. GPMI is used to set a minimum pressure of 1200 for the network node group GrA14
The OFF option is then introduced to specify that the minimum pressure for the group will no longer be
used, as follows:
Location
RECU Section
Description
The GPUM (group pump) keyword is used to attach a pipeline pump to a group. This enables a rate-dependent
pressure difference to be added to the current network group pressure to match the pipe inflow pressure. GPUM
consists of two required arguments and one optional one, all of which should be entered on the same line as the
GPUM keyword itself when used.
Definitions
1. Group name
2. Pump name
3. OFF (optional) - stops further pipeline pump calculations for the group
Notes
Examples
The OFF option is then introduced to stop further pipeline pump calculations for the group (effectively
remove the pump), as follows:
Location
Description
The GPRI keyword is used to set prioritisation group limits. When a group prioritisation limit is operating, wells
in the group will be closed in priority order to meet the group target. The lowest priority wells will be closed first.
The well priority is determined by the coefficients set by PRIO. GPRI consists of three required arguments which
should be entered in succession on the same line as the GPRI keyword itself when used.
Definitions
Notes
Examples
Location
Description
The GRED keyword is used to redefine wells in the group limit events defined by GLIM or ILIM. GRED consists
of five required arguments which should all be entered in succession on the same line as the GRED keyword itself
when used.
Definitions
1. Well name in the group where the specified limit event may occur
2. Fluid name
• For PRODUCERS: the name of the well’s primary rate limit -
– OIL - oil production rate
– GAS - gas production rate
– WAT - water production rate
– LIQU - liquid production rate
– Note: This must be a rate limit and not a ratio limit, such as the gas-oil ratio (GOR) or the water-oil
ratio (WOR).
• For INJECTORS:
– GAS - gas injection rate
– WAT - water injection rate
3. Maximum rate for injector or production
• Units:
– For Liquid - stb/day (Field), sm3 /day (Metric)
– For Gas - Mscf/day (Field), km3 /day (Metric)
4. Minimum producing pressure or maximum injection pressure
• Note: These pressures correspond to the datum (DATU) depths
• Units: psi (Field), bar (Metric)
5. BHP or a Tubing head pressure table name
• BHP (the initial value) (default)- to indicate the limiting pressure is a bottom hole pressure (corrected
to datum depth (see: DATU)
• Tubing head pressure table name - the name of a tubing head pressure (see TUBI) to indicate that the
limiting pressure is a tubing head pressure
Notes
• The rate and pressure targets are actually delimited by the “=” signs, but a comment may appear to the left
of these signs to improve readability.
• Recommended alternatives to this keyword are GPRED and GIRED events.
Examples
1. GRED is used to redefine the limits set by GLIM for wells in the PTRN group. When the WOR from the
group of wells in PTRN exceeds 99.0, the injection wells K12 and L11 are set to 1000 stb/day while L13,
M10, M12, and M11 are shut.
Location
RECU Section
Description
The GROU keyword is used to define a well group. GROU consists of two required arguments and one optional
argument which should all be entered in succession on the same line as the keyword itself when used.
Definitions
Notes
• FRAC may be set more than once on a line, and applies to all following wells upto the next FRAC argument.
Please see example below for more information.
• The group fraction is reset to 1 at the start of a new GROU keyword.
• The first 16 characters of the group name must be uniquely defined.
Examples
1. GROU is used to assign six wells (well I-1, I-2, I-3, P-1, P-2, and P-3) to a group named PILOT. The wells
contribute totally to the group. See GROU_Pilot.dat for complete example:
GROU PILOT I-1 I-2 I-3 P-1 P-2 P-3
The PILOT group will then appear under the Group tab of the results for 2D plotting.
Given the following oil production targets for each production well:
• P-1 = 1000 stb/day
• P-2 = 300 stb/day
Note: Injection targets will also behave in the same fashion; however, just an example of the production
rates are shown in this example.
2. In this example, we add a new well, P-4, to the PILOT group in example 1 after 5 years of simulation. Well
P-4 will be specified to contribute half of its flow capacity to the group by using the FRAC option before it
is listed in the GROU keyword. See GROU_Pilot2.dat for complete example:
READ 5 YEARS
Given that P-4 has an oil production target of 400 stb/day, a total flow of 2200 stb/day would be expected
if P-4 was allowed to contribute all of its flow to the PILOT group. However, as the FRAC 0.5 option was
used, P-4 will only contribute half of its flow ( 400/2 = 200 stb/day) to the oil production rate of the PILOT
group, and when we plot this in 2D, we should see the oil production rate for the PILOT group increase
from 1800 stb/day to 2000 stb/day after 5 years due to the addition of the P-4 well:
3. In this example, we will change the well fractions for the wells in the PILOT group in example 2 to contribute
different fractions of well flow rates to the group. Wells P-1 and P-4 will contribute 60%, P-2 will contribute
20%, and P-3 will continue to contribute all of its flow rate to the group flow rate after 5 years of simulation.
This can all be specified using the GROU keyword as follows. See GROU_Pilot3.dat for complete example:
READ 5 YEARS
GROU PILOT FRAC 0.60 P-1 P-4 FRAC 0.20 P-2 FRAC 1 P-3
Given the oil production targets in Example #1, after 5 years of simulation, we have:
• P-1 and P-4 contributing a total of 1000*0.60 = 600 stb/day and 400*0.60 = 240 stb/day of oil, respec-
tively, to the PILOT group.
• P-2 contributing a total of 300*0.20 = 60 stb/day of oil
• P-3 contributing total of 500*1.00 = 500 stb/day of oil
This should give us a total oil production rate of 600+240+60+500 = 1400 stb/day for the PILOT group.
When we plot the oil production rate for PILOT with the oil production rate for the individual wells, we
observe that the results are in line with the description above.
Location
RECU Section
Description
Set the gas sales requirement for a group. Both a fraction of the group gas production and a gas rate may be set.
Syntax
Definitions
1. Group name
2. The sales rate for the group
• Units: mscf/day (Field) or ksm3 /day (Metric)
• Default: 0
3. The sales fraction for the group
• Default: 0
Notes
Example
--Take 50% of the field gas production as sales gas; the remainder is available
,→for reinjection etc.
Location
RECU Section
Description
The GSET keyword is used to construct a set of groups which can be used in group keywords to represent more
than one group.
Syntax
Definitions
Notes
1. The name of the group set must not be the name of an already existing well, group, or well set.
2. The name of the group set must not contain *, i.e. a wild card character.
3. The operations + and clear will create the group set if it does not exist already.
Location
RECU Section
Description
The GSPC (Group Separator Conditions) keyword is used to attach a separator to a group. GSPC consists of two
required arguments, which should be entered on the same line as the GSPC keyword itself when used.
Definitions
1. Group name
2. Separator conditions name
Notes
Examples
GSPC is used to attach separator conditions to the group AAA and so to the well P-1.
SEPA XXX EOS ZFAC / Reset first stage separator pressure for separator XXX
60 14.7 /
/
GSPC AAA XXX -- At 5 years, reset separator conditions for wells in group AAA to
,→XXX
Location
Description
The GTAR keyword is used to define how group targets are treated in the simulation. GTAR takes up to two
optional arguments entered on the same line as the keyword itself.
Definitions
Notes
• The default second argument is CCF unless the improved well fracture model has been used, in which case
the POT method is used irrespective of the second argument.
• Without the net option the actual group rate will be lower if non-unity efficiency factors are present. Gener-
ally, NET is recommended for most runs.
• POT requires an extra well potential calculation to define the group guide rates. This treatment of guide
rates is compatible with the default treatment in ECLIPSE.
Examples
1. GTAR is used to specify that group targets are to be calculated based on CCF totals and applied in terms of
gross rates. See GTAR.dat for complete example:
GTAR GROSS CCF
GROU XX WPRD1 WPRD2
Note that well WPRD1 and WPRD2 have the same perforation length but the former has a CCF multiplier
of 3 while the latter has that of 1. Hence it is expected that the production targets of the two wells will also
be set in the same ratio of 3 to 1 to satisfy the group production target of 2000 stb/day. This is confirmed by
looking at the targets under the well summary section in the PRINT file:
WELL======================================================================================
Well summary at 1 Jan 2001, 366.0 days
==========================================================================================
Well targets: active and (inactive) targets set for next timestep - "G"
,→indicates target set by group
However, because the well WPRD1 operates with an efficiency factor of 50%, the well produces at 50% of
the target value.
2. This example is the same as the first example except that GTAR GROSS CCF is replaced with GTAR NET
CCF. See GTAR_NET_CCF.dat for complete example:
GTAR NET CCF
Well targets: active and (inactive) targets set for next timestep - "G"
,→indicates target set by group
Note that higher production targets are set in such a way that when efficiency factors are taken into account,
the original guide rates based on CCF totals are applied in order to meet the group production target of 2000
stb/day.
3. GTAR is used to specify that group targets are to be applied in gross terms and guide rates are calculated
using well potentials. See GTAR_POT.dat for complete example:
GTAR POT
GROU XX WPRD1 WPRD2
Plotting the oil potential production rates for the two wells shows that the potential for WPRD1 is approxi-
mately 6 times that of WPRD2.
Hence, it is also expected that the production targets of the two wells will also be set in the same ratio of 6
to 1 to satisfy the group production target of 10 stb/day:
WELL======================================================================================
Well summary at 1 Jan 2001, 366.0 days
==========================================================================================
Well targets: active and (inactive) targets set for next timestep - "G"
,→indicates target set by group
4. This example is the same as the third example except that GTAR POT is replaced with GTAR CCF. See
GTAR_CCF.dat for complete example:
GTAR CCF
Note that well WPRD1 and WPRD2 have the same perforation length but the former has a CCF multiplier
of 3 while the latter has that of 1. Hence, it is expected that the production targets are set in the same ratio
rather than the potentials (ratio 6 to 1) calculated in the third example.
WELL======================================================================================
Well summary at 1 Jan 2001, 366.0 days
==========================================================================================
Well targets: active and (inactive) targets set for next timestep - "G"
,→indicates target set by group
Location
RECU Section
Description
Set the required tolerance for a group limit. An example would be if a group is to be cut back if a water limit is
exceeded. If the limit is exceeded by more than the allowed tolerance, the step is repeated. A maximum number
of step repeats may be specified - after that the simulation will proceed.
Syntax
Definitions
1. Group name
2. Fractional tolerance allowed
• Default: unlimited
3. Number of repeated steps allowed to achieve required tolerance
• Default: 1
Notes
Example
--Repeat step if a group limit is exceeded by more than 1%. Allow up to 2 repeated
,→steps.
GTOL 0.01 2
Location
Description
The GUGR keyword is used to set a group guide rate for a specific group. A group guide rate enables a parent-
group target to be shared between groups in the same parent group. GUGR consists of two required arguments
and one optional one. Arguments must be entered in succession on the same line as the GUGR keyword.
Definitions
Notes
• The PARE keyword may be used to make a group a member (sub-group) of a parent group. Otherwise,
groups have ALL as their parent group.
• If a group contains only wells the WUGR keyword has to be used on the contained wells to share the group’s
targets.
• If a group contains wells and sub-groups a mix of WUGR and GUGR keywords may be used. See example
below.
• A recommended alternative to this keyword is GUGR event.
Examples
1. In this example we have two groups AAA and BBB with common parent group ALL. GUGR is used to
assign guide rates to groups AAA and BBB. The guide rates in turn will be used by MORE to derive targets
for groups AAA and BBB from the targets of their parent ALL. See GUGR_keyword.dat for complete
example:
-- set up groups
GROUP AAA WINJ1 WINJ2 WPRD3 -- AAA contains 2 injectors and 1 producer,
,→parent group is ALL
GROUP BBB WPRD1 WPRD2 WINJ3 -- BBB contains 1 injector and 2 producers,
,→parent group is ALL
GUGR BBB 25 PROD -- producers in BBB get a share of 25% of the production
,→targets of parent ALL
GUGR BBB 75 INJE -- injectors in BBB get a share of 75% of the injection
,→targets of parent ALL
-- set up production and injection targets for parent group ALL using events
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GOPT 3500
01/Jan/2000 GWIT 3500
ENDE
2. Alternatively, GUGR events (c.f. Tempest MORE events) can be used to specify group guide rates. The
following set up is equivalent to that of above example. See GUGR_event.dat for complete example:
-- set up groups
GROUP AAA WINJ1 WINJ2 WPRD3 -- AAA contains 2 injectors and 1 producer,
,→parent group is ALL
GROUP BBB WPRD1 WPRD2 WINJ3 -- BBB contains 1 injector and 2 producers,
,→parent group is ALL
EFOR 'dd/mmm/yyyy'
ETAB
-- set up production and injection targets for parent group ALL using events
ALL
01/Jan/2000 GOPT 3500
01/Jan/2000 GWIT 3500
ENDE
3. In this example two wells (P-3 and P-4) and one group (GXX) have a common parent in group GG. Group
GXX contains wells P-1 and P-2. GG is set an oil production target rate of 1000 stb/d. Since group GG
contains wells and a sub-group, we have to use a mix of WUGR and GUGR keywords/events to specify the
respective guide rates. See GUGR_WUGR.dat for complete example:
GXX
01/Jan/2000 GOPT 1000
01/Jan/2000 GUGR 10 MODE PROD
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
P-2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
P-3
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
01/Jan/2000 WUGR 40
P-4
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
01/Jan/2000 WUGR 50
ENDE
Location
RECU Section
Description
The HADD keyword allows data in one or more historical rates tables to be added to a base table. Only matching
columns are added, and only within the time range of the base table.
The basic method is to sample the tables being added at the time points in the base table, interpolating in the tables
being added, and incrementing the values in the base tables. So the addition process does not add extra lines to
the base table.
Syntax
Definitions
1. BaseTable - name of historical rate table to be added to. This will usually have the name of the well that
uses this table.
2. AddTable1 - name of first table to be added
3. AddTable2 - name of second table to be added
Notes
Up to 99 tables can be added. However, the normal case will be to add one table.
The addition operations are done during the pre-simulation scan of the RECU section data. So all HADD opera-
tions in the RECU section will be performed before the actual simulation starts.
Examples
Location
RECU Section
Description
The HFIL (Historical File) keyword is used to direct MORE to read a file containing historical well data. The
series of wells and their time based historical data should be specified in one or more include files, which are
read by the HFIL keyword. HFIL should be preceded by the HFOR keyword which defines the format for the
subsequent set of well and time based data contained within the include file(s).
The HFIL keyword consists of one optional and one required argument. The optional argument should be entered
on the same line as the HFIL keyword itself if it is used. HFIL’s required argument is the name of the historical
well data file which should be entered on a separate line below the HFIL keyword.
Definitions
1. EXACT (optional) - used when it is required that simulation steps match historical rate times exactly.
• See Example #2 for more information.
2. Name of the file containing the historical well data
Notes
• The HOURS argument may be used to add a specified number of hours to the time of line of data in HFIL.
Please see Example #4 below for more information.
• Entered data does not need to be in chronological order. If data for the same time as a previous entry is
found, the later data is used and a warning message issued.
• A well can be instructed to use its historical tabulated quantity using special targets such as HOIL when
specified using the WELL keyword. Please see Example #4 in the WELL keyword page for more informa-
tion. Alternatively, if the events format is being used to specify a well’s activities, the HOIL, HGAS, HWAT,
HLIQ, HRES, HBHP, HTHP, and HWEF historical well target events can be used to instruct a well to use
its historical tabulated quantity given in HFIL or HTAB .
• Historical data is assumed to be forward looking. That is, a QOIL value of 1000 stb/day given on 1st January
2000 means that the rate changes to 1000 stb/day on 1st January 2000 and continues to be 1000 stb/day after
this date (until the next user value).
• Historical data for a well may be entered over several HTAB tables: internally, MORE will generate the
union of all the user tables. If, for a given time, there is some missing data for a particular quantity, MORE
will take the nearest user value prior to this time.
• Evaluation of historical data outside the table limits: For historical rates, cumulatives, and pressures at times
before the first table time MORE assumes a value of zero. For the historical WEFA at times before the first
table time MORE assumes a value of one. For historical rates, pressures and WEFA at times after the last
table time MORE uses the value at the last table time. Historical cumulatives grow linearly after the last
table time.
• The HTAB keyword provides an alternative means of specifying the historical data by allowing historical
data to be placed in-line directly after the HTAB keyword.
• Please also see the HUNI and HFOR keywords for more information regarding the input of historical data
into a dataset.
Examples
1. HFIL is used to include a histAB.hst file which contains historical oil, gas, and water rates and bottom
hole pressures for two wells, WPRDA and WPRDB. HUNI is also used to define the units of the rates and
pressures and HFOR is used to define the format of the historical data in the histAB.hst file.
Using HUNI , the units for the liquid rates (oil (QOIL) and water (QWAT)) and the gas rates (QGAS) are to
be in stb/day and Mscf/day, respectively, while the cumulative totals for liquids and gases are assigned their
default values and pressure (BHP) is given the units of psia.
Input to include this historical data would appear as follows. See HFIL_Ex1.dat for complete example:
HUNI
stb/day Mscf/day 2* psia
HFIL
'histAB.hst'
This historical tabulated data will then automatically appear in the Wells tab of the results in Tempest View
for plotting. When this data is plotted with the calculated data, we can produce the following plots:
2. Now, adding on to Example #1 above, if it is required that the simulation steps match historical rate
times exactly, the EXACT option may be used as an argument with HFIL, as shown below. See
HFIL_Ex1_EXACT.dat for complete example:
HUNI
stb/day Mscf/day 2* psia
HFIL EXACT
'histAB.hst'
As a result, both historical and calculated data points will be output on the exact day that is specified in the
historical file, as shown below:
Please note that when HFIL is used with EXACT, it is recommended that the FREQ keyword have its third
argument as 0 to ensure that data will be output to the RATE file for post processing at every time step. For
example, FREQ was specified as follows for this example:
FREQ
0 0 0
3. In this example, HFIL is used to include a hist_well.hst file which contains historical cumulative
liquid (oil and water) rates, and well efficiency factors. HUNI is also used to define the units of the rates
and HFOR is used to define the format of the historical data in the hist_well.hst file.
Using HUNI, the liquid and gas rates are assigned their default units while the cumulative liquid totals ((oil
(COIL) and water (CWAT)) are assigned units of ksm3. And finally, the units for cumulative gas totals and
pressures are assigned their default values as well.
Input to include this historical data would appear as follows:
HUNI
2* ksm3 2*
HFIL
'hist_well.hst'
Note the absence of the WELL argument from the HFOR keyword in this example and its effect on the
format of the table in the hist_well.hst file.
4. In this example, HFIL is used to include a hist_P1_HOURS.hst file that includes historical oil rates at
given hours. Thus, the HOURS argument is used in the to add a specified number of hours to the time for
each line of data in the hist_P1_HOURS.hst file. Historical well rates are set every 3 hours on the 1st
of January for the oil rate of well P-1, as shown below:
HFIL
'hist_P1_HOURS.hst'
P-1
01/Jan/2000 2183
01/Jan/2000 2180 HOURS 3
01/Jan/2000 2181 HOURS 6
01/Jan/2000 2182 HOURS 9
01/Jan/2000 2185 HOURS 12
01/Jan/2000 2187 HOURS 15
01/Jan/2000 2184 HOURS 18
When plotted with the calculated oil production rate, we will obtain the following plot:
Please note that for this example, the output frequencies on the RATE and ARRA keywords in the RECU
section will need to be updated to plot hourly rate data. To obtain the graph we have plotted above, we
have modified the RATE and ARRA keywords to output data every 3 hours by changing the incremental time
between reports to be 0.125 days, as follows:
10.49 HFOR - Column Headers and Units for Well Historical Data
Location
RECU Section
Description
The HFOR keyword is used to specify the column headers and units for historical well data provided by HFIL
or HTAB. HFOR consists of one optional argument and at least two required ones which should all be entered in
succession on the same line as the HFOR keyword itself when used.
Definitions
1. WELL: (optional)
The WELL argument is used to indicate that a well name will be provided for each line of data in the
historical data file or table
The WELL argument is optional. If present, it implies that both the well name and the time will be specified
on each line of historical data. If not present, the well name will be written to a line by itself to be followed
by a block of data whose first item on each line will be the time.
See Examples #1 and #3 below for more information.
2. Time Definition:
The date format may be specified as a date using the following components:
DD MM/MMM YYYY
The three components can come in any order. DD must be an integer in the range 1-31. If MM is specified,
it must be an integer in the range 1-12. If MMM is specified, it must be the set {Jan, Feb,...,Dec}. YYYY
is the year specification.
The three components should be written with an optional delimiter between them and the composite string
should be enclosed in quotes. If a delimiter is specified, the same delimiter will be required in the subsequent
date formats.
For example, if the following data format was specified:
'MMM:DD:YYYY'
Jan:01:1947
Feb:01:1947
where the ”:” (colon) has been specified and used as the delimiter.
Times may also be entered as days by specifying DAYS as the date format. For example:
HTAB
WPRD 0 1000
WPRD 200 2000
WPRD 300 1500
ENDH
10.49. HFOR - Column Headers and Units for Well Historical Data 903
Tempest MORE Help, Release 8.1
5. Additional options:
Normally, well rates are entered in gross terms (not including well efficiency factors) and well totals in net
terms (including well efficiency factors). However, it is possible to override this convention with the extra
arguments:
• QGRO - Specify well rates in gross terms (default)
• QNET - Specify well rates in net terms
• CGRO - Specify well totals in gross terms (would be unusual)
• CNET - Specify well totals in net terms (default)
Notes
• The usual gas and water rates, QGAS and QWAT, can be used for producers or injectors. For an injector,
QGAS is assumed to be an injection rate, and for a producer, QGAS is assumed to be a production rate. This
can be awkward if a well switches from injection to production, so the alternative QGIN and QWIN may
be used to set up a table of injection rates. In that case, the QGAS rates will only be used for production
periods and the QGIN rates will only be used for injection periods. Injection rates will always be obtained
from QGIN, QWIN, CGIN, and CWIN if these are present.
• Different include files could be preceded by different HFOR cards. For example, the production wells may
be included in one file where they have oil, water and gas rates recorded, whereas the (gas) injection wells
could be written to a separate file where only gas rates are defined.
• Please also see the HUNI, HFIL, and HTAB keywords for more information regarding the input of historical
data into a dataset.
• A well can be instructed to use its historical tabulated quantity using special targets such as HOIL when
specified using the WELL keyword; see Example #4 in the WELL keyword page for more information.
Alternatively, if the events format is being used to specify a well’s activities, the HOIL, HGAS, HWAT,
HLIQ, HRES, HBHP, HTHP, and HWEF historical well target events can be used to instruct a well to use
its historical tabulated quantity given in HFIL or HTAB.
• The well reservoir pressure quantity, WRP, is for reporting and comparison purposes only. No operating
target can be set for this historical quantity.
Examples
1. HFIL is used to include a histAB.hst file which contains historical oil, gas, and water rates and bottom
hole pressures for two wells, WPRDA and WPRDB. HUNI is also used to define the units of the rates and
pressures and HFOR is used to define the format of the historical data in the histAB.hst file. In this
case, the WELL option is used in HFOR to indicate that a well name will be defined on all records in the
histAB.hst file.
Using HUNI, the units for the liquid rates (oil (QOIL) and water (QWAT)) and the gas rates (QGAS) are to
be in stb/day and Mscf/day, respectively, while the cumulative totals for liquids and gases are assigned their
default values and pressure (BHP) is given the units of psia.
Input to include this historical data would appear as follows. See HFIL_Ex1.dat for complete example:
HUNI
stb/day Mscf/day 2* psia
HFIL
'histAB.hst'
Alternatively, if we had defined HFOR without the WELL option, the histAB.hst file would have a
different format where the well name will only be input once before its historical data is entered. Thus, in
this case, the example above would look like the following:
HUNI
stb/day Mscf/day 2* psia
HFIL
'histAB.hst'
WPRDA
0 1172 934.5 3.68 2300
35 1238 982.9 4.73 2294
74 1194 952.2 7.23 2292
10.49. HFOR - Column Headers and Units for Well Historical Data 905
Tempest MORE Help, Release 8.1
WPRDB
0 823 617.3 2.35 2299
30 827 613.9 5.49 2287
65 796 587.2 3.23 2285
93 784 556.1 1.14 2283
120 788 521.0 2.52 2281
170 751 515.7 0.21 2279
In both cases, this historical tabulated data will then automatically appear in the Wells tab of the results in
Tempest View for plotting for either case. When this data is plotted with the calculated data, we can produce
the following plots:
2. HTAB is used to provide historical cumulative liquid (oil and water) rates, and well efficiency factors for
two wells, WP1 and WP2. HUNI is also used to define the units of the rates and HFORis used to define the
format of the historical data in the HTAB table.
Using HUNI, the liquid and gas rates are assigned their default units while the cumulative liquid totals (oil
(COIL) and water (CWAT)) are assigned units of ksm3 . And finally, the units for cumulative gas totals and
pressures are assigned their default values as well.
Input to include this historical data would appear as follows:
HUNI
2* ksm3 2*
HTAB
WP1
01.01.1982 247 18 0.55
02.01.1982 643 62 0.52
03.01.1982 997 102 0.52
04.01.1982 1347 143 0.51
WP2
01.01.1982 333 87 0.56
02.01.1982 1002 242 0.54
03.01.1982 1447 347 0.52
ENDH
Please note that as HFOR does not use the WELL option in this example, this signifies that a well’s name
will only be specified once before its historical data input in HTAB. As a result, in order to terminate the
data entry for HTAB, the ENDH keyword must be used.
Alternatively, if HFOR did use the WELL option, one would need to include the well name on each line of
data in HTAB and data entry for HTAB would need to be terminated with a slash (/) instead of ENDH, as
shown below:
HUNI
2* ksm3 2*
HTAB
WP1 01.01.1982 247 18 0.55
WP1 02.01.1982 643 62 0.52
WP1 03.01.1982 997 102 0.52
WP1 04.01.1982 1347 143 0.51
3. In the example below, HFOR is used with the HOLE and a hole value of -999 to assign a default value
to the quantity it appears for. The hole value acts in the same fashion as a 1* default value does. See
HFOR_HOLE.dat for complete example:
HUNI
stb/day Mscf/day 2* psia
HTAB
WPRDA 0 1200
WPRDA 35 1*
WPRDA 74 1185
WPRDA 110 1170
WPRDA 128 -999
WPRDA 175 -999
/
With the use of 1* for the QOIL value at 35 days, the oil rate will remain at its previously assigned value of
1200 stb/day by default. Similarly, with the use of -999 for the QOIL value at 128 and 175 days, this acts
in the same fashion as 1* and the oil rate will remain at its previously assigned value of 1170 stb/day from
110 days on, as shown in the plot below.
10.49. HFOR - Column Headers and Units for Well Historical Data 907
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
The HUNI (Historical Units) keyword is used to define the units for the values specified using HFIL or HTAB for
the historical well quantities defined by HFOR. HUNI consists of up to five arguments which should be entered in
succession on a separate line below the HUNI keyword itself when used.
Definitions
Notes
• Each quantity specified in HFOR must have its units defined by HUNI. For example, liquid rates in stb/day
or sm3 /day, cumulative gas totals in MMscf or ksm3 etc. Bottom hole pressures can be defined via BHP and
its corresponding unit if required.
• Please also see the HFIL, HFOR, and HTAB keywords for more information regarding the input of historical
data into a dataset.
• A well can be instructed to use its historical tabulated quantity using special targets such as HOIL when
specified using the WELL keyword. Please see Example #4 in the WELL keyword for more information.
Alternatively, if the events format is being used to specify a well’s activities, the HOIL, HGAS, HWAT,
HLIQ, HRES, HBHP, HTHP, and HWEF historical well target events can be used to instruct a well to use
its historical tabulated quantity given in HFIL or HTAB.
Examples
1. HFIL is used to include a histAB.hst file which contains historical oil, gas, and water rates and bottom
hole pressures for two wells, WPRDA and WPRDB. HFOR is used to define the format of the historical data
in the histab.dat file and HUNI is used to define the units for quantities given in the histAB.hst
file.
Using HUNI, the units for the liquid rates (oil (QOIL) and water (QWAT)) and the gas rates (QGAS) are to
be in stb/day and Mscf/day, respectively, while the cumulative totals for liquids and gases are assigned their
default values and pressure (BHP) is given the units of psia.
Input to include this historical data would appear as follows. See HFIL_Ex1.dat for complete example:
HUNI
stb/day Mscf/day 2* psia
HFIL
'histAB.hst'
This historical tabulated data will then automatically appear in the Wells tab of the results in Tempest View
for plotting. When this data is plotted with the calculated data, we can produce the following plots:
2. HTAB is used to provide historical cumulative liquid (oil and water) rates, and well efficiency factors for
two wells, WP1 and WP2. HUNI is also used to define the units of the rates and pressure and HFOR is used
to define the format of the historical data in the HTAB table.
Using HUNI, the liquid and gas rates are assigned their default units while the cumulative liquid totals (oil
(COIL) and water (CWAT)) are assigned units of ksm3 . And finally, the units for cumulative gas totals and
pressures are assigned their default values as well.
Input to include this historical data would appear as follows:
HUNI
2* ksm3 2*
HTAB
WP1
01.01.1982 247 18 0.55
02.01.1982 643 62 0.52
03.01.1982 997 102 0.52
04.01.1982 1347 143 0.51
WP2
01.01.1982 333 87 0.56
02.01.1982 1002 242 0.54
03.01.1982 1447 347 0.52
ENDH
Location
RECU Section
Description
The HTAB keyword is used to place historical well data directly in-line into the RECU section. Rather than place
historical well data in a separate file, it can be placed directly after the HTAB keyword.
Arguments for HTAB consist of two records. The first record consists of one optional argument which should be
entered on the same line as the HTAB keyword itself if used. The second record consists a table of historical well
data values whose columns are defined by the HFOR keyword. When the well names are entered on each line, the
table is terminated using a solitary slash (/) located on its own separate line directly following the last historical
well data value entry. When the well names are entered on separate lines, the data entry for HTAB is terminated
using the ENDH keyword. Otherwise, the format of HTAB is the same as that of HFIL.
Definitions
RECORD 1:
1. EXACT (optional) - used when it is required that simulation steps match historical rate times exactly.
RECORD 2:
1. Table of historical well data - columns as defined by HFOR
Notes
• The HOURS argument may be used to add a specified number of hours to the time of line of HTAB data.
Please see Example #3 below for more information.
• Entered data does not need to be in chronological order. If data for the same time as a previous entry is
found, the later data is used and a warning message issued.
• A well can be instructed to use its historical tabulated quantity using special targets such as HOIL when
specified using the WELL keyword. Please see Example #4 in the WELL keyword for more information.
Alternatively, if the events format is being used to specify a well’s activities, the HOIL, HGAS, HWAT,
HLIQ, HRES, HBHP, HTHP, and HWEF historical well target events can be used to instruct a well to use
its historical tabulated quantity given in HFIL or HTAB.
• Historical data is assumed to be forward looking. That is, a QOIL value of 1000 stb/day given on 1st January
2000 means that the rate changes to 1000 stb/day on 1st January 2000 and continues to be 1000 stb/day after
this date (until the next user value).
• Historical data for a well may be entered over several HTAB tables: internally, MORE will generate the
union of all the user tables. If, for a given time, there is some missing data for a particular quantity, MORE
will take the nearest user value prior to this time.
• Evaluation of historical data outside the table limits: For historical rates, cumulatives, and pressures at times
before the first table time MORE assumes a value of zero. For the historical WEFA at times before the first
table time MORE assumes a value of one. For historical rates, pressures and WEFA at times after the last
table time MORE uses the value at the last table time. Historical cumulatives grow linearly after the last
table time.
• The HFIL keyword provides an alternative means of specifying the historical data by allowing historical
data to be placed in a separate file.
• Please also see the HUNI and HFIL keywords for more information regarding the input of historical data
into a dataset.
Examples
1. HTAB is used to provide the historical oil, gas, and water rates and bottom hole pressures for two wells,
WPRDA and WPRDB. HUNI is also used to define the units of the rates and HFOR is used to define the
format of the historical data given in HTAB. In this case, the well name is defined on all records and data
entry for HTAB is terminated by a slash (/).
Using HUNI, the units for the liquid rates (oil (QOIL) and water (QWAT)) and the gas rates (QGAS) are to
be in stb/day and Mscf/day, respectively, while the cumulative totals for liquids and gases are assigned their
default values and pressure (BHP) is given the units of psia.
Input to include this historical data would appear as follows:
HUNI
stb/day Mscf/day 2* psia
HTAB
WPRDA 0 1172 934.5 3.68 2300
WPRDA 35 1238 982.9 4.73 2294
WPRDA 74 1194 952.2 7.23 2292
WPRDA 110 1182 944.0 6.41 2286
WPRDA 128 1195 957.6 5.21 2281
WPRDA 175 1172 930.4 8.41 2279
This historical tabulated data will then automatically appear in the Wells tab of the results in Tempest View
for plotting. When this data is plotted with the calculated data, we can produce the following plots:
2. HTAB is used to provide historical cumulative liquid (oil and water) rates, and well efficiency factors for
two wells, WP1 and WP2. HUNI is also used to define the units of the rates and HFOR is used to define the
format of the historical data in the HTAB table.
Using HUNI, the liquid and gas rates are assigned their default units while the cumulative liquid totals (oil
(COIL) and water (CWAT)) are assigned units of ksm3 . And finally, the units for cumulative gas totals and
pressures are assigned their default values as well.
Input to include this historical data would appear as follows:
HUNI
2* ksm3 2*
HTAB
WP1
01.01.1982 247 18 0.55
02.01.1982 643 62 0.52
03.01.1982 997 102 0.52
04.01.1982 1347 143 0.51
WP2
01.01.1982 333 87 0.56
02.01.1982 1002 242 0.54
03.01.1982 1447 347 0.52
ENDH
Please note that due to the format of HFOR used in this example, in order to terminate the data entry for
HTAB, the ENDH keyword needs to be used instead of a slash (/).
3. In this example, HTAB is used with the HOURS argument to add a specified number of hours to the time of
line of HTAB data. Historical well rates are set every 3 hours on the 1st of January for the oil rate of well
P-1, as shown below:
HTAB
P-1
01/Jan/2000 2183
01/Jan/2000 2180 HOURS 3
01/Jan/2000 2181 HOURS 6
01/Jan/2000 2182 HOURS 9
01/Jan/2000 2185 HOURS 12
01/Jan/2000 2187 HOURS 15
01/Jan/2000 2184 HOURS 18
ENDH
When plotted with the calculated oil production rate, we will obtain the following plot:
Please note that for this example, the output frequencies on the RATE and ARRA keywords in the RECU
section will need to be updated to plot hourly rate data. To obtain the graph we have plotted above, we
have modified the RATE and ARRA keywords to output data every 3 hours by changing the incremental time
between reports to be 0.125 days, as follows:
Location
Description
The ILIM keyword is used to define group injection limits. ILIM consists of three required arguments and up to
two optional ones, which are further defined in the Definitions section below. All of these arguments should be
entered in succession on the same line as the ILIM keyword itself when used.
Definitions
Notes
• A group can only have one limit value for a given pair of limit type and action (e.g. GAS & STIM). If a new
limit value is specified for an existing pair (e.g. GAS & STIM), it replaces the existing value. If a new limit
value is specified for a new pair (e.g. WAT & DRIL), then it will define an additional limit.
• There is a difference between the treatment of MAX/MIN and HOLD limits:
– The MAX and MIN limits define events at which actions are taken
– The HOLD option defines a continuous adjustment of the group to meet a rate target
• When a target is applied to a gas, it affects all the gas injectors in a group. When a target is applied to water,
it affects all the water injectors in a group. Note that it is possible for a group to have injection gas and
injection water targets acting simultaneously.
• In case of DRIL actions the wells to be drilled must be put in the drill queue. Setting up the drill queue is
described in the well management section of the Tempest MORE Technical Reference.
• A recommended alternative to this keyword is GILIM event.
Examples
1. ILIM is used to specify a gas injection rate of 50000 into the group GCAP. This rate will be maintained
(as specified by using the HOLD option) as long as the wells in the group have sufficient injection capacity
whilst remaining within their individual well targets and limits.
2. ILIM is used to specify that when the A943 group reaches a minimum water injection rate of 10000, the
injection wells in the group will be stimulated.
3. ILIM is used to specify that when the CW-45 group reaches a maximum water injection rate of 45000, all
of the wells in the group will be shut.
Location
RECU Section
Description
The INVO keyword invokes an operation previously defined using the OPER keyword. For details of how to set
up and use operations see the operations section of the Technical Reference Manual.
The operation is followed by its arguments, all of which should be entered on the same line as the INVO keyword
itself. These depend on the operation definition.
Syntax
Definitions
Notes
• The pre-defined arguments MEXE, DAY, MONTH and YEAR set the maximum number of times an oper-
ator invocation can execute and the interval between execution times in days, months or years.
• The current number of executions of a given operator instance is stored in the automatically defined variable
&NEXE and is preserved across restarts.
• If two operations with MEXE>1 have identical parameters, MORE is unable to distinguish them, which
may lead to unexpected results in restarts. In this case, MORE will give a warning. To avoid problems,
the user should distinguish the two invocations by either re-naming an identical copy of the operation, or
adding a dummy variable to the operation. See Example 2 below.
• A recommended alternative to this keyword is INVO event.
Examples
TIME 1 YEAR
INVO changeWellRate well=P-1 rate=250 id=1 MEXE=2 MONT=1
TIME 2 YEAR
INVO changeWellRate well=P-1 rate=250 id=2 MEXE=2 MONT=1
Location
RECU Section
Description
The IPRL keyword may be used to modify the limits of the inflow performance tables calculated for each well.
IPRL consists of three required arguments, all of which should be entered on the same line as the IPRL keyword
itself when used.
Definitions
1. Well name
2. Type of limit
• Options: minP, maxP, minQoil, maxQoil, minQgas, maxQgas, minQwat, maxQwat
• Units: psi or mscf/day (Field), bars or ksm3 /day (Metric)
3. Limit value
Notes
Examples
1. IPRL is used to request that the IPR table of producer well P-1 uses a lower pressure limit of 70.0 and an
upper pressure limit corresponding to a gas flow rate of 2.0.
Location
RECU Section
Description
The KILL keyword stops a simulation when a timestep reduction occurs. This can be a useful tool for investigating
problem runs, particularly if used with MONI. KILL would not normally be used in production work.
Syntax
KILL Nchop
Definitions
Example
KILL 100
Location
RECU Section
Description
The KMOD keyword is used to modify permeabilities during a simulation. Arguments for KMOD consists two
records. The first record consists of six required arguments and two optional ones which should all be entered
in succession on the same line as the KMOD keyword itself when used. The second record consists of a list of
permeability modifiers which should be entered on a separate line directly below the KMOD keyword.
Definitions
RECORD 1:
1. Lower i-location of box of cells which permeability modification will be applied to
• Default: 1
2. Upper i-location of box of cells which permeability modification will be applied to
• Default: Nx
3. Lower j-location of box of cells which permeability modification will be applied to
• Default: 1
4. Upper j-location of box of cells which permeability modification will be applied to
• Default: Ny
5. Lower k-location of box of cells which permeability modification will be applied to
• Default: 1
6. Upper k-location of box of cells which permeability modification will be applied to
• Default: Nz
7. SCALAR (optional) - used to indicate that one factor is entered and applies to the whole box
8. Name of local grid to apply permeability modifiers (optional)
RECORD 2:
1. List of permeability modifiers
• The factors entered with KMOD are applied to the initial permeabilities and act as multipliers for those
values.
• The number of permeability modifiers in this list must equal the number of cells included in the box
specified by the first 6 arguments in Record 1 above unless the SCALAR option is used, in which case,
only one value is required and it will be applied to the entire box.
Notes
• The index values given in Record 1 apply to global grid cells. Local cell KMOD values are set to the
corresponding global cell values.
• The permeability modification is applied to normal transmissibilities, fault transmissibilities, and well con-
nection factors.
• Using a scalar value of 1 will restore the original permeability values to the grid.
• If a local grid name is entered, the box of cells will apply to that local grid. Otherwise, local grids will
inherit values from the global grid.
Examples
1. In a 10x10x5 grid, KMOD is used to change the permeabilities in a block of cells ranging from (4,8,1) to
(6,10,2) after 2 years of simulation. A total of 18 KMOD values will be required.
READ 2 YEARS
KMOD 4 6 8 10 1 2
0.50 0.65 0.42
0.75 0.94 0.56
0.61 0.88 0.35
0.45 0.42 0.51
0.69 0.78 0.95
0.99 0.85 0.62
A KMOD (“Permeability Modification Factor”) array will then appear in the Recurrent tab of the results for
display in 3D, as shown below:
2. In this example, we will use the same block of cells with KMOD as the example above, but this time, we
will use the optional SCALAR argument to indicate that just one factor will be entered to be applied to the
whole box after 4 years of simulation. We will use a scalar value of 0.80 to reduce the permeability by 20%
with respect to the initial permeability.
READ 4 YEARS
KMOD 4 6 8 10 1 2 SCALAR
0.80
After 6 years of simulation, we then want to restore the original permeability values, and this can be done
by applying a scalar value of 1.0 to the grid block, as follows. See KMOD.dat for complete example:
READ 6 YEARS
KMOD 4 6 8 10 1 2 SCALAR
1.0
Location
Description
The LIMI keyword is used to define a custom well limit. This keyword must appear before any well data that uses
this limit. LIMI consists of two records. The first record consists of one required argument and two optional ones
which should all be entered in succession on the same line as the LIMI keyword itself when used. The second
record consists of a list of coefficients in the constraint equation which should be entered on a separate line below
the LIMI keyword.
Definitions
RECORD 1:
1. Name of the limit
2. Limit constraint (optional): RATI, MIN or MAX
• RATI - limit is a ratio constraint
• MIN - limit is a minimum rate constraint
• MAX (default) - limit is a maximum rate constraint (RATE is an alias for MAX)
3. (used only for RATI) Ratio to liquid rate: GAS, WAT, or OIL
• GAS - ratio is to the gas rate
• WAT - ratio is to the water rate
• OIL (default) - ratio is to the oil rate
RECORD 2:
1. Coefficients in the constraint equation.
Notes
where: i = OIL, GAS, WATR, qi is the volumetric production rate of stream i, r is the stream the ratio is to,
e.g., OIL for GOR.
• There is much less need to use custom limits in MORE 6 as the standard limits (OIL, WAT, LIQ, GAS) can
be used in MIN, MAX, and HOLD modes.
Examples
LIMI is used to set a minimum rate limit named “qomn” with a value of 1.0 for first coefficient to indicate that it
is an oil minimum rate limit. The value of the minimum rate is specified using the WLIM well sub-keyword. The
minimum oil rate is set at 100 stb/day. See LIMI.dat for complete example:
Location
Description
The LSOL keyword is used set linear solver controls. This keyword consists of four optional arguments which
should all be entered in succession on the same line as the keyword itself if used.
Syntax
Definitions
Notes
• The maximum number of linear solver iterations is the same as the number specified in the first argument
(the number of linear solver search directions held by the GMRES solver) of the LSOL keyword
• It is generally best to use the default convergence targets.
• However, if one finds that the linear solver count in the LS column of the runtime output is continually
hitting the maximum default number of iterations (40), as shown below:
• The maximum number of linear solvers recommended for use would be about 120. As the cost of the linear
solver goes like the square of the stack size, it is not worth going much beyond 120.
• If the default linear solver still won’t solve, it is worth trying the multigrid linear solver by introducing the
MGLS and MGVB keywords to the simulation.
• The three options for the Gram-Schmidt orthogonalisation are simply three ways of organising the GM-
RES (Generalised Minimum RESidual) linear solver acceleration. Modified Gram-Schmidt was used in
versions of MORE prior to 7.0. In perfect arithmetic the three methods would be identical. Gram-Schmidt
orthogonalisation involves orthogonalisation of a new search direction against a stack of previous ones.
Each orthogonalisation involves calculation of a coefficient and vector subtraction using that coefficient. In
classical Gram-Schmidt all the coefficients are calculated, then all the subtractions are done. In modified
Gram-Schmidt the coefficient is found and the subtraction done immediately for each stack element. In the
semi-classical case a block of coefficients is found and the subtractions are done for that block. Modified
Gram-Schmidt is slightly more stable, but involves re-reading the new search direction from memory for
every operation. With the semi-classical method, one of the vectors can be kept in cache for all the opera-
tions in a block, and this typically yields a performance gain of 9/16 (for a 8-element block). SCGS is the
default for MORE 7.0.
• A recommended alternative to the 1st and 2nd arguments of this keyword are MXL and CNVL events respec-
tively.
Example
1. LSOL is used to set number of linear solver search directions to 80 for a tough problem (i.e. when the
linear solver count was continually hitting the maximum default number of iterations (40) as seen in the LS
column of the runtime output.)
LSOL 80
10.59 MASS - Force the use of mass variables with the Appleyard
chop
Location
RECU Section
Description
This is a developer keyword which forces the use of mass variables in black-oil runs. It consists of one optional
argument which allows the Appleyard chop to be switched off.
As this is a keyword for program developers, the general user is strongly advised not to use this keyword.
Definitions
Example
MASS
10.59. MASS - Force the use of mass variables with the Appleyard chop 929
Tempest MORE Help, Release 8.1
Location
Description
The MOBI keyword is used to request that mobility data be output by MORE, either to the .out file or to ECLIPSE
solution files.
The mobility of a phase is,
Krp
Mp =
Bp × µp
Where,
• Krp is the phase relative permeability,
• Bp is the phase formation volume factor, and
• µp is the phase viscosity.
Syntax
Notes
• To output 3D arrays for visualisation through Tempest/VIEW, use STOR rather than MOBI.
• Printed output of cell values to the .out file is not normally useful except for small cases
Example
Location
RECU Section
Description
This keyword stops MORE from eliminating the volume balance equation in compositional fully implicit mode.
The keyword is mainly for development purposes - it will generally increase the run-time slightly whilst having
no event on the results.
Example
NOPI
Location
RECU Section
Description
Notes
• Please see the Operations section of the MORE Technical Reference for more information regarding Oper-
ations
• Other keywords associated with Operations include:
– ENDO - end of Operation definition
– INVO - invoke an Operation
• Events associated with Operations include:
– INVO - invoke an Operation
Examples
Location
RECU Section
Description
The PARE keyword is used to define a parent group for a group. PARE consists of two required arguments which
should all be entered in succession on the same line as the PARE keyword itself when used.
Definitions
Notes
Examples
1. PARE is used to assign the groups G_SW and G_SE to the parent group G_South.
Location
Description
The PBAL keyword is used to set production balancing group limits. Production balancing imposes a group
production limit on producers in a group such that a fraction of the injection achieved by the injectors in the same
or another group is produced. PBAL consists of four optional arguments which should all be entered in succession
on the same line as the PBAL keyword itself if used.
Definitions
Notes
Examples
1. PBAL is used to balance production for the group GR1 so that the produced reservoir volume equals the
injected reservoir volume. See PBAL.dat for complete example:
WINJ1
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 1000.00
01/Jan/2000 BHPT 1.00000e+04
WINJ2
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 3000.00
01/Jan/2000 BHPT 1.00000e+04
WPRD1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 1500.00
WPRD2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
ENDE
In this example, the wells in group GR1 have a total water injection rate of 4000 stb/day and a total oil
production rate of 3500 stb/day. With the presence of PBAL, we inject a total of 4000 stb/day of water and
the equivalent produced oil in reservoir volume will be approximately 2705 stb/day. These rates are evident
when the oil production rate and water injection rates are plotted together, as shown below:
If we then change the PBAL production balancing factor to 0.50 so that the produced reservoir volume
equals half of the injected reservoir volume by modifying PBAL, as follows:
We should then expect that the oil production rate will become half of the previous rate of 2705 stb/day,
and thus, we should see an oil production rate of approximately 2705/2 = 1352.5 stb/day. When the oil
production rate is plotted with the water injection rate, we will see that the PBAL production balancing
factor of 0.5 has indeed been applied to the simulation, as evidenced in the following plot:
Location
RECU Section
Description
The PBDT keyword may be used to control the rate at which gas solution in undersaturated oil occurs.
Definitions
Notes
Example
1. Set maximum resaturation rate of 0.2 bar/day. See PBDT.dat for complete example:
PBDT 0.2
Location
RECU Section
Description
The PIPE keyword is used to characterise a pipe. This may be done by attaching a pipe table to the pipe (the table
should be specified using PTAB). Alternatively, the pressure drop coefficients for oil, gas, and water flows can be
specified to characterise the pipe instead. These coefficients are overall pressure drop vs. oil, gas, and water rates
in surface volume terms.
Arguments for PIPE depend on whether a pipe table is used to characterise the pipe or if pressure drop coefficients
are used instead.
In the case in which a table is required, PIPE consists of three required arguments which should be entered on the
same line as the PIPE keyword itself when used. PIPE should be followed by the pipe name, the word TABLE,
and then the required table name.
In the case in which an analytical form is required, PIPE consists of four required arguments which should also
be entered on the same line as the PIPE keyword itself when used. In this case, the arguments consist of the pipe
name followed by the three pressure coefficients.
An optional argument, USEL, which is used to specify that lift gas is to be added to the gas rate when calculating
pressure drops associated with the pipe, may also be added to the end of either the pipe table or analytical format
options.
Definitions
Notes
• The optional argument USEL (Use Lift Gas) may be added in either case, after the required arguments.
USEL specifies that any lift gas specified by the LIFT keyword for the well is to be added to the gas rate
when calculating pressure drops associated with this pipe. If USEL is specified, the lift gas will also be
added to the gas rate for any pipeline pumps associated with this pipe.
• Recommended alternatives to this keyword are PIPEC and PIPET events.
Examples
1. PIPE is used to characterise the pipe PIPE45 using the P_TAB_12 pipe table.
2. PIPE is used to characterise the pipe EAST_PIPE_1 using the EAST_T pipe table. The USEL option will
also be used with this pipe to specify that lift gas will be added to the gas rate when calculating pressure
drops with this pipe.
3. PIPE is used to characterise the pipe PIPE46 using pressure drop coefficients.
Location
RECU Section (before wells which use this pump performance table)
Description
The PLPU (Pipeline Pump) keyword is used to define a pipeline pump performance table. A pipeline pump
performance table must be defined before it can be used by a well. Arguments for PLPU consist of two records.
The first record consists of one required argument and one optional one which should be entered on the same line
as the PLPU keyword itself when used. The second argument consists of a table with two columns of data defining
the pipeline pump performance. Following the final row of PLPU data in the table, a solitary slash (/) on its own
line is required to terminate the data entry for this keyword.
Definitions
Record 1:
1. Name of the pump performance table
2. Surface volume rate: SLIQ or SGAS (optional)
• SLIQ - surface liquid volume rates are specified
• SGAS - surface gas volume rates are specified
Record 2:
1. Overall pump intake rate at reservoir conditions
2. Developed pressure differential
• Units: psi (Field), bars (Metric)
Notes
• The WPUM or GPUM events are used to associate a pipeline pump with the flow from a well or group into
a pipeline.
Examples
1. PLPU is used to supply a performance table for the PUMPTAB42 pipeline table at reservoir conditions.
PLPU PUMPTAB42
100 1000
200 800
500 600
800 500
1500 150
/
2. PLPU is used to supply a performance table for the P7-PUMP1 pipeline table for different liquid surface
volume rates by using the SLIQ option.
PLPU P7-PUMP1 SLIQ
100 1450
5000 1250
10000 440
20000 0
/
Location
RECU Section
Description
The PMOD keyword is used to modify porosities during a simulation. Arguments for PMOD consists two records.
The first record consists of six required arguments and two optional ones which should all be entered in succession
on the same line as the PMOD keyword itself when used. The second record consists of a list of porosity modifiers
which should be entered on a separate line directly below the PMOD keyword.
Definitions
RECORD 1:
1. Lower i-location of box of cells which porosity modification will be applied to
• Default: 1
2. Upper i-location of box of cells which porosity modification will be applied to
• Default: Nx
3. Lower j-location of box of cells which porosity modification will be applied to
• Default: 1
4. Upper j-location of box of cells which porosity modification will be applied to
• Default: Ny
5. Lower k-location of box of cells which porosity modification will be applied to
• Default: 1
6. Upper k-location of box of cells which porosity modification will be applied to
• Default: Nz
7. SCALAR (optional) - used to indicate that one factor is entered and applies to the whole box
8. Name of local grid to apply porosity modifiers (optional)
RECORD 2:
1. List of porosity modifiers
• The factors entered with PMOD are applied to the original porosities and act as multipliers for those
values.
• The number of porosity modifiers in this list must equal the number of cells included in the box
specified by the first 6 arguments in Record 1 above unless the SCALAR option is used, in which
case, only one value is required and it will be applied to the entire box.
Notes
• The index values given in Record 1 apply to global grid cells. Local cell PMOD values are set to the
corresponding global cell values.
• Each instance of PMOD will over-write the modifications done to the porosity from previous PMOD key-
words. Every instance of PMOD will be applied to the original porosity values and not to the porosity values
modified by PMOD.
• Using a scalar value of 1 will restore the original porosity values to the grid.
• If a local grid name is entered, the box of cells will apply to that local grid. Otherwise, local grids will
inherit values from the global grid.
Examples
1. In a 10x10x5 grid, PMOD is used to change the porosities in a block of cells ranging from (4,8,1) to (6,10,2)
after 2 years of simulation. A total of 18 PMOD values will be required.
READ 2 YEARS
PMOD 4 6 8 10 1 2
0.85 0.96 1.58
1.24 0.81 0.89
1.50 1.62 0.75
0.93 1.42 1.14
0.77 0.64 0.89
1.22 1.54 1.60
A PMOD (“Porosity Modification Factor”) array will then appear in the Recurrent tab of the results for
display in 3D, as shown below:
2. In this example, we will use the same block of cells with PMOD as the example above, but this time, we
will use the optional SCALAR argument to indicate that just one factor will be entered to be applied to the
whole box after 4 years of simulation. We will use a scalar value of 0.60 to reduce the porosity by 40% with
respect to the initial porosity.
READ 4 YEARS
PMOD 4 6 8 10 1 2 SCALAR
0.60
After 6 years of simulation, we then want to restore the original porosity values, and this can be done by
applying a scalar value of 1.0 to the grid block, as follows. See PMOD.dat for complete example:
READ 6 YEARS
PMOD 4 6 8 10 1 2 SCALAR
1.0
Location
RECU Section
Description
The POTN keyword is used to request periodic well potential calculations. POTN consists of two required argu-
ments which should be entered in succession on the same line as the POTN keyword itself. By default, if POTN
is not specified, potentials are when the well is defined or changed (e.g. a new completion activated).
Definitions
Notes
• If a zero time interval is specified, well potentials are calculated after every time step.
• If a negative time interval is specified, well potentials will not be calculated.
• A recommended alternative to this keyword is POTN event.
Example
POTN 6 MONT
2. POTN is used to request well potential calculations to be performed after every time step.
Location
RECU Sections
Description
The PRIN (print) keyword in the Recurrent section is used request a printed table of the well trajectory entered
with TFIL or TTAB in the TRAC section of the MORE .out file which can be viewed under the Print tab when
results are viewed in Tempest View. The PRIN keyword consists of one optional argument which should be
entered on the same line as the keyword itself if used.
Definitions
Notes
n/a
Example
1. PRIN is used with the TRACK option to request that the well trajectories be printed out in the .out file
under the TRAC section.
PRIN TRACK
Both of the options above will result in the following data output in the print and .out files:
TRAC===========================================================================
Location
RECU Section
Description
The PRIO keyword is used to set prioritisation coefficients for use by the group prioritisation limits set by GPRI.
When a group prioritisation limit is operating as defined by GPRI, wells in the group will be closed in priority
order to meet the group target. The lowest priority wells will be closed first. The well priority is determined by
the coefficients set by PRIO.
PRIO consists of nine required arguments which should be entered in succession on the same line as the PRIO
keyword itself.
Definitions
Notes
where qo, qg, and qw are the well oil, gas, and water rates, respectively
• At least one of the coefficients from C1 to C4 and one of the coefficients from C5 to C8 must have a non-zero
value.
• The order of the coefficients follows the MORE standard of oil, gas, water - this may differ from other
simulators. For example, ECLIPSE uses oil, water, gas.
• To set individual well priorities, WPRI can be used. The well priority set for a well using WPRI will
over-ride the default calculation defined using PRIO. Please see the WPRI keyword for more information.
• A recommended alternative to this keyword is PRIO event.
Examples
Location
RECU Section (before wells which use this pump performance table)
Description
The PUMP keyword is used to define a downhole pump performance table. PUMP must be defined before the
wells which use this pump performance table are defined.
Arguments for PUMP consists of two records. The first record consists of one required argument which should be
entered on the same line as the PUMP keyword itself when used. The second record consists of a table with two
columns that hold the pump intake rate and its corresponding head. Following the final row of PUMP data in the
table, a solitary slash (/) on a separate line is required to terminate the data entry for this keyword.
Definitions
RECORD 1:
1. Name of the pump performance table
RECORD 2:
1. Overall pump intake rate at reservoir conditions
• Units: rb/day (Field), rm3 /day (Metric)
2. Developed head
• Units: feet (Field), meters (Metric)
Notes
• Record 2 of the pump arguments consist of flow rates as a reservoir volume (not a surface volume rate) and
the pressure difference developed as a head of water (not a pressure difference in psi or bars)
Examples
1. PUMP is used to define a pump performance table named PMP1 for different reservoir volume fluid intake
rates.
PUMP PMP1
100 1450
5000 1250
10000 440
20000 0
/
The LIFT subkeyword of WELL is then used to associated PUMP with a well. For example:
LIFT PMP1
The effect of the pump is to increase the effective bottom hole pressure seen by the lift table, and thus,
increase the resulting top hole pressure.
Location
RECUrrent Section
PIPE tables are similar to TUBI tables, and allow the user to specify the pressure drop across a pipe as a function
of the fluid flow through the pipe and, optionally, the exit pressure. No reference depth is required.
In a pipe table the OUTP sub-keyword (the pipe outflow pressure) takes the place of the THP values on a TUBI
table, and the DELP subkeyword (pressure drop across the pipe) takes the place of the BHP values in a TUBI
table.
Example
Location
RECU Section
Description
The RATE keyword is used to control the rate output. The RATE keyword must be present and accompanied by
the FREQ keyword in a simulation run for 2D data output to occur.
Arguments for RATE consist of three optional arguments and many summary package output options, as will be
further described in the Definitions section below. The first three arguments should appear on the same line as the
RATE keyword in succession if they are used and these can be followed by any number of the summary package
options in any order. All of the arguments and options chosen should be entered on the same line as the RATE
keyword itself when used.
Definitions
Notes
• If EXACT is not used, MORE will report at the end of the first simulation step after a rate time.
• CRAT and LRAT may result in big rate files for runs with a very large number of wells.
• The summary period is the time between summary file writes (set with FREQ).
• The FIELD package will report mobile oil, gas, and water-in-place for black oil runs. In calculating mobile
fluid-in-place, a saturation of Sp-Spcr is used, where Spcr is the critical saturation for phase p. In the three-
phase case, the oil mobile saturation is obtained using the minimum of the critical saturation with respect
to gas and with respect to water. For more details, see the Technical Reference. The MOBI package may be
used to request that the mobile oil saturation is reported individually with respect to both water and gas.
• The COMP package groups output from completions at the same measured depth. This can be useful when
using WFRA to model well fractures, which can result in a lot of well completions. Then COMP will report
just the number of original completions, summing the flows from the additional fracture completions into
the original completions. COMP is purely an output operation - the simulator calculations are not effected
at all.
• By default, the RECY package is switched on for equation of state runs.
• The contents of the various summary packages are as follows:
• Default
– Wells
* WBHP, WTHP, WPDD - Well bottom hole, top hole pressure and drawdown pressure
* WBPR - Reservoir pressure at the external well radius
* WCTLMODE - Well control mode
* WDEN - Wellbore fluid density
* WSTA - Well producer/injector status
* WSHUTR - Shut reason code
* WGIR, WGIT - Well gas injection rate and total
* WWIR, WWIT - Well water injection rate and total
* WOPR, WOPT - Well oil production rate and total
* WGPR, WGPT - Well gas production rate and total
* WWPR, WWPT - Well water production rate and total
– Groups
* FIPO, FIPG, FIPW - Field oil in place, gas in place and water in place
* PAVH - Hydrocarbon average pressure
* LWCT, LGOR, LGWR - Layer water cut, gas-oil and gas-water ratio
* LGIR, LGIT - Layer gas injection rate and total
* LWIR, LWIT - Layer water injection rate and total
* LVIR, LVIT - Layer reservoir volume injection rate and total
* LVPR, LVPT - Layer reservoir volume production rate and total
* LOPR, LOPT - Layer oil production rate and total
* LGPR, LGPT - Layer gas production rate and total
* LWPR, LWPT - Layer water production rate and total
* LLPR, LLPT - Layer liquid production rate and total
• The WELL Package
– WVPR, WVPT - Well reservoir voidage production rate and total
– WVIR, WVIT - Well reservoir voidage injection rate and total
– WGLIR, WGLIT - Gas lift injection rate and total
– WUT, WUTF - Well uptime and uptime fraction
– WBP - Reservoir pressure in the completion cells
– WTEMP - Well temperature for thermal and steam injection cases
– WBP1, WBP4, WBP5, WBP9 - Reservoir pressure 1, 4, 5, and 9-point average (completion cells and
their neighbours)
– WPI1, WPI4, WPI5, WPI9 - Well voidage productivity index based on pressure in completion cells,
or 4-, 5-, and 9-point averages around completion cells
– WTCNTTTT - Well tracer TTTT concentration1
– WTORTTTT,WTOTTTTT - Well tracer TTTT oil production rate and total1
– WTGRTTTT,WTGTTTTT - Well tracer TTTT gas production rate and total1
– WTWRTTTT,WTWTTTTT - Well tracer TTTT water production rate and total1
– WTMRTTTT,WTMTTTTT - Well tracer TTTT molar production rate and total1
– WSCNSSSS - Well tracer set SSSS concentration1
– WSORSSSS,WSOTSSSS - Well tracer set SSSS oil production rate and total1
– WSGRSSSS,WSGTSSSS - Well tracer set SSSS gas production rate and total1
If potentials are requested, also:
– WOPP - Well oil potential production rate
– WGPP - Well gas potential production rate
– WWPP - Well water potential production rate
1 The strings TTTT and SSSS would actually contain the tracer or tracer set name.
* WWCT, WGOR, WGWR - Well water cut, gas-oil and gas-water ratio
* WLPR, WLPT - Well liquid production rate and total
– Groups
* GWCT, GGOR, GGWR - Group water cut, gas-oil ratio and gas-water ratio
* GBHP, GPBHP, GWIBHP - Group bottom hole pressure, group of producers bottom hole pressure
and group of water injection wells bottom hole pressure
* GTHP, GPTHP, GWITHP - Group tubing head pressure, group of producers tubing head pressure
and group of water injection wells tubing head pressure
Examples
1. RATE is used to specify an incremental time for rate output of one month.
2. RATE is used to specify an incremental time for rate output of 10 days and request the WELL and CRAT
summary package data to be output.
3. RATE is used to specify an incremental time for rate output of 30 days days and request the WELL, GROU,
FIELD and ITER package data to be output. The output is to the standard output as well as the .out and
.rat files.
Location
RECU Section
Description
The READ keyword is used to specify the time at which to read recurrent data. READ consists of one required
argument and two optional ones which should all be entered in succession on the same line as the READ keyword
itself when used.
Definitions
Notes
Examples
or
10.75. READ (or TIME or DATE) - Time to Read Recurrent Data 963
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
The RECU keyword is used as a section header line to indicate the beginning of the Recurrent section. The
Recurrent section must begin with the RECU keyword before any other RECU section keywords can be used.
RECU does not require any arguments.
The Recurrent section defines data that can be changed during the simulation. Recurrent data consists of the
specification of the production system, requests for output, and requests for simulation to specified times.
For more details on the Recurrent section, please see the Recurrent Data Section Overview .
Definitions
n/a
Notes
n/a
Example
RECU
Location
Description
The RELK keyword is used to request that relative permeability data be output by MORE, either to the .out file or
to ECLIPSE solution files.
Syntax
Notes
• To output 3D arrays for visualisation through Tempest VIEW, use STOR rather than MOBI.
• Printed output of cell values to the .out file is not normally useful except for small cases
Example
Location
RECU Section
Description
The RPM keyword is used to set up regional pressure maintenance. RPM links a group to a fluid in place region
and selects a group control to be used to attempt to maintain that pressure.
Definitions
Notes
• One of arguments 3 or 4 must be set. If not, the pressure control group will default to ALL
• The control strategy applied to the group’s flow target is as follows:
– If the target is too low or too high by more than 5%, the swing high or swing low rates will be used to
get back into the +/- 5% band as quickly as possible.
– Once within this range, the control theory method uses a proportional + differential controller, i.e. the
flow target is multiplied by the factor
∂e
F = 1 − C1 e − C2
∂t
where the coefficients C1 and C2 are defined by arguments 6 and 7, e is the target pressure relative
error, and a first-order approximation is used for the error derivative with respect to time ∂e/∂t.
• When the VR or PB options are used, the voidage replacement or production balancing factor is used as the
target, rather than a production/injection rate. Hence it is recommended to change the swing high and low
rates to reflect this.
Examples
1. RPM is used to reach and maintain a reservoir pressure of 300 bars by controlling the group water injection
rate. See RPM_WI.dat for complete example:
In this example, the initial reservoir pressure is 329 bars, hence initially the group water injection rate is
kept at zero (the swing low rate). As the pressure decreases, the injection rate gradually increases to control
the pressure, until the required target is attained. The resulting pressure and injection rates in the reservoir
can be observed in the plot displayed in the following figure:
10.79 RRTA - Radius and Roughness Table for a Well (Used by Seg-
mented Well Model)
Location
RECU Section
Description
The RRTA keyword is used to set the diameter and roughness for a well track. These values are used by the
multi-segment well model. Arguments for the RRTA keyword consists of two records. The first record consists
of one required argument which should be entered on the same line as the RRTA keyword itself when used. The
second record consists of a table with three columns which starts on a separate line below the RRTA keyword.
Following the final row of RRTA data in the table, a solitary slash (/) on a separate line is required to terminate the
data entry for this keyword.
Definitions
RECORD 1:
1. Table name
RECORD 2:
1. Measured depth
• Units: feet (Field), metres (Metric)
2. Radius
• Units: feet (Field), metres (Metric)
3. Roughness
• Units: feet (Field), metres (Metric)
Notes
• The RRTA table is looked up as a histogram - i.e. the values are not interpolated (as pipe diameters and
material properties do not generally change smoothly). So in the table below, for example, the pipe radius
will be 0.3 from 2000 ft to 3000ft and then change to 0.24 ft from 3000 ft to 4000 ft.
• Well Track Table and Well Event Table must first be defined using TTAB/ENDT and ETAB/ENDE respec-
tively before WSEG keyword can be used.
• It is recommended that the input data for radius and roughness is entered such that the relative roughness
(=Roughness/Radius) is less than 1. Otherwise, the input becomes unphysical and MORE’s well solver may
fail resulting in well iteration failures.
Examples
2. In this example, BRAN is used with the WSEG (multi-segmented well) option.
P-1:1
1500 4500 5500 0
6000 4500 5500 4500
ENDT
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5600 5800 0.5 0 10
01/Jan/2000 PERF 3500 4500 0.5 0 10 BRANCH 1
01/Jan/2000 OPT 5000
01/Jan/2000 BHPT 1500
ENDE
We introduce the BRAN, WSEG, and RRTA keywords to define the branch structure, multi-segmented well
option and a roughness and radius table respectively. See BRAN_WSEG.dat for complete example:
RRTA RTAB1
--MD Rad Roughness
5000 0.10 0.01
5500 0.50 0.05
/
RRTA RTAB2
--MD Rad Roughness
0 0.60 0.55
1000 0.70 0.56
2000 0.80 0.57
3000 0.90 0.58
4000 0.99 0.59
/
10.79. RRTA - Radius and Roughness Table for a Well (Used by Segmented Well Model) 969
Tempest MORE Help, Release 8.1
If the argument SEGM under the GENE keyword in the RECU section is entered, the segment properties
can be viewed in the PRINT file and a plot using Tempest VIEW, as shown below:
10.79. RRTA - Radius and Roughness Table for a Well (Used by Segmented Well Model) 971
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
The RSDT keyword may be used to control the rate at which gas solution in undersaturated oil occurs.
Definitions
Notes
• The default rate is infinite - i.e. no restriction is placed on the rate at which the solution gas-oil ratio may
change.
• A recommended alternative to this keyword is DRSDT event.
Example
Location
RECU Section
Description
The RVDT keyword may be used to control the rate at which oil vapourisation into undersaturated gas occurs.
Definitions
Notes
• The default rate is infinite - i.e. no restriction is placed on the rate at which the vapour oil-gas ratio may
change.
• A recommended alternative to this keyword is DRVDT event.
Example
RVDT 0.0002
Location
Description
The SATU, DENS, VISC, RELK, and MOBI keywords are used to request the output of phase saturations, densi-
ties, viscosities, relative permeabilities, and mobilities, respectively, when used with the ARRA or ESOL keywords.
However, a more common approach to requesting these properties when using ARRA would be to use the GENE
and STOR keywords to control output to the .out and .ara files, respectively.
Each keyword can have up to three arguments which should be entered on the same line as the SATU, DENS,
VISC, RELK, or MOBI keywords themselves when used.
Definitions
Notes
• If the four-phase Todd-Longstaff solvent option is being used, DENS, VISC, and RELK may also take SOLV
in addition to OIL, GAS, and WATR. Please see the Solvent section of the MORE Technical Reference for
more information about this option.
• As the examples given below in the Examples section all demonstrate the use of SATU, DENS, VISC,
RELK, and MOBI with the ARRA keyword only, it should be noted these keywords are used in the same
fashion with the ESOL keyword for those users wishing to apply these keyword to ESOL.
Examples
1. SATU is used with ARRA to request that oil and gas saturations are output to the MORE .out file every
year. See SATU.dat for complete example:
A search for “MAP” in the .out file, which can be viewed under the Print tab of the results in Tempest
View, will reveal the phase saturations requested above using SATU. For a 5x5x2 grid, the results will
appear as follows:
MAP=======================================================================================
Map of soil at 2 Jan 2000, 1.0 days
==========================================================================================
Layer iz= 1
ix= : 1 2 3 4 5
Row iy= 1: 0.800 0.800 0.800 0.800 0.800
Layer iz= 2
ix= : 1 2 3 4 5
Row iy= 1: 0.800 0.800 0.800 0.800 0.800
Row iy= 2: 0.800 0.800 0.800 0.800 0.800
Row iy= 3: 0.800 0.800 0.800 0.800 0.800
Row iy= 4: 0.800 0.800 0.800 0.800 0.800
Row iy= 5: 0.800 0.800 0.800 0.800 0.800
==========================================================================================
MAP=======================================================================================
Map of sgas at 2 Jan 2000, 1.0 days
==========================================================================================
Layer iz= 1
All values are 0.0
Layer iz= 2
All values are 0.0
==========================================================================================
In the same example, DENS and RELK are used with ARRA to request that the oil density, and the oil, gas,
and water relative permeabilities are output to the MORE .out file every year.
DENS OIL
RELK OIL GAS WATR
A search for “MAP” in the .out file, which can be viewed under the Print tab of the results in Tempest
View, will reveal a map of the oil density and the oil, gas, and water relative permeabilities, as requested
above using DENS and RELK. For a 5x5x2 grid, the results will appear as follows:
MAP=======================================================================================
Map of deno at 2 Jan 2000, 1.0 days
==========================================================================================
Layer iz= 1
ix= : 1 2 3 4 5
Row iy= 1: 38.388 38.387 38.387 38.387 38.387
Row iy= 2: 38.387 38.387 38.387 38.387 38.387
Row iy= 3: 38.387 38.387 38.387 38.387 38.387
Row iy= 4: 38.387 38.387 38.387 38.387 38.387
Row iy= 5: 38.387 38.387 38.387 38.387 38.385
Layer iz= 2
ix= : 1 2 3 4 5
Row iy= 1: 38.529 38.529 38.528 38.528 38.528
Row iy= 2: 38.529 38.528 38.528 38.528 38.528
Row iy= 3: 38.528 38.528 38.528 38.528 38.528
Row iy= 4: 38.528 38.528 38.528 38.528 38.528
Row iy= 5: 38.528 38.528 38.528 38.528 38.527
==========================================================================================
MAP=======================================================================================
Layer iz= 1
ix= : 1 2 3 4 5
Row iy= 1: 1.000 1.000 1.000 1.000 1.000
Row iy= 2: 1.000 1.000 1.000 1.000 1.000
Row iy= 3: 1.000 1.000 1.000 1.000 1.000
Row iy= 4: 1.000 1.000 1.000 1.000 1.000
Row iy= 5: 1.000 1.000 1.000 1.000 1.000
Layer iz= 2
ix= : 1 2 3 4 5
Row iy= 1: 1.000 1.000 1.000 1.000 1.000
Row iy= 2: 1.000 1.000 1.000 1.000 1.000
Row iy= 3: 1.000 1.000 1.000 1.000 1.000
Row iy= 4: 1.000 1.000 1.000 1.000 1.000
Row iy= 5: 1.000 1.000 1.000 1.000 1.000
==========================================================================================
MAP=======================================================================================
Map of krg at 2 Jan 2000, 1.0 days
==========================================================================================
Layer iz= 1
All values are 0.0
Layer iz= 2
All values are 0.0
==========================================================================================
MAP=======================================================================================
Map of krw at 2 Jan 2000, 1.0 days
==========================================================================================
Layer iz= 1
All values are 0.0
Layer iz= 2
All values are 0.0
==========================================================================================
Location
Description
The SEPA keyword is used to define a separator. Arguments for SEPA consist of two records. The first record
consists of one required argument and two optional ones which should all be entered in succession on the same
line as the SEPA keyword itself when used. The second record consists of a list of values that depend on the flash
option chosen in the first record. The second record should start on a separate line below the SEPA keyword.
Definitions
RECORD 1:
1. Name of separator (or group to whch the separator applies)
2. Flash calculation option (optional): K-VA, EOS or SPLI
• K-VA - specified K-values to be used for flash calculations
• EOS - equation-of-state to be used for flash calculations
• SPLI (default) - use split factors rather than flash calculations
3. Separator oil density calculation option (optional): ZFAC or IDEA
• ZFAC - equation-of-state Z-factor used for separator oil density
• IDEA (default) - ideal mixing used for separator oil density
RECORD 2:
1. Table of separator values
• For K-Values (K-VA), the equilibrium K-values for each component are supplied. For multiple stages,
the K-values for each stage must be supplied in separate records.
• For EOS split (EOS), each record must contain the temperature and absolute pressure of the separator
stage. After the temperature and pressure values, it is possible to specify the destination of the output
of the stage and optionally the EoS equation of state number. Each record should then contain the
temperature and absolute pressure of the separator stage, followed by the destination of the liquid
output from this stage and the destination of the vapour output by this stage and optionally the equation
of state index.
– Pressure for the separator stage
Units: psia (Field), barsa (Metric)
– Temperature for the separator stage
Units: o F (Field), o C (Metric)
– Destination for liquid output from this stage may be one of:
* -1: add this fluid to the stock tank total (default for vapour output from this stage)
* This should only be specified when using multiple Equations of State together with EOSN.
It is recommended to specify this item when using multiple Equations of State.
The index should lie between 1 and the number of surface equations of state specified using
TEMP SURF in the FLUI section.
If this item is not specified, then the flash will use the surface EoS set for the well according
to the relevant EOSN region or the WEOS keyword. For more details, see the Technical
Reference.
• For Split Factors (SPLI) - one record should be supplied containing the fraction of each component
in the gas stream. Defaults for SPLI are zero.
Notes
• The SEPA condition for ALL may be placed in the INIT section. This will then be used for fluid-in-place
calculations. If the field separator (specified with ALL) is not specified in the INIT section, then a default
separator (ALL) is set up for the initial fluid-in-place calculations, using a single stage flash to standard
conditions (60o F or 15o C and 14.69 psi or 1.01 barsa), with the EOS and ZFAC options.
• The equation of state index may be specified for EOS runs when using multiple equation of state regions. If
it is not specified, the equation of state data is chosen to be that with the nearest temperature to the separator
temperature, when using keyword TEMP. If TEMP is not specified and only one set of equation of state data
is entered, this will be used by the separator. Typically, the equation of state index is only required when
using multiple Equations of State, and the index for the EoS calculation cannot be obtained unambiguously
by matching the stage temperature with the temperatures defined by the TEMP keyword.
• By default, the name specified in item 1 is the name of the group to which the separator applies.
It is possible to identify separators using a name in item 1 (which may not be the name of an actual group),
and then to associate named separators with groups using the GSPC keyword or event. Wells may also be
associated with separators using the WSPC keyword or event, of required, but the default is for all wells to
use the separator conditions associated with their group.
• The separator index associated with a well or group may be reported using the mnemonics WSEPAIND and
GSEPAIND when using the WELL and GROUP packages of the RATE keyword. Each time a separator is
defined, it is assigned an index starting from one, and the field separator wil have an index of 1.
• The separator may be re-defined at any time just by re-specifying the keyword for a given separator name.
• The separator configuration will be reported to the .out file when GENE SEPA is entered.
Examples
1. SEPA is used to specify a separator that uses the equation of state model for flash calculations and oil
density.
2. SEPA is again used to specify a separator that uses the equation of state model for flash calculations and oil
density, when there are multiple EoS regions specified using EOSN. We suppose there are two EoS regions
and two groups: group G1 has wells in EoS region 1 and G2 has wells in EoS region 2. Suppose also that
there are also four surface equations of state specified using TEMP SURF, with surface indices 1 to 4.
Location
RECU Section
Description
Enter a WAG sequence to be used by the WAG event WWAG. This is a series of WAG fractions, as may be entered
using WWAG keyword.
SEQU sequenceName N
V1 V2.....VN
Definitions
Note
• A warning will be issued if the first or the second fluid fractions do not sum to 1.
• An additional example for this keyword can be found here in the WWAG help.
Examples
1. Specifies a tapered WAG sequence in which 50% of the first injection fluid target is injected in the first
period, then 50% of the second injection fluid target in the second period, then 25% of the first injection
fluid target is injected in the third period.
SEQU WS4 6
0.5 0.5 0.25 0.25 0.25 0.25
Location
RECU Section
Description
This is a developer keyword which resets the criteria used to limit the growth of the volume balance error in
IMPES runs. The keyword and its defaults may be changed at any time.
This keyword should generally only be used by MORE developers. However it may be used in rare cases when
convergence fails due to volume balance errors, as explained in the Technical Reference.
Syntax
Definitions
Notes
• Specifying a zero value for either criterion will zero the volume error. This may cause repeated time step
chops. A recommended alternative for ensuring zero volume balance errors is to use the IMPQ ON option.
• Specifying a negative value will turn the appropriate limit off. Turning both limits off gives back-
compatibility with MORE 7.1 and prevents volume balance errors leading to time-step reductions termi-
nating the run. However, volume balance errors are no longer limited.
• More information on the IMPES formulation may be found in the Technical Reference.
Example
1. Reset volume error servo field wise absolute sum limit to 1.0E-4.
SERV 1* 1.0E-4
2. Remove volume error servo limits, giving back-compatibility with MORE 7.1.
SERV -1 -1
Location
Description
The SOLV keyword is used to specify the solvent concentration in the injected gas stream of a well when the
SOLV (solvent) option has been turned on in the FLUI (Fluid) section. If SOLV is not specified, injected gas is
pure reservoir gas. SOLV is a WELL sub-keyword and can only be used after the WELL keyword is specified.
SOLV consists of one required argument which should be entered on the same line as the SOLV keyword itself
when used.
Definitions
1. Solvent concentration
• Units: fraction
Notes
• The solvent concentration should be specified as a mole fraction, which is calculated as follows: (solvent
gas volume)/(total solvent + reservoir gas volume).
• A recommended alternative to this keyword is SOLV event.
Examples
1. SOLV is used to specify a solvent concentration of 50% for the injection well I-1. See SOLV.dat for complete
example:
Solvent fractions, and injection and production rates and totals can then be plotted in 2D from the Wells tab
of the results, as follows:
Plotting the solvent fraction for the well I1, the following plot is obtained:
Solvent phase saturation data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Location
RECU Section
Description
The STMO keyword is used to modify saturation table indices during a simulation. Arguments for STMO consists
two records.
• The first record consists of six required arguments and one optional one which should all be entered in
succession on the same line as the STMO keyword itself when used.
• The second record consists of a list of new saturation table indices which should be entered on a separate
line directly below the STMO keyword.
The new saturation table numbers should lie between 1 and NST, where NST is the number of saturation tables
entered into the simulation.
Saturation tables are integer values; if a fractional value is entered the nearest whole number is used.
Definitions
RECORD 1:
1. Lower i-location of box of cells to which the new saturation indices are applied.
• Default: 1
2. Upper i-location of box of cells to which the new saturation indices are applied.
• Default: Nx
3. Lower j-location of box of cells to which the new saturation indices are applied.
• Default: 1
4. Upper j-location of box of cells to which the new saturation indices are applied.
• Default: Ny
5. Lower k-index of box of cells to which the new saturation indices are applied.
• Default: 1
6. Upper k-location of box of cells to which the new saturation indices are applied.
• Default: Nz
7. SCALAR (optional) - used to indicate that one new saturation table index is entered and this applies to the
whole box
8. Name of local grid to apply saturation table indices (optional)
RECORD 2:
1. List of saturation tables indices
• The number of saturation table indices in this list must equal the number of cells included in the box
specified by the first six arguments in Record 1 above unless the SCALAR option is used, in which
case, only one index is required and it is applied to the entire box.
Notes
• The index values given in Record 1 apply to global grid cells. Local cell STMO values are set to the
corresponding global cell values.
• An entirely analogous keyword, PTMO, allows the pressure table indices to be changed. This must be used
with caution, as pressure functions determine the fluid density and so the fluid in place. The only really
safe use for PTMO is to modify viscosity values only; that is, PTMOD should only rest cell pressure table
indices to tables with the same density values.
• If a local grid name is entered, the box of cells will apply to that local grid. Otherwise, local grids will
inherit values from the global grid.
Examples
In a 10x10x5 grid, STMO is used to change the saturation tables in the second layer of cells to saturation table 3
after 2 years of simulation.
READ 2 YEARS
STMOD 4* 2 2 SCALAR
3 /
Location
RECU Section
Syntax
Definitions
If VARI is specified the permeability modification varies from the centre of the SRV to the edge.
If CONS is specified the permeability modification is constant throughout the SRV.
If MATR is specified the permeability modification only applied to the matrix cells in a dual permeability run.
If FRAC is specified the permeability modification only applied to the fracture cells in a dual permeability run.
Notes
If the time constant is not entered the permeability multiplication factor is constant.
Example
Location
RECU Section
Description
The SRVW keyword is used to specify the location, size, orientation, permeability multiplication factor and time
constant of the ellipsoidal stimulated reservoir volume. SRVW consists of six required arguments and five optional
ones, all of which should be entered on the same line as the SRVW keyword itself when used.
Syntax
Definitions
If FRAC is specified the permeability modification only applied to the fracture cells in a dual permeability run.
Notes
• F K is a multiplication factor — the original permeability may be extremely small, but must be non-zero
for the SRV permeability enhancement to have an effect. If the base permeability is zero then the SRV
permeability will also be zero.
• If the time constant is not entered the permeability multiplication factor is constant. If the SRV time constant
is set, the permeability factor improvement will decay like
T
F K(T ) = F K(TSRV ) × exp 1 −
TSRV
See example.
• The SRV ellipsoid can be limited to certain layers using the lower and upper layer index. See example.
• Please note that example datasets referenced below are run on fine grid so can take a long time to finish.
• A recommended alternative to this keyword is SRVW event.
Examples
1. SRVW is used to add a SRV along a well trajectory at a measured depth of 5500 feet. The ellipsoidal volume
is given dimensions of da, db, dc and theta to be 200 feet, 1000 feet, 400 feet and 20 degrees respectively.
See SRVW_20.dat for complete example:
-- traj md da db dc theta FK tau kl ku mod
SRVW P-1 5500 200 1000 400 20 10000 1* 1* 1* CONS
F K stays constant at 10000mD within the SRVI as permM has been set to CONS:
3. SRVW is used to limit the SRV effect between layers 26 and 75. The images below show the side view for
Grid K index for SRVW with kl and ku defaulted (ORIGINAL) and kl = 26 and kl = 75 (MODIFIED). See
SRVW_20_kl_26_ku_75.dat for complete example:
4. SRVW is used to taper F K quadratically from the centre of the ellipsoid to the boundary by entering the
last argument as VARI. The permeability multiplication factor will be F K(1 − w), where “w” is:
pa 2 2 pc 2
pb
w= + +
da db dc
boundary of the ellipsoid is w=1 and the centre is w=0; permeability increase will fall to zero at the boundary
of the ellipsoid. See SRVW_20_VARI.dat for complete example:
The figure below shows the Permeability Modification Factor within the SRV.
5. SRVW is used to apply F K, throughout the SRV, in the VARI mode to matrix cells only in a dual perme-
ability run. The images below show the side view for Grid K index for SRVW. See SRVW_20_MATR.dat
for complete example:
6. SRVW is used to apply F K, throughout the SRV, in the VARI mode to matrix cells only in a dual perme-
ability run. The images below show the side view for Grid K index for SRVW. See SRVW_20_FRAC.dat
for complete example:
Location
RECU Section
Description
The STOP keyword is used to stop the simulation. All data appearing after the STOP keyword will not be pro-
cessed. There are no required arguments for STOP.
Notes
Examples
READ 10 YEARS
STOP
Location
Description
The STOR keyword is used to output array data to the MORE output file system for 3D visualisation. STOR is a
subkeyword of ARRA and should only be used after the ARRA keyword has been specified. Array data requested
in STOR is written at the times specified by the ARRA keyword. STOR must also be used with GENE REST for
array output to be created in the Recurrent section of the results for 3D visualisation in Tempest View.
Any number of optional arguments can be used with STOR and they all must be listed on the same line as the
STOR keyword itself in any order. Each option produces different data output in the MORE output file system for
3D visualisation in Tempest View. Values are written at the times specified by the ARRA keyword.
Definitions
Mnemonics Output
VISO, VISG, VISW, VISS phase viscosities
KRO, KRG, KRW, KRS phase relative permeabilities
MOBO, MOBG, MOBW phase mobilities (Kr/visc)
DENO, DENG, DENW, DENS phase densities
DENF fluid density
POTO, POTG, POTW phase potentials with respect to datum depth
PCOG, PCOW oil-gas and oil-water capillary pressures
PVOL or AVOL actual pore volume
PVTN pressure table numbers
AQCO plots indices of connected aquifers (useful to see where the aquifers connect to grid)
GCR gas coal ratio
FVFO, FVFG, FVFW phase formation volume factors (volume in reservoir/volume at surface). FVFO and FVFG are o
FSHX, FSHY, FSHZ shearing factors in each direction for oil viscosity (OVPG), water viscosity (WVPG) or polymer
RS requests output of cell gas-oil ratios
ZMF requests output of total mole fractions in equation of state runs
CNLI, CLIN, ALIN CNLI is the number of iterations needed to converge each cell for the non-linear solver and CLI
CFL Courant-Friedrichs-Lewy factor (see Technical Reference) for IMPES or AIM runs
FNDX, FNDY, FNDZ non-Darcy factors in each direction when using Forchheimer non-Darcy flow
dV
CMPF Fluid compressibility, − V1f dPf , where Vf is the fluid volume in a cell
SOTO, SGTO, SWTO, SSTO Total phase saturations allowing for trapped oil
FLOW Inter-cell flow rates. These will appear as items like FOX+ in the .ara file, and may be visuali
PCGS, PCWS Oil-gas and oil-water capillary pressure stabilisation shifts (PCSH)
BOIL, BGAS, BWAT Oil, gas and water molar densities
CC Component molar densities: for each component, this is the number of moles per unit volume a
P Kr
MOBC Component mobilities for each component: p xc,p bmp µpp where xc,p is the component c in
P Krp
MOBV Reservoir voidage mobility: p µp over all phases p
VSUP Support volume for Impes
V v −V
VBR Converged and scaled volume balance residual when using mass variables, defined as r Vf p p
PRU Pressure update for this time step
FTEN Immiscibility fraction for gas-oil relative permeability interpolation when using the SURF keyw
FCLI Li correlation factor for state identification (F = TTcrit
abs
) when using the FCLI keyword
Notes
• For the options above, the phase properties ending with O are for oil, G for gas, W for water, and S for
solvent when the four-phase Todd-Longstaff solvent option is being used.
• VISS, KRS, and DENS, and SSTO are for use with the four-phase Todd-Longstaff solvent option only.
Please see the Solvent Modelling section of the MORE Technical Reference for more information.
• Pressure table numbers can be added to STOR. These are functions of temperature (TEMP in F(DE ) values
set in the INIT section and so, are not available at the time the static grid data is written. They will not
change with timestep, but can be included in STOR as a means of checking the allocation of pressure tables
to cells.
• If a phase is absent, properties will not be reported for that phase (that is, MOBO does not plot in a run
which does not include oil).
• For STOR to have an effect, restart information must be written using the GENE keyword with the REST
option.
• All of the arrays listed above can also be used with the GENE keyword to output their values in the MORE
.out file.
• Dynamic grid property arrays may also be requested using STOR and output as recurrent arrays. This can
be useful to monitor time-dependent grid property effects generated, for example, by the TFUN keyword.
• Flows added by the FLOW argument are output for oil, water and gas components in a black oil run.
Currently, the oil and gas phase rates are not output for equation of state runs.
Examples
1. STOR is used with FVFO, FVFG, and FVFW to specify the storage of formation volume factors for oil, gas,
and water, respectively, into the restart file system for 3D visualisation. ARRA is also used to specify that
the formation volume factors will be output every year and GENE REST is used to ensure that the formation
volume factor array data gets written out to the restart file system for 3D visualisation.
GENE REST
Once the project has been run, formation volume factor arrays for oil, gas, and water are then displayed in
the Recurrent tab of the results for 3D visualisation in Tempest View as illustrated in the following figure.
Location
RECU Section
Description
The TEST keyword is used to perform periodic well tests. TEST consists of seven optional arguments which
should be entered on the same line as the TEST keyword itself if used.
Definitions
Notes
• When the TEST keyword is specified, all producers shut-in due to rate or ratio limits are tested for possible
flow. If THP or THPONLY is used, wells shut because it was not possible to satisfy the required top hole
pressure are also tested.
• The wells are opened and those that are within the rate, ratio, and thp target limits will continue to produce,
while others are shut-in. By default, well limits are not checked after the first time-step, ensuring that tested
wells are switched on for at least a time-step. This behaviour may be overridden by using the NOSTEP
option.
• Unless using the EXACT flag, repeated well tests are performed at the first simulator timestep after the
specified test interval has elapsed since the last well test. Hence, the actual testing frequency can be lower
than the requested one.
• Well-specific test functionality is provided by the TEST event.
Examples
1. TEST is used to specify the testing of shut-in wells at 5 years and thereafter at six month intervals.
READ 5 YEAR
TEST 6 MONT
2. TEST is used to specify the testing of shut-in wells on Jan 01, 1989 and thereafter at the default of three
month intervals.
3. TEST is used with a time interval of 99 years to effectively turn off the testing of wells.
TEST 99 YEAR
Alternatively, the OFF option may be used to TEST to turn off the testing of wells as well.
TEST OFF
Location
RECU Section
Description
The TFIL keyword is used to direct MORE to read a file containing well track data. Alternatively, TTAB /ENDT
allows the same data to be placed in-line directly after the TTAB keyword. The TFIL and TTAB/ENDT keywords
may be repeated as often as required to define the tracks for any number of wells.
The TFIL keyword consists of one optional argument and one required one. The optional NORO argument should
be entered on the same line as the TFIL keyword itself if it is used. The required argument is the name of the well
track definition file. This file name should be entered on a separate line below the TFIL keyword.
Definitions
1. NORO (optional) - do not apply ROTA rotation-translation to x and y (only required if the ROTA keyword
has been used)
2. MAP (optional) - apply MAPAXES transformation from external to internal coordinates to welltracks (only
required if the MAPAXES keyword has been used and welltracks are defined in external coordinates)
3. Name of the file containing the well track definition
Notes
• As ROTA and MAPAXES cannot be used together, either NORO or MAP should be used with TFIL.
• The track data in the well track definition file should take the form:
trackname
Xloc Yloc Zloc MD
: : : :
/
• The trackname can be the same name as the well name but need not be. The trackname must match the
name used by the COMP keyword.
• When used with perforation events, the trackname should match that of the well. However, multiple
branches may be specified by adding ”:n” to the end of the trackname, where n is the branch index. The
required branch may then be selected using BRANCH in a perforation event.
• “Zloc” is also known as true vertical depth (TVD). MD is the measured depth, being the length along the
track. If the first MD value is not entered, it is taken as Zloc. If further ones are not entered, they are
obtained by finding the distance between the current point and the last:
p
mi = (xi − xi−1 )2 + (yi − yi−1 )2 + (zi − zi−1 )2
• A table containing the computed measured depths and the cells intersected by the track may be obtained by
using the PRIN keyword with the TRACK option in the RECU section.
PRIN TRACK
• TFIL can be preceded by the optional TUNI keyword which defines the units of lengths used in TFIL. If
TUNI is not specified, it is assumed the depths are specified in the unit system selected for this simulation
model.
• For more information regarding the reading of well track definition files in Tempest, see the Handling Well
Tracks and Well History Help page.
Examples
1. TFIL is used to define the track of two wells, WP_A and WP_B.
TFIL
'welltrackA.dat'
TFIL
'welltrackB.dat'
WP_A
-- X Y Z MD
23613.4 764512.0 100.0 100.0
23620.7 764839.0 4300.0 4300.0
23731.2 765193.0 5000.0 5300.0
23782.7 765921.0 5000.0 6300.0
WP_B
-- X Y Z MD
24107.3 764313.0 0.0 0.0
24098.2 764298.0 4510.0 4510.0
24052.7 765213.0 5056.0 5457.0
24008.9 765103.0 5065.0 6437.0
Once a well track has been entered, it can be used to define the completion of a well using the COMP well
subkeyword. For example:
This specifies that the completions of well WP_A are defined by a measured depth interval of 2500 to 2600
on the WP_A welltrack defined in the welltrackA.dat file. The well radius is 0.05 metres, the skin is
0.0, and the user multiplier is 1.0.
More than one completed section may be added on the well track. To get rid of a completed interval, the
measured depth interval should be re-specified with a user multiplier of 0.0.
Location
RECU Section
Description
The TPRO keyword is used to specify physical properties of a well track. These values are used by a multi-segment
well model (WSEG). TPRO consists of three required arguments which should all be entered in succession on the
same line as the TPRO keyword itself.
Definitions
Example
1. TPRO is used to specify a radius of 0.05 and a roughness for the WWWW:1 well track.
Location
RECU Section
Description
The TTAB keyword is used to place the well track data directly into the RECU section rather than placing it in a
separate file using the TFIL keyword. The data format of the well tracks for TTAB is exactly the same as it is for
TFIL but an ENDT keyword is required to terminate the data.
The required arguments for TTAB consists of a table with four columns, as further described in the Definitions
section below. In addition, the optional arguments NORO and MAP may also be used, and should be entered on
the same line as the TTAB keyword itself.
Definitions
1. NORO (optional) - do not apply ROTA rotation-translation to welltracks (only required if the ROTA keyword
has been used)
2. MAP (optional) - apply MAPAXES transformation from external to internal coordinates to welltracks (only
required if the MAPAXES keyword has been used and welltracks are defined in external coordinates)
3. X-coordinate of the well track
• Units: feet (Field), metres (Metric)
4. Y-coordinate of the well track
• Units: feet (Field), metres (Metric)
5. Z-coordinate of the well track
• Units: feet (Field), metres (Metric)
6. Measured depth of the well track
• Units: feet (Field), metres (Metric)
Notes
WELLTRACK TP-A
-- X Y Z MD
9750 9750 5050 50
8750 8750 5100 100
7750 8750 5200 200
The columns are x,y, z, and MD as for TTAB. Unlike TTAB, only a single trajectory can be entered per
WELLTRACK keyword, and there is no need to end the table with ENDT.
• For more information regarding the reading of well track definition files in Tempest, please refer to the
Handling Well Tracks and Well History help page.
Examples
1. TTAB and ENDT are used to enter in well tracks for wells WP_A and WP_B.
TTAB
WP_A
-- X Y Z MD
23613.4 764512.0 100.0 100.0
23620.7 764839.0 4300.0 4300.0
23731.2 765193.0 5000.0 5300.0
23782.7 765921.0 5000.0 6300.0
WP_B
-- X Y Z MD
24107.3 764313.0 0.0 0.0
24098.2 764298.0 4510.0 4510.0
24052.7 765213.0 5056.0 5457.0
24008.9 765103.0 5065.0 6437.0
ENDT
These wells are then displayed in the 3D grid as illustrated in the following figure.
2. TTAB and ENDT are used to enter in well tracks for wells I-1 and P-1 with the NORO option.
TTAB NORO
I-1
-- X Y Z MD
2500.00 3500.00 5000.00 5000.00
2500.00 3500.00 6000.00 6000.00
P-1
-- X Y Z MD
7500.00 9500.00 5000.00 5000.00
7500.00 9500.00 6000.00 6000.00
ENDT
These wells are then displayed in the 3D grid as illustrated in the following figure.
3. TTAB and ENDT are used to define the welltrack for a horizontal well, P_HORIZ.
TTAB
P_HORIZ
-- X Y Z MD
1500.000 500.000 5000.00 5000.00
1500.000 500.000 5400.00 5400.00
8500.000 500.000 5400.00 6000.00
ENDT
This welltrack is then displayed in the 3D grid as illustrated in the following figure.
Note: Perforations for the well were specified using the PERF event.
4. TTAB and ENDT are used to enter well tracks for wells WINJ and WPRD in external coordinates. The
option MAP tells MORE that the tracks in this table are in external coordinates.
TTAB MAP
-- X Y Z MD
WINJ
5049.03810344 41183.01270388 5000.00 5000.00
5049.03810344 41183.01270388 6000.00 6000.00
WPRD
8343.26671423 53477.24134417 5000.00 5000.00
The internal coordinates are those specified with the COOR keyword. The relationship between internal and
external coordinates for the MAP option is given by the MAPAXES keyword which must be specified in the
grid section. If the MAPAXES keyword has not been specified the MAP option is ignored. See the following
for a full example: TTAB_MAP.dat
Location
Description
The TUNI (track units) keyword is used to specify the units of the welltracks defined in the TFIL keyword. TUNI
must precede the TFIL keyword for it to have an effect. If TUNI is not specified, it is assumed welltracks are
specified in the unit system selected for this simulation model.
TUNI consists of one required argument which should be entered on the same line as the TUNI keyword itself
when used.
Definitions
Examples
1. TUNI is used to specify that well tracks provided in the welltrackA.dat file are defined in feet.
TUNI FEET
TFIL
'welltrackA.dat' /
Location
RECU Section
Description
The UPSI keyword is used to turn on the upstreaming of steam injection mobilities. When fluid injection is
considered, the mobility seen by the injector is usually that of the fluid in the injection cell. For steam injection,
this can create problems, as heavy oil in the injection cell may have a very high viscosity, and the injection process
never starts. Turning the upstreaming of steam injection mobility on uses the mobility of the steam in the wellbore
as the injection mobility. By default, there is no upstreaming of steam injection mobilities.
UPSI consists of up to two required arguments which should be entered on the same line as the UPSI keyword
itself when used.
Definitions
Notes
• YES and NO may be used as aliases for ON and OFF when turning the upstreaming of steam injection
mobilities on and off respectively.
• See the Steam/Thermal section of the MORE Technical Reference for more information regarding steam
modelling in Tempest.
• Other keywords associated with steam modelling in Tempest include:
– STEAMOPTION - enable steam modelling
– STEA - steam specification (subkeyword of WELL)
– STEAM event - steam injection properties
– SIT event - steam injection target
– SVIT event - steam voidage injection target
Examples
1. UPSI is used to specify a fraction of 0.1 of the steam injection mobility to be upstreamed. See UPSI.dat for
a complete example:
UPSI ON 0.1
Thus, this system has 90% of the normal injection cell mobility and 10% of the upstreamed mobility. This
is a good compromise as damage around the well means that there will be some opportunity for steam to
enter the formation, even when the existing fluid is viscous. However, controlling the steam mobility alone
may over-estimate the injection rate.
Location
Description
The VISC keyword is used to request that viscosity data be output by MORE, either to the .out file or to
ECLIPSE solution files.
Syntax
Notes
• To output 3D arrays for visualisation through Tempest VIEW, use STOR rather than MOBI.
• Printed output of cell values to the .out file is not normally useful except for small cases
Example
Location
Description
The VREP keyword is used to set voidage replacement group limits. Voidage replacement imposes a group
injection limit on a group of injectors such that a fraction of the reservoir volume production achieved by a group
of producers is injected. VREP consists of three required arguments and four optional arguments which, if used,
should all be entered in succession on the same line as the VREP keyword itself.
Definitions
Notes
• In the NETG and NETW cases, the current gas or water injection is allowed for when choosing the required
injection rate.
When replacing voidage from a group it is optionally possible to replace production net of gas or net of
water. If the replacement is net of gas, the reservoir volume production minus the reservoir volume of gas
injection is replaced. If the replacement is net of water, the reservoir volume production minus the reservoir
volume of water injection is replaced. These are useful in order to inject a known amount of one phase (for
example, gas), and maintain pressure by varying the injection rate of the other phase, (for example, water).
To do this water can be injected at a voidage replacement target net of gas.
• In the SGAS and SWAT cases, the reinjection rate is calculated at surface rather than reservoir conditions.
For SGAS and SWAT, the gas and water injection is done through the injection group’s gas and water
injectors, respectively. It is possible for simultaneous gas and water conditions to be applied to the same
group.
• A recommended alternative to this keyword is VREP event.
Examples
1. VREP is used to balance production for the group GR25 so that the injected reservoir volume equals the
produced reservoir volume. See VREP.dat for complete example:
WINJ1
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 10000.00
01/Jan/2000 BHPT 1.00000e+04
WPRD1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 1000.00
WPRD2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
ENDE
In this example, the group GR25 has a total oil production rate of 3000 stb/day and a total water injection
rate of 10000 stb/day. The water injection rate target (WIT) is set to a high value to ensure that there is
enough water to provide voidage replacement for the produced oil. With the presence of VREP and an
oil production rate of 3000 stb/day, the total water injection rate is calculated to ensure that the injected
reservoir volume equals the produced reservoir volume, resulting in approximate pressure maintenance in
the reservoir. These resulting production and injection rates and the bottom hole pressure in the reservoir
can be observed in the plot displayed in the following figure.
Location
Description
The VTOL keyword is used set the volume error tolerance. This keyword consists of five optional arguments
which, if used, should all be entered in succession on the same line as the keyword itself.
Definitions
1. Maximum allowed error at any grid point (controls the convergence of the outer Newton-Raphson iteration
of the flow equations) (optional): errvmax1
• Default: 0.005
2. Maximum number of iterations allowed (optional): niter1
• Default: 15
3. Secondary maximum allowed error at any grid point (optional): errvmax2
• Default: 0.005
4. Secondary number of Newtons allowed (optional): niter2
• Default: 0
5. Minimum number of Newtons allowed (optional): minit
• Default: 1
Notes
• The actual number of non-linear iterations allowed is the sum of the maximum number of iterations allowed
(niter1) and the secondary number of Newtons allowed (niter2). The secondary maximum error is applied
for the last niter2 iterations.
• Recommended alternatives to the 1st and 2nd arguments of this keyword are CNVNL and MXNL events
respectively.
Example
VTOL 0.001
Location
RECU Section
Description
The WABC keyword provides a way of setting the skin and D-factor for a well from more easily measured A
and B coefficients which defines the linear and quadratic pressure response of the well. For details of the fitting
technique, please see AB well input chapter of the Technical Reference. The basic idea is to compare the A and
B coefficients with those of the same pressure dependence from the Russell-Goodrich model; once corresponding
coefficients have been found the required skin and D-factors may be determined.
Note: Use of this keyword is NOT recommended due to the assumptions made in the fitting technique. For
further details see the Technical Reference.
Definitions
1. Well name
2. A coefficient (psia2 /(mscf/day) or (bar2 /(ksm3 /day) )
3. B coefficient (psia2 /(mscf/day)2 ) or (bar2 /(ksm3 /day)2 )
4. lower measured depth (ft or metres)
5. upper measured depth (ft or metres)
Notes
• The lower and upper measured depths are not required. They are only needed if the A and B coefficients
entered are not for the entire well.
• A recommended alternative to this keyword is ABC event.
Example
Location
RECU Section
Description
The WAGT keyword is used to set tolerances for water-alternating-gas (WAG) injection. When injecting a given
volume of fluid using the WWAG keyword or WWAG event , the amount injected is checked at the end of the step.
If the amount exceeds the required injection, the time step is repeated. The tolerances may be reset using WAGT,
although this will not normally be required.
WAGT consists of two required arguments which should both be entered in succession on the same line as the
WAGT keyword itself when used.
Definitions
1. Volume target
• Default: 0.001
2. Time target
• Units: days
• Default: 0.01 days
Notes
• The volume target specifies an acceptable error when injecting a given volume of gas or water in a WAG
operation, as a fraction of the volume injected.
• The time target specifies the size in days of the minimum step which is adjusted when injecting a given
volume of gas or water in a WAG operation.
Examples
1. WAGT is used to set tighter WAG tolerances with a volume target of 0.0004 and a time target of 0.0001.
Location
RECU Section
Description
The WALQ keyword is used to specify a well artificial lift quantity. This only has an effect when the well has a
tubing table for which an ALQ variable has been defined (please see ALQ or TUBI keywords for details of entering
tubing tables with artificial lift.)
WALQ consists of two required arguments which should both be entered on the same line as the WALQ keyword
itself when used.
Definitions
1. Well name
2. Well artificial lift value
Notes
Examples
1. WALQ is used to specify an artificial lift quantity of 0.85 for the well W100.
Location
RECU Section
Description
This is a developer keyword which specifies the behaviour of a well that fails to meet its THP limit. It takes three
optional arguments which affect all wells.
As this is a keyword for program developers the general user is strongly advised not to use this keyword. The
keyword and its defaults may be changed at any time.
Definitions
1. Maximum number of Newton iterations with well failure before well is shut, “-1” means no limit
• Default: -1
2. Shut well if it failed in converged Newton iteration, YES/NO
• Default: YES
3. Maximum number of consecutive time-steps failed wells are kept open
• Default: 0
Notes
• The default behaviour is to shut all wells that fail to solve under THP control in the converged Newton
iteration.
• The behaviour of MORE versions < 7.1.3 is
WCTL 3 NO 0
• Shutting a well after a number of Newton iterations speeds up the simulation but can lead to premature
shut-in as the well might have solved in the converged Newton iteration.
• Setting the second argument to NO may leave unsolvable wells open when the simulator converges in at
most the number of steps specified in the second argument.
Example
1. Only shut-in wells that have failed to THP-solve on more than three consecutive time-steps:
WCTL -1 YES 3
10.104. WCTL - Well settings controlling the THP shut-in behaviour 1015
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
The WCOM keyword sets up a limit so that if pipeline pressure falls below a given value, or if oil or gas flow rate
is too low, then a compressor (defined by the CMPR keyword) will be switched on or have another remedial action
taken. WCOM consists of at least five required arguments which should all be entered in succession on the same
line as the WCOM keyword itself when used.
Definitions
1. Well name
2. Limit type: PIN, POUT, OIL, or GAS
• PIN - inlet pressure
• POUT - outlet pressure
• OIL - oil flow rate
• GAS - gas flow rate
3. Limit value
4. Limit action: COMP, PUMP, LIFT, or ALQS
• COMP - use compressor table
• PUMP - use pipeline pipe performance table (entered with PLPU)
• LIFT - use artificial lift table
• ALQS - use well artificial lift values
5. Action details:
• For COMP - compressor name
• For PUMP - pipeline pump name
• For LIFT - lift table name
• For ALQS - ALQ shift & number of shifts allowed
Notes
• Note that, unlike other production limits such as those imposed by LIMI, WCOM always sets a MINIMUM
limit; that is, they trigger if the pressure or rate is too low. There is currently no option to impose WCOM
limits as maximum or hold limits.
• For more information regarding the use of the limit actions COMP, PUMP, LIFT, and ALQS, please see
please see the CMPR, PLPU, LIFT, or ALQ keywords, respectively.
• A recommended alternative to this keyword is WCOM event.
Examples
1. WCOM is used to request up to two ALQ increments of 200 if the gas rate of wells WPRD1 and WPRD2
falls below 6600 ksm3 /day.
10.105. WCOM - Set Up Action to be Taken if Well Pipeline Limit Cannot be Met 1017
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
This is a developer keyword which sets the criteria used in the equation of state flash calculation to determine if a
cell is water-filled. If a cell is filled with water, it is not required, or possible, to perform a flash of the hydrocarbon
components.
As this is a keyword for program developers: the general user is strongly advised not to use this keyword. The
keyword and its defaults may be changed at any time.
Syntax
Definitions
1. NoWaterFilledStateOption
• Default: 0
2. WaterFilledCriterion
• Default: 1.0E-7
3. MinimumMolarDensity
• Default: 1.0E-9
Notes
Example
Location
RECU Section
Definitions
WFOR wellname
Notes
• This keyword is only required if the ALL argument is not used with the FORC keyword.
• A recommended alternative to this keyword is FORCH event.
Example
WFOR WEF-12
Location
RECU Section
Description
The WFRA (well fracture) keyword is used to set up a well fracturing operation. WFRA can have up to 17
arguments, of which the first seven are required. All of these arguments should be entered in succession on the
same line as the WFRA keyword itself when used. If it is desired to specify the seventeenth argument, then this
argument must be preceded by sixteen other arguments when WFRA is being specified.
Definitions
1. Well name
2. Angle of fracture in the xy plane (measured from the positive x-axis towards the positive y-axis)
• Units: degrees
3. First layer containing fracture (in global grid): kl
4. Last layer containing fracture (in global grid): ku
5. Length of fracture from well to tip (assumed same in both directions)
• Units: feet (Field), metres (Metric)
6. Permeability of fracture
• Units: mDarcy
7. Width of fracture
• Units: feet (Field), metres (Metric)
8. Conductivity of fracture (optional)
• Units: mDarcy-feet
9. Fracture time constant (optional)
• Units: days
10. Type of fracture: V or H (optional)
• V - vertical fracture type
• H - horizontal fracture type
11. Lower measured depth for horizontal fracture case (optional)
• Units: feet (Field), metres (Metric)
12. Upper measured depth for horizontal fracture case (optional)
• Units: feet (Field), metres (Metric)
13. Non-default options to request that well fractures connect to a specified range of layers or depths: LAYE or
DEPT (optional)
• LAYE - well fractures connect to a specified range of layers
• DEPT - well fractures connect to a specified range of depths
14. Lower layer (ll ) or depth (dl ) for use with LAYE or DEPT options, respectively, in argument 13 above
15. Upper layer (lu ) or depth (du ) for use with LAYE or DEPT options, respectively, in argument 13 above
16. Other arm length (optional) - used to set second arm length for asymmetrical fracture
• Units: feet (Field), metres (Metric)
• Defaults: defaults to length set in Argument #5 above
17. Bend angle in fracture (optional)
• Units: degrees
• Default: 0
18. WFSP value for this well fracture (overrides that set with WFSP keyword) (optional). Should be in the
range zero to one.
19. BRANCH index specifying which branch to fracture; defaults to the main branch.
20. Weight w used in the ccf decay law below (optional). Must be in the range zero to one.
Notes
• If the conductivity is entered, the permeability and width need not be supplied.
• For vertical well fractures, all the completions in the index range kl to ku are fractured (mdl and mdu will
not be used).
• For horizontal well fractures, only the first completion in the measured depth (MD) range mdl to mdu is
fractured. A completion with associated MD interval Icell is considered inside the fracture MD range only if
the midpoint of Icell lies within this range.
Fig. 10.1: Sketch of completed cells along a trajectory segment (blue). Two WFRA measured depth ranges are
depicted in red. The first MD range on the left (WFRA 1) contains the midpoint A of the MD range for the
left-most completion, and a fracture has been created. The second WFRA MD range (WFRA 2) lies between the
two midpoints B and C, so no fracture has been created.
• Normally, fractures propagate outwards from each fractured completion in the grid layer containing the
completion. If LAYE ll lu is specified, then each fractured completion is connected to cells in the global
layer range ll to lu . If DEPT dl du is specified, then each fractured completion is connected to cells in the
depth range dl to du .
• After a fracturing operation, the extra fracture connections between the well and the grid decay in time, as
t − tfrac
ccf = ccf0 w + (1 − w) exp − ,
τ
where w is the weight defined above, t is time, tfrac is the fracturing time, and τ is the fracture time constant.
If τ is defaulted, then w = 1.0 and the extra fracture connections will not decay with time.
• The syntax for the WFRA event differs from the WFRA keyword in that the other arm length, the bend angle
and the shared path coefficient are specified using OTHER, BEND and SPCO arguments. In addition, the
measured depth range must precede the V/H fracture type.
Examples
1. WFRA is used to set up a well fracturing operation for the well WPRD using the most minimal amount of
information that can be specified, which consists of seven required arguments. It is desired for the fracturing
operation to have a fracture angle of 45o , start in the third layer, and end in the fourth layer. The fracture
is given a length of 5000, a permeability of 100000 mD, and a width of 0.01. See WFRA.dat for complete
example:
When displayed in the 3D Viewer, an orange marker is used to indicate the cells in the grid that contain
fractures, as illustrated in the following figure.
A fractured well can also be identified in the Wells tab, where it is displayed with a fractured symbol, as
illustrated in the following figure.
2. In this example, we use the same WFRA settings as the preceding example but this time we add a bend
angle of 45o in the fracture, as follows. See WFRA_BEND.dat for complete example:
When displayed in the 3D Viewer, we can observe that a 45o angle has been added to the fracture.
3. In this example, we use the same WFRA settings as Example #1 above, except this time, we create an
asymmetrical fracture with a other arm length of 2000. We do this by adding entering a value for the
sixteenth argument of WFRA, as follows. See WFRA_OTHER.dat for complete example:
When displayed in the 3D Viewer, we can observe that one of the fracture arm lengths has been cut down
to 2000.
4. In this example, the LAYE option is used with WFRA to connect the well fractures to a specified range of
layers. This well, P-FRAC1, is completed only in the first layer in a grid with five layers. WFRA is used to
specify a fracturing operation that creates fractures with a fracture angle of 45o . The fractures start in the
first layer and extend all the way to the fifth layer with a length of 5000, a permeability of 100000mD, and
a width of 0.01. The LAYE option of WFRA is then used to ensure that the fractures extend from the first
layer to the fifth layer. See WFRA_LAYER.dat for complete example:
When we display the fractures in the 3D Viewer, we can observe that while the well is only completed in
the first layer (as marked in red on the well trajectory), the fractures are extended from the first layer all the
way to the fifth layer (as marked in orange), as specified by the LAYE option.
The DEPT option works in the same fashion as the LAYE option, except that for the DEPT option, lower
and upper depths should be entered instead of layers.
Location
RECU Section
Definitions
WGPP wellname
Notes
• This keyword is only required if the ALL argument is not used with the GPP keyword.
• An alternative to this keyword is GPP event.
Example
GPP WAA-1
Location
RECU Section
Description
WLGA specifies sets a gas lift value for a well. This only has an effect when the well has a lift table. The way in
which the lift gas rate is used depends on the lift curve:
• If the table has an ALQ (artificial lift quantity) which is a gas rate, then the lift gas value is applied to the
ALQ.
• If not, the lift gas value is added to the gas production rate of the well when looking up the lift table.
Definitions
Notes
Example
Location
RECU Section
Description
The WLGO keyword is used to make a well available or unavailable for group lift gas optimisation. The default
is that a well is available.
Definitions
1. Well name
2. ON or OFF
Notes
Examples
WLGO W100 No
10.111. WLGO - Well Availability for Group Lift Gas Optimisation 1027
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
The WLIF (WLIFT) keyword is used to request that the amount of artificial lift be set to optimise the oil production
of a well. WLIF consists of four required arguments and one optional argument, all of which should be entered on
the same line as the WLIF keyword itself when used.
Definitions
1. Well name
2. The minimum amount of lift that may be applied to the well (liftmin)
• Units: mscf/day (Field), ksm3 /day (Metric)
• Default: 0
3. The maximum amount of lift that may be applied to the well (liftmax)
• Units: mscf/day (Field), ksm3 /day (Metric)
• Default: 0
4. The minimum oil rate improvement per unit lift gas added
• Units: (stb/day)/(mscf/day) (Field), (sm3 /day)/(ksm3 /day) (Metric)
• Default: 1.0E-6
5. The size of gas rate packet to be added at each step of the optimisation (packet) (optional)
• Units: mscf/day (Field), ksm3 /day (Metric)
• Default: 0.05*(liftmax-liftmin)
Notes
• To be used with WLIF, a well must have an associated liftable TUBI table.
• To be liftable, a table must either:
– Have a gas rate dependence, gas being the FLOW variable, or have gas dependent RATI variable, or
– Have an ALQ variable of type GLIF (the ALQ value is used in preference if both are present)
• When WLIF is used, the amount of gas lift will be adjusted at the start of each timestep, unless a well
optimisation interval is set with GLOP. The program tests lift values from liftmin to liftmax, increasing the
lift value in steps of packet within this range until the well is operating on a bottom hole pressure or rate
target. If using ALQ variation to represent lift, the well’s ALQ is changed; if not, the value of the gas rate
used in the lift curve lookup is displaced by the lift gas rate.
• If a well has been shut because the well could not operate at the current top hole pressure target, WLIF
attempts to open the well by adding lift.
• Lift is only added whilst improvement, measured as d(Qo)/d(Lift), is greater than the minimum oil rate
improvement specified in argument #4 of the WLIF keyword.
• To stop using gas lift optimisation, set liftmax to zero.
• The amount of lift gas used by the well is reported as the rate file quantity WLIF if the RATE WELL packet
is selected. The well lift rate is also accounted up through the group system, and can be included in pipeline
calculations if the USEL argument on the PIPE keyword is selected.
• If the ALQ variable is of type GLIF, it is reserved for gas lift: it cannot be set using WALQ.
• A recommended alternative to this keyword is WLIF event.
Examples
1. WLIF is used to optimise the lift value for the well W100.
Location
RECU Section (before any well locations specified by x,y coordinates or i,j grid block number)
Description
The WLOC keyword is used to define the default well location format. This keyword consists of one argument for
which there are two possible options where you can choose from either X-Y coordinate or I-J grid value formats.
This argument should be entered on the same line as the keyword itself if used. If no arguments are given, the
default areal well location specification is by x and y coordinates.
Definitions
Notes
• The WLOC keyword defines the default well location format - options for individual wells still allow ei-
ther approach to be selected on a well by well basis (please see the LOCA and HORI keywords for more
information.)
Examples
1. WLOC is used to specify that well areal location specifications will default to x-y coordinates for the wells
I-1 and P-1. See WLOC_XY.dat for complete example:
WLOC X-Y
2. WLOC is used to specify that well areal location specifications will default to grid i,j values for the wells
I-2 and P-2. See WLOC_IJ.dat for complete example:
WLOC I-J
3. WLOC is used to specify that well areal location specifications default to x,y coordinates for the well I-3
and grid i,j values for the well P-3. See WLOC_XY_IJ.dat for a complete example:
WLOC X-Y
WLOC I-J
WELL P-3 PRODUCES LIQU QLIM=2000 PMIN=1000
LOCA 10 10
RADI 0.25 /
ZONE SKIN
5*-1 /
The wells are then located on the 3D grid as illustrated in the following figure.
Location
RECU Section
Definitions
1. wellname - name of the well to which the lift table addition is to be applied.
2. value - Value of the lift curve addition (Bars or Psi)
Notes
• The lift table addition is added to the bhp predicted after looking up the bhp for the well’s current thp.
• A recommended alternative to this keyword is WLTA event.
Example
Location
RECU Section
Definitions
1. wellname - name of the well to which the lift table multiplier is to be applied.
2. value - Value of lift curve multiplier
Notes
Example
Location
RECU Section
Definitions
WMPG wellname
Notes
• This keyword is only required if the ALL argument is not used with the MPGP keyword.
• An alternative to this keyword is MPGPP event.
Example
WMPG WEF-12
Location
RECU Section
Description
The WMUL keyword is used to specify a single completion connection factor multiplier for all the connections of
a well.
WMUL consists of two required arguments which should both be entered on the same line as the WMUL keyword
itself when used.
Definitions
1. Well name
2. Well completion connection factor multiplier
Notes
Example
Location
RECU Section
Description
The WPAL keyword is used to specify a well artificial lift quantity for the pipe attached to a well. This only has
an effect when the group has a pipe condition which has been characterised using a table with an artificial lift
variable. Please see the TUBI keyword for details of entering tubing tables with artificial lift.
WPAL consists of two required arguments which should both be entered in succession on the same line as the
GPAL keyword itself when used.
Definitions
1. Well name
2. Well artificial lift quantity
Notes
• To set the artificial lift quantity value for a well (top hole pressure calculation), the WALQ keyword should
be used instead of WPAL. WPAL sets the value for a pipe attached to the well.
• For more information regarding network models, please see the Network Modelling section of the MORE
Technical Reference.
• A recommended alternative to this keyword is WPAL event.
Examples
1. WPAL is used to set a well artificial lift quantity of 14500 for the well PROD_A.
Location
RECU Section
Description
The WPIP (well pipe) keyword is used to attach a named pipe to a well. This enables the pressure drop between
the well head and a network node to be calculated. WPIP consists of two required arguments and one optional
one. These arguments should all be entered on the same line as the WPIP keyword itself when used.
Definitions
1. Well name
2. Pipe name
3. OFF (optional) - stops further pipe calculations for the well
Notes
Examples
The OFF option is then introduced to stop further pipe calculations for the well, as follows:
Location
RECU Section
Description
The WPRI keyword is used to specify a well priority. This specification will override the default calculation
defined in the PRIO (Priority) keyword. WPRI consists of two required arguments, both of which should be
entered in succession on the same line as the WPRI keyword itself when used.
Definitions
1. Well name
2. Well priority value
Notes
Examples
Location
RECU Section
Description
The WPUM (well pump) keyword is used to attach a pipeline pump to a well. This enables a rate-dependent
pressure difference to be added to the well top hole pressure before matching the pipe inflow pressure. WPUM
consists of two required arguments and one optional one, all of which should be entered on the same line as the
WPUM keyword itself when used.
Definitions
1. Well name
2. Pump name
3. OFF (optional) - stops further pipeline pump calculations for the well
Notes
Examples
The OFF option is then introduced to stop further pipeline pump calculations for the well (effectively remove
the pump), as follows:
Location
RECU Section
Definitions
WRG wellname
Notes
• This keyword is only required if the ALL argument is not used with the RG keyword.
• A recommended alternative to this keyword is RG event.
Example
WRG WEF-12
Location
RECU Section
Description
The WSEG keyword is used to request that a well be modelled using the multi-segmented well option. WSEG
consists of five required arguments which should all be entered in succession on the same line as the WSEG
keyword itself when used.
Definitions
1. Well name
2. Maximum segment length
3. Starting measured depth for segment modelling
• Default: the first completion
4. Well absolute roughness
• Default: 10-4 (field), 3 * 10-5 (metric)
• Units: feet (Field), metres (Metric)
5. Name of radius and roughness table entered with RRTA
Notes
• Either the number of segments or the maximum segment length should be specified. Extra segment breaks
will be inserted at completions and well branches.
• Well Track Table and Well Event Table must first be defined using TTAB/ENDT and ETAB/ENDE respec-
tively before WSEG keyword can be used.
• Roughness table using RRTA keyword gets preference over the absolute roughness.
• Detailed information on the multi-segment well model used by Tempest MORE may be found in the Tech-
nical Reference.
• A recommended alternative to this keyword is WSEG event.
Examples
1. WSEG is used to request that the well WPRD be modelled using the multi-segmented well option with a
maximum segment length of 100, a starting measured depth of 5000, and a well default absolute roughness
of 0.375E-4. See WSEG.dat for complete example:
The multi-segmented WPRD well will then appear in the Wells tab of the results where it can be expanded
to show 4 segments with specific plottable 2D multi-segmented well data, as follows:
2. In this example, BRAN is used with the WSEG (multi-segmented well) option.
--* Specify well trajectory in true xyz space
TTAB
--*x y z md
P-1
1500 4500 5000 5000
1500 4500 6000 6000
P-1:1
1500 4500 5500 0
6000 4500 5500 4500
ENDT
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5600 5800 0.5 0 10
01/Jan/2000 PERF 3500 4500 0.5 0 10 BRANCH 1
01/Jan/2000 OPT 5000
01/Jan/2000 BHPT 1500
ENDE
We introduce the BRAN, WSEG, and RRTA keywords to define the branch structure, multi-segmented well
option and a roughness and radius table respectively. See BRAN_WSEG.dat for complete example:
RRTA RTAB1
--MD Rad Roughness
5000 0.10 0.01
5500 0.50 0.05
/
RRTA RTAB2
--MD Rad Roughness
0 0.60 0.55
1000 0.70 0.56
2000 0.80 0.57
3000 0.90 0.58
4000 0.99 0.59
/
If the argument SEGM under the GENE keyword in the RECU section is entered, the segment properties
can be viewed in the PRINT file and a plot using Tempest VIEW, as shown below:
Location
RECU Section
Description
The WSET keyword is used to construct a set of wells which can be used in well keywords to represent more than
one well.
Syntax
Definitions
Notes
1. The name of the well set must not be the name of an already existing well, group, or group set.
2. The name of the well set must not contain * (that is, a wild card character).
3. The operations + and clear create the well set if it does not exist already.
4. When a well keyword is applied to a set of wells, this keyword is applied to all matching wells that currently
exist.
Examples
--Set all wells matching the template MYSET to a rate of 250 stb/day
WELL MYSET PRODUCE LIQ QLIM=250 PMIN=100
READ 1 YEAR
READ 3 YEARS
Location
RECU Section
Description
The WSPC (Well Separator Conditions) keyword is used to attach a separator to a well. WSPC consists of two
required arguments, which should be entered on the same line as the WSPC keyword itself when used.
Definitions
1. Well name
2. Separator conditions name
Notes
Examples
1. WSPC is used to attach the separator conditions XXX to the well P-1.
-- Define separator conditions (note XXX should not be the name of a group)
Location
RECU Section
Description
Set the required tolerance for a well limit. An example would be if a well is to be cut back if a water limit is
exceeded. If the limit is exceeded by more than the allowed tolerance, the step is repeated. A maximum number
of step repeats may be specified; after that the simulation proceeds.
Syntax
Definitions
Notes
Example
1. Repeat step if a well limit is exceeded by more than 1%. Allow up to two repeated steps.
WTOL 0.01 2
Location
RECU Section
Description
The WTRC keyword is used to set the tracer injection concentration for an injector well. WTRC consists of three
required arguments which should be entered on the same line as the WTRC keyword itself when used.
Definitions
Notes
• The name of the component to carry the tracer must be in the CNAM in the INPU section.
• Before setting its concentration, the tracer should first be defined using the TRAC keyword.
• The injection concentration for a tracer associated with an injection well may also be defined using the
TRAC event in the RECU section.
• The injection concentration for an aquifer may be defined using the ATRC keyword in the RECU section.
• Tracer dependent property multipliers may be defined with the TFUN keyword.
• A recommended alternative to this keyword is TRAC event.
Examples
The TRC1 tracer can now be used with the WTRC keyword in the RECU section to set a tracer concentration
of one mole of tracer per mole of water for I-1 injection well. See WTRC.dat for complete example:
The tracer concentration array is then displayed in the Recurrent tab of the results for display in 3D as
illustrated in the following figure where we can observe the distribution of the TRC1 tracer in the reservoir
after 10 years.
Location
RECU Section
Description
The WUGR keyword is used to set well user guide rates. A well guide rate enables a group target to be shared
between wells and sub-groups. This keyword consists of two required arguments which should both be entered in
succession on the same line as the WUGR keyword itself.
Definitions
Notes
• Values assigned to the guide rates using WUGR may take on any value. Once all of the desired guide rates
are entered, MORE will sum up all of the guide rates together and then each well with a guide rate will be
assigned a fraction of the total according to their defined guide rates. Please see example below for more
information.
• A recommended alternative to this keyword is WUGR event.
Examples
1. In this example, we have two production wells, P-1 and P-2, which have oil production targets of 3000 and
5000 stb/day, respectively. Both of these wells belong in a group called PRODS and this group is given an
oil production target of 4000 stb/day, as follows. See WUGR_keyword.dat for complete example:
Once the simulation is run and we plot the oil production rates for P-1 and P-2, we will see that, by default,
the group target of 4000 stb/day for the oil production rate is split evenly between these two wells, with
2000 stb/day coming from each well.
Now, after 5 years, we introduce WUGR to the dataset and specify that well P-1 has a guide rate of 40 and
well P-2 has a guide rate of 60, as follows:
READ 5 YEARS
WUGR P-1 40
WUGR P-2 60
READ 10 YEARS
STOP
As a result, in 2005, the group oil production rate target of 4000 stb/day is then shared between the wells
according to their well guide rates. Now, well P-1 takes on 40/(40+60)=40% of 4000 stb day (or 1600
stb/day) while well P-2 takes on 60/(40+60)=60% of 4000 stb/day (or 2400 stb/day). When we plot the oil
production rates for these wells, we can observe that this is indeed the case.
2. Alternatively, WUGR events (c.f. Tempest MORE events) can be used to specify well guide rates. The
following setup is equivalent to that of above example. See WUGR_event.dat for complete example:
Location
RECU Section
Definitions
WVDK wellname
Notes
• This keyword is only required if the ALL argument is not used with the VDKR keyword.
• A recommended alternative to this keyword is VDKR event.
Example
WVDK WEF-12
Location
RECU Section
Description
The WWAG keyword is used to set up a well as a water alternating gas injector. This keyword consists of three
required arguments and many options, as is further discussed in the following Definitions section of this page. All
of the arguments and any options used should all be entered in succession on the same line as the keyword itself
when used.
Definitions
Options
Notes
• The two fluids to be alternately injected must previously have been defined using the AND qualifier of the
WELL keyword.
• If a second fluid is not specified using the AND option and WWAG is used, then the well switches between
injecting the specified fluid and being shut.
• Once the WWAG keyword has been read, the well alternates between two fluids indefinitely.
• At some point, it may be required to turn off the WAG operation and revert to normal operation. This may
be done with the OFF option.
• The default is option TIME and the WAG periods should be specified as time in days for this option.
• If SVOL is specified, injection volumes for P1 and P2 may be specified as surface volumes. The units in the
SVOL case are Mstb (field) or ksm3 (metric) for water and mmscf (field) or Msm3 (metric) for gas.
• If RVOL is specified, injection volumes P1 and P2 may be specified as reservoir volumes. The units in the
RVOL case are Mrb (field) or krm3 (metric).
• If RVFR is specified, the injection volumes P1 and P2 may be specified as fractions of the total reservoir
reference volume.
• If NFRA is specified with a value greater than 2, a series of weight fractions are expected after the keyword,
terminated with a slash (/) character. These take the form:
where wa1 = weight for the first injection period of injection fluid 1
wb1 = weight for the first injection period of injection fluid 2
The weights are the required fraction of the targets entered in the second and third arguments of the WWAG
keyword.
• Normally, the weights in the first sequence (wa1, wa2,..., wan) and the weights in the second sequence (wb1,
wb2,...,wbn) should each add up to unity. MORE issues a warning if this is not the case.
• WWAG is similar to the WSWI function but allows a well to be switched between primary and secondary
injection fluids on a time-period basis. WWAG specifies injection periods for the two fluids. The simulator
timesteps are controlled so that if a WAG transition is due, the time step is limited to align with it. This will
not be absolutely precise in the volume case as the amount injected is only known exactly after the time
step.
• A recommended alternative to this keyword is WWAG event.
Examples
1. The well I-1 is set up to have two injection fluids: gas and water. The WWAG keyword is then used to
introduce a WAG sequence which involves alternating between 30 days of gas injection and 30 days of
water injection. See WWAG_time.dat for complete example:
WELL I-1 INJECTS GAS Q=100 P=4000 BHP AND WATR Q=90 P=5000 BHP
WWAG I-1 30 30
READ 1 YEAR
When the gas and water injection rates are plotted on the same graph in 2D, the alternating gas and water
injection every 30 days is apparent.
Location
RECU Section
Description
The WELL keyword is used to provide well definitions and controls. WELL consists of at least five required
arguments, all of which should be entered in succession on the same line as the WELL keyword itself when used.
Definitions
1. Well name
2. Well action: PROD, INJE, STOP, or SHUT
• PROD - specifies a production well
• INJE - specifies an injection well
• STOP - stop the well (zero surface rate but the possibility of cross-flow)
• SHUT - shut the well (remove well from simulation); can also be achieved by setting the rate limits to
zero
3. Well limit: name of the well primary rate limit
• For producer: OIL, WAT, GAS, LIQU, or RESV
• For injector: GAS, WAT, OIL (MORE 6 permits oil injection)
• Historical rate targets: HOIL, HGAS, HWAT, HLIQ, HRES, HRGI, HRWI
• Historical pressure targets: HBHP, HTHP
4. Flow rate limit:
• If a single value is supplied, it must be the value of the primary rate. If values for all of the wells
streams are supplied, the appropriate value for the chosen primary limit is used.
• Units: stb/d for liquids, Mscf/d for gas (Field); standard m3 /d for liquids, 1000 m3 /d for gas (Metric)
• Setting all rate limits to zero shuts the well (see above)
5. Pressure limit: PLIM
• Minimum producing pressure or maximum injection pressure
• Units: psi (Field); bar (Metric)
6. [Comments]
• Comments may appear to the left of the equal (=) signs to provide documentation and improved read-
ability.
• Normally, the first equal sign defines the rate and the second equal sign defines the pressure. However,
it is possible to override this convention:
– If the string before the equal sign starts with a Q (e.g. Q=40000), with no intervening blank, the
value is interpreted as a rate.
– If the string before the equal sign starts with a P (e.g. P=14.7), with no intervening blank, the
value is interpreted as a pressure.
7. Limiting pressure: BHP or name of a TUBI table
Notes
• For producers, the target fluid RESV requests that a specified volume at reservoir conditions be removed
from the reservoir. The units are rb and m3 for field and metric units, respectively.
• The historical specifications expect that a table of historical data has been supplied with HFIL or HTAB.
Reservoir voidage (RESV) to match surface rates:
• RESV is a special option for a production well. It is common to have oil, gas, and water historical rates and
operate a well such that it matches the total reservoir volume of the three phases. This is often useful in the
early stages of a history match when the water cut and/or gas-oil ratios are incorrect but the correct overall
voidage should still be matched.
• MORE allows this to be done using the RESV well control, but specifying three rates, which are interpreted
as oil, gas, and water rates in surface units.
Note: this is the usual MORE order - oil, gas, water; not oil, water, gas as is used in ECLIPSE and other
simulators.
Examples
1. WELL is used to define an oil producer with a maximum production rate of 1000 and a minimum pro-
ducing bottom hole pressure of 500 (at datum). For a complete well definition, LOCA is also used to
specify the location of the well in (x,y) coordinates, RADI is used to assign a wellbore radius of 0.5, and
ZONE_completion is used to assign completions to the well.
2. WELL is used with the optional qualifier AND to enter two well streams in a single WELL keyword. In
this example, we have an injector well with a water stream and a gas stream. WSWI (WSWITCH) is then
used to switch between these two streams every few years. See WELL_AND.dat for complete example:
WELL WINJ INJE WATR Q=1000 P=4000 BHP AND GAS Q=800 P=5000 BHP
TIME 1 YEAR
WSWI WINJ
TIME 2 YEARS
TIME 3 YEARS
WSWI WINJ
TIME 4 YEARS
WSWI WINJ
TIME 5 YEARS
STOP
When the gas and water injection rates are plotted for WINJ, we can see the well switch from water to gas
injection or vice versa with every instance of WSWI.
3. WELL is used to set up a history matching well with the RESV option.
When this well specification is entered, MORE calculates the volume of 4322.1 stb oil, 3252.0 Mscf gas,
and 2010.0 stb water at the well BHP pressure of 130.0 and then run this well to produce this volume per
day. The actual production does not generally match the individual oil, gas, and water rates, but it represents
the same voidage production.
When this option is used, the historical well summary file items WOPRH, WGRPH, and WWPRH are filled
in with the numbers entered so that these can be compared with the calculated phase rates.
4. In this example, WELL is used with the HOIL and HWEF options to indicate that it should use its historical
tabulated quantities (given by either HFIL or HTAB) for its oil rate and well efficiency factor, respectively.
Location
Description
The CIJK sub-keyword of WELL is used to provide a simple means of entering connection information for hori-
zontal wells. As a sub-keyword of WELL, CIJK can only be used after the WELL keyword is specified.
If the Events format is used to enter well data, please use the CIJK event to enter completions for deviated wells.
After the CIJK keyword is specified, each line of data provided below it will represent the data for one completion.
Each line of data can have up to twelve arguments, of which, the first eight arguments are required. Following the
final row of CIJK data in the table, a solitary slash (/) on its own line is required to terminate the data entry for this
keyword.
Definitions
Notes
• The effect of a D-factor is to increase the effective skin of the completion as a function of the gas flow rate.
• If the FX or FY completion direction is specified, the fracture is assumed by default to extend across the
cell in the x- or y- direction.
• If the fracture extent is specified, the fracture may be given a total length of 2*FractureExtent (i.e. it extends
by the specified distance in each direction.
• See Well Index Calculations for more information regarding D-factors and fractured completions.
• When the WELL keyword is used, well completions can also be specified using the HORI, DEVI, or COMP
keywords. If the events format is being used, well completions can be specified using the PERF or CIJK
events.
• The saturation table used to calculate the completion mobilities is normally taken from the grid cell con-
taining the completion. This may be overriden by specifying a non-default value for the 13th argument.
The same saturation table number applies when hysteresis is present and the saturation tables (e.g. KRGO,
KRWG and KRWO) are specified with columns for both drainage and imbibition processes.
When the saturation table has been specified in the 13th argument and End Point Scaling is used, keyword
WEPS may be used to control whether the end points for the completion mobility calculation are taken from
this saturation table or from the grid cell containing the completion.
Examples
1. CIJK is used to specify the completions for the horizontal well I-1. The completion will be completed in the
third layer of the grid in the X-direction, starting and ending in cell 2 to 9 in the i-direction, respectively. As
the well radius has been provided by RADI , the remaining 4 required arguments for CIJK can be defaulted.
See CIJK.dat for complete example:
The deviated well and its completions will then appear in the 3D Viewer as follows:
Note: The well completion markers in red in the picture above are simply markers. They do not indicate the
true completion intervals of the horizontal well. They are markers that indicate the cells with completions
in them. For true completion intervals to be displayed in Tempest View, the well tracks should be entered
using the TTAB / ENDT or TFIL keywords instead of the CIJK well subkeyword. The well completions can
then be input using the well sub-keyword COMP or the events format should be used for well specifications,
using the PERF event to define completions. See the events section of the Tempest MORE documentation
for more information about the use of Events.
Location
Description
The COMP (complete) keyword is used to specify completions along a well whose welltrack has been specified
using the TFIL or TTAB / ENDT keywords. COMP is a WELL sub-keyword and can only be used after the WELL
keyword is specified.
COMP consists of up to seven required arguments and one optional argument which should all be entered in
succession on the same line as the COMP keyword itself when used.
Definitions
Notes
• It is possible to define more than one completion interval using COMP. Please see Example #2 below for
more information.
• If a new completion interval is set up, it is applied over any existing one. Please see Example #3 below for
more information.
• When the WELL keyword is used, well completions can also be specified using the HORI, DEVI, or CIJK
keywords. If the events format is being used, well completions can be specified using the PERF or CIJK
events.
• For more information about dual porosity and dual permeability grids, please refer to the DPOR and DPER
keywords respectively.
• The saturation table used to calculate the completion mobilities is normally taken from the grid cell contain-
ing the completion. This may be overriden by specifying a non-default value for the 7th argument. The same
saturation table number applies when hysteresis is present and the saturation tables (e.g. KRGO, KRWG and
KRWO) are specified with columns for both drainage and imbibition processes.
When the saturation table has been specified in the 7th argument and End Point Scaling is used, keyword
WEPS may be used to control whether the end points for the completion mobility calculation are taken from
this saturation table or from the grid cell containing the completion.
Examples
1. COMP is used to specify a completion interval for the well WINJ based on the T-WINJ track table specified
in TTAB. The completion will start at a measured depth of 5800 and end at a measured depth of 6000 with
a radius of 0.25, no skin factor, and a multiplying factor of 1.
TTAB
--* x y z md
T-WINJ
500.000 500.000 5000.00 5000.00
500.000 500.000 6000.00 6000.00
ENDT
2. COMP is used to specify two completion intervals for the well WPRD, both based on the T-WPRD track
table specified in TTAB. The first completion will start at a measured depth of 5000 and end at 5200 with
a radius of 0.25, no skin factor, and a multiplying factor of 1. The second completion starts at a measured
depth of 5600 and ends at 5800, again with a radius of 0.25, no skin factor, and a multiplying factor of 1.
See COMP.dat for complete example:
TTAB
--* x y z md
T-WPRD
9500.00 9500.00 5000.00 5000.00
9500.00 9500.00 6000.00 6000.00
ENDT
3. This example demonstrates the application of a new completion interval over an existing one. First, COMP
is used to specify a completion interval for the well P-1. This completion uses the TP-1 track table and starts
at a measured depth of 5000 and ends at 6000 with a radius of 0.25, no skin, and a multiplying factor of 1.
See COMP_Ex3.dat for COMP_Ex3lete example:
TTAB
--* x y z md
TP-1
9500.00 500.00 5000.00 5000.00
9500.00 500.00 6000.00 6000.00
ENDT
READ 2 YEARS
Thus, the completion interval for P-1 will then appear in the 3D Viewer as follows:
Then, say after 2 years, we add a new completion interval to zero a portion of the first completion interval.
This time, COMP will be used again to specify a completion interval which starts and ends at a measured
depth of 5400 and 5800, respectively. It will have a radius of 0.25, no skin, and a multiplying factor of 0
this time to zero a portion of the first completion interval.
We will then see that a section of the original completion from 5400 to 5800 has been zeroed and the new
completion interval will appear as shown below:
4. Completions for horizontal wells can also be specified using COMP. In this example, we specify a horizontal
trajectory for the well WPRD using TTAB and use COMP to specify two different completion intervals for
this well. Both completion intervals for this well will be based on the T-WPRD track table and have a
radius of 0.25, no skin factor, and a multiplying factor of 1. The first completion interval will range from a
measured depth of 5000 to 5200 while the second completion interval will range from 5500 to 5900. See
COMP_Horizontal.dat for COMP_Horizontallete example:
TTAB
--* x y z md
T-WPRD
9500.00 9500.00 5000.00 5000.00
9500.00 9500.00 5500.00 5500.00
9500.00 500.00 5500.00 6000.00
ENDT
5. COMP is used to specify a completion interval for the well P-1 in a dual porosity (DPOR) grid. The
completion interval is based on the P-1 track table provided by TTAB and starts and ends at a measured
depth of 4000 and 4030, respectively. Its radius is specified as 0.25 with no skin factor and a multiplying
factor of 1.0. The BOTH option is also used with COMP to request that the completions are made in both
the fracture and matrix grids. (By default, completions are only made in the fracture grid in a dual porosity
or dual permeability run.) See dualporo_COMP.dat for dualporo_COMPlete example:
As a result, the well P-1 will be completed in both the fracture and matrix grids, as shown below:
Location
Description
The CONV (conversion) keyword is used to define well conversion information for when the well is converted
due to a limit set by WLIM. CONV is a WELL sub-keyword and can only be used after the WELL keyword is
specified.
Arguments for CONV consist of three required arguments which should all be entered in succession on the same
line as the CONV keyword itself when used.
Definitions
Notes
Examples
1. CONV is used to convert the producer well P-1 into an injector well when its oil production rate falls below
1500 stb/day, as specified by WLIM. See CONV.dat for complete example:
As a result, once the oil production rate goes below 1500 stb/day, P-1 is converted into an injector to start
injecting water at a rate of 500 stb/day and stop producing oil, as shown in the plot below.
Additionally, the conversion of the well from producer to injector will also be reflected in the well’s icon in
the Well tab of Tempest View, as follows:
Location
Description
The CPLY (polymer concentration) keyword is used to specify the polymer concentration of water injected by a
well when the POLY (polymer) option has been turned on in the INPU (Input) or FLUI (Fluid) sections. If CPLY
is not specified, water will be injected with zero polymer concentration. CPLY is a WELL sub-keyword and can
only be used after the WELL keyword is specified.
CPLY consists of one required argument which should be entered on the same line as the CPLY keyword itself
when used.
Definitions
1. Polymer concentration
• Units: lbs/stb (Field), kg/sm3 (Metric)
Notes
Examples
1. CPLY is used to specify a polymer concentration of 15% for the injection well I-1. See polymer.dat for
complete example:
Polymer injection and production rates and totals can then be plotted in 2D from the Wells tab of the results,
as follows:
Plotting the polymer injection rate for well I-1 for the first 5 years, the following plot is obtained:
Polymer concentration data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Location
RECU Section
Description
The CWAG keyword is used to specify the continuous injection of water and gas for a well. CWAG consists of
three arguments, all of which should be entered in succession on the same line as the CWAG keyword itself when
used.
Definitions
Notes
• The amount of gas is specified as a surface volume ratio to the water (i.e. Mscf/stb or ksm3 /sm:sup:3). Once
CWAG has been selected, both surface water rate and surface gas rate control modes are available. The well
will attempt to meet the target for whichever phase is controlled, and inject the associated amount of the
other phase. This will continue until CWAG mode is turned off. Once CWAG is turned off, the well reverts
to being a water injector.
• A recommended alternative to this keyword is CWAG event.
Examples
1. CWAG is used to set up well I-1 to inject 0.2 ksm3 of gas for every sm3 of water injected, and attempt to
inject 90sm3 /day of water. See CWAG.dat for complete example:
READ 3 YEARS
Thus, a water injection rate of 90sm3 /day for well I-1 and a CWAG continuous gas-to-water ratio of 0.2 will
result in the injection of 90*0.2 = 18ksm3 /day of gas for well I-1. At some point, it may be required to turn
off the CWAG operation and revert to water injection. This may be done with the OFF argument:
READ 4 YEARS
The resulting water and gas injection from the CWAG specifications can be seen in the 2D plot below:
10.136. CWAG - Continuous Water and Gas Injection for a Well 1075
Tempest MORE Help, Release 8.1
Location
Description
The DEVI (Deviated Well) keyword is used to define the well location for a deviated well. DEVI is a WELL
sub-keyword and can only be used after the WELL keyword is specified.
Arguments for DEVI consists of a table with three columns that represent the i-j-k coordinates of the well location.
The first i,j,k-location coordinates should be entered on the same line as the DEVI keyword itself. All other
subsequent i,j,k-location coordinates should be entered below this. Following the final row of DEVI data in the
table, a solitary slash (/) on its own line is required to terminate the data entry for this keyword.
Definitions
Notes
• All grid blocks through which the deviated well passes have to be specified. CIJK and TFIL are usually
more convenient ways of entering deviated or horizontal wells.
• When the WELL keyword is used, well completions can also be specified using the COMP, HORI, or CIJK
keywords. If the events format is being used, well completions can be specified using the PERF or CIJK
events.
Examples
1. DEVI follows after the WELL keyword to specify the location is a deviated well. The grid locations where
the deviated well is completed are (2,5,1), (3,5,2), (4,5,3), (5,5,4), and (6,5,5). See DEVI.dat for complete
example:
Note: The well completion markers in red in the picture above are simply markers. They do not indicate the
true completion intervals of the deviated well. They are markers that indicate the cells with completions in
them. For true completion intervals to be displayed in Tempest View, the well tracks must be entered using
TTAB /ENDT or TFIL keywords instead of DEVI. The well completions can then be input using the well
sub-keyword COMP or the events format should be used for well specifications, using the PERF event to
define completions. Please see the Events section of the user guide for more information about the use of
Events in Tempest MORE.
Location
Description
The DFAC (D-Factor) keyword is used to specify the D-factor for a well. The effect of a D-factor is to increase
the effective skin of the well completions as a function of the gas flow rate. DFAC is a WELL sub-keyword and
can only be used after the WELL keyword is specified.
DFAC consists of one required argument which should be written on the same line as the DFAC keyword itself
when used.
Definitions
1. D-factor value
• Units: day/mscf (Field), day/ksm3 (Metric)
• Default: 0
Notes
• It is also possible to specify the D-factor for an individual completion using the CIJK keyword.
• In metric units, MORE uses a D-factor specified in terms of a gas rate in ksm3 /day. Some simulators use
gas rates in sm3 /day, and so D-factors in day/sm3 .
• Please see the Well Index Calculations section of the MORE Technical Reference for more information
regarding D-factors.
• A recommended alternative to this keyword is DFAC event.
Examples
Location
Description
The DRAW keyword is used to apply a drawdown target to a well defined by the WELL keyword. The default in
MORE is to not apply drawdown target to wells. DRAW is a WELL sub-keyword and can only be used after the
WELL keyword is specified.
DRAW consists of one required argument which should be entered on the same line as the DRAW keyword itself
when used.
Definitions
1. Drawdown target
• Units: psi (Field), bars (Metric)
Notes
• The drawdown for the well is the average of the drawdown for each completion, weighted by the connection
factor for each completion.
• The drawdown for a completion is:
where:
– Pdd is the drawdown pressure,
– Pcell is the cell pressure,
– Pbhp is the well bhp,
– dcell is the cell depth,
– dref is the bhp reference depth,
– ρ is the average wellbore fluid density,
– and G is the gravity constant.
• The draw-in for an injector completion is:
Pdd = Pdi
where:
– Pdd is the drawdown pressure,
– Pdi is the draw-in pressure.
• A recommended alternative to this keyword is DRAW event.
Examples
1. DRAW is used to limit the maximum drawdown for a well to 10 bars. See DRAW.dat for complete example:
Drawdown pressures can be plotted in 2D with the draw down pressure (wpdd) vectors that appears in the
Wells tab of the results in Tempest View, as follows:
2. Drawdown control can also be applied to injectors. For injectors, this limits the draw-in (this has the opposite
sign to the drawdown). In the example below, the well will be limited to a maximum draw-in of 5 bars.
When the drawdown pressure is plotted for the I-1 injector well, we will see the following:
Location
Description
The DREF keyword is used to specify an individual bottom hole pressure reference depth for a well that is defined
by the WELL keyword, overriding the default set by the DATU keyword. DREF may be set more than once in a
run, but until DREF is set for the first time, the default datum value defined by DATU will apply. DREF is a WELL
sub-keyword and can only be used after the WELL keyword is specified.
DREF consists of one required argument which should be entered on the same line as the DREF keyword itself
when used.
Definitions
Notes
Examples
1. DREF is used to specify a reference depth of 4510 for the well P-1.
Location
Description
The HIST keyword is used to specify historical well rates. HIST is a WELL sub-keyword and can only be used
after the WELL keyword is specified.
HIST consists of up to seven pairs of arguments, all of which should be entered on the same line as the HIST
keyword itself when used.
Definitions
The following pairs of arguments may appear in any order after the HIST keyword:
1. OIL and historical oil rate
2. WATR and historical water rate
3. GAS and historical gas rate
4. BHP and historical bottom hole pressure
5. THP and historical top hole pressure
6. WCT and historical water cut
7. GOR and historical gas-oil ratio
Notes
• If data is entered with HIST, it will automatically be included in MORE output files and is available for
plotting in Tempest.
• If using ECLIPSE files, the relevant summary file mnemonics are:
– WOPRH, WWPRH, WGPRH - historical oil, water, and gas production rates
– WWIRH, WGIRH - historical water and gas injection rates
– WBHPH, WTHPH - historical bottom and top hole pressures
– WWCTH, WGORH - historical water cut and GOR values
Examples
1. HIST is used to specify a historical oil rate, gas rate, bottom hole pressure, top hole pressure, and gas-oil
ratio for the well P-1.
These historical rates will then appear in the Wells tab of the results for 2D plotting, as follows:
Location
Description
The HORI (Horizontal Well) keyword is used to specify the location of a horizontal well when used with the
WELL keyword. HORI is a WELL sub-keyword and can only be used after the WELL keyword is specified. HORI
consists of four required arguments and three optional ones, all of which should be entered on the same line as the
HORI keyword itself when used.
Definitions
Notes
• CIJK and TFIL or TTAB are usually more convenient ways of entering deviated or horizontal wells - these
will calculate completion connection factors automatically.
• When the WELL keyword is used, well completions can also be specified using the COMP, DEVI, or CIJK
keywords. Zone completions can be specified using the ZONE keyword. If the events format is being used,
well completions can be specified using the PERF or CIJK events.
Examples
1. HORI is used to specify a x-direction horizontal injection well, I-1, which is located in the third layer of a
10x10x5 grid. The well is completed in the x-direction at i=2 through 9 and at j=10.
The horizontal well and its completions will then appear in the 3D Viewer as follows:
Note: The well completion markers in red in the picture above are simply markers. They do not indicate the
true completion intervals of the horizontal well. They are markers that indicate the cells with completions in
them. For true completion intervals to be displayed in Tempest View, the well tracks must be entered using
TTAB /ENDT or TFIL keywords instead of HORI. The well completions can then be input using the well
sub-keyword COMP or the events format should be used for well specifications, using the PERF event to
define completions. See the Events section of the user manual for more information about the use of Events
in Tempest MORE.
Location
Description
The LIFT keyword is used to specify the use of a lift gas injection for a well that is specified by the WELL keyword.
LIFT is a WELL sub-keyword and can only be used after the WELL keyword is specified.
LIFT consists of up to three arguments which should all be entered on the same line as the LIFT keyword itself
when used.
Definitions
1. Name of the injected fluid (fluidname) OR Name of the downhole pump table name (pumpname):
• Note: Currently, only GAS is possible for fluidname
2. Rate of lift gas injection (required argument when a fluidname is given in argument #1)
3. Turn lift on or off: ON or OFF (optional argument when a fluidname is given in argument #1)
• ON (default) - turn on the lift gas injection
• OFF - turn off lift gas injection
Notes
• The lift fluid rate is added to the flowing fluid stream for lift calculations only and hence, does not show up
in the produced fluid rates.
• A recommended alternative to this keyword is LIFT event for setting lift gas rate or PUMP event for speci-
fying a downhole pump.
Examples
1. LIFT is used to specify that a downhole pump is used to provide artificial lift for the injection well I-1. The
pump performance is given in table PMP1 (which is specified using the PUMP keyword. Please see the
PUMP keyword for more information.)
Location
Description
The LOCA (location) keyword is used to specify the location of a vertical well. LOCA is a WELL sub-keyword
and can only be used after the WELL keyword is specified. LOCA can only complete a well in the global grid or
one local grid. It is possible to complete a well in more than one grid using the more flexible CIJK keyword.
LOCA consists of two required arguments and three optional ones, all of which should be entered in succession
on the same line as the LOCA keyword itself when used.
Definitions
Notes
• WLOC sets the default for well locations. The X-Y or I-J options overrides the default.
• When the location of a well is supplied, it is automatically completed in all layers with zonal multipliers of
1.0.
• If the location supplied does not correspond to a grid point (for X-Y option), then the closest grid point is
used.
• If the WCOR keyword is used, wells in a corner block are placed on the corner of the grid. Wells in an edge
block are placed on the edge of the grid. If WCOR is not used, these blocks are treated in the same way as
other ones.
• The historical specifications expect that a table of historical data has been supplied with HFIL or HTAB.
Examples
1. LOCA is used with WELL to specify that well P-1 is located at coordinates of (1705, 300). See LOCA.dat
for complete example:
2. LOCA is used with WELL to specify that well P-2 is located in grid blocks (i=15, j=3).
Alternatively, by specifying WLOC to use I-J coordinates, we can omit the I-J option from the LOCA
keyword:
WLOC I-J
Both formats of LOCA above in this example will set the well P-1 in grid block (i=15, j=3).
3. LOCA is used with WELL to specify that the well W8943 is located in cell (2,3) of local grid LGR5. See
LOCA_LGRD.dat for complete example:
A well will then be created in cell (2,3) of the local grid LGR5, as shown below:
Location
Description
The P-RE keyword is used to specify the pressure at the external well radius. P-RE is a WELL sub-keyword and
can only be used after the WELL keyword is specified.
P-RE consists of one required argument and one optional one, both of which should be entered in succession on
the same line as the P-RE keyword itself. The optional argument consists of six possible options which are further
described below.
Definitions
Notes
• To obtain the pressure at the required radius, MORE takes the logarithmic drawdown curve which passes
through the well pressure at the well radius and the block pressure at the pressure equivalent radius (r0 ),
and extrapolates or interpolates it to the external radius (re ). If more than one layer is open, the well value
is obtained as a suitable weighted average.
• The pressure at the external radius supplied with P-RE is also used in place of the cell pressure when
calculating the well drawdown used for drawdown control, as described in the DRAW documentation. It is
possible to use the cell pressure for calculating the drawdown by selecting the NODD option of the DWPW
keyword, but this cannot be selected on a well-by-well basis.
• A recommended alternative to this keyword is PREX event.
Examples
1. P-RE is used to set the external radius for well P-1 at 600. See P-RE.dat for complete example:
The resulting pressure at the external radius can be plotted in 2D using the “Pressure at External Radius
(wbpr)” vector in the Wells tab of the results, as shown below:
Location
Description
The RADI keyword is used to specify a well radius, skin, and well-block equivalent radius for a well defined by
WELL. RADI is a WELL sub-keyword and can only be used after the WELL keyword is specified. RADI consists
of up to three arguments, all of which should be entered on the same line as the RADI keyword itself when used.
Definitions
1. Wellbore radius
• Default: previous value
• Units: feet (Field), metre (Metric)
2. Wellbore skin
• Initial value: 0
• Default: previous value
3. Well block equivalent radius
• Initial value: please see Well Index Calculations
• Default: previous value
• Units: feet (Field), metre (Metric)
Notes
• Please see the Well Index Calculations section of the MORE Technical Reference for more information
regarding wellbore radius and well block equivalent radius.
Examples
1. RADI is used to specify a wellbore radius of 0.5 for the well P-1.
2. RADI is used to specify a wellbore radius of 0.25 and a skin value of -1 for all zones for the well P-2.
Location
Description
The REDE (redefinition) keyword is used to provide well redefinition information for when the well is redefined
due to a limit set by WLIM. REDE is a WELL sub-keyword and can only be used after the WELL keyword is
specified.
Arguments for REDE consist of three required arguments and one optional one, which should all be entered in
succession on the same line as the REDE keyword itself when used.
Definitions
1. Name of fluid
• For producers, this is the name of the well’s primary rate limit:
– OIL, GAS, LIQU, or RESV
• For injectors: GAS or WAT
2. Maximum rate for injection or production (qlimit)
• Format: [comment] = qlimit
– Comments may appear to the left of the equal (=) sign to provide documentation and improved
readability.
• Units: stb/day for liquid, Mscf/day for gas (Field); standard m3 /day for liquid or gas (Metric)
3. Minimum producing pressure or maximum injection pressure (plimit)
• Format: [comment] = plimit
– Comments may appear to the left of the equal (=) sign to provide documentation and improved
readability.
• Units: psi (Field), bar (Metric)
• Note: Pressures correspond to the datum depth, as specified by DATU.
4. Limiting pressure (optional): BHP or name of tubing head pressure table
• BHP (the initial value) (default)- to indicate the limiting pressure is a bottom hole pressure (corrected
to the datum depth defined by DATU)
• Name of a tubing head pressure table - to indicate the limiting pressure is a tubing head pressure as
defined using TUBI
Notes
Examples
1. The well P-1 is assigned a minimum oil rate limit of 9500 by the WLIM keyword. When the oil rate falls
below 9500, the well is redefined via the REDE keyword to a new bottom hole pressure (BHP) limit of 300.
Next, if the oil rate falls below 9500 again, the BHP limit is reset to 200. Then, if the oil rate falls below
9500 for a third time, the BHP limit is set to 100.
Location
Description
The RESV keyword is used to indicate that injection rates have been specified using reservoir volumes rather than
surface volumes when defined in the WELL keyword. RESV is a WELL sub-keyword and can only be used after
the WELL keyword is specified.
Usually, well rates are specified as surface volumes. For some purposes, it is useful to specify rates in terms of
reservoir volumes. For producers, this is done in MORE using the RESV option that has been built into the WELL
keyword. In this case, RESV is used directly in the fluid definition for the producer well in the WELL keyword.
For injectors, this RESV sub-keyword of WELL must be used after the injection well has been defined by WELL.
There are no required arguments for RESV.
Definitions
n/a
Notes
n/a
Examples
1. RESV is used to indicate that the well I-1 is injecting water at a reservoir volume rate of 1000 rb/day. A
producer well, P-1, is also specified to produce at a reservoir volume rate of 1000 rb/day by using the RESV
option of the WELL keyword. These specifications will result in approximate pressure maintenance in the
reservoir. See RESV.dat for complete example:
When the injection and production rates are plotted in 2D for well I-1 and P-1, respectively, Tempest View
will plot the surface volume rate values instead of the reservoir volume rate values specified, as shown
below. The hydrocarbon average pressure has also been plotted on this graph to show the resulting pressure
maintenance in the reservoir.
Location
Description
The STEA (steam) keyword is used to specify the temperature, pressure, quality, and specific enthalpy of the fluid
being injected by a well when the STEAMOPTION (steam modelling) has been turned on in the INPU (Input) or
FLUI (Fluid) sections. If STEA is not specified, fluid will be injected with the average initial temperature of the
reservoir. STEA is a WELL sub-keyword and can only be used after the WELL keyword is specified.
STEA consists of four possible arguments which should be entered on the same line as the STEA keyword itself
when used. These arguments include the temperature, pressure, quality, and specific enthalpy of the fluid being
injected by a well. Generally, the user will specify the steam temperature or the steam pressure and the steam
quality. As an alternative, the steam specify enthalpy can be entered alone.
Definitions
Notes
• As an alternative to adding the STEAMOPTION (steam modelling) keyword to the INPU (Input) or FLUI
(Fluid) sections, steam modelling can also be requested by entering STEAM as a component with CNAM
in the INPU (Input) section.
• A recommended alternative to this keyword is STEAM event.
Examples
1. STEA is used to specify a steam injection temperature of 458o F and a steam quality of 70% for the injection
well I-1. The steam pressure and enthalpy are given their default values. See mspe4a.dat for complete
example:
Heat injection and production rates and totals can then be plotted in 2D from the Wells tab of the results, as
follows:
Plotting the heat injection rate for the well I-1, the following plot is obtained:
Reservoir temperature data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Location
Description
The STIM (stimulation) keyword is used to define well stimulation information for when the well is stimulated
due to a limit set by WLIM. STIM is a WELL sub-keyword and can only be used after the WELL keyword is
specified.
Arguments for STIM consists of two records.
• The first record contains one optional argument which should be entered on the same line as the STIM
keyword itself if used. A default value is automatically assigned for this argument if one of the six possible
options is not specified.
• The second record contains a list of values corresponding to the option chosen in record one. The second
record should be entered on a separate line below the STIM keyword.
Definitions
Record 1:
1. Stimulation Option: SKIN, REQV, K-H, WIDX, T-WI, or MULT
• SKIN - zone values are skin values
• REQV - well block equivalent radius
• K-H - zone values are well kh factors
• WIDX - zone values are normalized well index values (see the following Notes section below for more
information).
• T-WI - zone values are total well index values (Units: md-ft ormd-m)
• MULT (default) - zone values are zonal multipliers
Record 2:
1. List of zonal values specified in Record 1 for completion k
Notes
• STIM cannot create any new completions - it simply modifies the properties of existing completions.
• A well’s skin values can be seen in the CMPL section of the MORE .out file which can be viewed under
the Print tab of the results data in Tempest View. To request that the CMPL section be printed out into the
MORE .out file, the CMPL option needs to be added to the GENE keyword before the simulation is run.
Examples
1. In a 10x10x3 grid, STIM is used to change the skin values of a well’s completions to from 1 to -2 when the
well’s oil production rate falls below 1500, as specified by WLIM. See STIM.dat for a complete example:
When the oil production rate of well P-1 falls below 1500, STIM is called and the well’s 3 completions are
changed from the original skin value of 1 to a new skin value of -2. The resulting oil production rate from
the stimulation of well P-1 can be seen plotted in the following figure:
The change in the skin values of a well’s completions can be seen in the CMPL section of the MORE .out
file which can be viewed under the Print tab of the results data in Tempest View. When the oil production
rate is still above 1500, the well’s skin values are as follows:
CMPL========================================================
Completion Summary at 1 Jan 2001, 366.0 days
============================================================
Well P-1 :completion properties
I J K Dir Radius Depth Skin
--- --- --- --- -------- -------- --------
metre metre
--- --- --- --- -------- -------- --------
10 10 1 Z 0.076 2540.5 ... 1.00 ...
10 10 2 Z 0.076 2548.1 1.00
10 10 3 Z 0.076 2560.3 1.00
--- --- --- --- -------- -------- --------
After the well’s oil production rate drops below 1500, the well is stimulated and its new skin values as
assigned by STIM are added in the CMPL section of the MORE .out file as illustrated in the following:
CMPL=================================================
Completion Summary at 1 Jan 2002, 731.0 days
=====================================================
2. This example is similar to Example #1 above; however, in this case, STIM only specifies a new skin value
for the first 2 completions of well P-1. The final completion is not stimulated and is assigned a default value
(which is the previously defined skin value) by using the 1* connotation. See STIM_Ex2.dat for a complete
example:
Again, the well P-1 is stimulated when the oil production rate falls below 1500, as illustrated in the following
plot denoted in red. For comparison purposes, the green line on the plot was added to show the resulting oil
production rate that results from the stimulation in Example #1, where the completions in all layers were
stimulated instead of just the first two layers as in this example.
Upon examination of the MORE .out file, it is evident that the skin values have only been modified for
the first two layers of the completion when the oil production rate falls below 1500:
CMPL=================================================
Completion Summary at 1 Jan 2002, 731.0 days
=====================================================
Location
Description
The TEMP keyword is used to specify the temperature of the fluid being injected by a well when the THER
(thermal) option has been turned on in the INPU (Input) or FLUI (Fluid) sections. If TEMP is not specified, fluid
is injected at 15o C or 60o F, depending on the units used for the run. TEMP is a WELL sub-keyword and can only
be used after the WELL keyword is specified.
TEMP consists of one required argument which should be entered on the same line as the TEMP keyword itself.
Definitions
1. Injection temperature
• Units: o F (Field), o C (Metric)
Notes
Examples
1. TEMP is used to specify an injection temperature of 136.67 for the injection well I11.
Heat injection and production rates and totals can then be plotted in 2D from the Wells tab of the results, as
illustrated in the following figure:
Plotting the heat injection rate for the well I11, the following plot is obtained:
Reservoir temperature data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Location
Description
The WCOR (well corner) keyword is used to select the correction of well positions in the centre of a cell to
the corner or edge of the grid. The default is to make this correction, as this is the historical default in MORE.
However, WCOR OFF is generally recommended unless simulating pattern segments.
WCOR consists of one optional argument for which there are four possible options. If this optional argument is
used, it should be entered on the same line as the WCOR keyword itself.
Definitions
Notes
• If a well is completed in a corner cell such as (i=1, j=1), the correction calculates a well connection factor
on the basis that the well is in the corner or on the edge of the grid. Without the corner correction, the well
is assumed to be at the centre of the cell.
• The default is no corner correction - the corner cell is not treated specially.
• The corner correction can be useful when modelling standard quarter five spot segments.
• When a well is located using a well track, the exact position of the well is known and the corner correction
is applied only if the well trajectory runs along the corner of a cell or is in the plane between the cells.
• The image below illustrate wells with and without corner correction:
Examples
1. WCOR is used to correct well P-1 to the corner and well P-5 to the edge of a 10x10x5 grid. See WCOR.dat
for complete example:
WCOR ON
When these wells are viewed on the 3D grid, the wells are displayed in the centre of the cell whether WCOR
is turned on or off.
However, the effect of WCOR can be seen upon examination of the CMPL section of the .out file in the
Print tab of the results. More specifically, we can observe different completion connection factor (CCF)
values for the wells when WCOR is on or off, as further shown below.
With WCOR ON, we get the following CCF values for wells P-1 and P-5:
CMPL======================================================================================
Completion Summary at 2 Jan 2000, 1.0 days
==========================================================================================
--- --- --- --- -------- -------- -------- -------- -------- -------- ---------
,→--- -------- -------- -------- -------- -------- ----------
When WCOR is turned OFF, we can see the changes in the CCF values, as follows:
CMPL======================================================================================
Completion Summary at 2 Jan 2000, 1.0 days
==========================================================================================
Location
Syntax
WDEN density
Definitions
Notes
Examples
Location
Description
The WEFA keyword is used to specify a well efficiency factor between 0.0 and 1.0 for a well that is defined by
the WELL keyword. WEFA is a WELL sub-keyword and can only be used after the WELL keyword is specified.
WEFA would be used to specify the well efficiency factor when a well has downtime. For example, suppose that
a well had a 40% downtime and a target rate of 10000 stb/day. By specifying an efficiency factor of 0.6, the
well will operate at a bottom hole pressure corresponding to a rate of 10000 stb/day but the rate at which fluid is
extracted will be at 6000 stb/day (that is, it reflects the reduced efficiency due to the downtime).
WEFA consists of one required argument which should be entered on the same line as the WEFA keyword itself
when used.
Definitions
1. Well efficiency factor (any integer value between 0.0 and 1.0)
Notes
• If it is desired to enter a well efficiency factor independent from the WELL keyword, the WWEF keyword
may be used. WWEF is analogous to the WEFA keyword but does not need to follow the WELL keyword.
• A recommended alternative to this keyword is WEF event.
Examples
1. WEFA is used to specify a well efficiency factor of 50% for the well P-1. See WEFA.dat for a complete
example:
This results in the well P-1 being operated at a bottom hole pressure which yields a rate of 10000 stb/day,
but the actual net production is 5000 stb/day, as illustrated in the plot below (see the following figure). The
bottom hole pressure is plotted in green while the oil production rate can be seen in red.
To demonstrate the effect WEFA has on the bottom hole pressure and production rates, the plot in the
following figure displays the oil production rate and bottom hole pressure for the same well without the
WEFA keyword. See noWEFA.dat for a complete example.
Location
RECU Section
Description
The WEOS keyword is used to specify the equation of state used to flash the well when using multiple equation
of state regions with EOSN.
WEOS consists of two required arguments which should both be entered on the same line as the WEOS keyword
itself when used.
Definitions
Notes
Example
1. WEOS is used to associate all wells matching the well name template PRODNW* with the second surface
EoS specified using TEMP SURF:
WEOS 'PRODNW*' 2
2. WEOS is used to enforce the separator flash for the well based on looking up surface EoS solely by matching
the temperature of the separator stages with the surface EoS defined using TEMP SURF for well W13A:
WEOS W13A 0
10.155. WEOS - Set Surface Equation of State for the Well 1113
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
WEPS controls end point scaling when calculating well inflows when the saturation table index for the completion
has been explicitly specified using keywords CIJK, COMP, CNAC or events CIJK Event, PERF Event, CNAC
Event.
WEPS has no effect for completions where the saturation table index has been defaulted or not specified. The well
inflows are calculated using the relative permeabilities in the connecting grid blocks, accounting for any end point
scaling supplied for the grid blocks
Defaults
When the saturation table index has not been explcitly specified for a completion, the completion inflow mobility
is calculated using the saturation table for the completed grid block (specified using keyword SATN) together with
any end point scaling for the grid block.
When the saturation table index has been explicitly specified for a completion, none of the end points from
the completed grid block apply to the inflow mobility calculation for the completion. WEPS will override this
behaviour.
WEPS consists of 3 optional arguments which may be specified in any order.
Definitions
• HORIZ - The well inflow is calculated using the completion saturation table with the horizontal end points
from the completion grid block.
• VERT - The well inflow is calculated using the completion saturation table with the vertical relative perme-
ability end points from the completion grid block.
• PC - The well inflow is calculated using the completion saturation table with the vertical capillary pressure
end points from the completion grid block.
Notes
• For further information see the chapters on Well Inflow Calculations and End Point Scaling
Example
Well WINJ is based in the W-WINJ track table. COMP is used to setup completions between completion between
measured depths of 5800 and 6000 with a radius of 0.25, no skin factor, and a multiplying factor of 1. The 4th
saturation table is specified for the completion.
WELL WINJ INJE WATR Q=2000 PMAX=10000
COMP T-WINJ 5800 6000 0.25 0.0 1.0 4
This run is assumed to use end point scaling (specified using SWL, SWU SWCR etc., XKRO, XKRG, YKOW, YKOG
etc. and XPCW, XPCG). All the horizontal and vertical relative permeability end points from the 4th saturation
table are used to calculate the completion inflow relative permeabilities, and only the vertical grid block scalings
for capillary pressure (XPCW, XPCG) will be applied to this table.
WEPS PC
Location
Description
The WLIM keyword is used to provide auxiliary well limits. WLIM is a WELL sub-keyword and can only be
used after the WELL keyword is specified. WLIM consists of a maximum of four arguments, which are further
described in the following Definitions section. All of these arguments should be entered in succession on the same
line as the WLIM keyword when used.
Definitions
Notes
The remedial actions, CUTB, STIM, WORK, CONV, REDE, and SHUT are all carried out when a constraint with
which it is specified is violated, as follows:
• The STIM (stimulation) option revises the well index value according to input specified on the STIM well
sub-keyword when the specified limit is violated. When a stimulation is not successful, the well is shut-in.
• When the WORK (workover) option is specified, the zones with the largest ratio limit violation are shut-in
one at a time until either the well is shut-in or the ratio limit is no longer violated.
• When a CUTB (cutback) option is specified for a ratio limit, the well is cutback to maintain it within the
specified ratio limit; if not successful, the well is shut-in.
• The CONV (convert) option converts the producer into an injector if the limit with which it is specified is
violated.
• The SHUT (shut-in) option shuts-in the well if the limit with which it is specified is violated. If a limit with
which it is specified is violated, the REDE (redefine) option sets up to read new well rate and pressure limits
and tubing table names through the well sub-keyword (REDE).
• Recommended alternatives to this keyword are PLIM (for producer wells) and ILIM (for injector wells)
events.
Examples
1. WLIM is used to specify a WOR limit of 10 and the well will be shut-in if the WOR exceeds 10.
2. WLIM is used to add an extra well target rate of 500 Mscf/day. This will act in addition to the target rate on
the WELL keyword line.
WLIM will add 500Mscf/day of gas to the gas production rate defined by WELL, and thus, the well P-1
will be changed to produce 1500 Mscf/day of gas instead of the originally specified 1000 Mscf/day after the
WLIM keyword is read.
3. WLIM is used to specify that a well should be worked over if the GOR exceeds 5.
4. WLIM is used to specify that a well be stimulated if the oil rate falls below 300.
5. WLIM is used to specify that a well will be converted if the gas rate falls below 100. The well is converted
to an injector with the constraints specified using the CONV well sub-keyword.
6. WLIM is used to specify that a well will be shut-in if the GOR exceeds 10.
7. WLIM is used to specify that a well will be redefined if the oil rate falls below 5000. A custom well limit,
qomn, which was set up using the LIMI keyword, is used in this example.
8. WLIM is used to add a BHP target to a well. This might be done if the WELL line had specified a THP
target. This allows MORE to apply simultaneous BHP and THP constraints.
Location
Description
The WSWI (Well Switch) keyword is used to switch between primary and secondary injection fluids. WSWI is
a WELL sub-keyword and can only be used after the WELL keyword is specified. When the WELL keyword has
been used to specify an injection well with two injection fluids using the AND option, the well starts off injecting
the first fluid defined. The WSWI keyword may be used to switch between the two fluids.
WSWI consists of one required argument which should be entered on the same line as the WSWI keyword itself
when used.
Definitions
Notes
• The WSWI keyword is a useful alternative to the WWAG keyword for water alternating gas (WAG) injection
wells that do not have a simple periodic schedule.
Examples
1. WSWI is used to switch between water and gas injection at intermittent intervals between 100 and 500 days
for the WINJ injection well. See WSWI.dat for complete example:
WELL WINJ INJE WATR QLIM=1000 PMAX=10000 AND GAS QLIM=1500 PMAX=10000
READ 100 DAYS
WSWI WINJ
READ 168 DAYS
WSWI WINJ
READ 253 DAYS
WSWI WINJ
READ 500 DAYS
When the water and gas injection rates are plotted for WINJ, we can see the switching that occurs from one
injection fluid to the other at the specified periods:
10.158. WSWI - Switch between Primary and Secondary Injection Fluids 1119
Tempest MORE Help, Release 8.1
Location
RECU Section
Description
The WWEF keyword is used to specify a well efficiency factor between 0.0 and 1.0 for a well. WWEF is analogous
to the WELL subkeyword WEFA but does not need to follow the WELL keyword.
The well efficiency factor would be used when a well has downtime. Suppose that a well had a 40% downtime
and a target rate of 10000 stb/day. By specifying an efficiency factor of 0.6, the well will operate at a bottom hole
pressure corresponding to a rate of 10000 stb/day but the rate at which fluid is extracted will be at 6000 stb/day
(that is, it will reflect the reduced efficiency due to the downtime.)
WWEF consists of two required arguments which should be entered in succession on the same line as the WEFA
keyword itself when used.
Definitions
1. Well name
2. Well efficiency factor (any integer value between 0.0 and 1.0)
Notes
Examples
1. WWEF is used to apply a well efficiency factor of 50% for the well P-1. See WWEF.dat for complete
example:
This will result in the well P-1 being operated at a bottom hole pressure which will yield a rate of 10000
stb/day, but the actual net production will be 5000 stb/day.
To demonstrate the effect WWEF has on the bottom hole pressure and production rates, the following plot
illustrates the oil production rate and bottom hole pressure for the same well without the WWEF keyword.
Location
Description
The ZONE keyword is used to specify zone completions for wells defined by the WELL keyword. ZONE is a
WELL sub-keyword and can only be used after the WELL keyword is specified.
Arguments for ZONE consist of two records. The first record consists of one optional argument for which a default
value will be assigned if one of the seven possible options is not specified in this record. This argument should be
entered on the same line as the ZONE keyword itself when used. The second record consists of a list of values
corresponding to the option chosen in record one. This list should be entered on a separate line below the ZONE
keyword.
Definitions
RECORD 1:
1. Zone value (optional): SKIN, REQV, K-H, WIDX, T-WI, CCF, or MULT
• SKIN - zone values are skin values
• REQV - well block equivalent radius
• K-H - zone values are well kh factors
• WIDX - zone values are normalized well index values (See Notes section below for more information)
• T-WI - zone values are total well index values (WI)
• CCF - zone values are completion connection factors (CCF)
• MULT (default) - zone values are zonal multipliers
RECORD 2:
1. List of zonal values specified in Record 1 for each layer in the grid
Notes
• When the zonal values entered are WIDX (normalized well index values), the values read are multiplied by
cπkh (c = 0.5, 1 or 2) for each layer. Please see the Well Index Calculations section of the MORE Technical
Reference for more information.
• The CCF is related to the well index WI by:
CCF = Cdarcy × W I
Examples
1. ZONE is used to specify zonal multipliers in layer 1, 3, and 5 in a 10x10x5 grid as follows. See
ZONE_Ex1.dat for complete example:
WELL WPRD PROD OIL Q=2000 P=500
LOCA 9500 9500
RADI 0.25
ZONE MULT
1 0 1 0 1
The well will then appear in the 3D Viewer with completions in layers 1,3, and 5, as shown below:
2. ZONE is used to specify zonal multipliers and skins for the well L415. See ZONE_Ex2.dat for complete
example:
WELL L415 PROD OIL Q=1000 P=500
LOCA 414 985
RADI 0.5 +1
ZONE MULT
0 0 1 1 1 1 1
ZONE SKINS
4* 2 2*-1
As a result, the well will be completed in layers 3 through 7. A wellbore radius of 0.5 and zonal multipliers
of 1 will be used in the well index calculations for the completed zones. Skin values for zones 3 through 7
will be 1,1,2,-1, and -1. This data can be seen in the CMPL section of the .out file which can be viewed
under the Print tab of the results in Tempest View.
,→CMPL======================================================================================
Completion Summary at 2 Jan 2000, 1.0 days
,→==========================================================================================
--- --- --- --- -------- -------- ... ------------ -------- -------- -------
- -------- ---------
,→
Additionally, the completions can be seen when the well is plotted in the
3D Viewer:
Location
Description
The RECY keyword is used to specify a recycle operation between two groups of wells. RECY consists of four
required arguments and one optional one, all of which should be entered on the same line as the RECY keyword
itself when used.
Definitions
1. Recycle stream name which becomes a standard composition name to designate an injection fluid (please
see the WELL keyword for more information)
2. Group containing the producers providing recycle fluid stream
3. Group containing the injectors into which produced fluid stream is injected
4. Production fluid stream to be recycled: must be GAS or WAT
5. Recycle control (optional): ON or OFF
• ON (default) - turns recycle on
• OFF - turns recycle off
Notes
• Makeup and sales rates can also be specified with the RECY keyword using the MAKE and SALE keywords,
respectively. For compositional systems, one can use CMAK and CSAL to specify makeup and sales rates
by components, respectively.
• Once a recycle link has been defined between a group of producers and that of injectors, all injectors are
affected likewise. I.e. their available injection fluid is limited to the production even if the recycle stream
name is not explicitly attached (e.g. via STRE event) to the injector. To overcome this limitation in case of
gas recycling, use the sub-keyword MAKE.
Examples
1. RECY is used to define a recycle stream named PRDG that recycles 5000 Mscf/day of gas produced from
well P-1 into well I-1 whilst well I-2 continues to inject water.
I-1
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 GIT 5000.00
01/Jan/2000 STREAM PRDG
01/Jan/2000 BHPT 4000.00
I-2
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 100.00
01/Jan/2000 BHPT 6000.00
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 GPT 7000.00
ENDE
As a result, 5000 Mscf/day of gas from the 7000 Mscf/day of gas produced from producer P-1 will be
recycled back to the injector well I-1.
2. RECY is used to specify that gas produced from the wells in group OILC is to be reinjected into the injection
wells in group GCAP subject to the maximum gas rate of 17000. Any excess gas is marked for sales. If
the total gas production falls below 17000, the injection well rates will be cut back. When gas is re-injected
into a group using the RECY keyword, this modifies the injection rate of gas injectors only.
GROU OILC WP01 WP02 WP05
GROU GCAP W105 W101 W109
W101
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 GIT 5000.00
01/Jan/2000 STREAM RGAS
01/Jan/2000 BHPT 6000
W105
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 GIT 9000.00
01/Jan/2000 STREAM RGAS
01/Jan/2000 BHPT 8000
W109
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 GIT 3000.00
01/Jan/2000 STREAM RGAS
01/Jan/2000 BHPT 4000
WP01
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5600.00 0.50000 0.0 1.0
01/Jan/2000 OPT 5000.00
WP02
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5600.00 0.50000 0.0 1.0
01/Jan/2000 OPT 8000.00
WP05
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5600.00 0.50000 0.0 1.0
01/Jan/2000 OPT 5000.00
ENDE
As a result, due to limited gas production in the first 6 years, the gas injection rate for the GCAP group
will be limited by the production rate. After 2006, gas production starts to increase and the maximum gas
injection rate of recycled gas from the stream RGAS is achieved.
Location
Description
The CSAL keyword is used to specify the amount of gas produced by component from a well that will go to
sales and be unavailable for recycling in a compositional system. In this case, sale gas rates will be individually
specified for each component present in the system. CSAL is a RECY sub-keyword and must be used only after
the RECY keyword has been specified.
Arguments for CSAL consist of two records. The first record consists of one optional argument which should be
entered on the same line as the CSAL keyword itself if used. The second record consists of a list of compositional
sales rates or fractions entered on a separate line below the CSAL keyword.
Definitions
RECORD 1:
1. Compositional sales rate format (optional): FRAC or RATE
• RATE (default) - sales rate is defined as a rate
• FRAC - sales rate is defined as a fraction of each component’s production
RECORD 2:
1. List of sales rates for each component
• The order of the compositional sales rates in this list is defined by the order of the components listed
under the CNAM keyword
• Default: 0
Notes
• The CSAL keyword alters the usual priority of recycling and sales for a given sub-rate or fraction of the
production. The order of operations is:
1. CSAL gas requirement is deducted from production of the production group specified in RECY
2. The remaining gas available to satisfy the recycle target
3. If this target can be satisfied, any further remaining gas added to the sales gas total
Examples
1. For an equation of state example with 3 components which are defined by CNAM as CO2, N2, and C1,
CSAL is used to remove up to 100 Mscf/day of the component C1 for sales. See CMAK_CSAL_rates.dat
for complete example:
A gas sales rate vector (fsaler) will then appear in the Groups tab of the results in Tempest for plotting in
2D. When we plot this vector, we will see a gas sales rate of 100 Mscf/day, as shown below:
2. In this example, compositional sale fractions will be given instead of rates. Using the same CNAM list
defined in the example above, this time we will use CSAL to specify that half of the C1 that is produced
will be sold. See CMAK_CSAL_frac.dat for complete example:
When the gas sales rate is plotted with the C1 production rate, we can see that indeed the gas sales rate is
approximately 50% of the C1 production rate.
Location
Description
The CMAK keyword is used to specify the amount of makeup gas that is required by component for recycling in
a compositional system. In this case, makeup gas rates will be individually specified for each component present
in the system. CMAK is a RECY sub-keyword and must be used only after the RECY keyword has been specified.
Arguments for CMAK consist of two records. The first record consists of one optional argument which should be
entered on the same line as the CMAK keyword itself if used. The second record consists of a list of compositional
makeup rates or fractions entered on a separate line below the CMAK keyword.
Definitions
RECORD 1:
1. Compositional makeup rate (optional): FRAC or RATE
• RATE (default) - makeup rate is defined as a wet gas rate for each component
• FRAC - makeup rate is defined as a fraction of each component’s production
RECORD 2:
1. List of makeup rates for each component
• The order of the compositional makeup rates in this list is defined by the order of the components
listed under the CNAM keyword
• Default: 0
Notes
n/a
Examples
1. For an equation of state example with 3 components which are defined by CNAM as CO2, N2, and
C1, CMAK is used to add a makeup rate of 50 Mscf/day of CO2 to the PRDG recycling stream. See
CMAK_CSAL_rates.dat for complete example:
A gas makeup rate vector (fmaker) will then appear in the Groups tab of the results in Tempest for plotting
in 2D. When we plot this vector, we will see a gas makeup rate of 50 Mscf/day:
2. In this example, compositional makeup fractions will be given instead of rates. Using the same CNAM list
defined in the example above, this time we will use CMAK to specify that 200% of the production rate of
CO2 is available as makeup gas. See CMAK_CSAL_frac.dat for complete example:
When the gas makeup rate is plotted with the CO2 production rate, we can see that indeed the gas makeup
rate is approximately 200% of the CO2 production rate.
Location
Description
The SALE keyword is used to specify the amount of gas produced from a well that will go to sales and be
unavailable for recycling. SALE is a RECY sub-keyword and must be used only after the RECY keyword has been
specified.
SALE consists of one required argument and one optional argument, both of which should be entered on the same
line as the RECY keyword itself when used.
Definitions
Notes
• The SALE keyword alters the usual priority of recycling and sales for a given sub-rate or fraction of the
production. The order of operations is:
1. SALE gas requirement is deducted from production of the producer group specified in RECY.
2. The remaining gas is available to satisfy the recycle target.
3. If this target can be satisfied, any further remaining gas added to the sales gas total.
• An illustrated example of makeup and sales rates in a recycle operation can be seen below:
Examples
1. Suppose a study has the following keywords to control production and injection using the recycling (RECY)
option (metric units):
I-1
01/Jan/2000 INJE
01/Jan/2000 PERF 1767.84 1828.80 0.15240 0.0 1.0
01/Jan/2000 GIT 2000.00
01/Jan/2000 STREAM
01/Jan/2000 BHPT 2000.00
01/Jan/2004 GIT 800.00
01/Jan/2004 STREAM
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 1524.00 1584.96 0.15240 0.0 1.0
01/Jan/2001 GPT 1000.00
01/Jan/2002 GPT 1200.00
ENDE
Thus, the production from well P-1 is recycled into well I-1, subject to a sales rate of 100ksm3 /day, but a
makeup gas is available at a rate of 50 ksm3 /day. The injector has an initial target of 2000 km3 /day, but this
is subject to the recycling conditions.
Plotting the gas injection and production rates for the group ALL, we will see the following:
Between 0 and 1 year, there is no injection as there is no production and there is no gas available for the
recycling operation.
Between 1 and 2 years, there is injection at a rate of 950 ksm3 /day. 1000 ksm3 /day of gas is produced, of
which 100 ksm3 /day is sold, leaving 900 ksm3 /day. This is below the injection target of 2000 ksm3 /day, so
the makeup gas is used, resulting in a final injection rate of 950 ksm3 /day.
Between 2 and 4 years, the injection rate rises to 1150 ksm3 /day, as an extra 200 ksm3 /day of gas is being
produced.
Between 4 and 6 years, the injection rate is 800 ksm3 /day. Plenty of recycle gas is available, but the injector
Location
Description
The MAKE keyword is used to specify the amount of makeup gas that is required in a recycle operation. The
makeup gas allows additional gas to be imported into the study for injection. With the makeup rate, the injection
rate can exceed the production rate minus the sales rate. MAKE is a RECY sub-keyword and must be used only
after the RECY keyword has been specified.
MAKE consists of one required argument and one optional argument, both of which should be entered on the
same line as the MAKE keyword itself when used.
Definitions
Notes
• An illustrated example of makeup and sales rates in a recycle operation can be seen below:
Examples
1. MAKE is used with RECY to add a makeup rate of 1000 Mscf/day of gas to the MKUP recycling stream.
WINJ
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 GIT 4000.00
01/Jan/2000 STREAM MKUP
WPRD
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 GPT 2000.00
ENDE
Since the well WINJ has an injection target of 4000.00 Mscf/day, all of the gas produced from WPRD will
be recycled. However, there is only 2000.00 Mscf/day of gas available from the production stream. As a
result, the WINJ well will pull from the makeup rate specified to try to make up the 4000.00 Mscf/day gas
injection target. But with only 1000 Mscf/day of makeup gas available, we will only see a maximum gas
injection rate of 3000.00 Mscf/day.
2. Suppose a study has the following keywords to control production and injection using the recycling (RECY)
option (metric units):
I-1
01/Jan/2000 INJE
01/Jan/2000 PERF 1767.84 1828.80 0.15240 0.0 1.0
01/Jan/2000 GIT 2000.00
01/Jan/2000 STREAM
01/Jan/2000 BHPT 2000.00
01/Jan/2004 GIT 800.00
01/Jan/2004 STREAM
P-1
01/Jan/2000 PROD
ENDE
Thus, the production from well P-1 is recycled into well I-1, subject to a sales rate of 100ksm3 /day, but a
makeup gas is available at a rate of 50 ksm3 /day. The injector has an initial target of 2000 km3 /day, but this
is subject to the recycling conditions.
Plotting the gas injection and production rates for the group ALL, we will see the following:
Between 0 and 1 year, there is no injection as there is no production and there is no gas available for the
recycling operation.
Between 1 and 2 years, there is injection at a rate of 950 ksm3 /day. 1000 ksm3 /day of gas is produced, of
which 100 ksm3 /day is sold, leaving 900 ksm3 /day. This is below the injection target of 2000 ksm3 /day, so
the makeup gas is used, resulting in a final injection rate of 950 ksm3 /day.
Between 2 and 4 years, the injection rate rises to 1150 ksm3 /day, as an extra 200 ksm3 /day of gas is being
produced.
Between 4 and 6 years, the injection rate is 800 ksm3 /day. Plenty of recycle gas is available, but the injector
is controlled by its injection target.
10.166 IORD - Order for Reinjection and Makeup into Injected Gas
Location
RECU Section
Description
The IORD keyword is used to enable the change in order of priorities in which to take a mixture of recycle and
make-up gas when both are available.
IORD consists of one required argument which should be entered on the same line as the IORD keyword itself
when used.
Definitions
Notes
• The position of IORD in the recurrent section is significant. IORD values can be changed during the course
of a run.
• Related keywords: RECY, MAKE, SALE, CMAK, and CSAL.
• Recycle calculations are performed at the end of every time step. To obtain the correct composition of the
recycle fluid, the first time step is repeated.
• Any sales requirement specified using the keywords RECY sub-keywords SALE or CSAL will be satisfied
first.
• Remaining gas (gas left after satisfying sale and recycle requirements) is added to total sales.
Examples
1. In the example below, there are two groups PROD and INJE. Group PROD has been set a gas production
rate of 1300 Mscf/d, and group INJE has been set a gas injection rate (from recycled and make-up gas)
of 1500 Mscf/day. A make-up gas rate of 1200 Mscf/d is setup using the keyword MAKE . A 700 Mscf/d
sales requirement is specified using the RECY sub-keyword SALE . This requirement is satisfied first. See
IORD_MIX.dat for complete example:
IORD MIX
RECYCLE PRDG PROD INJE GAS
MAKE 1200 /
SALE 700 /
ETAB
PROD
0 GGPT 1300
INJE
0 GGIT 1500
ENDE
10.166. IORD - Order for Reinjection and Makeup into Injected Gas 1141
Tempest MORE Help, Release 8.1
2. This example is the same as first example except that IORD MIX is replaced with IORD MR. See
IORD_MR.dat for complete example:
IORD MR
3. This example is the same as first example except that IORD MIX is replaced with IORD RM. See
IORD_RM.dat for complete example:
IORD RM
10.166. IORD - Order for Reinjection and Makeup into Injected Gas 1143
Tempest MORE Help, Release 8.1
10.167 ORDE - Order for Fuel, Sales and Reinjection from Pro-
duced Gas
Location
RECU Section
Description
The ORDE keyword is used to enable the change in order of priorities in which to satisfy fuel (GFUE), sales
(GSAL) and recycle requirements (RECY) from produced gas.
ORDE consists of one required argument which should be entered on the same line as the ORDE keyword itself
when used.
Definitions
Notes
• The position of ORDE in the recurrent section is significant, and ORDEr can be changed during the course
of a run.
• Recycle calculations are performed at the end of every time step. To obtain the correct composition of the
recycle fluid, the first time step is repeated.
Examples
1. In the example below, there are two groups PROD and INJE. Group PROD has been set a gas production
rate of 1100 Mscf/d, and group INJE has been set a gas injection rate (from recycled gas) of 1000 Mscf/day.
GFUE and GSAL requirements have been set to 100 Mscf/d and 200 Mscf/d respectively. Default order of
argument FSR is entered. See ORDE_FSR.dat for complete example:
ORDER FSR
ETAB
PROD
0 GGPT 1100
0 GFUEL 100 0
0 GSALE 200 0
INJE
0 GGIT 1000
ENDE
2. This example is the same as first example except that ORDE FSR is replaced with ORDE FRS. See
ORDE_FRS.dat for complete example:
ORDE FRS
10.167. ORDE - Order for Fuel, Sales and Reinjection from Produced Gas 1145
Tempest MORE Help, Release 8.1
3. This example is the same as first example except that ORDE FSR is replaced with ORDE SFR. See
ORDE_SFR.dat for complete example:
ORDE SFR
4. This example is the same as first example except that ORDE FSR is replaced with ORDE SRF. See
ORDE_SRF.dat for complete example:
ORDE SRF
5. This example is the same as first example except that ORDE FSR is replaced with ORDE RFS. See
ORDE_RFS.dat for complete example:
ORDE RFS
6. This example is the same as first example except that ORDE FSR is replaced with ORDE RSF. See
ORDE_RSF.dat for complete example:
ORDE RSF
10.167. ORDE - Order for Fuel, Sales and Reinjection from Produced Gas 1147
Tempest MORE Help, Release 8.1
Location
Description
The TUBI (tubing) keyword is used to define a tubing head pressure table. This is required in order to set a tubing
head pressure limit on a well specified using the WELL keyword or the LTAB event.
TUBI consists of two required arguments and two optional arguments, all entered on the same line following the
TUBI keyword. This line is followed by one or more subkeywords which specify the variables in the table. The
TUBI subkeywords are: FLOW, THP, RATI, ALQ, and BHP.
Definitions
Notes
• The typical order in which the TUBI subkeywords should appear after TUBI keyword is as follows: FLOW,
THP, RATI, ALQ (optional), and then BHP. A different order may be used, but it is not recommended. If
the subkeywords are in a different order, the ordering of the data must be adjusted as well.
Examples
1. TUBI is used to specify a tubing head pressure table named TAB3. The FLOW, THP, RATI, and BHP
subkeywords of TUBI are also used to complete the tubing head pressure table specification. This tubing
head pressure table will relate the BHP to the THP as a function of oil flow and GOR.
With the presence of 5 FLOW, 3 THP, and 3 RATI values, the number of BHP values needed will be the
number of entries of FLOW*THP*RATI. In this case, we have 5*3*3=45 BHP values required.
TUBI is also used to specify that the BHP values will be entered using the PACK format by default and
these BHP values will be referenced to 7000 ft. If the well BHP reference depth is not at this value, an
appropriate correction will be made.
TUBI TAB3 7000 PROD
FLOW OIL
180 240 300 360 1200 /
THP
415 715 1315 /
RATI GOR
3 5 8 /
BHP / flow1 flow2 flow3 flow4 flow5
1010 1015 1020 1024 1060 / thp =415 gor = 3
1650 1655 1660 1665 1672 / thp =715 gor = 3
3147 3157 3167 3177 3187 / thp =1315 gor = 3
875 882 1072 1015 1089 / thp =415 gor = 5
1480 1485 1503 1474 1520 / thp =715 gor = 5
2500 2510 2520 2530 2550 / thp =1315 gor = 5
823 937 1254 1171 1301 / thp =415 gor = 8
1309 1345 1472 1507 1607 / thp =715 gor = 8
2331 2341 2373 2413 2461 / thp =1315 gor = 8
/
The tubing table can also be immediately viewed in a graphical format by double-clicking on the Tubing
Table data item under the Data tab of the Data Supervisor, as illustrated in the following figures.
Please note that these tubing table plots can also be edited interactively directly from its graphical display.
All changes made on the graphical display are automatically reflected in the text file.
2. In this example, we input the same tubing head pressure table data as the example above, except that the
LONG format option is used instead of the default PACK format for the BHP input values. The LONG
option breaks down the BHP entries into smaller sub-tables. The arguments of the BHP keyword identify
the ratio values and ALQ values to which the sub-table applies.
In this case, there is a BHP sub-keyword for each set of FLOW*THP values and MORE matches the GOR
ratio associated with each BHP sub-keyword against the ratio values entered. Thus, we will have 3 different
BHP tables for each GOR ratio and each BHP table will have 5*3=15 values (i.e. number of flow*thp
entries).
This input also produces the same tubing table plot as the preceding example.
Location
RECU Section (after the TUBI keyword but before the BHP sub-keyword)
Description
The FLOW keyword is used to specify fluid flow rates for a tubing head pressure table defined by TUBI. FLOW
is a TUBI subkeyword and must be used only after the TUBI keyword has been specified. Additionally, FLOW
should be specified first before all of the other TUBI subkeywords are used.
Arguments for FLOW consist of two records. The first record consists of one optional argument which should
be entered on the same line as the FLOW keyword itself if used. The second record is entered on a separate line
below the FLOW keyword and its arguments consist of a list of flow rates which must be terminated by a slash (/)
after the final entry.
Definitions
RECORD 1:
1. Flow rate fluid (optional): OIL, GAS, WAT, LIQ
• OIL (default) - the flow rates in the table are oil flow rates
• GAS - the flow rates in the table are gas flow rates
• WAT - the flow rates in the table are water flow rates
• LIQ - the flow rates in the table are liquid flow rates
RECORD 2:
1. Flow rate values
• Notes:
– Flow rate values must be in ascending order.
– Values may be spread over more than one line.
– A slash (/) is required at the end of the input.
• Units:
– Oil flow rates: stb/day (Field), sm3/day (Metric)
– Gas flow rates: Mscf/day (Field), ksm3/day (Metric)
– Water flow rates: stb/day (Field), sm3/day (Metric)
– Liquid flow rates: stb/day (Field), sm3/day (Metric)
Notes
• The typical order in which the TUBI subkeywords should appear after the TUBI keyword is as follows:
FLOW, THP, RATI, ALQ (optional), and then BHP. A different order may be used, but it is not recom-
mended. If the subkeywords are in a different order, the ordering of the data must be adjusted as well.
Examples
1. FLOW is used to specify a tubing table with 4 oil flow rates. With the presence of 4 FLOW, 1 THP, and 4
RATI values, the number of BHP values needed will be the number of entries of FLOW*THP*RATI. In this
case, we have 4*1*4=16 BHP values required.
This example used the PACK format (set by TUBI) for entering BHP values and these BHP values will be
referenced to 6500 ft. If the well BHP reference depth is not at this value, an appropriate correction will be
made.
The tubing table can also be immediately viewed in a graphical format by double-clicking on the Tubing
Table data item under the Data tab of the Data Supervisor, as shown below:
Please note that these tubing table plots can also be edited interactively directly from its graphical display.
All changes made on the graphical display will automatically be reflected in the text file.
2. In this example, we will input the same tubing head pressure table data at the example above, except that
the LONG format option will be used instead of the default PACK format for the BHP input values. The
LONG option breaks down the BHP entries into smaller sub-tables. The arguments of the BHP keyword
identify the ratio values and ALQ values to which the sub-table applies.
In this case, there is a BHP sub-keyword for each set of FLOW*THP values and MORE matches the GOR
ratio associated with each BHP sub-keyword against the ratio values entered. Thus, we will have 4 different
BHP tables for each GOR ratio and each BHP table will have 4*1=4 values (i.e. number of FLOW*THP
entries).
This will also produce the same tubing table plot as the example above.
Location
RECU Section (after the TUBI keyword but before the BHP sub-keyword)
Description
The THP keyword is used to specify tubing head pressures for a tubing head pressure table defined by TUBI.
THP is a TUBI subkeyword and must be used only after the TUBI keyword has been specified. Additionally, THP
should be specified after the FLOW subkeyword but before the other remaining TUBI subkeywords are used.
Arguments for THP consist a list of tubing head pressures which are entered on a separate line below the THP
keyword. The list of pressures must be terminated by a slash (/) after the final entry.
Definitions
Notes
• If no tubing head pressures are specified, the well limiting pressure is assumed to be the single tubing head
pressure for the table.
• The typical order in which the TUBI subkeywords should appear after the TUBI keyword is as follows:
FLOW, THP, RATI, ALQ (optional), and then BHP. A different order may be used, but it is not recom-
mended. If the subkeywords are in a different order, the ordering of the data must be adjusted as well.
Examples
1. THP is used to specify three tubing head pressures for the TAB1 tubing head pressure table. With the
presence of 5 FLOW, 3 THP, and 3 RATI values, the number of BHP values needed will be the number of
entries of FLOW*THP*RATI. In this case, we have 5*3*3=45 BHP values required.
This example uses the PACK format (set by TUBI) for entering BHP values and these BHP values will be
referenced to 7000 ft. If the well BHP reference depth is not at this value, an appropriate correction will be
made.
The tubing table can also be immediately viewed in a graphical format by double-clicking on the Tubing
Table data item under the Data tab of the Data Supervisor, as illustrated in the following figure.
Note that these tubing table plots can also be edited interactively directly from its graphical display. All
changes made on the graphical display are automatically reflected in the text file.
2. In this example, we input the same tubing head pressure table data as the example above, except that the
LONG format option is used instead of the default PACK format for the BHP input values. The LONG
option breaks down the BHP entries into smaller sub-tables. The arguments of the BHP keyword identify
the ratio values and ALQ values to which the sub-table applies.
In this case, there is a BHP sub-keyword for each set of FLOW*THP values and MORE matches the GOR
ratio associated with each BHP sub-keyword against the ratio values entered. Thus, we will have 3 different
BHP tables for each GOR ratio and each BHP table will have 5*3=15 values (that is, number of flow*thp
entries).
This input also produces the same tubing table plot as the preceding example.
Location
RECU Section (after the TUBI keyword but before the BHP sub-keyword)
Description
The RATI (ratio) keyword is used to specify ratio to fluid flow rates for a tubing head pressure table defined by
TUBI. RATI is a TUBI subkeyword and must be used only after the TUBI keyword has been specified. Addition-
ally, RATI should be specified after the FLOW and THP subkeywords but before the ALQ and BHP subkeywords
of TUBI are used.
Arguments for RATI consist of two records. The first record consists of one required argument which should be
entered on the same line as the RATI keyword itself when used. The second record is entered on a separate line
below the RATI keyword and its arguments consist of a list of ratios which must be terminated by a slash (/) after
the final entry.
Definitions
RECORD 1:
1. Ratio: WOR, WCT, WGR, GOR, GLR, or OGR
• WOR - water-oil ratio
– Units: stb/stb (Field), sm3 /sm3 (Metric)
• WCT - water cut
– Units: stb/stb (Field), sm3 /sm3 (Metric)
• WGR - water-gas ratio
– Units: stb/Mscf (Field), sm3 /ksm3 (Metric)
• GOR - gas-oil ratio
– Units: Mscf/stb (Field), ksm3 /sm3 (Metric)
• GLR - gas-liquid ratio
– Units: Mscf/stb (Field), ksm3 /sm3 (Metric)
• OGR - oil-gas ratio
– Units: stb/Mscf (Field), sm3 /ksm3 (Metric)
RECORD 2:
1. Ratio values
• Notes:
– Ratio values must be in ascending order.
– A slash (/) is required at the end of the input.
Notes
• The typical order in which the TUBI subkeywords should appear after the TUBI keyword is as follows:
FLOW, THP, RATI, ALQ (optional), and then BHP. A different order may be used, but it is not recom-
mended. If the subkeywords are in a different order, the ordering of the data must be adjusted as well.
Examples
1. RATI is used twice to input water cut and gas-liquid ratios for the TAB1 tubing head pressure table. With
the presence of 5 FLOW, 2 THP, and 4 RATI values, the number of BHP values needed will be the number
of entries of FLOW*THP*RATI. In this case, we have 5*2*4=40 BHP values required.
This example used the PACK format (set by TUBI) for entering BHP values and these BHP values will be
referenced to 7000 ft. If the well BHP reference depth is not at this value, an appropriate correction will be
made.
The tubing table can also be immediately viewed in a graphical format by double-clicking on the “Tubing
Table” data item under the Data tab of the Data Supervisor, as shown below:
Please note that these tubing table plots can also be edited interactively directly from its graphical display.
All changes made on the graphical display will automatically be reflected in the text file.
2. In this example, we will input the same tubing head pressure table data as the example above, except that
the LONG format option will be used instead of the default PACK format for the BHP input values. The
LONG option breaks down the BHP entries into smaller sub-tables. The arguments of the BHP keyword
identify the ratio values and ALQ values to which the sub-table applies.
In this case, there is a BHP sub-keyword for each set of FLOW*THP values and MORE matches the WCT
and GLR values associated with each BHP sub-keyword against the values entered. Thus, we will have 4
different BHP tables for each possible combination of WCT and GLR values and each BHP table will have
5*2=10 values (i.e. number of FLOW*THP entries).
This input will also produce the same tubing table plot as the example above.
Location
RECU Section (after the TUBI keyword but before the BHP sub-keyword)
Description
The ALQ keyword is used to specify artificial lift quantities for a tubing head pressure table defined by TUBI.
ALQ is a TUBI subkeyword and must be used only after the TUBI keyword has been specified. Additionally,
ALQ should be specified after the FLOW, THP, and RATI subkeywords of TUBI but before the BHP subkeyword
is used.
Arguments for ALQ consist of two records. The first record consists of one optional argument which should be
entered on the same line as the ALQ keyword itself if used. The second record is entered on a separate line below
the ALQ keyword and its arguments consist of a list of artificial lift quantities which must be terminated by a slash
(/) after the final entry.
Definitions
RECORD 1:
1. Artificial lift quantity (optional): GRAT
• GRAT - the artificial lift quantity is gas lift
RECORD 2:
1. Artificial lift values
• Notes:
– Values may be spread over more than one line.
– A slash (/) is required at the end of the input.
• Units:
– If GRAT not used, the units are not specified
– If GRAT is used: Mscf/day (Field), ksm3 /day (Metric)
Notes
• The artificial lift quantity may be any variable which affects the lift performance of the well. The ALQ
value for a well may be set during the recurrent section using the WALQ event.
• When using the GLIF of GRAT option, the ALQ variable is identified as gas lift. This makes no difference if
ALQ values are set using WALQ event, but if gas lift values are set (for example, by LIFT or WLIF events),
they request that the ALQ is identified as gas lift and modified, rather than changing the lift table operating
point.
• When using the GLIF of GRAT option, the units for gas lift in metric units (ksm3/day) are different
from those of VFPPROD and VFPINJE (sm3/day).
• The typical order in which the TUBI subkeywords should appear after the TUBI keyword is as follows:
FLOW THP, RATI, ALQ(optional), and then BHP. A different order may be used, but it is not recommended.
If the subkeywords are in a different order, the ordering of the data must be adjusted as well.
Examples
1. ALQ is used to specify 2 artificial lift quantities for a tubing head pressure table, well1. With the presence
of 2 FLOW, 2 THP, 2 RATI, and 2 ALQ values, the number of BHP values needed will be the number of
entries of FLOW*THP*RATI*ALQ. In this case, we have 2*2*2*2=16 BHP values required.
This example uses the PACK format (set by TUBI) for entering BHP values and these BHP values will be
referenced to 5000 ft. If the well BHP reference depth is not at this value, an appropriate correction will be
made.
The tubing table can also be immediately viewed in a graphical format by double-clicking on the Tubing
Table data item under the Data tab of the Data Supervisor, as shown below:
Please note that these tubing table plots can also be edited interactively directly from its graphical display.
All changes made on the graphical display will automatically be reflected in the text file.
2. In this example, we will input the same tubing head pressure table data as the example above, except that
the LONG format option will be used instead of the default PACK format for the BHP input values. The
LONG option breaks down the BHP entries into smaller sub-tables. The arguments of the BHP keyword
identify the ratio values and ALQ values to which the sub-table applies.
In this case, there is a BHP sub-keyword for each set of FLOW*THP values and MORE matches the GOR
ratio and ALQ values associated with each BHP sub-keyword against the values entered. Thus, we will
have 4 different BHP tables for each possible combination of GOR and ALQ values and each BHP table
will have 2*2=4 values (i.e. number of FLOW*THP entries).
This input will also produce the same tubing table plot as the example above.
Location
RECU Section (after the TUBI keyword and all of its subkeywords)
Description
The BHP keyword is used to specify bottom hole pressures for a tubing head pressure table defined by TUBI .
BHP is a TUBI subkeyword and must be used only after the TUBI keyword has been specified. Additionally, BHP
must be used at the end of a TUBI table after all of the other TUBI subkeywords have been specified. The data for
the BHP keyword must be the final entry in a TUBI table specification.
The format of the BHP input varies depending on whether the PACK (packed) or LONG format is specified in the
TUBI keyword. Further information regarding the data input for the BHP keyword can be seen in the Definitions
section below.
Definitions
Notes
• For each BHP sub-keyword in LONG format, the order of the values entered must be flow index changing
most quickly, THP index most slowly.
• For the PACK format (please see TUBI for more information), the total number of BHP input values must
equal the continued product of the number of entries of FLOW times the number of entries of THP times
the number of entries for each ratio (defined in RATI). Please see Example #1 below for more information.
• For the LONG format (please see TUBI for more information), the total number of input values must equal
the continued product of the number of entries of FLOW times the number of entries of THP. Please see
Example #2 below for more information.
• Multiple BHP sub-keywords are used to complete the table. Also, the number of entries in one row of the
BHP table must equal the number of FLOW entries. The order of input for the two BHP input options is
illustrated by the addition of comments after the slash in the examples below.
• With the LONG format, the simulator checks the consistency of the ratio values. The PACK format is more
appropriate for machine generated tables.
• The typical order in which the TUBI subkeywords should appear after the TUBI keyword is as follows:
FLOW, THP, RATI, ALQ (optional), and then BHP. A different order may be used, but it is not recom-
mended. If the subkeywords are in a different order, the ordering of the data must be adjusted as well.
Examples
1. BHP is used to enter bottom hole pressure values for the tubing table TAB3 using the PACK format. With
the presence of 5 FLOW, 3 THP, and 3 RATI values, the number of BHP values needed will be the number
of entries of FLOW*THP*RATI. In this case, we have 5*3*3=45 BHP values required.
These BHP values will be referenced to 7000 ft. (as specified by TUBI). If the well BHP reference depth is
not at this value, an appropriate correction will be made.
The tubing table can also be immediately viewed in a graphical format by double-clicking on the Tubing
Table data item under the Data tab of the Data Supervisor, as shown below:
Please note that these tubing table plots can also be edited interactively directly from its graphical display.
All changes made on the graphical display will automatically be reflected in the text file.
2. In this example, we will input the same tubing head pressure table data as the example above, except that
the LONG format option will be used instead of the default PACK format for the BHP input values. The
LONG option breaks down the BHP entries into smaller sub-tables. The arguments of the BHP keyword
identify the ratio values and ALQ values to which the sub-table applies.
In this case, there is a BHP sub-keyword for each set of FLOW*THP values and MORE matches the GOR
ratio associated with each BHP sub-keyword against the ratio values entered. Thus, we will have 3 different
BHP tables for each GOR ratio and each BHP table will have 5*3=15 values (i.e. number of flow*thp
entries).
This input will also produce the same tubing table plot as the example above.
Location
RECU Section
Syntax
Definitions
• prodensity - density used to convert all production well pressures to the datum depth
• injdensity - density used to convert all injection well pressures to the datum depth
Example
Note
The HEAD keyword data will only be used by MORE if the BACK 5 option is used.
ELEVEN
Events are used to describe the time history of an object, for instance, that of a well, group or a pipe. A sequence of
events can for instance be used to describe the perforation history of a well, where individual events are associated
with a perforation interval and a date.
An event can be described as an action performed on a given object, resulting in a change in the state of this object.
Depending on the event format using the EFOR keyword, a single event has the general data format as follows:
• Event Owner
• Event Date
• Event Type
• Event Attributes
Event Owner
The Event Owner is the object on which the event acts. For example, a perforation event or a well production
event is owned by a well. Please note that each event must have an owner which can be one of the following types:
• A well
• A well group
• A pipe
• ALL
The event owner is specified with a name as a text string. In general, there are a few restrictions on what can be
defined as an event owner name, but white space at the beginning or end of the name will be trimmed.
More information on event owners can be found here.
Event Date
The Event Date is a time definition at which instance the event action is to be performed. The time definition can
be in a DATE format or alternatively DAYS format as defined in the EFOR keyword.
1173
Tempest MORE Help, Release 8.1
The event is assumed to have taken action instantenously at the event date as the exact duration of the action is
neglected in the simulation model.
Event Type
All event types have been documented under the events index page:
• Well Perforation Events
• Well Mode Events
• Well Contraint Events
• Well Historical Control Events
• Well Definition Events
• Well Model Events
• Group Constraint Events
• Group Definition Events
• Simulation Control Events
• Reinjection Events
• Network Events
• Invocation Events
Event Attributes
The Event Attributes is a list of attributes used to describe detailed properties for the event type. Event attributes
can be integers, doubles or strings, and are in general unique for each event. The attributes for each event are
defined in the help page for each event.
Further information on working with events can be accessed here.
Event Tables
A series of events can be read from one or more included files, selected by the EFIL keyword:
EFIL
'events.inc'
Alternatively, the events may be placed directly into the RECU section using the ETAB keyword:
ETAB
w_1 01/Jan/1975 PERF 0 1000 0.05 1.0 0.0 -- perforate well w_1
w_2 01/Jan/1975 PERF 0 500 0.05 1.0 0.0
ENDE
Lines in an ETAB or EFIL may contain comments. The start of a comment should be indicated with -- (double
dash), everything after the double dash is part of the comment.
A slash / can be used instead of -- to indicate a comment. However, when using ETAB, a line starting with
/ terminates the ETAB as it is also the end-of-table character. Thus, it is strongly recommended to use -- for
comments in event tables.
Two alternatives to place an owner name are available, and can be specified with the EFOR keyword.
The default is to place the owner name on a separate line before a series of events for that owner.
ETAB
w_1
01/Jan/1975 PERF 0 1000 0.05 1.0 0.0 -- perforation of well w_1
w_2
01/Jan/1975 PERF 0 500 0.05 1.0 0.0 -- perforation of well w_2
ALL
01/Jan/2000 END -- control event indicating end of simulation
ENDE
Alternatively, an owner name may be the first item on each line of data. This option may be selected using the
WELL argument of EFOR.
EFOR WELL 'DD/MM/YYYY' MDL MDU RAD SKIN MULT
ETAB
w_1 01/Jan/1975 PERF 0 1000 0.05 1.0 0.0 -- perforation of well w_1
w_2 01/Jan/1975 PERF 0 500 0.05 1.0 0.0 -- perforation of well w_2
ALL 01/Jan/2000 END -- control event indicating end of simulation
ENDE
Event Format
The EFOR keyword can be used to adjust the format of event tables. In particular the format of event dates is set
with EFOR.
The order of arguments for the perforation events PERF and SQUE may be specified with the EFOR keyword.
The default order for the required arguments that follow PERF or SQUE is MDL, MDU, RAD, SKIN, MULT
All other events expect a fixed number of required arguments, as listed in the table below. The SHUT, STOP,
PROD and INJE events have no arguments, for example:
When an argument is required, the value follows the event descriptor - for example, when setting a well rate:
It is possible to have more than one event on a line. So the two events:
Note: Exception: events that follow a PERF, SQUE and INVO event must be placed on a separate line.
Notes
1. If HOURS has been specified, it applies to all the events on that line.
2. The order of events at a given time is significant. The effect of
is different to
In the second case the oil target rate is set, and then the well is opened as a producer (which resets any
existing targets).
3. In general, it is best to use PROD or INJE to open the well before starting to set targets. A production event
like OPT will open the well as a producer if this has not been done. However, setting a BHP or THP limit
will not, as these apply to both production and injection.
This page provides a list of events that are recommended to use in place of the corresponding RECU section
keywords.
Syntax
CIJK <I> <J> <K1> <K2> <Rad> <Mult> <Skin> <CCF> <KH> [COPEN|CSHUT] [DIR
,→<X|Y|Z|FX|FY>] [FRAC <fracExtent>] [LGR <lgr name>] [SAT <saturation table index>
Description
Definitions
Notes
• If KH is left as default, the value depends on the direction of the completion within the grid block as
specified.
• DIR should be followed by a completion direction - X,Y,Z,FX or FY. So DIR X would request a completion
in the x-direction.
• If the FX or FY completion direction is specified, the fracture is assumed by default to extend across the
cell in the x- or y- direction.
• The FRAC <fracture extent> argument is only relevant when FX or FY completion direction is used.
• If the fracture extent is specified, the fracture may be given a total length of 2*FractureExtent (i.e. it extends
by the specified distance in each direction.
• If a positive CCF value is entered it will be used instead of an ccf internal calculation.
• If a positive KH value is entered it will be used instead of an internal calculation of effective permeability *
thickness.
• LGR should be followed by a local grid name. So LGR would request a completion in local grid.
• See Well Index Calculations for more information regarding general CCF calculations and fractured com-
pletions.
• This event is a recommended alternative to WELL sub-keyword CIJK.
• The saturation table used to calculate the completion mobilities is normally taken from the grid cell con-
taining the completion. This may be overriden by specifying a non-default value using the SAT argument.
The same saturation table number applies when hysteresis is present and the saturation tables (e.g. KRGO,
KRWG and KRWO) are specified with columns for both drainage and imbibition processes.
When the saturation table has been specified by the SAT argument and End Point Scaling is used, keyword
WEPS may be used to control whether the end points for the completion mobility calculation are taken from
this saturation table or from the grid cell containing the completion.
Examples
Syntax
CNAC <aquifer> <cell index> [r] [mult] [skin] [KH] [SAT <saturation table index>]
,→[AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The CNAC event is used to provide a simple means of completing a well in a numerical aquifer.
Definitions
Notes
Examples
1. CNAC is used to complete wells P-1 and P-2 in the 4th and 3rd cells of aquifers A1 and A2 respectively.
AQNC A1 1 20 1 20 4 4 K+ 1 /
AQNC A2 1 20 1 20 4 4 K+ 1 /
P-2
0 PROD
0 CNAC A2 3
0 BHPT 100
0 LPT 100
ENDE
Syntax
Description
Definitions
1. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• If shut using the CSHUT event, the well completions cannot be re-opened unless the respective completions
are re-perforated using the PERF event. This is in contrast to SHUT event that allows well to be re-opened
using the OPEN event.
Examples
Syntax
Description
The PERF event is used to open/close completions in a well trajectory defined using TTAB and ENDT keywords.
Definitions
Notes
Examples
Syntax
Description
The SQUE event is used to close completions in a well trajectory defined using TTAB and ENDT keywords.
Definitions
Notes
• If a SQUE event is defined without any additional string arguments (i.e. no BRANCH, ZONE, TVD or
AFTER option) then it is only necessary to specify the two depths. If any of the optional string arguments are
present, it is necessary to supply all of the numerical arguments present in the matching PERF and EFOR.
Since radius/diameter, skin and multiplier have no relevance to a squeeze event, they can be defaulted.
• PERF with CLOSE is the same as SQUE, although SQUE is preferred.
• ZONE implies the interval is in terms of cell layer in the global grid.
• Use of MD implies that the reference depth is to be found by looking up the vertical depth at the specified
measured depth in the well trajectory table. TVD and ZONE work with respect to a trajectory - all the
sections of the trajectory in the required interval will be squeezed.
• A branch index may be used to refer to particular branch of a well trajectory using the BRANCH
<branch_index> argument - index value of 0 refers to the main branch.
• This event is a recommended alternative to WELL sub-keyword COMP. Using the ZONE option, this will
be a recommended alternative to WELL sub-keyword ZONE.
Examples
Syntax
Description
Definitions
1. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• Setting this event clears all existing targets for the well.
• This event is a recommended alternative to WELL keyword action INJE.
Examples
1. INJE event is used to change the well WAA1 to to an injector, and all its existing targets are cleared.
Syntax
Description
Definitions
1. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• Setting this event does not clear any targets or change the well from producer to injector or vice versa.
• This event is a recommended alternative to WELL keyword action OPEN.
Examples
1. OPEN event is used to open the well P-104 without changing its producer or injector status.
Syntax
Description
Definitions
1. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• Setting this event clears all existing targets for the well.
• This event is a recommended alternative to WELL keyword action PROD.
Examples
1. PROD event is used to change the well WAA1 to to a Prodcer, and all its existing targets are cleared.
Syntax
Description
The SHUT event is used to shut a well. The well then operates at zero surface rates with no cross-flow, until the
OPEN event is used.
Definitions
1. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Examples
Syntax
Description
The STOP event is used to stop a well. The well then operates at zero surface rates with the possibility of cross-
flow within the reservoir.
Definitions
1. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• With STOP event, the well operates at zero surface rates by applying a large bhp of 2000 × 1atm for a
producer well and a small bhp of 0.2 × 1atm for an injector well. To start producing or injecting from the
well again, the user must subsequently set a reasonable bhp target.
• XFLO event can be used to turn off well cross-flow.
• This event is a recommended alternative to WELL keyword action STOP.
Examples
Syntax
BHPT <BHP target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
Definitions
1. BHP target
• Units: psia (Field), bars (Metric)
2. Optional Arguments:
• SECOND - this indicates that the injection/pressure target(s) applies to the secondary injection mode.
This is the mode obtained when WWAG event is used to switch a well between injection modes. This
is equivalent to the targets set after the AND argument with the WELL keyword.
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting BHP target of a well using the WELL keyword.
Examples
1. The BHPT event is used to set well bhp target of 100 bars.
EFOR 'dd/mmm/yyyy'
ETAB
P-1
03/Jan/2004 BHPT 100
ENDE
Syntax
Description
The CWAG event is used to specify the continuous injection of water and gas for a well.
Definitions
Notes
• The amount of gas is specified as a surface volume ratio to the water (i.e. Mscf/stb or ksm3 / sm3 ). Once
CWAG has been selected, both surface water rate and surface gas rate control modes are available. The well
will attempt to meet the target for whichever phase is controlled, and inject the associated amount of the
other phase. This will continue until CWAG mode is turned off. Once CWAG is turned off, the well reverts
to being a water injector.
• This event is a recommended alternative to keyword CWAG.
Examples
1. CWAG is used to set up well I-1 to inject 0.2 ksm3 of gas for every sm3 of water injected, and attempt to
inject 90sm3 /day of water.
ETAB
I-1
01/Jan/2000 INJE
01/Jan/2000 PERF 1767.84 1828.8 0.1 0 1
01/Jan/2000 WIT 90
01/Jan/2000 BHPT 5000
01/Jan/2000 CWAG 0.2
ENDE
Thus, a water injection rate of 90sm3 /day for well I-1 and a CWAG continuous gas-to-water ratio of 0.2 will
result in the injection of 90*0.2 = 18ksm3 /day of gas for well I-1. At some point, it may be required to turn
off the CWAG operation and revert to water injection. This may be done with the OFF argument:
ETAB
I-1
01/Jan/2003 CWAG 1* OFF
ENDE
The resulting water and gas injection from the CWAG specifications can be seen in the 2D plot below:
Syntax
Description
Definitions
1. Drawdown target
• Units: psi (Field), bars (Metric)
2. Optional Arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• The drawdown for the well is the average of the drawdown for each completion, weighted by the connection
factor for each completion.
• The drawdown for a completion is:
where:
– Pdd is the drawdown pressure,
– Pcell is the cell pressure,
– Pbhp is the well bhp,
– dcell is the cell depth,
– dref is the bhp reference depth,
– ρ is the average wellbore fluid density,
– and G is the gravity constant.
• The draw-in for an injector completion is:
Pdd = Pdi
where:
– Pdd is the drawdown pressure,
– Pdi is the draw-in pressure.
• This event is a recommended alternative to WELL sub-keyword DRAW.
Examples
Drawdown pressures can be plotted in 2D with the draw down pressure (wpdd) vectors that appears in the
Wells tab of the results in Tempest View, as follows:
2. Drawdown control can also be applied to injectors. For injectors, this limits the draw-in (this has the opposite
sign to the drawdown). In the example below, the well will be limited to a maximum draw-in of 5 bars.
ETAB
I-1
01/Jan/2000 INJE
01/Jan/2000 PERF 1767.84 1828.8 0.1 0 1
01/Jan/2000 GIT 2831.68
01/Jan/2000 BHPT 1378.95
01/Jan/2000 DRAW 5
ENDE
When the drawdown pressure is plotted for the I-1 injector well, we will see the following:
Syntax
GIT <Gas Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The GIT event is used to set gas injection target rate for a well.
Definitions
Notes
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting gas injection target rate using the WELL keyword.
Examples
1. The GIT event is used to set gas injection target rate of 2831.68 Mscf/d.
EFOR 'dd/mmm/yyyy'
ETAB
I-1
01/Dec/2000 GIT 2831.68
ENDE
Syntax
GPT <Gas Prod target> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The GPT event is used to set gas production target rate for a well.
Definitions
Notes
• A production target greater or equal than zero will automatically switch the well to produce that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting gas production target rate using the WELL keyword.
Examples
1. The GPT event is used to set series of gas production targets in successive years.
EFOR 'dd/mmm/yyyy'
ETAB
P-1
01/Jan/2001 GPT 1800
01/Jan/2002 GPT 1600
01/Jan/2003 GPT 1400
01/Jan/2004 GPT 1200
01/Jan/2005 GPT 1000
ENDE
Syntax
GVIT <Gas Voidage Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR
,→<hrs>]
Description
The GVIT event is used to set gas voidage injection target rate for a well.
Definitions
Notes
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
Examples
1. The VPT and GVIT events are used to balance voidage production with gas injection to maintain pressure.
Syntax
Description
The GTARG event is used to set gas target rate for a producer or injector well.
Definitions
Notes
• This event just sets the target rate. Whether the rate is a production or injection one is dependent on the
mode of the well set using PROD or INJE events.
Examples
1. The GTARG event is used to set gas target rate of 1900 Mscf/d
EFOR 'dd/mmm/yyyy'
ETAB
Well2
01/Jan/2001 GTARG 1900
ENDE
Syntax
ILIM <limit type> <limit value> <limit action> [MIN] [OFF] [HOUR <hrs>]
Description
Definitions
Notes
• The remedial actions, STIM, REDE, and SHUT are all carried out when a constraint with which it is
specified is violated, as follows:
– The STIM (stimulation) option revises the well index value according to input specified on the STIM
well sub-keyword when the specified limit is violated. When a stimulation is not successful, the well
is shut-in.
– The SHUT (shut-in) option shuts-in the well if the limit with which it is specified is violated.
– In the case of a REDE (redefine) action, the required redefinition must be defined using REDE event.
• This event is a recommended alternative to keyword WLIM.
Examples
1. ILIM is used to shut the injector well if the injection gas rate falls below 100 ksm3/day.
EFOR 'dd/mmm/yyyy'
ETAB
IINJ-W1
10/Oct/2010 ILIM GAS 100 SHUT MIN
ENDE
Syntax
LPT <Liquid Prod target> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The LPT event is used to set liquid production target rate for a well.
Definitions
Notes
• A production target greater or equal than zero will automatically switch the well to produce that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting liquid production target rate using the WELL keyword.
Examples
1. The LPT event is used to set liquid production target rate of 180 sm3/d.
EFOR 'dd/mmm/yyyy'
ETAB
P-1
04/Jan/2001 LPT 180
ENDE
Syntax
Description
The LTARG event is used to set liquid target rate for a producer or injector well.
Definitions
Notes
• This event just sets the target rate. Whether the rate is a production or injection one is dependent on the
mode of the well set using PROD or INJE events.
Examples
1. The LTARG event is used to set a liquid target rate of 2000 stb/d.
EFOR 'dd/mmm/yyyy'
ETAB
W_A
01/Jan/2001 LTARG 2000
ENDE
Syntax
OIT <Oil Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The OIT event is used to set oil injection target rate for a well.
Definitions
Notes
• When setting oil injection, OIL package of the RATE keyword must be used to report oil injection rates.
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting oil injection target rate using the WELL keyword.
Examples
1. The OIT event is used to set oil injection target rate of 1802 stb/d.
EFOR 'dd/mmm/yyyy'
ETAB
I-1
01/Jan/2000 OIT 1802
ENDE
Syntax
OPT <Oil Prod target> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The OPT event is used to set oil production target rate for a well.
Definitions
Notes
• A production target greater or equal than zero will automatically switch the well to produce that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting oil production target rate using the WELL keyword.
Examples
1. The OPT event is used to set an oil production target rate of 1600 sm3/day.
EFOR 'dd/mmm/yyyy'
ETAB
P-1
01/Jan/2000 OPT 1600
ENDE
Syntax
Description
The OTARG event is used to set oil target rate for a producer or injector well.
Definitions
Notes
• When using the OTARG event for injection, OIL package of the RATE keyword must be used to report oil
injection rates.
• This event just sets the target rate. Whether the rate is a production or injection one is dependent on the
mode of the well set using PROD or INJE events.
Examples
1. The OTARG event is used to set an oil target rate of 1800 stb/d.
EFOR 'dd/mmm/yyyy'
ETAB
W-1
01/Jan/2001 OTARG 1800
ENDE
Syntax
PLIM <limit type> <limit value> <limit action> [MIN] [OFF] [HOUR <hrs>]
Description
Definitions
1. Limit Type: OIL, GAS, WAT, RESV, BHP, THP, LIQ, GOR, OGR, WCT, WOR, GWR, WGR
Limit Type Description
OIL oil rate
GAS gas rate
WAT water rate
RESV reservoir volume rate
BHP bottom hole pressure
THP top hole pressure
LIQ liquid rate
GOR gas-oil ratio
OGR oil-gas ratio
WCT water cut
WOR water-oil ratio
GWR gas-water ratio
WGR water-gas ratio
2. Limit Value for the Limit Type set in argument 1.
3. Limit Action: BOOST, CONV, CUTB, DRIL, PUMP, REDE, SHUT, STIM, STOP, WORK
Limit Description Syntax
Action
BOOST boost by factor (same as CUTB) BOOST FACTOR <factor>
[PHASE <phase>]
CONV convert well from production to injection CONV
CUTB cut back phase (oil/gas/water/liqu/void) to CUTB FACTOR <factor>
<factor> times current rate factor [PHASE <phase>]
DRIL open from drilling queue DRIL
PUMP use named pump PUMP [pump name]
REDE redefine REDE
SHUT shut well SHUT
STIM stimulate STIM
STOP stop run STOP
WORK workover WORK [TOP|BOT|WORS]
4. Optional Arguments:
• MIN - By default limits are maximum limits - ie the limit acts when the predicted value rises above the
limit value. MIN allows the limit to be set up as a minimum limit - ie the limit acts when the predicted
value falls below the limit value.
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• When a workover is applied to a well, these options select the type of workover. TOP and BOT close the top
and bottom completion. WORS closes the worst offending completion. If none of TOP, BOT and WORS
are specified, the top completion is closed for a gas limit and the bottom completion for a water limit.
• The remedial actions CUTB, STIM, WORK, CONV, REDE, and SHUT are all carried out when a constraint
with which it is specified is violated, as follows:
– The STIM (stimulation) option revises the well index value according to input specified on the STIM
well sub-keyword when the specified limit is violated. When a stimulation is not successful, the well
is shut-in.
– When the WORK (workover) limit action is selected, the zones with the largest ratio limit violation
are shut-in one at a time until either the well is shut-in or the ratio limit is no longer violated.
– When a CUTB (cutback) option is specified for a ratio limit, the well is cutback to maintain it within
the specified ratio limit; if not successful, the well is shut-in.
– The CONV (convert) option converts the producer into an injector if the limit with which it is specified
is violated.
– The SHUT (shut-in) option shuts-in the well if the limit with which it is specified is violated.
– In the case of the REDE (redefine) action, the required redefinition must be defined using a REDE
event.
– If no phase is given with CUTB/BOOST, the phase is selected for which the current rate is closest to
its target.
– The default factor is 0.9 for CUTB, and 1.11 for BOOST.
• Note that MORE versions < 7.2 do not acknowledge the PHASE option for CUTB and use a marginally
different algorithm to select the reduced target rate. Without the PHASE option, results for rate-limited
wells are compatible between versions, but they may change for bhp/thp-limited wells.
• This event is a recommended alternative to keyword WLIM.
Examples
1. PLIM is used to specify a WOR limit of 10 and the well will be shut-in if the WOR exceeds 10.
2. PLIM is used to specify that a well should be worked over if the GOR exceeds 5.
3. PLIM is used to specify that a well be stimulated if the oil rate falls below 300.
4. PLIM is used to specify that a well will be converted if the gas rate falls below 100. The well is converted
to an injector with the constraints specified using the CONV event.
5. PLIM is used to specify that a well will be shut-in if the GOR exceeds 10.
6. PLIM is used to specify that a well will be redefined if the oil rate falls below 5000.
Syntax
SIT <Steam Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The SIT event is used to set steam injection target rate for a well.
Definitions
Notes
• This event can be only be used when steam modelling has been turned on by using the the STEA keyword
in the INPU (Input) or FLUI (Fluid) sections.
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
• Please see the Steam/Thermal section of the MORE Technical Reference for more information regarding
steam modelling in Tempest.
• This event is a recommended alternative to setting steam injection target rate using the WELL keyword.
Examples
1. The SIT event is used to set steam injection target rate of 1000 stb/day (water surface volume rate).
EFOR 'dd/mmm/yyyy'
ETAB
I-1
01/Dec/2000 SIT 1000
ENDE
Syntax
SVIT <Steam Voidage Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]]
,→[HOUR <hrs>]
Description
The SVIT event is used to set steam voidage injection target rate for a well.
Definitions
Notes
• This event can be only be used when steam modelling has been turned on by using the the STEA keyword
in the INPU (Input) or FLUI (Fluid) sections.
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
• Please see the Steam/Thermal section of the MORE Technical Reference for more information regarding
steam modelling in Tempest.
Examples
1. The SVIT event is used to set steam voidage injection target rate of 1000 stb/day.
EFOR 'dd/mmm/yyyy'
ETAB
I-1
01/Jan/1980 STEAM 450.0 1* 0.7 1*
01/Jan/1980 SVIT 1000
ENDE
Syntax
THPT <THP target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
Definitions
1. THP target
• Units: psia (Field), bars (Metric)
2. Optional Arguments:
• SECOND - this indicates that the injection/pressure target(s) applies to the secondary injection mode.
This is the mode obtained when WWAG event is used to switch a well between injection modes. This
is equivalent to the targets set after the AND argument with the WELL keyword.
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting THP limit on a well specified using the WELL keyword.
Examples
1. The THPT event is used to set well thp target of 1200 psi in accordance with the lift table TAB1.
Syntax
VPT <Voidage Prod target> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The VPT event is used to set voidage production target rate for a well.
Definitions
Notes
• A production target greater or equal than zero will automatically switch the well to produce that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting voidage production target rate using the WELL keyword.
Examples
1. The VPT event is used to set voidage production target rate of 1800 rb/d.
EFOR 'dd/mmm/yyyy'
ETAB
P-1
03/Jan/2000 VPT 1800
ENDE
Syntax
Description
The VTARG event is used to set voidage target rate for a producer or injector well.
Definitions
Notes
• This event just sets the target rate. Whether the rate is a production or injection one is dependent on the
mode of the well set using PROD or INJE events.
• For VTARG to be used as an injection target, the user first needs to define the type of injector. This can be
done using GIT, GVIT, WIT, WVIT or OIT event.
Examples
1. The VTARG event is used to set a reservoir voidage target rate of 1800 rb/d.
EFOR 'dd/mmm/yyyy'
ETAB
W_B
01/Jan/2001 VTARG 1800
ENDE
Syntax
WCOM <limit type> <limit value> <limit action> <action details> [OFF] [HOUR <hrs>]
Description
The WCOM event sets up a limit so that if pipeline pressure falls below a given value, or if oil or gas flow rate is
too low, then a compressor (defined by the CMPR keyword) will be switched on or have another remedial action
taken.
Definitions
Notes
• WCOM always sets a MINIMUM limit, i.e they trigger if the pressure or rate is too low. There is currently
no option to impose WCOM limits as maximum or limits.
• For more information regarding the use of the limit actions COMP, PUMP, LIFT, and ALQS, please see
please see the CMPR, PLPU, LIFT, or ALQ keywords, respectively.
• This event is a recommended alternative to keyword WCOM.
Examples
1. The WCOM event is used to request up to two ALQ increments of 200 if the gas rate of wells WPRD1 and
WPRD2 falls below 6600 ksm3 /day.
Syntax
WIT <Water Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The WIT event is used to set water injection target rate for a well.
Definitions
Notes
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting water injection target rate using the WELL keyword.
Examples
1. The WIT event is used to set water injection target rate of 118 stb/d.
EFOR 'dd/mmm/yyyy'
ETAB
I-1
01/Dec/2000 WIT 118
ENDE
Syntax
Description
The WLTA event is used to set lift curve addition value for a well.
Definitions
Notes
• The lift table addition is added to the bhp predicted after looking up the bhp for the well’s current thp.
• This event is a recommended alternative to keyword WLTA.
Examples
1. The WLTA event is used to set a lift table addition value of 413 for well PROD_A.
Syntax
Description
The WLTM event is used to set lift table multiplier for a well.
Definitions
Notes
Examples
1. The WLTM event is used to set a lift table multiplier value of 1.13 for well PROD_A.
Syntax
WPRI <Well priority value> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The WPRI event is used to specify a well priority. This specification will override the default calculation defined
in the PRIO event.
Definitions
Notes
Examples
1. In the example below, we have four wells with a total oil production rate of 10000. These wells, P-1, P-2,
P-3, and P-4 have been set up to have oil production rates of 1000, 2000, 3000, and 4000, respectively. After
5 years of simulation, PRIO is used to assign a priority to the oil rate using the default time interval of 92.25
days. GPRI event is then used to set a target oil production rate at 8000 for a group of 4 wells. By default,
this rate is then to be met by closing wells with low priority limits.
WPRI is then added to override the well priority set by PRIO for the well P-1 and the new well priority for
this well will be set to 5000. See WPRI_event.dat for complete example:
P-2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
P-3
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 3000.00
P-4
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 4000.00
ALL
01/Jan/2005 PRIO 1* 0 1 0 0 1 0 0 0
01/Jan/2005 GPRI OIL 8000
01/Jan/2010 END
ENDE
From the PRIO event specifications given, the well priority becomes P = qo , the oil rate, as detailed below:
Then, as we have used GPRI event to set a target oil production rate of 8000 for our group of wells after
5 years of simulation, once that target rate is exceeded, the wells in the group would be shut according to
their well priority as determined by the coefficients set in PRIO. Normally, in this case, as the well priority
has been set to be equivalent to the oil rate (qo ), the well with the lowest oil production rate would be closed
first. If with the closing of this well, the oil production rate still exceeded the target of 8000, then the well
with the second lowest oil production rate would be closed next and so on and so on, until the target rate
was not longer violated.
However, with the presence of the WPRI event, P-1, the well with the lowest oil production rate (and thus,
the lowest well priority), has now been assigned the highest well priority. So, we would expect that this well
will be given the highest well priority now.
As seen in the plot below, the total oil production rate for the group ALL does decrease from 10000 to 8000
after 5 years due to the presence of the GPRI event.
When the oil production rates are plotted for all 4 of the wells (P-1, P-2, P-3 and P-4) in the group ALL, we
can see that indeed the well priority has been set to the oil rate but it is not the well with the lowest oil rate
(P-1) will that is shut first as this well has been assigned the highest well priority by the WPRI event. Thus,
the order of the well priority from lowest to highest becomes P-2, P-3, P-4, and P-1. In the plot below, we
can see that indeed, the well with the lowest priority, P-2, is shut to satisfy the oil rate target set by GPRI
event at 8000.
Syntax
WPT <Water Prod target> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The WPT event is used to set water production target rate for a well.
Definitions
Notes
• A production target greater or equal than zero will automatically switch the well to produce that requested
phase and reset other phase targets.
• This event is a recommended alternative to setting water production target rate using the WELL keyword.
Examples
1. The WPT event is used to set water production target rate of 1800 sm3/d.
EFOR 'dd/mmm/yyyy'
ETAB
P-1
01/Mar/2007 WPT 1800
ENDE
Syntax
Description
The WTARG event is used to set water target rate for a producer or injector well.
Definitions
Notes
• This event just sets the target rate. Whether the rate is a production or injection one is dependent on the
mode of the well set using PROD or INJE events.
Examples
1. The WTARG event is used to set a water target rate of 1500 stb/d.
EFOR 'dd/mmm/yyyy'
ETAB
WELL_EAST_1
01/Jan/2001 WTARG 1500
ENDE
Syntax
WUGR <well guide rate> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The WUGR event is used to set well user guide rates. A well guide rate enables a group target to be shared
between wells and sub-groups.
Definitions
Notes
• Values assigned to the guide rates using WUGR event may take on any value. Once all of the desired guide
rates are entered, MORE will sum up all of the guide rates together and then each well with a guide rate
will be assigned a fraction of the total according to their defined guide rates. Please see examples below for
more information.
• This event is a recommended alternative to keyword WUGR.
Examples
1. In this example, we have two production wells, P-1 and P-2, which have oil production targets of 3000 and
5000 stb/day, respectively. Both of these wells belong in a group called PRODS and this group is given an
oil production target of 4000 stb/day, as follows.
ALL
01/Jan/2010 END
ENDE
Once the simulation is run and we plot the oil production rates for P-1 and P-2, we will see that, by default,
the group target of 4000 stb/day for the oil production rate will be split evenly between these two wells,
with 2000 stb/day coming from each well.
Now, say after 5 years, we introduce WUGR to the dataset and specify that well P-1 has a guide rate of 40
and well P-2 has a guide rate of 60, as follows. See WUGR_event.dat for complete example:
ETAB
P-1
01/Jan/2005 WUGR 40
P-2
01/Jan/2005 WUGR 60
ENDE
As a result, in 2005, the group oil production rate target of 4000 stb/day will be then shared between the
wells according to their well guide rates. Now, well P-1 will take on 40/(40+60)=40% of 4000 stb day (or
1600 stb/day) while well P-2 takes on 60/(40+60)=60% of 4000 stb/day (or 2400 stb/day). When we plot
the oil production rates for these wells, we will see that this is indeed the case.
Syntax
WVIT <Water Voidage Inj target> [SECOND] [OFF] [AFTER <value> [DAYS|MON|YEAR]]
,→[HOUR <hrs>]
Description
The WVIT event is used to set water voidage injection target rate for a well.
Definitions
Notes
• An injection target greater or equal than zero will automatically switch the well to inject that requested
phase and reset other phase targets.
Examples
1. The WVIT event is used to set a water voidage injection target rate of 260 rb/d.
Syntax
WDPRI <Well drill priority value> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>
,→]
Description
The WDPRI event is used to specify a well drill priority. This specification will override the default calculation
defined in the DPRIO event.
Definitions
Notes
• WDPRI can be applied to any well, but will have an effect only on wells in the drill queue (group DRIL).
• Even if all wells in the drill queue have a WDPRI set, a DPRIO event is still needed to switch on the drill pri-
oritisation. Without a DPRIO event the drill queue is not prioritised - this ensures backwards compatibility
with MORE 7.2 and earlier.
• With the OFF option a well can be reset to using the priority from the DPRIO calculation.
Examples
1. This example uses the WDPRI event to override the potential-based priority calculation by DPRIO event
for well P3. See GPLIM_DRIL_DPRIO_WDPRI.dat for complete example:
GROUP DRIL P2 P3
GROUP GG P1 P2 P3
EFOR 'DAYS'
ETAB
ALL
0 DPRIO 1.0 0 2 0 0 1 0 0 0 -- recalculate potentials every day & use 2*
,→oil potential as drill priority
I1
0 INJE
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 WIT 1000.00
0 BHPT 2000.00
P1
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 3000.00
0 BHPT 68.9475
P2
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
0 WDPRI 7500.0 -- use WDPRI to override DPRIO based priority for
,→this well
P3
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
GG
100 GPLIM OIL 2300 DRIL MIN
ENDE
2. This example only uses the WDPRI event to set user defined drilling priorities. A DPRIO event is still
needed to switch on the drill prioritisation. See GPLIM_DRIL_WDPRI.dat for complete example:
GROUP DRIL P3 P2
GROUP GG P1 P2 P3
EFOR 'DAYS'
ETAB
ALL
0 DPRIO 5* 1 3*
I1
0 INJE
P1
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 3000.00
0 BHPT 68.9475
P2
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
0 WDPRI 5000.0 -- set priority
P3
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 WDPRI 7500.0 -- set priority
GG
100 GPLIM OIL 2300 DRIL MIN
ENDE
Syntax
Description
The HBHP event sets the well to use historical BHP as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical BHP target using keyword WELL.
Examples
1. The HBHP event is used to set well P-1 on historical bhp control with a user-defined oil production rate
target. See HBHP.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
Syntax
Description
The HGAS event sets the well to use historical gas target as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical gas target using keyword WELL.
Examples
1. The HGAS and HWEF events are used to set well P-1 on historical gas rate target using historical well
efficiency factor. See HGAS_HWEF.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
Syntax
Description
The HLIQ event sets the well to use historical liquid target as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical liquid target using keyword WELL.
Examples
1. The HLIQ and HWEF events are used to set well P-1 on historical liquid rate target using historical well
efficiency factor. See HLIQ_HWEF.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
Syntax
Description
The HOIL event sets the well to use historical oil target as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical oil target using keyword WELL.
Examples
1. The HOIL and HWEF events are used to set well P-1 on historical oil rate target using historical well
efficiency factor. See HOIL_HWEF.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
If the OFF option is used to switch off the well from historical control, the well will then operate on user-
defined rate as specified by the OPT event. See HOIL_HWEF_OFF.dat
Syntax
Description
The HRES event sets the well to use historical reservoir voidage target as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical voidage target using keyword WELL.
Examples
1. The HRES event is used to set well P-1 on historical voidage rate target. See HRES_QRES.dat
HUNI
sm3/day ksm3/day ksm3 Msm3 bara krm3/day krm3 /
2. The HRES event is used to set well P-1 on historical voidage total target. See HRES_CRES.dat
HUNI
sm3/day ksm3/day ksm3 Msm3 bara krm3/day krm3 /
Syntax
Description
The HRGI event sets the well to use historical reservoir voidage target for gas injection as specified in the HTAB
or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical voidage target for gas injection using keyword
WELL.
Examples
1. The HRGI event is used to set well I-1 on historical voidage rate target for gas injection. See
HRGI_QRIN.dat
HUNI
sm3/day ksm3/day ksm3 Msm3 bara krm3/day krm3 /
The FVF for gas has been artificially set to a value of 1 rm3 / ksm3 so the reservoir voidage rate (in rm3 ) is
the same as the gas injection rate (in ksm3 )at surface conditions.
2. This example is the same as the one above except that a historical voidage total target for gas injection is set
for well I-1. See HRGI_CRIN.dat
HUNI
sm3/day ksm3/day ksm3 Msm3 bara krm3/day krm3 /
The small difference in wgit and wvith is due to the non-zero historical total at time zero in HTAB.
Syntax
Description
The HRWI event sets the well to use historical reservoir voidage target for water injection as specified in the HTAB
or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical voidage target for water injection using keyword
WELL.
Examples
1. The HRGI event is used to set well I-1 on historical voidage rate target for water injection. See
HRWI_QRIN.dat
HUNI
sm3/day ksm3/day ksm3 Msm3 bara krm3/day krm3 /
The FVF for water has been artificially set to a value of 1 rm3 /sm3 so the reservoir voidage rate is the same
as the water injection rate at surface conditions.
2. This example is the same as the one above except that a historical voidage total target for water injection is
set for well I-1. See HRWI_CRIN.dat
HUNI
sm3/day ksm3/day ksm3 Msm3 bara krm3/day krm3 /
The small difference in wwit and wvith is due to the non-zero historical total at time zero in HTAB.
Syntax
Description
The HTHP event sets the well to use historical THP as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical THP target using keyword WELL.
Examples
1. The HTHP event is used to set well P-1 on historical thp control (in accordance with lift table TLFX) with
a user-defined oil production rate target. See HTHP.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
Syntax
Description
The HWAT event sets the well to use historical water target as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical water target using keyword WELL.
Examples
1. The HWAT and HWEF events are used to set well P-1 on historical water rate target using historical well
efficiency factor. See HWAT_HWEF.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
Syntax
Description
The HWEF event sets the well to use historical efficiency factor as specified in the HTAB or HFIL tables.
Definitions
1. Optional arguments:
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event is a recommended alternative to setting historical efficiency factor using keyword WELL.
Examples
1. The HOIL and HWEF events are used to set well P-1 on historical oil rate target using historical well
efficiency factor. See HOIL_HWEF.dat
HUNI
"stb/day" "Mscf/Day" mstb MMscf psia /
Syntax
Description
The ABC event provides a way of setting the skin and D-factor for a well from more easily measured A and
B coefficients which defines the linear and quadratic pressure response of the well. For details of the fitting
technique, please see AB well input chapter of the Technical Reference. The basic idea is to compare the A and
B coefficients with those of the same pressure dependence from the Russell-Goodrich model; once corresponding
coefficients have been found the required skin and D-factors may be determined.
Note: Use of this event is NOT recommended due to the assumptions made in the fitting technique. For further
details see the Technical Reference.
Definitions
Notes
• The lower and upper measured depths are not required. They are only needed if the A and B coefficients
entered are not for the entire well.
• This event is a recommended alternative to keyword WABC.
Example
Syntax
Description
Definitions
1. Branch Index
2. Branch multiplier
3. Optional Arguments:
• Completion action - NONE, OPEN, SHUT
– NONE (default) - no change to branch completion state
– OPEN - open all completions in branch
– SHUT - shut all completions in branch
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Examples
1. The BRAN event is used to apply multiplier to completions on branch 0 (all the completions on well in case
with no branches).
Syntax
CONV <new inj fluid> <new target rate> <new target BHP/THP> [HOUR <hrs>]
Description
The CONV (conversion) event is used to define well conversion information for when the well is converted due to
a limit set by PLIM event.
Definitions
1. New injection fluid - This may be a stream name, such as WAT or GAS, a standard composition name or a
component name.
2. New target rate for injection
• Units: stb/day for liquid, Mscf/day for gas (Field); standard m3 /day for liquid or gas (Metric)
3. New target BHP or THP
• Units: psi (Field), bar (Metric)
4. Optional arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• The component name in the first argument may only be used in equation of state runs.
• Pressures in the third argument correspond to the datum depth, as specified by DATU.
• This event is a recommended alternative to WELL sub-keyword CONV.
Examples
1. CONV is used to convert the producer well P-1 into an injector well when its oil production rate falls below
1500 stb/day, as specified by PLIM event.
As a result, once the oil production rate goes below 1500 stb/day, P-1 is converted into an injector to start
injecting water at a rate of 500 stb/day and stop producing oil, as shown in the plot below.
Additionally, the conversion of the well from producer to injector will also be reflected in the well’s icon in
the Well tab of Tempest View, as follows:
Syntax
Description
The DFAC (D-Factor) event is used to specify the D-factor for a well. The effect of a D-factor is to increase the
effective skin of the well completions as a function of the gas flow rate.
Definitions
1. D-factor value
• Units: day/mscf (Field), day/ksm3 (Metric)
• Default: 0
2. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• In metric units, MORE uses a D-factor specified in terms of a gas rate in ksm3 /day. Some simulators use
gas rates in sm3 /day, and so D-factors in day/sm3 .
• Please see the Well Index Calculations section of the MORE Technical Reference for more information
regarding D-factors.
• This event is a recommended alternative to WELL sub-keyword DFAC.
Examples
1. The DFAC event is used to specify a D-factor of 0.0021 for the well L415.
Syntax
DREF <BHP ref depth> [MD] [BRANCH <branch_index>] [AFTER <value> [DAYS|MON|YEAR]]
,→[HOUR <hrs>]
Description
The DREF event is used to specify an individual bottom hole pressure reference depth for a well.
Definitions
Notes
• DREF may be set more than once in a run, but until DREF is set for the first time, the default datum value
defined by DATU will apply.
• A branch index may be used to refer to particular branch of a well trajectory using the BRANCH
<branch_index> argument - index value of 0 refers to the main branch.
• This event is a recommended alternative to WELL sub-keyword DREF.
Examples
1. The DREF event is used to reset BHP reference depth to different values over the course of the simulation.
P-104 01/06/2004 DREF 2200 -- Reset reference depth again later in 2004
ENDE
Syntax
Description
The HFRA event is used to define a horizontal well fracture using the improved well fracturing model. The
improved model’s settings may be set using the WFPLUS keyword in the INPU section.
Definitions
ID <Fracture name> A unique fracture name may be used to reference a fracture after it was created, in order to
turn it off or re-fracture.
• Default: “Fracture <n>”, where “<n>” is an internal counter
BRANCH <Branch index> Specifies the branch from which to initiate the well fracture.
LENGTH <length> [<other arm length>] The lateral extent of the fracture. Unless two lengths are given the
fracture is symmetric.
• Units: feet (Field), metres (Metric)
MD <MD> The measured depth at which the fracture intersects the well trajectory.
• Units: feet (Field), metres (Metric)
HEIGHT <height (overall or above)> [<height below>] The fracture height is either entered as overall height
or as two numbers specifying the heights above and below the trajectory.
• Units: feet (Field), metres (Metric)
LAYER <top layer> <bottom layer> The layer range over which the fracture spans vertically.
TVD <top depth> <bottom depth> The true vertical depth range over which the fracture spans.
• Units: feet (Field), metres (Metric)
ANGLE <angle> [<bend angle>] Specify the angle between the fracture and x-axis, and optionally the bend
angle, i.e. the deviation from a straight fracture on one side of the well.
• Units: degrees
• Default: 0 for both
DIRECTOR <array> Specify the angle between the fracture and x-axis using a user-defined array. Used as an
alternative to ANGLE.
• Units: degrees
WIDTH <width> Fracture width, used in conjunction with PERM.
• Units: feet (Field), metres (Metric)
Notes
• Minimum input requirements for the HFRA event are the measured depth of the fracture-trajectory inter-
section, the fracture length and vertical extent (using exactly one of {HEIGHT, TVD, LAYER}), and its
conductivity (using either COND or WIDTH and PERM).
• The arguments can be listed in arbitrary order.
• Unless a fracture name is supplied, the fracture is given a generic name.
• The well trajectory must be perforated at the fracture MD value specified above, e.g. by use of the PERF
event, but not necessarily in an active cell. Unless a RATIO is explicitly specified, the connectivity between
the fracture and the well scales linearly with the ratio between the perforation radius and the fracture height.
This ratio may change over time as new perforations are created or existing ones squeezed.
• After a fracturing operation, the fracture conductivity decays in time, as
t − tfrac
ccf = ccf0 w + (1 − w) exp − ,
τ
where w is the weight defined above, t is time, tfrac is the fracturing time, and τ is the fracture time constant.
If τ is defaulted, then w = 1.0 and the fracture conductivity will not decay with time.
• The fracture calculations are always based precisely on the vertical extent of a fracture as defined by the
MD, TVD or HEIGHT options. However, the 3D viewer displays the fracture as spanning the fracture layer
range fully unless the FOLLOW DEPTHS argument is used.
• For reporting purposes, each fracture is assigned a single (i,j,k) cell location. For HFRA, this is the com-
pleted cell at the user-given MD, while for VFRA the top cell spanned by the fracture is used.
• When using the DIRECTOR argument, the fracture angle is determined by:
– the DIRECTOR array value at the fracture’s cell location if this cell is active, or else
– the weighted average of the DIRECTOR array in the fracture co-volume. The weight function is
vertically invariant and decays rapidly with distance from the x-y centre of the fracture.
• The DIRECTOR array should be defined using the DEFI keyword using the SAVE option to ensure that the
array is available in the RECU section. As with any array, only the first four letters are used to identify the
array.
• It is possible to initiate a well fracture from inactive cells along the trajectory using event VFRA or HFRA.
However, to use this functionality the INAC option of the WFPLUS keyword must be set.
• In DPOR or DPER cases, well fractures only connect to the fracture domain of the reservoir grid. Note that
VIEW displays well fractures in both the fracture and matrix medium in the grid view (if Visible Cell
Test option in unchecked in Wells settings in Options | Defaults | 3D View Settings).
Examples
1. The example below uses the events VFRA and HFRA to create vertical and horizontal fractures, respec-
tively, on well WPRD. Both the fractures turn off once the conductivity goes below a threshold of 0.01
mD-feet. The REFRA event is then used to re-fracture both the fractures after a span of 5 years. See
VFRA_HFRA_REFRA.dat for complete example:
TTAB
WPRD
5500 5500 5000 5000
5500 5500 6000 6000
WPRD:1
5500 5500 5850 5850
9500 5500 5850 9850
ENDT
Fig. 11.1: Fracture voidage production rates for fracture P1 and P2 (available from the Layer tab). Note the
refracturing for P1 and P2 taking place in year 2005 and 2007 as specified in the input.
Fig. 11.2: 3D grid with fracture visualisation. The first view shows the vertical fracture P1 (spanning over layers
3 to 5) while the second one shows the horizontal fracture P2 (spanning over layers 7 to 9).
2. This example uses the event HFRA to create a horizontal fracture on well WPRD after 100 days of simula-
tion start date. The fracture’s vertical extent is set using the upper and lower TVD arguments such that the
fracture follows the layers 2 and 3 (as FOLLOW LAYERS argument is the default). As the fracture is set
a time constant of 50 days, it decays to virtually zero conductivity after some time. The REFRA event is
then used to re-fracture at 1500 days. Note that some of the fracture parameters have been modified in the
re-fracture. See HFRA_TVD_REFRA.dat for complete example:
TTAB
WPRD
50 450 3010 3010
950 450 3010 3910
ENDT
0 OPT 1000
0 BHPT 70
1500 REFRA ID HRZ PERM 20000 WIDTH 0.02 TAU 100 MINCOND 0.5
ENDE
Fig. 11.3: Fracture oil production rate for horizontal fracture HRZ. Production from the fracture starts at 100
days and continues until the fracture conductivity decays to zero. The REFRA event then refractures HRZ at 1500
days. Note that the decay constant for the refracture has been increased as compared to the initial fracture setting.
If the fracture extent is now defined using the FOLLOW DEPTHS argument, the fracture will extend at
constant vertical depths rather than following the grid layers.
See HFRA_TVD_REFRA_FOLLOW_DEPTHS.dat for complete example:
ENDE
Fig. 11.4: 3D grid with fracture visualisation (FOLLOW LAYERS). The first view shows the horizontal trajectory
of well WPRD while the second one shows the extent of the fracture following the grid layers 2 and 3.
Syntax
Description
The LIFT event is used to specify the lift gas injection rate for a well.
Definitions
Notes
• The gas lift rate only has an effect if the well is using a lift table defined using the TUBI keyword.
• The way in which the lift gas rate is used depends on the lift table:
– If the table has an ALQ (artificial lift quantity) which is defined a gas rate (GRAT or GLIF option),
then the lift gas value is applied to the ALQ look-up.
– If not, the lift gas value is added to the gas production rate of the well when looking up the lift table.
• This event is a recommended alternative to WELL sub-keyword LIFT.
Examples
1. Well uses lift table TLFX and then lift gas rate is varied annually using LIFT events respectively.
Syntax
Description
The POLY event is used to specify the polymer concentration of water injected by a well when the POLY (polymer)
option has been turned on in the INPU (Input) or FLUI (Fluid) sections.
Definitions
1. Polymer concentration
• Units: lbs/stb (Field), kg/sm3 (Metric)
2. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• If POLY event is not specified, water will be injected with zero polymer concentration.
• Please see the Polymer section of the MORE Technical Reference for more information regarding the poly-
mer tracking option in Tempest.
• This event is a recommended alternative to WELL sub-keyword CPLY.
Examples
1. The POLY event is used to specify a polymer concentration of 15% for the injection well I-1.
Polymer injection and production rates and totals can then be plotted in 2D from the Wells tab of the results,
as follows:
Plotting the polymer injection rate for well I-1, the following plot is obtained:
Polymer concentration data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Syntax
Description
The POTN event is used to request periodic well potential calculations. By default, if POTN is not specified,
potentials are when the well is defined or changed (e.g. a new completion activated)
Definitions
Notes
• If a zero time interval is specified, well potentials are calculated after every time step.
• If a negative time interval is specified, well potentials will not be calculated.
• This event is a recommended alternative to keyword POTN.
Example
EFOR 'DAYS'
ETAB
ALL
0 POTN 6 MONTHS
ENDE
2. POTN is used to request well potential calculations to be performed after every time step.
EFOR 'MMM.DD.YYYY'
ETAB
ALL
JAN.01.1989 POTN 0
ENDE
Syntax
Description
The PREX event is used to specify the pressure at the external well radius.
Definitions
Notes
• To obtain the pressure at the required radius, MORE takes the logarithmic drawdown curve which passes
through the well pressure at the well radius and the block pressure at the pressure equivalent radius (r0 ),
and extrapolates or interpolates it to the external radius (re ). If more than one layer is open, the well value
is obtained as a suitable weighted average.
• The pressure at the external radius supplied with PREX is also used in place of the cell pressure when
calculating the well drawdown used for drawdown control, as described in the DRAW documentation. It is
possible to use the cell pressure for calculating the drawdown by selecting the NODD option of the DWPW
keyword, but this cannot be selected on a well-by-well basis.
• This event is a recommended alternative to WELL sub-keyword P-RE.
Examples
1. P-RE is used to set the external radius for well P-1 at 600.
The resulting pressure at the external radius can be plotted in 2D using the “Pressure at External Radius
(wbpr)” vector in the Wells tab of the results, as shown below:
Syntax
REDE <new target type> <new target rate> <new target BHP/THP> [Lift table name]
,→[HOUR <hrs>]
Description
The REDE event is used to provide well redefinition information for when the well is redefined due to a limit set
by PLIM event.
Definitions
Notes
• Redefining a well cannot change a producer to an injector - it simply resets a well target.
• Pressures in third argument correspond to the datum depth, as specified by DATU
• This event is a recommended alternative to WELL sub-keyword REDE.
Examples
1. The well P-1 is assigned a minimum oil rate limit of 9500 by the PLIM event. When the oil rate falls below
9500, the well is redefined via the REDE event to a new bottom hole pressure (BHP) limit of 300. Next, if
the oil rate falls below 9500 again, the BHP limit is reset to 200. Then, if the oil rate falls below 9500 for a
third time, the BHP limit is set to 100.
Syntax
Description
The REFRA event is used to re-fracture an existing well fracture already defined by a VFRA or HFRA event. This
operation resets and optionally modifies certain fracture parameters.
Definitions
Notes
• Without any optional arguments, REFRA acts as if the original fracturing event had been called. All addi-
tional arguments override the original ones.
• The arguments can be listed in arbitrary order.
• After a re-fracturing operation, the fracture conductivity decays in time, as
t − tfrac
ccf = ccf0 w + (1 − w) exp − ,
τ
where w is the weight defined above, t is time, tfrac is the fracturing time, and τ is the fracture time constant.
If τ is defaulted, then w = 1.0 and the fracture conductivity will not decay with time.
Examples
1. The example below uses the events VFRA and HFRA to create vertical and horizontal fractures, respec-
tively, on well WPRD. Both the fractures turn off once the conductivity goes below a threshold of 0.01
mD-feet. The REFRA event is then used to re-fracture both the fractures after a span of 5 years. See
VFRA_HFRA_REFRA.dat for complete example:
TTAB
WPRD
5500 5500 5000 5000
5500 5500 6000 6000
WPRD:1
5500 5500 5850 5850
9500 5500 5850 9850
ENDT
Fig. 11.6: Fracture voidage production rates for fracture P1 and P2 (available from the Layer tab). Note the
refracturing for P1 and P2 taking place in year 2005 and 2007 as specified in the input.
Fig. 11.7: 3D grid with fracture visualisation. The first view shows the vertical fracture P1 (spanning over layers
3 to 5) while the second one shows the horizontal fracture P2 (spanning over layers 7 to 9).
2. This example uses the event HFRA to create a horizontal fracture on well WPRD after 100 days of simula-
tion start date. The fracture’s vertical extent is set using the upper and lower TVD arguments such that the
fracture follows the layers 2 and 3 (as FOLLOW LAYERS argument is the default). As the fracture is set
a time constant of 50 days, it decays to virtually zero conductivity after some time. The REFRA event is
then used to re-fracture at 1500 days. Note that some of the fracture parameters have been modified in the
re-fracture. See HFRA_TVD_REFRA.dat for complete example:
TTAB
WPRD
50 450 3010 3010
950 450 3010 3910
ENDT
0 OPT 1000
0 BHPT 70
1500 REFRA ID HRZ PERM 20000 WIDTH 0.02 TAU 100 MINCOND 0.5
ENDE
Fig. 11.8: Fracture oil production rate for horizontal fracture HRZ. Production from the fracture starts at 100
days and continues until the fracture conductivity decays to zero. The REFRA event then refractures HRZ at 1500
days. Note that the decay constant for the refracture has been increased as compared to the initial fracture setting.
Fig. 11.9: 3D grid with fracture visualisation (FOLLOW LAYERS). The first view shows the horizontal trajectory
of well WPRD while the second one shows the extent of the fracture following the grid layers 2 and 3.
3. This example uses the event VFRA to create a vertical fracture on well WPRD after 100 days of simulation
start date. The fracture’s vertical extent is set using the upper and lower MD arguments such that the fracture
follows the layers 2 and 3. As the fracture is set a time constant of 500 days, it decays to zero conductivity
after some time. The REFRA event is then used to re-fracture at 1000 days. Note that some of the fracture
parameters have been modified in the re-fracture. See VFRA_MD_REFRA.dat for complete example:
TTAB
WPRD
550 550 2990
550 550 3025
ENDT
0 OPT 500
0 BHPT 70
1000 REFRA ID VRT PERM 2000 WIDTH 0.002 TAU 300
ENDE
Fig. 11.10: Fracture oil production rate for vertical fracture VRT. Production from the fracture starts at 100 days
and continues until the fracture conductivity decays to zero. The REFRA event then refractures VRT at 1000 days.
Note that the decay constant for the refracture has been increased as compared to the initial fracture setting.
Fig. 11.11: 3D grid with fracture visualisation (with fracture grid showing voidage flow rates along the fracture).
The fracture can be seen to follow the grid layers 2 and 3.
Syntax
SRVW <md> <da> <db> <dc> <theta> <FK> <T_srv> <kl> <ku> [VARI|CONS|MATR|FRAC]
,→[HOUR <hrs>]
Description
The SRVW event is used to specify the location, size, orientation, permeability multiplication factor and time
constant of the ellipsoidal stimulated reservoir volume.
Definitions
Notes
• F K is a multiplication factor — the original permeability may be extremely small, but must be non-zero
for the SRV permeability enhancement to have an effect. If the base permeability is zero then the SRV
permeability will also be zero.
• If the time constant is not entered the permeability multiplication factor is constant. If the SRV time constant
is set, the permeability factor improvement will decay like
T
F K(T ) = F K(TSRV ) × exp 1 −
TSRV
See example.
• The SRV ellipsoid can be limited to certain layers using the lower and upper layer index. See example.
• This event is a recommended alternative to keyword SRVW.
Examples
1. SRVW is used to add a SRV along a well trajectory at a measured depth of 5500 feet. The ellipsoidal volume
is given dimensions of da, db, dc and theta to be 200 feet, 1000 feet, 400 feet and 20 degrees respectively.
F K stays constant at 10000mD within the SRVI as permM has been set to CONS:
3. SRVW is used to limit the SRV effect between layers 26 and 75. The images below show the side view for
Grid K index for SRVW with kl and ku defaulted (ORIGINAL) and kl = 26 and kl = 75 (MODIFIED).
4. SRVW is used to taper F K quadratically from the centre of the ellipsoid to the boundary by entering the
last argument as VARI. The permeability multiplication factor will be F K(1 − w), where “w” is:
pa 2 2 pc 2
pb
w= + +
da db dc
boundary of the ellipsoid is w=1 and the centre is w=0; permeability increase will fall to zero at the boundary
of the ellipsoid.
The figure below shows the Permeability Modification Factor within the SRV.
5. SRVW is used to apply F K, throughout the SRV, in the VARI mode to matrix cells only in a dual perme-
ability run. The images below show the side view for Grid K index for SRVW.
6. SRVW is used to apply F K, throughout the SRV, in the VARI mode to matrix cells only in a dual perme-
ability run. The images below show the side view for Grid K index for SRVW.
Syntax
Description
The SOLV event is used to specify the solvent concentration in the injected gas stream of a well when the SOLV
(solvent) option has been turned on in the FLUI (Fluid) section. If SOLV is not specified, injected gas is pure
reservoir gas.
Definitions
1. Solvent concentration
• Units: fraction
2. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• To use this event, SPVT table must be specified in the FLUI section of the dataset. Otherwise, MORE will
generate an error.
• Please see the Solvent section of the MORE Technical Reference for more information regarding the treat-
ment of solvents in Tempest.
• The solvent concentration should be specified as a mole fraction, which is calculated as follows: (solvent
gas volume)/(total solvent + reservoir gas volume).
• This event is a recommended alternative to WELL sub-keyword SOLV.
Examples
1. The SOLV event is used to specify a solvent concentration of 50% for the injection well I-1.
Solvent fractions, and injection and production rates and totals can then be plotted in 2D from the Wells tab
of the results, as follows:
Plotting the solvent fraction for the well I1, the following plot is obtained:
Solvent phase saturation data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Syntax
Description
The STEAM event is used to specify the temperature, pressure, quality, and specific enthalpy of the fluid being
injected by a well when steam modelling has been turned on by using the STEA keyword in the INPU (Input) or
FLUI (Fluid) sections.
Definitions
Notes
• If STEA keyword is not specified, the fluid will be injected with the average initial temperature of the
reservoir.
• Generally, the user will specify the steam temperature or the steam pressure and the steam quality. As an
alternative, the steam specify enthalpy can be entered alone.
• As an alternative to adding the STEA keyword to the INPU (Input) or FLUI (Fluid) sections, steam mod-
elling can also be requested by entering STEAM as a component with CNAM in the INPU (Input) section.
• Please see the Steam/Thermal section of the MORE Technical Reference for more information regarding
steam modelling in Tempest.
• This event is a recommended alternative to keyword STEA.
Examples
1. The STEAM event is used to specify a steam injection temperature of 458o F and a steam quality of 75% for
the injection well I-1. The steam pressure and enthalpy are given their default values.
Heat injection and production rates and totals can then be plotted in 2D from the Wells tab of the results, as
follows:
Plotting the heat injection rate for the well I-1, the following plot is obtained:
Reservoir temperature data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Syntax
Description
Definitions
Notes
• STRE A (B) implies the injection stream will be used for the first (second) injection fluid. If neither A nor
B is given, the injection stream will be used for both fluids.
• This event is a recommended alternative to specifying injection stream using WELL keyword.
Examples
1. PRDG has been defined as a stream using RECY keyword, and then used for reinjection using GIT and
STRE events.
2. Using the STRE event, a well is set to inject CO2 before a series of water and gas injection periods defined
by historical rates.
Syntax
Description
The TEMP event is used to specify the temperature of the fluid being injected by a well when the THER (thermal)
option has been turned on in the INPU (Input) or FLUI (Fluid) sections.
Definitions
1. Injection temperature
• Units: o F (Field), o C (Metric)
2. Optional arguments:
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• If TEMP is not specified, fluid will be injected at 15o C or 60o F, depending on the units used for the run.
• To use this event, OVVT table must be specified in the FLUI section of the dataset. Otherwise, MORE will
generate an error.
• Please see the Thermal section of the MORE Technical Reference for more information regarding thermal
modelling in Tempest.
• This event is a recommended alternative to keyword TEMP.
Examples
1. The TEMP event is used to specify an injection temperature of 136.67 for the injection well I11.
Heat injection and production rates and totals can then be plotted in 2D from the Wells tab of the results, as
follows:
Plotting the heat injection rate for the well I11, the following plot is obtained:
Reservoir temperature data will also appear in the Recurrent tab of the results for visualisation in 3D, as
shown below:
Syntax
Description
Definitions
Notes
• When the TEST event is specified, all producers shut-in due to rate or ratio limits are tested for possible
flow. If THP or THPONLY is used, wells shut because it was not possible to satisfy the required top hole
pressure are also tested.
• The wells are opened and those that are within the rate, ratio, and thp target limits will continue to produce,
while others are shut-in. By default, well limits are not checked after the first time-step, ensuring that tested
wells are switched on for at least a time-step. This behaviour may be overridden by using the NOSTEP
option.
• Unless using the EXACT flag, repeated well tests are performed at the first simulator timestep after the
specified test interval has elapsed since the last well test. Hence, the actual testing frequency can be lower
than the requested one.
• Using LEGACY option ensures test frequency is sampled differently, and no maximum number of repeti-
tions can be set. This is equivalent to the TEST keyword.
Examples
1. TEST is used to specify the testing of shut-in wells at 5 years and thereafter at six month intervals.
2. TEST is used to specify the testing of shut-in wells on Jan 01, 1989 and thereafter at the default of three
month intervals.
3. TEST is used with a time interval of 99 years to effectively turn off the testing of wells.
Alternatively, the OFF option may be used to TEST to turn off the testing of wells as well.
Syntax
TRAC <Tracer conc> <Tracer name> [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The TRAC event is used to set the tracer injection concentration for an injector well.
Definitions
Notes
• The name of the component to carry the tracer must be in the CNAM in the INPU section.
• Before setting its concentration, the tracer should first be defined using the TRAC keyword.
• The injection concentration for a tracer associated with an injection well may also be defined using the
WTRC keyword in the RECU section.
• The injection concentration for an aquifer may be defined using the ATRC keyword in the RECU section.
• Tracer dependent property multipliers may be defined with the TFUN keyword.
• Please see the Tracers section of the MORE Technical Reference for more information regarding the treat-
ment of tracers in Tempest.
Examples
1. TRAC keyword is used to define a tracer named TRC1 to be associated with water.
The TRC1 tracer can now be used with the TRAC event to set a tracer concentration of 1 mole of tracer per
mole of water for I-1 injection well.
The tracer concentration array will then appear in Recurrent tab of the results for display in 3D as shown
below. In the figure below, we can see the distribution of the TRC1 tracer in the reservoir after 10 years.
Syntax
Description
The VFRA event is used to define a vertical well fracture using the improved well fracturing model. The improved
model’s settings may be set using the WFPLUS keyword in the INPU section.
Definitions
ID <Fracture name> A unique fracture name may be used to reference a fracture after it was created, in order to
turn it off or re-fracture.
• Default: “Fracture <n>”, where “<n>” is an internal counter
BRANCH <Branch index> Specifies the branch from which to initiate the well fracture.
LENGTH <length> [<other arm length>] The lateral extent of the fracture. Unless two lengths are given the
fracture is symmetric.
• Units: feet (Field), metres (Metric)
MD <lower MD> <upper MD> The measured depth range over which the fracture spans vertically.
• Units: feet (Field), metres (Metric)
LAYER <top layer> <bottom layer> The layer range over which the fracture spans vertically.
TVD <top depth> <bottom depth> The true vertical depth range over which the fracture spans.
• Units: feet (Field), metres (Metric)
ANGLE <angle> [<bend angle>] Specify the angle between the fracture and x-axis, and optionally the bend
angle, i.e. the deviation from a straight fracture on one side of the well.
• Units: degrees
• Default: 0 for both
DIRECTOR <array> Specify the angle between the fracture and x-axis using a user-defined array. Used as an
alternative to ANGLE.
• Units: degrees
WIDTH <width> Fracture width, used in conjunction with PERM.
• Units: feet (Field), metres (Metric)
PERM <permeability> Fracture permeability, used in conjunction with WIDTH.
• Units: mDarcy
COND <conductivity> Fracture conductivity, used as alternative to PERM and WIDTH
• Units: mDarcy-feet
MINCOND <minimum conductivity> Fracture conductivity threshold below which the fracture shuts.
• Default: 10−6 × initial conductivity
• Units: mDarcy-feet
RATIO <inflow height ratio> Ratio between well inflow length and fracture height
• Default: overlapping perforation length / fracture height
TAU Time constant of fracture conductivity decay.
• Default: infinite
• Units: days
W Relative plateau value w ∈ [0..1] of fracture conductivity decay.
• Default: 0
FOLLOW Specifies whether the fracture follows grid layers or extends at constant vertical depths.
• Default: LAYERS
OFF Shuts fracture, which may be reopened using REFRA.
AFTER <value> [DAYS|MON|YEAR] If AFTER is specified on a well event, the event will be delayed until
the well is open and has been open for a specified time. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
HOURS <hrs> HOURS enables a number of <hrs> hours to be added to the time of an event, which is helpful
for well test simulation.
Notes
• Minimum input requirements for VFRA event are to enter the fracture length, vertical extent (using exactly
one of {MD, TVD, LAYER}), and its conductivity (using either COND or WIDTH and PERM).
• The arguments can be listed in arbitrary order.
• Unless a fracture name is supplied, the fracture is given a generic name.
• VFRA should only be used on vertical segments of well trajectories, otherwise the behaviour may be unde-
fined.
• The well trajectory must be perforated at least partially within the vertical fracture range, e.g. by use of
the PERF event. Unless a RATIO is explicitly specified, the connectivity between the fracture and the well
scales linearly with the ratio between the overlapping perforation length and the fracture height. This ratio
may change over time as new perforations are created or existing ones squeezed. Perforation ranges are not
limited to active cells.
• After a fracturing operation, the fracture conductivity decays in time, as
t − tfrac
ccf = ccf0 w + (1 − w) exp − ,
τ
where w is the weight defined above, t is time, tfrac is the fracturing time, and τ is the fracture time constant.
If τ is defaulted, then w = 1.0 and the fracture conductivity will not decay with time.
• The fracture calculations are always based precisely on the vertical extent of a fracture as defined by the
MD, TVD or HEIGHT options. However, the 3D viewer displays the fracture as spanning the fracture layer
range fully unless the FOLLOW DEPTHS argument is used.
• For reporting purposes, each fracture is assigned a single (i,j,k) cell location. For HFRA, this is the com-
pleted cell at the user-given MD, while for VFRA the top cell spanned by the fracture is used.
• When using the DIRECTOR argument, the fracture angle is determined by:
– the DIRECTOR array value at the fracture’s cell location if this cell is active, or else
– the weighted average of the DIRECTOR array in the fracture co-volume. The weight function is
vertically invariant and decays rapidly with distance from the x-y centre of the fracture.
• The DIRECTOR array should be defined using the DEFI keyword using the SAVE option to ensure that the
array is available in the RECU section. As with any array, only the first four letters are used to identify the
array.
• It is possible to initiate a well fracture from inactive cells along the trajectory using event VFRA or HFRA.
However, to use this functionality the INAC option of the WFPLUS keyword must be set.
• In DPOR or DPER cases, well fractures only connect to the fracture domain of the reservoir grid. Note that
VIEW displays well fractures in both the fracture and matrix medium in the grid view (if Visible Cell
Test option in unchecked in Wells settings in Options | Defaults | 3D View Settings).
Examples
1. The example below uses the events VFRA and HFRA to create vertical and horizontal fractures, respec-
tively, on well WPRD. Both the fractures turn off once the conductivity goes below a threshold of 0.01
mD-feet. The REFRA event is then used to re-fracture both the fractures after a span of 5 years. See
VFRA_HFRA_REFRA.dat for complete example:
TTAB
WPRD
5500 5500 5000 5000
5500 5500 6000 6000
WPRD:1
5500 5500 5850 5850
9500 5500 5850 9850
ENDT
Fig. 11.12: Fracture voidage production rates for fracture P1 and P2 (available from the Layer tab). Note the
refracturing for P1 and P2 taking place in year 2005 and 2007 as specified in the input.
Fig. 11.13: 3D grid with fracture visualisation. The first view shows the vertical fracture P1 (spanning over layers
3 to 5) while the second one shows the horizontal fracture P2 (spanning over layers 7 to 9).
2. This example uses the event VFRA to create a vertical fracture on well WPRD after 100 days of simulation
start date. The fracture’s vertical extent is set using the upper and lower MD arguments such that the fracture
follows the layers 2 and 3. As the fracture is set a time constant of 500 days, it decays to zero conductivity
after some time. The REFRA event is then used to re-fracture at 1000 days. Note that some of the fracture
parameters have been modified in the re-fracture. See VFRA_MD_REFRA.dat for complete example:
TTAB
WPRD
550 550 2990
550 550 3025
ENDT
0 OPT 500
0 BHPT 70
1000 REFRA ID VRT PERM 2000 WIDTH 0.002 TAU 300
ENDE
Fig. 11.14: Fracture oil production rate for vertical fracture VRT. Production from the fracture starts at 100 days
and continues until the fracture conductivity decays to zero. The REFRA event then refractures VRT at 1000 days.
Note that the decay constant for the refracture has been increased as compared to the initial fracture setting.
Fig. 11.15: 3D grid with fracture visualisation (with fracture grid showing voidage flow rates along the fracture).
The fracture can be seen to follow the grid layers 2 and 3.
Syntax
Description
The WALQ event is used to specify a well artificial lift quantity. This only has an effect when the well has a tubing
table for which an ALQ variable has been defined (please see ALQ or TUBI keywords for details of entering tubing
tables with artificial lift.)
Definitions
Notes
• The units of WALQ should match those used by ALQ keyword when specifying the tubing table properties.
• This event is a recommended alternative to keyword WALQ.
Examples
1. WALQ is used to specify an artificial lift quantity of 0.85 for the well W100.
Syntax
Description
The WSALT event is used to set the salt injection concentration for an injector well.
Definitions
Notes
• See the Brine Tracking section of the MORE Technical Reference for more information regarding brine
tracking in Tempest.
Examples
1. The WSALT event to set a salt injection concentration of 0.5 lb/stb (assuming Field units) for injection well
I-1.
Syntax
Description
The WEF event is used to specify a well efficiency factor between 0.0 and 1.0 for a well.
Definitions
1. Well efficiency factor (any integer value between 0.0 and 1.0)
• Default: 1
Notes
• The WEF event would be used to specify the well efficiency factor when a well has downtime. For example,
suppose that a well had a 40% downtime and a target rate of 10000 stb/day. By specifying an efficiency
factor of 0.6, the well will operate at a bottom hole pressure corresponding to a rate of 10000 stb/day but
the rate at which fluid is extracted will be at 6000 stb/day (i.e. it will reflect the reduced efficiency due to
the downtime.)
• This event is a recommended alternative to keyword WWEF and WELL sub-keyword WEFA.
Examples
1. The WEF event is used to specify a well efficiency factor of 50% for the well P-1.
This will result in the well P-1 being operated at a bottom hole pressure which will yield a rate of 10000
stb/day, but the actual net production will be 5000 stb/day, as shown in the plot below. The bottom hole
pressure is plotted in red while the oil production rate can be seen in green.
To demonstrate the effect WEF event has on the bottom hole pressure and production rates, the plot below
shows the oil production rate and bottom hole pressure for the same well without the WEF event.
Syntax
WLIF <min lift rate> <max lift rate> [min eff] [packet size] [HOUR <hrs>]
Description
The WLIF event is used to request that the amount of artificial lift be set to optimise the oil production of a well.
Definitions
1. The minimum amount of lift that may be applied to the well (liftmin)
• Units: mscf/day (Field), ksm3 /day (Metric)
• Default: 0
2. The maximum amount of lift that may be applied to the well (liftmax)
• Units: mscf/day (Field), ksm3 /day (Metric)
• Default: 0
3. Optional arguments:
• The minimum oil rate improvement per unit lift gas added
– Units: (stb/day)/(mscf/day) (Field), (sm3 /day)/(ksm3 /day) (Metric)
– Default: 1.0E-6
• The size of gas rate packet to be added at each step of the optimisation (packet) (optional)
– Units: mscf/day (Field), ksm3 /day (Metric)
– Default: 0.05*(liftmax-liftmin)
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• To be used with WLIF, a well must have an associated lift table defined by TUBI keyword.
• To be lift table, a table must either:
– Have a gas rate dependence, gas being the FLOW variable, or have gas dependent RATI variable, or
– Have an ALQ variable of type GLIF. (The ALQ value will be used in preference if both are present.)
• When WLIF is used, the amount of gas lift will be adjusted at the start of each timestep, unless a well
optimisation interval is set with GLOP. The program will test lift values from liftmin to liftmax, increasing
the lift value in steps of packet within this range until the well is operating on a bottom hole pressure or rate
target. If using ALQ variation to represent lift, the well’s ALQ will be changed; if not, the value of the gas
rate used in the lift curve lookup will be displaced by the lift gas rate.
• If a well has been shut because the well could not operate at the current top hole pressure target, WLIF will
attempt to open the well by adding lift.
• Lift will only be added whilst improvement, measured as d(Qo)/d(Lift) is greater than the minimum oil rate
improvement specified in the respective argument.
• To stop using gas lift optimisation, set liftmax to zero.
• The amount of lift gas used by the well will be reported as the rate file quantity WLIF if the RATE WELL
packet is selected. The well lift rate is also accounted up through the group system, and can be included in
pipeline calculations if the USEL argument on the PIPE keyword is selected.
• If the ALQ variable is of type GLIF, it is reserved for gas lift: it cannot be set using WALQ event.
• This event is a recommended alternative to keyword WLIF.
Examples
1. WLIF is used to optimise the lift value for the well W100.
EFOR 'dd/mmm/yyyy'
ETAB
W100
01/Jan/2000 WLIF 1 1 1.34 1*
ENDE
Syntax
Description
The WMUL event is used to specify a single completion connection factor multiplier for all the connections of a
well.
Definitions
Notes
Examples
EFOR 'dd/mmm/yyyy'
ETAB
W13A
01/Jun/2001 WMUL 0.5
ENDE
Syntax
WEOS <surface EoS index> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The WEOS event is used to specify the equation of state used to flash the well when using multiple equation of
state regions with EOSN.
Definitions
Notes
• This event is a recommended alternative to keyword WEOS. More information is given in the documentation
for WEOS.
Examples
1. WEOS is used to assign the second surface EoS specified using TEMP SURF to well W13A:
EFOR 'dd/mmm/yyyy'
ETAB
W13A
01/Jun/2001 WEOS 2
ENDE
Syntax
WFRA <Angle> <kl> <ku> <L> <Perm> <Width> <Cond> <Time Cons> <mdl> <mdu>
<V|H> [LAY <kl> <ku>|DEP <dl> <du>|NONE] [OTHER <other arm length>]
[BEND <bend angle>] [SPCO <sharedPathFactor>] [BRANCH <branch_index>]
[DECAYW <decayWeight>] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
Definitions
1. Angle of fracture in the xy plane (measured from the positive x-axis towards the positive y-axis)
• Units: degrees
2. First layer containing fracture (in global grid): kl
3. Last layer containing fracture (in global grid): ku
4. Length of fracture from well to tip (assumed same in both directions)
• Units: feet (Field), metres (Metric)
5. Permeability of fracture
• Units: mDarcy
6. Width of fracture
• Units: feet (Field), metres (Metric)
7. Conductivity of fracture
• Units: mDarcy-feet
• Default: Permeability * Width
8. Fracture time constant
• Default: infinite
• Units: days
9. Lower measured depth for horizontal fracture case
• Units: feet (Field), metres (Metric)
10. Upper measured depth for horizontal fracture case
• Units: feet (Field), metres (Metric)
11. Type of fracture: V or H
• V (default) - vertical fracture type
• H - horizontal fracture type
12. Optional arguments:
• Non-default options to request that well fractures connect to a specified range of layers or depths:
LAYE or DEPT
– LAYE - well fractures connect to a specified range of layers
– DEPT - well fractures connect to a specified range of depths
Notes
• If the conductivity is entered, the permeability and width need not be supplied.
• For vertical well fractures, all the completions in the index range kl to ku will be fractured (mdl and mdu
will not be used).
• For horizontal well fractures, only the first completion in the measured depth (MD) range mdl to mdu will
be fractured. A completion with associated MD interval Icell is considered inside the fracture MD range only
if the midpoint of Icell lies within this range.
• Normally, fractures propagate outwards from each fractured completion in the grid layer containing the
completion. If LAYE ll lu is specified, then each fractured completion is connected to cells in the global
layer range ll to lu . If DEPT dl du is specified, then each fractured completion is connected to cells in the
depth range dl to du .
• After a fracturing operation, the extra fracture connections between the well and the grid decay in time, as
t − tfrac
ccf = ccf0 w + (1 − w) exp − ,
τ
where w is the weight defined above, t is time, tfrac is the fracturing time, and τ is the fracture time constant.
If τ is defaulted, then w = 1.0 and the extra fracture connections will not decay with time.
• The syntax for the WFRA event differs from the WFRA keyword in that the other arm length, the bend angle
and the shared path coefficient are specified using OTHER, BEND and SPCO arguments. In addition the
measured depth range must precede the V/H fracture type.
Fig. 11.16: Sketch of completed cells along a trajectory segment (blue). Two WFRA measured depth ranges
are depicted in red. The first MD range on the left (WFRA 1) contains the midpoint A of the MD range for the
left-most completion, and a fracture has been created. The second WFRA MD range (WFRA 2) lies between the
two midpoints B and C, so no fracture has been created.
• Please see the Well Fracturing Model section of the MORE Technical Reference for more information on
this topic.
Examples
1. WFRA is used to set up a well fracturing operation for the well WPRD using the most minimal amount of
information that can be specified, which consists of seven required arguments. It is desired for the fracturing
operation to have a fracture angle of 45o , start in the third layer, and end in the fourth layer. The fracture
will be given a length of 2500, a permeability of 100000 mD, and a width of 0.01.
Upon display in the 3D Viewer, an orange marker is used to indicate the cells in the grid that contain
fractures, as shown below:
A fractured well can also be identified in the Wells tab, where it will appear with a fractured symbol, as
shown below:
2. In this example, we will use the same WFRA settings as the example above, but this time, we will add a
bend angle of 45o in the fracture, as follows:
Upon display in the 3D Viewer, we will see that a 45o angle has been added to the fracture.
3. In this example, we will use the same WFRA settings as Example #1 above, except this time, we will create
an asymmetrical fracture with a other arm length of 2000. We do this by adding entering a value for the
sixteenth argument of WFRA, as follows:
Upon display in the 3D Viewer, we will see that one of the fracture arm lengths have been cut down to 2000.
4. In this example, the LAYE option will be used with WFRA to connect the well fractures to a specified range
of layers. This well, P-FRAC1, will be completed only in the first layer in a grid with five layers. WFRA
will be used to specify a fracturing operation that creates fractures with a fracture angle of 45o . The fractures
will start in the first layer and extend all the way to the fifth layer with a length of 5000, a permeability of
100000mD, and a width of 0.01. The LAYE option of WFRA is then used to ensure that the fractures extend
from the first layer to the fifth layer.
When we display the fractures in the 3D Viewer, we can see that while the well is only completed in the first
layer (as marked in red on the well trajectory), the fractures are extended from the first layer all the way to
the fifth layer (as marked in orange), as specified by the LAYE option.
The DEPT option works in the same fashion as the LAYE option, expect that for the DEPT option, lower
and upper depths should be entered instead of layers.
Syntax
Description
The WSPC (Well Separator Conditions) event is used to attach a separator to a well.
Definitions
Notes
Examples
1. WSPC is used to attach the separator conditions XXX to the well P-1.
-- Define separator conditions (note XXX should not be the name of a group)
--Define wells and reset separator conditions for well P-1 after 5 years..
EFOR 'dd/mmm/yyyy'
ETAB
P-1
01/Jan/2005 WSPC XXX
ENDE
Syntax
Description
The WTOL event sets the required tolerance for a well limit. An example would be if a well is to be cut back
if a water limit is exceeded. If the limit is exceeded by more than the allowed tolerance, the step is repeated. A
maximum number of step repeats may be specified - after that the simulation will proceed.
Definitions
1. Optional arguments:
• Fractional tolerance allowed:
– Default: unlimited
• Number of repeated steps allowed to achieve required tolerance:
– Default: 1
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
• This event is a recommended alternative to keyword WTOL.
Example
1. Repeat step if a well limit is exceeded by more than 1%. Allow up to 2 repeated steps.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 WTOL 0.01 2
ENDE
Syntax
,→<hrs>]
Description
The WWAG event is used to set up a well as a water alternating gas injector.
Definitions
Notes
• Once the WWAG event has been read, the well will alternate between two fluids indefinitely.
• BHP and injection target of the second fluid must be specfied using the SECOND argument of BHPT and
WIT or GIT events respectively.
• If the gas injection in the WAG sequence is to be used from recycling, it is highly recommended to use the
STRE event with A or B argument. This will ensure the injection stream will be used for injection fluid 1 or
2. If neither A nor B is given, the injection stream will be used for both fluids which may be give unexpected
results.
• This event is a recommended alternative to keyword WWAG.
Examples
1. The well I-1 is set up to have two injection fluids: gas and water. The WWAG event is then used to introduce
a WAG sequence which involves alternating between 30 days of gas injection and 30 days of water injection.
When the gas and water injection rates are plotted on the same graph in 2D, the alternating gas and water
injection every 30 days is apparent.
2. The well I-1 is set up to have two injection fluids: gas and water. The WWAG event is then used to introduce
a WAG sequence which involves alternating between 2 Mstb and 1 MMscf surface volume of water and gas
injection respectively. See event_WWAG_SVOL.dat for complete example:
The plot for water and gas injection rates and totals shows that, as expected, the following WAG sequence
is observed:
• WIT = 200 stb/d for 10 days to achieve 2 MStb of SVOL
• GIT = 200 Mscf/d for 5 days (from 10th to 15th day) to achieve 1 MMscf of SVOL.
• The above is then repeated.
Let’s introduce the WAG sequence XX defined the by SEQU keyword to this dataset. See
SEQU XX 4
0.3 0.6 0.7 0.4
The plot for water and gas injection rates and totals shows that, as expected, the following WAG sequence
is observed:
• WIT = 200 stb/d for 3 days to achieve 2*0.3=0.6 Mstb of SVOL [wwit(t=3days) = 0.6 Mstb, wgit
(t=3days) = 0 MMscf]
• GIT = 200 Mscf/d for 3 days (from 3rd to 6th day) to achieve 1*0.6 = 0.6 MMscf of SVOL
[wwit(t=6days) = 0.6 Mstb, wgit (t=6days) = 0.6 MMscf]
• WIT = 200 stb/d for 7 days (from 6th to 13th day) to achieve 2*0.7=1.4 Mstb of SVOL
[wwit(t=13days) = 2.0 Mstb, wgit (t=13days) = 0.6 MMscf]
• GIT = 200 Mscf/d for 2 days (from 13th to 15th day) to achieve 1*0.4=0.4 MMscf of SVOL
[wwit(t=15days) = 2.0 Mstb, wgit (t=15days) = 1.0 MMscf]
• The above sequence is then repeated to result in wwit (t=30 days) = 4.0 Mstb and wgit (t =30 days) =
2.0 MMscf.
3. The well I-1 is set to have an alternating sequence of water and gas injection with an interval of 2 days and
1 day respectively. The WAG sequence is then turned off after 10 days with the well set to inject on stream
B (gas) afterwards. See event_WWAG_B.dat for complete example:
0 BHPT 10000
0 GIT 200 SECOND
0 BHPT 10000 SECOND
0 WWAG 2 1 DAYS
10 WWAG 1* 1* OFF B
ENDE
The plot of water and gas injection rates shows that after 10 days, well operates on stream B (gas injection
control).
In the same example, if LEAVE argument is used instead of B, the well will operate in the WAG sequence
at the ending time of the sequence.See event_WWAG_LEAVE.dat for complete example:
On 10th day in this example, the well will be operating on water injection. So when WAG sequence is
switched off, the well will carry on operating in this mode:
Syntax
Description
The FORCH event enables Forchheimer flow for the respective well.
Definitions
1. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event will only come into effect if Forcheimer flow modelling is turned on using the FORC keyword
in the INPU section.
• This event is only required if the ALL argument is not used with the FORC keyword.
• This event is a recommended alternative to keyword WFOR.
• See Forchheimer Flow in the MORE Technical Reference for details of Forchheimer flow.
Syntax
Description
The GPP event enables the use of gas pseudo-pressure for the respective well.
Definitions
1. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event will only come into effect if gas-pseudo pressure option is turned on using the GPP keyword in
the INPU section.
• This event is only required if the ALL argument is not used with the GPP keyword.
• See the Gas Pseudo-Pressure section of the Technical Reference where the calculation and use of gas
pseudo-pressure is described.
• This event is a recommended alternative to keyword WGPP.
Syntax
LTAB <Lift Table Name> [OFF] [AFTER <value> [DAYS|MON|YEAR]] [HOUR <hrs>]
Description
The LTAB event is used to set a tubing head pressure limit on a well in accordance with the respective tubing head
pressure table defined using the TUBI keyword.
Definitions
Notes
• If lift tables are specified using the keyword VFPPROD or VFPINJ, use tubeprodXX or tubeinjeXX (where
XX is the lift table number) respectively as the lift table name.
• This event is a recommended alternative to entering a lift table as the 7th argument of WELL keyword to
indicate that the limiting pressure is a THP.
Example
Syntax
Description
The MPGPP event enables the use of multi-phase gas pseudo-pressure for the respective well.
Definitions
1. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event will only come into effect if multi-phase gas pseudo-pressure option is turned on using the MPGP
keyword in the INPU section.
• This event is only required if the ALL argument is not used with the MPGP keyword.
• Details of the calculation and use of multi-phase gas pseudo-pressure are described in the Gas Pseudo-
pressure section of the Technical Reference Manual.
• This event is a recommended alternative to keyword WMPG.
Syntax
Description
The PUMP event is used to specify that a downhole pump is used to provide artificial lift to the respective well.
Definitions
1. Pump name
2. Optional arguments:
• OFF - stops further pipeline pump calculations for the well
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• The downhole PUMP table can be defined using the PUMP keyword.
• This event is a recommended alternative to specifying downhole pump to provide artificial lift using the
WELL sub-keyword LIFT.
Examples
The OFF option is then introduced to stop further pipeline pump calculations for the well (effectively remove
the pump), as follows:
ETAB
Pr-10A 01/JAN/2010 PUMP PUMP_23 OFF
ENDE
Syntax
RG [HOUR <hrs>]
Description
The RG event enables the use of Russell-Goodrich for the respective well.
Definitions
1. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event will only come into effect if Russell-Goodrich option is turned on using the RG keyword in the
INPU section.
• This event is only required if the ALL argument is not used with the RG keyword.
• See the Russell-Goodrich section of the Technical Reference where the calculation and use of gas pseudo-
pressure is described.
• This event is a recommended alternative to keyword WRG.
Syntax
Description
The VDKR event enables the use of velocity-dependent relative permeabilities for the respective well.
Definitions
1. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event will only come into effect if VDKR keyword is used in the INPU section.
• This event is only required if the ALL argument is not used with the VDKR keyword.
• Details of the calculation and use of velocity-dependent relative permeabilities is described in the velocity-
dependent relative permeabilities section of the Technical Reference Manual.
• This event is a recommended alternative to keyword WVDK.
Syntax
WSEG <max seg L> <starting MD> <abs roughness> [RRTA table name] [HOUR <hrs>]
Description
The WSEG event is used to request that a well be modelled using the multi-segmented well option.
Definitions
Notes
• Either the number of segments or the maximum segment length should be specified. Extra segment breaks
will be inserted at completions and well branches.
• Well Track Table must first be defined using TTAB/ENDT before WSEG event can be used.
• Roughness table using RRTA keyword gets preference over the absolute roughness.
• This event is a recommended alternative to keyword WSEG.
Examples
1. WSEG is used to request that the well WPRD be modelled using the multi-segmented well option with a
maximum segment length of 100, a starting measured depth of 5000, and a well default absolute roughness
of 0.375E-4.
The multi-segmented WPRD well will then appear in the Wells tab of the results where it can be expanded
to show 4 segments with specific plottable 2D multi-segmented well data, as follows:
2. In this example, BRAN is used with the WSEG (multi-segmented well) option.
--* Specify well trajectory in true xyz space
TTAB
--*x y z md
P-1
1500 4500 5000 5000
1500 4500 6000 6000
P-1:1
1500 4500 5500 0
6000 4500 5500 4500
ENDT
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5600 5800 0.5 0 10
01/Jan/2000 PERF 3500 4500 0.5 0 10 BRANCH 1
01/Jan/2000 OPT 5000
01/Jan/2000 BHPT 1500
ENDE
We introduce the BRAN keyword, WSEG event, and RRTA keyword to define the branch structure, multi-
segmented well option and a roughness and radius table respectively.
RRTA RTAB1
--MD Rad Roughness
5000 0.10 0.01
5500 0.50 0.05
/
RRTA RTAB2
--MD Rad Roughness
0 0.60 0.55
1000 0.70 0.56
2000 0.80 0.57
3000 0.90 0.58
4000 0.99 0.59
/
If the argument SEGM under the GENE keyword in the RECU section is entered, the segment properties
can be viewed in the PRINT file and a plot using Tempest VIEW, as shown below:
Syntax
Description
The XFLO event is used to prevent or allow well crossflow. If well crossflow is allowed, fluid is allowed to flow
from high pressure layers to low pressure layers through the well’s open completions. When crossflow is not
allowed, the flow of material from layer to layer is stopped.
Definitions
1. ON or OFF
• ON (default) - turn on crossflow
• OFF - turn off crossflow
2. Optional arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• To turn on/off crossflow for all wells use GXFLO event for group ALL or keyword ALLX.
Examples
Syntax
GCOM <limit type> <limit value> <limit action> <action details> [OFF] [HOUR <hrs>]
Description
GCOM sets up a limit so that if pipeline pressure falls below a given value, or if oil or gas flow rate is too low,
then a compressor (defined by the CMPR keyword) will be switched on or have another remedial action taken.
Definitions
Notes
• Note that, unlike other production limits such as those imposed by GPLIM, GCOM always sets a MINI-
MUM limit, i.e. they trigger if the pressure or rate is too low. There is currently no option to impose GCOM
limits as maximum or hold limits.
• For more information regarding the use of the limit actions COMP, PUMP, LIFT, and ALQS, please see
please see the CMPR, PLPU, LIFT, or ALQ keywords, respectively.
• This event is a recommended alternative to keyword GCOM.
Examples
1. GCOM is used to request up to two ALQ increments of 200 if the gas rate of group DC falls below 120000
ksm3/day.
EFOR 'dd/mmm/yyyy'
ETAB
DC
01/Jan/2000 GCOM GAS 12000 ALQS 200 2
ENDE
Syntax
Description
GFUEL sets the fuel requirement for a group. Both a fraction of the group gas production and a gas rate may be
set.
Definitions
1. Optional arguments:
• The fuel rate for the group
– Units: (mscf/day) (Field) or (ksm:sup:3/day) (Metric)
– Default: 0
• The fuel fraction for the group
– Default: 0
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Example
EFOR 'DD/MMM/YYYY'
ETAB
GW13
01/JAN/2000 GFUEL 101 0.2
ENDE
Syntax
Description
The GGIT event is used to set gas injection target rate for a group.
Definitions
Notes
n/a
Examples
1. The GGIT event is used to impose field gas injection target of 2200 ksm3/day.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GGIT 2200
ENDE
Syntax
Description
The GGPT event is used to set gas production target rate for a group.
Definitions
Notes
n/a
Examples
1. The GGPT event is used to impose gas production target of 500 mscf/day on group G1.
EFOR 'dd/mmm/yyyy'
ETAB
G1
01/Jan/2000 GGPT 500
ENDE
Syntax
Description
The GGVIT event is used to set gas voidage injection target rate for a group.
Definitions
Notes
n/a
Examples
1. The GVPT, GWVIT and GGVIT events are used to balance voidage production with voidage injection to
maintain pressure.
ALL 01/01/2000 GWVIT 1000 -- Impose group water voidage injection target of
,→1000 rm3/day
ALL 01/01/2000 GGVIT 1000 -- Impose group gas voidage injection target of
,→1000 rm3/day
ENDE
Syntax
GILIM <limit type> <limit value> <limit action> [MIN] [OFF] [HOUR <hrs>]
Description
Definitions
Notes
• A group can only have one limit value for a given pair of limit type and action (e.g. GAS & STIM). If a new
limit value is specified for an existing pair (e.g. GAS & STIM), it replaces the existing value. If a new limit
value is specified for a new pair (e.g. WAT & DRIL), then it will define an additional limit.
• A limit of type GAS affects all the gas injectors in the group, while a limit of type WAT affects all the
water injectors. Note that it is possible for a group to have injection gas and injection water limits acting
simultaneously.
• The remedial actions SHUT and STIM are carried out for all wells in the group. The corresponding actions
on indiviual wells are described in the ILIM event help.
• In case of DRIL actions the wells to be drilled must be put in the drill queue. Setting up the drill queue is
described in the well management section of the Tempest MORE Technical Reference.
• In case of a REDE action, the required redefinition must be defined using a GIRED event.
• This event is a recommended alternative to keyword ILIM.
Examples
1. GILIM is used to specify that when the A943 group reaches a minimum water injection rate of 10000, the
injection wells in the group will be stimulated.
EFOR 'dd/mmm/yyyy'
ETAB
A943
10/Oct/2010 GILIM WAT 10000 STIM MIN
ENDE
2. GILIM is used to specify that when the CW-45 group reaches a maximum water injection rate of 45000, all
of the wells in the group will be shut.
EFOR 'dd/mmm/yyyy'
ETAB
CW-45
10/Oct/2010 GILIM WAT 45000 SHUT
ENDE
Syntax
Description
The GLPT event is used to set liquid production target rate for a group.
Definitions
Notes
n/a
Examples
1. The GLPT event is used to set a field liquid production target rate of 500 stb/day.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GLPT 500
ENDE
Syntax
Description
The GOIT event is used to set oil injection target rate for a group.
Definitions
Notes
• When setting oil injection, OIL package of the RATE keyword must be used to report oil injection rates.
Examples
1. The GOIT event is used to set a field oil injection target rate of 2000 sm3/day.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GOIT 2000
ENDE
Syntax
Description
The GOPT event is used to set oil production target rate for a group.
Definitions
Notes
n/a
Examples
1. The GOPT event is used to set a field oil production target rate of 5000 stb/day.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GOPT 5000
ENDE
Syntax
GPLIM <limit type> <limit value> <limit action> [MIN] [OFF] [HOUR <hrs>]
Description
Definitions
1. Limit Type: OIL, GAS, WAT, RESV, LIQ, GOR, OGR, WCT, WOR, GWR, WGR
Limit Type Description
OIL oil production rate for all producers in the group
GAS gas production rate for all producers in the group
WAT water production rate for all producers in the group
RESV reservoir volume production rate for all producers in the group
LIQ liquid production rate for all producers in the group
GOR gas-oil ratio for all producers in the group
OGR oil-gas ratio for all producers in the group
WCT water cut for all producers in the group
WOR water-oil ratio for all producers in the group
GWR gas-water ratio for all producers in the group
WGR water-gas ratio for all producers in the group
2. Limit Value for the Limit Type set in argument 1.
3. Limit Action: BOOST, CUTB, DRIL, REDE, SHUT, STIM, STOP, WORK
Limit Description Syntax
Action
BOOST boost by factor (same as CUTB) BOOST FACTOR <factor>
[PHASE <phase>]
CUTB cut back phase (oil/gas/water/liqu/void) to CUTB FACTOR <factor>
<factor> times current rate factor [PHASE <phase>]
DRIL open well from drilling queue DRIL
REDE redefine one or more wells REDE
SHUT shut all wells in the group SHUT
STIM stimulate STIM
STOP stop run STOP
WORK workover WORK [WRKA|WRKW|WRKS]
4. Optional Arguments:
• MIN - By default limits are maximum limits - ie the limit acts when the predicted value rises above the
limit value. MIN allows the limit to be set up as a minimum limit - ie the limit acts when the predicted
value falls below the limit value.
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• A group can only have one limit value for a given pair of limit type and action (e.g. OIL & STIM). If a new
limit value is specified for an existing pair (e.g. OIL & STIM), it replaces the existing value. If a new limit
value is specified for a new pair (e.g. OIL & DRIL), then it will define an additional limit.
• The remedial actions BOOST, CUTB, SHUT, and STIM are carried out for all wells in the group. The
corresponding actions on indiviual wells are described in the PLIM event help.
• The remedial action WORK provides an additional option to select the type of workover:
– WRKW - Workover the worst well in the group
– WRKS - Shut the worst well in the group
– WRKA (default) - Workover all the wells in the group
• The default factor is 0.9 for CUTB, and 1.11 for BOOST.
• In case of DRIL actions the wells to be drilled must be put in the drill queue. Setting up the drill queue is
described in the well management section of the Tempest MORE Technical Reference.
• In case of a REDE action, the required redefinition must be defined using a GPRED event.
• This event is a recommended alternative to keyword GLIM.
Examples
1. GPLIM is used to specify a minimum oil rate of 4000. If this limit event occurs, a well will be activated
from the drilling queue. This action is specified using the DRIL option.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GPLIM OIL 4000 DRIL MIN
ENDE
2. GPLIM is used to stop a run if the group oil rate falls below 100.
Syntax
Description
The GPRI event is used to set prioritisation group limits. When a group prioritisation limit is operating, wells in
the group will be closed in priority order to meet the group target. The lowest priority wells will be closed first.
The well priority is determined by the coefficients set by PRIO event.
Definitions
Notes
Examples
1. In the example below, we have four wells with a total oil production rate of 10000. These wells, P-1, P-2,
P-3, and P-4 have been set up to have oil production rates of 1000, 2000, 3000, and 4000, respectively. After
5 years of simulation, PRIO event is used to assign a priority to the oil rate using the default time interval of
92.25 days. GPRI event is then used to set a target oil production rate at 8000 for a group of 4 wells. This
rate is then to be met by closing wells with low priority limits. See GPRI_PRIO_event.dat for complete
example:
P-2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
P-3
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 3000.00
P-4
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 4000.00
ALL
01/Jan/2005 PRIO 1* 0 1 0 0 1 0 0 0
01/Jan/2005 GPRI OIL 8000
01/Jan/2010 END
ENDE
From the PRIO event specifications given, the well priority becomes P = qo , the oil rate, as detailed below:
Then, as we have used GPRI to set a target oil production rate of 8000 for our group of wells after 5 years
of simulation, once that target rate is exceeded, the wells in the group would be shut according to their well
priority as determined by the coefficients set in PRIO. In this case, as the well priority has been set to be
equivalent to the oil rate (qo ), the well with the lowest oil production rate would be closed first. If with the
closing of this well, the oil production rate still exceeded the target of 8000, then the well with the second
lowest oil production rate would be closed next and so on and so on, until the target rate was not longer
violated.
As seen in the plot below, the total oil production rate for the group ALL does decrease from 10000 to 8000
after 5 years due to the presence of the GPRI event.
When the oil production rates are plotted for all 4 of the wells (P-1, P-2, P-3 and P-4) in the group ALL, we
can see that indeed the well priority has been set to the oil rate and the well with the lowest oil rate (P-1)
has been shut, followed by the P-2 well, until the total oil production rate has been reduced to 8000.
Syntax
Description
GSALE sets the gas sales requirement for a group. Both a fraction of the group gas production and a gas rate may
be set.
Definitions
1. Optional arguments:
• The sales rate for the group
– Units: (mscf/day) (Field) or (ksm:sup:3/day) (Metric)
– Default: 0
• The sales fraction for the group
– Default: 0
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Example
--Take 50% of the field gas production as sales gas; the remainder is available
,→for reinjection etc.
EFOR 'DD/MMM/YYYY'
ETAB
ALL
01/JAN/2000 GSALE 0 0.5
ENDE
Syntax
GUGR <group guide rate> [MODE <guide rate mode>] [OFF] [HOUR <hrs>]
Description
GUGR is used to set a group guide rate for a specific group. A group guide rate enables a parent-group target to
be shared between groups in the same parent group.
Definitions
Notes
• The PARE keyword may be used to make a group a member (sub-group) of a parent group. Otherwise,
groups have ALL as their parent group.
• If a group contains only wells the WUGR event has to be used on the contained wells to share the group’s
targets.
• If a group contains wells and sub-groups a mix of WUGR and GUGR events may be used. See example
below.
Examples
1. In this example we have two groups AAA and BBB with common parent group ALL. GUGR is used to
assign guide rates to groups AAA and BBB. The guide rates in turn will be used by MORE to derive targets
for groups AAA and BBB from the targets of their parent ALL. See GUGR_event.dat for complete example:
-- set up groups
GROUP AAA WINJ1 WINJ2 WPRD3 -- AAA contains 2 injectors and 1 producer,
,→parent group is ALL
GROUP BBB WPRD1 WPRD2 WINJ3 -- BBB contains 1 injector and 2 producers,
,→parent group is ALL
EFOR 'dd/mmm/yyyy'
ETAB
-- set up production and injection targets for parent group ALL using events
ALL
01/Jan/2000 GOPT 3500
01/Jan/2000 GWIT 3500
ENDE
2. In this example two wells (P-3 and P-4) and one group (GXX) have a common parent in group GG. Group
GXX contains wells P-1 and P-2. GG is set an oil production target rate of 1000 stb/d. Since group GG
contains wells and a sub-group, we have to use a mix of WUGR and GUGR keywords/events to specify the
respective guide rates. See GUGR_WUGR.dat for complete example:
GXX
01/Jan/2000 GOPT 1000
01/Jan/2000 GUGR 10 MODE PROD
P-1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
P-2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
P-3
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
01/Jan/2000 WUGR 40
P-4
01/Jan/2000 PROD
01/Jan/2000 PERF 5000 5200 0.5 0 1
01/Jan/2000 OPT 3000
01/Jan/2000 WUGR 50
ENDE
Syntax
Description
The GVPT event is used to set voidage production target rate for a group.
Definitions
Notes
n/a
Examples
1. The GOPT and GVPT events are used to impose field oil and field voidage production targets of 500 stb/day
and 400 rb/day respectively.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GOPT 500
01/Aug/2000 GVPT 400
ENDE
Syntax
Description
The GWIT event is used to set water injection target rate for a group.
Definitions
Notes
n/a
Examples
1. The GWIT event is used to impose field water injection target of 2100 ksm3/day.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GWIT 2100
ENDE
Syntax
Description
The GWPT event is used to set water production target rate for a group.
Definitions
Notes
n/a
Examples
1. The GWPT event is used to set different water production targets over time on group GSOUTH.
EFOR 'dd/mmm/yyyy'
ETAB
GSOUTH
01/Jan/2000 GWPT 500
01/Aug/2000 GWPT 1500
ENDE
Syntax
Description
The GWVIT event is used to set water voidage injection target rate for a group.
Definitions
Notes
n/a
Examples
1. The GVPT, GWVIT and GGVIT events are used to balance voidage production with voidage injection to
maintain pressure.
ALL 01/01/2000 GWVIT 1000 -- Impose group water voidage injection target of
,→1000 rm3/day
ALL 01/01/2000 GGVIT 1000 -- Impose group gas voidage injection target of
,→1000 rm3/day
ENDE
Syntax
Description
Definitions
Notes
Examples
1. The CNVL event is used to set different linear convergence targets during the simulation.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2010 CNVL 1.0E-12 -- Tighter linear convergence criterion
01/Feb/2010 CNVL 1.0E-10 -- Loosen for next month
01/May/2010 CNVL 1* -- Return to default value
ENDE
Syntax
Description
Definitions
1. Maximum allowed error at any grid point (controls the convergence of the outer Newton-Raphson iteration
of the flow equations)
• Default: 0.005
2. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Examples
1. The CNVNL event is used to set different non-linear convergence targets during the simulation.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2010 CNVNL 1.0E-4 -- Tighter non-linear convergence criterion for first
,→month
Syntax
Description
The DELT event is used to set the next time-step size for running a simulation.
Definitions
1. Optional Arguments:
• Size of the next time step
– Initial: 0.1
– Default: current value
– Units: Days
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Examples
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 DELT 5
ENDE
Syntax
Description
The DRSDT event may be used to control the rate at which gas solution in undersaturated oil occurs.
Definitions
Notes
• The default rate is infinite - i.e. no restriction is placed on the rate at which the solution gas-oil ratio may
change
• This event is a recommended alternative to keyword RSDT.
Example
Syntax
Description
The DRVDT event may be used to control the rate at which oil vapourisation into undersaturated gas occurs.
Definitions
Notes
• The default rate is infinite - i.e. no restriction is placed on the rate at which the vapour oil-gas ratio may
change
• This event is a recommended alternative to keyword RVDT.
Example
Syntax
Description
Definitions
1. Optional arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Examples
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2010 END
ENDE
Syntax
Description
The MXL event is used to set the maximum number of linear solver iterations.
Definitions
Notes
Examples
1. The MXL event is used to increase the maximum number of linear solver iterations from the default of 40
to 80.
Syntax
Description
The MXNL event is used to set the maximum number of non-linear solver iterations.
Definitions
Notes
Examples
1. The MXNL event is used to increase the maximum number of non-linear solver iterations from the default
of 15 to 20.
Syntax
Description
The RATE event is used to request MORE to write rate files at specific times.
Definitions
1. Optional Arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• This event will request rate reports in addition to those requested in the RATE keyword.
Examples
1. The RATE event is used to request rate file output at a number of specific times.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jun/2000 RATE
01/Oct/2000 RATE
01/Jan/2001 RATE
01/Jun/2001 RATE
01/Oct/2001 RATE
01/Jan/2002 RATE
ENDE
Syntax
Description
Definitions
Notes
• From the RFREQ event time onwards, the simulation will switch to the respective rate reporting frequency,
until this is changed by another RFREQ event.
• This event is an alternative to controlling rate output frequency through the keyword RATE.
Examples
Syntax
Description
The TSDP event is used to set the timestep target pressure change.
Definitions
Notes
• This event is a recommended alternative to the 6th argument of 2nd record of keyword DTMX.
Examples
1. The TSDP event is used to set the target pressure change over a timestep to 100 psi.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 TSDP 100
ENDE
Syntax
Description
The TSDS event is used to set the timestep target saturation change.
Definitions
Notes
• This event is a recommended alternative to the 3rd argument of 2nd record of keyword DTMX.
Examples
1. The TSDS event is used to set the target saturation change over a timestep to 1%.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 TSDS 0.01
ENDE
Syntax
Description
The TSDT event is used to set the timestep target temperature change.
Definitions
Notes
• This event is a recommended alternative to the 7th argument of 2nd record of keyword DTMX.
Examples
1. The TSDT event is used to set the target temperature change over a timestep to 15o F .
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 TSDT 15
ENDE
Syntax
Description
The TSMX event is used to set the maximum allowed timestep size.
Definitions
Notes
• This event is a recommended alternative to the 2nd argument of 2nd record of keyword DTMX.
Examples
1. The TSDP event is used to change the maximum allowed timestep size during the simulation.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2010 TSMX 5 -- Max timestep set to 5 days
01/Jan/2011 TSMX 1* -- Max timestep set to default
ENDE
Syntax
Description
The TSWM event is used to set the maximum allowed timestep size after a well control change.
Definitions
Notes
• This event is a recommended alternative to the 5th argument of 2nd record of keyword DTMX.
Examples
1. The TSWM event is used to change the maximum allowed timestep size after well modification during the
simulation.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2010 TSWM 0.1 -- Max well modification step set to 0.1 days
01/Feb/2010 TSWM 1* -- Max well modification step set to default
ENDE
Syntax
PRIO <Interval> <c1> <c2> <c3> <c4> <c5> <c6> <c7> <c8> [HOUR <hrs>]
Description
The PRIO event is used to set prioritisation coefficients for use by the group prioritisation limits set by GPRI
event. When a group prioritisation limit is operating as defined by GPRI event, wells in the group will be closed
in priority order to meet the group target. The lowest priority wells will be closed first. The well priority is
determined by the coefficients set by PRIO event.
Definitions
Notes
where qo, qg, and qw are the well oil, gas, and water rates, respectively
• At least one of the coefficients from C1 to C4 and one of the coefficients from C5 to C8 must have a non-zero
value.
• The order of the coefficients follows the MORE standard of oil, gas, water - this may differ from other
simulators. For example, ECLIPSE uses oil, water, gas.
• To set individual well priorities, WPRI event can be used. The well priority set for a well using WPRI event
will over-ride the default calculation defined using PRIO. Please see the WPRI event for more information.
• This event is a recommended alternative to keyword PRIO.
Examples
Syntax
DPRIO <Interval> <c1> <c2> <c3> <c4> <c5> <c6> <c7> <c8> [OFF] [HOUR <hrs>]
Description
The DPRIO event is used to activate the drilling queue prioritisation and set up the prioritisation coefficients.
Wells are opened from the drilling queue when triggered by a GPLIM event using the DRIL action. By default,
wells are drilled sequentially in the order they are defined in the group receiving the drill action. However, when
DPRIO is used wells are drilled in decreasing order of their drilling priority. The drilling priority of each well is
determined as a function of the well potential production rates and the coefficients of the DPRIO event, unless it
is overridden using the WDPRI event.
Definitions
Notes
• The drill queue must be set up for DPRIO to have an effect. Setting up the drill queue is described in the
well management section of the Tempest MORE Technical Reference.
• The drill priority of a well is determined by:
where |po |, |pg |, and |pw | are the absolute well potential oil, gas, and water rates, respectively.
• The time interval and all coefficients C1 to C8 must be non-negative
• At least one of the coefficients from C5 to C8 (used in the denominator) must have a non-zero value.
• The order of the coefficients follows the MORE standard of oil, gas, water - this may differ from other
simulators. For example, ECLIPSE uses oil, water, gas.
• The default drilling priority for a well may be overriden using the WDPRI event.
• If DPRIO is NOT used, or switched off, wells are drilled in the order they are defined in the group receiv-
ing the drill action, not in the order of the DRIL group, see the example below. This behaviour ensures
backwards compatibility with MORE 7.2 and earlier.
• If DPRIO is used and two wells have the same priority, then the one which comes first in the DRIL group is
drilled.
Examples
1. This example uses the WDPRI event to override the potential-based priority calculation by DPRIO event
for well P3. See GPLIM_DRIL_DPRIO_WDPRI.dat for complete example:
GROUP DRIL P2 P3
GROUP GG P1 P2 P3
EFOR 'DAYS'
ETAB
ALL
0 DPRIO 1.0 0 2 0 0 1 0 0 0 -- recalculate potentials every day & use 2*
,→oil potential as drill priority
I1
0 INJE
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 WIT 1000.00
0 BHPT 2000.00
P1
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 3000.00
0 BHPT 68.9475
P2
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
0 WDPRI 7500.0 -- use WDPRI to override DPRIO based priority for
,→this well
P3
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
GG
100 GPLIM OIL 2300 DRIL MIN
ENDE
2. This example sets DPRIO such that the appearance in group DRIL defines the drilling order. See
GPLIM_DRIL_DPRIO.dat for complete example:
GROUP DRIL P3 P2
GROUP GG P1 P2 P3
EFOR 'DAYS'
ETAB
ALL
0 DPRIO 1.0 0 0 0 0 1 0 0 0 -- every well will have a priority of zero
I1
0 INJE
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 WIT 1000.00
0 BHPT 2000.00
P1
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 3000.00
0 BHPT 68.9475
P2
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
P3
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
GG
100 GPLIM OIL 2300 DRIL MIN
ENDE
Because prioritisation is used, but all wells have the same potential-based priority (zero in this example),
the effective drilling order is the order of appearance in group DRIL.
3. This example is the same as example 2 except that DPRIO event is not used. See
GPLIM_DRIL_noDPRIO.dat for complete example:
GROUP DRIL P3 P2
GROUP GG P1 P2 P3
EFOR 'DAYS'
ETAB
I1
0 INJE
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 WIT 1000.00
0 BHPT 2000.00
P1
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 3000.00
0 BHPT 68.9475
P2
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
P3
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
GG
100 GPLIM OIL 2300 DRIL MIN
ENDE
The wells in the drill queue (group DRIL) will be drilled in the order P2, P3, because this is the order
specified in GG which is the group to receive drill actions.
Syntax
GGRT <Reinj frac> <Reinj rate> [WELL|GROUP <name>] [SURF|RESV] [OFF] [HOUR <hrs>]
Description
Definitions
1. Reinjection fraction
2. Reinjection rate
3. Optional Arguments:
• WELL|GROUP <name> - When fluid is recycled into an injector the source may be a named well or
group. GROUP ALL will recycle the field production.
• SURF or RESV - When fluid is recycled into an injector the rate of the producer may be matched at
reservoir (RESV) or surface (SURF) conditions:
– RESV (default) - reservoir volume extracted is used as the basis for recycling.
– SURF - actual amount of fluid at surface conditions is used as the basis for recycling.
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• When specifying reinjection rates, two arguments are required. The first specifies the fraction of the source
production which is to be injected. The second specifies a constant rate to be added on to the reinjected
fraction.
Example
Syntax
GWRT <Reinj frac> <Reinj rate> [WELL|GROUP <name>] [SURF|RESV] [OFF] [HOUR <hrs>]
Description
Definitions
1. Reinjection fraction
2. Reinjection rate
3. Optional Arguments:
• WELL|GROUP <name> - When fluid is recycled into an injector the source may be a named well or
group. GROUP ALL will recycle the field production.
• SURF or RESV - When fluid is recycled into an injector the rate of the producer may be matched at
reservoir (RESV) or surface (SURF) conditions:
– RESV (default) - reservoir volume extracted is used as the basis for recycling.
– SURF - actual amount of fluid at surface conditions is used as the basis for recycling.
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• When specifying reinjection rates, two arguments are required. The first specifies the fraction of the source
production which is to be injected. The second specifies a constant rate to be added on to the reinjected
fraction.
Example
ENDE
Syntax
GVRT <Reinj frac> <Reinj rate> [WELL|GROUP <name>] [NETG|NETW] [OFF] [HOUR <hrs>]
Description
Definitions
1. Reinjection fraction
2. Reinjection rate
3. Optional arguments:
• WELL|GROUP <name> - When fluid is recycled into an injector the source may be a named well or
group. GROUP ALL will recycle the field production.
• Net Option:
– NETG - water will be injected net of gas injection
– NETW - gas will be injected net of water injection
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• In the NETG and NETW cases, when replacing voidage from a group it is optionally possible to replace
production net of gas or net of water. If the replacement is net of gas, the reservoir volume production
minus the reservoir volume of gas injection will be replaced. If the replacement is net of water, the reservoir
volume production minus the reservoir volume of water injection will be replaced. These are useful if you
want to inject a known amount of one phase, say gas, and maintain pressure by varying the injection rate of
the other phase, say water. To do this water can be injected at a voidage replacement target net of gas.
• This event is very similar to VREP event.
Examples
1. The GVRT event is used to set reservoir volume group injection target to match total reservoir volume
production.
Syntax
GRT <Reinj frac> <Reinj rate> [WELL|GROUP <name>] [SURF|RESV] [OFF] [AFTER <value>
,→[DAYS|MON|YEAR]] [HOUR <hrs>]
Description
Definitions
1. Reinjection fraction
2. Reinjection rate
3. Optional Arguments:
• WELL|GROUP <name> - When fluid is recycled into an injector the source may be a named well or
group. GROUP ALL will recycle the field production.
• SURF or RESV - When fluid is recycled into an injector the rate of the producer may be matched at
reservoir (RESV) or surface (SURF) conditions:
– RESV (default) - reservoir volume extracted is used as the basis for recycling.
– SURF - actual amount of fluid at surface conditions is used as the basis for recycling.
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• When specifying reinjection rates, two arguments are required. The first specifies the fraction of the source
production which is to be injected. The second specifies a constant rate to be added on to the reinjected
fraction.
Example
ENDE
Syntax
Description
The PBAL event is used to set production balancing group limits. Production balancing imposes a group produc-
tion limit on producers in a group such that a fraction of the injection achieved by the injectors in the same or
another group is produced.
Definitions
1. Injection group
• Default: ALL
2. Production balancing factor
• Default: 1
3. Optional arguments:
• Fluid used in production balancing: GAS, WAT, or RVOL
– RVOL (default) - balance reservoir volume production
– GAS - balance gas production
– WAT - balance water production
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• The default is limit the producer group to match the reservoir volume injected. Alternatively, production
balancing limit may be imposed on the gas or water rates - ie the gas or water production will be limited to
a given fraction of the gas or water injection.
• This event is a recommended alternative to keyword PBAL.
Examples
1. PBAL is used to balance production for the group GR1 so that the produced reservoir volume equals the
injected reservoir volume.
GROU GR1 WINJ1 WINJ2 WPRD1 WPRD2
WINJ1
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
WINJ2
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 3000.00
01/Jan/2000 BHPT 1.00000e+04
WPRD1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 1500.00
WPRD2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
ENDE
In this example, the wells in group GR1 have a total water injection rate of 4000 stb/day and a total oil
production rate of 3500 stb/day. With the presence of PBAL, we inject a total of 4000 stb/day of water and
the equivalent produced oil in reservoir volume will be approximately 2705 stb/day. These rates are evident
when the oil production rate and water injection rates are plotted together, as shown below:
If we then change the PBAL production balancing factor to 0.50 so that the produced reservoir volume
equals half of the injected reservoir volume by modifying PBAL, as follows:
ETAB
GR1
01/Jan/2000 PBAL GR1 0.5
ENDE
We should then expect that the oil production rate will become half of the previous rate of 2705 stb/day,
and thus, we should see an oil production rate of approximately 2705/2 = 1352.5 stb/day. When the oil
production rate is plotted with the water injection rate, we will see that the PBAL production balancing
factor of 0.5 has indeed been applied to the simulation, as evidenced in the following plot:
Syntax
VREP <Prod group> <Reinj frac> [Reinj Option] [OFF] [HOUR <hrs>]
Description
The VREP event is used to set voidage replacement group limits. Voidage replacement imposes a group injection
limit on a group of injectors such that a fraction of the reservoir volume production achieved by a group of
producers is injected.
Definitions
1. Production Group
• Default: ALL
2. Reinjection fraction
• Default: 1
3. Optional arguments:
• Reinjection Option:
– VREP (default) - voidage replacement
– NETG - water will be injected net of gas injection
– NETW - gas will be injected net of water injection
– SGAS - gas will be injected at a given fraction of the gas production at surface conditions
– SWAT - water will be injected at a given fraction of the water production at surface conditions
• OFF - This turns off the appropriate limit or target.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• In the NETG and NETW cases, when replacing voidage from a group it is optionally possible to replace
production net of gas or net of water. If the replacement is net of gas, the reservoir volume production
minus the reservoir volume of gas injection will be replaced. If the replacement is net of water, the reservoir
volume production minus the reservoir volume of water injection will be replaced. These are useful if you
want to inject a known amount of one phase, say gas, and maintain pressure by varying the injection rate of
the other phase, say water. To do this water can be injected at a voidage replacement target net of gas.
• In the SGAS and SWAT cases, the reinjection rate will be calculated at surface rather than reservoir condi-
tions. For SGAS and SWAT, the gas and water injection will be done through the injection group’s gas and
water injectors, respectively. It is possible for simultaneous gas and water conditions to be applied to the
same group.
• This event is a recommended alternative to keyword VREP.
Examples
1. VREP is used to balance production for the group GR25 so that the injected reservoir volume equals the
produced reservoir volume.
WINJ1
01/Jan/2000 INJE
01/Jan/2000 PERF 5800.00 6000.00 0.50000 0.0 1.0
01/Jan/2000 WIT 10000.00
01/Jan/2000 BHPT 1.00000e+04
WPRD1
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 1000.00
WPRD2
01/Jan/2000 PROD
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.0 1.0
01/Jan/2000 OPT 2000.00
ENDE
In this example, the group GR25 has a total oil production rate of 3000 stb/day and a total water injection
rate of 10000 stb/day. The water injection rate target (WIT) is set to a high value to ensure that there is
enough water to provide voidage replacement for the produced oil. With the presence of VREP and an oil
production rate of 3000 stb/day, the total water injection rate will be calculated to ensure that the injected
reservoir volume equals the produced reservoir volume, resulting in approximate pressure maintenance in
the reservoir. These resulting production and injection rates and the bottom hole pressure in the reservoir
can be seen in the plot below:
Syntax
WRT <Reinj frac> <Reinj rate> [WELL|GROUP <name>] [SURF|RESV] [OFF] [AFTER <value>
,→[DAYS|MON|YEAR]] [HOUR <hrs>]
Description
Definitions
1. Reinjection fraction
2. Reinjection rate
3. Optional Arguments:
• WELL|GROUP <name> - When fluid is recycled into an injector the source may be a named well or
group. GROUP ALL will recycle the field production.
• SURF or RESV - When fluid is recycled into an injector the rate of the producer may be matched at
reservoir (RESV) or surface (SURF) conditions:
– RESV (default) - reservoir volume extracted is used as the basis for recycling.
– SURF - actual amount of fluid at surface conditions is used as the basis for recycling.
• OFF - This turns off the appropriate limit or target.
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• When specifying reinjection rates, two arguments are required. The first specifies the fraction of the source
production which is to be injected. The second specifies a constant rate to be added on to the reinjected
fraction.
Example
ENDE
Syntax
GLIF <max lift rate> [min eff] [packet size] [HOUR <hrs>]
Description
The GLIF event is used to request that the amount of artificial lift be set to optimise the production of a group.
Definitions
1. The maximum amount of lift that may be applied to the group (liftmax)
• Units: mscf/day (Field) or (ksm3 /day (Metric)
• Default: 0
2. The minimum oil rate improvement per unit lift gas added
• Units: (stb/day)/(mscf/day) (Field), (sm3 /day)/(ksm3 /day) (Metric)
• Default: 1.0E-6
3. Optional arguments:
• The size of gas rate packet to be added at each step of the optimisation
– Units: mscf/day (Field) or ksm3 /day (Metric)
– Default: 0.05*liftmax
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• The distribution of the lift gas is done by adding packets of gas to the wells in the group, giving the packet
to the well which shows the greatest improvement in oil production rate. This continues until the maximum
gas lift is reached, or adding more gas lift becomes unproductive. If there are a large number of wells in a
group, the default packet size may be too large, and it may be best to enter a smaller packet size. As the
packet is the unit in which lift gas is added, it should be small compared to the typical amount of lift gas
expected per well.
• To be used with GLIF, wells in the group to which lift is applied must have an associated TUBI table with a
range of artificial lift (ALQ) values or have a lift table with some gas rate dependence. The ALQ value will
be used in preference if both are present.
• If the ALQ is used, then ALQ will be regarded as the lift gas rate; otherwise, the gas rate at which the well
is operated will be displaced from the actual production rate by the lift gas rate. GLIF will request that the
lift operating point for each well which meets these conditions is set by partitioning the available lift gas for
the group. The available lift gas is split into packets, each being assigned to the well which shows the best
oil rate improvement. Group lift values from zero to liftmax will be tested, increasing the lift value within
this range until the well is operating on a bhp or rate target.
• If a well has been shut because the well could not operate at the current thp target, GLIF will attempt to
open the well by adding lift.
• If the optional argument of GLIF (the minimum oil rate improvement per unit lift gas added) has been
specified, lift will only be added whilst the improvement, measured d(Qo)/d(Lift), is greater than the value
entered for this argument.
• This event is a recommended alternative to keyword GLIF.
Examples
1. GLIF is used to request that the maximum amount of lift that may be applied to the group G100 is 1000
with a minimum oil rate improvement per unit lift gas added of 1.34.
EFOR 'dd/mmm/yyyy'
ETAB
G100
01/Jan/2000 GLIF 1000 1.34 1*
ENDE
Syntax
GIRED <new target type> <well name> <new target rate> <new target BHP/THP> [Lift
,→table name] [HOUR <hrs>]
Description
The GIRED event is used to set up well redefinition on injection group limit violation.
Definitions
Notes
• Redefining a well cannot change a producer to an injector or vice versa - it simply resets a well target.
• The pressures in fourth argument correspond to the datum depth, as specified by DATU.
• This event is a recommended alternative to keyword GRED.
Examples
1. The GIRED event is used to redefine the limits set by GILIM for wells in the PTRN group. When the
cumulative gas rate for the group of wells in PTRN exceeds 10000 Mscf/day, the wells K12 and L11 are
redefined to inject 1000 stb/day of water while L13, M10, M12, and M11 are shut.
Syntax
GPRED <new target type> <well name> <new target rate> <new target BHP/THP> [Lift
,→table name] [HOUR <hrs>]
Description
The GPRED event is used to set up well redefinition on production group limit violation.
Definitions
Notes
• Redefining a well cannot change a producer to an injector or vice versa - it simply resets a well target.
• The pressures in fourth argument correspond to the datum depth, as specified by DATU.
• This event is a recommended alternative to keyword GRED.
Examples
1. The GPRED event is used to redefine the limits set by GPLIM for wells in the PTRN group. When the
WOR from the group of wells in PTRN exceeds 99.0, the wells K12 and L11 are set to 1000 stb/day while
L13, M10, M12, and M11 are shut.
Syntax
Description
The GSPC (Group Separator Conditions) event is used to attach a separator to a group.
Definitions
Notes
Examples
GSPC is used to attach separator conditions to the group AAA and so to the well P-1.
SEPA XXX EOS ZFAC / Reset first stage separator pressure for separator XXX
60 14.7 /
/
--Define wells and reset separator conditions wells in group AAA to XXX after 5
,→years..
EFOR 'dd/mmm/yyyy'
ETAB
AAA
01/Jan/2005 GSPC XXX
ENDE
Syntax
Description
The GTOL event sets the required tolerance for a group limit. An example would be if a group is to be cut back
if a water limit is exceeded. If the limit is exceeded by more than the allowed tolerance, the step is repeated. A
maximum number of step repeats may be specified - after that the simulation will proceed.
Definitions
1. Optional arguments:
• Fractional tolerance allowed:
– Default: unlimited
• Number of repeated steps allowed to achieve required tolerance:
– Default: 1
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
• This event is a recommended alternative to keyword GTOL.
Example
1. Repeat step if a well limit is exceeded by more than 1%. Allow up to 2 repeated steps.
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2000 GTOL 0.01 2
ENDE
Syntax
Description
The GXFLO event is used to prevent or allow crossflow for all wells in a group. If crossflow is allowed, fluid is
allowed to flow from high pressure layers to low pressure layers through the all the wells’ open completions in
that group. When crossflow is not allowed, the flow of material from layer to layer is stopped for wells in this
group.
Definitions
1. ON or OFF
• ON (default) - turn on crossflow
• OFF - turn off crossflow
2. Optional arguments:
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
Examples
Syntax
Description
The GPAL event is used to specify a group artificial lift quantity for the pipe attached to a group. This only has
an effect when the group has a pipe condition which has been characterised using a table with an artificial lift
variable. Please see the TUBI keyword for details of entering tubing tables with artificial lift.
Definitions
Notes
• See the Network Model section of the MORE Technical Reference For more information regarding network
models.
• This event is a recommended alternative to keyword GPAL.
Examples
1. GPAL is used to set a group artificial lift quantity of 39.0 to the group GROUP_SOUTH.
EFOR 'dd/mmm/yyyy'
ETAB
GROUP_SOUTH
01/Jan/2000 GPAL 39
ENDE
Syntax
Description
The GPIP (group pipe) event is used to attach a named pipe to a group of wells. This keyword enables the pressure
drop between one network node group and the parent network node group to be calculated.
Definitions
1. Pipe name
2. Optional arguments:
• OFF - stops further pipe calculations for the group
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• PIPEC or PIPET event may be used to set up a pipe description using flow coefficients or a pipe table
respectively.
• For more information regarding network models, please see the Network Modelling section of the MORE
Technical Reference.
• This event is a recommended alternative to keyword GPIP.
Examples
EFOR 'dd/mmm/yyyy'
ETAB
GrA14
01/Jan/2000 GPIP PT-13
ENDE
The OFF option is then introduced to stop further pipe calculations for the group, as follows:
EFOR 'dd/mmm/yyyy'
ETAB
GrA14
01/Jan/2000 GPIP PT-13 OFF
ENDE
Syntax
Description
GPMI (group pressure minimum) is used to set the minimum pressure for a node in the network. If the node
pressure attempts to fall below this value, it will be held at the specified pressure and so increase the pressure of
nodes further down the network. This will have the effect of limiting the production of thp controlled wells.
Definitions
Notes
Examples
1. GPMI is used to set a minimum pressure of 1200 for the network node group GrA14
EFOR 'dd/mmm/yyyy'
ETAB
GrA14
01/Jun/2001 GPMI 1200
ENDE
The OFF option is then introduced to specify that the minimum pressure for the group will no longer be
used, as follows:
ETAB
GrA14
01/Jun/2003 GPMI 1200 OFF
ENDE
Syntax
Description
The GPUM event is used to attach a pipeline pump to a group. This enables a rate-dependent pressure difference
to be added to the current network group pressure to match the pipe inflow pressure.
Definitions
1. Pump name
2. Optional arguments:
• OFF - stops further pump calculations for the well
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• Pipeline pump performance table can be defined using the PLPU keyword.
• For more information regarding network models, please see the Network Modelling section of the MORE
Technical Reference.
• This event is a recommended alternative to keyword GPUM.
Examples
EFOR 'dd/mmm/yyyy'
ETAB
GrA14
01/Jan/2000 GPUM PUMP13
ENDE
The OFF option is then introduced to stop further pipeline pump calculations for the group (effectively
remove the pump), as follows:
EFOR 'dd/mmm/yyyy'
ETAB
GrA14
01/Jan/2000 GPUM PUMP13 OFF
ENDE
Syntax
Description
The PIPEC event is used to set up analytical pipe description using flow coefficients.
Definitions
Notes
• This event is a recommended alternative to setting analytical pipe description using keyword PIPE.
Examples
1. The PIPEC event is used to set up analytical pipe description for pipes GAA3 and GAA4.
Syntax
Description
The PIPET event is used to set up a pipe description using a pipe table.
Definitions
Notes
Examples
1. The PIPET event is used to set up pipe descriptions PT12 and PT13 for pipes GAA3 and AW14 respectively.
Syntax
Description
The WPAL event is used to specify a well artificial lift quantity for the pipe attached to a well. This only has
an effect when the group has a pipe condition which has been characterised using a table with an artificial lift
variable. Please see the TUBI keyword for details of entering tubing tables with artificial lift.
Definitions
Notes
• To set the artificial lift quantity value for a well (top hole pressure calculation), the WALQ event should be
used instead of WPAL. WPAL sets the value for a pipe attached to the well.
• For more information regarding network models, please see the Network Modelling section of the MORE
Technical Reference.
• This event is a recommended alternative to keyword WPAL.
Examples
1. WPAL is used to set a well artificial lift quantity of 14500 for the well PROD_A.
EFOR 'dd/mmm/yyyy'
ETAB
PROD_A
01/Jan/2000 WPAL 14500
ENDE
Syntax
Description
The WPIP (well pipe) event is used to attach a named pipe to a well. This enables the pressure drop between the
well head and a network node to be calculated.
Definitions
1. Pipe name
2. Optional arguments:
• OFF - stops further pipe calculations for the well
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• PIPEC or PIPET event may be used to set up a pipe description using flow coefficients or a pipe table
respectively.
• For more information regarding network models, please see the Network Modelling section of the MORE
Technical Reference.
• This event is a recommended alternative to keyword WPIP.
Examples
EFOR 'dd/mmm/yyyy'
ETAB
Pr-10A
01/Jan/2000 WPIP PT-13
ENDE
The OFF option is then introduced to stop further pipe calculations for the well, as follows:
EFOR 'dd/mmm/yyyy'
ETAB
Pr-10A
01/Jan/2000 WPIP PT-13 OFF
ENDE
Syntax
Description
The WPUM event is used to attach a pipeline pump to a well. This enables a rate-dependent pressure difference
to be added to the well top hole pressure before matching the pipe inflow pressure.
Definitions
1. Pump name
2. Optional arguments:
• OFF - stops further pump calculations for the well
• AFTER <value> [DAYS|MON|YEAR] - If AFTER is specified on a well event, the event will be
delayed until the well is open and has been open for a specified time. Note that AFTER applies
to all the events on a line of EFIL or ETAB data. The format for AFTER is: AFTER <value>
[DAYS|MON|YEAR] where <value> is the required number of days, months or years after the well
opens that the EVENT is allowed to happen.
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• Pipeline pump performance table can be defined using the PLPU keyword.
• For more information regarding network models, please see the Network Modelling section of the MORE
Technical Reference.
• This event is a recommended alternative to keyword WPUM.
Examples
EFOR 'dd/mmm/yyyy'
ETAB
Pr-10A
01/Jan/2000 WPUM PUMP_23
ENDE
The OFF option is then introduced to stop further pipeline pump calculations for the well (effectively remove
the pump), as follows:
EFOR 'dd/mmm/yyyy'
ETAB
Pr-10A
01/Jan/2000 WPUM PUMP_23 OFF
ENDE
Syntax
Description
The INVO event invokes an operation previously defined using the OPER keyword. For details of how to set up
and use operations see the operations section of the Technical Reference Manual.
Definitions
1. Optional arguments:
• Name of operation
– Default: No operation invoked
• Argument1 - first operation argument
• Argument2 - second operation argument
.
.
• ArgumentN - Nth operation argument
• Interval between execution times: DAYS, MONTHS or YEARS.
• MEXE - maximum number of times an operator invocation can execute
• HOURS <hrs> - <hrs> is the extra time in hours. HOURS enables a number of hours to be added to
the time of an event, which is helpful for well test simulation.
Notes
• The current number of executions of a given operator instance is stored in the automatically defined variable
&NEXE and is preserved across restarts.
• If two operations with MEXE>1 have identical parameters, MORE is unable to distinguish them, which
may lead to unexpected results in restarts. In this case, MORE will give a warning. To avoid problems,
the user should distinguish the two invocations by either re-naming an identical copy of the operation, or
adding a dummy variable to the operation. See Example 2 below.
• If MEXE is set without a value, there is no limit to the number of executions.
• This event is a recommended alternative to keyword INVO.
Examples
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2005 INVO changeWellRate well=P-1 rate=250
ENDE
EFOR 'dd/mmm/yyyy'
ETAB
ALL
01/Jan/2001 INVO changeWellRate well=P-1 rate=250 id=1 MEXE=2 MONT=1
01/Jan/2002 INVO changeWellRate well=P-1 rate=250 id=2 MEXE=2 MONT=1
ENDE
TWELVE
DEVELOPMENT KEYWORDS
The following keywords are available for development purposes, but are unlikely to be of interest to general users.
Key- Comments
word
BCKT Turn on Newton backtracker to improve non-linear convergence
BCOP Options for the boundary conditioning linear solver
DEBU Set debug output requests
DEBJ Set Jacobian print debug
DEBR Set residual print debug
DEBW Set wells for which to output debug information
DIFF Obtain Jacobian values by numerical differencing and compare with the usual analytic values
DIFP Obtain property derivative values by numerical differencing and compare with the usual analytic
values
DIFW Obtain well flow derivative values by numerical differencing and compare with the usual analytic
values
DMAT Dump the Jacobian matrix to a file
KILL End run at first time step chop
MASS Force the use of mass variables with the Appleyard chop to damp solution changes
MONI Write details of the non-linear convergence process to standard output and <DATASET>.dbg
MGDE Write details of the algebraic multigrid convergence process to standard output
MGOP Control options on the algebraic multigrid solver
GEOM Geomechanical modelling: allows the user to set quantities such as Poisson’s ratio to be passed to a
controlling program
NOPI Do not pivot out the volume balance equation in multi-phase case
NONN Suppress ALL non-neighbour connection generation
NULL A keyword which has no effect - used internally to process keywords generated by operations
SERV IMPES volume balance error servo criteria
WARN Issue a warning if any flash calculation fails
WCTL Well settings controlling the THP shut-in behaviour
WFFC Water filled cell flash criteria
1425
Tempest MORE Help, Release 8.1
12.1 Notes
• MONI will output information about the worst unconverged cell, such as
and a summary of the linear solver convergence, solution change at each update etc.
• GEOM only allows geomechanical data to be read by MORE and passed to another program; MORE does
not possess a geomechanical modelling capability itself.
THIRTEEN
ECLIPSE SUPPORT
MORE does not attempt to read ECLIPSE input decks. However, some sets of ECLIPSE keywords have effectively
become standard ways of defining reservoir simulation data. Such data is often output by post-processors such as
geological modelling packages and PVT equation of state matching programs. Examples are the ZCORN/COORD
system for defining simulation cell locations, the definition of equation of state component data using keywords
like PCRIT, PCRITS etc., and the generation of lift curves in the form of VFPPROD and VFPINJE tables.
It would be common to include such files of standard data into a MORE input dataset. However, the basic form
of the dataset will always be that of MORE - for example starting with an INPU section rather than a RUNSPEC
section.
ECLIPSE keywords which are supported are grouped into INPU, FLUI, RELA GRID, INIT and RECU section
keywords, depending on which section of the MORE input dataset they are expected in. For each section the
ECLIPSE keywords which are recognised by MORE are listed.
INPUt section keywords
FLUId section keywords
RELA section keywords
GRID section keywords
Equation of state definition keywords
RECU section keywords
There are a few cases in which the first four letters of an ECLIPSE keyword matches a MORE keyword. The
default is to read the MORE keyword. However, the keyword EPRI can be used to change this, so that the
ECLIPSE option is taken in preference.
There is no REGIONS section in MORE: data associating grid cells with table numbers is entered in the GRID
section.
1427
Tempest MORE Help, Release 8.1
The equation of state parameterisation is entered in the FLUI section of MORE. Typically, a set of basic component
properties is entered with the PROP keyword, then binary interaction coefficients, omega-A and omega-B values
and volume shifts for a series of temperatures. The temperatures are set up using the TEMP keyword.
ECLIPSE keyword input is rather different, in that a series of keywords sets up equation of state data for the
reservoir, then a second set of optional keywords can provide different values to be used at surface conditions.
The surface conditions keywords typically end with the letter S.
If a file of ECLIPSE equation of state data exists (typically such a file has a suffix .pvo), then this may be
included in the FLUI section.
In order to use this, the CNAM keyword in the MORE INPU section must set up the required component names.
If these are also specified using CNAMES in the .PVO file, the names should match.
If using ECLIPSE keywords, there is no need to enter multiple TEMP keywords. MORE will automatically set up
a second TEMP value set to standard temperature.
Keywords supported in the ECLIPSE equation of state characterisation set are listed in the following table:
1 For ECLIPSE keywords, the whole set of Equation of State properties is read after a single keyword. This means that MORE needs to
know how many ECLIPSE EoS regions are expected. The default is 1. A larger number can be specified using NEZT.
2 Note that ECLIPSE specifies temperatures for reservoir EoS regions using RTEMP, and there is no equivalent for surface EoS; MORE
will then use a default surface temperature just for reporting the surface equations of state, but this does not affect any calculations since
surface temperatures are actually supplied for the separator stages.
ECLIPSE keywords supported in the MORE FLUId section (as well as the equation of state characterisation
keywords) are:
ECLIPSE Description MORE alternative Notes
Keyword
api Switch on API tracking APIT
apigroup specify maximal number of APIG
API groups
bdensity Brine density at surface BDEN Needs a number of pressure
conditions tables (see1 )
density Fluid densities at surface SDEN Needs a number of pressure
conditions tables (see1 )
factli Tune oil-gas discriminant FCLI
gravity Fluid specific gravities at SGRA Needs a number of pressure
surface conditions tables (see1 )
kvgen Generate K-values: not Will issue error
supported by MORE message
miscexp Exponent in surface tension SURF
dependence
miscstr Surface tension reference SURF
overburd Rock overburden data KRPR
pvdg Dry gas pressure properties GPVT Needs a number of pressure
tables (see1 )
pvtg Total gas pressure properties GPVT Needs a number of pressure
tables (see1 )
pvdo Dead oil pressure properties OPVT Needs a number of pressure
tables (see1 )
pvto Total oil pressure properties OPVT Needs a number of pressure
tables (see1 )
pvco Compressibility based oil OPVT Needs a number of pressure
pressure properties tables (see1 )
pvcdo Dead oil pressure OPVT Needs a number of pressure
(compressibility form) tables (see1 )
pvtw Water pressure properties WATR Needs a number of pressure
tables (see1 )
pvtwsalt Water pressure properties with PVTB Needs a number of pressure
salt present tables (see1 )
rock Rock compressibility data CROC and REFE in Needs number of pressure
GRID section tables (see1 and2 )
rocktab Rock pressure tables KVSP Uses number of tables set with
ROCKCOMP
rockopts Rock compressibility handling STRESS and STORE options
options not available
sdensity Set solvent surface densities SOLV Needs a number of pressure
tables (see1 )
tracer Include tracers TRAC
watertab Water pressure properties Needs a number of pressure
tables (see1 )
1For ECLIPSE keywords, the whole set of pressure tables is read after a single keyword. This means that MORE needs to know how many
ECLIPSE pressure tables are expected. The default is 1. A larger number can be specified using NEPT or TABDIMS.
2 MORE assigns rock compressibility data to cells based on pressure table indices.
The default format for the data following a typical grid property keyword such as PORO is the same for MORE
and ECLIPSE - so the majority of GRID section keywords are readable because MORE accepts a range of aliases
for most GRID section keywords. So the x-direction permeability can be entered as kx, k-x, k_x or permx. The
last of these matches the ECLIPSE name for Kx.
Some other ECLIPSE GRID section Keywords supported are:
multx MX
multr MX
multy MY
multtht MY
multz MZ
multx- MXM
Continued on next page
1 Operations such as add will operate on grid arrays defined in MORE. These may be references through the MORE name or the ECLIPSE
aliases.
2 Marked operations such as addreg are controlled by the mark array, which may be entered as a normal MORE grid array. If mark is not
found, muln or multnum will be used. Finally if mark, multn or multnum are not present, flxn or fluxnum will be used. If none of these arrays
are found, an error message will be issued.
3 Only 3rd argument used: MORE does not support multiple coordinate systems.
7 The second, option, argument of GRIDUNIT is MAP. Given this argument MAPAXES will have no effect.
5 By default the J-function flag (first argument) is set to BOTH. WATER and GAS options may be selected using the optional keyword
LJOP.
6 MAPAXES defines a linear grid transformation from internal simulation coordinates (in which the grid is defined) to external coordinates
as defined by grid pre-processors. MAPAXES does not shift or translate the grid within MORE, the information is merely output for post-
processing, see The Grid and Array Files in the the MORE File System documentation. If well tracks have been defined in external coordinates,
the MAP argument of TTAB should be used to apply the inverse transformation (external to internal) to the well tracks to ensure they match
the grid. MAPAXES cannot be used together with ROTA.
4 MULTREGP and MULTREGT will use mutn or multnum if present. If not , flxn or fluxnum will be used. If none of these are supplied,
multnum MULN
satnum SATN Set in GRID (not REGION) section
imbnum SATN Set in GRID (not REGION) section
pvtnum PVTN Set in GRID (not REGION) section
eqlnum EQLN Set in GRID (not REGION) section
fluxnum FLXN Set in GRID (not REGION) section
rocknum KPTA Set in GRID (not REGION) section
krnumx KRDX
krnumy KRDY
krnumz KRDZ
krnumx- KRMX
krnumy- KRMY
krnumz- KRMZ
sogcr SOGC
sowcr SOWC
isogcr IOGC
isowcr IOWC
isgl IGL
isgcr IGCR
isgu IGU
iswl IWL
iswcr IWCR
iswu IWU
sogcrx XOGC
sowcrx XOWC
sglx XGL
sgcrx XGCR
sgux XGU
swlx XWL
swcrx XWCR
swux XWU
isogcrx AOGC
isowcrx AOWC
isglx AGL
isgcrx AGCR
isgux AGU
iswlx AWL
iswcrx AWCR
iswux AWU
sogcry YOGC
sowcry YOWC
sgly YGL
sgcry YGCR
Continued on next page
isogcry BOGC
isowcry BOWC
isgly BGL
isgcry BGCR
isguy BGU
iswly BWL
iswcry BWCR
iswuy BWU
sogcrz ZOGC
sowcrz ZOWC
sglz ZGL
sgcrz ZGCR
sguz ZGU
swlz ZWL
swcry ZWCR
swuz ZWU
isogcrz COGC
isowcrz COWC
isglz CGL
isgcrz CGCR
isguz CGU
iswlz CWL
iswcr CWCR
iswuz CWU
1 these dimension values are only used to enable ECLIPSE format data to be read: in some cases the ECLIPSE data format is such that the
reader needs to know how many items are expected.
2 unless EPRI is set on, this will be read as a MORE keyword with first 4 letters
1 For ECLIPSE keywords, the whole set of saturation tables is read after a single keyword. This means that MORE needs to know how
many ECLIPSE saturation tables are expected. The default is 1. A larger number can be specified using NEST or TABDIMS.
FOURTEEN
Tempest MORE reports three types of messages, with increasing levels of severity:
• Information
• Warning
• Error
Information messages are designed to notify the user of an event of interest (for example, that a well has violated
a limit), but entirely expected or at least not problematic.
Warning messages are designed to notify the user that an unexpected event has occurred. The event is not critical,
and MORE is able to carry on as normal with a workaround, for example by applying a default value to missing
data. Nevertheless, users are strongly advised to investigate all warnings as they may lead to unexpected results.
Error messages are designed to notify the users of a critical issue with the dataset that prevents the simulation from
running as expected. By default, MORE will halt the simulation when it encounters an error. This behaviour may
be changed using the ERRO keyword, but this is not recommended, as it may lead to a program failure.
All three types of errors are logged in the simulation output panel and .out files, together with a message indicating
the issue and, if appropriate, the line of the dataset corresponding to the error. In addition, errors and warnings are
displayed in the VIEW error panel.
Each error has a unique identification number, and repeated errors and warnings of the same type are grouped
together for reporting purposes, stating the number of occurrences for each one.
In order to catch as many errors and warnings as possible, the dataset is scanned prior to the main simulation to
check the validity of the syntax of the keywords. Users may just perform the dataset scan without the simulation
by using the NOGO option of the DIRE keyword. This is highly recommended in order to find data errors early
and avoid potential problems with the simulation.
1445
Tempest MORE Help, Release 8.1
FIFTEEN
The following examples demonstrate the use of many of the main features available in Tempest MORE. Each
example contains a link which opens the example as a project in Tempest.
1447
Tempest MORE Help, Release 8.1
This is a simple radial single-phase black oil problem. A 1-dimensional 10x1 radial grid with a single production
well is used. The study simulates a drawdown and a buildup. Plotting the results for the well bottom hole pressure
we obtain the graph:
This is a simple 2-phase OIL-water quarter five spot, with a single injector and producer. Plotting the water cut
for the production well using Tempest we get the following.
Fig. 15.2: Water cut profile for the producer in a quarter five-spot.
The problem may be run on a finer grid just by changing the SIZE - Size and Type of Grid keyword (for example,
to SIZE 25 25 1). No other changes are required, as the wells are positioned by true (x,y) location – i.e. the
data definition is ‘gridless’.
A 3D display of the OIL saturation at 1 year yields:
The data for this run is in qfive_events.dat
This is a small areal dual porosity study, taken from the example in1 .
The set up is based on the first of the conceptual examples in the reference and gives results in close agreement
with those published.
The data for this run is in dualporo_events.dat
This example shows a dual porosity source/sink run. For more information regarding the dual porosity source/sink
(DPSS) option in Tempest MORE, see Dual Porosity Source/Sink (DPSS) Option in the MORE Technical Refer-
ence.
The data for this run is in dpss_events.dat
1 Kazemi, H., Merrill, L. S., Porterfield, K. L. and Zeman P. R., Numerical Simulation of Water-OIL Flow in Naturally Fractured
Reservoirs, SPE 5719. Proc. SPE-AIME 4th Symposium on Numerical Simulation, Los Angeles 1976
Fig. 15.4: Table 7.1: Pusher 500 Fresh Water Solution Viscosity versus Concentration
Note: 1 Litre (L) of fresh water weighs about 1000 gm hence mg/L ≈ ppm (parts per million) which is the unit
often quoted for polymer concentration. In MORE, the units for polymer concentration will be kg/m3 (metric)
and lb/stb (field): a third set of units which will be of interest for the purposes of this discussion are those used by
Hirasaki and Pope (HP) who use gm/dL = gm/ 100 mL = 10 gm/L. 1 mg/L is equivalent to:
• 1.00000x10-3 kg/m3 (metric)
• 3.50507x10-4 lb/stb (field)
• 1.00000x10-4 gm/dL (HP)
In the three unit sets of interest, the concentrations of Table 7.1 are listed in Table 7.2.
Fig. 15.5: Table 7.2: Polymer Concentration in Metric, Field, and HP units
The following example is based on one of the test cases tabulated in Table 5.3 of the reference. In particular,
a 750 ppm (750 mg/L) Pusher 500 polymer was injected into a Berea sandstone of 20% porosity and 550 mD
permeability. The polymer mole weight was taken as 3x106 g/gmol and the α-coefficient was set to its default
value of 4.0.
The data for this run is in polymer_events.dat
The polymer concentrations after 5 and 10 years are shown below:
1 D.W. Green and G.P. Willhite, Enhanced OIL Recovery, SPE Textbook Series Vol. 6, SPE, Richardson, Texas, 1998, (Chapter 5,
This example demonstrates use of the heat loss model based on the work of Vinsome and Westerveld1 .
The simulation begins with the injection of hot water followed by a heat soak phase. The figure shows heat flux
into the cap and base rock with the highest fluxes around the hot water injectors.
The data for this run is in thermalwv_met_events.dat
1 P.K.W. Vinsome and J. Westerveld, A simple method for predicting cap and base rock heat losses in thermal reservoir simulators,
Fig. 15.7: Heat flux into the cap and base rock.
Fig. 15.8: Gas production rate from the coal bed methane case.
This example explains how to use shale gas modelling feature of Tempest MORE. Shale gas modelling in MORE
is activated by specifying the SHALE keyword in FLUId section. User needs to supply a table of available amount
of gas as a function of pressure using AGVP - Available Shale Gas Variation with Pressure keyword and Langmuir
time using third argument of LANG - Global Values for Coal Bed Methane Modelling. Additionally user needs
to supply dimensions and properties of reservoir volume influenced by hydraulic fracturing by means of SRV
keyword in RECU section.
In this example, we’ve six production wells hydraulically fractured at different times. Some of the wells are
fractured more than once at various points along the completed section of those wells. The effect of hydraulic
fracturing (SRV) can clearly be seen either by plotting well gas production rate or visualizing recurrent parameter
Stimulated Reservoir Volume as shown below.
This example is based on a geological model built in Roxar’s RMS package. The model is called Daisy and was
originally a 52x96x100 cell grid. Up-scaled versions of the grid and properties were generated of which we have
selected the 2x2x2 up-scaling, i.e. 26x48x50 = 62400 cells.
Below we show the porosity display from this model.
The model exported from RMS is contained in the file daisy222.grdecl, which contains a definition of the
grid via the COOR - Grid Coordinates and ZCOR - Grid Cell Corner Depths keywords along with the porosity
(PORO – see above), the x-, y- and z-permeabilities (PERMX, PERMY and PERMZ) and the active cell index
(ACTNUM).
In addition, one further file was exported from RMS containing the initial water saturation in daisy222.
Simulation Template
To build the rest of the model we used the Tempest New Simulation Wizard (NSW). This is accessible from the
New button on the Tempest menu bar: the resulting pop-up window looks as follows. Note the NSW consists
of 6 tabbed panes which should viewed one after another using the Next button, , bottom right: initially we are
placed in the Setup pane.
Full details on the NSW can be found in the Tempest User Guide.
Note we have selected Metric units, and Black-Oil as the run type. The Run Title, Root Name and working
Directory have also been set.
On the Fluid tab, we specified that OIL, Gas and Water are present with stock tank gravities of 0.832, 0.897
and 1.083 respectively: the first and third are relative to water and the second is relative to air. The Reservoir
Temperature was set to 81 o C and the Solution GOR was given as 0.1791 kSm3 /Sm3 .
On the Rel Perm tab, the critical water saturation, Swc, was set to 0.231, the critical gas saturation, Sgc, was set
to 0.000, the residual OIL-in-water saturation, Sorw, was set to 0.179 and the residual OIL-in-gas (plus critical
water), Sorg, was set to 0.102. The default values for all other parameters were taken.
The grid and grid properties have been exported from RMS in the file daisy222.grdecl. Nevertheless, the
Grid tab is used to define a temporary grid file, which will be replaced shortly. The cells dimensions are set as
Nx=26, Ny=48 and Nz=50. On the Grid|Properties tab, the reference pressure was set to 222.7 bars.
On the Initial tab, the reference depth and pressure were specified as 1980 m and 222.7 bars and the depths of the
GOC and WOC were set at 1700 and 2300 m, respectively: note the GOC is above the top of the reservoir.
Finally, on the Dynamic tab we select the single well producer option to which we assigned a radius of 0.09 m.
The NSW creates a new node on the Simulations tree in the Tempest Data Supervisor called daisy222, which was
specified as the root name above. The daisy222 node contains two sub-nodes called Input and Output of which
only the Input is coloured to indicate it contains information.
The main file, daisy222.dat contains 6 include files as shown above. The first two files contain the fluid and
relative permeability definitions. The third and fourth files, daisy222.mgrdecl and daisy222.marray
contain the grid and reservoir properties definitions respectively. Clicking on the Text window tab, scroll down the
daisy222.dat file until the GRID section is displayed, see below. Then comment out the INCLUDE keyword
and the reference to daisy222.marray file, and copy the contents of the daisy222.grdecl file exported
from RMS into the include file generated from NSW. Finally, change the datum depth to 1980 m. To update the
Files display, click on the Data Tab and then back on the Text tab. Save the edit using the save button, on the
main Tempest toolbar.
---------------------------------------------
GRID
---------------------------------------------
--* Set datum for well BHP pressures
Datum 1524.00 /
Whilst still in Text mode, click on the daisy222.mdyna tab node and replace the TTAB/ENDT and ETAB/ENDE
data with the following data:
ETAB
WPRD
01/Jan/2000 PROD
01/Jan/2000 PERF 1 30 0.09 0 1 ZONE
01/Jan/2000 OPT 317.974
ENDE
This has effect of placing the well in a more central location and completing it in the top 30 layers. Click on the
save button to preserve the changes.
Select the Input node and then from the top toolbar, click on the play button. This will display the MORE Run
Manager which will be titled daisy222 MORE Run. From the drop-down list called Simulator Version, select
8.1 and then click the Run button, : this will run the model.
The model should run without any problems so that the Output node of daisy222 is coloured to indicate it now
contains information to display and plot.
Looking in the output file, daisy222.out, we see in the GRID section that the minimum cell volume in the
simulation is about 0.006 rm3 . This is because the default value for the minimum pore volume (below which a
cell is made inactive) cut-off is 1.0e-6 rm3 . We will add the following declaration in the GRID section:
MINPV VALUE
10.0 /
which re-sets the minimum pore volume to 10.0 rm3 compared with an average cell volume of about 4800.0 rm3 .
Next, we activate the water saturation distribution exported from RMS in the file daisy222.swinit. Note
RMS calls the array “SW” which must be changed to “SWAT”. This file is included in the INIT section by adding
the following to the daisy222.minit file:
include
`daisy222.swinit`
Note that we still continue to specify an EQUIlibrium INITialisation despite the fact that this water saturation is
no longer in equilibrium. Seeing this distribution, MORE will compute a capillary pressure shift on a cell-by-cell
basis so that in the absence of any injecting/producing wells, the fluid distribution will remain static. As noted in
PCSH help, if the capillary pressure column is zero, MORE will first modify the Pcow to be
before computing a shift in Pcow. A warning message is also generated by MORE in such a case which can be
avoided by providing a valid capillary pressure column under KRWO table. Further information on this topic can
be found in the Technical Reference here
It is believed an aquifer is attached to the bottom of the reservoir. The size and strength of this aquifer will be
determined during the history-matching phase so the values specified here are only for initialization purposes.
The parameters for the Aquifer named AQ1 are assumed to be average depth, 2500 m, permeability 100 mD,
porosity 10% (0.1), total compressibility 45e-6 /bars, radius 2400 m, angle 360o , thickness 250 m and brine
viscosity of 0.4 cP. No initial aquifer pressure is specified (1*) so that MORE will be forced to put the aquifer
in equilibrium. The aquifer is specified using the AQCT - Carter-Tracy Aquifer (Carter-Tracy) keyword. It is
attached to the bottom layer of the reservoir by the AQCO - Connect an Aquifer keyword:
The single well used in our first run of daisy222 will now be deleted and replaced by wells in the RMS model plus
other wells we will place ourselves based on model runs. In order to understand where we should place our wells,
we display the water saturation distribution following the inclusion of the daisy222.swint file:
A number of wells were defined in the RMS model. We selected the wells, W2, W3 and W5 which are located
in the central OIL zone and exported them in Nextwell format. The header and first few lines of data are shown
below for well W2:
-- Generated with: RMS 7.0
-- Created by : rmsuser
-- Date : Fri, March 28 2003, 15:04:58
-- Depth Ref. : Undefined
-- Position Ref. : Undefined
-- Depth Unit : [m]
-- Position Unit : [m]
-- Type : Actual Trajectory
-- RKB Elevation : unknown
welltrack 'W2'
695508.000 7712850.000 2024.830 2024.830
695508.000 7712847.000 2033.070 2033.784
695508.000 7712850.000 2042.850 2044.050
where the columns are X-position, Y-position, Z-Position (True Vertical Depth) and Measured Depth. The well-
track keyword acts as an alias for TTAB.
The well trajectories are setup by including these files, i.e:
include
'W2_nw.traj'
In order to see which cells these well trajectories intersect, the PRINT card should be added to the RECU file
daisy222.mdyna:
PRINT TRACK
This information will be written to the output file. Other useful information pertains to the wells, completions and
aquifer performance. We request this is output to the print file by adding the arguments WELL, CMPL and AQUI
to the existing GENE card thus:
Three further wells were defined by reference to the state of the model at T=0.0 days. A single near-horizontal
well was positioned to intersect the three small compartments that can be seen at the top of the display on the
previous page. This well called horPRO is intended to produce OIL from these blocks. A small deviated well
called devINJ was placed near the centre of the main structure to provide pressure support through gas injection.
Finally a vertical well called watINJ was positioned over at the top left flank of the main structure, again to provide
some pressure support.
Complete data for this run, including the .mdyna file that contains all the well trajectories and their production
data, can be accessed in Daisy.
This example demonstrates how Tempest MORE can be used in conjunction with PETRA geological modelling
tool. The data set associated with this example can be found in Tempest installation directory or is available here:
HM01.dat
Introduction
The following examples contain datasets showcasing standard SPE Comparison Problems.
1. Three-phase, 3D Black Oil - 1st SPE Comparison
2. Three Phase Coning Study - 2nd SPE Comparison
3. Compositional Example of Gas Recycling - 3rd SPE Comparison
4. A Steam Injection Study - 4th SPE Comparison Case A
5. Compositional Example of Miscible Flooding - 5th SPE Comparison
6. Fine Scale Model - 10th SPE Comparison Case 2
Examples
pp. 13-25
1576-1584
The following examples contain datasets showcasing the use of the flux option keywords. For more information
regarding the flux option in Tempest MORE, see Flux Option in the MORE Technical Reference.
1. A simple case which writes out a flux file containing boundary values compatible with the FLXT FLUX
option - flxWrite.dat
Simple cases which read from the flxWrite.flx flux file, generated from flxWrite.dat -
flxRead.dat, flxRead1.dat, flxRead2.dat
2. A simple case which writes out a flux file containing boundary values compatible with the FLXT PRES
option - flxWritePres.dat
A simple case which reads from the flxWritePres.flx flux file, generated from flxWritePres.
dat - flxReadPres.dat
3. A simple case which writes out a flux file using FLXT PRES option where a flux region consists of discon-
nected parts - flxWritePresAnnular.dat
5SPE 16000, 1987
6Christie, M.A. and Blunt, M.J., Tenth SPE Comparative Solution Project: A Comparison of Upscaling Techniques, SPE 72469, JPT,
August 2001, pp. 308-317
A simple case which reads from the flxWritePresAnnular.flx flux file, generated from
flxWritePresAnnular.dat - flxReadPresAnnular.dat
The following examples contain simple datasets showcasing network models. For more information regarding
network modelling in Tempest MORE, see Network Model in the MORE Technical Reference.
1. A simple network model with well pipes only - networkExamples1_event.dat
2. A simple two level group network model – networkExample2_events.dat
3. A simple two level group network model with a pipeline pump – networkExample3_events.dat
4. A complex three level group network model with a pipeline pump – networkExample4_events.dat
Introduction
The following examples showcase different applications of OPERATIONS as described in the Techref document.
1. Setting up and Invoking a Simple Operation - OperationExample01.dat
2. Setting up a Simple Operation with input parameters - OperationExample02.dat
3. Conditional Separator Respecification using LOCAL variable and IF statements - OperationExample03.dat
4. Maintaining the Field GOR using the IF and ELSE statements - OperationExample03a.dat
5. Converting multiple Producers into Injectors using the FORW loop - OperationExample04.dat
6. Plugging the worst perforations off of multiple wells using FORW and FORC loops - OperationExam-
ple05.dat
7. Plugging all the completions of the worst branch in a well using the FORB loop - OperationExample06.dat
8. Plugging the worst completion of a branch in a well using the FORI loop - OperationExample07.dat
9. Example with STATIC variable, IF statements and well function - OperationExample08.dat
The following examples are explained in this page under the Examples section.
1. Use of operations to turn a producer into an injector and to plug worst perforation off - Opera-
tions_Convert_Plug.dat
2. Conditional Triggering of WWAG - OperationExampleMisc01.dat
Examples
1. Use of operations to turn a producer into an injector and to plug worst perforation off
This example uses two different operations to demonstrate how operations can be used in RECU section of
MORE simulation deck to carry out various tasks. The first operation is used to turn a producer into a gas
injector if the GOR of that particular producer exceeds 350 kSm3 /Sm3 while the second operation is used to
plug worst completion for well OP2 every six months for two consecutive years. The grid architecture and
wells used in this example are shown below.
Fig. 15.15: Plot A: GOR and Gas Injection Rate versus Time
OPER
local counter
if (&counter<1)
if( &fpavh<1500 )
ETAB
I1
0 WIT 1000
0 BHPT 10000
0 GIT 4000 SECOND
0 BHPT 6000 SECOND
0 STRE CO2 B
0 WWAG 3 3 MONTH
ENDE
endi
endi
set &counter++
ENDO
ETAB
ALL
0 INVO XX DAYS=100 MEXE
ENDE
The results for operationExampleMisc01 shows WWAG for well I1 is activated only once when the field
average pressure falls below 1500 psi (see the following figure).
The data set used in this example can be found in OperationExampleMisc01.dat
The following examples contain datasets showcasing solvents. For more information regarding solvents in Tem-
pest MORE, see The Four Phase Todd-Longstaff Solvent Model in the MORE Technical Reference.
1. A miscible solvent example with a Todd-Longstaff mixing parameter of 1.0 – solventMiscible.dat
2. A miscible solvent example with residual oil – solventMiscibleMROW.dat
3. A miscible solvent example with a Todd-Longstaff mixing parameter of 0.5 – solventMiscibleTodd0.5.dat
4. A partially miscible solvent example – solventPartialMiscible.dat
5. A partially miscible solvent example with miscibility factors versus pressure and solvent fractions – sol-
ventPartialMiscibleMFVS_MFVP.dat
6. SPE 5th Comparative Solution Project: Four Component Model (Todd-Longstaff), Scenario 1 –
mspe5_4p_c1.dat
7. SPE 5th Comparative Solution Project: Four Component Model (Todd-Longstaff), Scenario 2 –
mspe5_4p_c2.dat
8. SPE 5th Comparative Solution Project: Four Component Model (Todd-Longstaff), Scenario 3 –
mspe5_4p_c3.dat
The document demonstrates the use of some of the horizontal scaling and vertrical scaling options in Tempest
MORE.
Horizontal Scaling
Description
This section contains examples of oil-water relative permeabilities including the use of hysteresis and End-Point
Scaling (EPS) options. Gas-water and oil-gas relative permeability curves will also work in a similar way in a
two-phase simulation model.
1. A simple oil-water relative permeability example without any hysteresis or end-point scaling. This simple
example will be used as a template for example 2 and example 3 that discuss the use of end-point scaling
and hysteresis data handling in KRWO table respectively: relperm_ow.dat
2. These examples demonstrate how EPS 3 and EPS 4 scale the relative permeability curves using the user-
specified SWCR array respectively: relperm_ow_eps3.dat , relperm_ow_eps4.dat
3. This example demonstrates the use of KRWO table when both of wetting phase imbibition and drainage
(hysteresis) data are entered: relperm_ow_hysteresis_wet.dat
4. This example demonstrates how SWCR array scales the relative permeability curves when both the wetting
phase imbibition and drainage data is entered in the input KRWO table: relperm_ow_hysteresis_wet_eps.dat
5. This example explains how the EPS arrays SOWC and IOWC can be used to introduce hysteresis of
non-wetting oil phase in a KRWO table with the same set of non-wetting imbibition and drainage data:
relperm_ow_nonwet_eps.dat
6. This example explains the use of HYST (and IEPD) keywords to apply hysteresis to non-wetting phase oil
without explicitly entering the hysteresis data in KRWO table: relperm_ow_nonwet_eps_hyst_iepd.dat
7. This simple oil-wet example demonstrates the use of KRWO table when both of imbibition and drainage
(hysteresis) data are entered for both the wetting and non-wetting phases: relperm_ow_oilwet.dat
8. This simple oil-wet example demonstrates the use of EPS arrays IWCR, SWCR, SOWC and IOWC with
KRWO table when both of imbibition and drainage (hysteresis) data are entered for both the wetting and
non-wetting phases: relperm_ow_oilwet_eps.dat
9. This example demonstrates the use of KRWO table when both the imbibition and drainage (hysteresis) data
for oil-water capillary pressure is entered: relperm_ow_hyst_pcow.dat
All data sets are based on 11 x 1 x 1 grid model with two phases of oil and water. The model is initialised with
non-equilibrium conditions with a range of water saturations (linearly decreasing from 1 to 0) explicitly entered
using the SWAT array. There are 2 wells in each model, one producer and one injector, at the two ends. 3D view
of the initial oil saturation distribution is shown below:
The injector injects 10000 stb/d of oil for the first year, and 10000 stb/d of water for the next 19 years. The
producer is set an oil production target of 10000 stb/d.
The only data set that is an exception is that used for oil-wet case. In this case, the location of the two wells was
switched, the injector well injects 10000 stb/d of water for the first 10 years and 10000 stb/d of oil for the next 10
years. The producer is set a water production target of 2000 stb/d.
Examples
1. In this example, wetting phase imbibition data is entered using KRWO keyword. By default, this will be used
for drainage (hysteresis) as well. This simple example will be used as a template for example 2 and example
3 that discusses the use of end-point scaling and hysteresis data handling in KRWO table respectively. See
relperm_ow.dat
KRWO
--Sw KrwI KrowD Pc
0.0 0.0 1.0 1* /
0.1 0.0 1.0 1* /
0.5 0.5 0.5 1* /
0.9 1.0 0.0 1* /
1.0 1.0 0.0 1* /
/
Cell history plot for the first cell shows how water saturation (Sw) changes with time, and how water relative
permeability (Krw) changes with water saturation.
SWCR=0.4
To check the effect on Krw, a cell history plot for the first cell shows how Sw (time) and Krw (Sw)
change.
Note how saturation reversal occurs at scaled Swcr = 0.4 instead of input Swcr = 0.1 when the injection
phase in the cell changes from oil to water (drainage to imbibition of wetting phase).
To check the effect on Kro, a cell history plot for the eleventh cell shows how Sw (time) and Kro (Sw)
change.
Compare this with the corresponding plot for EPS 4 case below and note that the residual oil saturation
is scaled for EPS 4 case but not for EPS 3.
(b) The default 3-point scaling can be changed to 4-point scaling using EPS keyword in the INPUT sec-
tion.
EPS 4
Note how the residual oil saturation is scaled, and that the same scaling is applied to both Kro and
Krw.
3. This example demonstrates the use of KRWO table when both of wetting phase imbibition and drainage
(hysteresis) data are entered. The example uses the same KRWO table as that used in example 1 with the
addition of hysteresis data. See relperm_ow_hysteresis_wet.dat for complete example.
KRWO
--Sw KrwI KrowD Pc KrwhD KrowhI Pch
0.0 0.0 1.0 1* 0.0 1.0 1* /
0.1 0.0 1.0 1* 0.0 1.0 1* /
0.5 0.5 0.5 1* 0.2 0.5 1* /
0.9 1.0 0.0 1* 0.6 0.0 1* /
1.0 1.0 0.0 1* 1.0 0.0 1* /
/
Cell history plot for the first cell shows how Sw(time) and Krw(Sw) changes.
Since the cell is completely filled with water and oil is injected from time=0, the non-wetting phase (oil)
saturation increases while that of the wetting phase (water) decreases. As described in the Techref , this
is called the drainage process of the wetting phase, and MORE follows the KrwhD column in the input
KRWO table. As more oil is injected during the first year, Sw decreases until Sw=Swcr=0.1 and Krw=0.
When water is injected from 2001 onwards, the imbibition process begins and the wetting phase (water)
saturation increases. Note that MORE will now read off the Krw values from the wetting phase imbibition
curve under KrwI column in the input KRWO table.
4. This example demonstrates how SWCR array scales the relative permeability curves when both the wetting
phase imbibition and drainage data is entered in the input KRWO table. This example uses the same KRWO
table as that used in example 3 example, with the addition of EPS array SWCR.
SWCR=0.4
Note how the Krw follows the scaled versions of the drainage and imbibition curves.
5. This example explains how the EPS arrays SOWC and IOWC can be used to introduce hysteresis of non-
wetting oil phase in a KRWO table with the same set of non-wetting imbibition and drainage data.
In example 3, the Kro (So) and So (time) history plots for the first cell were as follows:
To introduce hysteresis of the non-wetting oil phase using 4-point scaling, add the EPS arrays SOWC and
IOWC at the end of the GRID section, and EPS 4 in the INPUT section. See relperm_ow_nonwet_eps.dat
for complete example.
EPS 4
SOWC=0.4
IOWC=0.6
Note how the EPS arrays have scaled the input relperm curves, and how MORE honours these.
As explained in the relperm_ow_hysteresis_wet example above, the water-filled cell is injected with oil
which results in non-wetting phase saturation increasing. This is known as the drainage process of the non-
wetting phase. Kro increases for So > SOWC=0.4 and follows the scaled version of the KrowD column of
the input KRWO table until it reaches the Somax. When water is injected after the first year, imbibition
process starts as the non-wetting phase saturation starts to reduce and MORE follows a scaled version of
KrowhI column of the input KRWO table between Somax and IOWC=0.6.
6. This example explains the use of HYST (and IEPD) keywords to apply hysteresis to non-wetting phase oil
without explicitly entering the hysteresis data in KRWO table.
Let us revisit the KRWO table in example 1. Note that the table has no hysteresis data.
KRWO
--Sw KrwI KrowD Pc
0.0 0.0 1.0 1* /
0.1 0.0 1.0 1* /
0.5 0.5 0.5 1* /
0.9 1.0 0.0 1* /
1.0 1.0 0.0 1* /
/
Now introduce a residual drainage oil saturation SOWC of 0.4 (note that the residual drainage oil saturation
in the original KRWO table is 0.1).
SOWC=0.4
Because no hysteresis data is entered, MORE will use the drainage data for hysteresis as well. If the keyword
HYST is used, it will switch on hysteresis modelling. See relperm_ow_nonwet_eps_hyst.dat for complete
example.
HYST
By default, this will use drainage end-point set in the KRWO table (set as 0.1 in the case). When this data
set is simulated, MORE generates the following warning message:
This warning message is generated because, by default, SOWC will only change the residual oil saturation
for drainage relative permeability curve, while residual oil saturation for the imbibition curve will be taken
from the actual input KRWO table. As explained in the techref , the default setting using the IEPD keyword
in the INPUT section. If the Drainage argument of this keyword is used, MORE will use the end-point
scaling array SOWC array for setting the imbibition end-point. See relperm_ow_nonwet_eps_hyst_iepd.dat
for complete example.
HYST
IEPD D
The user may then introduce hysteresis by setting a different value for IOWC array.
Assume that the user introduces IOWC of 0.6 (with 4-point scaling). See relperm_ow_nonwet_eps4.dat for
complete example.
EPS 4
SOWC=0.4
IOWC=0.6
Cell history plot below indicates the use of both imbibition and drainage curve with different end points for
residual oil saturation as expected.
7. This example demonstrates the use of KRWO table when both of imbibition and drainage (hysteresis) data
are entered for both the wetting and non-wetting phases. Oil-phase is made the wetting phase by using the
OIL argument of the WETT keyword. See relperm_ow_oilwet.dat for complete example.
WETT OIL
KRWO
--Sw KrwD KrowI Pc KrwI KrowD Pch
0.0 0.0 1.0 1* 0.0 1.0 1* /
0.1 0.0 1.0 1* 0.0 1.0 1* /
0.5 0.5 1.0 1* 0.0 0.5 1* /
0.9 1.0 0.0 1* 1.0 0.0 1* /
1.0 1.0 0.0 1* 1.0 0.0 1* /
/
Note that the drainage/imbibition curves for oil and water have been switched when compared to the default
water-wet case.
The output cell history for Sw(time) and Krw(Sw) for the eleventh cell is as follows:
Let us confirm the trapped water saturation by hand-calculation (reversal occurs at Sw=0.78)
The gradients of drainage and imbibition curves are 1/0.8 and 1/0.4 respectively, and
Krw(Sw=0.78)=0.68/0.8. The trapped water saturation can then be evaluated as 0.78-0.4*0.68/0.8=0.44
which agrees with MORE calculation.
8. This oil-wet example demonstrates the use of EPS arrays IWCR, SWCR, SOWC and IOWC with KRWO
table when both of imbibition and drainage (hysteresis) data are entered for both the wetting and non-
wetting phases. In this example, the following KRWO table is entered. See relperm_ow_oilwet_eps.dat for
complete example.
WETT OIL
KRWO
--Sw KrwD KrowI Pc KrwI KrowD Pch
0.0 0.0 1.0 1* 0.0 1.0 1* /
0.2 0.0 1.0 1* 0.0 1.0 1* /
0.5 0.5 1.0 1* 0.0 0.5 1* /
0.8 1.0 0.0 1* 1.0 0.0 1* /
1.0 1.0 0.0 1* 1.0 0.0 1* /
/
EPS 4
IWCR=0.1
SWCR=0.5
SOWC=0.1
IOWC=0.1
Note that the EPS arrays make the relative permeability curves the same as those used in example above.
This can be confirmed by comparing the output cell history for Sw(time) and Krw(Sw) of eleventh cell with
that of the example above.
9. This example demonstrates the use of KRWO table when both the imbibition and drainage (hystere-
sis) data for oil-water capillary pressure is entered. The example uses the following KRWO table. See
relperm_ow_hyst_pcow.dat for complete example.
KRWO
--Sw KrwI KrowD PcI KrwD KrowI PchD
0.1 0.0 1.0 6 0.0 1.0 6 /
0.5 0.5 0.5 4 0.5 0.5 5 /
0.9 1.0 0.0 0 1.0 0.0 4 /
1.0 1.0 0.0 0 1.0 0.0 0 /
/
The output cell history for Sw(time) and Pcow(Sw) for the first cell is as follows:
Vertical Scaling
Description
This section contains examples of oil-water relative permeabilities including the use of 2-point and 3-point vertical
scaling keywords XKRO and YKOW respectively.
Other 2-point vertical scaling keywords, such as XKRG and XKRW, and 3-point vertical scaling keywords, such
as YKOG, YKRG and YKRW, will also work in a similar way in an appropiately setup simulation model.
1. A simple example without any vertical scaling. This simple example will be used as a template for examples
to follow that discuss the use of 2-point and 3-point vertical scaling arrays: vert_scale_none.dat
2. This example demonstrates how 2-point vertical scaling array XKRO scales the relative permeability curves:
vert_scale_xkro.dat
3. This example demonstrates how 3-point vertical scaling array YKOW scales the relative permeability curves:
vert_scale_ykow.dat
4. This example demonstrates how both of 2-point and 3-point vertical scaling arrays XKRO and YKOW scale
the relative permeability curves: vert_scale_xkro_ykow.dat
All data sets are based on a 1 x 1 x 50 grid model with all three phases. The model is initialised with equilibrium
conditions so that the Gas-Oil contact is above the top cell of the reservoir with no gas-oil capillary pressures.
Hence, the system is practically that of a two-phase one. There are no wells in the model. 3D view of the ternary
distribution is shown below:
Examples
1. In this example, Oil-Water relative permeability data is entered using KRWO keyword. This simple example
will be used as a template for examples to follow that discuss the use of 2-point and 3-point vertical scaling
arrays. See vert_scale_none.dat for complete example.
KRWO
--Sw Krw Krow Pc
0.000 0.000 1.000 0.90
0.050 0.000 0.750 0.80
0.105 0.001 0.490 0.70
0.182 0.007 0.320 0.65
0.258 0.014 0.230 0.60
0.334 0.025 0.161 0.55
0.410 0.039 0.100 0.50
0.486 0.053 0.046 0.45
0.563 0.088 0.016 0.40
0.638 0.153 0.003 0.35
0.715 0.275 0.000 0.30
0.740 0.300 0.000 0.25
1.000 0.500 0.000 0.00
/
Note that the maximum oil and critical water saturations correspond to 1.0 and 0.05 respectively. Also note
that Kro(So=1)=1 and Kro(Swcr=0.05)~0.7.
2. This example demonstrates how 2-point vertical scaling array XKRO scales the relative permeability curves.
The example uses the same KRWO table as that used in first example. See vert_scale_xkro.dat for complete
example.
XKRO=0.9
Scatter plot for Kro vs So from this simulation shows that Kro at the maximum So has been vertically scaled
by a factor of 0.9:
3. This example demonstrates how 3-point vertical scaling array YKOW scales the relative permeability curves.
The example uses the same KRWO table as that used in first example. See vert_scale_ykow.dat for complete
example.
YKOW=0.6
Scatter plot for Kro vs So from this simulation shows that Kro at the critical Sw has been vertically scaled
by a factor of 0.6:
4. This example demonstrates how both of 2-point and 3-point vertical scaling arrays XKRO and YKOW scale
the relative permeability curves. The example uses the same KRWO table as that used in first example. See
vert_scale_xkro_ykow.dat for complete example.
XKRO=0.9
YKOW=0.6
Scatter plot for Kro vs So from this simulation shows that Kro is scaled by a factor of YKOW=0.6 for 0 < So
< So(Sw=Swcr) while for So(Sw=Swcr) < So < 1 the scaling factor for Kro interpolates from YKOW=0.6
and XKRO=0.9 as described in the notes section of YKOW keyword.
SIXTEEN
Introduction
This document describes the output files generated by the MORE simulator. The contents are provided as a guide,
and Roxar reserves the right to change the contents of these files without notice.
This document pertains to MORE version 8.0. The changes compared to the existing MORE 7.2 output files are:
• A fast restart option has been added. See the SAVE and LOAD keywords.
Output files
1495
Tempest MORE Help, Release 8.1
The misc file is typically called mspe3.mis for a run with input dataset name mspe3.dat. The misc file
consists of 8 sections:
Section Contents
MISC Initial Date, units, case
PRHD Page header & revision date
NUMB Numbers
PROP Properties, name, etc.
FLUI EOS parameters
LIMI Well rate limit definitions
SEPA Well stream & separator data
Restart Restart data
The data in each section will now be described.
• Record of 4 char:
‘misc’
• Record of 1 int:
36
• Record of 2 ints:
1: Method (=XXX), 2: Ni=Number of values in next record (=5)
• Record of ni values (ni=5):
1, 2, 3: Initial date of run, 4: Units flag, 5: Case flag
Note:
1. The second item in MISC (36) is the total number of bytes in the MISC section.
2. The method flag for future upwards compatibility.
From version 5.0.0 onwards, the method flag has been set to a 3-digit integer of the form 500 to
indicate the major version number, minor version number and revision so that release v6.4 will be
denoted 640. This change is carried forward into the other files where the “Method” is used and will
be denoted XXX in those places too.
3. The date format is day, month, year, e.g. 1, 1, 1980.
4. The units flag takes the values: 0-Imperial, 1-Metric.
5. Case flag. Set to 0, but no longer used: from MORE 6 all runs are in mixed case.
• Record of 4 char:
‘prhd’
• Record of 1 int:
196
• Record of 2 ints:
1: nph=Length of run headers (=75), 2: nrv=Length of revision date=30,
• Record of nrv chars:
1: revision date
• Record of nph chars:
1: program header I
• Record of nph chars:
1: program header II
Note: The second item in PRHD (196) is the total number of bytes in the PRHD section.
The run headers are the titles provided by the user with the TITLE keyword in the data file.
The revision date is a string holding the date of the most recent code change.
This is an important section, as some of the values contained are required in order to read other data items in the
MORE output files.
• Record of 4 char:
‘numb’
• Record of 1 int:
412
• Record of 1 int:
1: nn=Number of numbers in next record (currently this is 100)
• Record of nn ints:
1: Array of nn (100) numbers.
Note: The second item in NUMB (412) is the total number of bytes in the NUMB section.
The following table describes the contents of the NUMB section array.
Name Is
1 NPOINT number of grid points
2 NCOMPT total number of components (incl. water if present)
3 NWLMAX maximum number of wells
4 NWLACT number of active wells
5 MWZONE maximum zones per well
6 NCMPXX number of phase fraction arrays
7 NWLIMX maximum number of wells limits
8 0 no longer used
9 0 no longer used
10 0 no longer used
11 0 no longer used
12 NGRPMX maximum number of groups
Continued on next page
MWZONE=max (NZ, MCPW), where MCPW is the maximum number of completions in any well.
If the simulation is not coarsened, the output grid dimensions (44-46), fine grid dimensions (57-59) and coarse
grid dimensions (60-62) will all be the same.
If the simulation is coarsened and the results output on the original fine grid (the default for a coarsened run),
then the fine grid dimensions (57-59) will be larger than the coarsen grid dimensions (60-62) and the output grid
dimensions (44-46) will equal the fine grid dimensions.
If the simulation is coarsened and the results output on the coarsened grid, then the fine grid dimensions (57-59)
will be larger than the coarsen grid dimensions (60-62) and the output grid dimensions (44-46) will equal the
coarse grid dimensions.
• Record of 4 char:
‘prop’
• Record of 1 int:
nbprop
Record of 6 ints defining required dimensions:
Note: The second item in the PROP section is the total number of bytes in the section.
• Record of 4 char:
‘flui’
• Record of 1 int:
nbflui
For black oil:
• Record of 1 int:
1:0 – No EoS
For EoS:
• Record of 1 int:
1: Number of hydrocarbon components (nc)
• Record of 1 int:
1: Number of temperatures actually used (ntu)
• Record of 1 int:
1: INDDIJ – Indicates binary interaction parameters on B
The value of nt in the following items is the maximum number of equation of state temperatures, obtained
from the 30th item in the NUMB array described above, not the number actually used (ntu).
Then records as follows: (all contained in eos structure)
Mnemonic Dimension Type Description
NBIPA nc int Number of non-zero bips on A
NBIPB nc int Number of non-zero bips on B
IBIPA nc*nc int Non-zero bips on A
IBIPB nc*nc int Non-zero bips on B
A2 nc*nc*nt float Binary interaction parameter on A
B2 nc*nc*nt float Binary interaction parameter on B
A3 nc*nc*nt float Binary interaction parameter on A
B3 nc*nc*nt float Binary interaction parameter on B
A1 nc*nt float EoS parameter ‘A’ for each temp
B1 nc*nt float EoS parameter ‘B’ for each temp
C1 nc*nt float Volume translation
CON 8 float Constants used in EoS
RCTEMP nt float Gas constant*absolute temperature
VOLTRN 1 int Flag indicating volume shift
TOLRNC 3 float Set of tolerances for EoS solve
Note: The second item in the FLUI section is the total number of bytes in the section.
The CON array contains values which depend upon the EoS used:
• Record of 4 char:
‘limi’
• Record of 1 int:
nblimi
• Record of 4 ints:
1: number of limits (nlim); 2: mstrp=max streams + 1; 3: max limits (mlim); 4: method (=XXX)
Method is present for upwards compatibility
Current value of mstrp is 6.
Then records as follows:
Mnemonic Dimension Type Description
WLIMIT mlim char*16 Names of well limits
IDXVAR mlim int A value of 6 indicates a rate limit
A value <6 indicates a ratio limit
IDSIGN mlim int Sign associated with the limit
WLIMIT mstrp*mlim float Well limits weights – limit looks like:
w1*QO + w2*QG + w3*QW + w4*Q1 + w5*Q2 < w6
Note: The second item in the LIMI section is the total number of bytes in the section.
• Record of 4 char:
‘rest’
• Record of 1 int (number of bytes in REST section):
nbrest
• Record of 1 int:
niblok
• Record of niblok integers (currently 5):
1. nrest - number of restarts
2. ncpr - number of characters/restart
3. nipr - number of integers/restart
4. nfpr - number of floats/restart
5. load - flag indicating this run loads from a fast restart save file (1 or 0)
For each restart (1..nrest), if any,
• ncpr characters (currently 255) containing the restart file name.
• nipr integers (currently 4) containing restart step:
• nfpr doubles (current 4) containing the start time.
Then, for this run:
• ncpr characters (currently 255) containing the file name for this run
• nipr integers (currently 4) containing restart step: set to 0.
• nfpr doubles (current 4) containing the start time: set to zero.
Then, for this run:
• ncpr characters (currently 255) containing the file name for the fast restart save file when this run loads from
a fast restart
• nipr integers (currently 4) containing fast restart step: set to 0.
• nfpr doubles (current 4) containing the fast restart start time: set to zero.
Note:
• The FAST RESTART file name is, in general, relative to the location of the Misc file. However, on Windows
it is possible to have files on different drives: in this case an absolute path name is used.
• With MORE 6.5 the RESTART section is present even if the run has not been restarted. When a run has not
been restarted (NREST in nums (36) is zero) then only the last item above, the details of the file for this run,
will be written out.
The control file is typically called mspe3.ctl for a run with input dataset name mspe3.dat. This file contains
records for each step, and acts as a key to the rate file and the arrays file.
The file starts with a header record containing three integers:
The remainder of the control file consists of a set of records, each of three integers and three reals, as follows:
Three integers (int*4):
This file should be processed until an end-of-file condition is reached. The total number of steps for which array
information and rate information are stored are of interest, as they define the number of records in the array and
the rates files respectively.
The rate file is typically called mspe3.rat for a run with input dataset name mspe3.dat. This file contains
fluid in place, group, well and quantity information for each of the timesteps (see control file documentation) for
which rate information was output.
The quantity data block is new in MORE 6, and provides a means of including general values of any type in the
rate file. Each quantity has a block of associated information, written once at the start of the rate file, which defines
items such as the units of the quantity and the cell with which the quantity is associated.
The following operations are carried out once, for the first step:
• Write well names
• Write group names
• Write aquifer names
• Write quantity information
Note: Well, group, and aquifer names are all truncated to 16 characters.
Note: No aquifer data is written unless aquifers are present (see numbers array item 33).
• Well names
mw char*16 well names
• Group names
mg char*16 group names
• Aquifer names
naquifer char*16 aquifer names
• Quantity data
nq quantity data blocks, each consisting of:
– nqchar characters (nqchar=96):
1-16 Mnemonic
17-32 Units
33-48 Associated name
49-96 Description
1 -
Associated x-index
2 -
Associated y-index
3 -
Associated z-index
4 -
Associated local grid
5 -
Associated component index
6 -
Associated fluid in place region
7 -
Associated second fluid in place
region (for inter-region flows)
8 - Branch index of well
9 - Completion index
10 - WellFracture index
1 - Associated depth.
Aquifer data
naquifer sets of aquifer data, each of NIRAQU (see numbers array item 34) values.
Data definitions
Note: If completion is not in a local grid, items 2,3 and 4 will be the same as items 6,7 and 8.
wrate(1) x-location
wrate(2) y-location
wrate(3) Well radius
wrate(4) Bottom hole pressure corrected to datum
wrate(5) Reservoir pressure at external radius corrected to datum
wrate(6) Total molar rate
wrate(7) Gas lift rate
wrate(8) Limiting bhp
wrate(9) Time of last WAG transition
wrate(10) Tubing head pressure
wrate(11) Volume injected of first WAG fluid
wrate(12) Volume injected of second WAG fluid
wrate(13) Total increment of pipeline alq so far
wrate(14) Opened time
wrate(15) Thp target
wrate(16) Oil rate target
wrate(17) Gas rate target
wrate(18) Water rate target
wrate(19) Liquid rate target
wrate(20) Voidage rate target
wrate(21) Drawdown target
wrate(22) Wellbore density (in psi/ft or bars/metre)
wrate(23) Cutback factor
wrate(24) Well efficiency factor
Thus:
wrvol(1,1) is the volumetric gas rate for an injector (as a positive number).
wmcmp(ik,3) Md, the completion measured depth value to start for completion ik
wmcmp(ik,4) Md, the completion measured depth value to end for completion ik
Note: the completion and layer rates are positive for a producing completion or layer in a production well, and
positive for an injecting completion or layer in an injection well.
wfr(iw) Contribution of well iw to group. Can be used with the well names to
reconstitute the group definition
The mapping between these quantities and the long and short names used in Tempest are as follows:
For an input file mspe3.dat these are typically called mspe3.grd and mspe3.ara.
The file starts with a header record containing one integer:
Count of number of items in header file (20).
Note: This value was 11 in versions of MORE before 4.1, and 12 in versions before MORE 6.0.
10 izflow
z flow model:
0 – no vertical flow
1 – block centred block
grid vertically
2 – point centred grid
vertically
3 – point centred 9-point
grid
11 iblkmd
0 – Grid arrays at point
centred locations
1 – Grid arrays at block
centres
12 2*nz+ 2
13 nLG Number of local grids
(not including the main
global grid)
14 na Number of active cells
(with rvol>0) in main
global grid
15 activeMaps
0 – Grid and arra arrays
not compressed (as
MORE 6.2)
1 – Grid and arra arrays
compressed (values only
for active cells
16 dpbdtFlag
0 – DRSDT, PBDT or
RSDT was not used in
this run
1 – DRSDT, PBDT or
RSDT was used in this
run
17 drvdtFlag
0 – DRVDT or RVDT
was not used in this run
1 – DRVDT or RVDT
was used in this run
18 coarsenFlag
0 – Run was not
coarsened
1 – Run was coarsened
19 mapaxesFlag
0 – No MAPAXES data
in the grid file
1 – MAPAXES data in
the grid file
Note: The 12th item was 2*nz+1 in older versions of MORE (before 4.1).
Note: If the mapaxesFlag is 1, the 6 floating point numbers defining the MAPAXES transformation are written
out at the end of the grid file, i.e. after the grid property arrays, as double precision (8 byte) floating point numbers.
If the run contains local grids, then the next item is a single integer.
Count of number of items in any integer local grid header(20).
After that a series of nLG local grid headers follows.
For each local grid (1..nLG):
Integer LG header:
1 nxL
2 nyL
3 nzL
4 ixl
5 ixu
6 iyl
7 iyu
8 izl
9 izu
10 Radial flag (0:Not radial; 1:Radial).
11 Parent local grid (0 for global)
12-13 Not currently used
14 Number of active cells (with rvol>0) in local grid
15 Pebi flag (0:Not pebi; 1:pebi)
16 Maximum vertex count for any cell in this local grid
17-20 Not currently used
Int 2*nz+2
Size information by layer:
nx*ny - Block data
4*nx*ny - Point data
(The two last elements in this
array are not used)
MVERTS*nx*ny - Pebi point data
The rest of the grid and array files consist of data blocks for each step written. These all have the same size, and
consist of data written out by layer for the global and then any local grids.
To allow cell corner values to be written, the number of possible layers is 2*nz. The number of solution values
per layer depends on the type of array. In MORE 6, arrays may be of three types: block, point or pebi point. The
only point (pebi and non-pebi) arrays are XGRI, YGRI and ZGRI.
• For non-pebi point arrays: 2*nz layers each of 4*nx*ny values.
• For pebi point arrays: 2*nz layers each of MVERTS*nx*ny values.
The first example is the mspe3 benchmark. The problem dimensions are 9 by 9 by 4. The XGRI, YGRI and
ZGRI arrays are all point valued (so each layer contains 100 values). Data exists for layers 1 to 8 inclusive. The
solution arrays are all block values (with 81 values) and stored for layers 1,3,5 and 7.
The auxiliary array file [CTR1] is typically called mspe3.aaf for a run with input dataset name mspe3.dat.
This file contains records for each step, and acts as a key to the grid and arrays files.
The file starts with a single header record containing one integer:
This is then followed by entries corresponding to the output to the grid and array files. Each of these entries begins
with 1 character string and 3 integers, where:
• Record of 4 chars:
‘STAT’ or ‘DYNA’ to indicate this is grid or time-dependent data, respectively.
• Record of 3 ints:
1: number of items of grid or array data [=nitem];
2: number of ints [nint=0];
3: number of reals [nfloat=2].
Then follows nitem pairs of floats which are the minimum and maximum values of the grid or array data. These
items correspond with the arrays in the grd and ara files, however entries are only written if the array was defined
for the particular simulation run.
For dynamic data there is an entry for each array report step containing the maximum and minimum for that step.
These steps are defined in the ctl file. Values are first written for all items for report step 1 and then for items for
report step 2 etc.
A typical aaf file would therefore have the structure:
Method
STAT
nga 0 2
fmin1 fmax1 fmin2 fmax2 ....[repeat for all grid arrays]
DYNA
naa 0 2
fmin1 fmax1 fmin2 fmax2 ....[repeat for all dynamic arrays]
DYNA
naa 0 2
fmin1 fmax1 fmin2 fmax2 ....
DYNA
naa 0 2
fmin1 fmax1 fmin2 fmax2 ....
[repeat for all array report steps]
This is a ROFF file which stores various sets of static data. It may be written in formatted or binary form. The
formatted version has the file suffix .msa, the binary version the suffix .msf. The file structure is as follows:
major 2
minor 1
A rundata tag will follow the version tag. This contains overall data for the run, as follows:
Data item Name of data item Contains
One character string thisRun Name of this run
One character string initDate Date at which simulation originated
One character string restart ‘extend’ or ‘ branch’
One character string startDate Date at which simulation started
One double startTime Time at which simulation started
One character string baseRun Base run for branched restart
If the simulation is not a restart, then only initDate and thisRun will be present.
If a restart is branched, then base run information will be on another set of files with a different name, defined in
baseRun. If a restart is extended, the restart information will be appended directly onto the current file.
Normally, trajectory and well structure information will only appear once in the MSF file. The exception is
extended restarts, in which case they may appear again in the file.
Trajectory Information
The trajectory tag contains geometry details for a series of trajectories. Data for each trajectory is:
One character string trajectoryName Name of trajectory
Cell Intersections
The cellIntersections tag contains the measured depth entry and exit values for all cells intersected by the series
of trajectories. Data for each trajectory is:
wellBranchStructure
The wellBranchStructure tag contains static information for a series of wells. Data for each well is:
One character string wellName Name of well
Note: Segment information will only be output if the well is segmented. If an index does not exist – e.g. parent
of the first branch, will be set to -1.
wellCompletionStructure
The wellCompletionStructure tag contains static information for a series of wells. The data for each well is:
One character string wellName Name of well
One int nCompletion Number of completions in well
This is followed by data for each completion, as follows:
nCompletion ints completionSegmentIndex Segment index for each completion
nCompletion ints completionBranchIndex Branch index for each completion
Simulation Time
The frictional pressure loss will be positive for positive flow, up the well.
The gravitational pressure change will be positive for the usual case in which the near measured depth end of
segment has a smaller true vertical depth than the far measured depth end – i.e. the case in which the well gets
deeper as the measured depth increases.
Details of Operations
This is a ROFF file which stores target and limit data. It may be written in formatted or binary form and both will
have the same filename suffix .blg. It is generated when the keyword BLOG is used. Apart from the standard
ROFF header, the contents of the BLOG file are:
rundata tag containing details of MORE run:
For every step at which the BLOG file is written (follows the rate file times) a simtime tag, containing:
simtime Time
Between the simtime tags, other happenings during the simulation are written out as tags. At present (for MORE
8.0) these are:
This is a ROFF file which stores flux region interface data. It is generated when the keyword FLXW is used. The
contents of the flux file are:
filedata tag, containing:
byteswaptest Set to 1
filetype Set to "flux"
creationDate String containing creation date of file
For every step at which the flux file is written (follows the rate file times) a simtime tag, containing:
simtime Time
After the first simtime tag, static boundary data is written to a fluxDetails tag, containing the following arrays of
length nfluxbuffer:
Between the simtime tags, dynamic boundary data is written to a fluxFlows tag, containing the following arrays:
The tag wellData is also added between the simtime tags, containing the integer:
ROFF is an open file format for exchanging data. A ROFF file contains a number of tags, each identified by a tag
name. The tags may contain typed and named data, which may be scalar or array-valued.
A ROFF file may be formatted (ASCII) or unformatted (binary). The first 8 characters in a ROFF file are used
to define the file type. If the file is an ASCII file the 8 characters will be roff-asc, if the file is binary these 8
characters will be roff-bin. This initial string is the only exception to the series-of-tags structure.
A tag is started by the keyword tag and terminated with an endtag. The ROFF file is terminated by an eof tag.
A tag may contain data. Scalar and array values are supported.
Scalar Data
int nx 10
float zscale -1.0
char name "tom"
Array Data
In ASCII mode with each item separated by a space or newline. In binary mode the items follow each other in the
file, names and character strings being separated by a binary zero (\0) value.
The representation of various ROFF items is listed in the table below. ASCII and binary files have the same
sequence of items.
The filedata tag is storing information about the contents and the creation of the file:
tag filedata
int byteswaptest 1
char filetype "grid"
char creationDate "13:11:13 on 06 Feb 2016"
endtag
The keyword “byteswaptest” is used to check if byte swapping is necessary. (Only relevant for binary files.) The
value should always be 1.
The version tag keeps track of the file version. The current version is 2.1.
tag version
int major 2
int minor 1
endtag
Improved ASCII representation of floating point numbers following C99 convention which includes clarification
for non-finite floating point numbers. ROFF 2.1 provides the additional 8 byte integer type “long” and makes a
stricter definition of “char”.
1 A C-string is a \0-terminated array of ASCII-characters, each char(acter) has one 1 byte = 8 bits. Note: ASCII is a 7-bit code. The high
“Infinity”, “-Infinity”, or “NaN”. MORE uses the C-format specifiers ‘%.8g’ (float) and ‘%.16g’ (double) to get the full precision of a floating
point number while maintaining a human readable form. Examples: the float 1.2345678 · 103 looks like “1234.5678” in ASCII representation
while the orders of magnitude larger float 1.2345678 · 108 is printed in scientific format “1.2345678e+08”.
tag dimensions
tag cornerLines
tag zvalues
Dimension
The dimension tag specifies the number of grid cells in x, y and z directions:
tag dimensions
int nX 15
int nY 15
int nZ 4
endtag
In this document we use the term “node” for the 3D grid coordinates used to define the grid cell corners. A node
may contain multiple points if the node is a split node. The number of grid nodes in each dimension will then
be (nX+1), (nY+1) and (nZ+1). We will use the indices (i,j,k) to refer to both nodes and cells, depending on the
context. The indices (i,j,k) are increasing in the direction of the x, y and z axis respectively.
Note: The ordering of the data depends on the orientation of the local coordinate system. Here we assume a right
handed system.
Subgrids
It is possible to group the layers into subgrids, using the subgrid tag. The keyword nLayers contains the number
of layers which goes into each subgrid; for example
tag subgrids
array int nLayers 2
2 3
endtag
means that there are two subgrids. Subgrids are counted from the top of the model (see the preceding figure). The
total number of layers in the grid should match the sum of the subgrids.
Corner Lines
The corner lines are lines that go from the bottom to the top of the grid between the same pair (i,j) of nodes (in
the local coordinate system). The current version supports straight lines only. The lines are defined by the bottom
and top x, y and z values, and all coordinates are stored as a single array in the tag “cornerLines”.
tag cornerLines
array float data 1536
-1.0E+00 -1.0E+00 1.0E+00
-1.0E+00 -1.0E+00 0.0E+00
....
endtag
The following code defines how top and bottom vertex for corner line (i,j) can be found (arr is the cornerLines
array, which is assumed to be indexed in “C” style [0, size-1]):
The cornerlines should be transformed according to the coordinate system specified by the tags “translate” and
“scale”.
Z Values
For each node in the grid, up to 8 different z values can be specified, to model different kind of splits in the grid.
The following split types are available:
• 1 - No split
• 2 - Gap between cell layers / vertical split (k)
• 4 - Horizontal split (i and j)
• 8 - Both horizontal and vertical split
There is no split types to handle split in only i or j directions. A type 4 split has to be used and the two z-values
should be duplicated. If the split node is on the edge of the grid, we may have to fill in with “dummy” values.
The number of z values for each grid node can be 1, 2, 4 or 8. Two arrays are needed to be able to store the z
values efficiently. First, there is a byte array, which stores the split type for each node. Then the z values are stored
sequentially for each node. The two arrays are stored in a single tag.
tag zvalues
array byte splitEnz 1280
1 1 1 1 1 1 4 4 1 1 1 1
4 4 1 1 1 1 1 1 1 1 1 1
......
array float data 2120
0.00000000E+00 0.00000000E+00 0.00000000E+00 -2.58009033E+02
-2.05136963E+02 -1.52264893E+02 -9.93928223E+01 -4.65207520E+01
-2.24927490E+02 -1.78026611E+02 -1.31125732E+02 -8.42248535E+01
-3.73239746E+01 -1.75324463E+02 -1.35247009E+02 -9.51695557E+01
-5.50921021E+01 -1.50146484E+01 0.00000000E+00 0.00000000E+00
.....
endtag
The splitEnz array has size (nX+1)*(nY+1)*(nZ+1), and the data array has size equal to the sum of all the elements
in the splitEnz array. If the splitEnz array is missing, it can be assumed that all nodes have split type 1. The splitEnz
array can be used to build a convenient lookup table for accessing the z values.
int i;
int n = (nX+1)*(nY+1)*(nZ+1);
lookup[0]=0;
for(i=0; i < n; i++)
lookup[i+1] = lookup[i] + split_enz[i];
The lookup table will supply both split type and indices to the z values:
z = zvals[pos];
if(split == 4) {
z_sw = zvals[pos];
z_se = zvals[pos+1];
z_nw = zvals[pos+2];
z_ne = zvals[pos+3]
}
^k j
top| /n
| /
|/
-------------> i
w /| e
/ |
s |bot
The z values should be transformed according to the coordinate system specified by the tags “translate” and
“scale”.
Active Cells
Individual cells in the grid can be switched on and off using the “active” tag:
tag active
array bool data 900
0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0
.....
endtag
The size of the bool array should be (nX*nY*nZ) and the data stored in the order where the kindex is changing
fastest, then the j-index and the i-index slowest. In other words the state of cell (i,j,k) is found by:
Parameters
Parameters are stored much the same way as the active cell list. The parameter tag has a keyword that defines the
name of the parameter, and the continuous data values are stored in a float array. The ordering of the data is the
same as for the active cell array.
tag parameter
char name "GR"
array float data 900
-9.99000000E+02 -9.99000000E+02 -9.99000000E+02 -9.99000000E+02
5.39286880E+01 4.53106308E+01 4.16425438E+01 3.79809189E+01
5.03324394E+01 4.57530670E+01 4.20887871E+01 3.95744324E+01
-9.99000000E+02 -9.99000000E+02 -9.99000000E+02 -9.99000000E+02
.....
endtag
tag parameter
char name "facies1"
array char codeNames 3
"BACKGROUND"
"channel"
"splay"
array int codeValues 3
0 1 2
array byte data 900
255 255 255 255 255 0 0 2 2 2 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 0 0 0 0
....
endtag
The array itself can be either byte or integer. If the array is integer, the undefined value is -999. The byte array
cannot hold this number, so in this case we use 255 as undefined value.
Example
A simple example of a 3D grid in ROFF format is shown below and may be downloaded here. Examples of
importing ROFF grids into Tempest MORE are given in the ROFF keyword description.
roff-asc
#ROFF file#
#Creator: RMS - Reservoir Modelling System, version 6.0#
tag filedata
int byteswaptest 1
char filetype "grid"
char creationDate "28/03/2000 16:59:16"
endtag
tag version
int major 2
int minor 0
endtag
tag dimensions
int nX 4
int nY 4
int nZ 3
endtag
tag translate
float xoffset 4.62994625E+05
float yoffset 5.93379900E+06
float zoffset -3.37518921E+01
endtag
tag scale
This is a ROFF file which stores all data specific to the improved well fracture model. It is written in binary form
by default, but OPEN WFRA FORM in the INPU section instructs MORE to format it in ASCII. The file suffix is
.wfr in both cases. After the common ROFF header, the file structure is as follows:
Static Data
The following tags may appear at any file position. Settings made within a tag are valid from the last preceeding
simtime tag, possibly overriding previous settings.
1. A simtime tag for each report timestep, containing:
Data item Name Contains
One double simtime Simulation time
One integer reportstep Report timestep counter, starting at 1
2. A fraclist tag, listing all fractures present at the timestep for a specific well. It contains:
Data item Name Contains
A string wellname Well name
Array of integers fracindex Internal fracture index, unique for each fracture per well
Array of strings fracname User-defined or generic fracture name
Array of integers ibranch Branch index
Array of integers isegment Segment index
Array of integers nconnections Number of connections from fracture into wellbore
Array of integers ix i-index of fracture-wellbore connection, for all connections for all
fractures listed above
Array of integers iy j-index of fracture-wellbore connection, for all connections for all
fractures listed above
Array of integers iz k-index of fracture-wellbore connection, for all connections for all
fractures listed above
Array of integers iLG local grid index of fracture-wellbore connection, for all connec-
tions for all fractures listed above
3. A fracgrid tag, listing all fractures present at the timestep for a specific well. It contains:
Data item Name Contains
A string wellname Well name
One integer fracindex Internal fracture index
Array of 3 integers dimension Dimensions nx , ny , nz of fracture grid, number of cells in local i, j,
k direction
This tag is followed by three tags:
(a) A cornerLines tag
Data item Name Contains
Array of (nx + 1) × 6 doubles data Corner point values (x, y, z)bottom , (x, y, z)top for
each pillar defining the fracture grid cells, increasing
in local i direction
SEVENTEEN
Reservoir simulators such as MORE solve a set of fluid conservation equations. Suppose there are Nc conserved
components. In a compositional run these are hydrocarbon components such as methane, ethane and propane. In
a black oil run the conserved components are stock tank oil, stock tank gas and water (a black oil model assumes
that the produced and injected hydrocarbons are always a mixture of the same two basic conserved surface fluids).
The discretisation system used in reservoir simulation is normally finite volume. The solution variable value is
associated with the volume Vp of a cell, and the flow terms are obtained as functions of the solution values over a
local stencil of cells.
Solution variables
Two sets of solution variables are used by MORE. One possible set are natural variables, the pressure and one
or two independent saturation variables. For example, for a three phase oil, gas and water system the solution
variables are
{P, So , Sg }
with
Sw = 1 − So − Sg
Natural variables are used in fully implicit black oil mode and for steam injection when no hydrocarbon gas is
present. The set of these for the Na active cells in the problem is the current solution
The alternative variable set, used in all other cases, and in particular for compositional studies, are molar variables.
These comprise the pressure and molar densities per unit reference volume of each component present. Again, the
set of these all the active cells in the problem is the current solution
The advantage of the natural variable set is that fewer variables are required. For example, the three phase black
oil example above has only three solution variables, while the molar formulation would require solving for the
pressure and three additional molar quantities (stock tank oil, gas, and water). However, there is a small extra
complexity in that variable substitution may be required. For example, in an oil-gas-water system a cell may
contain oil but no free gas. In that case Sg is dropped as a solution variable and replaced by the bubble point of
the oil. Further details are given in the chapter on Black Oil
Governing equations
The mass conservation equation for active cell i for the time step T to D = T + ∆T is
1539
Tempest MORE Help, Release 8.1
where
• Vri is the pore volume of cell i at reference pressure
• mci is the molar density per unit reference volume of conserved component c in cell i
• Qci is the injection rate or minus the production rate of component c in cell i due to wells
• Fcpij is the flow rate of component c in phase p in the direction from cell i to its neighbour j and the sum is
over all neighbours j
In the molar variable case mciD are primary variables; in the natural variable case mciD may be obtained as
functions of the natural variables.
Normally the possible phases p are reservoir oil, gas and water, or, more precisely, hydrocarbon liquid, hydrocar-
bon vapour and an aqueous phase. Usually a component is present in more than one phase; that is, stock tank gas
may be dissolved in the reservoir oil, or oil may vapourise into the gaseous phase.
The actual pore volume of a cell is Vp = br . Vr , where Vr is the pore volume of cell at reference pressure, and
will vary as function of pressure. A common simple form for br is:
br = 1 + Cr · (P − Pref )
Where Cr is commonly known as the rock compressibility, but is really a pore volume expansivity, and Pref is
the rock compressibility reference pressure.
Note that as the reference pore volumes are constant, the use of molar densities per unit reference volume makes
the mass accumulation operator on the left hand side of equation (17.1) linear in the solution variables. When these
equations are solved using Newton’s method, successive linearisation, the mass accumulation term superconverges
in one iteration, so that the accumulation of mass in the reservoir is always equal to the sum of the well injection
and production terms. The flow terms Fcpij sum to zero over all cells, as a finite volume scheme is conservative,
each flow term being an inflow for one cell and an outflow for another.
In general the flows Fcpij may involve the solution values of a number of cells, the linear pressure dependence of
flows given by Darcy’s law leading to an expression of the type
X
Fcpij = Mcpij Tik · ∆Φpik
k
where Tik are flow coefficients. On a regular grid, the flows Fcpij take a two-point form, depending only on the
pressures of the cells i and j. The flow coefficients are then termed transmissibilities, and the flow takes the form
where Tij is the transmissibility between cells i and j. ∆Φpij is the potential difference of phase p between cell
i and cell j, which includes pressure, gravity and capillary pressure contributions
where
• xcp is the concentration of component c in phase p
• Krp is the relative permeability of phase p
• µp is the viscosity of phase p
This is often set to an upstream value of the mobility, depending upon the sign of the potential difference. In the
natural variable case we now have a complete set of equations. However, in the molar variable case we do not,
since there are Nc + 1 solution variables per cell (P, m1 , . . . , mN c ) but only Nc conservation equations. The extra
equation needed to obtain closure is the volume balance condition that the volume of fluid in a cell equals the pore
volume of that cell, i.e.
where vf is the volume per reference volume of (m1 , . . . , mN c ) moles of fluid at pressure P , and hence Vr · vf
is the fluid volume. The fluid volume is the sum of individual phase volumes per unit reference volume vf =
vo + vg + vw . The relative volumes vo , vg and vw for each phase are used to determine the fluid saturations.
These volumes are obtained knowing the total number of moles in each phase and the compressibility factors.
Solution method
We now have Nc + 1 equations and variables per cell in the molar variable case, and Nc equations and variables
per cell in the natural variable case. In both cases moving everything to the left hand side results in a set of
nonlinear equations in residual form
R(X) = 0
The basic solution technique is Newton’s method, updating the solution vector X at each iteration as
X → X + ∆X
∆X = −J −1 · R(X)
J = dR/dX being the Jacobian. This large set of linear equations must be solved at each non-linear iteration,
further details are given in Solution of the Linear System of Equations.
Successive Newton iterations are taken until the convergence criteria is met. By default, this is based on a maxi-
mum norm: for each component, the largest normalized residual must be smaller than a given tolerance, defaulted
to 0.005. When using natural variables, the volume error must also be smaller than this tolerance.
If a time-step does not converge within a maximum number of iterations (set to 15), the time-step is aborted and
MORE will attempt to solve the equations using a smaller time-step. Further information on how MORE selects
time-steps may be found under Timestep Selection and Controls.
The convergence tolerance and maximum number of iterations may be changed using the VTOL keyword, while
it is also possible to select a looser convergence criteria based on the root-mean-square norm using the RMS
keyword. However, the default values are generally sufficient and is not recommended to change these.
If the KMOD and PMOD options are employed the above equations are extended as follows
Vp = Pmod · br · Vr
If Pmod reduces the pore volume, the volume balance equation will require a matching reduction in the fluid
volume, and consequently causes an increase in pressure.
Note: Kmod is a function of the flow across the interface between cells i and j.
Kmod also acts upon the completion connection factors which control the connection between the well and the
reservoir.
Solution technique
MORE can solve the governing equations using the fully implicit, IMPES (IMplicit Pressure Explicit Saturation)
and AIM (Adaptive Implicit Method) methods. In the fully implicit method, the flow terms Fcpij are all evaluated
at time T + ∆T . This leads to a method that is unconditionally stable, and is the default method for black-oil runs.
In the IMPES method, only the pressures are evaluated at time T + ∆T but mobilities, phase densites, and
capillary pressures are evaluated at time T . This method is faster, as only the pressure variables must be solved
at each Newton iteration, but is potentially unstable. Nevertheless, it is the default method for equation of state
studies where the number of components is large, and the fully implicit method is too computationally expensive.
Finally, the adaptive implicit method is a compromise between the two methods, with only a small number of cells
treated fully implicit and the rest IMPES. It can be beneficial for runs where only a few cells are difficult to solve.
The solution method may be selected using the IMPL keyword, while for the AIM method users must additionally
set the degree of implicitness using the AIMT keyword.
To obtain an IMPES formulation in molar variables the volume balance residual (17.3) for cell i
T
can be expanded around the value Rvi at the start of the time step:
T ∂Vpi X ∂vf i
Rvi = Rvi + − Vri .∂vf i /∂Pi .∆Pi + Vri .∆mci = 0 . (17.4)
∂Pi c
∂mci
The expressions for ∆mci obtained from the conservation equations (17.1) may then be substituted into (17.4) to
form a pressure-only equation for Pi , solving for Rvi = 0 and given by
T ∂Vpi ∂vf i X ∂vf i
Pi − PiT + ∆T
Rvi = Rvi + − Vri (Qci + Σj Σp Fcpij ) . (17.5)
∂Pi ∂Pi c
∂mci
In this expression, PiT is the pressure at the start of the time step. The flow terms involving Qci and Fcpij on the
right hand side in (17.5) are treated as implicit functions of pressure Pi only. Saturations, mobilities and densities
are explicitly evaluated at the start of the timestep. The Jacobian is given by J = dR/dP . For later use, we will
T
refer to Rvi as the support volume.
This can be solved for pressures, and the molar density changes then obtained from the conservation equations
(17.1). At the end of this process, the volume balance residual can be re-evaluated to act as the basis for the next
time step.
Although the IMPES system is efficient, there is a disadvantage in that the re-evaluated volume balance residual
will not generally be zero at the end of the time step. Normally this volume error is monitored and acts as a
condition on the time step size. However special treatment is required if a time step fails to solve. As a volume
error exists, reducing the time step will not improve the situation, resulting in a series of time-step reductions
terminating the run. The best solution in this case is to add a temporary support volume to correct the volume,
and then decay the support volume over a period of time. The volume error which needs to be corrected by the
recovery step is then proportional to the time step, and a step reduction will generally be followed by a successful
step.
In case a run exhibits repeated chops, MORE takes special care to prevent the support volume - and hence volume
balance error - from increasing too far, limiting both the support volume of individual cells and the total reservoir
support volume to a specified tolerance. However, if the time step fails to solve within the specified tolerance, this
results in a series of time-step reductions terminating the run. In order to prevent this, the SERV keyword may be
used to adjust the support volume tolerances, or remove them altogether (for back-compatibility with MORE 7.1).
However, the default values are generally sufficient and is not recommended to change these. If volume balance
errors lead to convergence issues a recommended alternative is to switch to the IMPEQ method, which ensures
that the volume balance residual is converged to zero.
CFL limit
In IMPES models the time step size is restricted by the explicit treatment of mobilities and densities. A measure of
the stability of the system is the Courant-Friedrichs-Lewy (CFL) factor, which essentially measures the throughput
ratio: the ratio of the amount of fluid flowing through a cell in a time step to the amount in the grid cell. IMPES
runs become unstable when the throughput ratio is greater than 1, but instability can sometimes be seen for lower
values of throughput value. For this reason, users may specify a limit on the CFL factor explicitly using the DTMX
keyword.
The Adaptive Implicit Method (AIM) is a hybrid between the fully implicit and IMPES methods. The fully implicit
method is always stable and permits the use of large timesteps. This is recommended for black oil models, however
for a compositional case with N c components, Newton’s method leads to N c or N c + 1 linear equations per grid
cell as described in Solution method which can be very expensive, and even impractical for large simulations. By
contrast, the IMPES method only needs to solve one linear system for pressure at each time step, which can be
done efficiciently, but it also requires small timesteps due to the CFL limit.
The adaptive implicit method is a compromise between the fully implicit and IMPES methods designed to avoid
the small time steps of the IMPES method while retaining some of the advantages of a smaller linear system.
In the adaptive implicit method, cells with a high CFL or throughput are treated fully implicitly to mitigate the
effect of the small IMPES timestep. Thus cells are adaptively chosen to be solved implicitly for all variables
{P, m1 , ..mN c } or just for pressure P . Any cells containing active well completions will always be treated fully
implicitly when using the AIM method.
The AIM method is selected by either the ADAP or the IMPL keywords, together with the AIMT keyword in the
INPU section. The AIMT keyword should be used to specify the target fraction of implicit cells in the model - for
example selecting 5% of cells to be treated implicitly. MORE will periodically reset the AIM status of each cell
during the run to ensure the most efficient distribution of implicit cells. The frequency at which this happens can
also be controlled via the AIMT keyword.
The formulation of the MORE IMPES method described previously is modified when using the AIM method in
MORE. For explicit cells, since MORE v8.0, MORE uses a mofified version of IMPES, the IMPEQ formulation
described below.
In the example below, an AIM simulation has been performed and the AIM status reported to the MORE file
system. Displaying the AIM status, explicit cells are coloured blue and implicit cells (including those with active
completions) are coloured red. The AIM status of the cells evolves over time from time t = 0 to the final time
t = tend according to the CFL limit for cells.
Fig. 17.1: AIM status and CFL for a compositional example with a target of 5% implicit cells
With the adaptive implicit method, the IMPES pressure equation (17.5) based on linearising the volume balance
residual is inconsistent with the pressure equation formed from removing the implicit dependence on quantities
(saturations, mobilities, densities) in the fully implicit formulation. For this reason, a modified IMPES formulation
is used. To distinguish this from the original MORE IMPES formulation, the modified formulation will be referred
to as IMPEQ.
Again, the volume balance equation is used
together with the Nc component conservation equations exactly as for (17.1), reproduced here for completeness
Unlike in the fully implicit formulation, the IMPEQ formulation holds the quantities such saturations, relative
permeabilities, mobilities and densities appearing in the flow terms Qci and Fcpij in (17.7) to be fixed at the
beginning of the timestep. Qci (P ) and Fcpij (P ) are functions only of pressure P during the time step.
Now the Jacobian for (17.6) and (17.7) leads to a linear system for changes in both pressure ∆P and moles
{∆m1 , ..∆mN c }. However, derivatives with respect to moles appear only on the diagonal of the Jacobian, because
quantities are treated explicitly in the flow terms. Therefore, Gauss elimination may be used on the diagonal blocks
to expose a pressure equation without affecting the sparsity structure of the off-diagonal Jacobian. The result is
a linear equation for the change in pressure ∆P which couples all the cells in the grid. The update to molar
densities {∆m1 , ..∆mN c } in each grid cell is obtained by simple back-substitution using the diagonal blocks in
the Jacobian only.
At each Newton iteration using the IMPEQ method, first the pressure equation is solved for the update ∆P , then
the molar densities {∆m1 , ..∆mN c } are updated by back-substitution. Next, The pressures P and molar densities
{m1 , ..mN c } are updated and then the fluid is flashed to obtain the liquid and vapour compositions and to update
the fluid volume vf in (17.6).
In the IMPEQ formulation, convergence is monitored using both (17.6) and (17.7) as in the fully implicit method.
The IMPEQ method described does more work per iteration than the original MORE IMPES formulation, since
a flash is required at each iteration to update the fluid volume and ensure a conserved volume balance equation
(17.6). However, the volume balance residual is now converged at the end of the timestep.
The IMPEQ formulation is selected as the default for explicit cells when using the adaptive implicit method (IMPL
or ADAP) in MORE since v8.0.
The original MORE IMPES formulation is the default IMPES method for compositional studies when AIM is not
requested. The IMPEQ formulation may be requested for IMPES runs using the IMPQ keyword if required. It
is not generally recommended to change the defaults in MORE, though the IMPEQ formulation may improve
performance of IMPES runs with severe time step chopping when volume balance errors accumulate.
The black oil option in MORE can be used to simulate reservoir processes where the hydrocarbon fluids can be
represented as:
• Conventional Black Oils (Oil and Solution Gas)
• Modified Black Oils (with Oil Soluble in the Gas Phase)
• Dry Gas (gas with no dissolved oil)
• Oil (and dead oil, with no dissolved gas)
All of these treatments of the hydrocarbon fluid can be used with or without the presence of the water phase.
In a black oil simulation, the hydrocarbon system is represented by two components, stock tank oil and stock tank
gas. The solubility of the gas component in the oil phase is defined through the solution gas oil ratio, Rs . The oil
component is nonvolatile in a conventional black oil simulation. However, a modified black oil simulation uses the
gas liquid content, Rv , to define the amount of oil component in the gas phase. The solution gas oil ratio and the
gas liquid content are defined as functions of pressure. The volumetric properties for the hydrocarbon system are
defined through the formation volume factors as a function of pressure. Viscosities are also defined as functions
of pressure. In the undersaturated region (for pressures above the bubble point), the volumetric properties and
viscosities are treated as linear functions of pressure.
The slopes of these linear relationships are obtained as the oil compressibility −Bo−1 (dBo /dp) and the normalised
viscosity slope µ−1
o (dµo /dp), respectively.
Except in fully implicit mode, the supplied black oil PVT tables are internally converted into a compositional
format, that is, into compositions and molar densities. In fully implicit black oil mode the simulator uses pressures
and saturations as solution variables and the flow equations are expressed in terms of stock tank oil, water and gas
surface volumes. However, the data input is the same in all cases.
The fluid properties data is input to the simulator as PVT tables. The oil PVT data is input using the OPVT
keyword and the gas PVT data is input using the GPVT keyword.
The following examples show typical oil PVT table input to the simulator and different methods of supplying the
undersaturated oil properties.
Note: MORE uses mscf/stb for gas-oil ratio (Rs) in field units, which is standard, but uses (1000 sm3 )/sm3 in
metric units. Some simulators use sm3 /sm3 in metric units.
OPVT:Po Bo visco Rs Co Cv
14.7 1.062 1.040 0.001 /
264.7 1.150 0.975 0.0905 /
514.7 1.207 0.910 0.1800 /
1014.7 1.295 0.830 0.371 /
2014.7 1.435 0.695 0.636 /
2514.7 1.500 0.641 0.775 /
3014.7 1.565 0.594 0.930 /
4014.7 1.695 0.510 1.270 13.69E-06 90.E-06 /
5014.7 1.827 0.449 1.618 /
9014.7 2.357 0.203 2.984 /
/end
In this example, oil compressibility and the normalised viscosity slope are supplied for one saturation pressure.
The slopes at this pressure are calculated and used at all other saturation pressures for calculating the equivalent
of Bo and µo in the undersaturated region. If the oil compressibility and oil viscosity slopes are provided at more
than one saturation pressure they will be interpolated.
OPVT Po Bo visco Rs
50.0 1.059 3.256 0.065 /
150.0 1.075 2.998 0.100 /
250.0 1.091 2.740 0.135 /
500.0 1.117 2.345 0.198 /
1000.0 1.157 1.930 0.297 /
1500.0 1.195 1.760 0.388 /
1700.0 1.211 1.728 0.424 /
3000.0 1.200 1.929 0.424 /
/end
In the preceding example, the oil compressibility and the normalised viscosity slope are not input directly. How-
ever, they are determined from the last two data points, supplied at a constant Rs value. In other words, the last
pressure is interpreted as an undersaturated pressure, providing oil data at Pbub = 1700, P = 3000. For saturated
oil above Pbub = 1700 an extrapolation of the saturated data at 1500 and 1700 will be used. Internally, this type
of data is converted into compressibility form.
Generally, you are encouraged to enter the table in 6-column form with at least one oil compressibility and one
viscosity slope value.
Alternatively, for dead oil, data should instead be entered using the OPVD keyword instead.
The following examples illustrate the input of a dead oil OPVD table.
OPVD Po Bo visco
1.0 1.03 0.311
50.0 0.98 0.322
100.0 0.97 0.332
150.0 0.963 0.340
200.0 0.954 0.349
250.0 0.941 0.356
300.0 0.938 0.367
350.0 0.921 0.380
400.0 0.911 0.387
450.0 0.901 0.390
500.0 0.987 0.398
/
The GPVT keyword may be used to enter data for both wet and dry gas, as illustrated in the following examples.
GPVT: Pg Bg viscg
14.7 166.7 0.008 /
514.7 6.274 0.0112 /
1014.7 3.197 0.014 /
2014.7 1.614 0.0189 /
3014.7 1.080 0.0220 /
4014.7 0.811 0.0268 /
5014.7 0.649 0.0309 /
9014.7 0.386 0.0470 /
/end
The preceding example illustrates gas PVT data input for a dry gas phase. Gas formation volume factors and
viscosities are supplied as functions of pressure.
GPVT Pg Bg viscg Rv
1200 2.932 0.01523 0.01919
2000 1.7399 0.01731 0.02338
2800 1.2628 0.02042 0.03331
3200 1.1239 0.02237 0.03997
4315 0.8980 0.02900 0.06270
5515 0.7908 0.03831 0.09814
6765 0.7580 0.05297 0.15369
/end
The preceding example illustrates gas PVT data input for a wet gas phase. The gas liquid (condensate) content is
supplied as a function of pressure. Note that this is the only table needed for a wet gas problem: a second dry gas
table is not required.
MORE also supports the input of black oil tables in ECLIPSE form as follows:
ECLIPSE keyword MORE keyword
PVTO OPVT
PVDO OPVD
PVTG GPVT
PVDG GPVT
PVCDO No equivalent
When using ECLIPSE PVT keywords in MORE, it is recommended that the ETUN keyword should also be used.
By default, MORE will use interpolation for Bp and µp where Bp and µp are the formation volume factor and
viscosity for phase p. Using ETUN means that MORE will use interpolation for 1/Bp and 1/ (Bp µp ) to match
results from ECLIPSE. The difference in the interpolation method is most noticeable where PVT data is sparsely
populated or where the PVT tables are extrapolated beyond the range of user data.
Multiple sets of PVT tables can be input to define variations in fluid properties in the reservoir. The GRID array
PVTN is then used to assign a particular set of PVT tables to a specific portion of the reservoir.
Note: in previous versions of MORE, each PVT table was defined at a particular temperature via the preceding
TEMP card. Then by specifying the TEMP array in the INIT section, an effect similar to that described above
using PVTN could be achieved.
Interpolation of PVT tables using the TEMP array is no longer supported; the nearest integer value and hence
specific table is used.
API Tracking
An API Tracking option is available to track variable API gravity in the reservoir. In this case, multiple oil PVT
tables are required to define fluid properties for a range of API values. See the API Tracking Technical Reference
for more details.
The OVPG keyword provides a simple shear-thinning model for the oil phase. Typically, this is a stiction effect:
the oil is more viscous when not moving and the viscosity drops as the oil velocity increases.
where fshear = fshear (∇Φ) is a shearing factor that is assumed to depend only on the potential gradient. It varies
continuously between fshear = Fo < 1 at ∇Φij = GP0 and fshear = 1 at GP1 , and it remains constant outside the
potential gradient interval (GP0 , GP1 ).
The quantities Fo , GP0 , and GP1 are specified with the OVPG keyword in the FLUId section. The shearing factors
FSHX, FSHY, and FSHZ may be displayed in the 3D viewer by using the STOR keyword.
An analogous shear-thinning model is also available for water using the WVPG keyword.
In a black oil model, initial compositions may be set using keywords RSVD and RVVD. Alternately, the saturation
pressure may be set using PBVD or PDVD. For runs with non-equilibrium initialisation, the initial dissolved
gas-oil ratio may be entered as a grid array RS. For more information, see the chapter on Initialisation.
By default, black oil runs in MORE use a natural variable set as discussed in the chapter on formulation. The
complete set of possible natural variables used in a black oil run is
{P, So , Sg , Pb , Rv }
where P is the oil pressure, So and Sg are the oil and gas saturations, Pb is the bubble point pressure and Rv is
the vapour oil-gas ratio.
Solution variables are switched according to the phase state of a grid cell. Only three solution variables are
required in each grid cell for a three phase case containing oil, water and gas. Cells containing both free oil and
free gas components (phases) use P, So and Sg , with the assumption that the phases are in equilibrium. This
means that live oil and wet gas are saturated at the current pressure according to the PVT data.
When free gas vanishes, but oil is present with dissolved gas, the variables are switched to P, So and Pb . If oil
vanishes, but gas is present, the variables become P, Sg and Rv . A water-filled cell adopts P, So and Sg as solution
variables (where So = Sg = 0).
Other special cases occur with dry gas or dead oil and when there are only two phases present. For example, in an
oil-water model with no gas present, the variables are just P and So . Note that MORE uses Pb as a solution variable
to characterise undersaturated oil, whereas some other simulators use the dissolved gas-oil ratio Rs instead.
In the three phase case with both live oil and wet gas, the mass conservation equations for oil, water and gas in
each active cell i for the time step T to D = T + ∆T are then
D T
So Sg So Sg
VriD + Rv − VriT + Rv = ∆T · (Qoi − Σj Foij )
Bo Bg Bo Bg
D T
Sg So Sg So
VriD + Rs − VriT + Rs = ∆T · (Qgi − Σj Fgij )
Bg Bo Bg Bo
D T
D Sw T Sw
Vri − Vri = ∆T · (Qwi − Σj Fwij )
Bw Bw
where
• Vi is the reservoir pore volume of cell i at the current pressure,
• Qpi is the injection rate or minus the production rate of component p in cell i due to well injection and
production,
• Fpij is the flow rate of component p in the direction from cell i to its neighbour j and the sum is over all
neighbours j.
The conventional black oil equations governing flows of oil, water and gas for two-point flows are:
Kro Krg
Foij = Tij ∆Poij + Rv ∆Φgij
Bo µo Bg µg
Krg Kro
Fgij = Tij ∆Pgij + Rs ∆Φoij
Bg µg Bo µo
Krw
Fwij = Tij ∆Φwij
Bw µw
where
• Tij is the transmissibility between cells i and j,
• Kro , Krg and Krw are relative permeabilities for oil, gas and water phases,
• Bo , Bg and Bw are formation volume factors for oil, gas and water phases,
• µo , µg and µw are viscosities for oil, gas and water phases,
• ∆Φoij , ∆Φgij and ∆Φwij are the potential differences for oil, gas and water between cells i and j.
The potential difference ∆Φoij is given by
where
• Pi , Pj are the oil pressures in cells i and j,
• ρij is an averaged oil mass density for the connection ij,
• g is the gravity constant,
• di , dj are the depths of cells i and j.
For the water and gas phases
where Pcowi and Pcogi are the oil-water and gas-oil capillary pressures for cell i.
Hydrocarbon fluid thermodynamic properties are calculated using an equation-of-state in MORE EOS. This mode
allows the user to select any of the popular cubic equations-of-state: Redlich-Kwong (RK), Soave-Redlich-Kwong
(SRK), and Peng-Robinson (PR, PR79).
Ωa R2 Tc2
a=
Pc
Ωa = Ω0a α(Tr , ω)
Ωb RTc
b=
Pc
0
Ωb = Ωb β(Tr , ω)
where the function β(Tr , ω) = 1 for the popular cubic equations-of-state, ω is the acentric factor, and subscripts c
and r denote critical and reduced conditions. Ω0a , Ω0b , α and β depend on the equation of state chosen, as follows.
Redlich-Kwong
1
Ω0a = 0.42748, Ω0b = 0.08664, α(Tr , ω) = √
Tr
Soave Redlich-Kwong
h p i2
α(Tr , ω) = 1 + κ(1 − Tr )
κ = 0.48 + 1.574ω − 0.176ω 2
Ω0a = 0.42748 Ω0b = 0.08664 .
Peng-Robinson
Ω0a = 0.45724
h p i2
α(Tr , ω) = 1 + κ(1 − Tr )
Ω0b = 0.07780
κ = 0.37464 + 1.54226ω − 0.26992ω 2 .
It is possible to modify these Ωa and Ωb values using keywords OMGA and OMGB.
The simulator uses the above κ function when the PR option is chosen on the EQUA keyword. In 1979, Peng
and Robinson extended the above κ function to heavier hydrocarbon components (the default option PR79 on the
EQUA keyword).
The simulator uses the κ function for components with acentric factors greater than or equal to 0.49. The parame-
ters Ωa and Ωb can be modified for the RK, SRK, PR or PR79 equations using the OMGA and OMGB keywords.
Mixing Rules
where x denotes mole fraction and where kij and mij are the binary interaction parameters. When all mij are
zero, the mixing rule for b reduces to the familiar form
X
b= x i bi .
i
The binary interaction parameters default to zero if they are not supplied.
Volume Translation
Volume translation parameters can be used to obtain improved density predictions from cubic equations of state
as follows
ν̃ = ν − c ,
where ν̃ is the translated molar volume, ν is the un-translated molar volume and c is the volume translation
parameter (see Jhaveri and Youngren,1 ). The VOLU keyword is used to supply a dimensionless volume translation
parameter, s, where s = c/b and b is the equation-of-state parameter. It can be shown that the phase equilibrium
relationships are the same with or without the volume translation parameter, c. The phase equilibrium and density
calculations are performed as if there is no volume translation. The calculated molar volume is then corrected
using the volume translation parameter. For example, the translated liquid molar volume is given by
X
ν̃` = ν` − xi ci .
i
Temperature
The TEMP keyword is used to supply temperatures and the values of temperature dependent data. If more than
one temperature is entered, the first must be the reservoir temperature. Temperatures must also be supplied for
each separator stage using equation-of-state calculations (EOS option) and at standard conditions (60°F or 15°C)
when the equation-of-state is used to calculate separator liquid densities (ZFACtor option in SEPA keyword).
The simulator contains a library of component names and properties. These property values can be overridden by
supplying values using the PROP keyword. For component names not in the library, the user must supply these
values, except for the critical Z-factor and specific gravity which can be calculated using built-in correlations.
1 Jhaveri, B. S. and Youngren, G. K., Three-Parameter Modification of the Peng-Robinson Equation-of-State to Improve Volumetric
When Zc,i for a non-library component is not specified or is zero, the simulator will calculate Zc,i using the
correlation
The coefficients 0.291 and 0.08 may be modified using the ZCORrelation keyword.
Specific gravities gi are used when ideal mixing is specified for the separator liquid density calculations (see SEPA
keyword). When gi for a non-library component is not specified or is zero, then the simulator will calculate gi
using the correlation
gi = 0.8150 + 0.0003Mi ,
where Mi denotes the molecular weight of component i. The coefficients 0.8150 and 0.0003 can be modified with
the GCORrelation keyword.
Note: The default coefficients are reasonable only for heavy components; using the default coefficients for lighter
components can lead to errors in separator liquid rate.
Viscosity Calculation
In an equation of state run, oil and gas viscosities are automatically calculated using the Lorenz-Bray-Clark (LBC)
method. The default LBC parameters for viscosity correlation by be overriden by specifying the VCOR keyword.
However, an alternative correlation due to Al-Syabi, Danesh, Tohini, Todd and Tehrani may be specified using the
VICO keyword.
Surface Tensions
In an equation of state run, interpolation between immiscible and miscible relative permeability curves may be
used to account for miscibility of oil and gas phases. The SURF keyword may be used to define surface tension
data to control this behaviour. For more information on surface tension effects, see the Surface Tension Effects
section of the MORE Technical Reference.
It is possible to use multiple Equation of State Regions in MORE. This is described in a separate chapter.
Overview
Multiple equations of state may be specified in MORE and the EOSN keyword indicates reservoir regions where
each Equation of State (EoS) should apply. Typically this option would be used when there are multiple indepen-
dent reservoirs within the same simulation model, each with separately tuned EoS data.
When reporting fluid in place for the field, MORE accounts for EOSN, and flashes the numbers of moles in each
reservoir EoS region separately through the field separator. To make sense of the region reports, it is recommended
that the fluid in place regions (FIPN) conform with EOSN. PVT regions PVTN may also align with EOSN, though
this is not enforced.
When using EOSN, a warning is given if cells in different EoS regions are connected by a regular or non-neighbour
connection with positive transmissibility. It is likely than convergence problems could occur otherwise, if a fluid
attains different PVT properties while flowing from one cell to a neighbour.
The mechanism for specifying multiple equations of state in the FLUI section uses the TEMP keyword to separate
properties for each equation of state with the qualifier RESV to indicate data will be provided for a reservoir EoS
region. TEMP RESV should be specified for each EoS region defined by EOSN.
All the FLUI section keywords relating to setting EoS properties may be specified for each EoS region after the
corresponding TEMP keyword:
Keyword Meaning
TEMP Temperature
EQUA Define the Equation of State
PROP Component properties
INTE Binary Interaction Coefficients
OMGA Equation of State Ωa Parameters
OMGB Equation of State Ωb Parameters
SURF Reference surface tension
VOLU Volume Translation Parameters
VCVI Critical Volumes
ZCVI Critical Z-factors
ZCOR Z-factor correlation
GCOR Specific Gravity Correlation
The parameters for any EoS used in the reservoir (associated with EOSN) must be specified using TEMP RESV,
before any surface EoS is defined. Note that an error is reported if this is not the case.
Now, each time one of the EoS property keywords is used, it applies to the EoS defined by the previous TEMP
keyword. As a special case, any EoS parameters specified before the first TEMP keyword will be associated with
EoS index 1 (this is allowed when only a single EoS is used). The EoS parameters must be fully specified (or
defaulted) for the first TEMP keyword, but they may be defaulted after subsequent TEMP keywords.
Any data not specified for a subsequent EoS is then taken from the previous EoS, if defined, or from defaults
otherwise. The exception is for INTE where the DUPL argument is required to enforce duplication from the
previous EoS, otherwise data for INTE will be defaulted if not specified.
This is outlined in a schematic example below:
--In this example there are 3 reservoir EoS regions and 2 surface EoS
--Begin data for the first EoS region, reservoir EoS index 1
TEMP 150.0 RESV
--Specify EoS property data for this region using keyword PROP etc.
--Begin data for the second EoS region, reservoir EoS index 2
TEMP 150.0 RESV
--Specify EoS property data for this region using keyword PROP etc.
--Begin data for the third EoS region, reservoir EoS index 3
TEMP 170.0 RESV
--Specify EoS property data for this region using keyword PROP etc.
--Begin data for surface EoS used by separators, EoS index 4, surface EoS index 1
--Begin data for the fourth EoS
TEMP 100.0 SURF
--Begin data for surface EoS used by separators, EoS index 5, surface EoS index 2
--Begin data for the fifth EoS
TEMP 80.0 SURF
It is possible to use a different type of EoS in each EOSN region by specifying the EQUA keyword multiple times.
However, the number and identity of components in each EoS region must be the same as defined using CNAM.
When ZCOR or GCOR is specified, the changes apply only to modify parameters defined by PROP the current
EoS.
Properties for each reservoir and surface EoS are reported to the .out file when using PRIN ALL.
An illustrative example dataset with three Equation of State regions can found here. Note that EoS region numbers
can then be displayed in 3D:
Fig. 17.2: Grid array showing Equation of State region numbers for the example dataset.
For Surface Equations of State (that is, used by the separator conditions and not associated with EOSN), all EoS
properties may be defined separately in the same way.
After specifying the EoS used for the reservoir, corresponding to EOSN, subsequent TEMP keywords section
should omit the RESV argument, because they are used to describe surface EoS for separators. For clarity, it is
possible to use the SURF argument on TEMP instead to indicate that the following data is used for a surface EoS
by the separators.
For example, often the temperature variation in the separator stream could be modelled by changing the binary
interaction parameters, keyword INTE, or Ωa (OMGA) and Ωb parameters (OMGB), or the volume shifts (VOLU
); property data defined by PROP would not typically be changed. Each separator stage specified using SEPA uses
the EoS determined by the temperature of that stage, unless the EoS index (say neos) is specified for the stage to
associate the flash with a given EoS (for EoS determined by the neosth TEMP record).
The component properties M w, P c, T c, Zc and ω (specified using the PROP keyword for the reservoir) will also
apply to the surface unless PROP is also explictly specified for a surface EoS. The binary interaction coefficients
kij suppled by INTE will be defaulted to zero for any surface EoS unless explictly specified for the relevant TEMP
record. Similarly, the Ωa and Ωb parameters supplied by OMGA and OMGB will be defaulted for surface EoS
unless explicitly specified for the relevant TEMP record.
Indices for each EoS are accumulated in the order in which each EoS is specified using the TEMP keyword as in
the example above, starting from 1 for the first reservoir EoS.
If the EoS index is not specified for a separator stage, the EoS used to flash that separator stage is described here.
When using EOSN, each well is assigned a reservoir EoS index according to the grid cells containing active
completions for the well. If a well is completed in multiple EoS regions, a warning will be given and the well will
use the reservoir EoS associated with the majority of completions (to break a tie on the maximum number, the
lowest EoS index is chosen).
Reservoir voidage rates for a well are always calculated using the reservoir EoS in the EOSN region containing
the completions. Voidage rates are currently obtained by flashing at the current field average pressure and the
temperature defined using TEMP RESV. As a special case, if a fluid-in-place region is called FIPEOSN and
FIPEOSN=EOSN, then the voidage is calculated using the average pressures in each EOSN region.
Each well is also assigned a surface EoS index for flashing the well through the separator stages: By default, a
well completed in EOSN region 1, will be assigned to surface EoS 1 (defined by the first TEMP SURF record), a
well completed in EOSN region 2, will be assigned to surface EoS 2 (defined by the second TEMP SURF record)
and so on. In case there are less TEMP SURF records than TEMP RESV records corresponding to EOSN, MORE
uses the EoS defined by EOSN when there is no direct match. This may be overridden with the WEOS keyword if
required.
When performing a separator flash for the well, the rule used by MORE to determine which surface equation(s)
of state to use is as follows:
• Use the surface EoS if specified for the separator stage using the 5th argument of the 2nd record of the SEPA
keyword.
• Else use the surface EoS for the well determined by matching the EOSN region containing the completions
to a surface EoS, or overriden with a positive value using the WEOS keyword.
• Else, if the surface EoS index is set to zero using the WEOS keyword, use the stage temperatures in SEPA
to find the surface surface EoS matched using TEMP SURF. This is the default behaviour in MORE when
multiple EoS regions are not used, and the surface EoS is not specified for the sepatator stages.
The surface EoS index for a well will be reported with the mnemonic weosind when using the WELL package in
the RATE keyword.
Separators are specified using SEPA. It is often convenient to name the separators and then attach them to a group
(or well) using GSPC (or WSPC). When using multiple equations of state, it is recommended to define separators
for groups (apart from the field group) which are partitioned by EoS region.
Separator indices for wells and groups are reported by mnemonics wsepaind and gsepaind when using the WELL
and GROUP packages in the RATE keyword. The separator configuration will also be reported to the .out file
when GENE SEPA is entered.
Typically, wells within each first level group (that is, the group which is the parent of the wells) would be completed
with the same EoS region, consistent with the separator conditions for that group, though this is not enforced.
When computing the fluid in place for the field using EOSN, the fluid volumes of oil and gas are calculated
by accumulating the numbers of moles in each EoS region, and then flashing to standard conditions separately
through the field separator using the reservoir EoS for that EoS region. The total volumes of oil and gas from each
EoS region will be added to the field reports of total reservoir oil and gas volumes.
Viscosity Calculation
Parameters affecting viscosity calculation only need to be supplied for reservoir EoS regions associated with
EOSN, since flow calculations are not performed for surface equations of state used by the separators. For example,
keywords VCVI and ZCVI may be supplied for each reservoir EoS. However, keywords which define the type of
viscosity calculation such as VCOR and VICO will apply to all reservoir regions: correlation coefficients for the
viscosity calculation apply to all reservoir EoS regions.
Initialisation
When using EOSN, the model may be initialised in the usual way using either equilibrium (INIT EQUI) or non-
equilibrium (INIT NEQU) options.
For equilibrium initialisation using keywords CONS (EQUI) or EQUI or F(DE (EQUI), it is recommended that
the equilibration regions (EQUI) conform with EOSN, although this is not enforced.
Similarly, when performing non-equilibrum initialisation using keywords CONS (NEQU) or F(DE (NEQU), data
would typically be provided for each EoS region (corresponding to an EQUI region), although this is not enforced.
Restrictions
The total number of Equations of State (including both reservoir and surface) is limited to 15 in the current version
of MORE.
Multiple EoS regions cannot currently be used with the Dual Porosity Source/Sink option. Also, it is not currently
possible to use multiple EoS regions together with the EOST option on the FLUI keyword to simulate general
temperature variations in Equation of State runs.
The data for multiple equations of state may alternatively be input in ECLIPSE format, in which case the NEZT
keyword should be specified . However, it is not possible to mix and match both MORE and ECLIPSE EoS
keywords in the same model, and an error will be given if this is attempted.
Introduction
At each iteration of the nonlinear solver, it is necessary to solve a large system of linear equations described by
the Jacobian matrix, as defined in Overall Non-Linear Formulation of MORE. The linear system A.x = b is
solved iteratively using preconditioned GMRES1 ,so that at each linear iteration we must solve the approximate
system B.x = b where B is known as the preconditioner. The default preconditioner used by MORE is Nested
Factorisation, as described in SPE 122642 .
The maximum number of linear solver iterations is set to 40, but may be modified by the user using the LSOL
keyword.
When running in parallel, MORE splits the problem into domains, as described in the Running MORE in Parallel
Mode section. The iterative solver algorithm (GMRES) is implemented identically in parallel to its serial counter-
part. However, the same is not true for the preconditioner which is required to accelerate convergence. Instead,
a black-white ordering is used in parallel, following the approach taken in references3 and4 . In MORE, a simple
one-dimensional decomposition is used rather than the two dimensional decomposition of reference3 . This allows
the black and white groups of cells to be of different sizes. In MORE there is only one white plane per processor:
these separate large blocks of black planes may then be solved independently in parallel.
Unfortunately the black-white ordering reduces the effectiveness of the preconditioner. Hence, for large problems
run on many processors, the number of iterations taken by the default linear solver can increase significantly,
hurting the overall scalability of MORE. This degradation can be especially bad in the presence of cross-processor
wells and numerical aquifers. In these cases it may be preferable to use an alternative parallelisation technique
known as boundary conditioning, described in the next section.
In contrast to the default preconditioner, the boundary conditioning preconditioner uses a domain decomposition
technique similar to additive Schwarz, in which each processor solves its own block of the entire matrix, plus
some elements of the matrix from other processors by overlapping the computational domains
1 Saad, Y. and Schultz, M. H., GMRES: A generalized minimal residual algorithm for solving nonsymmetric linear systems, SIAM J. Sci.
where
Ai = Ri ARiT
The Boundary Conditioning Linear Solver is enabled using the BCON keyword which should appear in the INPUT
section. It may be used in both fully implicit and IMPES runs, but is not currently available with the adaptive
implicit option.
The boundary conditioning solver improves (that is, fewer iterations are required) the less coarsening is used, but
this increases the number of variables that must be solved on each processor, increasing the computational cost
per iteration. By default, the solver aims to use 10% additional variables per processor, using both the near-field
and far-field if possible. However, it is possible to modify these settings using the BCOP keyword. Alternatively,
one may specify the coarsening levels directly, that is
BCOP FAR 10 10 10
specifies that the far-field should be coarsened into blocks of 10x10x10 cells.
5 Cai, X.-C. and Sarkis, M., A restricted additive Schwarz preconditioner for general sparse linear systems, SIAM J. Sci. Comput., 21:
792-797, 1999.
Fig. 17.3: Sketch showing a six-way one-dimensional decomposition of a two-dimensional uniform Cartesian
grid (top) and how each processor sees only a coarsened version of the entire problem in which cells outside its
own subdomain are lumped together (for clarity, only processors 1, 4, and 5 are shown)
When models have high permeability channels, such as SPE10, the default nested factorisation linear solver may
be slow to converge. In these cases it is preferable to use a two-stage linear solver preconditioner. The following
section gives a brief overview to the implementation of the two-stage preconditioner; more details can be found in
reference6 .
Two-stage Preconditioner
In the fully implicit case the linear system of equations has the following form
(A1p )ij (A1s )ij
∂R ∂R ∂R1i
1i
∂P ∂S
1i
. . . ∂SN −1j
j 1j
s = 1...N − 1
. . .
Aij = .. ..
.. =
,
c = 2...N
i, j = 1 . . . Na
(Acp )ij (Acs )ij
∂RN i ∂RN i ∂RN i
∂S1j . . . ∂S
∂Pj N −1j
where
• Na is the number of grid cells
• (A1p )ij is a 1 × 1 matrix
6 Hammersley, R and Ponting, D., Solving Linear Equations In Reservoir Simulation Using Multigrid Methods, SPE 115017, Moscow
2008.
if A1s were identically zero then the equations could be solved in the following manner
xp = A1p−1 Ro
xs = Acs−1 (Rc − Acp xp )
Working from this principle the equations are rearranged by left multiplying by a second matrix:
I −Q A1p A1s A1p − QAcp A1s − QAcs
=
I Acp Ass Acp Acs
Now if Q = A1s Acs−1 then A1s − QAcs = A1s − A1s Acs−1 Acs = 0 and the procedure described above can be
used to solve the equations.
However, the matrix A1s Acs−1 cannot be formed as it is a dense matrix, so an approximation must be used. Let
A denote a block matrix, with block dimensions l × m, then let D denote the block diagonal of the matrix in the
sense of cell indices:
(
Aii for i = j
D(A)ij =
0 for i 6= j
If the effect of flow terms were small, the coupling matrix might be reasonably well approximated by its diagonal
term and this would suggest taking the block diagonal matrix
X
Q1c = D(A1s )D(Acs )−1
s
I − D(A1s )D(Acs )−1 A1p − D(A1s )D(Acs )−1 Asp A1s − D(A1s )D(Acs )−1 Acs
A1p A1s
=
I Acp Acs Acp Acs
Ã1p Ã1s
= = Ã
Acp Acs
Left multiplication by Q has partially decoupled the pressure and saturation equations and can be thought of as
Gaussian elimination on the diagonal7 or Quasi-IMPES decoupling8 .
Now that the coupling matrix Ã1s has been weakened, a combinative 2 stage pre-conditioner can be used as
follows:
• Make an approximate solution to Ã1p xp = b̃1
• Calculate the residual
7 Behie, A. and Vinsome, P., Block iterative methods for fully implicit reservoir simulation, paper SPE 9303 presented at 55th Annual Fall
Numer. Linear Algebra with applications Vol. 8, No. 8, pp. 537-549, 2001
xp
r = b − Ã
0
• Make an approximate solution Ãy = r
xp −1 b̃1
• Return + y as an approximation to Ã
0 bs
Finally, the two stage preconditioner is used iteratively in GMRES until the desired linear convergence factor is
reached.
In MORE the first stage Ã1p xp = b̃1 is calculated using an Algebraic Multigrid solver, the second stage Ãy = r
using an ILU solver.
The Algebraic Multigrid Solver is enabled using the MGLS keyword which should appear in the INPUT section.
If the model is an IMPES run, then Algebraic Multigrid is used for the pressure solver. If the model is a fully
implicit run, then a two-stage preconditioner is used, where the first stage is the Algebraic Multigrid Solver and
the second stage is an ILU solver. The solver cannot be used with the adaptive implicit option.
Two types of aquifers can be used in MORE: analytical and numerical. In the former, analytic approximations of
the temporal evolution of the aquifer state are used to determine the flow at the reservoir boundary. In the latter,
additional cells are added to the reservoir which represent the aquifer, and the combined system is solved in the
usual manner.
Analytic Models
The most commonly referred to comprehensive aquifer model is that of Hurst and van Everdingen1 . In essence, it
models inflow into a cylindrical reservoir from a surrounding cylindrically symmetric aquifer. But to some level of
approximation, it applies to arbitrary reservoir geometries. Since solutions to the Hurst and van Everdingen model
can only be expressed in terms of infinite series, closed form approximations are needed for efficient numerical
implementation, two of which are supported by MORE: the Carter-Tracey model and the Fetkovitch model.
It is common practice to use the non-dimensional variables length rD , time tD and aquifer depressurisation pD ,
such that
r = r∗ rD , t = t∗ tD , p = pinitial − p∗ pD , (17.8)
where pinitial denotes the initial aquifer pressure and r∗ , t∗ and p∗ the characteristic scales.
Water flow inside a cylinder of height h, with permeability k and porosity φ, water viscosity µ and density ρ, and
combined water and rock compressibility c̄, obeys the mass balance equation
∗
p∗ ∂pD
1 ∂ kρ ∗ p ∂pD
rD r = φc̄ρ
rD r∗ r∗ ∂rD µ r∗ ∂rD t∗ ∂tD
(17.9)
φc̄µr∗2 ∂pD
1 ∂ ∂pD
⇔ rD = ,
rD ∂rD ∂rD kt∗ ∂tD
and the line source boundary condition (for rate q)
p∗ ∂pD qµ
lim rD = . (17.10)
rD →0 ∂rD 2πkh
From the condition on the quantities indexed with D to be dimensionless, we read off the characteristic scales
φc̄µr∗2 ∗ qµ
r ∗ = r ∗ , t∗ =
, p = , (17.11)
k 2πkh
See below for setting these scales through MORE keywords.
Combined with initial and boundary conditions, the second line of eq. (17.9) forms the dynamic description of the
aquifer state. Two types of asymptotic solutions are usually considered: the constant terminal pressure (CTP) and
the constant terminal rate (CTR) solutions. In general, the pressure influence function pD (tD ) is not expressible
in a closed form in terms of elementary functions. Several approximations have been published, which take the
form of an expansion in tD ,
√
pD (tD ) = α ln tD + β1/2 tD + β1 tD + β2 t2D + . . . + R(tD ) , (17.12)
Carter-Tracy Aquifer
MORE’s Carter-Tracy aquifer (AQCT) is based on a CTR solution of (17.9) and allows the user to either supply
an influence table via AQUT or use the default pressure influence function depicted below. It is defined by a
non-linear interpolation between the two asymptotes (depicted in green)
( √
1.1284 tD tD 1
pD ' .
0.5[ln tD + 0.80907] tD 1
1 see e.g. Dake, L.P., Fundamentals of Reservoir Engineering, Elsevier (1978)
Hence, for a given terminal water flow rate q between the aquifer and the reservoir, the non-normalised aquifer
pressure is given by
Here the aquifer influx constant B ≡ θφhc̄r∗2 comprises the combined compressibility of rock and water, c̄, and
the aquifer opening angle, θ ∈ (0 . . . 2π), as depicted here:
2 Carter, R.D. and Tracy, G.W., Trans., AIME SPE-1626-G, Vol. 219 (1960)
Use keyword AQCT to enter the required parameters h, k, φ, c̄, r∗ , 360 · θ/2π, pinital and µ into MORE.
Fetkovich Aquifer
An even simpler approximation for finite aquifers was given by Fetkovich3 , which relies on instantaneous pressure
propagation within the aquifer and is therefore best suitable to model small aquifers. He assumed the water inflow
from the aquifer to follow formally the same law as flow into a well completion,
dWe
= J (p̄aq − pres ) , (17.14)
dt
where p̄aq and pres denote the average aquifer water pressure and reservoir water pressure (adjusted to common
datum level between cell depth and aquifer depth) at the reservoir boundary, respectively, and J is the aquifer
productivity index in analogy to the well PI.
The quasi-stationary material balance We = c̄Winitial (pinitial − p̄aq ) yields the water inflow rate
dWe dp̄aq
= −c̄Winitial , (17.15)
dt dt
where Winitial denotes the initial water content of the aquifer, and pinitial its initial pressure.
Combining equations (17.14) and (17.15), and integrating in time, the solution reads up to first order in t:
See keyword AQFE for details of entering the required parameters in MORE.
Having defined an analytic aquifer employing either model above, it needs to be connected to the reservoir using
the AQCO keyword in order to have any effect. Although the Fetkovich and Carter-Tracy models theoretically only
apply to cylindrical geometry, in practice the aquifer can be connected to arbitrarily shaped reservoir boundaries.
In this case, the geometrical parameters defining the aquifer are fictitious numbers rather than real spatial measures.
3 Fetkovich, M. J., Journal of Petroleum Technology SPE-2603-PA, Vol. 23 (1971)
Since the aquifer state is updated each timestep in dependence on the total flow rate to the reservoir, this would lead
to discrepancies when doing sector studies using the FLXR keyword. In order to accommodate for this scenario,
all aquifer-to-flux-region flows are recorded in the flux file. Hence, in the flux runs, the missing flows are taken
from the flux file - independent of the choice of boundary conditions, FLUX or PRESSURE.
Note: For this to work correctly, care must be taken not to change the aquifer definitions between base and flux
runs.
Numerical Aquifers
Without referring to any analytical approximations, aquifers may also be represented by a small number of large
water-filled simulation cells that connect to the boundaries of the reservoir. In MORE, these connections are
treated exactly as non-neighbour connections, i.e. the connection properties must be specified by the user. In
addition, the cell properties must be given, such as size, depth, compressibilities of water and rock and the initial
pressure. Complete details about specifying aquifer cells are given under the AQNN keyword. MORE then treats
these cells as any other cells when solving the flow equations.
Specifically, MORE associates with each numerical aquifer defined one row of cells in a hidden layer of the sim-
ulation grid, which can be visualised using the toggle button in the 3D viewer. For this reason, the number of
numerical aquifers is limited to Ny , each containing no more than Nx cells in a grid of dimensions Nx × Ny × Nz .
In order to use numerical aquifers, the hidden cells must be requested using keyword NUMA. These cells are con-
nected within the aquifer and to the reservoir by the same mechanism as non-neighbour connections. Specifically,
the transmissibilities scale as the usual harmonic mean of cell sizes, Tij = [1/(2ki ai /li ) + 1/(2kj aj /lj )]−1 ,
where ki , ai , li denote the permeability, cross-section and length of the i-th cell, respectively.
In full analogy to connecting analytical aquifers, numerical aquifers are connected to the reservoir using the
AQNC keyword. In the case of a dual porosity/dual permeability, the user-defined connection layer range specifies
whether an aquifer connects to the matrix or fracture domain or both. As reminder, the first Nz /2 layers are treated
as matrix, and the second Nz /2 layers as fracture.
Wells can be completed in numerical aquifers using the CNAC event (or CNAC keyword).
Note: When using FLXN, numerical aquifers are always accounted to flux region 0. Hence care must be taken
about spurious flows into boundary cells in FLXR runs.
The surface volume of gas (in mscf or ksm3 ) adsorbed on the coal in a grid block is given by
where
• fash is the fraction of the coal which is ash: that is, not available to adsorb gas
• ηc is the mass density of the coal (specified in tons/acre-ft or kg/m3 )
• Vb is the bulk volume of the grid cell (in rcf or rm3 )
• v is the specific gas volume per unit mass in the coal (scf/ton or sm3 /tonne)
• C is a unit conversion factor equal to 5.6146 · 10−3 /2000.0 in field units or 10−6 in metric units
Note: In field units a ton is 2000 lbs (a short ton), and in metric units a tonne is 1000 kg.
The specific volume v is calculated from the desorption pressure in the coal, Pds , using a Langmuir expression
vL Pds
v(Pds ) = ,
PL + Pds
where
• PL is the Langmuir pressure
• vL is the specific Langmuir volume (scf/ton or sm3 /tonne).
If the pressure in the reservoir gas is different from the saturation pressure in the coal, the rate at which gas flows
from the coal to the reservoir is controlled by the change in v(Pds ), given by
K
Qgrc = [v(P ) − v(Pds )]U (Sg ) ,
TL
where
(
1 if Pds ≥ P
U (Sg ) =
Sg if Pds < P ,
with constant
The material balance condition over the time-step is solved for the coal to obtain the end-of-step Pds value.
The Palmer-Mansoori model obtains the variation of cleat porosity and permeability as a function of pressure1 .
Because the porosity fraction of the cleat system is typically small, changes in the volume of the coal will affect
both the porosity and permeability considerably. In a depletion process, there are two competing effects:
• As pressure falls, the coal tends to expand and the porosity and permeability of the cleat system are reduced.
• As the pressure falls, the coal desorption pressure also falls, the coal shrinks and the porosity and perme-
ability of the cleat system is increased.
The shrinkage effect can cause a permeability “bounce” at low pressures, as shown below.
The Palmer-Mansoori expression for the porosity φ and permeability K at a pressure P and desorption pressure
Pds with respect to the reference values φ0 , K0 , P0 is given by:
φ/φ0 = 1 + f1 + f2
K/K0 = (φ/φ0 )3
cm
f1 = (P − P0 )
φ0
c0 K Pds P0
f2 = −1 − ,
φ0 M PL + P PL + P0
where
1−v
M =E·
(1 + v)(1 − 2v)
K = M (1 + v)/(3(1 − v))
cm = 1/M − Cr (K/M + f − 1)
Note: The compression term f 1 is a function of pressure, P, whilst the shrinkage term f 2 is a function of desorption
pressure.
The following shows the Palmer-Mansoori variation of φ/φ0 and K/K0 for a model with:
• E - Young’s Modulus - 445000.0 psi
• v - Poisson’s Ratio - 0.39
• φ0 - Reference porosity - 0.001
• PL - Langmuir pressure - 571 psi
• c0 - Coefficient of coal shrinkage - 0.0128
• Cr - Rock grain compressibility - 0
• f - Interpolation fraction - 0.5
1 Brill, J.P., and Mukherjee, H., Multiphase Flow in Wells, SPE Monograph Series, Vol. 17, Richardson, 1999.
In this plot, the pressure and desorption pressure are the same. Note that the porosity multiplication factor φ/φ0
is restricted to be at least 0.01.
It is possible to use the coal bed methane option with compositional modelling. The Langmuir condition is
applied on a component by component basis, so that the volume of component c absorbed is a function of the pure
component Langmuir pressure and volume using the Arri et al2 equilibrium condition expression
!−1
equil P yc X
vc = vL,c 1+P (yc0 /PL,c0 ) .
PL,c 0 c
In this expression yc are the component mole fractions in the gas. The term P yc in the numerator is the partial
pressure of component c in the gas. If the partial pressure is reduced by the presence of other gases, the amount
of gas that can be absorbed is also reduced.
The rest of the treatment of compositional coal bed methane follows the treatment of a single gas component. To
define the state of the coal, we introduce component saturation pressures Psc . The amount of gas absorbed is then
!−1
Ps,c X
vc (Ps,c ) = vL,c 1+ (Ps,c0 /PL,c0 ) .
PL,c 0 c
At equilibrium Ps,c = P yc , but when Psc 6= P yc the rate of transfer from coal to gas is
The rate of transfer of a component is proportional to the deviation of the saturation pressure from the equilibrium
value.
This condition can be solved with the material balance condition for the gas absorbed on the coal to predict the
rate of gas flow between the reservoir and the coal for each component.
2 Arri, L. E., Yee, D., Morgan, W.D. and Jeansonne, M. W., Modeling Coalbed Methane Production with Binary Gas Sorbtion, Proc.
A typical process is CO2 /methane exchange. Initially the gas is 100% methane, so yCH4 = 1, and the system is
in equilibrium with PCH4 = P . When CO2 is injected into the reservoir, the mole fraction of methane falls and
yCH4 P < Ps,CH4 . The result is a transfer of methane from coal to the gas. Conversely, as there is initially no
absorbed CO2 in the coal, Ps,CO2 < yCO2 P , and CO2 is absorbed by the coal.
Compositional coal bed methane may be used with any of the MORE equations of state. These give a good
description of the PVT behaviour of gas mixtures at the comparatively low pressures typically encountered in coal
bed methane studies.
The extra data required comprises the Langmuir data for each of the components which is allowed to exist in the
coal.
Usage
The coal bed methane option is enabled by adding the keyword CBM to the fluid section:
CBM
CBM PM
The quantities used to control the option are the Langmuir specific volume, the Langmuir pressure and the Lang-
muir time. These may be set using the LANG keyword, for example:
The LANG keyword sets up global values; values which vary across the field may be set up using the CLANG,
PLANG and TLANG grid section arrays.
As the Langmuir volume is specified in terms of mass, we need the density of the coal. This is entered using the
CDEN keyword:
The fraction of the rock which is ash is specified with the FASH keyword. For example, a 3 layer pure coal / pure
rock / pure coal sandwich would be specified by:
FASH
ZVAR
0.0 1.0 0.0 /
The Langmuir parameters may be set using CLANG, PLANG and TLANG. An alternative method of setting the
data in the LANG keyword above would be:
CLAN UNIF
CONST
720 /
PLAN UNIF
CONST
571.0 /
TLAN UNIF
CONST
10.0 /
If the Palmer-Mansoori model is being used, the values of five more arrays should be set. These are:
• EROC - Young’s Modulus
• PROC - Poisson’s Ratio
• FSHR - Coefficient of coal shrinkage
• FROC - Interpolation fraction
• CGRA - Grain compressibility
The reference pressure is taken from REFE. When using the Palmer-Mansoori model the reference pressure is
usually the initial pressure. ELOB may be used as an alternative way of specifying FSHR (FSHR=ELOB/PLAN).
Values of the grid arrays for coal bed methane are included under the “Coal bed methane data” section of the
MORE output file. This also generates a table of the Palmer-Mansoori multipliers.
Alternatively, non-uniform values, by layer or grid cell, may be entered using the usual MORE grid processing
options.
Note: Values of the grid arrays for CBM may be viewed in the INIT section of Tempest. As is usual in MORE,
only the first four letters of the grid keywords are significant.
The initial coal desorption pressure is specified with the PDSI grid array in the GRID or INIT sections.
PDSI
ZVAR
1108.0 1115.0 /
If the initial PDSI is less than the initial reservoir pressure, the coal will be initially undersaturated.
Values of the current desorption pressure, PDSC, may be viewed in the recurrent section of Tempest. The coal
desorption pressure is preserved across restart runs.
Not all the hydrocarbon components present need be allowed to exist in the coal. The components for which this
is required are nominated in the CCOAl keyword, for example:
CBM
CCOAL CO2 C1
The Langmuir data for these components is then entered as grid data:
CLN1=993.0
PLN1=276.0
TLN1=10.0
CLN2=486.0
PLN2=680.0
TLN2=9.0
In the above the values are constants across all cells. However, the values may also be set to vary from cell to cell.
Introduction
In coal bed methane reservoirs gas is adsorbed in the bulk of the coal, but when the reservoir pressure is reduced
it can diffuse into a fracture system and move towards production wells. The rate at which gas flows from the
coal (often termed the cleat in coal bed methane modelling) into the fracture system is typically treated using a
Langmuir model.
This has three parameters:
• the Langmuir volume, which determines the amount of gas adsorbed on the coal (usually in units of scf per
short ton or sm3 per tonne),
• the Langmuir pressure, which determines the gas release as a function of pressure,
• the Langmuir time, which specifies the characteristic time taken for the cleat-fracture system to come into
equilibrium following a pressure change.
In Tempest the desorption of gas is treated as a pressure function which acts as a source term in the cells being
modelled. ECLIPSE uses an alternative method in which a double-porosity grid is employed, with separate cells
to represent the fracture volume and the cleat. This doubles the number of cells in the study, although only the gas
saturation pressure, rather than pressure and phase saturations, is tracked for the cleat cells. The two formulations
are equivalent.
In Tempest the volume of gas stored in the coal per unit mass is calculated using a Langmuir expression
v(Ps ) = vL · Ps /(Ps + PL )
where
• PL is the Langmuir pressure
• vL is the Langmuir volume
• Ps is the saturation pressure of the cleat
This expression is known as a Langmuir isotherm.
In ECLIPSE, rather than parameterising the Langmuir isotherm by vL and PL , a table of adsorbed volume ve (Ps )
as a function of pressure is entered, using the LANGMUIR keyword. This is written as ve because the absorbed
volume in the ECLIPSE LANGMUIR keyword is in different units from the Tempest vL .
To obtain a match between the two methods, we need to find values veL and PL such that the curve
matches the LANGMUIR keyword data. As an example, consider typical tabulated data in field units,
LANGMUIR
0 0.00
500 0.006
1000 0.008
2000 0.0110
3000 0.0134
4000 0.0145
5000 0.0150 /
The two fit parameters veL = 0.01875 mscf/ft3 and PL = 1251 psi produce a good match, as depicted here:
As a guide to fitting LANGMUIR data which shows a plateau at high Ps → Ps∗ , the relation
Some care is now required to match the units as Tempest needs vL in terms of scf/ton, in field units, and sm3 /tonne
in metric units. The ECLIPSE LANGMUIR keyword defines veL in terms mscf/ft3 in field units and sm3 /m3 in
metric units. As Tempest is in terms of gas per mass and ECLIPSE is in terms of gas per volume, the coal density
is required to perform the unit conversion.
If the coal density is ρT in tons/scf or tonnes/sm3 , then the required MORE vL is
• vL =1000veL /ρT in field units
• vL =veL /ρT in metric units
As veL is a volume per unit volume, this need to be multiplied by the volume per unit mass in tons or tonnes (1/ρT )
to obtain a volume per unit mass. The extra factor of 1000 in the field case is because the ECLIPSE veL is in
mscf/ft3 whilst Tempest uses scf/ton.
To obtain the density ρT from the density in standard units of lbs/ft3 or kgs/m3 , the required conversion is
• ρT = ρ/2000 In field units (as 2000 lbs/short ton)
• ρT = ρ/1000 In metric units (as 1000 kgs/tonne)
As a check, typical coal densities are
ρ (metric) ρ (field) ρT (metric) ρT (field)
Coal, Anthracite 1500 kg/m3 93.6 lbs/ft3 1.5 tonne/m3 0.0468 tons/ft3
Coal, Bituminous 1100 kg/m3 67.9 lbs/ft3 1.1 tonne/m3 0.034 tons/ft3
A typical field units vL value is 500 scf/ton, or 0.5 mscf/ton or 0.017 mscf/ft3 .
A typical metric units vL value is 40 sm3 /tonne, or 60 sm3 /m3 .
When the coal density is entered in Tempest using the CDEN keyword, a further unit conversion is required in
field units. In metric units there is no problem: the coal density is expected in kg/m3 with typical values of 1100 to
1500 kg/m3 . However, in field units, Tempest expects the density in the traditional coal bed methane engineering
unit of tons/acre-ft (it can be seen that with vL in scf/ton, and a coal density in tons/acre-ft, it is simple to estimate
the gas volume available per acre for a given seam thickness).
The required conversion is:
• 1 ton/acre-ft = 0.0459136 lbs/ft3 (1 ton/acre-ft=2000/43560 lbs/ft3 )
• 1 lbs/ft3 = 21.78 tons/acre ft.
So for a typical coal with a density of 70lbs/ft3 the required CDEN argument will be 1524 tons/acre-ft.
In the same way, rather than enter the Langmuir time, ECLIPSE requests that you specify the matrix fracture
shape factor, traditionally known as σ in dual porosity modelling, and a coal diffusion coefficient entered with
DIFFCOAL.
The time constant is related to σ by the condition that
TL = (σDc Dm )−1
where
• Dc is the matrix-fracture diffusivity specified with the ECLIPSE keyword DIFFCOAL,
• Dc is a multiplier set with DIFFMMF is a multiplier which defaults to 1.
To derive this, start from the flow rate from the coal of vσDc Dm (cc − cfree ) where cc is the absorbed gas concen-
tration in sm3/m3 or mscf/ft3 .
The amount of absorbed gas stored in the coal is vcc , so if the initial cfree is low then the rate of change of the
amount of gas in the coal is d(vcfree )/dT , which is equal to the inflow, or minus the outflow
d(vcc )/dT = −vσDc Dm (cc − cfree ) ∼ −vσDc Dm cc .
For constant v, this simplifies to
dcc /dT = −σDc Dm cc ,
which may be integrated to
cc ∼ exp(−T /τ ) ,
with τ = 1/(σDc Dm ) = TL .
As an example, suppose σ = 0.08 ft-2 , Dc = 0.2 ft2 /day and Dm = 1.0, then TL = 1/(0.08 · 0.2) = 1/(0.016) =
62.5 days.
Tempest also has an ash fraction keyword which can specify the fraction of the formation that is not coal. This
has the same effect as the Langmuir volume or the ECLIPSE LANGMUIR keyword, but can be more convenient.
There does not seem to be an ECLIPSE equivalent of the ash fraction, but different LANGMUIR tables can be
entered for different reservoir regions to allow for variation of the amount of adsorbed gas across the reservoir.
There is an additional option which may be used with coal bed methane in both ECLIPSE and Tempest. This is
the Palmer-Mansoori model, which models the variation in the fracture permeability as the gas desorbs from the
fractures. As the gas desorbs, the cleat shrinks, the fractures widen and the fracture system permeability increases.
The parameters which control the Palmer-Mansoori model, such as the elastic properties of the reservoir (Young’s
modulus, Poisson ratio etc.) are the same in ECLIPSE and Tempest.
Introduction
The coarsening option in MORE upscales a run by constructing coarse cell depths, pore volumes, well completion
factors and transmissibilities directly from the corresponding fine grid quantities. This has some advantages
over upscaling permeabilities and then constructing coarse grid transmissibilities – for example the set of cells
grouped together by coarsening may not have simple single cell geometry, making the coarse grid transmissibility
calculation problematical, whilst the transmissibility method remains valid.
Suppose we have two cells which are coarsened by a factor of 4 in the x and y direction. The original grid looks
like the following figure.
The transmissibilities act between fine grid cell centres and look like the following figure.
We wish to replace this with a single transmissibility between the centres of the two cells, as illustrated in the
following figure.
To do this we first do a parallel sum over fine grid transmissibilities in planes across the direction of flow, then
do a series summation of the resulting sums along the direction of flow. As we need the total transmissibility to
the coarse cell centre, a half transmissibility must be used in the case in which the number of fine grid cells in the
coarsening direction is even. The whole process can be illustrated as in the following figure.
Suppose the fine grid transmissibilities are tijk and the required coarse grid transmissibility is T . The summation
operation is
−1
X X
T = tijk .
i jk
The completion connection factors are not recalculated using averaged coarse grid permeabilities. Instead, the
coarse grid completion connection factors are obtained as a summation over the fine grid completion connection
factors.
Coarse grid pore volumes are obtained as the sum of all the fine grid pore volumes contained in the coarse grid
cell. Coarse grid cell depths are obtained as a pore volume-weighted average over fine grid cell depths contained
in the coarse grid cell.
Uniform coarsening may be turned on using the COAR keyword in the INPU section of the dataset. Non-uniform
coarsening x, y, or z-direction may be specified using the CXGR, CYGR and CZGR keywords, respectively.
Introduction
MORE provides a dual-porosity model and a dual-permeability model for simulation of fractured reservoirs based
on the work of Kazemi et al.1 . Both models make use of two simulation cells to represent a single volume
of physical space by associating one cell with the matrix flow and one with the fracture flow. In MORE, the
matrix cells form the first Nz /2 layers of the grid and the fracture cells form the second Nz /2. Non-neighbour
connections between the two parts of the grid, constructed automatically by MORE, allow flow between the
matrix and fracture cells. Tempest VIEW provides a button to toggle the view between the matrix and the fracture
simulation values, as described here.
The models operate by calculating matrix-fracture transmissibility and simulating flow through the fracture
medium. The dual-permeability option also allows flow to occur between cells in the matrix medium, but the
dual-porosity option does not: matrix - matrix transmissibilities are set to zero.
Fig. 17.4: Heavily fractured reservoir with blocks of matrix (red) surrounded by fracture material (blue)
Dual porosity is a good choice for reservoirs composed of matrix blocks surrounded by connected fractures, where
flow occurs mainly in the fracture system. Dual permeability becomes applicable when flow also occurs in the
matrix system.
Transmissibility calculations
The matrix-fracture transmissibility is calculated by using the matrix permeability and is dependent upon the
geometry of the matrix blocks,
where
• CDarcy is Darcy’s constant,
• KM is the matrix cell permeability in the X-direction,
• Vporv is the matrix cell pore volume, and
• σ is the matrix-fracture coupling factor.
Note that CDarcy σKM may be regarded as a transmissibility per unit pore volume, while σ is a quantity that
characterizes the coupling between the matrix and fracture media. For the idealised case of uniform matrix blocks
with dimensions of Lx , Ly and Lz , it is defined as
Note: In both the dual-porosity and dual-permeability models, Lx , Ly and Lz represent the size of matrix material
blocks and are in no way related to the size of the simulation cells.
It is sometimes useful to relate σ values to effective time constants. This may be done using the relationship from
Kazemi et al1
p
τ = C (1/σ)(µw /λs) φ/KM
where
• C is a constant which depends on the unit convention, equal to 34.22 (field) or 368.4 (metric),
• µwater is the water viscosity in cP,
• s is the interfacial tension, taken to be 40 dynes/cm,
• λ is a dimensionless experimental constant, equal to 0.011, and
• φ is the matrix porosity.
This time constant is approximate, but it provides an order of magnitude estimate of the timescale over which a
given σ term contributes.
Permeabilities in the fracture system may be specified in net or gross terms. If specified in gross terms, the
effective net permeability is given by
KFnet = φF KFgross,
where φF is the fracture porosity and KFgross is the user supplied gross permeability of the actual fracture material.
In a dual-porosity system (DPOR keyword in the grid section) there is no direct connection between matrix blocks.
Flow from the matrix material must be into its corresponding fracture block. Several mechanisms exist to drive
matrix fracture flows:
• Swelling due to pressure reductions
• Capillary pressure imbibition
• Gravity drainage
MORE models all three of these processes.
The swelling effect is simple; if pressure is reduced in the fracture system, the pressure in the matrix is reduced,
causing the fluid in the matrix to expand and flow into the fracture. This simple process is particularly effective in
gas systems where significant expansion occurs with pressure reduction.
Capillary pressure effects will generally be much larger in the matrix material than in the fracture material, due
to the much smaller pore space sizes. We would normally expect to have different saturation tables (set using the
ROCK keyword) in the matrix and fracture systems.
Suppose the initial state of the reservoir is immobile connate water in the matrix and fractures (connate water in
the fractures is often zero). As oil is mobile in both the matrix and fractures this implies that PoM =PoF . The water
pressure in the matrix material is
PwM = PoM - Pcow (Swco )
that is, lower than the oil pressure. This lower water pressure would cause water to flow into the matrix from the
fracture, but this cannot happen in the initial state as there is no mobile water in the fractures to flow.
If, however, water is injected into the fracture system, water will become mobile in the fractures and flow into the
matrix material. This raises the pressure in the matrix material, causing oil to flow from the matrix material into
the fracture, as shown in the preceding figure.
Note: The capillary pressure imbibition process will not work this way if the fractures are gas-flooded, as the sign
of the oil-gas capillary pressure opposes the flow of gas into the matrix material, and traps the oil in the fracture
system.
The gravity drainage recovery mechanism assumes that the matrix material exists in lumps with a vertical height
of ∆zM . Note that this is a physical property of the fractured rock; it is not related to the dimensions of the cells
used in the geological or reservoir simulation model grid.
Consider such a lump of matrix material in a fractured reservoir. It will be assumed that the fluid distribution
within the lump is segregated. Suppose that the fraction of the depth interval ∆zM occupied by water is Fw .
At the fluid contact Φo = Φw . The difference in the oil and water potentials at the centre of the lump of matrix
material yields an effective capillary pressure of
eff
Pcow,M = Φo − Φw = G(Fw,M − 0.5)∆zM (ρw − ρo ) .
A similar potential correction can be made for the fracture adjacent to the matrix material, to obtain an effective
capillary pressure term of
eff
Pcow,F = Φo − Φw = G(Fw,F − 0.5)∆zM (ρw − ρo ) .
With both matrix and fracture potentials corrected to the same depth, the water potential difference from matrix to
fracture (ΦM F
w − Φw ) acquires an extra contribution of
eff eff
Pcow,M − Pcow,F = G.(Fw,M − Fw,F )∆zM (ρw − ρo ) .
Although this analysis is for one element of matrix material, it is assumed that the gravity contribution to the
capillary pressure is the same for all the matrix material in a simulation cell. This is not really justified - the
fractional depth of the water contact around each element of matrix material will not generally be the same, and
the ∆zM value will vary. However, the approximation has correct end points (when the fractures are oil-filled and
water-filled) and provides a reasonable picture of the gravity drainage process.
In the simulator the fractional depths of water and gas, Fw and Fg , are obtained from the cell saturations. The
critical saturations of the three phases are taken into account in this calculation. For example, if the initial water
depth fraction is Fwi and the water saturation increases, the water saturation above the Fwi is not 1 but (1-Sowcr ),
where Sowcr is the critical oil saturation in water. The assumed water distribution is thus, as illustrated in the
following figure.
In the same way, if the water saturation is reduced, the critical water saturation remains between the original and
current contacts. The gas fractional flow calculations use the critical oil saturation in gas and the critical gas
saturation in the same way. A consequence of this is that the original depth fractions or original water and gas
saturations are needed throughout the run, and are preserved on the MORE restart files when the gravity drainage
option is used.
Data Requirements
INPU
RELA
Since two media are present, at least two sets of relative permeability data would normally be specified. These are
assigned to simulation cells using the ROCK keyword in the GRID section.
KRWO
0.25 0.000 0.92 4.00 /
0.50 0.100 0.24 0.85 /
0.70 0.200 0.00 0.00 /
/
KRWO
0.00 0.000 1.000 4.00 /
0.25 0.145 0.519 0.72 /
0.50 0.355 0.240 0.29 /
0.70 0.585 0.102 0.16 /
1.00 1.000 0.000 0.00 /
/
GRID
Since the models make use of a matrix grid stacked on top of a fracture grid, the number of layers in the model
must be doubled.
Note: Normally, the user will have to define the full corner point depth data for a DPOR or DPER model.
However, duplicating the ZCOR array can be cumbersome for large models. This may be simplified by using the
DPGR keyword which allows the user to only enter the data for the matrix cells which is then also used for the
fracture cells.
Specify the matrix-fracture coupling coefficient, σ, porosity, permeabilities and rock types for the matrix and
fracture media. For example, in a 5 layer simulation:
POROSITY
ZVAR
5*0.19 5*0.01
K_X
ZVAR
5*1 5*10000
SIGMA
ZVAR
5*0.084 5*0.0 /
/ Different rel perms and capillary pressures for matrix and fracture media
ROCK
ZVAR
5*1 5*2 /
It is also possible to enter the matrix-fracture time constant τ in place of the coupling factor σ. This can be done
using the MFTC keyword in place of the SIGM keyword.
RECURRENT
For dual porosity/permeability runs the wells should generally be completed in fracture layers (that is, the second
Nz /2 layers), although it is also possible to perforate the matrix layers. For wells defined using trajectories, the
FRAC, MATR, and BOTH options of the PERF event may be used to select which.
The data requirements for the gravity drainage option are simple. The option is turned on by adding the GRAV
argument to the DPOR or DPER keywords:
DPOR GRAV
If gravity drainage is being used, then the value of the DZMA grid array should be specified. This is a standard
MORE grid array, and may be set up in any of the usual ways. For example, ZVAR may be used to set DZMA by
layer:
DZMA
ZVAR
8*1.5 8*0.0 /
Only the values set for the first Nz /2 (matrix) layers are used. In the case above we have requested a 1.5 ft matrix
lump thickness. Although gravity drainage produces small potential differences compared to viscous water drive,
the high transmissibilities between the matrix and fracture systems can lead to good recoveries with surprisingly
small DZMA values. Note that if capillary pressure is present, it will generally assist the gravity drainage process
in the waterflood case and impede it in the gas-flood case. However, gas has the advantage of a larger density
contrast to oil.
When running a dual porosity/permeability model, Tempest VIEW provides an icon to toggle the view between
In addition to the standard grid properties, VIEW will display arrays corresponding to the dual porosity shape
factors σ and time constants τ :
Dual porosity models can be formulated as described in Dual Porosity/Permeability Systems using twin grids, the
first Nz /2 layers representing matrix cells and the second Nz /2 layers representing fracture cells. The component
conservation equations for a time step from T to T + ∆T may be written in residual form as
!
XX
F F M F F F
Rca (X , X ) = ∆Nca + ∆T Qca + Fcpab + Gc = 0
b p
M
Rca (X F , X M ) = M
∆Nca − ∆T Gc = 0
X M = {P M , SoM , SwM }
For fixed X F we can solve RaM =0 for X M . This can be done using Newton’s method, the change in matrix solution
over an iteration being
Once this system has converged, RM → 0, we have the solution X M for a given X F . To solve the entire reservoir
we need to know the dependence of X M on X F as X F varies.
It is required that the condition RM = 0 remain true under X F variation, so that
The inverse Jacobian (∂RM /∂X M )−1 used to form dX M /dX F is just that used in solving for X M .
As we now have X M and its derivatives as a function of X F the system becomes a function of the fracture variables
only,
" #
XX
F
(X F ) = ∆Nca F
+ ∆T QFca + F
+ Gc X F, X M X F
Rca Fcpab =0
b p
with
This looks like the standard flow equations for a single porosity model, with an extra term Gc which acts as a
source/sink term, analogous to the well production/injection term. The matrix solution is obtained as a dependent
function of the fracture variables at each iteration.
In light of this, MORE offers an alternative approach to running dual porosity/single permeability systems based
on a single grid, as an alternative to the usual twin grid approach. Full details on using this DPSS model are given
below.
Note that the above derivation does not assume any particular form for the function Gc . In MORE this takes the
usual Darcy flow form but without a depth difference term
" #
X
U
Gc = CDarcy σKM Vporv Mcp (P F + Pcp
F
− P M + Pcp M
)
p
where CDarcy , is Darcy’s constant and KM , Vporv , σ are the matrix cell X-direction permeability, pore volume, and
shape factor.
This yields precisely the same converged solution as the dual-grid approach in which
R = (RM , RF ) = 0
X = (X M , X F )
The need to upscale reservoir properties arises from heterogeneity: we need to obtain effective values to represent
a volume of rock over which properties vary.
In a dual-porosity system separate regions of matrix are coupled to the fracture system but not to each other. To
the extent that the fracture system in a simulation grid block is regarded as having a single pressure and set of
saturations, the source/sink contributions are then additive. If a detailed geological model exists, it may be used
to assign volume fractions to regions for which σ lies in a set of intervals. An example is when several layers of a
geological model are grouped together to form layers of the simulation model.
Such a system may be modelled using multiple shape factors, each contributing a source/sink term. The effect
is not the same as summing up matrix-fracture transmissibility contributions: each σ value will yield a different
matrix solution to its equation RM = 0. Matrix-fracture effects are included over a number of time constants
rather than one. The figure shows a highly schematic example in which matrix material is grouped into three sets
based on matrix block size and thus a representative σ value.
In the simulation each of the σ groups contributes a source/sink term, but with fi Vb replacing Vb in the single
σ model. If gravity drainage is being considered, dz will be required for each volume fraction. Using a set of
characterised matrix volume fractions is particularly significant for gas gravity drainage, as the process only occurs
for matrix material with a minimum dz value.
The user image of the DPSS model is much simpler than that of conventional dual-grid dual-porosity models. In
particular, the grid dimension is not doubled up; data is entered on a single grid.
A standard dual-porosity study is the simple benchmark defined in1 . The dual-grid form of this study is shipped
as part the Tempest release as the example dataset dualporo.dat. The DPSS version of this is the dataset dpss.dat.
Both runs give the same results (recovery at 1000 days of 126.3 mstb).
To use the DPSS approach we select dual-porosity modelling using the DPSS keyword. The grid is dimensioned
to the actual problem size, 8x8x1. In the DPSS approach both matrix and fracture properties are entered on the
same grid. The usual keywords (PORO, K_X etc) define the properties of the matrix material. A new set of fracture
property keywords defines the properties of the fracture material. These all have sensible defaults, so it is only
necessary to enter fracture properties which differ from matrix properties. More information is given in Arrays
related to dual porosity modelling.
In this example, we need to specify only three fracture properties and the usual σ values:
This is a minimal set of fracture grid data; the fracture porosity, permeability and saturation tables numbers will
normally be different from the matrix porosity, permeability and saturation table numbers.
The usual defaults apply; that is, FKY and FKZ default to FKX if not specified.
When a well is completed in a cell with a non-zero fracture porosity completion will be made into the fracture
system, so the well is completed in layer 1 as would be expected – there is no need to displace the completions
into the second set of fracture layers as in the dual grid method.
Note: The DPSS model strictly requires the fully implicit solver.
In many cases, fracturing is not significant over the whole volume of a reservoir – there are often regions in which
the fracture porosity is zero. This is a problem in conventional dual-porosity runs, which only permit flow in
between the fracture cells. However, in unfractured regions we want flow in the matrix. This normally leads to
the use of dual-permeability models, which permit flow in both the matrix and fracture.
In the DPSS approach we can handle unfractured regions without needing to use a dual-permeability model. The
source sink model solves a single flowing grid system, which:
• Is the matrix system in unfractured regions (with FPOR=0).
• Is the fracture system in fractured regions (with FPOR>0)
That is, the unfractured region is treated as a single porosity system defined by the matrix properties, while the
fractured region is treated as a dual-porosity, single permeability system defined by the fracture properties, with
the addition of matrix-fracture flow defined by the source/sink term.
The DPSS model may be viewed as illustrated in the following figure.
1 Kazemi, H., Merrill, L. S., Porterfield K. L. and Zeman, P. R., Numerical Simulation of Water-Oil Flow In Naturally Fractured
Note that at the edge of the fractured region, the normal single porosity flow goes into the fracture cells, which
is physically correct, and fluid exchange can then occur into the matrix cells. Direct matrix-matrix flow does not
exist in fractured regions; where fracturing is sufficiently strong to be worth simulating separately, it is assumed
that fracture flow dominates transport across the reservoir.
When a well is completed in a cell in an unfractured region it will be completed into the single porosity system
with properties defined by the usual keywords.
Fracture Keywords
A full list of all the fracture GRID keywords is provided in the following table.
When using the FLEV keyword to calculate the J-function, the capillary pressure scalings are set up for example
using FXPW = FLEV * SQRT(FPOR/FK_X) as for the LEVJ keyword. Note that in this expression, FK_X is
actually the bulk fracture permeability, rather than the net fracture permeability FK_X*FPOR when using DPSS
NET.
In a DPSS run, each fracture GRID keyword defaults to the equivalent non-fracture keyword when it is not spec-
ified. The exception is for derived quantities: if LEVJ is specified and FLEV is not entered, the values of FXPW
will be taken from the input XPCW (if specified) rather than the modified XPCW derived from the J-function.
When a DPSS run is initialised using non-equilibrium initialisation (INIT NONE), the saturations may be dif-
ferent in matrix and fracture, so separate keywords exist for the fracture saturations, as provided in the following
table:
Fracture keyword Default Description
fsoi No Fracture oil saturation
fsga No Fracture gas saturation
fswa No Fracture water saturation
As there is only one grid in the DPSS method, we cannot use the traditional method of displaying matrix and
fracture values on the first and second Nz /2 layers of the run, and of switching between these using the dual
porosity Tempest icon.
Instead, all properties are displayed on the same grid. MORE will output values for the flowing grid in the normal
solution arrays with additional arrays for the matrix properties:
The flowing grid values are fracture values in fractured regions, single porosity (matrix) values in unfractured
regions. Matrix saturations will only be displayed in fractured areas of the reservoir.
When displaying the initial properties, the normal grid display name, such as
will again display the flowing grid value, i.e. fracture values in fractured regions, and matrix values in the unfrac-
tured regions.
If not all the reservoir is fractured, then the matrix and fracture properties may be displayed individually, for
example
and
respectively. Note that, while the fracture has separate directional permeabilities, there is only a single matrix
permeability in dual porosity regions, defined by K_X. This is because there is no matrix-matrix flow in this
region, and only a single permeability defines the matrix-fracture flow.
To use multiple shape factors, add the argument FRAC to DPSS, for example, for two shape factors:
DPSS FRAC 2
Each shape factor has an associated volume fraction. The shape factor for the first volume fraction is specified
using the SIGMA grid keyword in the usual way. Alternatively, it is possible to enter SIG1 instead of SIGMA. For
the second, and subsequent fractions, we use extra keywords SIGn and SVFn where n=2..9 to enter the shape
factor and the associated volume fractions of the region:
SIG1=0.084
SIG2=0.002
SVF2=0.5
In this example there are two shape factors, one with a sigma of 0.05 and one of 0.0001, with volume fractions of
0.2 and 0.8 respectively.
The data for this run is in ms.dat
The reservoir is fractured at the crest, but the rim is single porosity. Looking at the Tempest porosity display, this
region can be seen clearly, as illustrated in the following figure.
As for all the output arrays from the DPSS model, the ‘normal’ display (porosity, pressure, permeability etc.) is
that for the flowing grid: the single porosity material in single porosity regions and the fractures in dual-porosity
regions. To see the properties of the matrix and fractured material separately, look at displays like Fracture
Porosity or Matrix Porosity. In this case, the fracture porosity is illustrated in the following figure where the
fracture porosity is zero outside the fractured area.
The reservoir is produced using four water injection wells around the rim, and two crestal producers in the frac-
tured region. Looking at the water saturation display, we can clearly see the bloom in water saturation as flow
occurs into the fractured region (see the following figure); this is a example of the advantages of the flowing grid
display.
The matrix saturations can also be displayed, for region 1 and 2. Region 1 is illustrated in the following figure.
As expected, the water exchange is taking longer for this matrix volume fraction.
The overall water cut development shows the usual early breakthrough/slow WCT growth pattern of a fractured
reservoir, as illustrated in the following figure.
The Dykstra-Parsons model assumes that permeabilities have a normal distribution in ln(K). This implies a
probability distribution of the form
1 2 2
p(x) = √ e−(x−x̄) /(2σ )
2πσ
where x = ln(K), with mean value x̄ and standard deviation σ.
The fraction of a sample below a given x value is
Z x Z m
1 2 2
Φ(x) = p(x0 ) dx0 = √ e−(x−x̄) /(2σ ) dx0 .
−∞ 2πσ −∞
Let
x0 − x̄ √
t≡ √ ⇒ dx0 = 2σdt .
2σ
Then
Z t(x)
1 2
Φ(x) = √ e−t dt .
π −∞
The x value at the 50% cumulative (the permeability such that 50% of the values are greater than that permeability)
is defined as x50 = ln(K50 ), such that
Z t(x50 )
1 2 1 1
Φ(x50 ) = √ e−t dt = = Φ(∞) .
π −∞ 2 2
√
Thus we infer 0 = t(x50 ) = (x50 − x̄)/( 2σ), and hence x50 = x̄.
The Dykstra-Parsons coefficient EK is defined as
K84.1 is the permeability such that 84.1% of the sample has a higher permeability. If the corresponding x = ln(K)
value is x84.1 , then
Z t(x84.1 )
1 2
Φ(x84.1 ) = √ e−t dt = 0.159 .
π −∞
Thus x84.1 may√be found numerically using −t(x84.1 ) = erf −1 (0.682) = 0.7061, so that σ = −(x84.1 −
x50 )/(0.7061 · 2) ≈ x50 − x84.1 . Thus, given the K50 permeability and the Dykstra-Parsons coefficient we can
obtain the mean and standard distribution of the ln(K) distribution as
µ = ln(K50 )
σ = ln(K50 ) − ln(K84.1 ) = ln(K50 ) − ln(K50 · (1 − EK )) = − ln(1 − EK ) .
In MORE the Dykstra-Parsons option is selected using the DPCF keyword. The user-entered permeability is
interpreted as K50 and the supplied EK value is used to estimate σ. The actual permeability values are then
generated from a pseudo-random number sequence with a Gaussian distribution. The seed of the random number
generator may be set at the start of the MORE run, so that the “random” permeability sequence will be repeatable
from run to run. However, if the seed is set to zero, a new random distribution will be generated for each run.
Given an element y from a normal distribution with
√
p(y) = 1/( 2π) · exp(−y 2 /2)
and comparing with the expression above for p(m), we obtain the corresponding K value as
K = exp(x)
x = x̄ + y · σ·
The random value generated is applied to Kx . The Ky and Kz values are generated such that they preserve the
ratios Ky /Kx and Kz /Ky of the originally entered data.
The plot in the following figure shows the gas saturation obtained in a simple 1/4 five spot study run with a
Dykstra-Parsons coefficient of 0.5 and a seed value of 1.
MORE calculates the fluid in place for regions defined by the FIPN keyword. The FLIP keyword can be used
to request output of weighted fluids in place for user defined regions - see also the discussion on defining FLIP
arrays.
A summary of fluids in place will be written to the .out file at each array time by specifying the ARRA keyword
together with the GENE keyword with an argument FLIP as in the following example:
ARRAY MONTHS
0 1 2 3 5 10 15 /
GENE FLIP
A report of the fluids in place is then written to the .out file as follows:
FIPA===============================================================================
Fluid in place at 28 May 2003, 30.0 days
===================================================================================
A report is written first for the field (FIPA) as shown above. If any fluid in place regions have been specified by
the FIPN keywords, then these are written next with mnemonics FIPN1, FIPN2,... for each FIP region. The
pressure report is followed by a report of the fluids in place for each phase present in the reservoir.
The averaged pressure pk over a fluid in place region k specified using the FIPN keyword is given by
P
pi Vi
pk = Pi∈F IPk ,
i∈F IPk Vi
where the sum is over all cells i within the region F IPk (such that F IP N (i) = k). Here pi denotes the pressure
in cell i and Vi is the pore volume.
The hydrocarbon average pressure phk is weighted by the hydrocarbon pore volume:
P
pi Shi Vi
phk = Pi∈F IPk ,
i∈F IPk Shi Vi
where Shi is the hydrocarbon saturation in cell i, given by Shi = Soili + Sgasi .
The datum-corrected pressure pDatum,k is calculated in each region k at the datum depth Datum, entered using
the DATU keyword (or using the default value if the keyword is not entered). The formula used by MORE is
P
(pi − ρk g (di − Datum)) Vi
pDatum,k = i∈F IPk P ,
i∈F IPk Vi
where di is the depth of cell i. In the above, ρk denotes the averaged density for the fluid in place region k which
is calculated using
P P
i∈F IPk p∈AllP hases (Sp,i ρp,i Vi )
ρk = P ,
i∈F IPk Vi
so that a saturation-weighted average density ρk is used in each region. Here, Sp,i denotes the saturation for phase
p in cell i.
The datum-corrected hydrocarbon pressure phDatum,k in each region k is calculated similarly to the datum-
corrected pressure, except that the pore volume weighting is now replaced by a hydrocarbon pore volume:
P
i∈F IPk Pi − ρh,k g (di − Datum) Shi Vi
phDatum,k = P ,
i∈F IPk Shi Vi
where the averaged hydrocarbon density ρh,k in each fluid in place region k is given by
P P
i∈F IPk p∈HydrocarbonP hases (ρp,i Sp,i Vi )
ρh,k = P
i∈F IPk Shi Vi
In a black oil run, there are only two hydrocarbon components (oil and gas) and the surface volumes are related to
reservoir volumes by the formation volume factors (entered using OPVT, GPVT etc.) The total fluid in place for
oil and gas is then the total surface volume of each component at stock-tank conditions:
Mnemonic Description (black oil runs)
fipo Surface volume of oil
fipg Surface volume of gas
fipw Surface volume of water
For compositional runs, there are several hydrocarbon components, and the amount of liquid and vapour is deter-
mined by a flash calculation. At reservoir conditions, the components are flashed to determine fluid saturations
and related properties.
In order to report oil (liquid) and gas (vapour) in a compositional run, the total number of moles in the reservoir are
obtained by performing a flash calculation through the separators (SEPA) to stock tank conditions. The volumes
of liquid and vapour in the stock tank separator (which is at surface conditions) are then reported:
Mnemonic Description (compositional runs)
fipo Stock tank liquid after flash calculation of reservoir moles through separators to stock tank
conditions.
fipg Stock tank vapour after flash calculation of reservoir moles through separators to stock tank
conditions.
fipw Surface volume of water
These quantities are also written to the .out under the FIPA heading as follows:
Reservoir volume Surface volume
------- ---------------- ------------------
Oil 3.3344E6 rb 2227.545 mstb
Gas 16.6460E6 rb 14289.958 mmscf
Water 5.6314E6 rb 5604.904 mstb
------- ---------------- ------------------
Total pore volume: 25.6119E6 rb
Total reference volume: 25.8140E6 rb
In the black oil cases, MORE will also calculate mobile volumes of each phase.
Mobile volumes of water, gas and oil in place are:
Mnemonic Description
fmwip Field mobile water in place
fmgip Field mobile gas in place
fmoip Field mobile oil in place
fmoipw Field mobile oil in place with respect to water
fmoipg Field mobile oil in place with respect to gas
gmwip Group mobile water in place
gmgip Group mobile gas in place
gmoip Group mobile oil in place
gmoipw Group mobile oil in place with respect to water
gmoipg Group mobile oil in place with respect to gas
Quantities may be written to the .out file under the FIPA heading as follows:
Mobile Surface Volume
----------- ---------------------
Oil 45473.857 ksm3
Gas 7008.887 Msm3
Water 123912.379 ksm3
----------- ---------------------
for water, where the sum is over all cells i. Bw denotes water formation volume factor, Sw is the water saturation,
Swcr is the critical water saturation, and V is the reservoir pore volume.
Similarly, for gas
X V
f mgip = max(0, Sg − Sgcr) ,
i
Bg
where Sowcr is the critical oil in water saturation, Sogcr is the critical oil in gas saturation and Rv is the vapour
oil-gas ratio.
However, when oil is the wetting phase, MORE will report instead
X V V
f moip = max(0, So − Sowcr) + Rv max(0, Sg − Sgcr) .
i
Bo Bg
When the MOBI package is selected from the RATE keyword, MORE will also report mobile oil with respect to
oil and gas individually:
X V
f moipw = max(0, So − Sowcr)
i
Bo
and
X V V
f moipg = max(0, So − Sogcr) + Rv max(0, Sg − Sgcr)
i
Bo Bg
MORE calculates recovery factors for oil and gas when the FIELD package is enabled using the RATE keyword.
Mnemonic Description
foew Field oil recovery through wells
fgew Field gas recovery through wells
Each quantity has units of surface volume in the appropriate unit system.
The definitions for the qunatities foew and foeg are
total surface volume of oil production through all wells (f opt)
f oew = ,
initial surface volume of oil in place (f ipo(0))
and
total surface volume of gas production through all wells (f gpt)
f oeg = .
initial surface volume of gas in place (f ipg(0))
In a black oil run, oil and gas are pure components and so by conservation of components (assuming there is no
oil injection),
where f ipo(0) denotes f ipo evaluated at time t = 0. This may also be written as
This will not be true in the compositional case due to the nonlinear nature of the flash for EOS cases:
stock tank conditions. The surface volumes of oil and gas production (fopt and fgpt) are obtained by flashing the
molar production rates from each well through the separators, integrating over time, and summing for all wells.
As noted, in an EOS run, the composition of the oil and gas may change over time and the flash is also a highly
nonlinear process. To expand on this, consider two quantities of hydrocarbon, say A and B at pressure P and
temperature T . Flash each sample to surface conditions through the separators and measure the liquid (oil) and
vapour (gas) volumes, say VoA , VgA and VoB , VgB .
Now perform a flash for the combined sample C = A + B to produce surface volumes VoC , VgC for oil and gas.
In each case, the flash is performed through the separators from reservoir to stock tank conditions.
Then
VoC 6= VoA + VoB and
VgC 6= VgA + VgB ,
which is due to the nonlinearity of the separator flash and the fact that both the reservoir and produced oil (liquid)
and gas (vapour) compositions may change over time.
MORE will also report recoveries for each component to the .out file under the FIPA heading, for example in a
10 component (CO2, N2, C1, C2, C3, C4-6, C7P1, C7P2 and C7P3) compositional run with water:
The first two lines in the above report (fipo and fipg) refer to the Oil and Gas components in a black oil case,
or the liquid and vapour separator surface volumes in the compositional case, followed by the water component.
Then for each hydrocarbon component in an EOS run, MORE reports the molar values and surface volumes
for each component in place as if it were an ideal gas. The conversion factor used for ideal gas volumes is
1/V = nP/(R ∗ T ) where n is the number of moles and the other quantities have their usual values.
In each case, the reported recovery is defined as
original volume in place − current volume in place
recovery = × 100%.
original volume in place
Then the recoveries for Oil and Gas will be defined as
f ipo(t = 0) − f ipo
Oil recovery = ,
f ipo(t = 0)
f ipg(t = 0) − f ipg
Gas recovery = .
f ipg(t = 0)
Note that because of the nonlinear separator flash in the EOS case, the above Oil and Gas recoveries will not be
the same as foew and foeg.
The region quantities will all be written to the .rat file at each RATE output time and may be plotted using VIEW.
The pressure quantities are listed below.
Mnemonic Description
fipg Field gas in place
fipo Field oil in place
fipw Field water in place
fgew Field gas recovery through wells
foew Field oil recovery through wells
fpr Field hydrocarbon volume pressure average
fprp Field pore volume pressure average
fprd Field datum-corrected hydrocarbon volume pressure average
fprpd Field datum-corrected pore volume pressure average
gprh Group hydrocarbon volume pressure average
gprp Group pore volume pressure average
gprhd Group datum-corrected hydrocarbon volume pressure average
gprpd Group datum-corrected pore volume pressure average
rpr Region hydrocarbon volume pressure average
rprp Region pore volume pressure average
rprd Region datum-corrected hydrocarbon volume pressure average
rprpd Region datum-corrected pore volume pressure average
Introduction
The flux option allows the reservoir to be decomposed into different regions for which the conditions at their
boundaries are recorded in a file. These can be read back by a run in which only a subset of regions is active.
This provides a way of doing sector studies in which only a small region of the reservoir is of interest, without the
computational cost of modelling the rest of the reservoir in every run.
Required Data
In a flux run, a set of FLXN region numbers should be supplied to split the reservoir into a number of flux regions.
Three types of boundary conditions (set by FLXT keyword) are supported by MORE:
• FLUX - The component flows for cell connections crossing any boundary between two regions are written
to the flux file.
• PRES - The phase pressures and densities as well as all component in phase mobilities are written to the flux
file for each cell within the boundary layer of any region. In the FLXR run, the flows into or out of cells on
the active regions’ boundaries contain contributions calculated from the former values of the inactive cells
and the corresponding simulation values in the active boundary cells.
• NONE - No flow occurs between active and inactive flux regions. Of the three available boundary con-
ditions, this one usually leads to the largest discrepancy between base and flux run and is generally only
recommended for forward prediction without base run data available.
The FLXW keyword should be used to request that a flux file be written. Flux files have the suffix .flx and are
Roff (Roxar Open File Format) files. ROFF files are described in the document MOREFileSystem.pdf which
is supplied with the Tempest release. Roff files may be binary or formatted, the default being binary, although
formatted files may be requested using the FORM argument of the FLXW keyword.
A flux file contains a header, then a fluxDetails section, then, for every time at which data is written to the
flux file, a fluxFlows section and a wellData section. For every pair of cells in different flux regions between
which a flow can occur, the following quantities are stored:
section FLXT FLUX FLXT PRES
x,y,z, and local grid coordinates
fluxDetails
direction, depth and transmissibil-
ity of each cell connection
fluxFlows for each cell pair: for each boundary cell:
• flow rate for each com- po- • cell pressure
nent (moles/day) • phase capillary pressures
• phase densities
• component-in-phase mobili-
ties
By default, the flux file is written to after every time step. However, this may produce overly large flux files, so
optionally it is possible to set a minimum time in days between flux file write operations. For example:
FLXW 15 FORM
In the run which reads the flux file, the grid dimensions and the FLXN regions numbers should be the same as in
the run which wrote the flux file. The file to be read may be specified with the FLXR keyword, for example:
FLXR base
When running a case in which a flux file is being read, some of the flux regions may be made inactive. This is
done using the FLXA keyword to specify which regions are active. Suppose the base run had four regions. Then it
would be possible to use the following:
FLXR base
FLXA
3 /
Only the third fluxnum region would be modelled, cells in other regions being made inactive. Flows from the
inactive regions into the active region would be recovered from the flux file. Well rates for cells in active regions
would also be read from the flux file, so that the correct full-field production and injection rates are reported.
When pressure type boundary conditions are used in an FLXR run, using the argument
performs some statistical analysis of the FLXR boundary flows in comparison to those in the base run.
The flux file contains a discrete set of boundary values at the simulation times they have been recorded during the
FLXW run. When the timestepping in the FLXR run differs from the former, piecewise constant boundary values
are applied by default. That is
v(t) = v(tFLXW
i ) for tFLXW
i ≤ t < tFLXW
i+1 ,
where tFLXW
i , tFLXW
i+1 denote two consecutive record times in the flux file. Using the option INTE, linear inter-
polation is applied instead, such that for tFLXW
i ≤ t < tFLXW
i+1
tFLXW
i+1 −t
v(t) = φv(tFLXW
i ) + (1 − φ)v(tFLXW
i+1 ) with φ ≡ .
ti+1 − tFLXW
FLXW
i
Examples
A number of examples showcasing the use of the flux option keywords are distributed with the Tempest installa-
tion, as described in the Flux Option Examples page. Here we will describe the first of these examples in more
detail.
The dataset flxWrite.dat is a simple case which writes out a flux file.
The significant parts of the dataset are:
• FLXW - This requests the output of flux file
• FLXN - Splits the reservoir into two flux regions.
This example is of downdip water injection. The initial state of the full run shows water in the lower half of the
reservoir:
At the end of the run water has reached the producers and the water cut is 85%. If the main interest is the location
of the three producers, it might be hoped that the flux option could be used to model just the top 20% of the
reservoir. So the flxn array is set up so that there are two regions:
The dataset flxRead.dat is the same study, but reading from the flxWrite.dat flux file, and with just the
smaller first flux region active:
FLXR flrWrite
...
FLXA
1 /
In this case only the top 20% of cells are active, but the water saturation front appears and flows to the producers
in the same way, despite the absence of injectors in the run:
It is now possible to model the changes caused by changing well locations. It is possible to do this without re-
building the flux file if the changes do not effect flow across the flux region boundary too much. So for a second
run with repositioned wells, but with only flxn region 1 active and reading from the same flux file the 20 year
water saturation looks like the following figure.
This can be compared with the result obtained by running the entire problem again as illustrated in the following
figure.
The water cut agreement is also good, as illustrated in the following figure.
However, some care must be taken when applying flux files to new situations. In this case there was sufficient
production so that in both cases the wells injected at their target capacity – if this were not the case the water
flow into the active sector in the runs which read the flux files would be inaccurate. In MORE the flows between
flux regions will always be preserved. Suppose the production wells were both shut in the run reading the flux
file: the flow into the active flux region would then cause the pressure to rise (to over 10000 bar in this case).
The conclusion is that flux regions can be extremely useful for doing sector models as long as the flows into the
modelled region remain appropriate.
At high flow rates the linear relationship between pressure gradient and fluid flow velocity defined by Darcy’s law
starts to break down. The extra pressure drop is due to inertial terms in the Navier-Stokes equation and may be
represented by an extra contribution to the pressure drop which goes like the square of the flow velocity, v. This
formulation is due to Forchheimer1 . In terms of the Forchheimer coefficient, β, the pressure gradient in a given
direction, taken as the x direction here, for single phase flow, is
dP/dx = (µ/K) · v + β · ρ · v 2
= (µ/(KA)) · q + (β · ρ/A2 ) · q 2
= (µ/(KA)) · q · (1 + β · ρ · K/(µA) · q)
= (µ/(KA)) · q · 1/FN D
where
FN D = 1/(1 + β · ρ · K/(µA) · q)
and
• µ is the viscosity
• K the permeability
• ρ the mass density
• v = q/A for a volumetric flow rate a through an area A
The units of β are inverse length, so in a consistent unit system are in 1/m or 1/ft. However, this yields rather large
values for β, and so MORE accepts β in units of the Forchheimer, with 1F = 1atm s2 g−1 .
It can be seen that FND acts as a multiplier on the usual Darcy flow, q = KA/µ · dP/dx, and that the group
βρK/(µA) · q should be dimensionless.
Forchheimer flow is of importance in regions of high flow velocity, near wells. In terms of the drawdown into the
well, it is shown below that the effect of a non-zero Forchheimer coefficient is to define a D-factor for the well. It
is also possible to treat the Forchheimer effect between cells. The effect is to set up a non-Darcy flow multiplier,
FND , which multiplies the usual Darcy flow expression FND 2 . Apart from in near-well regions, this factor is often
close to unity.
We wish to evaluate the coefficient FND which contains the effect of the Forchheimer term in the flow in a given
direction d = x, y, z on flow in that direction.
As above, FND = 1 + βρK/(µA) · q, but only if all quantities are specified in a consistent unit set. In an
engineering unit set, such as the MORE field or metric unit sets, a unit conversion constant, CF C , is required. In
metric units
The effect of Forchheimer flow in the near-well region is the same as a D-factor, described in detail in the D-
Factors for Wells section of the Technical Reference. Below we derive the required D-factor in terms of the
Forchheimer beta coefficient.
For a single phase gas completion the surface flow rate is
where
• h is the layer thickness
• Pw and Pc are the well and cell pressures corrected to the same depth
• rw is the radius of the well
• rp is the pressure equivalent radius at which the pressure equals the cell average pressure
For radial gas flow with a non-zero Forchheimer coefficient
In the case of a well in a layer of thickness h, the area for flow is 2πrh, and q = qsg .Bg , so
Pc − Pw = (µg /(2πKh)) · qsg · Bg · (ln(ro ) − ln(rw )) + (β · ρg /(2πh)2 ) · qsg2 · Bg2 · (1/rw − 1/ro )
1/(µg B) · 2πKh · (Pc − Pw ) = qsg · ((ln(ro ) − ln(rw )) + (β · ρg · K/(2πhµg )) · qsg · Bg · (1/rw − 1/ro ))
qsg = 1/(µg · Bg ) · 2πKh · (Pc − PW )/(ln(ro ) − ln(rw )) + (β · ρg · K/(2πhµg )) · Bg · (1/rw − 1/ro ) · qsg )
Comparing the equation above to the equation for the surface flow rate for a single phase gas completion, it is
possible to identify D as
But
ρg .Bg = (reservoir density).(formation volume factor)
= (mass/res vol).(res vol/surface vol)
= mass/surface volume
= ρgsc
Again, care is needed with units. The above is valid if all values (including the gas constant) are in a consistent
set of units. In engineering units
Mw · P sc /(R · T sc )
so D may be re-written as
with R in units of Barsa/(m3 .Kg-mole.DegK) and qsg in ksm3 /day, or with R in units of psia/(ft3 .lb-mole.DegR)
and qsg in mscf/day.
Reference2 then defines a conversion constant CF W 1 which includes the 2πR factor in the constant and leaves β
in 1/ft to obtain their conversion constant value of 2.715e-15.
In MORE if the FORCH CELL option is requested the Forchheimer value β will be used in interblock flow, and
if FORCH WELL is requested the value will be used to set D-factors for the wells: CELL and WELL may be used
together.
The values of β should be entered in units of the Forchheimer in both unit sets with the BETA grid keyword.
This enables users to add any required dependence on permeability and porosity using the MORE grid array
expressions.
Introduction
Gas pseudo-pressure is a pressure-dependent quantity derived from the properties of the gas phase which results
in linearism of the gas inflow equation. It allows the change in gas properties in the well inflow region to be
accurately accounted for.
A multi-phase generalisation of gas pseudo pressure allows multi-phase effects such as liquid dropout in gas
condensates to be included.
where
• P is the pressure
• µg is the gas phase viscosity
• Zg is the gas phase Z-factor
• P0 is a base pressure, taken in MORE as the standard pressure of 1 atmosphere
It can be seen that the units of gas pseudo-pressure are pressure2 /viscosity, so in MORE either psi2 /cP or bar2 /cP.
To obtain this from the user data provided in MORE, the Z-factor must be obtained from the gas formation volume
factor supplied with keywords like GPVT. The gas formation volume factor is defined as
Bg = (gas volume at reservoir conditions) / (gas volume at standard surface conditions)
and is entered in units of rb/smcf or rm3 /ksm3 . Define a like-for-like formation volume factor (that is, in units like
rmcf/smcf) as
Bg0 = Cv · Bg
by convention gas formation volumes are with respect to ideal gas Z-factors with
Z(P0 , T0 ) = 1
Returning to the definition of gas pseudo-pressure above, and substituting this expression for the Z-factor,
P
P0 · T 2dP 0
Z
Ψ(P, T ) =
T0 · Cv P0 µg (P 0 , T ) · Bg (P 0 , T )
Gas pseudo-pressure may be used in drawdown calculations. The usual expression for inflow is obtained by
integration of the expression for the pressure gradient in the near-well region around the well. Assuming radial
flow, the volume flow of a single phase may be written as
So the rate of flow in terms of the conserved surface gas volume flow rate is
Qg = 2πrKh/(µg Bg ) · dP/dr
As the rate of inflow is independent of the radius, this expression can be written as
If the gas viscosity and formation volume factor are assumed to be independent of pressure and instead evaluated
at the cell pressure, the difference in pressure between the well radius and the cell pressure equivalent radius is
Qg [log(rc ) − log(rw )]
P c − Pw =
2πKh/(µg Bg )
or
2π · Kh P c − Pw
Qg = · = ccf · (1/µg Bg ) · (Pc − Pw )
log(rc ) − log(rw ) µg Bg
which is the usual expression for inflow in terms of the completion connection factor ccf .
However, the assumption that the gas viscosity and formation volume is independent of pressure may not be
reasonable for gas, particularly if Pc and Pw are very different. To avoid this approximation, an expression for
dΨ/dr is obtained:
2P Qg
dΨ/dr = dΨ/dP · dP/dr = ·
µg (P, T ) · Zg (P, T ) 2πrKh/(µg (P )Bg (P ))
using the condition that
Z x
d
f (y)dy = f (x).
dx
Substituting the above expression for Zg gives
and
Qg = 1/(2/(Cv (T0 /P0 )/T )) · ((2πKh)/(log(rc ) − log(rw )))(Ψc − Ψw )
= (Cv T0 )/(2 · T · P0 ) · ccf · (Ψc − Ψw )
Internally, MORE uses molar quantities, and the required molar flow rate is
This is the final form of the drawdown in terms of the gas pseudo-pressure difference.
To use this, starting with the usual inflow condition in terms of the formation volume factor and viscosity
with
Qg = Mg · ccf · FP P · (Ψc − Ψw )
In practice, the gas saturation will be a function of pressure in the drawdown region, as the gas saturation will
adjust so that the same pressure curve matches the required gas and non-gas phase input. If this effect is small
enough to be ignored, and Krg (Sg (P )) can be approximated by Krg (Sg (rc )) throughout the drawdown region,
then the integration variable can again be replaced by Ψ to obtain
Qg = Mg · ccf · FP P · (Ψc − Ψw )
So, if the relative permeability can be assumed constant, it factors out of the calculations and the same pseudo-
drawdown treatment can be used.
A further simplification defines a factor
Fg = FP P · (Ψc − Ψw )/(Pc − Pw )
so that
Qg = Mg · ccf · Fg · (Pc − Pw )
The Fg factor then includes all the effects of the gas pseudo-pressure calculation in the standard expression for gas
inflow. Its role in modifying the gas phase flow is very similar to that of a D-factor in modifying the completion
connection factor for the gas phase only. As the drawdown falls to zero then the modification factor Fg tends to
unity.
Relationship to Russell-Goodrich
If we assume that the gas properties Zg and µg are approximately constant, the gas pseudo-pressure (17.17)
reduces to
Z P
2 P 2 − P02
Ψ(P ) = P 0 · dP 0 = .
µg Zg P0 µg Zg
Pc2 − Pw2
Qg = Mg · ccf · = Mg · ccf · Frg · (Pc − Pw )
Pc
where
Pc + Pw
Frg = .
Pc
This is the well-known Russell-Goodrich1 inflow relationship in which the flow rate is found to vary as the differ-
ence between the square of the grid block and well bore pressures.
For gas condensate producers, a multi-phase generalisation of gas pseudo-pressure may be used used to take
account of condensate dropout in the calculation of well inflow. The description below is based on that of Whitson
and Fevang2 .
In this multi-phase case, a number of conserved components can be flowing into the well
Qc = 2πrKhMc · dP/dr
where
P
• Mc is the total mobility of component c, given by Mc = c Mcp
• Mcp is the mobility of component c in phase p, given by Mcp = xcp .Krp .bmp /µp
• bmp the molar density of phase p
• xcp the mole fraction of component c in phase p
The mobility is generally a function of the phase saturations through the relative permeability Krp as well as of
the pressure through the density and viscosity.
Adding up the flows for each component, the total molar inflow rate is:
QT = 2πrKhMT · dP/dr
with
XX
MT = Mcp
c p
Suppose the composition of flow into the inflow region around the well is z, with
,
X
zc = Qc Qc0
c0
Then there is a condition on the saturations at any pressure P in the inflow region that the flowing composition is
still z: that is, there is no significant build up of material in the inflow region and the flowing composition remains
the same into the well. Apart from a brief transient period this is likely to be the case.
Thus at any pressure the saturations can be determined as a function of pressure as
The total molar mobility can thus be obtained as a function of pressure, and so a generalised pseudo-pressure can
be defined as
Z P
Φ(P, T ) = MT (P 0 ) · dP 0
P0
1 Russell, D. G., Goodrich, J. H., Perry, G. E., and Bruskotter, J. F., Methods of Predicting Gas Well Performance, Transactions of the
so that
dΦ/dP = MT (P )
Combining
dP/dr = QT /(2πrKhMT )
with
we get
dΦ/dr = MT · QT /(2πrKhMT )
QT = 2πKh∆Φ/(ln(r0 ) − ln(rw ))
Φ(P ; zo , zw )
with
zg = 1 − zo − zw
It is nevertheless generally practical to precalculate this family of curves over a reasonably spaced mesh in (zo ,zw ).
The GPP keyword in the INPUT section should be used if gas pseudo-pressure is to be applied to any well. The
ALL argument can be used to apply it to all wells; otherwise use the WGPP keyword or GPP event to apply it to
selected wells. Similarly, the RG keyword may be used to use the Russell-Goodrich model.
The MPGP keyword should be used to request multi-phase gas pseudo-pressure. If multi-phase gas pseudo pres-
sure is used, details of the solution variation in the near-well region can be obtained using the GENE CMPL output,
and the following sort of table can be obtained:
Well P-1: synthetic radial solution values
I J K Value Variation with radius
--- --- --- -------- -------- -------- -------- -------- -------- -------- --------
4 4 1 Radius 0.152 0.277 0.504 0.918 1.669 3.037 5.524
Pressure 68.948 207.489 281.305 282.776 284.245 285.713 287.179
Oil satn 0.772 0.773 0.0 0.0 0.0 0.0 0.0
Gas satn 0.110 0.109 0.744 0.744 0.744 0.743 0.743
Wat satn 0.118 0.119 0.256 0.256 0.256 0.257 0.257
--- --- --- -------- -------- -------- -------- -------- -------- -------- --------
It can seen that an oil bank has formed in a low pressure region close to the well.
In some cases it is not possible to pre-store all the pseudo-mobility calculations. In particular, this is the case when
velocity-dependent relative permeabilities are used.
In these cases, dynamic pseudo-pressures are used: that is, the integration through the pressure region is done for
each inflow calculation. This option will be turned on if required by MORE, but can also be selected using the
DYNA option of GPP.
When using dynamic gas pseudo-pressure, the molar inflow is obtained for a given cell pressure Pc and a given
well pressure Pw by solving the single variable non-linear equation R = 0 where
Data for the initial conditions of the reservoir can be specified using either the EQUIlibrium initialisation option
or the noNEQUilibrium initialisation option. For both options, the simulator allows a variety of data input options,
including multiple initialisation regions. For black oil simulations, the temperatures specified at initial conditions
are used to interpolate between fluid properties tables (see example under keyword F(DEpth) in the equilibrium
initialisation section).
Equilibrium Initialisation
For the equilibrium option, the initial conditions in the reservoir are calculated assuming gravity-capillary equi-
librium. In this case, the user supplies the locations of the gas-oil and water-oil contacts, the capillary pressures
at the contacts and the pressure at a reference location using the EQUI keyword. For compositional simulations,
temperature (not used currently), the initial overall composition and an optional saturation pressure is supplied.
For black oil simulations the composition is not required since it is uniquely determined from the saturation pres-
sure. The temperature, composition and saturation pressure can be supplied either as a constant or as a function
of depth.
When the composition is specified as a constant, it is used at all depths during the initialisation procedure. If a
gas-oil contact initially exists, the composition must yield a two phase mixture at all depths in the gas-oil transition
zone. In this case, the normal procedure is as follows:
• Use the oil bubble point composition for the composition data.
• Set the reference depth equal to the gas-oil contact depth (href=hgoc) in the equilibration data.
Note: the reference pressure (pref) in the equilibration data should be slightly less than the bubble point pressure
of the oil.
This procedure gives a constant oil composition in the oil column, while in the gas cap a dew point fluid will exist
at all depths.
A composition gradient can be specified by supplying the overall compositions or saturation pressures as a function
of depth in the oil column or gas cap. In situations where the contact locations are different in different parts of
the reservoir, multiple equilibration regions can be used to define the initial conditions.
If a saturation pressure is specified for a compositional simulation, a modified overall composition is obtained
by flashing the fluid at the saturation pressure and setting the overall composition equal to one of the individual
phase compositions. If the fluid is in the gas cap, the simulator obtains a dew point fluid by setting the overall
composition equal to the vapour composition. If the fluid is in the oil column, the simulator sets the overall
composition equal to the liquid composition to yield a bubble point fluid. When a saturation pressure is specified,
the composition at the corresponding depth must yield a two phase mixture.
When there is no gas present initially, the specified gas-oil contact should be considerably above the reservoir.
Similarly, when there is no oil present initially, a gas-oil contact below the reservoir is supplied.
When the initial water or gas saturations (SWAT, SGAS) are specified in addition to the EQUI keyword, it is
possible to set up capillary pressure modifications which ensure the initial solution is quiescent and honours the
given saturation distributions. See Stabilisation of the Initial Solution using Capillary Pressure Modifications
below.
A reservoir may have multiple equilibration regions (specified by supplying multiple contact depths using EQUI
keyword together with the EQLN keyword to define equilibration regions). If the equilibration regions communi-
cate via flow paths, the initial solution may not then be quiescent, since the solution is in equilibrium only within
each equilibration region. In this case, the threshold pressure option may be used to stabilise the initial solution if
required. Flows will then only occur between equilibration regions when the potential difference exceeds a criti-
cal value. If the threshold pressure values in THPD are defaulted, MORE will calculate threshold pressure values
such that initial solution is quiescent. Specifying the flag ONPD in the THPD keyword will specify breakthrough
pressures between equilibration regions.
In many reservoirs, some knowledge of the initial water saturation SWAT is available from log data, and the
initial distribution in the reservoir should honour this consistently with information on contact depth and capillary
pressures given by the EQUI keyword for an equilibrium initialisation.
However, given the EQUI data, saturations would normally be determined using the given contact depths and
capillary pressure data such that the phases are in hydrostatic equilibrium (see the figure). Therefore, when an
arbitrary water distribution (SWAT) is specified without any modification to the oil-water capillary pressures, the
initial solution may be non-quiescent, and there will be flows in the absence of any wells and aquifers. In this case,
MORE can stabilise the initial solution (i.e. make it quiescent) by adding modifications to the oil-water capillary
pressures for each grid block in the transition zone.
The capillary pressure modifications used to ensure stability of the initial solution are controlled by keywords
PCSH and PCSC. If initial saturations using SWAT (or SGAS) are specified together with EQUI, and neither
PCSH or PCSC are entered, MORE will use PCSH with the MIN argument as a default to ensure the initial
solution is quiescent.
The keyword PCSH adds a shift to the phase capillary pressure which stabilises the initial solution. For ex-
ample, when SWAT is specified, then the effective oil-water capillary pressure used during the simulation is
P cowLookup (Sw) + P cowShif t , where P cowLookup (Sw) is the P cow value obtained from table lookup (including
any end-point scaling). The shift P cowShif t is calculated to stabilise the initial solution in the oil-water transition
zone. See the example below.
An alternate keyword PCSC scales the capillary pressure end-points to stabilise the initial solution: In this
case the effective oil-water capillary pressure used in the simulation is P cowLookup (Sw) × P cowScale , where
P cowLookup (Sw) is the P cow value obtained from table lookup (including any end-point scaling) and P cowScale
is an additional end-point scaling which stabilises the initial solution (XPCW, XPCG are modified). A similar
situation occurs when the initial gas saturation SGAS is specified, in which case modifications are made to the
gas-oil capillary pressure P cog in each grid block. The PCSH keyword is preferred over the PCSC keyword
because any end-point scaling arrays XPCW, XPCG are left unchanged.
Non-Equilibrium Initialisation
When a simulation is conducted from an intermediate point in the producing life of a reservoir and/or when the
initial distribution of the pressures, saturations and compositions are known, the non-equilibrium initialisation
option is used. Any of several flexible input options can be used to specify the initial conditions.
The pressures, compositions, saturations and temperatures (currently used for black oil only) can vary radially as
well as vertically. At each position, the composition, pressure and water saturation must be specified. Optionally,
gas saturation or saturation pressure can be specified to modify the composition. If both the gas saturation and
the saturation pressure are specified, the simulator will issue a warning and set the saturation pressure equal to the
reservoir pressure.
For a black oil system, the composition is uniquely determined by the saturation pressure for under saturated
conditions and by the gas saturation for saturated conditions. For this reason, composition data is not needed.
The saturation pressure defaults to the value indicated by the oil PVT table. The temperature values specified at
initial conditions are used to interpolate between the fluid property tables. This option assures a smooth variation
in fluid properties from point to point in the reservoir. If the temperature at every grid point corresponds to the
temperature of a PVT table, no interpolation is performed.
In an EOS simulation, if the specified saturation pressure is less than the pressure, a modified overall composition
is obtained by flashing the fluid at the saturation pressure and setting the overall composition equal to one of the
individual phase compositions. If the gas saturation is less than zero (the default), the overall composition is set
equal to the liquid phase composition. If the gas saturation is greater than 1 − Sw , the overall composition is set
equal to the gas phase composition.
If the specified gas saturation is greater than or equal to zero and less than or equal to 1 − Sw , the fluid is flashed
v = ρg Sg /(ρo So + ρg Sg )
zi = (1 − v).xi + v.yi
where
• v is the vapour fraction
• Sg is the gas saturation
• So is the oil saturation
• ρg is the molar density of the gas
• ρo is the molar density of the oil
• zi is the hydrocarbon overall mole fraction of component i
• xi is the mole fraction of component i in the oil phase
• yi is the mole fraction of component i in the gas phase
To specify an arbitrary variation of the initial solution, the individual values of composition, pressure, water
saturation, gas saturation, saturation pressure and temperature (for black oil only), may be specified in the INIT
section using the usual GRID processing methods and sub-keyword.
When performing an equilibrium initialisation with the EQUI keyword, the initial state of the reservoir is qui-
escent. This means that the initial solution is stable, and there is no flow in the absence of any wells or aquifer
support.
The traditional way of specifying initial composition in MORE has been through total hydrocarbon mole fractions,
using keywords such as CONS, F(DE, MFVD or the ECLIPSE compatible ZMFVD or COMPVD.
Setting the hydrocarbon composition is fine when the reservoir starts in a single phase hydrocarbon state with no
gas-oil contact in the reservoir. It is still possible that in a super-critical reservoir the hydrocarbon is a gas at the
top and an oil at the bottom, but there can be a smooth continuous transition with no actual contact or transition
zone containing cells with both oil and gas.
However, things are less easy for the case in which there is a gas-oil contact within the reservoir. In the transition
zone cells will have differing saturations of oil and gas, so the overall hydrocarbon composition will not be easy to
set in advance. Further, for a stable start to the run, the oil and gas phases should be in thermodynamic equilibrium
at the cell pressure.
The saturation of the phases in the transition zone is a function of the capillary pressure and the phase densities,
so to perform an equilibrium initialisation the densities and so the compositions of the oil and gas phases need to
be known separately. MORE provides a number of new facilities to help do this, described below.
These keywords allow the oil and gas composition to be specified separately as a function of depth. The phase
composition variations are then used to obtain phase pressure with respect to depth, and the phase saturations in
the oil-gas contact transition zones can be obtained. The only problem is the requirement that the oil and gas
compositions are in equilibrium – if this is not the case the saturations will change as soon as the simulation starts
running and the hydrocarbon in the cells is flashed.
In some cases compatible oil and gas compositions in the oil-gas contact transition zone may not be known. It
may be the case that just one or the other composition is available. However, it is then possible to determine
the unknown phase composition from the condition that it is in equilibrium with the known phase composition.
GOCX and GOCY request that this be done:
• GOCX states that the oil composition entered is to be observed and the gas composition obtained from it.
• GOCY states that the gas composition entered is to be observed and the oil composition obtained from it.
In both cases the missing phase composition is obtained at the depth of the gas-oil contact and applied throughout
the transition zone. In the GOCX case the generated composition will be applied down to the first user specified
oil composition in the oil zone. In the GOCY case the generated composition will be applied up to the first user
specified gas composition in the gas zone.
GOCX and GOCY can also be used with the keywords which set hydrocarbon mole fraction such as MFVD. For
example, if GOCX were used with MFVD, compositions at and below the gas oil contact will be assumed to be
specifying an oil composition and compositions above the gas oil contact will be assumed to be specifying a gas
composition. The gas composition at the gas oil contact will be determined by the phase equilibrium condition.
Setting the Pressure at the Gas-Oil contact: PSET Argument of GOCX and GOCY
When the composition of one hydrocarbon phase is specified and the equilibrium composition of the other phase
determined, the resulting two phase compositions are only in equilibrium at one pressure, equal to the saturation
pressure of both fluids. So if a composition in the oil-gas transition zone is supplied, effectively the pressure at
the oil-gas contact is being set as well. If PSET is specified with GOCX or GOCY then this replacement will be
made: the calculated saturation pressure for the known phase composition will be used as the reference pressure
at the gas-oil contact.
If the oil composition is specified in the oil zone or the gas composition is specified in the gas zone, then that
composition will determine the saturation pressure (the bubble point for an oil or the dew point for a gas). If the oil
composition in the oil zone were to be constant (for example, if just set by GOCX with no other user specification)
then the saturation pressure would be constant below the transition zone, as illustrated in the following figure. This
is fine, as the oil phase pressure increases with depth and the oil will be under saturated.
However, things are less simple in the gas zone. In this case the pressure falls as the depth decreases so the gas
saturation pressure cannot be constant, as it would be greater than the gas phase pressure, as illustrated in the
following figure.
As the gas cannot be super-saturated it will undergo a phase split, resulting in a saturated gas for which the dew
point is equal to the gas phase pressure, as illustrated in the following figure.
Allowing this phase transition to occur will normally result in small immobile oil saturation in the gas zone. To
avoid this, the TRIM keyword may be used, which will test for supersaturated cells in the gas zone and reset them
to saturated gas states at the correct pressure, but with a zero oil saturation.
If grid output is requested, MORE will output grid data at zero time. In particular, the displayed saturations
are those calculated by equilibrium initialisation, unless saturations are explicitly entered by the user for non-
equilibrium initialisation. Note that in the case of an equation-of-state simulation, phase identification of single-
phase states may subsequently change once the simulation begins based on the Li critical temperature correlation.
This may be tuned using the FCLI keyword.
Examples
1. The first example is a volatile oil case, using a PVT description from the SPE 5th problem. The reservoir
oil composition is given by:
In the INIT section the reference depth and the gas-oil contact depth are set to 8345, and the oil composition
is set to ROIL at and below the contact.
EQUIL
8385 4000 8385 0 8500 0 /
GOCX PSET
F(DEPTH) /
8385 1* 1* ROIL /
8400 1* 1* ROIL /
8500 1* 1* ROIL /
/
MORE will estimate the bubble point of the oil with composition ROIL, and the gas in equilibrium with
the oil. That gas composition, which is (0.97, 0.014, 0.007, 0.003, 0.0003, 1.3E-5), will be used as the gas
composition in the equilibration, and the reference pressure will be set to the bubble point pressure of 2303
psi. A gas oil contact is obtained in the reservoir and the initial solution is stable. Without TRIM, small oil
saturations of 1.3E-6 are found in the gas zone; these are eliminated if TRIM is used.
2. The second example uses a known gas condensate composition. The equilibration condition is used to find
the composition of the dew point oil. The contact and GOC are at 7400 and just the gas composition is set:
EQUIL
7400 4000 7400 0 7800 0 /
YMFV
7000 0.0121 0.0194 0.7099 0.0869 0.0491 0.0767 0.0372 0.0053 0.0034 /
8000 0.0121 0.0194 0.7095 0.0867 0.0490 0.0768 0.0374 0.0055 0.0036 /
/
MORE will estimate the dew point oil composition and the dew point (4154 psi). The oil composition will
be set to the dew point oil at all depths.
However, in the above example it might be the case that the oil composition changes in the oil zone, and is
now at depths below the contact. In that case additional oil composition values below the contact may be
entered, for example:
XMFV
7550 0.011 0.009 0.38 0.09 0.11 0.12 0.08 0.11 0.09 /
8000 0.011 0.009 0.38 0.09 0.11 0.12 0.08 0.11 0.09 /
/
In this case the oil composition will follow the XMFV table below 7550 ft, and be interpolated between the
gas-oil contact dew point fluid and the specified value at 7550ft in the interval from 7400ft to 7550ft.
3. The third example is a black oil (oil and water ) equilibrium initialisation with a specified initial SWAT
distribution for a model consisting of 11 layers. PCSH is used to supply oil-water capillary pressure shifts
in the mobile oil-water transition zone which stabilise the initial solution (i.e. the initial solution will be
quiescent). The INIT section contains both SWAT and EQUI keywords. The relevant parts of the data for
this example are for the RELA section:
KRWO
--Sw Krw Krow Pcow
0 0 1 2 /
1 1 0 0 /
/
PCSH
In this case, the PCSH keyword is actually not required, but it has been included for clarity. Since SWAT
and EQUI are specified, PCSH is used by default with the MIN argument to stabilise the initial solution.
MORE calculates oil-water capillary pressure shifts to stabilise the initial solution while honouring the
given SWAT distribution. These shifts will be output with mnemonic PCWS using STOR PCWS. The initial
saturations are shown below.
The figure below shows the capillary pressure stabilisation shifts (PCWS) together with the actual capil-
lary pressures used by MORE, which are given by P COW = P cowLookup (SW AT ) + P CW S, where
P cowLookup is taken from the KRWO table.
Fig. 17.8: Capillary pressure shifts (PCWS) used to stabilise the initial solution, and the actual capillary pressures
(PCOW) used by MORE at initialisation. PCWS varies within the oil-water transition zone and is constant outside
this zone.
Introduction
The group of keywords KVSP, KVPX, KVPY, KVPZ and KPTA allow the reservoir permeability and porosity to be
made pressure functions. This allows simple geomechanical effects to be included. The pressure dependence may
be reversible or irreversible and the KVPX, KVPY, KVPZ set allow the effects to be directional. KVSP, KVPX,
KVPY and KVPZ allow the pressure dependence to be specified, whilst KPTA allows those tables to be associated
with grid cells. ROCKNUM may be used as an alias for KPTA.
KVSP, KVPX, KVPY and KVPZ should be in the FLUI section. KVPX, KVPY and KVPZ should only be
included if directional effects are required. If KVPX, KVPY and KVPZ are used, the number of tables of each
type should normally be the same. If the number of tables is NKT, then the KPTA will normally contain integer
values between 1 and NKT associating tables with cells.
If an incomplete set of tables is entered, then the following defaulting rules are followed. The number of KVSP-
type tables is NKT = maximum of nKVSP, nKVPX, nKVPY , nKVPZ, where nKVSP is the number of KVSP
tables entered, for example. Each table from 1 to NKT is checked in sequence.
For KVSP, if the first table is defaulted (no KVSP data entered), the table is set to a null table in which both the
permeability multiplier and the pore volume multiplier are set to unity at all pressures.
For KVSP, if the second or any later table is defaulted, the table is copied from the first table.
For KVPX, KVPY and KVPZ, if any table is defaulted, it is copied from the permeability multiplier part of the
corresponding KVSP table.
The first column (the pressures) for any of these tables should increase monotonically. Values may be missing or
defaulted in the other columns. If so, values are linearly interpolated between supplied values and extrapolated at
constant values outside the range of supplied values.
The permeability multipliers in KVSP, KVPX, KVPY and KVPZ must be non-negative. The porosity multipliers
in KVSP must be positive and non-decreasing.
The IRRE or IRRV argument may be set with KVSP (on any of the KVSP tables if more than one is entered)
and if so an irreversible treatment will be applied to the entire KVSP, KVPX, KVPY, KVPZ set of tables. In the
irreversible case the table is followed when the pressure falls, but should it rise again the pore volumes follow the
usual rock compressibility curve based on the minimum pressure and the permeability multipliers remain constant.
The non-directional table KVSP contains multipliers KM and PVM for the permeability and the pore volume. In
addition one can also supply KMh and PVMh to model hysteresis. Depending on the argument IRRV the effective
multipliers KMOD and PVMOD will be determined from the tables.
The effective permeability multiplier KMOD is applied to normal transmissibilities, NNC (fault) transmissibilities,
and well indices. The normal transmissibility Tij between cell i and cell j is modified to TijP according to the rule:
If present, the directional tables KVPX, KVPY and KVPZ are applied to flows for which a direction can be
unambiguously defined. So the KVPX table would be used for normal flows in the X-direction, fault connections
in the X-direction and local grid connections in the X-direction. KVPY is used for similar connections in the Y-
direction and completing the circle connections in radial runs. KVPZ is used for normal flows in the Z-direction,
connections across pinched out layers and local grid connections. Other connections where the direction is not so
clear (matrix-fracture connections in dual porosity runs, or flows into wells) use the KVSP table values.
Reversible Tables
If none of the KVSP tables has the argument IRRV, all tables are reversible. In this mode the effective multipliers
KMOD and PVMOD are determined by looking up the KM and the PVM columns.
Irreversible Tables
If at least one table has the argument IRRV, all tables are irreversible. In this mode the effective multipliers KMOD
and PVMOD are determined by looking up the KM and the PVM columns as long as P ≤ Pmin . The threshold
Pmin is the minimum pressure in the cell since the start of the run. On re-pressurisation, that is if P > Pmin ,
the effective permeability multiplier KMOD stays constant, taht is KMOD(P ) = KM(Pmin ), while the effective
pore-volume multiplier PVMOD follows the normal compressibility curve
Here Cr denotes the rock compressibility. So with the irreversible option the pore volume follows the tabular
values on depletion but the compressibility curve on re-pressurisation as shown in the figure below:
A reversal pressure may be added to any of the KVSP, KVPX, KVPY, KVPZ set of tables. The syntax is, for
example:
This means that the porosity and permeability properties of a cell will be reversible if the minimum pressure stays
above PREV, but become irreversible if Pmin falls below PREV. So if the data above is used in an example in
which the pressure starts at 500 Bars, falls to 250 Bars, and then re-pressurises to 500 Bars again, the behaviour
of the permeability multiplier defined by KVSP will be as illustrated in the following figure.
So when the pressure recovers, the permeability multiplier does not. If, however, the PREV value is set to 200
Bars, the behaviour becomes as illustrated in the following figure.
Here as the PREV remained below Pmin , the permeability multiplier also recovered its original value. The two
examples used may be accessed from the KVSP help page.
Unlike the IRRV flag, PREV values need to be set for each table. However, if a PREV value is set for a given
KVSP table, it will become the default for the directional KVPX, KVPY and KVPZ directional permeability
multipliers for that table number.
As described above, the normal pressure reversal behaviour is for the pore volume to recover using a compress-
ibility curve and for the relative permeability multiplier to remain constant. However, it may be useful to specify
different behaviours, and to do this extra hysteresis columns may be entered into the KVSP, KVPX, KVPY and
KVPZ tables. An example is:
KVSP IRRV
1 0.8 1.001 0.5 1.001 /
500 0.9 1.002 0.7 1.0015 /
/
The first column is pressure, the next two the usual pressure variations of the permeability multiplier KM and the
pore volume multiplier PVM, and the final two are pressure hysteresis versions of the permeability multiplier and
the pore volume multiplier, KMh and PVMh. In this case, the KM(P) function will be used for pressures at or
below the minimum pressure Pmin , but KMh(P) will be used if the pressure recovers to above Pmin . The hysteresis
curve will be displaced so that it joins up smoothly with the pressure decline curve at P = Pmin . So in the case of
the data above, cycling a cell through the same pressures as in the previous example, the results are as illustrated
in the following figure.
The gradient of the hysteresis curve is twice that of the pressure decline curve, so the permeability multiplier starts
at 0.9, falls to 0.85 at 250 Bars, then rises back to 0.85+0.1=0.95 at 500 Bars.
Plotting the permeability multiplier against pressure, as illustrated in the following figure:
The hysteresis form of irreversibility can also be controlled by the reversal pressure PREV.
For the directional permeability multiplier curves the hysteresis data may be placed in an extra third column:
KVPX
1 0.5 0.4 /
500 0.6 0.6 /
/
Note that even if some tables are entered with hysteresis columns, it is still possible to enter a traditional non-
hysteresis table and get the previous behaviour.
The hysteresis treatment may be shown diagrammatically as illustrated in the following figure:
so that
KMOD(Pmin ) = KM(Pmin )
and the recovery curve joins the decline curve at the minimum pressure.
The multi-segment well model treats the well as a number of branches. Each branch has a single parent branch
and the original branch is termed the stem. A branch is modelled as a series of coupled segments. Each segment
may have a number of completions, which connect the well to the surrounding reservoir.
A simple well is to be modelled as a series of segments, numbered from the heel of the well to the toe, as illustrated
in the following figure.
In the case of a multiple branch well, the segments are numbered along each branch, starting with the stem, as
illustrated in the following figure.
A segment is a section of well bore along which constant properties are assumed, as illustrated in the following
figure
where
• A is cross sectional area of pipe
• m is the measured distance along pipe (positive from toe to heel) which need not be straight
Within the segment the saturation and fluid properties are assumed constant. However, the pressure and fluid
velocity are defined at the outlet end of the segment (nearest the heel). The pressure and velocity values for the
inlet end are taken from the next segment, so that the pressure varies linearly along the segment, as illustrated in
the following figure.
The pressure at the toe is a variable in the model, but the velocity at the toe is assumed to be zero. The linear
variation of pressure over the segment does not imply a constant velocity, as it would in a sealed pipe: flow to and
from the reservoir will allow the velocity to change as more fluid is added to the flux along the wellbore. This
is particularly true for the toe segment, as the velocity is zero at the influx end and generally is non zero at the
outflow end:
In this case flow into the well has resulted in a positive flow out of the toe segment. Velocities are measured as
positive up the well towards the heel; this follows the MORE convention of treating production as positive.
The segment properties are assumed constant in the segment, and so are evaluated at
To describe a branch we require the pressure, saturation and velocity values for each segment, plus the toe pressure.
A single velocity will be assumed for all three possible phases.
From the description above, a single branch well with nseg segments and nc components will have nseg × (nc +
1) + 1 solution variables. These comprise the pressure, component mass density variables and a velocity in each
of the first segments, plus the toe pressure in the final segment.
The equations are mass balance (for each component), a volume balance and a pressure balance for each segment.
One other equation is clearly required to complete the set. This is the constraint equation, which requires that
the well satisfy its current target condition. This may a specified flow rate (at reservoir or surface conditions), a
specified bottom hole pressure at a specified depth or a specified top hole pressure. In any event the constraint
equation takes the form
If we define the collected set of well solution variables as Xw and the collected set of equations are expressed as
a set of residuals R, then solving the well model becomes the problem of solving the non-linear equation set
R(Xw ) = 0.0
However, the well is not just a function of the solution variables which define the solution in the wellbore. The
solution which describes the state of the reservoir, Xr , also influences the well equations through the production
and injection terms. Thus a better description of the well equations to be solved is
Rw(Xw , Xr ) = 0.0
This is given by summing over the flows of connections between this segment and the reservoir. A given connec-
tion may be either injecting or producing. Rather different expressions are used in these two cases:
• Producing Connections
• Injecting Connections
Producing Connections
In this case the flow of a phase is given by the product of the drawdown into the well the completion connection
factor ccfk and the mobility of that phase in the reservoir.
Injecting Connections
In this case the flow of a phase is given by the product of the drawdown into the well (negative in the case of
injection), the completion connection factor, the voidage in the reservoir and the local density of the phase in the
wellbore. The assumption is that although what is injected is clearly dependent on what is in the wellbore, the rate
at which it is injected depends upon the ease with which the existing fluid in the reservoir can make room.
In both cases the drawdown is Pres -Pseg , where Pres is the pressure in the reservoir cell and Pseg the pressure
in the well segment corrected to the cell centre depth. In some cases the depth of the reservoir cell may not be
contained within the segment depth interval. In these cases the drawdown is corrected by an additional hydrostatic
term which depends on the fluid density in the reservoir
where
• ρ is the fluid mass density (in mass/unit vol), given by
ρ = So ρo + Sw ρw + Sg ρg
• dcor is the correction depth interval, given by
dcor = dc − dlocal
This corrects the cell pressure to the completion depth in the cell, as illustrated in the following figure.
This term includes the effect of fluids moving along the wellbore into and out of the segment. The rate at which
a fluid moves into the segment is the product of the local density and the volume flux. The volume flux is the
product of the cross sectional area of the pipe segment and the flow velocity.
For flow between segments the fluid densities and saturations are defined in the segments, whilst the velocity and
the flow are defined at the end of the segments. The saturation and density terms are thus upstreamed. If the flow
is from segment 2 to segment 1, the properties of segment 2 will be used; if the flow is from segment 1 to segment
2, the properties of segment 1 will be used. This produces the most stable numerical scheme and avoids problems
which can occur if fluids flow from segments in which they have no saturation.
The momentum balance equation equates the pressure drop over a segment to a sum over the contributing terms
supporting the pressure drop.
Consider the pressure drop over a segment, as illustrated in the following figure:
The pressure difference is P0 -P1 which is equal to the sum of the pressure resistances:
P0 − P1 = Tgrav + Tf rict
In residual terms
Gravity Term
The gravity term is positive for a segment with its inlet below its outlet:
Tgrav = Cg · ρ · (d0 − d1 )
where
• Cg is a gravity constant, set to 1/144=6.94496E-3 (field), 9.806650E-5 (metric).
• ρ is the fluid mass density (in mass/unit vol), given by ρ=So.ρo+Sw.ρw+Sg.ρg
• d0 and d1 are the end of segment depths:
d0 − d1 = ∆md · sin θ
where θ is the angle of inclination from the horizontal.
Friction Term
The friction term is positive from the inflow to the outflow. The pressure holdup due to friction is
Tf ric = Cf 2p · 2 · F · (L/d) · ρ · v 2
where
• F is the Fanning friction factor
• ρ is the mass density
• v is the flow velocity
Cf2p is a unit conversion factor from Pounds/sq ft to psia or Pascals to Bars, given by Cf2p = 1.0/(32.2*144.0)
(Field) and 0.00001 (Metric).
The Fanning friction factor is a function of the Reynolds number Re given by
Re = CRey · ρ · v · d/µ
With a = 2.0.roughness/diameter, and constants z1 =1/3.7, z2 = 5.02, z3 =13. This equation is typically only
valid in the range of turbulent Reynolds numbers with a < 10−2 . A plot of FT urb vs a and Re is shown in the
following figure for 10−6 < a < 10−2 and 2000 < Re < 50000
1 Al-Awami, A. and Ponting, D., Simulation of Gas Injection Processes Using Compositional and Multiple-Gas Black Oil Methods, SPE
For numerical purposes the friction factor must be a continuous function of the Reynolds number, so MORE uses
an interpolated form:
• For Reynolds numbers less than 500, use the laminar expression
F = FLam
• For Reynolds numbers above than 2000 use the turbulent expression:
F = FT urb
• For Reynolds numbers between 500 and 2000 use an interpolation between laminar and turbulent flow:
F = wLam FLam + wT urb FT urb
with
If the well has some target requirement Treq , then the well constraint residual is
Treq is usually some surface or reservoir flow total for the well, but can also be a bottom hole or top hole pressure
constraint. We will describe rate and pressure constraints separately.
For rate constraints, Treq will be a surface rate (oil, water, gas or liquid). We therefore need and expression for
Tact ; that is, the actual surface rate for the current state of the well (Xw , Xr ).
Rate constraints are imposed at the outlet of the well – the production actually obtained, rather than that removed
from the reservoir. These two quantities may differ slightly, due to wellbore storage effects. If the heel segment
has an area of A, then actual production rates are
Tact,oil = C · A · v · bo · So
where C is a unit convention dependent constant. For field units and liquid target rates, for example, this is
3600*24* 0.1781075, converting from ft/sec to ft/day and from cu.ft to stb.
For a non-stem branch, the constraint is that the pressure in the first segment of the branch matches the pressure
at the inflow end of the parent (which is the outflow pressure for the next segment on the parent branch). We
therefore have a condition on the two pressures at the point where the segments join
Rc = POutlet − PP arent
where PP arent is obtained by interpolation between the pressures at either end of the segment, as illustrated in the
following figure.
The equations controlling the wellbore solution Xw for a fixed reservoir solution Xr are:
Rw (Xw ; Xr ) = 0
cost of solution as well as yielding a very robust method; methods like bisection can be can be used to accelerate
systems for which a simple Newton iteration will not converge.
For injectors, a similar single-variable method is used, but starting from the heel and working to the toe.
The flows into the well act as flows out of the grid blocks in the reservoir flow equations, which take the residual
form Rc = 0, with c = 1, 2, . . . , nc . In order to solve the reservoir flow equations, we need the derivatives of these
flows with respect to the reservoir solution variables: dQo /dXr , dQw /dXr , and dQg /dXr . These derivatives
have two parts:
• Direct derivatives, reflecting the dependence of the drawdown and inflow mobilities upon the reservoir
solution.
• Indirect derivatives, reflecting the dependence of the well production and injection upon the well model
solution Xw , which is coupled to the reservoir solution through the well model equations (solved at each
iteration of the reservoir equations)
Rw (Xw , Xr ) = 0.0
The required derivatives may be obtained using the implicit function theorem
dQp /dXr = ∂Qp /∂Xr − (∂Qp /∂Xw ) · (∂Rw /∂Xw )−1 · (∂Rw /∂Xr )
The multi-segmented well model is requested using the keyword WSEG, followed by the name of the well and
the number of segments to be used in each branch. The total number of segments in a well should not exceed 50;
although more can be run, the time to solve the well will rise if more are used. An example of WSEG is:
WSEG may be used with wells which are not completed along tracks. If no track is present MORE will attempt to
set up the required well segments by estimating the distance between completions. However, it is generally better
to model along a track, and this is necessary in the case of branched wells.
When using the multi-segment well model for a well completed along a track, a third argument to WSEG may
specify the measured depth at which flow modelling is to start. If defaulted, it will start at the first completion.
To add a branch to a track, the BRAN keyword can be used to specify that a given track has a parent, and to specify
the measured depth on the parent at which the branch kicks off. The child trajectory starts at a measured depth
of zero; that is, the mD=0 point on the child should match the location of the kick off point on the parent. An
example of BRAN is:
The network model allows the effect of pressure loses in the transportation of produced fluids upon production
rates to be modelled. The pressure losses occur in pipes, which connect wells to groups and groups to groups. So
the first requirement is to define and characterise the pipes.
A pipe is defined by a PIPE keyword or a PIPEC or PIPET event. This gives the pipe a name and allows the way
in which pressure drops along the pipes are related to flow rates to be set up.
There are two ways to characterise the pipe:
1. Using Flow Coefficients (PIPEC event) - Flow coefficients relate the pressure drop to the phase flows along
the pipe. So if these coefficients are Ao , Ag and Aw , and the oil, gas and water flows are Qo , Qg and Qw ,
then the pressure drop will be
∆P = Ao .Qo + Ag .Qg + Aw .Qg
2. Using a table (PIPET event) - In this case a named PTAB, TUBI or VFPPROD table is used to define the
pressure drop as a function of the flows. The table is identified by name. In the case of a table entered by
VFPPROD, the table is defined by a table index, the first argument, and this will be loaded into MORE with
the name tubeProdN, where N is the table index.
PTAB is a table which defines the pressure drop across the pipe as a function of the pipe outflow pressure and
the fluid ratios (like GOR). TUBI and VFPPROD are really structured to define well lift curves, and express the
BHP (well bottom hole pressure) as a function of the THP (top hole pressure) and phase flows. To use TUBI or
VFPPROD for a pipeline we interpret Pbhp as the inflow pressure and Pthp as the outflow pressure.
The next stage is to attach pipes to wells or groups. For wells this is done with the WPIP keyword or the WPIP
event. For groups this is done with the GPIP keyword or the GPIP event. Note that a given PIPE may be used
more than once – the PIPE defines a pressure loss condition – the actual calculation is associated with well or the
group.
Note that the pipe always goes from the nominated well or group to the parent group for that well or group; that
is, it is a pipe from the well or group (see following diagram):
The pipeline pressure losses can now be obtained as a function of the production from the well or group.
Suppose a well is simply attached to a pipe – what is the effect on the well’s production? In this case there is
no condition on the outflow of the pipe, so it is allowed to be at 1atm. The pressure drop along the pipe is then
calculated from this outflow pressure and gives us an inflow pressure. As long as this inflow pressure is below the
top hole pressure of the well there will be no effect on production – the well has sufficient pressure to drive the
pipeline through a choke (see the following figure):
If the inflow pressure were to rise above the top hole pressure, the top hole pressure would be set to the pipe inflow
pressure and limit the production of the well.
In practise the outflow pressure of the pipeline is likely to be greater than 1atm, particularly for gas pipelines, as
the expansion of gas at low pressure. It is possible to reset the outflow pressure by setting a target pressure for the
group containing a well.
This is done in the first network example (networkExample1.dat). The field has four gas wells, each set to a
target rate of 8000 ksm3/day. Two of the wells, P-1 and P-3, are attached to the PIPE named PPPP. PPPP is
characterised by a TUBI table generated using the Lift curve generation option in Tempest for a 10Km long
horizontal well trajectory. The parent group for all these wells is ALL, so the target pressure for ALL is set to 100
bars.
The events used to set these conditions are:
EFORM DAYS
ETAB
PPPP 0 PIPET lift1 /
P-1 0 WPIP PPPP /
P-3 0 WPIP PPPP /
ALL 0 GPMI 100 /
ENDE
After 10 years production the status of the pipes can be seen in the well pipe summary in the .out file:
Well Pipe Summary:
Well Pipe Oil Gas Water Top hole Inflow Outflow Pressure
name name rate rate rate pressure pressure pressure drop
sm3/d ksm3/d sm3/d barsa barsa barsa barsa
---- ---- ----- ------ ----- -------- -------- -------- --------
P-1 PPPP 0.0 5982.6 0.035 142.656 142.656 100.000 42.656
P-3 PPPP 0.0 8000.0 0.048 138.501 130.236 100.000 30.236
---- ---- ----- ------ ----- -------- -------- -------- --------
The output flow pressure for the pipe from well P-1 and the pipe from well P-3 is 100 bar as required. The inflow
pressure for the pipe from P-1 has fallen below the thp for the well when running on its rate target, so is now
controlling the well, the well thp pressure now being equal to the pipe inflow pressure. The inflow pressure for the
pipe from P-3 is still about 8 bars below the thp for the well on its rate target, so P-3 is not yet on a pipeline-set
thp control.
It is possible to attach a pipeline to a group as well as a well. The production from all the wells flowing into the
group then flows through the pipe. As in the case of a pipeline attached to a well, it is possible to set the outflow
pressure of the pipe by setting the GPMIN value for the parent group.
In MORE groups do not, by default, form a hierarchy. All groups set up with the GROUp keyword have ALL as
their parent group. To specify a parent other than ALL the PAREnt or GRUPTREE keywords may be used.
When a pipeflow calculation is performed for a group the inflow pressure cannot set the thp for a well directly.
Instead, it sets the node pressure for the group. This will then act as the outflow pressure for pipes attached to this
group. The pipeflow calculation proceeds down the group tree from top to bottom, finally imposing thp conditions
on the production wells which may limit the production of those wells or force them to shut.
A two level group network is illustrated in the second example (networkExample2.dat). In this case we have two
groups, G-1 and G-2. G-2 is the parent group of G-1:
All four wells P-1, P-2, P-3 and P-4 are members of the group G-1:
as illustrated below:
The events to attach the pipe PPPP to the groups G-1 and G-2 and to set the outflow pressure for the pipe from
group G-2 is set to 10 bar are:
ETAB
PPPP 0 PIPET lift1 /
G-1 0 GPIP PPPP /
G-2 0 GPIP PPPP /
P-1 0 WPIP PPPP /
ALL 0 GPMI 10 /
ENDE
The sequence of pressures resulting from this configuration can be seen in the group section of the .out file:
G-2 has an outflow pressure of 10 bar, and an inflow pressure of 55.7 bar, so that here is a 45.7 bar pressure loss
in the pipe from G-2. The outflow pressure for the pipe from G-1 is equal to the inflow pressure for the pipe from
G-2 – i.e. 55.7 bar. There is a further 26.4 bar pressure loss in the pipe from G-1 so that the pressure at the inflow
of the pipe from G-1 is 82.1 bar. Finally, the pipe from the well P-1 sees the node pressure of G-1 as its outflow
pressure, and there is a further pressure loss of 1.39 bar along the pipe o the well. The final inflow pressure at the
well is 83.5 bars, and the well still has plenty of thp pressure available to operate at its target rate of 1000 ksm3/d.
Well Pipe Oil Gas Water Top hole Inflow Outflow Pressure
name name rate rate rate pressure pressure pressure drop
sm3/d ksm3/d sm3/d barsa barsa barsa barsa
---- ---- ----- ------ ----- -------- -------- -------- ---------
P-1 PPPP 0.0 1000.0 0.0006 243.267 83.532 82.140 1.391
---- ---- ----- ------ ----- -------- -------- -------- ---------
The basic idea is that it the operating thp of the well is above the pipeline entry pressure the pipeline will not
constrain the well. However if the operating thp is below the entry pressure of the well, then the rate will be
constrained (unless a pump is added, as described below).
Note in the above examples how the pressure drops across the pipelines increase with flow rate and are larger at
lower pressures. The gas has a larger volume at low pressure and so the flow velocity is higher, resulting in a
larger frictional pressure loss.
17.20 Operations
Introduction
An operation is a set of MORE input keywords or events. Operations start with an OPER keyword and end with
an ENDO keyword. An operation may be defined anywhere in the RECU section of a MORE data file – operation
definitions are read when the recurrent section is scanned prior to the actual simulation.
The MORE input data within the operation can contain substitutable names (variables), these start with the &
character. When the line of the operation containing one of these variables is executed it is substituted for its
current value. These variables may be operation arguments, FOR loop values, current simulator values or values
specific to an instance of an operation (local) or specific to an operation name (static).
As well as the lines of data within the operation which are sent to MORE, there may also be control lines such as:
• FOR and ENDF - Set up a for loop within the operation
• IF and ENDI - Set up a conditionally executed block in the operation
• SET - Set the value of a local or static variable.
The FOR and IF constructs may be nested. There are several variants of FOR which correspond to loops over
wells, groups, completions, measured depth intervals etc.
The following sections introduce operations in a step-by-step manner.
Operations allow a number of MORE keywords or events to be combined into a group which can be used with
single INVOke command. An example is an operation to change the rates of two wells – this sets the well liquid
targets at 1 year.
OperationExample01.dat:
EFOR 'days'
OPERATION changeWellRate
WELL P-1 PROD liq QLIM=150 PMIN=100
WELL P-2 PROD liq QLIM=150 PMIN=100
ENDO
READ 1 YEARS
INVO changeWellRate
READ 5 YEARS
Operation names and keywords are not case sensitive, and operation names, like well or group names, are not
truncated to four characters.
An operation can contain any valid MORE dynamic section input, in event or keyword form, and the operation
can be invoked as a keyword or as an event.
The keywords and events generated when an operation executes may include the invocation of further operations.
Operation Arguments
The above case is not very helpful, as it only does one thing. Arguments may be used to make operations more
flexible.
An operation may have a number of arguments, each of which may be given a default value. No special characters
are required for an operation name or for the arguments, so an operation definition might look like:
The argument values may then be set when the operation is invoked:
The following example produces exactly the same result as the previous one, but uses a simpler operation with an
argument. In this case the operation is both defined and invoked using events.
OperationExample02.dat:
ETAB
ALL
01/Jan/2001 INVO changeWellRate well=P-1
01/Jan/2001 INVO changeWellRate well=P-2
ENDE
READ 1 YEARS
READ 5 YEARS
Events in operations will occur at the time at which the operation is executed, and any date data supplied will be
ignored, so it is simplest to just set a time of zero for ETAB entries within an operation. It should be noted that
only one operation invocation may occur on an event line, and that other events may not occur on the same line.
The date format for events in operations is ‘0’ MDL MDU DIAM MULT SKIN. An alternative format may be
specified (although the date will still be ignored) by using EFOR within the operation.
By default an operation is executed as soon as it is invoked, and executes immediately. However, it is possible
to request that an operation be repeatedly executed. If several operations exist, or the same operation is invoked
with different arguments, then there may be a number of operation instances present in a MORE run. This type of
persistent operation is useful for repeatedly testing against an operator execution condition within an IF statement
in the operation. So in a case with two operations XXXX and YYYY, which are each invoked twice, we will
generally end up with four operation instances (see the following figure):
The pre-defined arguments MEXE, DAY, MONTH and YEAR set the maximum number of times an operator
invocation can execute and the interval between execution times in days, months or years.
If MEXE is set without a value, there is no limit to the number of executions.
The number of executions of a given operator instance is stored in the automatically defined variable &NEXE and
is preserved across restarts.
The 20th debug flag may be used to see how the lines of data in an operation are processed – that is, use DEBUG
19*0 1.
If may be useful to apply an operation to a number of wells or completions, so there are several control keywords
which can be used within an operation. These lines are never fed into the MORE reader; rather, they are used to
control the generation of data input lines.
The main operation control keywords are
• IF
• ENDIF
• ENDF
• and a set of FOR keywords.
The FOR keywords are
• FOR
• FORG
• FORW
• FORB
• FORC
• FORI
allowing operations over groups, wells, completions and intervals.
IF Statements
IF statements may be combined with multiply executed operations to allow operation texts to be executed only
when certain conditions are met.
The following example shows how IF statements may be used. The operation RespecifySeparator will be executed
every 50 days for an unlimited number of times. The separator conditions will to be redefined if the field pressure
falls below 2000 psi and the run will be stopped when the field pressure falls below 1000 psi.
OperationExample03.dat:
OPERATION RespecifySeparator
local sepCount
if( &sepCount<1 )
if( &fpavh<2000 )
if( &fpavh<1000 )
STOP
endi
ENDO
The operation will be executed every 50 days for an unlimited number of times. The local variable sepCount is
used so that the separator redefinition is performed just once. Functions like fpavh and local and static variables
are discussed below.
The results for operationExample03 show a step in the gas-oil ratio which occurs when the separator redefinition
occurs as the field pressure falls through 2000 psi (see the following figure).
IF statements may be combined with ELSE statements to allow operation texts to be executed when certain con-
ditions are met, and otherwise.
The example below shows how IF and ELSE statements may be used. The operation XXX will be executed every
10 days for an unlimited number of times. The group PILOT, containing two injection wells I-1 and I-2, is set
to a gas injection target rate of 4000 Mscf/day if the Field Gas-Oil Ratio is less than 45 Mscf/stb and 0 Mscf/d
otherwise.
OperationExample03a.dat:
GROUP PILOT I-1 I-2
OPERATION XXX
if( &fgor<45 )
ETAB
PILOT
0 INJE
0 GGIT 4000 STREAM CO2
ENDE
else
ETAB
PILOT
0 INJE
0 GGIT 0 STREAM CO2
ENDE
endi
ENDO
The results for operationExample03a show that the ggir(PILOT) is maintained at 4000 Mscf/day to increase fgor
to 45 Mscf/stb. ggir(PILOT) then (using control theory) varies to maintain fgor at 45 Mscf/stb:
FOR Statements
In reservoirs with a large number of wells it is common to perform the same operation on a number of the wells,
and this can result in a lot of input. A FOR statement in an operation will set up a loop variable which will be
successively given each of the values listed within curly brackets, {}.
FOR loops may be nested, so that it is be possible to loop over wells and then over intervals within that well (an
interval is a range of measured depth).
The various types of FOR loops differ in their syntax and the type of search used to fill in template values. In
addition the FORW loop allows wells to be set up by group.
This is like FOR, but well templates and groups are available. If * is used within a list then * will match any
character when selecting wells – so {*} will yield a loop over all the wells. In the same way the list item GROUP
may be used to include all the wells in a group – so {GROUP(ALL)} will also yield a loop over all the wells.
A simple example of the use of FORW is OperationExample04.dat:
EFOR 'dd/mmm/yyyy' MDL MDU RAD SKIN MULT
ETAB
ALL
01/jan/2002 INVO XXX RATE=175
ENDE
READ 5 YEARS
This case has 6 wells with names W-1,W-2,PX,PY,A1 and B1, with a group G1 containing the wells W-1 and W-2.
When the operation is invoked, the wells are changed from production to injection and the field injects at 1050
sm3 /day. Without the RATE argument on the INVO event the default of 100 sm3 /day would be used to get a field
injection rate of 600 sm3 /day.
This is like FORW, in that group templates are available (but not the GROUP function). So {A*,B*} will yield a
loop over all the groups starting with A or B.
This yields a loop over all the completions in a well. In this case the loop values will be an integer. The default
first value is 1, and the default last value is the number of completions in the well (not active completions). The
syntax is:
Where cml is the lower completion index, and cmu the upper completion index.
In this case &COMP will take values, 1,2,3. . . up to the number of completions. In the following example the
completion with the highest water cut has its completion connection multiplier set to 0. This operation is carried
out twice, in 2005 and 2006.
OperationExample05.dat:
OPERATION XXX
forw well1 {W-1,W-2}
forc comp1 &well1 {:} MAX(WCT)
ETAB
&well1
0 COMP &COMP1 1* 0
ENDE
endf
endf
ENDO
ETAB
ALL
01/jan/2005 INVO XXX MEXEC=2 YEAR=1
ENDE
The use of MAX to select one pass only from a FORC loop is discussed below.
This yields a loop over all the branches in a well. As for FORC, the loop values will be integers. The default first
value is 1, and the default last value is the number of brances in the well. The syntax is:
where brl is the lower branch index and bru is the upper branch index.
The following example closes the completions on the branch of a well with the highest water cut.
OperationExample06.dat:
read 5 years
This yields a loop over all the completions in a well. In this case the loop values will be a pair of real numbers, the
lower and upper measured depths of a completion interval. The default is 10 intervals from the lower completion
measured depth to the upper completion measured depth. The syntax is:
FORI IVL IVU branchname wellname {ivl:ivu:iv}
Where ivl is the lower bound on the intervals, ivu is the upper bound, and iv is the length of each interval in the
loop.
To loop over the default completion intervals of branch 2 of a well would require the following, as demonstrated
in OperationExample07.dat:
Finally the basic FOR loop is a simple list of items, for example:
There will be four passes through the FOR..ENDF loop and &VAR will be set to NORTH for the first pass,
SOUTH for the second, EAST for the third and WEST for the last.
FOR is extremely flexible: in this extreme case the FOR values are whole keywords with associated argument
strings.
OPERATION XXX
for var{"WELL P-3 PROD liq Q=20 P=20","WELL P-4 PROD liq Q=20 P=10"}
&var
endf
ENDO
It is very common to wish to select out the pass of a FOR loop which has the maximum or minimum value of some
quantity – for example, the well with the largest water cut. This may be done using the MAX or MIN options
with FORG, FORW, FORC and FORI. The MAX or MIN command follows the loop specifier in curly brackets.
When MAX or MIN is present, only one pass will be made through the loop, the loop variable being set to the
value corresponding to the required maximum or minimum value. The quantities that may be used for each FOR
loop type are shown in the table at the end of this document.
In example 5 above, there will be a single pass through the loop with &well1 set equal to the name of the well in
the list specified which has the largest oil production rate.
Variables
Two types of variables may be defined. The first is a local variable which is owned by the operation instance.
The second is a static variable which is shared across all the instances of an operation – it is owned by the
operation definition. A local variable is set using the LOCAL command, and a static variable set using the STATIC
command:
static staticVariable
local localVariable
Variables may be set using the SET command and simple expressions as shown in the following table where value
evaluates to a integer or a real value.
Expression Meaning
set &variable=value variable = value
set &variable+=value variable = variable + value
set &variable-=value variable = variable - value
set &variable*=value variable = variable * value
set &variable/=value variable = variable / value
set &variable++ variable + 1
&variable may then be used in both normal and operation control lines within the operation.
A local variable was used in example 3 above. The following OperationExample08.dat is an example of the use
of a static variable:
The operation turnWell is invoked four times. However, as soon as one of these four operations is executed, the
value of the static variable count will become 1 for all the instances, and so turnWell will only be executed once
for one well.
Operations Limitations
ETAB
ALL
100 INVO ACTION MONTH=1 MEXE
3650 END
P-1
0 PROD
0 PERF 1 1 0.15 0 1 ZONE
0 PERF 2 5 0.15 0 1 ZONE
0 SQUE 2 5 0.15 0 1 ZONE
0 OPT 1000
0 BHPT 150
ENDE
OPER ACTION
static count
local YY
if(&wopr(P-1)<600)
if(&count<3)
set &YY=&count
set &YY+=2
ETAB
P-1
0 PERF &YY &YY 0.15 0 1 ZONE
ENDE
set &count++
endi
endi
ENDO
Fig. 17.9: The operation invokes opening of perforations for the first three times the well oil production rate goes
below 600 sm3/day.
• MORE does not allow the dynamic creation of well fractures defined using the VFRA or HFRA events. To
overcome this limitation, the user can pre-define the fractures and shut them before using the REFRA event
in the operation. A simple example to demonstrate the workaround is shown below:
ETAB
ALL
100 INVO ACTION MONTH=6 MEXE
3650 END
P-1
0 PROD
0 PERF 1 1 0.15 0 1 ZONE
0 VFRA ID VV LENGTH 1000 LAYER 1 2 COND 100
0 VFRA ID VV OFF
0 OPT 1000
0 BHPT 150
ENDE
OPER XX
static count
if(&wopr(P-1)<600)
if(&count<1)
ETAB
P-1
0 REFRA ID VV
ENDE
set &count++
endi
endi
ENDO
Fig. 17.10: The operation invokes the refracture of fracture VV as the well oil production rate goes below 600
sm3/day.
• Restart runs, whose base runs have operations that invoke SRV, SRVW or WFRA, may not result in consistent
results with the base run.
Functions
There are a wide range of functions which can be used within an operation. When the operation is executed, the
function value is looked up and substituted into the operation in place of the function name. This value may then
either be used in the evaluation of an IF statement, or to construct the line to be sent to the MORE reader.
• Pressures: psia or barsa
• Oil, water and liquid surface rates: stb/day or sm3 /day
Appendix
Simulator Functions
Note: start-date is different from initial-date in a restart run. Initial time is zero
&SimTime Current simulation time (in days), i.e. time from start-time
Field Functions
Region Functions
Region functions require an argument, for example, &rpavh(flip region name) or &rpavh(fipnum index).
Group Quantities
Well Quantities
Completion Quantities
Completion quantities require two arguments, for example, &copr(completion index, well name).
Branch Quantities
Branch quantities require two arguments, for example, &bopr(branch index, well name).
Interval Quantities
Interval quantities require four arguments, for example, &ibso(mdl,mdu, branch, well name,) where mdl and mdu
define a measured depth interval.
The table below shows which parameters may be used in MIN/MAX statements for each of the FOR loop types.
MORE can be run in parallel on multi-processor machines which support the MPI (Message Passing Interface
Protocol). This is available on a wide range of computers which are capable of running more than one task in
parallel. A MPI-parallel job is usually executed using the mpiexec command of the form:
In this case, four instances of MORE would be started, and these instances can communicate via MPI to send
and receive commands. Internally, MORE wrappers all MPI calls within a parallel support class, so that using
an alternative protocol would be possible, but MPI seems to be the most usable and widespread system currently
available.
Once the simulation has started, MORE splits the problem into domains, usually by dividing the reservoir into
groups of planes in the longest of the x and y directions. The division will be chosen so that roughly equal numbers
of active cells are assigned to each processor. A description of the division may be found in the .out file from the
MORE run, and looks like the following:
Alternatively, the parallel domains may be viewed through Tempest using PRINT PPCE MAP in the GRID
section, which will produce a display such as illustrated in the following figure.
Two example datasets using PRINT PPCE MAP in the GRID section can be found in pt1.dat and pt2.dat.
Many aspects of the simulation such as property lookup and equation of state flash calculations proceed indepen-
dently, each processor working on the cells assigned to that processor. However, in the flow calculations and the
linear solver, special techniques are needed to solve the total problem - further details may be found in the Solution
of the Linear System of Equations section.
Input and output operations are carried out by the first processor, the other processors going into a temporary
server mode and simply responding to requests for data from processor 1. Input data is treated in the same way
– it is read into a look-ahead buffer by process 1, and each full buffer is passed to the other processors. Each
processor then reads from the look-ahead buffer.
In MORE, two different domain partitionings are used. Initially the grid is divided equally between the processors.
This splitting is used to perform the grid calculations of pore volume and transmissibility. Once the pore volumes
are known, the problem is re-split to attempt to keep the number of active cells on each processor equal. This is
illustrated in the following figure; the small number of active cells on the right hand side of the reservoir means
that the domains on that side need to span a larger number of planes of cells.
Introduction
PEBI (perpendicular-bisector) gridding is one approach that can be used to offer unstructured computational grids
and that has some attractive characteristics when attempting to model a reservoir with high resolution grid cells
targeted around selected, localised features.
In Tempest MORE, 2.5D PEBI gridding has been selected. That is, areal refinement is achieved through the
construction of PEBI grid cells that may have any number of areal neighbours while vertical refinement is achieved
by simply increasing the number of grid layers. The PEBI grids are constructed as a new form of local grid and
embedded within the (non-PEBI) global grid.
A 2D PEBI grid is constructed from a set of cell centres by constructing a line from each cell centre to the centres
of its nearest neighbours. A perpendicular bisector is then constructed on each of these lines and truncated where
they intersect another perpendicular bisector.
The following figure illustrates this: the dashed blue line connects cell i to its neighbour cell j; the dashed red
line is the perpendicular bisector; the solid black lines are the cell faces constructed from the intersection of the
perpendicular bisectors after the whole grid has been processed. Note that not all cell centres are shown.
Fig. 17.11: Construction of the interface between two PEBI cell centres
MORE has adopted a 2.5D PEBI grid in which the 3D domain is filled with vertically stacked layers of 2D PEBI
grids. A typical cell with 6 lateral (I,J) neighbours is illustrated below. A PEBI cell can have any number of lateral
neighbours from 3 up but 6 is common.
Each of these cells is split into a number of slices with each slice being a triangular prism formed between a lateral
cell face and the vertical centreline of the cell (see the following figure):
A limitation of the MORE implementation is that all of the pillars in a PEBI grid must be vertical although a PEBI
cell need not be horizontal. For example, the (X,Y) co-ordinates of Top1 and Bot1 must be the same and similarly
for TopC and BotC etc. However, the Z co-ordinates of TopC, Top1 etc. may all be different.
The following figure illustrates a real world example of two neighbouring stacks of PEBI cells with their con-
stituent slices displayed.
In a simulation the solution variables are stored for each PEBI cell and so their values are the same for each slice.
The slices are used only to simplify some of the necessary computations such as transmissibility calculations.
Visualisation
Tempest VIEW does not currently offer support for viewing PEBI grids so MORE outputs a corner point grid that
represents the geometry of the PEBI grid. To do this each PEBI cell is split into its constituent triangular prism
slices and each slice is written out as a degenerate corner point cell. This means that there are currently three
issues in the Tempest VIEW 3D display:
• If cell outlines are enabled, then the radial spokes delineating the PEBI slices are also visible.
• The above procedure combined with the PEBI to I,J mapping means that the I,J indices reported by Tempest
VIEW are very hard to interpret.
• It is not currently possible to view PEBI cell transmissibilities.
The radial spokes can be distracting when trying to understand the structure of the grid but a simple trick can be
very useful. By selecting Grid J Index on the Tempest 3D view, and disabling cell outlines, it is possible to get
a more understandable view of the grid structure; the PEBI to I,J mapping will very often result in neighbouring
Fig. 17.13: 2.5D PEBI cell split into its constituent slices
Fig. 17.14: Neighbouring stacks of PEBI cells, each divided into slices
Fig. 17.15: PEBI spokes displayed when cell outlines are enabled
cells having different J indices, and so neighbouring cells will get a different colour, allowing the cell boundaries
to be seen without having to explicitly render their outlines.
Fig. 17.16: PEBI grid coloured by Grid J Index with cell outlines disabled
In order to generate a PEBI local grid, it is necessary to specify the resolution of the initial uniform grid, the
resolution of refined features and the locations of features to be gridded:
TRXY
152.4 152.4
1219.2 1219.2
/
Each PEBI grid is constructed within a box of global cells (for the example above the box extends over I from
1 to 10, J from 1 to 10 and K from 1 to 3). Unlike regular local grids created with the LGRD keyword the I&J
dimensions are not specified and are instead calculated internally. However, the K dimension is still required and,
just as for LGRD, specifies the number of grid layers in the PEBI local grid (6 layers in the example above).
When the PEBI grid is first constructed a regular quadrilateral grid is setup with a resolution controlled by the first
argument, i.e. dx=dy=BACKG. Next, new cells are created to enhance resolution around features of interest using
the TRXY and FLXY keywords which specify (X,Y) co-ordinates along the paths of interesting linear features.
TRXY adds points along well trajectory-type features by creating cells with a spacing of REFIN along the path.
FLXY adds points along fault type trajectories by creating cell pairs along the path with a spacing of BACKG.
TRXY aims to place the cell centres on the well trajectory whereas FLXY aims to place the boundary between
each pair of created cells along the fault.
When a fault-type feature is added, a polygon is constructed that completely encloses it within which no additional
cell centres will be added. This is done in order to preserve cell boundaries running along the fault line.
If the REFIN argument is defaulted it is set to the value of BACKG. If the BACKG argument is defaulted it is set
to the average of the (X,Y) cell dimensions of the global grid covered by the PEBI grid.
Once the initial grid and the refinement points have been added MORE automatically smoothes the grid structure
by both moving cell centres and adding new infill cells. Note, however, that none of the points created to define a
feature of interest are allowed to move.
An example of this using a refined well trajectory is shown below. Well I1 was defined as follows:
TTAB
I1
152.4 152.4 2537.46 0.0
1219.2 1219.2 2567.94 1509.0
ENDT
/
The PEBI grid was defined using the example at the beginning of this section. As can be seen, the trajectory is
modelled at higher resolution than the background grid but with a gentle relaxation to the background resolution
provided by the infill cells.
In the above example the PEBI grid was defined to cover the entire global grid but it is possible, and usually
preferable, to specify multiple PEBI grids.
Transmissibility Calculations
Lateral transmissibilities between PEBI cells are calculated by finding slices within neighbouring cells that share
an interface and then finding a combined transmissibility as follows:
The centres of cell i and the common interface are found allowing the calculation of the cell centre to face centre
vector, di . The transmissibility contribution from cell i is then
A · di
Ti = ki
di · di
where ki is the permeability in the direction of the cell face for cell i. Details of how this is calculated will be
given below.
A similar calculation is performed for the matching slice in cell j to obtain Tj and finally the combined interface
transmissibility is obtained from
1 1 1
= +
T Ti Tj
In the vertical direction a very similar calculation is performed but using the following geometry
In this case di is the half height of cell i, otherwise the calculation is the same as that used for the lateral neighbours.
Once the vertical transmissibility for each slice has been calculated, the total vertical transmissibility between cell
i and cell j is given by the sum of the slice transmissibilities.
Permeability Transformations
Permeabilities are usually supplied to a simulation as Ki, Kj & Kz, (that is, aligned with the cell frame), but the
PEBI calculations require them in the in the x,y,z frame and so the supplied permeabilities need to be transformed.
The Tensor Permeabilities page describes how MORE can transform permeabilities from the (x,y,z) frame into the
(i,j,k) frame by performing the following transformation
Fig. 17.18: Common interface between slices within lateral neighbouring PEBI cells i & j
Fig. 17.19: Common interface between slices within vertical neighbouring PEBI cells i & j
where E is the matrix that transforms the (x,y,z) direction vectors into the local frame of (ea , eb , ec ):
eax eay eaz
E = ebx eby ebz
ecx ecy ecz
where
ea = eax .ex + eay .ey + eaz .ez
eb = ebx .ex + eby .ey + ebz .ez
ec = ecx .ex + ecy .ey + ecz .ez
To find the permeabilities for the PEBI transmissibility is calculated exactly as it is for the tensor permeability
option and the matrix of cell-frame permeabilities is constructed as
Ki 0 0
Kijk = 0 Kjj 0
0 0 Kk
The angle, θ, between the cell interface normal and the x-axis is then found:
Fig. 17.20: Angle between the interface normal and the x-axis
KN = Kx cos2 θ + Ky sin2 θ
Introduction
The MORE polymer option is enabled by the POLY keyword in the INPUt or FLUId section of the dataset.
Polymer tracking adds an extra equation to the usual three conservation equations for oil, water and gas. The
extra equation reflects the conservation of polymer mass. Polymer is transported by the water phase, and may be
adsorbed on the rock. The polymer conservation equation is treated implicitly and is only available in the implicit
black oil mode.
The extra solution variable controlling polymer transport is the polymer concentration Cply , which has units of
(mass of polymer)/(unit surface volume of water), for example, lb/STB.
The existence of polymer has two effects on fluid flow in the reservoir:
1. The viscosity of the water is altered, depending upon the polymer concentration in the water.
2. The permeability of the rock to water is reduced by the presence of adsorbed polymer.
We now discuss these in turn.
Viscosity Changes
The main objective of injecting polymer is normally to increase the viscosity of the injected water and improve
the reservoir sweep. Hence, the water viscosity generally increases with the polymer concentration.
However, due to the long polymer chains, the water viscosity is generally reduced by the effect of shearing, which
is a function of the velocity at which the water is travelling. The shear rate may be obtained from the superficial
flow velocity and the water viscosity will be a function of the shear rate. A model to take account of shear effects
is described below.
Polymer Adsorption
As a polymer is transported through the reservoir, it tends to become adsorbed onto the rock. The amount of
adsorbed polymer is Cads , measured as (mass of adsorbed polymer)/(unit pore volume). In a simple reversible
case the amount of adsorbed polymer is a function of the concentration of polymer in the water
Model Development
where
• Vp is the cell pore volume
• φ is the pore volume
• Fply is the flow rate of polymer from cell to cell
• Qply is the flow rate of polymer to and from wells
• Cads is the polymer adsorption per unit bulk volume of rock
This is solved at each time-step together with the usual governing equations for black oil.
Viscosity Modification
The water viscosity multiplier as a function of polymer concentration is a simple user-supplied look-up table of
the form:
This relationship is defined by the PPRO keyword and is the the only table look-up required in the MORE polymer
model.
The effects of shearing are taken account using the Meter model, as presented by Lake2 . At low shear rates, ė the
polymer viscosity µp is independent of shear rate and can be assumed to be equal to that given from the multiplier
from equation (17.18), that is
At high shear rates, the polymer viscosity decreases and approaches a limiting value not much greater than the
water viscosity. For simplicity, we assume the limit corresponds to the water viscosity, that is
µ∞ ∞
p = µp (ė → ∞) = µw
Note: A fluid whose viscosity decreases with increasing shear rate is called shear thinning.
The Meter model says the viscosity at some intermediate shear rate is given by
µ0p − µ∞p
µp = µ∞
p +
1 + (ė/ė1/2 )X−1
where X is a user-supplied empirical coefficient and ė1/2 is the shear rate at which µp is the average of µ0p and µ∞
p .
µ∞p is the high shear-rate viscosity which will be taken to be the water viscosity; while the low-shear viscosity µ0p
is defined by equation (17.19).
The shear rate ė is calculated from
uw
ė = √
4 φKw Sw
where
• uw is the superficial flux of polymer-rich water
• φ is the porosity
• Sw is the saturation of the polymer rich (water) phase
• Kw is the permeability of the polymer rich (water) phase
2 Lake L.W.:, Enhanced Oil Recovery, Prentice-Hall, New Jersey, 1989.
that is,
Kw = Krw (Sw )K
where
• K is the rock permeability
• Krw is the relative permeability to water.
Note that, as the superficial water flux is itself a function of the water viscosity, a non-linear equation must be
solved at each cell interface to determine the shearing effect.
A plot of viscosity as a function of shear rate calculated from the Meter model is illustrated in the following figure:
As can be seen, changing the values of ė1/2 and X changes the mid-point and shape of the viscosity/shear-rate
distribution. Typical reservoir shear rates are of order 1 to 10 s-1 . If attempting to obtain ė1/2 from the water
superficial flux, remember that 1 Darcy = 1x10-12 m2 and that reservoir rates are typically measured per day rather
than per second. MORE uses a default value of 5 sec-1 .
The polymer adsorption and permeability reduction factors may be specified using the PADT and PAKW tables.
PADT specifies the equilibrium adsorbed rock concentration of polymer, in polymer mass per unit mass of rock,
as a function of the concentration of the polymer in the water, that is
This is related to the polymer adsorption per unit reservoir volume, Cads , by the relationship
φ
Cadm = Cads ×
Cv ρR
where
Functional Model
Alternatively, users may use a functional model developed by Hirasaki and Pope1 to model the polymer adsorption
and permeability reduction factors. Here, it is observed that the maximum polymer mass adsorption is
α
mmax = Vp (1 − φ)CA (Mp η)1/3 (φ/K)1/2 (17.21)
η
where
• CA is a constant, whose value is 1.780x10-2 (field) or 5.952x10-3 (metric)
• Mp is a the polymer mole weight
• α is a tortuosity factor
• η is a the polymer dependency function, defined by
µp − µw
η= , (17.22)
Cply µw
where the polymer viscosity µp = Cmult µw , as in (17.19). We then assume a Langmuir isotherm type dependence
on the polymer concentration, so that
Cply
m(Cply ) = mmax (Cply ) ,
Cply + C1/2
where C1/2 is the polymer concentration in the water at which the adsorbed concentration reaches half its maxi-
mum value. This is defaulted to 0.1 lb/scf or 1.60 kg/sm3 , but may also be set by the user. For Cply C1/2 we
see that m → mmax as required.
The polymer mole weight Mp may be set by the user, if not a default value of 105 g/gmol is used. The tortuosity
factor α is to take account of the change in shape the polymer undergoes when it is confined in a pore throat as
opposed to being in a dilute solution. Hirasaki and Pope suggest that 2 < α < 8 and a default value of 4 is
assumed.
The water permeability reduction factor Rk is given by
Krp
Rk = = (1 − βNδ )4 ,
Krw
where β is a history matching parameter (defaulted to 1), while the dimensionless group Nδ is a measure of the
reduction in pore radius due to polymer adsorption and is given by
Cply
Nδ = Ck (Mp η)1/3 (φ/K)1/2 , (17.23)
Cply + C1/2
Note: Although equation (17.23) follows a similar functional form to equation (17.21), the permeability reduction
factor Rk used by the functional model does not explicitly depend on the adsorbed polymer concentration. Hence,
while adsorption may be modelled as reversible or irreversible, the permeability reduction factor will not be
affected.
The constants CA and CK are are 118.0 and 3.9x10-3 , respectively, when permeability is in mD and the perme-
ability dependency function η is in decilitres/gm (the inverse of gm/100 mL). From equation (17.22) we see the
normal units of η will be inverse concentration, that is, STB/lb or sm3 /kg, and we can use the conversion factors 1
gm/100 mL = 10 gm/L = 10 kg/m3 = 3.5 lb/STB.
Furthermore, CA was originally developed by Hirasaki and Pope in units of µgm/gm with densities in gm/cm3 . To
convert to mass/unit pore volume in lb/STB or kg/m3 , an additional factor to convert from gm/cm3 was needed.
Data Requirements
POLY
• The first column of PPRO specifies the polymer concentration Cply in lb/STB (field) or kg/sm3 (metric).
• The second column contains the viscosity multiplier.
Note: Constant value extrapolation will be used for polymer concentration values outside the table
Note: If POLY is used without setting PPRO, a warning is issued and the water viscosity multiplier set to unity.
The PSHE keyword sets the option for the modelling polymer shearing:
PSHEAR [NONE][ON][OFF]
The default is OFF. The polymer shearing effects require a considerable amount of extra calculation in MORE
and should only be turned on if required.
PADT is a table which specifies the saturated polymer adsorption concentration on the rock as a function of the
polymer concentration in the water. A separate table may be specified for each saturation table region.
The polymer concentration in the water is specified in mass per unit water surface volume. The adsorbed polymer
concentration is specified in polymer mass per unit mass of rock. This means of specifying the adsorbed polymer
density needs a rock density, and this can be set using the first argument of PADT (in the case of several PADT
tables, the first occurence is taken). The default density corresponds to a specific gravity of 2.5.
Note: The rock density is specified in units of kg/m3 or lb/cuft (not lb/STB).
By default, polymer adsorption is reversible, but the IRRE or IRRV argument of PADT may be used to select
irreversible adsorption. In that case, the polymer per unit mass of rock will not fall even if the water polymer
concentration does fall. An example of IRREversible adsorption into rock with a density of 130 lbs/cuft is shown
below:
The 3D grid array Cadm is available in Tempest for visualising the adsorbed polymer mass per unit mass of rock:
Enabling the Functional Model for Adsorbed Polymer and Water Permeability Reduction
Alternatively, the user may use the PADS keyword to turn on the Hirasaki and Pope functional model for polymer
adsorption and water permeability reduction, as described above. PADS should be used as an alternative to PADT
and PAKW.
The user may select either reversible or irreversible adsorption using the REVE or IRRE arguments of PADS
respectively. In the latter case the adsorbed polymer will not fall even if the water polymer concentration falls.
By default, the reported polymer concentration in the water is not affected by the adsorbed polymer concentration,
which is assumed to be small. However, it is possible to account for the loss of polymer to the rock by using the
LOSS argument of PADS.
The PMIS keyword sets various values which appear in the correlations for the polymer model:
• The first argument specifies the polymer mole weight, Mp (default = 105 g/gmol)
• The second argument is the tortuosity factor α (default = 4.0)
• The third argument is the water permeability reduction parameter β (default = 1.0)
• The fourth argument is the polymer adsorption concentration C1/2 (default=0.1 lb/STB)
• The fifth argument is the mid-point shear rate ė1/2 (default=5.0 s-1 )
• The sixth argument is the shear rate exponent X (default=2.0)
A simple polymer example dataset using the PMIS keyword can be accessed here.
Note: The first four arguments are only relevant if using the PADS keyword to select the Hirasaki and Pope
functional model. They are not required when using PADT and PAKW.
Note: The fifth and sixth argument are relevant for the viscosity shearing model which may be turned on using
the PSHE keyword.
This is entered by the CPLY keyword. CPLY is a MORE grid type keyword, which is automatically set up when
the POLYMER option is selected. All of the usual MORE options for setting up arrays may be used to define
CPLY values.
An example would be:
CPLY
ZVAR
0.04 4*0.045 8*0.0 /
An injection well may be assigned a polymer concentration, which will be associated with water injected by that
well. This may be specified using the POLY event.
I-1
01/Jan/2000 INJE
01/Jan/2000 PERF 5000.00 5200.00 0.50000 0.00000 10.0000
01/Jan/2000 WIT 4000.00
01/Jan/2000 POLY 0.15000
01/Jan/2000 BHPT 10000.0
01/Jan/2005 POLY 0.00010
The plot below shows the polymer injection rate for the well I-1:
One of two wettability options can be used to calculate three phase relative permeabilities, based on the reservoir
characteristics.
The wettability options are:
• oil wet - in order of decreasing wettability the phases are
– oil
– water
– gas
• water wet - in order of decreasing wettability the phases are
– water
– oil
– gas
When a wettability keyword is not supplied, the reservoir rock is assumed to be water wet (the default option).
Regardless of the wettability option selected, the following data is supplied to the simulator:
• Krw (Sw ) - Water relative permeability in the presence of oil
• Krow (Sw ) - Oil relative permeability in the presence of water
• Krg (Sg ) - Gas relative permeability in the presence of oil and connate water
• Krog (Sg ) - Oil relative permeability in the presence of gas and connate water
When the hysteresis option is used:
• Krwh (Sw ) - Hysteresis water relative permeability in the presence of oil
• Krowh (Sw ) - Hysteresis oil relative permeability in the presence of water
• Krgh (Sg ) - Hysteresis gas relative permeability in the presence of oil and connate water
• Krogh (Sg ) - Hysteresis oil relative permeability in the presence of gas and connate water
These tables should be obtained from standard water-oil and gas-oil relative permeability tests.
The relative permeability of the wetting and nonwetting phases are functions of their respective saturations, while
the intermediate phase relative permeability is calculated using a variety of methods.
The following generalisation of Stone’s second method (Stone1 ) is one possibility. For the default water-wet case
we have
where:
• f1 = 1/Krow (Swco ), inverse of the oil relative permeability at connate water saturation
• f2 - Trapping factor
The two commonly used modifications to Stone’s second method are obtained from the above formula as follows:
1 Stone, H.L., Estimate of Three-Phase Relative Permeability and Residual Oil Data, J. Cnd. Pet. Tech (Oct-Dec 1973) 54-61.
• f2 = Krow (Swc ) gives the formula recommended by Aziz and Settari. This is the default value.
• f2 = 1 gives the formula which is discussed by Dietrich and Bonder. This form is equivalent to scaling the
relative and absolute permeabilities so that Krow (Swc ) = 1.
For water-wet calculations, the standard relative permeability data supplied to the simulator is used directly (after
conversion to an equally spaced format). However, standard relative permeability tests do not provide all the data
needed for the oil-wet option. For this case, the tables are interpreted to provide appropriate data for Stone’s
method.
The following table shows the relationship between the standard data and the data used by the simulator.
where the Krow and Krog are looked up directly as functions of the oil saturation So .
The third option is Stone’s 1st model in which
Kro = f · S̄o · Cg · Cw
where
Krog Krow
Cg = Cw =
1 − S̄g 1 − S̄w
and
So − Som Sw − Swl Sg
S̄o = S̄w = S̄g =
1 − Swl − Som 1 − Swl − Som 1 − Swl − Som
Som is the minimum oil saturation for flow: that is, Som = min (Sogc , Sowc ) and f = 1/Kro (Swl ) where Swl is the
minimum (connate) water saturation.
Krow is looked up at an oil saturation of So = 1 − Sw whereas Krog is looked up at a saturation of 1 − Sg − Sw .
In the oil-wet option, the oil relative permeability becomes a simple function of So , whilst the water relative
permeability is constructed using Stone’s method.
When using Stone’s method for a conventional water-wet system we do not look up any relative permeabilities
as a function of the actual oil saturation. Instead, we look up Krw (Sw ), Krg (Sg ), Krow (So = 1 − Sw ), and
Krog (So = 1 − Sg − Swco ). Then we combine Krow and Krog using Stone’s method to get Kro (Sw , Sg ).
Using Stone’s method in an oil-wet system is analogous, but with water playing the role of oil. We look up
Kro (So ), Krg (Sg ), Krwo (Sw = 1 − So ), and Krwg (Sw = 1 − Sg ). Then we combine Krwo and Krwg using Stone’s
method to get Krw (So , Sg ).
As a simple example, consider the following data:
Krw (So , Sg ) = 0
The results of the oil-wet lookup are thus rather different from the water-wet case. In this example, the water is
immobile, even though Sw is well above the first non-zero point on the Krw table. In broad terms the intermediate
phase (oil in the water wet-case, and water in the oil-wet case) finds it more difficult to flow as it is held up by the
other two phases.
The treatment of hysteresis has been developed in MORE to allow both non-wetting and wetting phase hysteresis.
In order to switch on hysteresis modelling, separate relative permeability curves are entered for increasing and
decreasing phase saturation. Both curves are entered in the same table: therefore, if gas saturation functions are
entered with GSF, the earlier column of Krg values is used when the gas saturation is increasing, and the later
column of Krgh value is used when the gas saturation is decreasing. Hysteresis modelling may also be switched
on using by imbibition end-point scaling arrays, described below.
The normal way of describing flooding processes in reservoir engineering is using the terms drainage and imbi-
bition. In an imbibition process the wetting phase saturation increases, and in drainage process the wetting phase
saturation decreases.
In MORE the default is for water to be wetting with respect to oil, and for oil or water to be wetting with respect
to gas. The WETT keyword may be used to model the oil-wet case, but gas is always a non-wetting phase.
The wettability conditions determine what type of hysteresis can be modelled. For the water-wet case, it is possible
to model wetting phase hysteresis in Krw and non-wetting phase hysteresis in Kro . Wetting and non-wetting phase
hysteresis are rather different, and impose different validity conditions on the relative permeability data provided.
Looking at the input of a simple saturation table like GSF, this takes the form
GSF
Sg Krg Pcog Krgh Pcogh
: : : : :
/
As gas is non-wetting, the Krg column corresponds to increasing gas saturation (that is, drainage), and the Krgh
column corresponds to decreasing gas saturation (that is, imbibition).
In a more complex table in which relative permeabilities for two phases are entered together, such as KRGO, the
drainage and imbibition curves may be identified in the same way
KRGO
Sg Krg Krog Pcog Krgh Krogh Pcogh
: : : : : : :
/
Krg and Krgh are drainage and imbibition curves respectively. Krog is the oil-in-gas relative permeability curve for
increasing oil saturation: that is, imbibition. Krogh is the oil-in-gas relative permeability curve for decreasing oil
saturation: that is, drainage. So the columns could also be labelled
KRGO
Sg KrgD KrogI Pcog KrgI KrogD Pcogh
: : : : : : :
/
D
The calculation procedure is as follows (see the following figure). The drainage relative permeability curve Krn
is followed while the saturation of the non-wetting phase, Sn , is increasing (the drainage process). When the
saturation changes direction so that the saturation of the non-wetting phase is decreasing (the imbibition process),
I
the dashed scanning curve, which is parallel to the hysteresis curve, Krnh is followed. Later if the saturation
D
exceeds the previous maximum, the curve Krn is again used. The treatment is that of Carlson2 . The saturation
2 Carlson, F.M., Simulation of Relative Permeability Hysteresis to the Nonwetting Phase, SPE 10157 presented at the SPE Annual Tech-
nical Conference and Exhibition, San Antonio, Texas, October 5-7, 1981.
Non-wetting phase hysteresis leads to trapped saturations. The critical saturation on the imbibition or scanning
curve is normally greater than that on the drainage curve, so some of the non-wetting phase is trapped.
An example of this would be gas injection into oil. Gas is non-wetting, and the injection process causes a decrease
in the oil saturation: that is, it is a drainage process. However, if the gas is then produced, which might be due
to oil movement on water injection, is not usually possible to recover all the gas, as the gas will cease to flow
when the critical saturation on the scanning curve is reached. In pore space model terms, this is because the gas
is trapped in non-connected bubbles in the centre of the pore space, surrounded by the wetting phases of oil and
water which are connected to the rock material.
Internally, MORE stores the maximum saturation in the simulation to date and the shift ∆S: these are stored as
items on the restart files and may be viewed through Tempest.
Note that the imbibition curve should be steeper than the drainage curve. MORE will check for this and issue a
warning message if required. Such an error can cause the imbibition curve to cross the drainage curve and lead to
a predicted Kr (S) curve which does not go to zero as S goes to zero:
To prevent this, a limiting Krlim (S) function is applied, which is sharply rising linear function of saturation starting
at S = 0. The hysteresis Kr is not allowed to be above this limiting line and so is forced to zero as S approaches
zero.
In the wetting phase hysteresis case there is no trapped saturation: the critical saturation values of the drainage
and imbibition curves must be the same. The imbibition curve lies above the drainage curve and the calculation
procedure is as illustrated in the following figure:
Suppose we start with a system completely saturated with the wetting phase, at the top of the drainage curve, point
A. If the system in then completely drained, to point B, and then the wetting phase saturation is again increased,
then the system will follow the imbibition curve to point C.
If the drainage process is stopped at some intermediate minimum saturation Smin , point D, then the system follows
the scanning curve, KrS , which is parallel to the imbibition curve KrI . The treatment is that of Carlson2 .
Note: In this case MORE tracks the minimum saturation rather than the maximum saturation.
If the normal and hysteresis capillary pressure curves Pcog and Pcogh or Pcow and Pcowh entered with KRGO,
KRWO, GSF and WSF are different, MORE will model capillary pressure hysteresis. The reservoir is assumed to
have formed by a drainage process: oil displaces water and gas displaces oil. The treatment is that of Killough3 .
In the case of gas, the simulation is assumed to start on the drainage process, gas increasing, and curve. If the gas
saturation continues to increase, the capillary pressure continues to track that curve. If the saturation decreases,
it moves onto a scanning curve which interpolates between the drainage and imbibition curves (see the following
figure).
3 Killough, J.E., Reservoir Simulation with History-Dependent Saturation Functions, Trans. SPE-AIME, Feb 1976, SPE 5016.
If the gas saturation is reduced to the trapped gas saturation, Sgtrap , the interpolation leads to 100% drainage curve.
The interpolation expression is:
I D I
Pcog = Pcog + f · (Pcog − Pcog )
with
1 1
Sg −Sgtrap +e − e
f= 1 1
Sgmax −Sgtrap +e − e
where e is defaulted to 0.1 but may be reset using the PCHC keyword.
The trapped gas saturation is obtained from the Krg hysteresis calculation described above if Krg hysteresis is
active, or is otherwise Sgcrit .
D I
Note: Pcog is the gas increasing curve, Pcog in the input; Pcog is the gas decreasing curve, Pcogh in the input.
In the water capillary pressure case the normal drainage curve is obtained if the water saturation continues to
decrease, and a scanning curve is started if the water saturation increases (see the following figure).
with
1 1
Sw −Swmin +e − e
f= 1 1
Swmax −Swmin +e − e
where Swmax = 1.0 − Swntrap , the sum of the trapped oil and gas saturations.
Currently MORE uses a scanning curve in capillary pressure hysteresis. Including further loops in the Killough
model will produce capillary pressure discontinuities after the third saturation reversal which can cause conver-
gence problems and timestep reductions.
Saturation Scaling
Different grid blocks may have different values for the critical saturations, maximum saturations, etc. Because of
this, the relative permeability for a given saturation may vary within the grid.
One approach to this is to use several relative permeability tables, which may be accomplished by using the SATN
keyword.
Another approach is to scale the given relative permeability tables to make the saturation table endpoints match
the saturation endpoints specified for each grid block.
These two approaches are described in the following sections:
• Using Multiple Saturation Tables
• End Point Scaling
As a simple example, suppose we wish to assign one set of saturation tables to the first layer of the grid and another
set to the second layer of the grid. This is done in the dualporo.dat test example, in which the first layer represents
the matrix and the second layer represents fractures. Two sets of saturation tables are entered in the RELA section
KRWO
0.25 0.000 0.92 4.00 /
0.30 0.020 0.705 2.95 /
0.40 0.055 0.42 1.65 /
0.50 0.100 0.24 0.85 /
0.60 0.145 0.11 0.30 /
0.70 0.200 0.0 0.00 /
/
KRWO
0.00 0.000 1.0 4.000 /
0.10 0.050 0.770 1.850 /
0.20 0.110 0.587 0.900 /
0.40 0.260 0.33 0.400 /
0.60 0.475 0.173 0.200 /
0.80 0.715 0.057 0.110 /
1.00 1.000 0.0 0.000 /
/
These tables are assigned to cells by setting up the SATN array in the grid section
SATN
ZVAR
1 2 /
The keywords for saturation scaling are listed below. They are predefined arrays, and their syntax is described in
the GRID section of the help. Illustrative examples and discussion on some of these keywords can be found here.
• SWL - scales the smallest water saturation entry in a KRWO table.
• SWCR - scales the highest water saturation for which the water is immobile. If SWCR is supplied, but not
SWL, then SWL will be supplied automatically as SWL = SWCR.
• SOWC - scales the critical oil-in-water saturation. This is the highest oil saturation for which the oil is
immobile in an oil-water system.
• SWU - scales the maximum water saturation, the largest water saturation entry in the KRWO table.
• SGL - scales the connate gas saturation.
• SGCR - scales the critical gas saturation. This is the highest gas saturation for which the gas is immobile.
• SOGC - scales the critical oil-in-gas saturation. This is the highest oil saturation for which the oil is immo-
bile in an oil-gas system.
• SGU - scales the maximum gas saturation. This is the largest gas saturation entry in a gas saturation table.
In MORE options are available to select how end point scaling is to operate. The default is three-point scaling in
which the lower, critical and upper saturations of the scaled table are defined, and the corresponding point of the
unscaled tables transformed to these values.
For example, consider scaling the water relative permeability function Krw (Sw ) at a water saturation Sw , where
the scaled critical and maximum water saturations are SW CR and SW U respectively, and the corresponding
unscaled (table) values are Swcr and Swu . The water relative permebility Krw (Sw ) is evaluated by looking up the
table
input saturation table at the scaled saturation Sw , where
End-point scaling may also be used when modelling hysteresis. In this case, the following arrays may be used to
scale the imbibition end points:
• IWL
• IWCR
• IOWC
• IWU
• IGL
• IGCR
• IOGC
• IGU
Note that in all cases the defaults are the unscaled saturation table values taken from the table data. However,
IEPD may be used to request that the defaults are taken from the corresponding drainage array instead.
Using any of the imbition end-point scaling arrays will automatically switch on hysteresis modelling, even if the
table data does not contain hysteresis data. In the case in which the table data does not show hysteresis, and
only drainage endpoint data is entered with the default setting of IEPD, then unspecified imbibition endpoints
taken from the rock tables may be different from the drainage endpoints. In this case the HYST keyword may be
used to turn on hysteresis modelling, and MORE will search for differences between the drainage and imbibition
endpoints and use hysteresis modelling as required.
For capillary pressures the default is to use the same scaling as for the relative permeabilities. However, a different
scaling can be selected using the EPSP keyword. This includes a two-point scaling, in which only the lower and
upper saturations are used: for example, Swl and Swu .
This has the advantage that the transition zones defined by the capillary pressures in the equilibration calculations
and which define the fluid in place are not effected by changes to the critical saturations imposed later in order to
achieve a history match.
Different grid blocks may have different values for the maximum relative permeabilities and maximum capillary
pressure. To incorporate this effect without any vertical scaling you would have to use several relative permeability
tables, whilst vertical scaling may suffice by using just one. There are five keywords that will scale the relative
permeability curve or the capillary pressure curve:
• XKRW
• XKRG
• XKRO
• XPCW
• XPCG
These are multipliers for the water, gas, oil relative permeability curves and the water-oil, gas-oil capillary pressure
curves respectively. They are predefined arrays, and their syntax is explained in the GRID section.
In the water wet 3-phase case, XKRW and XKRG will scale the water and gas curves respectively. XPCW will do
vertical scaling on the water-oil capillary pressure, Pcow . XPCG will do vertical scaling on the gas-oil capillary
pressure, Pcog .
In addition, it is possible to select 3-point vertical scaling for the relative permeability curves. The keywords
• YKOG
• YKOW
• YKRG
• YKRW
may be used to set the oil relative permeability multiplier at the gritical gas/water saturation, and the gas/water
relative permeability multiplier at the critical other-phase saturation respectively.
Illustrative examples and discussion on some of these keywords can be found here.
If the SURF keyword is used in equation of state mode, surface tensions are calculated and used to control the
approach to a straight line oil-gas relative permeability curve as miscible conditions are approached, following the
approach of Coats4
where
• [P ]c is the parachor for component c,
• bo , bg are phase molar densities
• xc , yc are molar compositions
An immiscibility fraction
σ K
f=
σ ref
is defined, where σref is the reference surface tension at immiscible conditions, and K an exponent defaulted to
0.25. σref and P may be entered with the SURF keyword.
The relative permeability used is then:
im m
Krog (σ) = f · Krog + (1 − f ) · Krog
where
4 Coats, K. H., An Equation of State Compositional Model, SPE 8284, Society for Petroleum Engineers Journal 20 (1980), 363–376.
5 Reid, R. C., Prausnitz, J. M., and Poling, B. E., The Properties of Gas and Liquids, 4th Edition, McGraw-Hill, New York, 1988.
im
• Krog is the rock curve relative permeability, and
m
• Krog is a straight line relative permeability
both rescaled to the same modified end points, given by
im
Sogcr (σ) = f · Sogcr
im
Sgcr (σ) = f · Sgcr
The total effect is that as σ → 0 the critical oil and gas saturations tend to zero, and the shape of the curve tends
towards a straight line. This is illustrated in the preceding figure.
17.25 Restarts
Introduction
At all times during a simulation run, information is written to .ara file (if GENE with REST, and ARRA are sup-
plied) and .rat file (if FREQ keyword is used) to provide a starting point for a subsequent run. This subsequent
run that has a starting date before the ending date of the BASE run is called a “Restart Run”.
In Tempest MORE, the user can either do a Fast Restart or a Flexible Restart.
In either case, the user must make sure that the starting date of restart run is such that both RATE (2D) and ARRA
(3D) results are available for this date in base run.
Fast Restarts
A fast restart run uses the LOAD keyword in the INPU section to read the INPU, RELA, FLUI and GRID sections
data from the .sav file. This file is generated using the SAVE keyword of the INPU section of the base run, and
contains all the calculations for grid setup and transmissibility.
Since the time-consuming grid calculations are not needed, fast restarts are quicker to initialise than Flexible
Restarts. This type of restart is recommended when only the RECU section data is to be modified.
1. In the base run, use the SAVE keyword to generate a .sav file.
2. Set up the restart data file consisting of LOAD keyword, and INIT and RECU section data.
Keywords such as IDAT, SDAT, EDAT, TITL and OPEN may be entered before the LOAD keyword.
3. Using the keyword OPEN IRST, enter the path to the output files of the base run. This is required to load
the dynamic simulation data.
For example:
• Both the base and restart data sets must be run on the same version of MORE using the same of number of
processors.
• Fast restarts cannot be used with grid coarsening (CXGR, CYGR, CZGR).
• All standard restart restrictions also apply.
Flexible Restarts
A flexible restart reads the complete data file, and is slower to initialise than the fast option as all the grid calcula-
tions have to be reperformed. However, it offers more flexibility as it allows changing some of the data (other than
that in RECU section) in the base run, and restarts from earlier versions of MORE are also allowed. Also, there is
no restriction on the number of processors that the restart data set can be run on.
Examples
1. Lets demonstrate how to do a flexible restart run with a simple example. Run the dataset BASE.dat.
The simulation has an initial date and start date of 1 Jan 2000,
outputs 2D results every month and 3D results at the end of 4th , 6th and 10th month:
ETAB
ALL
01/Jan/2001 END
ENDE
Create a copy of BASE.dat and save it as RESTART.dat. In RESTART.dat, make the following
changes:
• Change the Start Time:
Note that we selected such a start time for RESTART.dat that had both the 2D and 3D results in
BASE.dat
• Use the keyword OPEN IRST in RESTART.dat and enter the path to BASE.dat in the following
line:
OPEN IRST
'BASE'
• Make changes in RESTART.dat file. For example, change the multiplier in the PERF of the producer
well P-1 to double the Kh value and extend the end date to 1 JAN 2002. You may like to compare the
producer BHP from both runs:
The final version of RESTART.dat can be found in RESTART.dat. Note that you need to run
BASE.dat first.
2. Lets now demonstrate how to do a fast restart run using the same BASE dataset as that used in the example
above. Open the dataset BASE.dat and enter the keyword SAVE in the INPU section.
INPU
IDATE 1 JAN 2000
SDATE 1 JUL 2000
OPEN IRST
'BASE'
LOAD 'BASE'
• Remove the FLUI, RELA and GRID data sections, and continue to enter data in INIT and RECU
sections.
LOAD 'BASE'
INIT
. . .
. . .
RECU
. . .
. . .
STOP
• Make changes in the dynamic section of the FAST_RESTART.dat, and compare the results to those
of BASE.dat.
An equivalent version of RESTART.dat (used in flexible restart example) can be found in
FAST_RESTART.dat. Note that you need to run BASE.dat with SAVE keyword first.
Introduction
Directional relative permeabilities allow you to use separate tables to look up the relative permeabilities in the x,
y and z directions. In the irreversible option, separate tables may be specified to look up relative permeabilities in
the x+, x-, y+, y-, z+ and z- directions.
Usage
KRDR [IRRV]
This turns on the directional relative permeability option. IRRV is optional and requests irreversible directional
relative permeabilities. In the irreversible case separate tables may be specified for flows in the positive and
negative directions.
KRDX
KRDY
KRDZ
These keywords assign saturation tables to the interblock flows in the x, y and z directions. ROCK (or SATN) still
assigns the tables use for equilibration, fault flows and well production rate calculations. In the irreversible case,
the following keywords assign saturation tables to the interblock flows in the negative x, y and z directions:
KRMX
KRMY
KRMZ
KRDX, KRDY and KRDZ are standard MORE grid arrays, and can be set up in any of the usual ways (see the
following example):
KRDX
ZVAR
3 4 /
KRDX=3
Example
The following describes changes to a simple quarter-five spot to use directional relative permeabilities.
In the RELA section:
KRDR / <===Turn on directional relative permeabilities
/
krwo sw krw kro / <===Second set of saturation tables
0.20 0.0 1.0 /
0.45 0.0 0.125 /
0.65 0.0 0.125 /
0.70 0.5 0.0 /
/
/ Use 2nd set of saturation tables for y direction (alternative expression input)
KRDY = 2
The following figure illustrates results for the above run; the blue line is a rock curve run using only table 1.
Definition
The Leverett J-Function is a dimensionless group which attempts to correlate variation in capillary pressure with
rock properties.
The J-function is expressed as
12
Pc (Sw ) K
J(Sw ) = ·
σ Φ
where
• K is the absolute permeability,
• Φ is the porosity,
• Pc is the capillary pressure,
• Sw is the water saturation and
• σ is the surface tension (see also1 )
The idea is that a single J-function may be used over a range of rock properties. The relationship is not universal
across formations but may be useful for correlating capillary pressure variation within a field or type of rock. It
may also be useful for transforming laboratory data to field conditions.
Rearranging the above expression, the capillary pressure for a given J-function is
12
Φ
Pc (Sw ) = J(Sw ) · σ ·
K
Units
The above expression assumes that all the quantities present are measured in a consistent set of units: for example,
with K in m2 , σ in Nm-1 , Pc in Nm-2 . If we use an engineering unit set, then a unit-dependent constant U must be
introduced:
12
1 Pc (Sw ) K
J(Sw ) = · ·
U σ Φ
12
Φ
Pc (Sw ) = U · J(Sw ) · σ ·
K
For metric units, with Pc in Bars, σ in Dynes/cm and K in mD, we get
Bar Nm−1 1
U= −2 · Dynes ·
q
Nm cm
m2
mD
1
= 10−5 · 10−3 · √ ≈ 0.318316
9.8692 · 10−16
For field units, with Pc in psia, σ in Dynes/cm and K in mD, we get
psia Bar Nm−1 1
U= · · ·q
Bar Nm−2 Dynes
cm
m2
mD
Feb. 1992
The preceding expressions are not immediately helpful, as the J-function cannot be measured directly. However,
if the capillary pressure is measured for a reference rock and fluid sample, the J-function can be obtained as
12
1 Pcref (Sw ) K ref
J(Sw ) = · ·
U σ ref Φref
The J-function may then be used to predict capillary pressures at other surface tensions, porosities and permeabil-
ities
12 12
K ref
σ Φ
Pc (Sw ) = Pcref (Sw ) · ref · ·
σ Φref K
where
21
K ref
σ · cos Θc
L = ref ·
σ · cos Θref
c Φref
If the same fluid is used for the reference lab measurements as exists in the reservoir being modelled by the
simulator then
and L becomes simply the square root of K/Φ for the reference sample
12
K ref
L=
Φref
This expression is the basis of the default MORE treatment of the Leverett J-function. The reference Pc (Sw ) data
is entered using KRWO or WSF. The value of L is set up as the grid array LEVJ. Internally, MORE will then set
up a capillary pressure scaling array XPCW such that
12
Φ
Xpcw = L ·
K
and this will multiply the oil-water capillary pressure data entered by the user as
XPCW= LEVJ*SQRT(PORO/PERMX)
The preceding discussion has been in terms of the oil-water capillary pressure and the water saturation, but similar
expressions may be obtained for the oil-gas capillary pressure in terms of the gas saturation. In the oil-gas case
the reference Pc (Sg ) data is entered using KRGO or GSF, and the oil-gas capillary pressure data is scaled by
12
Φ
Xpcg = L ·
K
To summarise the LEVJ approach: the user supplies capillary pressure data measured at some reference conditions,
and sets the LEVJ array to the value
ref 21
σ · cos Θc K
L = ref ref
·
σ · cos Θc Φref
This will result in a scaling factor being applied to the capillary pressure which assumes that the Leverett J-
function takes the same value for reference and field conditions: that is,
ref 12 12
1 Pcref (Sw ) K 1 Pc (Sw ) K
J(Sw ) = · ref ref
· ref
= · ·
U σ · cos Θc Φ U σ · cos Θc Φ
The above discussion reflects the case in which the J-factor is implicitly determined from reference (measurement)
data and used to convert that data to reservoir conditions. However, there may be cases in which the dimensionless
J-function itself is known. In this case it may be entered in the KRWO/KRGO or WSF/GSF tables in place of the
usual capillary pressure data. LEVJ should then be chosen to convert this to the required capillary pressure values
in the reservoir.
Looking at the definition of the capillary pressure as a function of the J-factor and comparing that with the
expression
12
Φ
Pc (Sw ) = U · J(Sw ) · σ · cos Θc ·
K
it can be seen that this requires a value of LEVJ set to the product of the unit conversion factor and the surface
tension
L = U · σ · cos Θc
It is also possible to enter XPCW and XPCG directly. In both cases MORE will multiply the reference capillary
pressure data entered using KRWO/WSF and KRGO/GSF by XPCW and XPCG respectively, when calculating
phase pressures to determine the phase flows in the simulation.
However, during initialisation the inverse operation is performed. When equilibrating the model the hydrostatic
pressure difference is known as a function of depth and we wish to determine the saturation at that depth. In the
oil-water case the required saturation is Swinit such that
required
Pcow
Pcref (Swinit ) =
Xpcw
This is rather different from the J-function treatment in ECLIPSE, in which the user enters a surface tension value
rather than the product of the surface tension and the unit conversion factor. To match the ECLIPSE form, enter a
LEVJ value which is the product of the required surface tension and the unit conversion factor.
Introduction
MORE contains a limited shale gas modelling option. This model allows the user to define the amount of gas
contained in the shale as a pressure function (AGVP - Available Gas Vs Pressure) and an SRV (Stimulated Reser-
voir Volume) keyword to model the effect of change in reservoir permeabilities induced by complex hydraulic
fracturing.
Formulation
In this treatment a shale gas reservoir is treated in the same way as a coal bed methane reservoir. The shale gas
reservoir will typically have a low porosity and permeability, and the gas is contained in the bulk of the rock.
The gas contained in the shale is characterized by a saturation pressure, Ps . Initially, Ps is equal to the reservoir
pressure, P , as the system is in equilibrium. If the pressure in the reservoir is reduced, gas will generally be
evolved from the bulk of the rock and can be produced.
In the coal bed methane case the variation in the gas contained in the rock with pressure can be described using a
Langmuir function. In the shale gas case a more general form is required, as shale gas can be absorbed on organic
matter and recovered by desorption, or held in micro-pore spaces and recovered by Darcy type convective flow.
So a general pressure function, AGVP, is used to define the volume absorbed as a function of saturation pressure.
AGVP is in units of surface volume of gas per reservoir volume of rock (mscf/rb or ksm3 /rm3 ). Note that, as
ultra-low porosity is assumed for shale, reservoir volume of rock is identified with total reservoir volume.
The traditional problem with shale gas reservoirs is that it is difficult to reduce the pressure in the reservoir
significantly. Shale gas reservoirs have low permeabilities, typically in the nano-Darcy range, and even leaving
producers an open hole will not reduce the pressure in a significant volume of the reservoir. However, this problem
maybe overcome by fracturing or fracking the reservoir.
In the fracturing process water and proppant are injected and set up a complex system of fractures around the
well. Simply producing a single planar fracture as assumed in the WFRA well fracturing option will not usually
be sufficient to access a significant fraction of the rock. Instead, it is assumed that a complex branched fracture
system is created, and this increases the permeability over a given volume of the reservoir, the Stimulated Reservoir
Volume (M. J. Meyerhofer et. al., SPE 1198901 ) or SRV.
The SRV keyword in MORE is treated as an ellipsoidal volume in the reservoir, defined by vertical and areal
primary axes lengths and angle of rotation from the xyz frame used to define reservoir locations. The SRV can
be created at some point in the simulation, corresponding to the time of the fracturing operation. Within the
SRV the permeabilities are enhanced by a specified factor, and the enhancement factor may optionally decay with
time. Typically the permeability enhancement created by the SRV is many orders of magnitude and may either be
constant throughout the SRV or taper off at the edges of the stimulated volume. The enhancement will be applied
to inter-block flows and well completion connection factors.
The permeability enhancement created by the SRV allows the reservoir pressure to be reduced, and for significant
flows into the wells to occur. The gas covered will depend on the pressure reduction achieved within the reservoir,
causing gas to move out of the source rock. The details of the flow may be complex, a mixture of Darcy flow,
Knudsen flow and diffusion, so we do not attempt to model it from first principles. Instead, the flow from the
source rock is characterised by a time constant, the Langmuir time, as for coal bed methane.
The rate of transfer from the source rock to flowing porosity per unit reservoir volume will be given by:
where
• P is the pressure in the flowing porosity
• Ps is the saturation pressure (with P = Ps ) initially
1Mayerhofer, M.J., Lolon, E.P. et al, What is Stimulated Reservoir Volume (SRV)?, 2008 Shale Gas Production Conference, Forth Worth,
Texas, Nov 2008, SPE 119890.
Ps ∼ P · (1 − exp(−T /τ ))
V (Ps ) ∼ VL · PL /(Ps + PL )
then a diffusive recovery from organic mater in the shale might be dominant.
In general, some intermediate combination would be expected.
Note that this is a single porosity formulation – we do not attempt to predict the recovery or the recovery rate from
a dual porosity model if the fracture spacing and the details of the storage of the gas in the source rock. However,
it can be shown that a linear AGVP function will yield the same results as a simple dual porosity model with a
single shape factor; Ps becoming the pressure in the matrix material and P the pressure in the fracture material.
Data Requirements
In the FLUId section, use the SHAL keyword to enable shale modelling.
Enter the pressure variation of the gas contained in the source rock using AGVP, for example:
AGVP
0.0 0.0 /
1000 0.03 /
/
In this case, in FIELD units, we have V (Ps ) =30 scf/rb at Ps =1000 psia. Set up the Langmuir time using the third
parameter of the LANG keyword:
LANG 2* 1000.0
In the RECU section, use the SRV keyword to specify the location, size, orientation, permeability multiplication
factor and time constant of the stimulated reservoir volume:
-- X Y Z Da Db Dz θ FK τ SRV
SRV 5000 1000 2550 300 1000 40 26 1.0E11 365
The angle of rotation θ is from the positive y-axis towards the positive x-axis; that is, clockwise in a normal
coordinate frame with the y-direction upwards.
If θ =0, then Da=Dx and Db=Dy.
If the SRV time constant is defaulted the permeability multiplication factor will remain constant in time - in this
case it will increase the basic permeability by a factor of 1011.
If the SRV time constant is set the improvement will decay like
This can be used to model the loss in the efficiency of the fracturing job with time, for example through proppant
loss. The SRV may be re-fractured at a later stage in the simulation if required.
The permeability improvement may be set to be constant throughout the SRV (the CONS option), or to taper
quadratically from the centre of the ellipsoid to the boundary (the VARI option). In the VARI case the permeability
multiplication factor will be F K.(1 − w) where w = (fa2 + fb2 + fc2 ), fa , fb and fc the fractional distances of a
cell along the three primary axes of the ellipsoid. The boundary of the ellipsoid is w = 1 and the centre is w = 0,
so with VARI the permeability increase will fall to zero at the boundary of the ellipsoid.
Note that FK is a multiplication factor – the original permeability may be extremely small, but must be non-zero for
the SRV permeability enhancement to have an effect: if the base permeability is zero, then the SRV permeability
will also be zero.
The SHALE option uses the KMOD option to change the cell-to-cell transmissibilities and the well completion
connection factors during the simulation; the KMOD itself cannot be used at the same time as the SHALE option.
Introduction
MORE is able to model solubility of components in alternate phases using the SOLU keyword. This allows:
• Solubility of hydrocarbon components in the aqueous phase (aqueous hydrocarbon)
• Solubility of water in the hydrocarbon phase (vapourised water)
A typical usage is to model the dissolution of components such as CO2 in the aqueous phase.
Required Data
Solubility modelling is enabled by tables relating pressure to solubility expressed as a ratio of surface volume
units. The range of pressures should cover the range of pressures in the reservoir during simulation. Outside this
given range, solubility values are calculated by constant value extrapolation.
Consider a compositional model with a CO2 component with metric units (UNIT). A table of CO2 solubility in
water is given as:
SOLU CO2
-- Pressure (bar) Solubility (Mscf/Stb)
150.00 0.0100
500.00 0.0198
1000.00 0.0297
1500.00 0.0388
3000.00 0.0660
/
The 3rd column is the molar solubility ratio (Rhm with units mol/mol), converted from the 2nd column (units
mscf/stb) assuming the ideal gas law for the component CO2 at standard conditions, and the 4th column represents
the corresponding aqueous-hydrocarbon K-value K = 1+Rhm Rhm . Internally, MORE uses this K-value to determine
equilibrium conditions for solubility.
To model solubility of gas in a black oil model, a SOLU table may be entered for component GAS.
Solubility may be visualised as 3D grid data using Tempest VIEW:
Output Description
mnemonic
Rhaq Gas-water ratio for hydrocarbon in aqueous phase (for a single hydrocarbon component in the
aqueous phase)
RhaX Gas-water ratio for hydrocarbon in aqueous phase for SOLU table X (when there are multiple
hydrocarbon components in the aqueous phase; X lies between 1 and the number of SOLU tables
for hydrocarbon)
Rwv Water-gas ratio for water in hydrocarbon phase
Property modelling
The properties of the oil (hydrocarbon liquid) and gas (hydrocarbon vapour) are modified according to the solu-
bility as follows:
1. At the current reservoir pressure, the aqueous-hydrocarbon K-values are used to solve a K-value flash equa-
tion to determine the number of moles of each hydrocarbon component which are dissolved in the aqueous
phase, as well as the number of moles of water vapourised into the hydrocarbon.
For aqueous hydrocarbons, the effective number of moles of each hydrocarbon component is reduced by the
amount dissolved in water, and the effective number of moles of water is increased by the same amount.
For vapourised water, the effective number of moles of water in the water phase is reduced by that vapourised
into hydrocarbon, and the effective number of moles of hydrocarbon is icreased by the same amount.
The phase saturations and hence the relative permeabilities of each phase will depend on solubility.
2. After accounting for partitioning into water, the effective number of moles of each hydrocarbon component
left (in oil or gas) are flashed at reservoir conditions (using an EOS for compositional runs, or table lookup
in black oil runs) to obtain hydrocarbon liquid and vapour phases and their properties (such as saturation,
viscosity, density).
Water properties (viscosity, density) are obtained in the usual way by table lookup (e.g WPVT). The in-
tensive properties of the water phase (viscosity and compressibility) are assumed to be independent of the
hydrocarbons dissolved in the aqueous phase. However, since the number of effective moles of water has
increased for aqueous hydrocarbons, the water saturation Sw depends on the hydrocarbons dissolved in the
aqueous phase.
3. We now know the phase mobilities for each component (aqueous, liquid and vapour hydrocarbon). Compo-
nents are transported according to their carrier phases, and the component in phase mobilities of each com-
ponent (see the Technical Reference) can be updated to account for dissolved hydrocarbons or vapourised
water.
For example, the component CO2 in the example above may be mobile in any or all of the aqueous, liquid and
vapour hydrocarbon phases. The intensive properties for water (viscosity, density) depend only on pressure, but
the effective water saturation increases. The CO2 dissolved in water is removed from the hydrocarbon flash and
hydrocarbon property calculations. CO2 is now mobile in all 3 phases (gas, oil and water) and the production of
hydrocarbon from the well may include the CO2 dissolved in the water phase.
Initialisation
The normal MORE initialisation provides the number of moles of each hydrocarbon componenent in the hydro-
carbon phase, mcv , and the number of of moles of water in the aqueous phase, mwa . In order to take account of
solubility effects, a K-value flash is performed to calculate the initial ratios of dissolved components at reservoir
conditions.
However,
P this can only be performed for saturated cells containing both hydrocarbon and water phases, i.e.
c mcv > 0 and mwa > 0. For cells that are not saturated, then the user may provide initial gas-water ratio
for hydrocarbons which dissolve in the aqueous phase using the array RHAQ (if there is one soluble component)
or RHA1, RHA2 etc. (if there is more than one soluble component). In the same same way the initial water-gas
ratio for water in the hydrocarbon phase may be set using the array RVW in the INIT section. Nevertheless, as
soon as another phases contacts such a cell, a K-value flash will then reset these values.
Introduction
The four-phase Todd Longstaff models the flow oil, gas, solvent and water in the reservoir. The gas phase is the
original reservoir gas and the solvent is usually an injected fluid such as carbon dioxide. The solvent does not
dissolve in the oil, but is miscible with the oil to an extent determined by the fraction of solvent in the combined
gas+solvent phase. The default is that if the gas+solvent phase is purely solvent, then the gas+solvent phase will
be miscible with the oil, in the sense that the relative permeability curves become straight lines and the residual
oil falls to zero.
To a displacement process in which both phases flow at the same speed at all saturations, the mobility of the fluids
must be proportional to their saturations. This implies straight line relative permeabilities and a common viscosity
value. The Todd Longstaff viscosity mixing rule allows the phase viscosities to be mixed to an extent determined
by the Todd-Longstaff mixing parameter, usually termed ω. If ω = 1 the mixing is complete and both phases flow
with a common mixed viscosity; if ω = 0 the phases flow with their own viscosities.
Required Data
The MORE implementation of the four phase Todd-Longstaff model has a number of extra tables, set by the user,
which can change the behaviour of the model. These are all defaulted; the only extra data required is the solvent
specific gravity or molecular weight (SOLV) and the solvent phase formation volume and viscosity as a function
of density (SPVT).
Treating the solvent as a saturation allows additional control over how the phases flow to be included in the model.
For example, non-zero relative permeability end points may be set to more accurately represent the process and
avoid unrealistically high recovery predictions. The optional controls are:
Keyword Description Default
MFVS Miscibility factor vs. solvent fraction Straight line
MFVP Miscibility factor vs. pressure No variation
SSF Krs (Ss ) solvent saturation function Krs (Ss ) = Krg (Sg )
MROW Miscible limit residual oil vs. water satn Equals zero
MCSW Miscible critical solvent saturation vs. water satn Equals zero
FFVS Fractional flows (gas and solvent) vs. solvent fraction Straight line
TLMS Minimum miscibility saturation factor Equals 0.01
The core of the Todd-Longstaff solvent model is the dependence of the relative permeability of the oil and
gas+solvent system upon the composition of the gas+solvent phase. When reservoir gas dominates this phase
(fs = Ss /Sgs → 0, Sgs = Sg + Ss ) the oil and gas+solvent phases flow in the normal immiscible manner. When
fs approaches 1 then the oil and gas+solvent phases flow in a miscible manner. In this miscible limit the flows
of oil, gas and solvent reflect their saturations and miscible flow can be achieved. In this section we consider the
variation of the phase relative permeability functions with the solvent concentration in the gas+solvent phase.
The gas+solvent phase flows with a relative permeability of Krgs (sgs ), Sgs = Sg + Ss , where Sg and Ss are the gas
and solvent saturations. Krgs is a saturation dependent relative permeability curve which is interpolated between
Krg and Krs as a function of the solvent fraction
Smisc is a value that degrades the effect of the solvent at very low saturations, but has minimal effect at high
saturations. It has a default of 0.01.
Within the gas+solvent phase the default individual gas and solvent relative permeabilities are Krg = fg Krgs (Sgs )
and Krs = fs Krgs (Sgs ).
However, some extra generality can be added by allowing tabulated functions of fs and fg to replace the default
straight line functions, so that
Krg = ffg (fg )Krgs (Sgs )
Krs = ffs (fs )Krgs (Sgs ) .
ffg and ffs may be entered with the FFVS keyword. By default ffg (fg ) = fg and ffs (fs ) = fs .
With ω = 1 we should get the same particle velocities for all three hydrocarbon phases. This requires a set of
miscible limit permeabilities which obey
So
Krom = · Krh
So + Sgs
Sg
Krgm = · Krh
So + Sgs
Ss
Krsm = · Krh
So + Sgs
Krh is some relative permeability for the oil+gas+solvent system at the current water saturation, and is taken as
Krow (Sw ), the oil relative permeability with respect to water.
This is fine for the case in which the phase system is just oil-solvent and the miscible limit has been reached, but
in general there will be gas as well as solvent present. In that case we interpolate the approach to miscibility in
the solvent fraction fs = Ss /(Ss + Sg ). At some fs value the oil and gas relative permeabilities will consist of two
contributions:
• The miscible limit relative permeabilities: Krom and Krgsm
• The immiscible limit relative permeabilities: Kroi and Krgsi
The immiscible limit curves are the usual oil and gas relative permeabilities, Kro usually being based on a three
phase model such as Stone I or Stone II. The effective relative permeabilities are then interpolated between the
miscible and immiscible limit values:
Kro = fm Krom + (1 − fm )Kroi
Krgs = fm Krgsm + (1 − fm )Krgsi
fm is the miscibility factor, which approaches 1 in the miscible case. The default is that fm is simply the solvent
fraction in the gas+solvent phase, so that
fm = fs = Ss /(Sg + Ss ) .
However, MORE allows this dependence to be changed using the MFVS and MFVP tables to add a different
dependence on the miscibility factor fs and to add a pressure dependence if required:
fm = MFVS(fs )MFVP(P )
This might be used to allow the miscibility factor to approach 1 at a lower fs than unity, or to limit the miscibility
which can be obtained at low pressures.
However, it would not be correct to simply add the miscible and immiscible relative permeability curves with
a weight factor of fm , as these curves generally have different critical saturation end points. For example, if
the miscible relative permeability has a zero critical saturation, oil can drain down to that saturation if even a
small miscible component was mixed in. To avoid this, the relative permeability curves being mixed must first be
scaled to the same end points. This common end point is itself interpolated between the miscible and immiscible
endpoints. So the mixing process becomes:
If two phases are to be miscible, then the mobilities must be proportional to the fluid in place. This implies straight
line relative permeabilities and equal viscosities. In the Todd-Longstaff model a fourth power mixing law is used
to construct viscosities which are mixtures of two or three phase viscosities with saturation weighting. Depending
on the ω parameter value, the phase viscosities are interpolated between the natural individual phase values and
the mixed values1 .
µo = µio1−ω µmoω
µs = µis1−ω µmsω
µg = µig1−ω µmgω
Where µio , µis and µig are the standard unmixed individual phase viscosities and µmo , µms and µmg are the mixed
phase viscosities
µmo = µo µs µ̄os
µms = µo µs µg /µ̄osg
µmg = µg µs /µ̄gs
For a simple oil-solvent system with no gas present and ω = 1 the oil and solvent viscosities become equal and
the relative permeabilities are straight lines, so that the molar mobility of the components becomes proportional
to their local molar densities and the oil and solvent velocities become equal.
When fluids flow in a reservoir according to Darcy’s law, the flow has a dependence upon the fluid phase densities.
If two fluids are completely co-mingled, then they must flow in the same manner, and the same fluid density be
1 Todd, M. R. and Longstaff, W. J., The Development, Testing and Application of a Numerical Simulator for Predicting Miscible Flood
used in the flows for both phases. This mixed phase density would naturally be the saturation-based average of
the individual phase densities, for example
Sa ρa + Sb ρb
ρmab =
Sa + Sb
Using ω as a mixing parameter this leads to an interpolated expression
However, the Todd-Longstaff paper suggests a neat method of obtaining the density fractions which involves
inverting the viscosity mixing laws to obtain an estimate of the effective phase fractions and using those to define
the densities. This works well except for the (unlikely) case in which the phase viscosities are equal and in that
case the simple mixing rule above is employed.
MFVS
This defines the degree of oil to (gas+solvent) miscibility as a function of the solvent fraction in the (gas+solvent)
phase. If a cell contains just oil and solvent, such that the solvent fraction is 1, the oil and (gas+solvent) relative
permeabilities are deemed to be miscible. If a cell contains just oil and gas, such that the solvent fraction is 0, then
the oil and (gas+solvent) relative permeabilities are deemed to be immiscible.
If the solvent fraction (in the gas+solvent phase) is fs = Ss /(Sg + Ss ), then for some fs in the range {0,1} the oil
and (gas+solvent) relative permeabilities are:
where fm = fm (fs ). The variation of fm with fs is defined by the MFVS table, which defaults to a simple straight
line, fm = fs , or, in tabular form:
MFVS
0 0 /
1 1 /
/
However, in some cases the system may become effectively miscible at lower solvent fractions than 1, so MFVS
might be used to set a non-default form of the function fm (fs )
MFVS
0 0 /
0.8 1 /
1 1 /
/
MFVP
In some cases miscibility may be achieved at high pressure but not at low pressure. It is possible to limit the degree
to which the miscible limit of the relative permeability curve is obtained as a function of pressure using MFVP.
By default MFVP is set to unity for all pressures, equivalent to:
MFVP
1000 1 /
10000 1 /
/
However, if a non-default MFVP curve is entered, then the miscible relative permeability curves will become:
with f = fm (fs )fp (P ) where fm is obtained from MFVS and fp from MFVP.
SSF
Solvent saturation function. This is like the usual gas saturation functions which define gas relative permeability as
a function of saturation. SSF allows the relative permeability of the solvent phase to be entered as a function of the
solvent saturation. The end points of the Krs (Ss ) function should match those of the Krg (Sg ) function. When the
gas+solvent relative permeability is obtained as a function of the combined gas+solvent saturation, Sgs = Sg + Ss ,
then a mixture of the Krs and Krg curves is used:
So the overall gas+solvent phase properties change smoothly from those for the gas to those for the solvent as the
solvent fraction in the combined gas+solvent phase increases. This allows the user to deal with cases where the
solvent relative permeabilities are larger or smaller than the gas relative permeabilities.
MROW
MCSW
Miscible critical solvent with respect to water saturation. This is very similar to MROW.
By default, the miscible limit relative permeability curves are straight lines, the corresponding endpoints are zero.
However, MCSW allows the user to set a residual solvent saturation which operates even in the miscible limit case
of fm → 1.
The shape of the miscible limit Krom and Krgsm curves with KROW and KCS set is shown above. Note that the
sum of So and Sgs must be 1 − Sw , so for large Sw values it may not be possible to observe both endpoints in both
phases – as (Smrow + Smcsw ) may exceed 1 − Sw . In that case the lower endpoint such as Smrow for Kro will be
observed, and the gradient at which the relative permeability can rise from endpoint is limited to dK/dS ≤ 10.
FFVS
As mentioned above, the gas+solvent relative permeability is looked up as a function of Sgs . However, it must
then be split into a gas and a solvent relative permeability. The default is to use the saturation fractions:
Krg = fg Krgs
Krs = fs Krgs ,
with fg = Sg /(Sg + Ss ) and fs = Ss /(Sg + Ss ). FFVS allows this to be modified, so that non-linear functions ffg
and ffs may be set up so that
TLMS
The fraction of solvent within the combined fraction of gas and solvent is found using
fs = Ss /(Sgs + Smisc )
Smisc has a default of 0.01 and has a range of 0.0 to 1.0. It is recommended that the value of Smisc is not changed
from its default value.
Examples
A number of examples showcasing the use of the solvent option are distributed with the Tempest installation, as
described in the Solvent Examples page.
The dataset solventMiscible.dat is a simple one dimensional displacement demonstrating a miscible flood with the
Todd-Longstaff ω set to 1. The significant parts of the dataset are:
• CNAME OIL GAS SOLV WATR / Requests the use of the four phases, oil, gas, solvent and water.
• SOLV 25 TL Sets the solvent molecular weight and requests a four-phase Todd Longstaff treatment.
• TODD 1 Sets up a Todd-Longstaff omega value of 1 (use fully mixed viscosities and densities).
• PVTS This keyword is followed by PVT data for the solvent phase.
• SOLV Following the WELL keyword, this requests that the injection gas be pure solvent. Note that sol-
vent is always injected using gas surface volume rate units.
The resulting solvent phase profile shows a typical miscible profile, with no solvent ahead of the front and no oil
behind it (see the following figure).
At the end of the run recovery is 100% for both oil and reservoir gas. The gas-oil ratio shows an extremely sharp
rise at breakthrough (see the following figure):
If the zero oil saturation behind the front is regarded as unrealistic, then the MROW table may be used to set
up a residual oil behind the front even in the miscible case. In the dataset solventMiscibleMROW.dat a table is
included:
MROW
0.0 0.1 /
1.0 0.15 /
/
The result is an oil saturation of 0.1 behind the front (see the following figure).
TODD 0.5
in the original run without MROW (solventMiscibleTodd0.5.dat), the solvent saturation still goes to 1 and the oil
saturation to 0 behind the front, but there is a non zero solvent saturation ahead of the front (see the following
figure).
The recovery is still 100% but the gas break though is less sharp (see the following figure).
Note that the reported gas oil ratio includes both reservoir gas and produced solvent gas: MORE will report total
gas+solvent as a gas rate, then separate reservoir gas and solvent rates.
To look at a case which is less than totally miscible, it is possible to convert to using an injection gas which is 50%
reservoir gas and 50% solvent, by changing the SOLV keyword after the injector WELL keyword to:
SOLV 0.5
The result (solventPartialMiscible.dat) is a typical miscible displacement with 14% residual oil behind the front
(see the following figure).
However, it may be the case that miscibility is well developed at the operating pressure of 390 Bar and 50% solvent
in the injection, and this may be set using MFVS and MFVP (solventPartialMiscibleMFVS_MFVP.dat):
MFVS
0 0.0 /
0.4 0.95 / -- 95% miscibility at 40:60 solvent to reservoir gas ratio
1.0 1.00 /
/
MFVP
0 0.1 /
100 0.7 /
200 0.86 /
300 0.98 /
400 1.00 / --Pure solvent develops full miscibility at 400 bar
This then recovers nearly totally miscible recoveries, with a residual oil saturation of just over 1% behind the front
(see the following figure).
Introduction
Darcy’s law for the flow Vcp of component c in phase p in a porous media is
where
• CD is the Darcy constant
• Mcp is the mobility of component c in phase p
• PP is the phase pressure
• G is the gravity constant
• ρp is the phase fluid density
• z is the depth
The Darcy constant is unity if all quantities are in a consistent unit set, but reservoir simulation normally uses a
mixed unit set (such as time in days).
Note that permeability is really a symmetric mixed tensor Kji , where i is a contravariant index and j a covari-
ant index. For a real symmetric matrix there will exist a similarity transformation which will diagonalise the
permeability tensor
KD = UT .K.U
This can be viewed as a rotation of the coordinate system; that is, there exists a rotated orthogonal frame in which
the permeability is a simple diagonal tensor. The three directions with respect to which the permeability tensor is
diagonal are termed the principal axes of the permeability tensor. It is common in reservoir simulation to assume
that this frame coincides with the local grid orientation. However, this need not be the case, and the tensor option
in MORE allows this assumption to be avoided. The three diagonal elements of the permeability tensor with
respect to its principal axes are termed the principal permeabilities.
As a symmetric 3x3 matrix, the permeability tensor has 6 degrees of freedom. This allows us to specify the
permeability tensor in two ways:
• Enter the three principal permeabilities and three angles of rotation which define the principal directions.
• Enter the six independent permeabilities which define the permeability tensor.
Before continuing, we define true coordinates as the usual x, y and z system used in reservoir simulation to specify
grid and well locations. It is normal in reservoir simulation to use a right-handed system: if x increases along the
page, y increases down the page and z increases into the page. This has the same handedness as the standard set
of axes used in mathematics, in which x increases along the page, y up the page and z out of the page.
This is the traditional way in which MORE has entered tensor permeabilities, and the DEVX/DEVY/AXES option
used in MORE 6 and beyond is back-compatible with MORE 5.5. DEVX, DEVY and AXES are all MORE grid
arrays, and are all entered in degrees. They are similar to the usual set of Euler angles which define a rotation in
three dimensional space, although not identical.
Suppose the principal axes of the permeabilities tensor are a, b and c. These are defined in the original xyz space
by unit vectors ea , eb and ec . MORE will expect the principal permeability values Ka , Kb and Kc in these
directions to be entered using the usual K-X, K-Y and K-Z keywords. We will first consider the (ea ,eb ) plane in
which Ka and Kb are defined. This will often correspond with the bedding planes of the reservoir, but this is not
a requirement - we are simply locating a rotated frame with respect to the external xyz system.
DEVX and DEVY define the dip angles of the (ea ,eb ) plane in the true x and y directions (see the following
figure).
The plane containing ea and eb may be parameterised as z = a.x + b.y (by construction it passes through (0,0,0)).
The conditions for x = 0 and y = 0 define the coefficients a and b such that
If we consider points on the unit circle x = cos(φ), y = sin(φ) it is simple to show that the direction of maximum
dip is given by φ such that dz/dφ and d2 z/dφ2 < 0, that is, at α, such that
There are two values of α which satisfy this condition, but the second derivative condition may be used to find the
maximum z solution.
The maximum dip angle is given by β, where
Note: In these expressions angles are measured as dips (downwards from horizontal) and as clockwise from the
x-axis.
The angle between ec , the normal to the (ea ,eb ) plane, and the original z axis is the angle of maximum dip, β. ec
is the principal direction for Kc .
The first two actions to rotate the xyz axes into the principal tensor axes are thus a rotation of α around the z-axis,
then a rotation of β around the transformed x axis. The original xy axes have now been rotated into the (ea ,eb )
plane. Finally, a further rotation of γ around the transformed z-axis in the (ea ,eb ) plane will align the transformed
axes with (ea ,eb ,ec ). α, β and γ are the well-known Euler angles which define a rotation in three dimensional
space
cos α cos β cos γ − sin α sin γ cos α cos β sin γ + sin α cos γ cos α sin β
U = − sin α cos β cos γ − cos α sin γ − sin α cos β sin γ + cos α cos γ − sin α sin β .
− sin β cos γ sin β sin γ cos β
The angle entered with the MORE AXES keyword is not the final Euler angle γ. Rather it is the angle between
the principal tensor direction ea corresponding to Ka and the original x axis when viewed in plan.
Clearly, the additional rotation required will yield γ ≈ θaxes − α. The exact expression is
Note that Kxyz will not generally be diagonal, but will be a symmetric tensor which may be written in terms of
the six independent permeability values Kx , Ky , Kz , Kxy , Kyz , and Kzx
Kx Kxy Kzx
Kxyz = Kxy Ky Kyz
Kzx Kyz Kz
Kxy has been chosen to represent Kxy and Kyx , Kyz to represent Kyz and Kzy etc.
The preceding expression above provides an alternative method of entering the permeability tensor; it is possible
to enter the six independent elements of the general permeability tensor in the true xyz frame. This is done using
and the grid keywords KX, KY, KZ, KXY, KYZ and KZX.
Note that all the usual aliases exist: K-XY, K_XY, PERMXY etc.
The XYTRUE and ZTRUE arguments imply that the permeability values are to be regarded as being with respect
to true xyz space, not the local grid system.
Note that the TENS keyword should always appear in the input section of a run which is to use tensor permeability
calculations.
Using either the (KX, KY, KZ, DEVX, DEVY, AXES) method or the (KX, KY, KZ, KXY, KYZ, KZX) system
the effect is to define the permeability tensor with respect to the xyz grid system. To define transmissibility values
between cells, we need to transform K to a local system orientated with respect to the grid. Suppose we have a
grid cell with direction vectors in the local frame of ea , eb and ec ; that is, these may be written in terms of their
xyz components as
ea = eax .ex + eay .ey + eaz .ez
eb = ebx .ex + eby .ey + ebz .ez
ec = ecx .ex + ecy .ey + ecz .ez
It may be shown1 that the required transformation of the permeability from the xyz to the abc frame is
where
eax eay eaz
E = ebx eby ebz
ecx ecy ecz
These are with respect to the local cell axes, which need not be orthogonal. At this stage we will not consider the
effect of local grid distortion.
The effect of the non-diagonal nature of the permeability tensor in the local frame is to make the flow between
two cells through a cell face depend on the pressures of more than the two cells connected by the interface. The
usual two-cell transmissibility is replaced by a general set of flow coefficients, so that
where the summation is over all the cells e which effect the flow between cell a and cell b. In the two-cell case
Fabe =Rab for e=a and Fabe = -Rab for e=b. The term in (de -dab ) corrects the phase potential in cell e to the mean
depth of cell a and b. M Ucpab is the upstreamed mobility between cell a and b. Although this looks slightly
different from the usual Darcy flow expression it is really the same, and only gives different results when the
summation over the flow coefficients Fabe is increased to more than two terms.
In a general three dimensional case, up to 18 cells may effect the flow though the interface between one cell and
another. When all the cell interfaces are considered, the result is a 27-point scheme; that is, the flow equation
residual of a cell may involve the pressures of 26 other cells. However the mobility is still only a function of
the mobilities of the cells either side of the interface. The effect of the tensor permeability is to introduce the
possibility of flow to the neighbour in one direction being a function of the pressure gradient to the neighbour in
another direction.
Consider the flow between cell a and cell b in the d-direction (d=i, j or k). As the tensor has been rotated into
the local frame, we consider contributions from tensor permeability elements Kde , where e=i, j and k. The term
in Kdd represents the usual cell to cell permeability – in fact this is the only term considered in the usual 2-point
formulation. We now need to consider the new terms in Kdu and Kdv , v, u 6= d. These are flows in the d direction
caused by pressure gradients in directions other than d.
To evaluate the flow we need to estimate the transverse pressure gradient in the direction u. A suitable symmetrical
estimate is:
dP/ddu = 1/4((Pau+ − Pa )/dau+ + (Pa − Pau− )/dau− + (Pbu+ − Pb )/dbu+ + (Pb − Pbu− )/dbu− )
where Pau+ is the pressure of a cell with a positive offset in the u direction from cell a. This is illustrated in the
following example; to estimate the additional flow through the interface marked due to the off-diagonal tensor
term Kdu we combine the four marked gradient estimates.
1 Rachford, H. H. and Rice, J.D., Procedure for Use of Electrical Digital Computers in Calculating Flash Vapourization Hydrocarbon
The resulting flux through the mutual interface area A between the cells is
Fau+ are the required transmissibility coefficients. Ad is the interface area between the cells in the direction d,
and Kdu is the harmonic average of the tensor term Kdu in cells a and b. Reduced expressions for the transverse
pressure gradient dP/ddu may be used if some of the required cells are inactive.
In the case of the DEVX/DEVY/AXES input a wide range of arrays may be viewed to help check that the tensor
permeabilities have been entered correctly. The following figure illustrates the range of initial array data available.
DEVX, DEVY and AXES are the keyword data used to define the orientation of the principal axes (as discussed
earlier in this document).
The principal axis permeabilities are Kxp, Kyp and Kzp. These are the original permeability values with respect
to the principal axes; that is, the data originally entered with K-X etc.
The six true permeability arrays Kxt..Kzxt are the resulting permeabilities with respect to the usual x, y and z
axes. Note that although there are three principal permeabilities with respect to the principal axes, there are six
independent elements of the permeability tensor with respect to the x, y and z directions. As the permeability
tensor is symmetric, only three off-diagonal elements are plotted (that is, Kyxt=Kxyt etc.).
If the grid is not aligned with the x, y and z axes, the permeability tensor used to calculate transmissibilities with
respect to the local cell flow directions needs a further transformation. The result is the tensor set Kx..Kzx. These
are the final permeabilities. In a non-tensor run, Kx, Ky and Kz are the entered values and Kxy, Kyz and Kzx are
assumed to be zero.
Example
A simple example may be used to illustrate some of these ideas. Suppose we have a simulation with a non-isotropic
Kx/Ky permeability distribution, with the input data
K_X=1000
K_Y=100
DEVX=0
DEVY=0
AXES=45
Tempest will show that the principal permeabilities are the input values, KXP=1000, KYP=100 and the resulting
permeability values in the true x and y directions are
Note that the determinant of the permeability is unchanged (see the following figure).
1000 0 550 −450
D= = = 302500 − 202500 = 100000
0 100 −450 550
As there is no further rotation from the x-y to the grid system the actual permeabilities used are KX=KXT,
KY=KYT, KXY=KXYT.
As expected, flow is skewed towards the principal axis with 1000 mD permeability at 45° to the x-direction:
Now, suppose we rotate the grid through 45 degrees, leaving all the other data untouched. The actual permeabilities
used are further rotated from the xy to the grid system, and become Kx=100 and Ky=1000 again. As would be
hoped, the saturation pattern is symmetrical when the grid is aligned with the principal permeability axes (see the
following figure).
When completion connection factors are obtained, the determinant of the permeability tensor in the directions
normal
p to the direction penetration is used. For example,
p for a vertical well in the non-tensor case, the Kh value
uses Kx Ky . In the tensor case this is generalized to Kx Ky − Kxy Kyx . This ensures that the connection is
invariant under grid rotations.
Faults and connections specified using NNC are still treated as two-point non-tensor flows.
Introduction
Governing equations
The extra solution variable controlling energy transport is the temperature, stored as a relative value; that is, deg
C or deg R.
The conservation of internal energy may be written
" #
∂ X X
φ ρj Sj Uj + (1 − φ)ργ Uγ = −∇ · ρj Hj vj − λ∇T − HLoss + QH
∂t j j
where p is the pressure, ρj is the mass density (lb/ft3 or kg/m3 ), and CU is a units conversion constant. Units
of specific internal energy and specific enthalpy are Btu/lb or kJ/kg. The two sums in the first expression are
performed over the flowing phases (that is, j = oil, water and gas) but note the accumulation term also considers
the rock term
(1 − φ)ργ Uγ
The most important properties of the steam-water system, in particular the specific volumes, enthalpies, and
viscosities are held as in-built correlations in MORE. These are taken from Ejiogu and Fiori2 and Tortike and
2 Ejiogu, G.C., and Fiori, M., High-Pressure Steam Properties Correlations, SPE 15405, 61st Annual Technical Conference and Exhibi-
Farouq Ali3 .
Specific Heats
A correlation due to Gambill is presented by Brill and Mukherjee1 for estimating the specific heat of oil
1
Co = √ (0.388 + 4.5 · 10−4 · TF ) [Btu/(lb ◦F)]
γo
where γo is the stock tank oil gravity [water = 1] and TF is the temperature in deg F.
We therefore use the form
Co = Ao + Bo · TF [Btu/(lb ◦F)]
with defaults of
0.388
Ao = √ [Btu/(lb ◦F)]
γo
and
4.5 · 10−4
Bo = √ [Btu/(lb ◦F2 )]
γo
Cr = Ar + Br · TF
Rock Specific Heat Coefficients Ar and Br can be set in the simulation by using the UROC keyword.
3 Toritke, W.S., and Farouq Ali, S.M., Saturated-Steam-Property Functional Correlations for Fully Implicit Thermal Reservoir Simula-
tion, SPE 17094, SPE Res. Eng., Nov. 1989, pp. 471-475.
1 Brill, J.P., and Mukherjee, H., Multiphase Flow in Wells, SPE Monograph Series, Vol. 17, Richardson, 1999.
Thermal Conductivities
Following the model of Grabowski et al.4 , the overall thermal conductivity is given by
X
λT = (1 − φ)λr + Sj λj
j
where λr is the [dry] rock thermal conductivity and the summation j runs over the phases, oil, water and gas.
Each of the conductivities in this expression is cast into the form
λ = (A + B · T ) · (1 + C · (P − Pref ))
where γo is the stock tank oil gravity; see Brill and Mukherjee1 for details.
This can be written as
λo = (Ao + Bo · TF ) · (1 + Co · (P − Pref ))
with defaults of
1.635 4.86 · 10−4
Ao = , Bo = − , Co = 0.0.
γo γo
The oil thermal conductivity can be set in the simulation by using the THCO keyword.
λw = (Aw + Bw · TF ) · (1 + Cw · (P − Pref ))
Liquid thermal conductivities are typically 10 to 100 times larger than those of the low-pressure gas at the same
temperature. MORE uses the familiar linear form
λg = (Ag + Bg · TF ) · (1 + Cg · (P − Pref ))
for In Situ Combustion, SPE 8396, Paper presented at 54th Annual Fall Technical Conference and Exhibition, Las Vegas, Sept. 23-26, 1979.
5 Reid, R. C., Prausnitz, J. M. , and Poling, B. E., The Properties of Gases and Liquids, 4th Edition, McGraw-Hill, New York, 1988
Thermal conductivity values for dry rock depend on the degree of consolidation and the mineral content, and
should be determined for the particular target reservoir. It is assumed here that the conductivity will be modelled
by
λr = (Ar + Br · TF ) · (1 + Cr · (P − Pref ))
A typical value of Ar for Kern River oil sands unconsolidated rock is 6.0 Btu/(ft day °F) and for consolidated
Berea sandstone the value is 34.0 Btu/(ft day °F).
MORE uses defaults of Ar = 20, Br = 0.0 and Cr = 0.0.
The rock thermal conductivity can be set in the simulation by using the THCR keyword.
Thermal Expansion
All the fluids will generally expand with temperature. The expansion of the steam and water phases is covered by
the steam table. A standard quadratic form is used for the effect of temperature on oil and water formation volume
factor:
Bo (P, T ) = Bo (P, Tbase ) · [1 + Axo · (T − Tbase ) + Bxo · (T − Tbase )2 ]
Bw (P, T ) = Bw (P, Tbase ) · [1 + Axw · (T − Tbase ) + Bxw · (T − Tbase )2 ]
where Tbase is the reference temperature of 60 °F/15 °C. The thermal expansion coefficients Axo , Bxo , Axw , Bxw
are zero by default, but can be set using the keywords THXO and THXW respectively.
For gas, a simpler linear relationship is assumed based on the ideal gas law:
1
Bg (P, T ) = Bg (P, Tbase ) · [1 + · (T − Tbase )]
Tinit
where Tinit is the initial reservoir temperature.
The rock pore volume is also a function of temperature, although in this case the pore space will be reduced as the
rock grains expand:
The thermal expansion coefficients for rock can be set using the keyword and THXR.
The most widely used Heat Loss Model in thermal simulation is that due to Vinsome and Westerveld6 . In this
model it is assumed that heat is only lost vertically into the cap and base rock and that it is infinitely thick; that is,
conservation of cap/base rock energy. The temperature variation is described by
z
T (z, t) = (a0 + a1 z + a2 z 2 ) exp −
d
where z is the distance into the cap/base rock such that the interface between the reservoir and its exterior is
defined to be z = 0, and t is the time from the start of the simulation. The diffusion length d is related to the
thermal diffusivity of the cap/base rock K by
1√
d= K ·t
2
The coefficients a0 , a1 and a2 are fitting coefficients whose values are determined by satisfying various boundary
conditions described below. The diffusivity is related to the rock thermal conductivity by
λ λ
k= =
CV ρ · Cr
6 Vinsome, P. K. W. and Westerveld, J., A Simple Method for Predicting Cap and Base Rock Heat Losses in Thermal Reservoir Simulators,
where CV is the volumetric specific heat [in Btu/(ft3 °F) or kJ/(m3 K)], λ is the rock thermal conductivity [in
Btu/(ft day °F) or kJ/(m day K)], ρ is the rock compressed density [in lb/ft3 or kg/m3 ] and Cr is the user supplied
rock thermal capacity [in Btu/(lb °F) or kJ/(kg K). The conductivity and specific heat are approximated by the
temperature independent terms; that is, λ is set to Ar
THCR Ar Br
and Cr is set to Ar in
The expression above provides simple analytical expressions for the amount of heat flowing from the reservoir
into the cap-rock over a time step and the total amount of heat transferred to the cap rock at the start of the step.
If we know this total energy transfer to the start of the step, then the values of a0 , a1 and a2 may be obtained and
the heat loss obtained.
For a given cell on the boundary of a reservoir, the cap rock is interpreted as the column of rock adjoining the
outer face of the cell.
Note that the model is capable of describing the back-flow of heat from the cap and base rock to the reservoir rock
as would be expected for a cold-water follow-up of a hot-water injection.
The model is activated by adding HLOS ON to the INPUT or FLUID section.
The basic data requirement for turning on steam/thermal modelling is to use STEA or THER keyword in the dataset.
The oil and rock properties may be modified using the keywords described in the previous section, but the defaults
are often acceptable.
An example demonstrating a thermal model using heat loss model can be found here.
One of the main benefits of heat injection is the reduction of oil viscosity with temperature. The variation of oil
viscosity with temperature is described using keyword OVVT
OVVT
100.0 1.0 /
150.0 0.2 /
200.0 0.034 /
250.0 0.01 /
/
This is entered by the RTEM (Reservoir Temperature) keyword in the INITIAL section and it follows the usual
MORE convention on grid/initial arrays. An example for a 5-layer system would be:
RTEM
ZVAR
210 212 214 216 218 /
Steam Injection
To specify the heat injected steam injection, we must define the specific enthalpy of the water as it enters the
formation. This is done via the STEAM event. An example would be
Generally the steam temperature or pressure may be entered, and the steam quality, which is the fraction of the
injected water in the steam phase. Finally, the mixture specific enthalpy may be entered directly.
To specify the heat injected by hot water injection, all that is required is the temperature of the water as it enters
the formation. This is done via the TEMP event.
Each simulation time step is selected according to a number of criteria, based on the solution changes in the
previous step, the simulation schedule, IMPES stability criteria, and user specified limits. The aim is to make
nonlinear solver converge smoothly while also minimizing the overall simulation time. If a time step does not
converge, the step size is reduced and solved again.
The keywords DELT and DTMX may be used to control time stepsize and timestepping tolerances in the simulator:
• DELT specifies the size of the next time step. This option is useful at the beginning of a simulation and
when major well changes are made at a new recurrent data specification (see READ keyword)
• DTMX specifies a table of maximum step sizes vs. time.
As the simulation proceeds, each reported step is written on a new line, starting with a four letter code defining
the reason for taking a particular timestep; the number of steps reported to the .out file and to standard output is
defined by the RATE keyword.
The meaning denoted by each step code is listed below:
arra Step to ARRA reporting time
chop Step following a step reduction
caut Caution step due to recent chops
cflm Step defined by CFL limit
chLE Step repeated due to linear solver exception
delP Step defined by pressure change target
delS Step defined by saturation change target
delT Step defined by temperature change target
delt Step defined by a DELT keyword
divi Step divided to prevent unequal split of time to a report
esol Step to ESOL reporting time
esum Step to ESUM reporting time
evnt Step to event time
flxr Step to FLXR time
hist Step to historical rate time defined in HTAB
init Initial time step
incr Step increased due to succesful last step
max Maximum step
mend End of simulation
oper Step to operation INVO time
potn Step to well POTN calculation time
rate Step to RATE reporting time
repe Step repeated due to well or group limit checks
rept Step to time specified with READ
rexs Step set by Rex controller
test Step to well TEST time
verr Step defined by volume error target
wag Step set by WAG well control mode
wagE Step repeated as WAGT tolerance exceeded
wmod Step following a well modification
The tracer option allows a tracer to be attached to a conserved fluid component. The component may be stock
tank oil or gas in a black oil model, any of the components in an equation of state run, or water.
The tracer solution variable C is the number of moles of traced component per mole of total component. The
traced component is assumed to have the same properties as the untraced component. The result is a conservation
equation for traced component as well for the total component
This is straightforward to black oil models in which the tracer carriers are also surface fluids; for example we can
have oil, gas and water tracers.
So it would be possible in a black oil model to have three tracers
• OOO, associated with the oil component
• GGG, associated with the gas component
• WWW, associated with the water component
which would be set up using the keyword TRAC. See tset0.dat for complete example:
--Set up three tracers, associated with oil, gas and water carriers
To get extra tracer rate, total and fluid-in-place information, select the WELL, GROUP and FIELD packages with
RATE; for example
Loading the output into Tempest VIEW, there are three new items for each well and for each tracer, the tracer
concentration, the traced production rate and the traced production total. So, for example, for a production well
you see the following:
Therefore the mnemonic is, for example, wtorOOO for the Well Tracer Oil Rate for OOO.
For well P-1, the plots look like:
In this case the initial tracer concentration is 50%, so the traced oil rates and totals are half the oil rates and totals.
Note that the traced fluid rates take the units of their carriers, so that the traced oil total is in ksm3 . Looking at the
gas tracer you see as the following figure:
In this case the gas production rises faster than the traced gas production, reflecting the fact that the majority of
the gas produced at the end of the run is injected gas with a tracer concentration of zero. This can also be seen
from the lower tracer concentration at the end of the run.
Looking at the group GGG we see similar tracer concentrations and traced fluid rates and totals, but additionally
there are traced fluid-in-place values, as illustrated in the following figure:
The reduction in the traced gas-in-place value reflects the production of the traced gas, as illustrated in the follow-
ing figure.
Simple tracers can be used in an equation of state run. A tracer is then carried by a component such as methane.
In this case the traced component rates and totals are reported in moles. So for tracer A, values reported for a
production well and groups are as illustrated in the following figure:
If the initial C1 tracer concentration is 1.0, the production concentration might take the form as illustrated in the
following two figures. See tset1.dat for complete example.
For equation of state modelling the use of component tracers is not ideal; the results of real interest are the surface
volumes. In a compositional model surface volumes are defined by the separators. A separator consists of a
number of stages and converts the stream of components coming from the well into stock tank oil and gas.
To trace the origin of the surface stream from a well or group we need to track all the components which feed the
separator, as these all affect the surface oil and gas volumes. To do this, a tracer set may be used.
A tracer set may be set up in a compositional run using the TSET keyword. Each tracer set will set up Nch tracers
Fig. 17.21: The arrival of injection gas at the producer can be seen in the reduction in the concentration of the
in-place C1.
Fig. 17.22: The reduction of the moles in place reflects the moles recovered.
(where Nch is the number of hydrocarbon components). However, the rates reported will be those which are
obtained when all the traced components in the set are flashed through the separator. The entire tracer set can be
set up using just the tracer set name.
In a common application, one set to 1 above the gas-oil contact and one set to 1 below the gas oil contact. See
tset2.dat for complete example:
TSET A AOGC
TSET B BOGC
MORE will then report the set A and set B oil and gas production rates for the wells and groups, and the A and B
volumes in place. For example, as illustrated in the following figure:
It can be seen how the gas from above and below the contacts contribute to the total gas production. As the well is
completed in the bottom layers of the reservoir, the initial flow is mainly from below the contact, but this changes
as lighter components are drawn down from above the contact.
The API tracking option allows for modelling the oil component as mixture of different types of oil with different
surface densities and PVT properties. This option is available for black oil simulations. However, it is not currently
available with vaporised oil (wet gas).
API gravity is a measure introduced by the American Petroleum Institute and related to the oil’s specific gravity
(with respect to pure water) by:
141.5
γAPI = − 131.5
γoil
When using the API tracking option two or more oil PVT tables have to be provided one for each API gravity
value. The oil property look up for the oil in a cell depends also on the oil’s API gravity. For cells with an API
gravity between two tabulated API gravity values the properties are interpolated between the two associated oil
PVT tables. This is in contrast to the use of PVT-regions, where a single PVT-table is attached to a cell.
With the interpolation of oil properties between different PVT tables an API tracking simulation can be more
sensitive to PVT data handling. Because different simulators use different methods to handle PVT data, users may
wish to use the ETUN keyword to better match other simulators.
As the oil is displaced the oil API-value for a cell changes in time. To account for that, a mass conservation
equation is solved at the end of each time step to update the surface oil density and thus the API gravity. This
update step is similar to a tracer update, see Tracer Calculations.
API tracking is enabled with the APIT keyword in the FLUI or INPU sections.
PVT Data
In the FLUI section two or more oil PVT tables have to be specified together with their API gravity values. Oil
PVT tables are entered with either PVTO or OPVT. However, due to its greater flexibility, PVTO is generally
recommended. API gravity values are entered with the keywords SGRA, e.g.
FLUI BLACKOIL
An alternative to SGRA is the keyword SDEN which specifies the oil and gas surface densities. In metric units the
following input is equivalent to that above.
FLUI BLACKOIL
SDEN
838.9 0.9172 -- surface densities of table 1
SDEN
864.6 0.9172 -- surface densities of table 2
SDEN
891.9 0.9172 -- surface densities of table 3
Note: SGRA keywords must be ordered with decreasing oil API gravity. SDEN keywords must be ordered with
increasing oil surface density. The PVTO or OPVT tables must follow that order accordingly.
API Groups
The API tracking option overrides the concept of PVT regions. Since PVT tables are selected and interpolated
between according to a cell’s oil API, all tables may be applied to the whole reservoir. However, it is possible to
group PVT tables together to API groups. In that case the PVTN array is used to assign an API group number to
a region. Oil property look-up for a cell in such a region takes only those PVT tables into account which belong
to that API group indicated by the cell’s PVTN region number.
The use of more than just one API groups must be indicated by the keyword APIG. Which tables belong to which
API group is indicated by a break in monotonicity of the oil API gravity or the oil surface density.
Example: using SGRA would require decreasing oil API gravity. Places where this rule is violated indicate the
start of new API-group.
FLUI BLACKOIL
Initialisation
The initial oil API gravity distribution over the reservoir is specified in the INIT section.
If the initial conditions are determined by equilibration the oil API gravity can vary with depth. This initial API
gravity variation versus depth is supplied with the keyword AGVD. The oil API gravity distribution is stored in
the array OAPI.
Alternatively, when the system is initialised with non-equilibrium conditions, the initial oil API gravity distribution
can be specified by directly populating the array OAPI, e.g for a grid with 600 cells
OAPI VARI
250*37.0 250*32.0 100*27.0 /
Reporting
With API tracking switched on, the oil API gravity array OAPI is written to the array file at each array output
time. OAPI can be displayed as 3D View in VIEW.
If the WELL package has been selected with the RATE keyword, the quantity WAPI will be written to the rate file
at each rate output time. For open producers the quantity WAPI is the API gravity of the oil in the wellbore. For a
shut well MORE reports zero WAPI. The WAPI vector can be displayed as 2D View in VIEW.
Example
Introduction
The BRINE tracking option provides a model for blending waters with different salinities and for assessing the
effect of varying salinity on the flow performance.
When using the BRINE tracking option, the water properties looked up during the simulation vary with the salt
concentration. To define the variation of water density and viscosity with the salt concentration, two or more
salt concentrations must be specified in the brine PVT table. The water property look up during the simulation
depends on the salt concentration. For cells with a salt concentration between two tabulated salt concentrations
the properties are interpolated between the provided property values.
As the brine is displaced the salt concentration for a cell changes in time. To account for that, a mass conservation
equation is solved at the end of each time step to update the salt concentration. This update step is similar to a
tracer update, see Tracer Calculations.
Brine tracking is enabled with the BRINE keyword in the FLUI or INPU sections.
PVT Data
In the FLUI section brine properties must be provided using the PVTB keyword. Every brine table should specify
properties for two or more salt concentrations. The brine properties may be augmented with salt dependent water
surface densities using the BDEN keyword.
PVTB
-- P_ref Csalt_ref
3000.0 0.0 /
-- Csalt Bw Cw mu Cmu
0.0 1.000 3.0E-6 1.00 1.00E-6
7.0 0.9 2.0E-6 1.10 1.01E-6
10.0 0.8 1.9E-6 1.11 1.011E-6 /
BDEN
64.0 65.0 67.0 /
Initialisation
The initial salt concentration over the reservoir is specified in the INIT section.
If the initial conditions are determined by equilibration the salt concentration can vary with depth. This initial
variation of the salt concentration with depth is supplied with the keyword SCVD, e.g.
SCVD
5000.0 5.0
5200.0 6.7
5400.0 8.3
5500.0 9.0
/
SALT VARI
250*4.5 250*7.2 100*9.3 /
Brine Injection
The salt concentration for injected water can be specified and changed for each water injecting well with the
WSALT event, e.g.
Brine in Aquifers
The Carter-Tracy and Fetkovich aquifers can be sources of brine. The keywords AQCT and AQFE which are
used to define a Carter-Tracy and Fetkovich aquifer respectively both support an argument to specify the salt
concentration in the aquifer’s water.
Reporting
With BRINE tracking switched on, the salt concentration array SALT is written to the array file at each array
output time. SALT can be displayed as 3D View in VIEW.
The following quantities will be written to the rate file at each rate output time, when certain packages have been
selected with the RATE keyword:
• WELL package
Example
The following options are currently not available with brine tracking
• Steam
• thermal
• polymer
• solvent
• dual porosity
• flux runs
• numerical aquifers
Formulation
If a trapped oil saturation is defined using the SORM grid keyword, the simulator makes the following transfor-
mation at the start of the run
SoTrap=min(SORM,So)
where the new initial saturations Son , Sgn , Swn replace the original initial saturations Soi , Sgi , Swi .
Pore volume and reference pore volume are modified to remove the trapped oil volume:
The fluid in place in the isolated SoTrap saturation is reserved and added to each fluid in place report.
The normal simulation then proceeds in the non-trapped oil space, the isolated trapped oil playing no role. Note
that the trapped oil will not react to pressure changes; that is, it will not evolve gas into the non-trapped oil space
even if the pressure falls below the bubble point.
Output
The usual saturations are those within the non-trapped oil space. However, the overall saturations including the
trapped oil are available:
• Soto - Total oil saturation allowing for trapped oil
• Sgto - Total gas saturation allowing for trapped oil
• Swto - Total water saturation allowing for trapped oil
• Ssto - Total solvent saturation allowing for trapped oil
At high flow rates in gas condensate systems there is some evidence that the relative permeabilities change as a
function of flow velocity for example, see Henderson et al, SPE 307701 .
The velocity can be characterised by a dimensionless group, the capillary number, given by
Vg · µg
Ncap =
σgo
where
• Vg is gas velocity
• µg the gas viscosity
• σgo the oil-gas surface tension
all converted to SI units.
The gas velocity is then expressed in terms of the apparent gas velocity Vga as
Vg = Vga /((1 − Sw ) · ϕ)
where
• Sw is the water saturation
• ϕ is the porosity
The apparent gas velocity is obtained as gas volume flow rate per unit area.
The velocity dependence generally starts to be effective at around
Ncap ∼ 10−4
0≤f ≤1
such that f = 1 corresponds to a zero gas flow capillary number and f = 0 corresponds a very high gas flow
capillary number. It is then further assumed that the relative permeability for very high gas flow capillary number
becomes a simple straight line curve. The full relative permeability used is then
The high gas velocity relative permeabilities are Krohgv and Krghgv , straight line relative permeabilities, both
rescaled to the same modified end points, given by
Relative Permeability by the Steady-State Method, SPE Res. Eval. and Eng., April 1998, SPE 30770
where Sogcr and Sgcr are the critical saturation values. Thus the end points become zero at the high gas flow
capillary number limit of f = 0.
The low-velocity contributions Krolgv and Krglgv are the normal relative permeability curves at low capillary
number.
A definition of the factor f is required. This should approach 0 for large capillary numbers (high flow rates)
and 1 for small capillary numbers (low flow rates). MORE follows the form proposed by Whitson, Fevang and
Saevareid, SPE 564762 , and defines
1
f=
(Ncap /NcapRef ) + 1
where
• Ncap is the capillary number
• NcapRef is a reference capillary number entered with the VDKR keyword and defaulted to 10−4 .
The second argument of the VDKR keywords allows the surface tension used in the capillary number calculation
to be reset (the default is 20 dynes/cm). ALL may be used with the VDKR keyword to request that the velocity
dependent relative permeabilities be applied to all the wells. Alternatively WVDK can be used to turn the option
on only for selected wells.
However, note that the velocity dependent relative permeability effect is only applied to producing completions of
producing wells; the effect will not occur in the case of injecting completions.
MORE obtains the effect of velocity dependent relative permeabilities within the context of a dynamic gas pseudo-
pressure calculation. The effect of the velocity dependence is integrated through the drawdown region near the
well. The effect is naturally much more marked in the near-well region where the gas flow velocity is highest.
At each radius the gas velocity is estimated from the total molar flow, multiplied by the mole fraction in the gas,
multiplied by the molar volume to obtain the volume flow, and then divided by the flow area to get the apparent
gas velocity.
2 Whitson, C.H., Fevang, O. and Saevareid, A., Gas Condensate Relative Permeability for Well Calculations, Ann. Tech. Conf. and
The well fracturing model allows the effect of a hydraulic fracture in connecting a well to additional cells in a
reservoir to be modelled.
Fig. 17.23: For vertical wells the fracture will appear in completed layers with the specified layer range.
The fracture geometry is defined by angle, length and a range of global grid layers. The fracturing event occurs
at specified times in the simulation (using the WFRA keyword or event). Extra connections in the fractured well
appear at the fracture time and their connectivity may decay with time as specified below. Fractures consist of two
vertical wings, possibly of unequal lengths or with a non-zero bend angle between them.
Fig. 17.24: For horizontal wells the fracture will cut across the well at a specified measured depth. For vertical
wells, each completion will connect out into a fracture.
The connection from the cell to the well consists of two parts:
• Inflow from cell into fracture
Fig. 17.25: Top view of a single fractured reservoir cell depicting the various lengths involved in the fracture flow
calculation. See main text for definitions of all quantities.
Each flow from a fracture-completed cell into the well is treated independently; that is, unless the improved
well fracture model is used, MORE does not directly model interference between flows from different cells on a
fracture.
where
• Kc is the superposition of the cell’s Kx and Ky permeabilities along the normal to the fracture plane.
• df is the length of the fracture in the cell: this is set by the boundaries of the cell in the case where the
fracture crosses the cell, or the ends of the fracture in the case in which it terminates inside the cell. For,
example a short fracture might stay within the boundaries of the cell in which the cell is completed.
• dz is the thickness of the cell.
• dn is the mean distance across the cell in the direction at right angles to the fracture plane. This provides
an estimate mean distance fluid must flow to reach the fracture. On average the distance to the edge of cell
is dn/2 on either side, so the mean distance to flow is dn/4. However, flow occurs from two sides which
accounts for the factor of 8 in the expression above.
• C is a unit conversion constant.
The completion connection factors ccfc in the above calculation are the transmissibilities for flow from the reser-
voir cells into the fracture. The effective connection factor of each fracture completion for flow along the fracture
to the well needs to take into account two effects:
1. The friction along the fracture arising from its finite aperture.
2. The crowding in the finite fracture volume due to flows from all other fracture completions. For a producer,
as inflow moves towards the wellbore from the outer completions it has to share the fracture aperture with
flow from completions nearer the well.
MORE’s standard model is detailed below and an improved model is described separately.
This model treats the first effect, the friction along the fracture, rigorously, and uses an approximation for the
second effect, the crowding inside the fracture.
The flows along each side of the fracture are treated independently. Let us consider a single side in the following.
For each connection, the inverse of the ccf for one fracture-completion, if it were the only one, is just the sum of
the resistances from the cell into the fracture and along the fracture to the well,
1 1 1
= + . (17.25)
ccf ccfc ccfp
Here, ccfc is the completion connection factor (17.24) from the cell to the fracture, and ccfp is the path-length
dependent completion connection factor for flow along the fracture to the well. It is defined as
with cond the fracture conductivity, dz the cell height and d the distance between fractured cell and well trajectory.
This captures the effect of the finite aperture on the flow between a single completion and the well.
The following model describes a fracture within a single grid layer as a series of completions without cross-flow.
We consider the case of a producer but an analogous argument holds for the injector case.
Electrical analogue
Essentially we have a problem similar to one in electrical circuit theory: a resistance network like the following,
where the input nodes Ii correspond to the fracture-completions, and the output node O corresponds to the well.
The cell and well pressures translate to nodal voltages and the ccf s into and along the fracture correspond to two
types of conductances, 1/Rf and 1/Rc , as depicted in diagram 1.
We would like to convert it into an effective network such as shown in diagram 2 with independent paths between
each input Ii and output O.
Unfortunately, an exact correspondence does not exist, so we consider diagram 3 instead, in which all input nodes
have been collapsed into one.
Rf 1 Rf 2 Rf 3 Rf 4 Rf 5 Rf 6
O
Rc1 Rc 2 Rc 3 Rc 4 Rc 5 Rc 6
I1 I2 I3 I4 I5 I6
O
R5 R6
R1 R2 R3 R4
I1 I2 I3 I4 I5 I6
Rf 1 Rf 2 Rf 3 Rf 4 Rf 5 Rf 6
O
Rc1 Rc 2 Rc 3 Rc 4 Rc 5 Rc 6
Under the condition of keeping the currents through the resistances Rc1...n unaltered, it can be uniquely trans-
formed to diagram 4.
O
R1 R2 R3 R4 R5 R6
The effective resistances Ri are determined such that the currents match those through the corresponding original
resistances Rci in diagram 3. To solve for these resistances, we use the following approximate step-by-step
scheme. It is based on the fraction of the conductance available to each current contribution when that path is
shared.
The crucial approximation then consists in identifying the resistances in diagram 4 with those in diagram 2.
Consider the i-th connection in diagram 3, starting at 1 from the left. The network to the right of that path can
be represented by a single effective resistance R̂i . Then, by applying Ohm’s law, the ratio between the combined
current q̂i through that network and the current on the i-th path is the inverse of the respective resistance ratio,
q̂i Rci
= . (17.27)
qi R̂i
Hence, by recursion, the combined current through all paths from i onwards is related to the current through the
first path as
R ci R c1
q̂i = · ... · q1 .
R̂i R̂1
Since the ratio (17.27) is usually less than one, the currents decrease rapidly with increasing i. To find the effective
resistances in diagram 4, we require the ratio between successive currents qi+1 /qi . By construction, q̂i = qi+1 +
q̂i+1 , and hence
q̂i q̂i+1 Rc
=1+ = 1 + i+1 .
qi+1 qi+1 R̂i+1
Exploiting the analogy between electric and flow networks, the ratio between successive completion inflows is
just qi+1 /qi . In the approximation of diagram 3 this ratio equals ccfi+1 /ccfi , i.e.
Rci+1 −1
ccfi+1 Rci
= 1+ . (17.29)
ccfi R̂i R̂i+1
By solving the linear system describing the third diagram above, we obtain the completion resistance ratios
(17.28), which we use to successively calculate the effective completion connection factors.
Since these usually decay (too) quickly along the fracture within the framework of this model, completions far
from well produce very little. To compensate, the effect of this shared path calculation can be limited by using
the WFSP keyword or corresponding argument to the WFRA keyword or event. MORE then calculates a mixed
ccf between the value obtained from recursion formula (17.29) and expression (17.25), with the WFSP coefficient
being the linear weight.
The situation is analogous to a horizontal well: if the wellbore friction is greater than the typical drawdowns, the
toe completions will fail to produce and only the heel end of the well will be effective.
If a well is fractured at some time Tfrac in the simulation, then at every subsequent step a correction factor F (w, τ )
is calculated:
T − Tfrac
F (w, τ ) = w + (1 − w) exp −
τ
This is then applied to the well fracture completion connection factor. The effect is that the additional connectivity
supplied by the fracture at the time of the fracturing operation decays to w ∈ (0 . . . 1) at a rate set by the time
constant τ . Both constants can be entered with the WFRA keyword or event. The default are w = 0, τ = ∞, that
is, F (w, τ ) = 1.
In order to model the flow inside well fractures more accurately, MORE provides improved well fracture mod-
elling. See the documentation of well fracture modelling for a general introduction to the topic. Here, we only
describe the improved fracture flow model.
Model Details
The fracture is modelled as nodal network (see figures below) with unknown pressures p~i on the internal nodes
and unknown flows ~qe between internal and external nodes. The list of external nodes combines nodes in reservoir
cells and along the wellbore.
Solving a well fracture happens in three stages:
1. We find the internal node pressures by modelling voidage Darcy flow qij between neighbouring network
nodes i and j, that is
where pi and di are the pressure and depth of node i respectively, µij and ρij the fluid mobility and density,
and g standard gravity.
2. For each external node associated with a reservoir cell, we calculate the component flows to the adjacent
internal node in the usual manner from the drawdowns determined in the first step.
3. To obtain the fracture component flows into the well through each wellbore node, we sum all flows obtained
in the previous step and attribute fractions according to the relative drawdowns of the wellbore nodes.
For links between internal and external nodes i and j, we set the mobilities µij to the corresponding bulk voidage
mobilities multiplied by ccfc defined in the documentation of the original WFRA model. For links between two
internal nodes i and j, we set the mobilities µij to the averaged bulk voidage mobility of all external nodes
multiplied by the average ccfp of the two internal nodes.
In step 2, we use the bulk component-in-phase mobilities of the respective cells in calculating the inflows into the
fracture. For outflows we use the wellbore mobilities once all producing well connections have been summed up.
Each well fracture is considered as a single entity with a single connection into the wellbore. By default, the
connectivity between the fracture and the well takes into account the perforated length (for vertical fractures) or
the well radius (for horizontal fractures). The user may control this connectivity but not individual reservoir-
fracture connections, which are automatically handled by MORE.
The improved fracture model generates a fracture network based on the fracture geometry. While the model
is quite general, the choice of network topology is currently limited to the following two cases, which may be
selected using the WFPLUS keyword:
1. By default, a one-dimensional grid along the fracture trajectory. Reservoir cells feed into the fracture at
different fracture grid nodes thus modelling the friction along the fracture accurately.
2. A star-shaped topology in which all reservoir cells connect to a single fracture grid cell via independent flow
paths. The conductivities for these links are set to (1/ccfp + 1/ccfc )−1 . This corresponds to the standard
WFRA model without the shared path correction, see WFSP.
Along with improved physical modelling, the improved fracture model comes with new HFRA and VFRA events
to simplify setting up fractures. These events automatically use the improved fracture model.
Fig. 17.30: The simulated fracture network depicting a one-dimensional fracture flow path. The yellow points
denote nodes associated with reservoir cells, which are linked to the well fracture network by the connectivities
derived from rock permeability (green). The connectivities for links along the fracture (blue) are derived from the
fracture connectivity given in the WFRA definition.
Fig. 17.31: The simulated fracture network using the star-shaped topology. In this setup, the reservoir cells
(yellow points) are linked to the well through a single internal node via effective two-point connectivities. No
direct crossflow through the fracture from one cell to another can occur.
Furthermore, the REFRA may be used to re-fracture an existing well fracture. This may be used to dynamically
reset or modify certain fracture parameters.
Several global settings for the fracture model may also be set using the WFPLUS keyword.
Output
Each fracture appears as a single entry in the Layer panel in Tempest VIEW. The usual rate vectors are presented
as for completions: All fractures can be displayed using the toggler button from the well toolbar in the 3D
Fig. 17.32: Fracture summary vectors. Note that the mnemonics for these vectors all start with x.
viewer. Using the right-click menu in the viewer, the user can open the Well Fractures menu. Besides allowing
the user to change the transparency of the grid or that of fractures, this allows the user to select a fracture property
(from a drop-down list) to be displayed over all fractures. Each internal node is represented by a two-dimensional
cell, as shown in the example below:
A legend range can be seen in the top right hand corner of the 3D view if a fracture grid property is select from
the drop-down. The context menu for this legend allows the user to configure the colour scale in the same way as
the 3D legend.
When using the MODEL STAR option of the WFPLUS keyword, the fracture geometry is simplified to a single
cell on each side of the fracture. This can be seen in the example below:
A more geologically realistic example based on the Emerald dataset is Emerald_VFRA_HFRA.dat, which illus-
trates how, by default, the fractures follow the geological layers:
Further examples demonstrating different options are found in the HFRA and VFRA event help pages.
• The improved fracture model uses well potentials as part of the solution method, so these are automatically
requested at every time-step. While the well potential calculation interval may be set using the POTN
keyword or event, it is not recommended to do so as this will adversely affect the fracture flow calculation.
• Similarly, well potentials must be used for group guide rates, which is equivalent to using the POT option
of GTAR - the CCF option may not be used.
Fig. 17.33: Example of three well fractures (with network topology 1) displaying the internal node pressures.
Hovering the mouse over the respective fracture provides its details at the bottom of the viewer.
Fig. 17.34: Example of three well fractures (now with network topology 2) displaying the singular fracture
pressures.
• It is not possible to use the improved fracture model with multi-segmented wells.
• It is not possible to use the improved fracture model with coarsening.
• Using well fractures and local grid refinements (LGRs):
– It is not possible to start fractures from inactive cells (using WFPLUS INAC) when the grid contains
local grid refinements (LGRs).
– The one-dimensional fracture network topology is also refined provided the fracture completely resides
inside a single LGR. If the fracture crosses an LGR boundary, the fracture network topology is not
refined and follows the global grid.
The WFPLUS keyword may be used to convert existing fractures created by WFRA keyword or the WFRA event
to the improved fracture model.
Example datasets for using the improved fracture modelling with WFRA events and the WFPLUS keyword are
WFRA_WFPLUS.dat and WFRA_WFPLUS_LEGACY.dat.
Note that, since the improved model does not treat each fracture node as an individual completion, in contrast
to the standard model, discrepancies in well reference depth can arise when combining the DATU keyword with
option TOPC and the LAYER or DEPTH fracturing options. To ensure the well reference depths are based on the
top connected cell rather than the top completion, the DATU keyword provides the option TOPL to be used as
alternative to TOPC.
The simulator allows you to apply a flexible well management strategy. Fluid production and injection can be
controlled at the individual well level or at the group (and field) level. When well and group constraints are
violated, remedial actions will be carried out.
Group (and field) level control is applied at the end of a timestep. For individual wells, a well TEST keyword
enables you to check if wells that have been shut-in due to constraint violations can be reopened.
Note: In MORE 6 the default is not to re-test wells: TEST is required to turn on well testing.
Group Definition
Wells in a group are specified using the GROUP keyword. To determine the production and injection from a
pattern, a fraction of a well can be assigned to a group. Wells can belong to more than one group. However, you
must be aware that adding production and injection from the individual groups can lead to a higher total than the
field.
The following two examples illustrate the specification of groups in the simulator.
This example assigns wells N-01, N-03, N-08, N-10 and N-11 to a group named FS#2:
The group starting with the four letters DRIL is special, and contains wells to be drilled (see Notes below) as
the need arises. GROUP ALL contains all the wells listed in the other groups and hence can be considered as a
GROUP containing all the wells in the field.
Normally in MORE, groups are sets of wells with no particular hierarchy. However, is is possible to set up a
hierarchy using the PARENT keyword. This allows a group to be a member of another group. This allows a
hierarchical control pattern to be set up similar to that described by Holmes in1 .
Group controls for production wells can be specified using the GLIM keyword or the GPLIM event. For injection
wells the ILIM keyword or the GILIM event can be used.
Two types of limits can be specified:
• rate limits,
• ratio limits (valid only for producers),
Limit options: when a group limit is violated, a remedial action takes place. By using the options MIN or MAX
both limit types can be defined as
• minimum limit - action triggered if actual value falls below limit value
• maximum limit - action triggered if actual value rises above limit value
It is also possible to turn a rate type limit into a group target using using the option HOLD. The HOLD option
defines a continuous adjustment of the group to meet a rate target.
Possible remedial actions include:
1 Holmes, J.A., Enhancements to the Strongly Coupled, Fully Implicit Well Model: Crossflow and Collective Well Control, SPE 12259, 7th
Action Description
BOOST boost by a factor
CUTB cut back by a factor
DRIL open well from drilling queue
REDE redefine member wells
SHUT shut all wells in the group
STIM stimulate wells in the group
STOP stop run
WORK workover wells in the group
Please consult the keyword (GLIM, ILIM) or event (GPLIM, GILIM) help pages for applicable actions.
The DRIL action searches the drilling queue for a well belonging to the group and drills the well. Only one well
is drilled at a time. The drill queue must be set up before any drill actions can be performed.
The REDE action applies a redefinition which needs to be set up using either the GRED keyword or the GPRED,
GIRED events.
The STIM action revises the well index values of the wells in the group according to input specified on the STIM
well sub keyword. The wells in the group are stimulated one at a time until there is no violation or all possible
wells have been stimulated.
The WORK action supports three options to select the type of workover:
• WRKS - Shut the worst well in the group
• WRKA - Workover all the wells in the group
• WRKW - Workover the worst well in the group
A well is worked over by plugging zones one at a time until there is no violation or only one zone is open.
The controls discussed in the previous section can be specified for individual wells using the WLIM keyword or
the PLIM, ILIM events.
When a group has a rate target, normally all the wells in that group are available to assist in meeting that target. If
the wells are under individual control and the group is not meeting any of its targets, no action is taken. However,
if the group rate exceeds the target, then some wells will be placed under collective control: that is, controlled
by the group. Some wells will generally remain under individual control, for example, bottom hole pressure, top
hole pressure of well rate limits and the remaining group production or injection will be distributed between the
collectively controlled wells. The division will be made on the basis of the guide rates for each well.
In MORE the default is to use the total completion connection factor for each well to define a guide rate, although
potential based guide rates may be selected using the GTAR keyword. The actual value of the guide rate is not too
important, but the fractional value is.
For a group with a target rate of T for which the individually controlled wells are producing a total of TI , the
target assigned to collectively controlled well w is
Tw = (T − TI ) · fw
GRw
fw = P
v GRv
P
where v GRv is the sum of the guide rates over all the collectively controlled wells in the group.
It is possible to set the guide rate GR for a well directly, using the WUGR keyword, but for consistency it is often
best to set the guide rates for all the wells in a group.
Normally all the wells in a group are available for collective control. However, if a group contains a subgroup and
that subgroup is itself on a group target, it is treated like a well on an individual control and the wells which it
contains are hidden from the parent group.
It is also possible to specify guide rates for sub-groups within a parent group using the GUGR keyword. The
groups are then treated as single entities. Targets will be assigned to such groups in the same way as collective
targets can be assigned to wells in a group.
Specifying guide rates for subgroups allows a predetermined split of a group target between two subgroups.
Suppose a group XX contains just two subgroups, AA and BB: if AA and BB are assigned guide rates of 0.6 and
0.4, any group target will be split between the subgroups in a 60:40 ratio. This assumes that the subgroups are
capable of making those rates; if not, they will be on individual control and just subtract from the required parent
group rate to be distributed.
A specified fluid stream produced from a group of wells can be reinjected after accounting for any sales and/or
makeup into injectors in the same or another group. The amount of sales and makeup can be controlled by
specifying a target for sales (or makeup) and an upper and lower limit (bounds) for makeup (or sales).
Recycle calculations are performed at the end of every timestep. To obtain the correct composition of the recycle
fluid, the first timestep is repeated. The RECY keyword defines the fluid to be re-injected into an injection group,
GINJ, in terms of the production from a production group, GPROD.
The SALE card allows the user to specify that a fraction or rate of the group production from GPROD is deducted
from the stream available for re-injection. If the recycle stream has excess capacity over that needed for injection
into GINJ, it will be added to the sales stream.
Suppose a study has the following keywords to control production and injection using the recycling option (metric
units)
The production from well P-1 is recycled into well I-1, subject to a sales rate of 100 ksm3 /day, but a makeup
(MAKE) gas is available at a rate of 50 ksm3 /day. The injector has an initial target of 2000 ksm3 /day, but this is
subject to the recycling conditions:
In the output from MORE, group values are reported for recycling and reinjection where the recycling rate is
associated with the production group: it is the amount of gas taken from the production stream for recycling.
The reinjection rate is associated with the injection group: it is the amount of injection which originated from
recycling.
As an example, suppose we have injection and production wells in groups XXX and YYY respectively, with parent
groups FXXX and FYYY
Then the recycle total is reported in groups YYY, FYYY and ALL (as illustrated in the following figure).
whilst the reinjection total is reported in XXX, FXXX and ALL (as illustrated in the following figure).
The drill queue is the group with name DRIL. If drill actions are to be performed then the group DRIL and all its
member wells must be defined at the start of the simulation (time 0). For each well in the drill queue, the definition
must include the producer/injector status, completions/perforations, and a BHP target, which are all subsequently
used when the well is drilled.
The example below demonstrates a basic set up of the drill queue:
EFOR 'DAYS'
ETAB
P-2
0 PROD
0 PERF 2537.46 2587.46 0.1520 0.0 1.0
0 OPT 5000.00
0 BHPT 68.9475
By default, wells are drilled sequentially in the order they are defined in the group receiving the drill action.
However, the DPRIO event may be used to request that wells are drilled in decreasing order of their drilling
priority.
By default, drilled wells that are subsequently shut are removed from the drill queue. However, the DRIL keyword
may be used to allow wells to be re-opened (or re-drilled) after they have be shut.
In MORE, a well index can be supplied directly, or calculated internally, using one of several options for vertical
or horizontal wells. For deviated wells, the total well index for each completion must be supplied.
The different options for well index processing are discussed under the ZONE well sub keyword. The following
discussion presents the well index calculation methods used in the simulator.
Regardless of the grid configuration, well rates and pressures are related using the following basic well correlation
where
• qil is the molar production rate of component i from completion l
• λil is the molar mobility of component i in completion l. For an injection well, the total molar mobility
times the injected fluid composition is used.
• WIl is the well index for completion l
• pl is the pressure of completion l (converted to datum)
• pbh is the bottom hole pressure of the well
By default, the datum depth is set by the DATU keyword. However, individual well reference depths can also be
set using the DREF keyword or event.
The well index is given by the following general expression
kl hl fl
WIl = Θ
ln(rol /rw ) + Sl
where
• Θ is π2 , π or 2π for Cartesian grid corner, edge and interior wells, respectively. For radial grids, Θ is the
included angle in radians.
√
• kl is k1 k2 for completion l, k1 and k2 are permeabilities in the principal directions perpendicular to the
well
• hl is the thickness of completion l
• fl is the zonal multiplier for completion l
• rol is the well block equivalent radius for completion l
• rw is the well bore radius
• Sl is the skin value for completion l
The well index has units of md-ft (field) or md-m (metric). It is, however, common to define the cell connection
factor (CCF) in terms of default ECLIPSE units, cP×rb/day/psi (field) or cP×rm3 /day/bars (metric). The CCF is
related to the well index WI by
CCF = Cdarcy × W I
For these systems, Peaceman gives an expression for the well block equivalent radius. His formula is valid for
rectangular grid blocks and conventional 5-point differences in 2D or 7-point differences in 3D when the principal
permeability axes are aligned with the grid. Under these conditions, the well block equivalent radius is given by
p p 1/2
∆X 2 ky /kx + ∆Y 2 kx /ky
ro = f (α)
(ky /kx )1/4 + (kx /ky )1/4
where
p
• α = (∆Y /∆X) kx /ky
• f (α) = 0.28073 for point centred 5-point grids and interior wells in block centred grids
• f (α) = 0.28073 · exp arctan(α)
α for edge wells, block centred grids
• f (α) = 0.28073 · exp 12 [1 + π α2 + α1 − α arctan(α)] for corner wells, block centred grids
For edge and corner wells in block centred grids, the exponential correction terms are applied only for vertical
wells. This well model works best if the first two grid intervals next to the well are uniformly rectangular and the
permeabilities are nearly constant. Well correction may be turned off using the WCOR keyword.
For horizontal wells in 3D, the simulator uses the same formula used for vertical wells. For example, for a
horizontal well completed in the x-direction, the well block equivalent radius is calculated using the expression
above, except kx is replaced by kz and ∆X is replaced by ∆Z.
The accuracy of the well correlation will be poor if the grid sizes and permeabilities vary substantially for the
first few intervals around the well. This fact should be considered when designing a grid for horizontal well
calculations.
A horizontal well in the missing direction (y-direction) of a 2D cross section is analogous to a vertical well in a
2D areal system, so the same calculation procedure is used. A horizontal well in the x-direction of a 2D cross
section is treated like a vertical well in a cross section.
If a horizontal well is specified for a 2D areal system, the well index is calculated using the same procedure as for
vertical wells in a 2D cross section.
Most wells are initially defined by a trajectory in real xyz-space, which corresponds to a Measured Depth dMD
along the trajectory from some reference point such as drilling platform. If this reference point of (x0 , y0 , z0 ) is
assigned the Measured Depth dMD (x0 , y0 , z0 ) = 0, then at any subsequent point along the trajectory, the dMD is
given by
q
dMD (x, y, z) = dMD (xp , yp , zp ) + (x − xp )2 + (y − yp )2 + (z − zp )2
Note: The z-position is usually called the True Vertical Depth (TVD).
wellAB2
-- X Y Z(TVD) MD
695508.000 7712850.000 2024.830 0.0
695508.000 7712847.000 2033.070 1*
695508.000 7712850.000 2042.850 1*
695509.000 7712848.000 2052.650 1*
This data can be included in the RECU section of MORE by using the TFIL or TTAB keywords.
Completion intervals can then be defined for this well with respect to the MD interval using the WELL sub-keyword
COMP. For the example trajectory above, the well specification would look something like the following
in which two intervals have been defined between Measured Depths of 2028 and 2035, 2041 and 2049 m, both
having a radius of 0.09 m and the first having a skin of -2.5, the second a skin of 0.0.
As wells are re-completed with time, the COMP keywords for a particular well maybe re-specified any number of
times during the RECU section.
Internally, MORE will compute which cells are intersected by the user-specified well trajectory, as illustrated in
the following figure.
Once it is known within which cells the well trajectory lies, its direction which may be made up of one or more
segments is projected onto the 3 surfaces of the cell defined by the cell mid-points. Thus contributions of the
path length along these surfaces are computed, the direction cosines, which are then used in a generalised form
of the well index calculations discussed previously to compute Completion Connection Factors (CCFs) for well
segments which are designated as open completions by the COMP keyword.
Fractured Completions
With CIJK a fractured completion may be specified using the FX or FY options, for a fracture running across the
cell in the x or y direction. In the FX case, the fracture runs in the x-direction across a grid block. The area for
the flow is Dx · Dz and the distance the fluid must travel into the well is Dy /4 on average. Allowing for the two
sides on the fracture the completion connection factor becomes
CD · 8 · Ky · Dx · Dz
CF X =
Dy + (4/π · S · Dx )
For most purposes in reservoir simulation Darcy’s law is perfectly adequate. Flow is a simple linear function of
pressure difference. However, near wells it is possible for gas to flow sufficiently quickly that non-Darcy effects
appear, and the rate flow is rather less than a linear dependence on the pressure gradient would suggest. This is
due to the effect of inertial terms in the Navier-Stokes equation: the gas is accelerated and decelerated as it passes
through the tortuous pore space. The effect is similar to turbulence, and has the effect of impeding the flow.
Traditionally, non-Darcy effects in gas flow near wells are treated with a D-factor – an additional rate dependent
skin term.
The calculation of completion connection factors was discussed in the Horizontal Wells in 2D and 3D Cartesian
Systems section. These calculations generally include a skin factor S. In the presence of a D-factor we add an
additional term to the skin factor of D · qg , where qg is the gas flow at surface conditions.
The expression for the well index from above is of the form
K ·h
WI = Θ
ln(ro /rw ) + S
with Θ = 2π for the usual case where no edge correction is applied.
In the presence of a D-factor, the well index becomes
K ·h
WI = Θ
ln(ro /rw ) + S + D · qg
where qg is the flow rate of gas (as a surface rate). However, this gas flow rate itself depends on the well index as
qg = Mgg · Pdd · WI
K ·h
= Mgg · Pdd · Θ
ln(ro /rw ) + S + D · qg
K · h · Fq
= Mgg · Pdd · Θ = Fq · qg0
ln(ro /rw ) + S
where
• Mgg is the mobility of gas in the reservoir gas phase.
• Pdd is the drawdown into the well.
• qg0 is the expected flow in the absence of a D-factor.
• Fq is a modification factor of the form
ln(ro /rw ) + S 1
Fq = =
ln(ro /rw ) + S + D · qg 1 + f · qg
with
D
f=
ln(ro /rw ) + S
The final condition on the gas flow is therefore
qg0
qg =
1 + f · qg
This can be re-expressed as
f · qg2 + qg − qg0 = 0
This is a simple quadratic condition which enables qg , the gas flow in the presence of a D-factor, to be obtained
in terms of qg0 , the gas flow in the absence of a D-factor.
The gas flow in the absence of the D-factor, qg0 , is a function of the gas phase mobility in the reservoir. The
D-factor is only applied to flow in the reservoir gas phase; the oil and water phases do not flow sufficiently fast
to show non-Darcy effects. However, the D-factor is normally measured in terms of the surface gas rate, so the
mobility of surface gas in the reservoir gas phase is used; gas which flows into the well dissolved in oil is not
included in the calculation.
In the compositional case this simple approach is not possible: the surface gas rate depends on the separator
conditions at surface. In this case we use the reservoir gas phase flow rate, converted to an ideal gas flow rate at
surface conditions. The same is done with steam in the thermal case: the gas rate used in the D-factor calculation
is a molar rate converted to an ideal gas flow rate at surface conditions.
For injectors, the rate of injection is controlled by the voidage mobility in the injection cell. In this case, the
flow correction factor is obtained from the gas mobility exactly as before, but is applied only to the gas phase
component of the voidage mobility, which becomes
MORE also contains more advanced inflow equations for modelling gas wells, these are described in more detail
in Gas Pseudo-Pressure.
The testing of a well, or sections of a well, can be used to obtain a relationship between the well to reservoir
pressure difference and the linear and quadratic terms in the gas flow rate, that is:
where Pr and Pw are the reservoir and well pressures, and qg is the gas flow rate in surface volume terms.
We wish to use these coefficients to define the well skin and D-factor. The required relationship is derived below.
Derivation of Relationship
Darcy flow
For Darcy flow, the gas flow rate qgD into a well at some radius r reads
2πrKh dP
qgD = · ,
Bg µg dr
where
• K and h are the inflow permeability and interval length
• µg is the gas phase viscosity
• Bg is the gas formation volume factor, given by:
Bg = hreservoir volume gasi/hsurface volume gasi .
From the real gas law, gas volume is v = nRT Z/P , so Bg = Cv (Z/P )/(Zsc /Psc ) where ‘sc’ indicates surface
conditions and Z(P ) is the gas z-factor and Cv is the unit conversion factor from surface to reservoir volume units
(e.g. Cv = 1000 sm3/ksm3 for metric units). With Zsc = 1, Bg = Cv ZPsc /P , and so
2πrKhP dP
qgD = · ,
µg Cv ZPsc dr
which can be re-arranged to give
dP µg Cv ZPsc D
= · qg .
dr 2πrKhP
Let φ ≡ P 2 , so dφ/dr = dφ/dP · dP/dr = 2P dP/dr and we get
dφ µg Cv ZPsc D
= · qg .
dr πrKh
If we assume that the gas properties Z and µg are approximately constant, this can be integrated between the
wellbore radius rw and the block equivalent radius rr (at which P = Pr ) to obtain
µg Cv ZPsc
φr − φw = Pr2 − Pw2 = · [log(rr ) − log(rw )] qgD ,
πKh
which yields an expression for the flow into a well completion
Pr2 − Pw2
qgD = ccfD · , (17.30)
2µg Cv ZPsc
where the term
Non-Darcy flow
Non-Darcy effects are commonly taken into account in the gas flow rate qg through skin and rate-dependent skin
constants S and D, while retaining formal analogy to eq. (17.30):
Pr2 − Pw2
qg = ccf · ,
2µg Cv ZPsc
where
Although a single ccf value is normally associated with a single completion, if we can assume the ccf denominator
and the quadratic drawdown are constant across an entire well or a range of completions, then a relationship is
obtained for the well flow
P 2 − Pw2
P
k 2πKk hk
qgw = · r ,
log(rr ) − log(rw ) + S + Dw qg 2µg Cv ZPsc
where the D-factor is now in terms of the flow for the whole well and the sum is over completions. With N =
2 2
P
k 2πKk hk the sum of ccf numerators, this may be re-arranged to provide an expression for Pr − Pw :
B = 2Dw µg Cv ZPsc /N
These relationships may be inverted to obtain expressions for S and D:
Dw = BN/(2µg Cv ZPsc ) .
So if the basic completion geometry (rw , K, h..) is known the skin and D-factor values may be obtained from A
and B.
Note that the D-factor for a well w and for a completion k are related by the requirement that
Dw qgw ≈ Dk qg
Limitations of Model
The derivation above follows that of the Russell-Goodrich inflow model, in which gas expansion is modelled using
a constant Z-factor expression. In particular, the derivation assumes constant Kh, µg , and Bg from the well radius
rw to the constant pressure radius rr .
In practice, the constant pressure radius may be quite large, and these assumptions may not be valid. In particular,
the default implementation of the ABC event assumes that the constant pressure radius may be approximated by
the well block equivalent radius ro , as derived by the Peaceman formula. For small grid cells this approximation
is unlikely to be correct and may lead to significant errors.
17.43. Obtaining Skin and D-factor from A and B Coefficient Well Test Data 1789