pictures/imod_logo.png

iMOD User Manual version 4.4 (html)


8.10WELL-FUNCTIONS


8.10.1DEVWELLTOIPF-Function

The function DEVWELLTOIPF converts Deviated Wells, described in CSV format, to an IPF file.

FUNCTION=

DEVWELLTOIPF

CSVFNAME=

Enter the name of an CSV file with minimal 6 columns that represents x- and y coordinates, azimuth and inclination, e.g. CSVFNAME=D:\DATA\AGS.CSV.

IPFFNAME=

Enter the name of an IPF file that need to be created for the data in the CSVFNAME„ e.g. IPFFNAME=D:\DATA\AGS.IPF. For each unique borehole in the CSV file, another point will be created in the IPF. The associated TXT files for the boreholes will be stored in the same folder as the IPFFNAME.

NCOL
(optional)

Enter the column number in the CSV file that represents the unique NAME of the borehole, e.g. NCOL=4. By default NCOL=1. The NAME of the borehole will be used to create the file name for the associated TXT files. Therefore, the character set ‘: /’ will be replaced by a ‘_’ (a space is part of the replacement as well, denoted as the second character in the set).

XCOL
(optional)

Enter the column number in the CSV file that represents the x-coordinate, e.g. XCOL=4. By default XCOL=2.

YCOL
(optional)

Enter the column number in the CSV file that represents the y-coordinate, e.g. YCOL=6. By default YCOL=3.

ZCOL
(optional)

Enter the column number in the CSV file that represents the z-coordinate, e.g. ZCOL=6. By default ZCOL=0 that means that the z-coordinate will be 0.0 m+MSL.

DCOL
(optional)

Enter the column number in the CSV file that represents the depth, e.g. DCOL=6. By default DCOL=5. Remember that the DEPTH is measured as the net distance (meter) through the borehole.

ACOL
(optional)

Enter the column number in the CSV file that represents the azimuth, e.g. ACOL=8. By default ACOL=6. The azimuth is defined as the angle with the z-axes measured clockwise with a zero angle pointing to the north and 90 to the east.

ICOL
(optional)

Enter the column number in the CSV file that represents the inclination, e.g. ICOL=12. By default ICOL=7. The inclination is defined as the angle from the surface (xy-plane) downwards by a positive angle whereby 90.0 degrees is perpendicular downwards.

NLCOL
(optional)

Enter the number of labels to be additional added to the TXT files of the boreholes, e.g. NLCOL=2. By default NLCOL=1 and a default label column is added (see LCOL{i}).

LCOL{i}
(optional)

Enter the column number in the CSV file that represents the label, e.g. LCOL1=4. By default LCOL1=0 and a default label is used. The label can be used to colour particular trajectories along a borehole differently. If this keyword is absent, iMOD will add a default label ‘S’.

Example 1

FUNCTION=DEVWELLTOIPF
CSVFNAME=D:\AGS.CSV
IPFFNAME=D:\IPF.IPF

This example, converts the columns in the CSV file via the default columns setting to an IPF file, the outcome in 3D could look like the following image.

pictures/h72-end/devwells.png


8.10.2ASSIGNWELL-Function

The ASSIGNWELL function reads a geological model (TOP/BOT) in order to assign well screens to the right formation layer.

FUNCTION=

ASSIGNWELL

IPFFILE_IN=

Give IPF file containing WELL or MEASUREMENT information.

IPFFILE_out=

Give IPF file outputfile.

IXCOL=

Enter the column number in the IPF file IPF{i} that represents the x coordinate, e.g. IXCOL=4. By default IXCOL=1.

IYCOL=

Enter the column number in the IPF file IPF{i} that represents the y coordinate, e.g. IYCOL=6. By default IYCOL=2.

IDCOL=

Enter the column number in the IPF file IPF{i} that represents the extraction rate of the well, e.g. IQCOL=12. By default IQCOL=3.

IZ1COL=

Enter the column number in the IPF file IPF{i} that represents the top of the well screen, e.g. ITCOL=4. By default ITCOL=4.

IZ2COL=

Enter the column number in the IPF file IPF{i} that represents the bottom of the well screen, e.g. IBCOL=6. By default IBCOL=5.

NFORMATIONS=

Enter the number of formations

FORMATION{i}=

Enter the number of the column in the IPF for the ..... of the i\({}^{th}\) formation

TOP_L{i}=

Enter the IDF for the i\({}^{th}\) modellayer that represents the top of modellayer i, e.g. TOP_L1=D:\INPUT\TOP_L1.IDF.

BOT_L{i}=

Enter the IDF for the i\({}^{th}\) modellayer that represents the bottom of modellayer i, e.g. BOT_L1=D:\INPUT\BOT_L1.IDF.

Example 1

FUNCTION=ASSIGNWELL
IPFFILE_IN=D:\DATA\WELL.IPF
IPFFILE_OUT=D:\DATA\WELL_ASSIGNED.IPF
NFORMATIONS=2
FORMATION1=1
FORMATION2=2
TOP_L1=D:\GEOHYDROLOGY\TOP1.IDF
BOT_L1=D:\GEOHYDROLOGY\BOT1.IDF
TOP_L2=D:\GEOHYDROLOGY\TOP2.IDF
BOT_L2=D:\GEOHYDROLOGY\BOT2.IDF

Above an example is given how to divide well filters in the file WELL.IPF over 2 model layers resulting in the file WELL_ASSIGNED.IPF.


8.10.3MKWELLIPF-Function

The MKWELLIPF function computes the extraction strength for each well based on a weighed value according to their length and permeability of the penetrated model layer. At the end of the procedure iMOD echoes a summary of the total and average extraction per model layer.

FUNCTION=

MKWELLIPF

NLAY=
(optional)

Enter the number of layers from which well may be organized, e.g. NLAY=7, by default NLAY=0 which means that only extraction rates are computed from the associated TXT files.


Following keywords are needed/optional whenever NLAY greater than zero

TOPIDF{i}=

Enter the name of an IDF-file that represents the top elevation of the i\({}^{th}\) modellayer, e.g. TOPIDF1=D:\MODEL\TOP1.IDF.

BOTIDF{i}=

Enter the name of an IDF-file that represents the bottom elevation of the i\({}^{th}\) modellayer, e.g. BOTIDF3=D:\MODEL\BOT_LAYER3.IDF.

KDIDF{i}=
(optional)

Enter the name of an IDF-file that represents the transmissivity of a particular i\({}^{th}\) modellayer, e.g. KDIDF2=D:\MODEL\TRAN_L2.IDF.

CIDF{i}=
(optional)

Enter the name of an IDF-file that represents the vertical resistance between two adjacent modellayers i and i+1, e.g. CIDF1=D:\MODEL\C_L1.IDF.

ITCOL=
(optional)

Enter the column number in the IPF file IPF{i} that represents the top of the well screen, e.g. ITCOL=4. By default ITCOL=4.

IBCOL=
(optional)

Enter the column number in the IPF file IPF{i} that represents the bottom of the well screen, e.g. IBCOL=6. By default IBCOL=5.

MINKHT=
(optional)

Specify the minimum horizontal transmissivity (m\(^2\)/d) that will receive a well. By default MINKHT=0.0 m\(^2\)/day. This parameters is used only whenever values are entered for KDIDF{i}.

MINKD=
(optional)

Specify the horizontal transmissivity that is used te define the model layer of the well. The first model layer with a transmissivity of more than the specified MINKD, will receive the complete well. By default MINKD=0.0 m\(^2\)/day. This parameters is used only whenever values are entered for KDIDF{i} and will be active for those wells that cannot be assigned due to missing values for ITCOL and IBCOL.

IMIDF=
(optional)

Whenever IMIDF=0, the mid of a well screen is computed by the top and bottom screen heights if both available (not equal to the parameter FNODATA). Whenever IMODF=1, the mid of the screen is equal to the top of the screen whenever the bottom height might be absent, and equal to the bottom whenever the top is absent. It both are available, the computation of the mid of the well screen is equal to the method described by IMIDF=0. By default IMIDF=0.

ICLAY=
(optional)

Whenever wells might fall completely in an aquitard (in between two model layers), specify ICLAY=1 to shift the well vertically to that model layer that is most nearby (above- or beneath), this is the default value. Specify ICLAY=0 and the well will be removed whenever completely in an aquitard.

FNODATA=
(optional)

Specify the NoDataValue for the top and bottom of the well screen, denoted by ITCOL and IBCOL. By default FNODATA=-99999.0, values equal to this will be discarded.


Rest of keywords are applicable for all values of NLAY.

NIPF

Enter the number of IPF files to be organized, e.g. NIPF=3.

IPF{i}=

Enter the name for the i\({}^{th}\) IPF file, e.g. D:\DATA\WELL.IPF. The resulting IPF files will be save in the folder D:\DATA\WELL\IMOD_MKIPF_WELLS_L*.IPF for each model layer that has extraction rate \(<\)\(>\) 0.0.

IXCOL=
(optional)

Enter the column number in the IPF file IPF{i} that represents the x coordinate, e.g. IXCOL=4. By default IXCOL=1.

IYCOL=
(optional)

Enter the column number in the IPF file IPF{i} that represents the y coordinate, e.g. IYCOL=6. By default IYCOL=2.

IQCOL=
(optional whenever ISS=0)

Enter the column number in the IPF file IPF{i} that represents the extraction rate of the well, e.g. IQCOL=12. By default IQCOL=3.

ISS=
(optional)

This flags determines whether an time average extraction volume need to be computed for a specified period of time, for that case ISS need to be 1. By default ISS=0 and an average value is computed for the time series as a whole.

SDATE=
(if ISS=1)

Specify a starting date (YYYYMMDD) from which the determination of a well strength/head will be computed. This keyword is compulsory whenever ISS=1.

EDATE=
(if ISS=1)

Specify an end date (YYYYMMDD) from which the determination of a well strength/head will be computed. This keyword is compulsory whenever ISS=1.

HNODATA=
(optional)

Specify the NoDataValue for the extraction rate, values equal to this will be discarded. By default HNODATA=0.0.

The IPF file IMOD_MKIPF_WELLS_ALL.IPF contains all rows from the original IPF. This file is easier to analyse whether the well screen assigned have been computer properly. There is an attribute ERROR_CODE in the IPF that denotes the way the well has been assigned. The following codes are applicable; "@" means that the well is assigned to a nearby model layer; "#" means that the well could not be assigned; and "-" means that the well has been assigned appropriately. The IPF file IMOD_MKIPF_WELLS_UNASSIGNED.IPF contains all rows from the original IPF that could not be assigned to model layer.

Methodology

The following steps are carried out for each individual record in the IPF file (IPF{i}):

Example 1

FUNCTION=MKWELLIPF
NLAY=3
TOPIDF1=D:\DATA\TOP1.IDF
TOPIDF2= D:\DATA\TOP2.IDF
TOPIDF3= D:\DATA\TOP3.IDF
BOTIDF1= D:\DATA\BOT1.IDF
BOTIDF2= D:\DATA\BOT2.IDF
BOTIDF3= D:\DATA\BOT3.IDF
KDIDF1= D:\DATA\KD1.IDF
KDIDF2= D:\DATA\KD2.IDF
KDIDF3= D:\DATA\KD3.IDF
CIDF1=D:\DATA\C1.IDF
CIDF2=D:\DATA\C2.IDF
NIPF=1
IPF1=D:\DATA\WELL.IPF

The example above, will classify each location in the IPF file D:\DATA\WELL.IPF according their length and associated transmissivity, within any penetrating modellayer.

Example 2

FUNCTION=MKWELLIPF
NLAY=3
TOPIDF1=D:\DATA\TOP1.IDF
TOPIDF2= D:\DATA\TOP2.IDF
TOPIDF3= D:\DATA\TOP3.IDF
BOTIDF1= D:\DATA\BOT1.IDF
BOTIDF2= D:\DATA\BOT2.IDF
BOTIDF3= D:\DATA\BOT3.IDF
KDIDF1= D:\DATA\KD1.IDF
KDIDF2= D:\DATA\KD2.IDF
KDIDF3= D:\DATA\KD3.IDF
CIDF1=D:\DATA\C1.IDF
CIDF2=D:\DATA\C2.IDF
IXCOL=1
IYCOL=2
ITCOL=3
IBCOL=4
IQCOL=8
NIPF=3
IPF1=D:\DATA\INDUSTRY.IPF
IPF2= D:\DATA\DRINKINGCOOPERATION.IPF
IPF3= D:\DATA\AGRICULTURE.IPF

The example above, will classify each location in three IPF files according their length and associated transmissivity, within any penetrating model layer. The content of the IPF files is different than the default IXCOL, IYCOL, ITCOL, IBCOL and IQCOL column identifications, and therefore added here.