44RUNSPEC
55----------------------------------------------------------------------------
66DIMENS
7- ${ dic[ ' nxyz' ] [0 ]} ${ dic[ ' nxyz' ] [1 ]} ${ dic[ ' nxyz' ] [2 ]} /
7+ ${ nxyz[0 ]} ${ nxyz[1 ]} ${ nxyz[2 ]} /
88
99EQLDIMS
1010/
1111
1212TABDIMS
13- % if dic[ ' model' ] != ' convective' :
13+ % if model != ' convective' :
14147 /
1515% else :
16167 7 /
@@ -19,21 +19,21 @@ TABDIMS
1919WATER
2020GAS
2121CO2STORE
22- % if dic[ ' model' ] != ' immiscible' :
22+ % if model != ' immiscible' :
2323DISGASW
2424VAPWAT
25- ${ " DIFFUSE\n " if (dic[ " diffusion" ] [0 ] + dic[ " diffusion" ] [1 ]) > 0 else " " } \
25+ ${ " DIFFUSE\n " if (diffusion[0 ] + diffusion[1 ]) > 0 else " " } \
2626% endif
27- ${ " THERMAL\n " if dic[ " model" ] in [" complete" , " convective" ] else " " } \
27+ ${ " THERMAL\n " if model in [" complete" , " convective" ] else " " } \
2828
2929METRIC
3030
3131START
32321 JAN 2025 /
33- % if sum (dic[ ' radius' ] ) > 0 :
33+ % if sum (radius) > 0 :
3434
3535WELLDIMS
36- ${ len (dic[ ' wellijk' ] )} ${ dic[ ' nxyz' ] [2 ]} ${ len (dic[ ' wellijk' ] )} ${ len (dic[ ' wellijk' ] )} /
36+ ${ len (wellijk)} ${ nxyz[2 ]} ${ len (wellijk)} ${ len (wellijk)} /
3737% endif
3838
3939UNIFOUT
@@ -42,117 +42,117 @@ GRID
4242----------------------------------------------------------------------------
4343INIT
4444
45- % if dic[ " grid" ] == ' corner-point' :
45+ % if grid == ' corner-point' :
4646INCLUDE
4747GRID.INC /
48- % elif dic[ " grid" ] == ' tensor' :
48+ % elif grid == ' tensor' :
4949INCLUDE
5050DX.INC /
5151
5252DY
53- ${ dic[ ' nxyz' ] [0 ]* dic[ ' nxyz' ] [1 ]* dic[ ' nxyz' ] [2 ]} *${ dic[ ' dims' ] [1 ]} /
53+ ${ nxyz[0 ]* nxyz[1 ]* nxyz[2 ]} *${ dims[1 ]} /
5454
5555INCLUDE
5656DZ.INC /
5757
5858TOPS
59- % if dic[ " lower" ] :
60- ${ dic[ ' nxyz' ] [0 ]} *${ dic[ " dims" ] [2 ] - dic[ ' cut' ] } /
59+ % if lower:
60+ ${ nxyz[0 ]} *${ dims[2 ] - cut} /
6161% else :
62- ${ dic[ ' nxyz' ] [0 ]} *0 /
62+ ${ nxyz[0 ]} *0 /
6363% endif
6464% else :
6565DX
66- ${ dic[ ' nxyz' ] [0 ]* dic[ ' nxyz' ] [1 ]* dic[ ' nxyz' ] [2 ]} *${ dic[ ' dims' ] [0 ]/ dic[ ' nxyz' ] [0 ]} /
66+ ${ nxyz[0 ]* nxyz[1 ]* nxyz[2 ]} *${ dims[0 ]/ nxyz[0 ]} /
6767
6868DY
69- ${ dic[ ' nxyz' ] [0 ]* dic[ ' nxyz' ] [1 ]* dic[ ' nxyz' ] [2 ]} *${ dic[ ' dims' ] [1 ]/ dic[ ' nxyz' ] [1 ]} /
69+ ${ nxyz[0 ]* nxyz[1 ]* nxyz[2 ]} *${ dims[1 ]/ nxyz[1 ]} /
7070
7171DZ
72- ${ dic[ ' nxyz' ] [0 ]* dic[ ' nxyz' ] [1 ]* dic[ ' nxyz' ] [2 ]} *${ dic[ ' cut' ] / dic[ ' nxyz' ] [2 ] if dic[ " lower" ] else dic[ ' dims' ] [2 ]/ dic[ ' nxyz' ] [2 ]} /
72+ ${ nxyz[0 ]* nxyz[1 ]* nxyz[2 ]} *${ cut/ nxyz[2 ] if lower else dims[2 ]/ nxyz[2 ]} /
7373
7474TOPS
75- % if dic[ " lower" ] :
76- ${ dic[ ' nxyz' ] [0 ]} *${ dic[ " dims" ] [2 ] - dic[ ' cut' ] } /
75+ % if lower:
76+ ${ nxyz[0 ]} *${ dims[2 ] - cut} /
7777% else :
78- ${ dic[ ' nxyz' ] [0 ]} *0 /
78+ ${ nxyz[0 ]} *0 /
7979% endif
8080% endif
8181
8282INCLUDE
8383FLUXNUM.INC /
84- % if dic[ ' model' ] != ' immiscible' and sum (dic[ " dispersion" ] ) > 0 :
84+ % if model != ' immiscible' and sum (dispersion) > 0 :
8585
8686DISPERC
87- ${ dic[ ' nxyz' ] [0 ]* dic[ ' nxyz' ] [1 ]* dic[ ' nxyz' ] [2 ]} *0 /
87+ ${ nxyz[0 ]* nxyz[1 ]* nxyz[2 ]} *0 /
8888% endif
8989
9090EQUALREG
9191% for i in range (7 ):
92- PORO ${ f " { dic[ ' rock' ] [i][1 ]:E } " } ${ i+ 1 } F /
92+ PORO ${ f " { rock[i][1 ]:E } " } ${ i+ 1 } F /
9393% endfor
9494% for i in range (7 ):
95- PERMX ${ f " { dic[ ' rock' ] [i][0 ]:E } " } ${ i+ 1 } F /
95+ PERMX ${ f " { rock[i][0 ]:E } " } ${ i+ 1 } F /
9696% endfor
9797% for i in range (7 ):
98- PERMY ${ f " { dic[ ' rock' ] [i][0 ]:E } " } ${ i+ 1 } F /
98+ PERMY ${ f " { rock[i][0 ]:E } " } ${ i+ 1 } F /
9999% endfor
100100% for i in range (7 ):
101- PERMZ ${ f " { dic[ ' rock' ] [i][0 ]* dic[ ' kzMult' ] :E } " } ${ i+ 1 } F /
101+ PERMZ ${ f " { rock[i][0 ]* kzMult:E } " } ${ i+ 1 } F /
102102% endfor
103- % if dic[ ' model' ] in [" complete" , " convective" ]:
103+ % if model in [" complete" , " convective" ]:
104104% for i in range (7 ):
105- THCONR ${ f " { dic[ ' rockCond' ] [i]:E } " } ${ i+ 1 } F /
105+ THCONR ${ f " { rockCond[i]:E } " } ${ i+ 1 } F /
106106% endfor
107107% endif
108- % if dic[ ' model' ] != ' immiscible' and sum (dic[ " dispersion" ] ) > 0 :
108+ % if model != ' immiscible' and sum (dispersion) > 0 :
109109% for i in range (7 ):
110- DISPERC ${ f " { dic[ ' dispersion' ] [i]:E } " } ${ i+ 1 } F /
110+ DISPERC ${ f " { dispersion[i]:E } " } ${ i+ 1 } F /
111111% endfor
112112% endif
113113/
114- % if dic[ " spe11aBC" ] == 0 :
114+ % if spe11aBC == 0 :
115115
116116BCCON
117- 1 1 ${ dic[ ' nxyz' ] [0 ]} 1 1 1 1 Z- /
117+ 1 1 ${ nxyz[0 ]} 1 1 1 1 Z- /
118118/
119119% else :
120120----------------------------------------------------------------------------
121121EDIT
122122----------------------------------------------------------------------------
123123ADD
124- PORV ${ dic[ " spe11aBC" ] } 4* 1 1 /
124+ PORV ${ spe11aBC} 4* 1 1 /
125125/
126126% endif
127127----------------------------------------------------------------------------
128128PROPS
129129----------------------------------------------------------------------------
130130INCLUDE
131131TABLES.INC /
132- % if dic[ ' model' ] != ' immiscible' :
133- % if (dic[ " diffusion" ] [0 ] + dic[ " diffusion" ] [1 ]) > 0 :
132+ % if model != ' immiscible' :
133+ % if (diffusion[0 ] + diffusion[1 ]) > 0 :
134134
135135DIFFAWAT
136- ${ dic[ " diffusion" ] [0 ]} ${ dic[ " diffusion" ] [0 ]} /
137- % if dic[ ' model' ] == ' convective' :
136+ ${ diffusion[0 ]} ${ diffusion[0 ]} /
137+ % if model == ' convective' :
138138% for i in range (6 ):
139139/
140140% endfor
141141% endif
142142
143143DIFFAGAS
144- ${ dic[ " diffusion" ] [1 ]} ${ dic[ " diffusion" ] [1 ]} /
145- % if dic[ ' model' ] == ' convective' :
144+ ${ diffusion[1 ]} ${ diffusion[1 ]} /
145+ % if model == ' convective' :
146146% for i in range (6 ):
147147/
148148% endfor
149149% endif
150150% endif
151151
152- % if dic[ ' model' ] in [" complete" , " convective" ]:
152+ % if model in [" complete" , " convective" ]:
153153SPECROCK
154- ${ min (dic[ " temperature" ] [0 ], dic[ " temperature" ] [1 ])} ${ dic[ " rockExtra" ] [0 ]* dic[ " rockExtra" ] [1 ]}
155- ${ max (dic[ " temperature" ] [0 ], dic[ " temperature" ] [1 ]) if dic[ " temperature" ] [0 ]!= dic[ " temperature" ] [1 ] else dic[ " temperature" ] [0 ]+ 1 } ${ dic[ " rockExtra" ] [0 ]* dic[ " rockExtra" ] [1 ]} / --Table 1
154+ ${ min (temperature[0 ], temperature[1 ])} ${ rockExtra[0 ]* rockExtra[1 ]}
155+ ${ max (temperature[0 ], temperature[1 ]) if temperature[0 ]!= temperature[1 ] else temperature[0 ]+ 1 } ${ rockExtra[0 ]* rockExtra[1 ]} / --Table 1
156156% for i in range (6 ):
157157/ --Defaulted to table 1
158158% endfor
@@ -170,7 +170,7 @@ FLUXNUM SATNUM /
170170
171171INCLUDE
172172FIPNUM.INC /
173- % if dic[ ' model' ] == ' convective' :
173+ % if model == ' convective' :
174174
175175COPY
176176SATNUM PVTNUM /
@@ -180,14 +180,14 @@ SATNUM PVTNUM /
180180SOLUTION
181181---------------------------------------------------------------------------
182182EQUIL
183- ${ dic[ ' dims' ] [2 ]- dic[ ' datum' ] } ${ dic[ ' pressure' ] / 1.E5 } 0 0 0 0 1 1 0 /
183+ ${ dims[2 ]- datum} ${ pressure/ 1.E5 } 0 0 0 0 1 1 0 /
184184
185185RPTRST
186- BASIC=2 DEN PCGW ${ f " RSWSAT / " if dic[ ' model' ] != ' immiscible' else " /" }
186+ BASIC=2 DEN PCGW ${ f " RSWSAT / " if model != ' immiscible' else " /" }
187187
188188RTEMPVD
189- 0 ${ dic[ " temperature" ] [1 ]}
190- ${ dic[ ' dims' ] [2 ]} ${ dic[ " temperature" ] [0 ]} /
189+ 0 ${ temperature[1 ]}
190+ ${ dims[2 ]} ${ temperature[0 ]} /
191191----------------------------------------------------------------------------
192192SUMMARY
193193----------------------------------------------------------------------------
@@ -200,9 +200,9 @@ RGKMO
200200RGMDS
201201/
202202BWPR
203- % for sensor in dic[ " sensorijk" ] :
203+ % for sensor in sensorijk:
204204${ sensor[0 ]+ 1 } ${ sensor[1 ]+ 1 } ${ sensor[2 ]+ 1 } /
205- % if dic[ " lower" ] :
205+ % if lower:
206206<% break %>
207207% endif
208208% endfor
@@ -211,12 +211,12 @@ ${sensor[0]+1} ${sensor[1]+1} ${sensor[2]+1} /
211211SCHEDULE
212212----------------------------------------------------------------------------
213213RPTRST
214- BASIC=2 DEN PCGW RESIDUAL ${ f " RSWSAT / " if dic[ ' model' ] != ' immiscible' else " /" }
215- % if dic[ ' model' ] == ' convective' :
214+ BASIC=2 DEN PCGW RESIDUAL ${ f " RSWSAT / " if model != ' immiscible' else " /" }
215+ % if model == ' convective' :
216216
217217DRSDTCON
218- % if dic[ ' drsdtcon' ] :
219- % for row in dic[ ' drsdtcon' ] :
218+ % if drsdtcon:
219+ % for row in drsdtcon:
220220${ str ([val for val in row])[1 :- 1 ]} /
221221% endfor
222222% else :
@@ -230,80 +230,80 @@ ${str([val for val in row])[1:-1]} /
230230% endif
231231/
232232% endif
233- % if sum (dic[ ' radius' ] ) > 0 :
233+ % if sum (radius) > 0 :
234234
235235WELSPECS
236- % for i in range (len (dic[ ' wellijk' ] )):
237- % if dic[ ' radius' ] [i] > 0 :
238- INJ${ i} G1 ${ dic[ ' wellijk' ] [i][0 ]} ${ dic[ ' wellijk' ] [i][1 ]} 1* GAS ${ dic[ ' radius' ] [i]} /
236+ % for i in range (len (wellijk)):
237+ % if radius[i] > 0 :
238+ INJ${ i} G1 ${ wellijk[i][0 ]} ${ wellijk[i][1 ]} 1* GAS ${ radius[i]} /
239239% endif
240- % if dic[ " lower" ] :
240+ % if lower:
241241<% break %>
242242% endif
243243% endfor
244244/
245245
246246COMPDAT
247- % for i in range (len (dic[ ' wellijk' ] )):
248- % if dic[ ' radius' ] [i] > 0 :
249- INJ${ i} ${ dic[ ' wellijk' ] [i][0 ]} ${ dic[ ' wellijk' ] [i][1 ]} ${ dic[ ' wellijk' ] [i][2 ]} ${ dic[ ' wellijk' ] [i][2 ]} OPEN 2* ${ 2 .* dic[ ' radius' ] [i]} /
247+ % for i in range (len (wellijk)):
248+ % if radius[i] > 0 :
249+ INJ${ i} ${ wellijk[i][0 ]} ${ wellijk[i][1 ]} ${ wellijk[i][2 ]} ${ wellijk[i][2 ]} OPEN 2* ${ 2 .* radius[i]} /
250250% endif
251- % if dic[ " lower" ] :
251+ % if lower:
252252<% break %>
253253% endif
254254% endfor
255255/
256256% endif
257- % if dic[ " spe11aBC" ] == 0 :
257+ % if spe11aBC == 0 :
258258
259259BCPROP
260- 1 DIRICHLET WATER 1* ${ (dic[ ' pressure' ] + dic[ " safu" ] [0 ][2 ])/ 1.E5 } /
260+ 1 DIRICHLET WATER 1* ${ (pressure+ safu[0 ][2 ])/ 1.E5 } /
261261/
262262% endif
263- % for j in range (len (dic[ ' inj' ] )):
263+ % for j in range (len (inj)):
264264
265- % if dic[ " tuning" ] :
265+ % if tuning:
266266TUNING
267- ${ dic[ ' inj' ] [j][8 ]+ " " if len (dic[ ' inj' ] [j])> 8 else " " } /
268- ${ dic[ ' inj' ] [j][9 ]+ " " if len (dic[ ' inj' ] [j])> 9 else " " } /
269- ${ dic[ ' inj' ] [j][10 ]+ " " if len (dic[ ' inj' ] [j])> 10 else " " } /
267+ ${ inj[j][8 ]+ " " if len (inj[j])> 8 else " " } /
268+ ${ inj[j][9 ]+ " " if len (inj[j])> 9 else " " } /
269+ ${ inj[j][10 ]+ " " if len (inj[j])> 10 else " " } /
270270% endif
271- % if max (dic[ ' radius' ] ) > 0 :
271+ % if max (radius) > 0 :
272272WCONINJE
273- % for i in range (len (dic[ ' wellijk' ] )):
274- % if dic[ ' radius' ] [i] > 0 :
275- INJ${ i} ${ ' GAS' if dic[ ' inj' ] [j][2 + 3 * i] > 0 else ' WATER' } ${ ' OPEN' if dic[ ' inj' ] [j][3 + 3 * i] > 0 else ' SHUT' } RATE ${ f " { dic[ ' inj' ] [j][3 + 3 * i] * 86400 / 1.86843 :E } " } 1* 480 /
273+ % for i in range (len (wellijk)):
274+ % if radius[i] > 0 :
275+ INJ${ i} ${ ' GAS' if inj[j][2 + 3 * i] > 0 else ' WATER' } ${ ' OPEN' if inj[j][3 + 3 * i] > 0 else ' SHUT' } RATE ${ f " { inj[j][3 + 3 * i] * 86400 / 1.86843 :E } " } 1* 480 /
276276% endif
277- % if dic[ " lower" ] :
277+ % if lower:
278278<% break %>
279279% endif
280280% endfor
281281/
282282% endif
283- % if min (dic[ ' radius' ] ) == 0 :
283+ % if min (radius) == 0 :
284284SOURCE
285- % for i in range (len (dic[ ' wellijk' ] )):
286- % if dic[ ' radius' ] [i] == 0 :
287- ${ dic[ ' wellijk' ] [i][0 ]} ${ dic[ ' wellijk' ] [i][1 ]} ${ dic[ ' wellijk' ] [i][2 ]} ${ ' GAS' if dic[ ' inj' ] [j][2 + 3 * i] > 0 else ' WATER' } ${ f " { dic[ ' inj' ] [j][3 + 3 * i] * 86400 :E } " } ${ f " 1* { dic[ ' inj' ] [j][4 + 3 * i]:E } " if dic[ ' model' ] in [" complete" , " convective" ] else " " } /
285+ % for i in range (len (wellijk)):
286+ % if radius[i] == 0 :
287+ ${ wellijk[i][0 ]} ${ wellijk[i][1 ]} ${ wellijk[i][2 ]} ${ ' GAS' if inj[j][2 + 3 * i] > 0 else ' WATER' } ${ f " { inj[j][3 + 3 * i] * 86400 :E } " } ${ f " 1* { inj[j][4 + 3 * i]:E } " if model in [" complete" , " convective" ] else " " } /
288288% endif
289- % if dic[ " lower" ] :
289+ % if lower:
290290<% break %>
291291% endif
292292% endfor
293293/
294294% endif
295- % if dic[ ' model' ] in [" complete" , " convective" ] and max (dic[ ' radius' ] ) > 0 :
295+ % if model in [" complete" , " convective" ] and max (radius) > 0 :
296296WTEMP
297- % for i in range (len (dic[ ' wellijk' ] )):
298- % if dic[ ' radius' ] [i] > 0 :
299- INJ${ i} ${ dic[ ' inj' ] [j][4 + 3 * i]} /
297+ % for i in range (len (wellijk)):
298+ % if radius[i] > 0 :
299+ INJ${ i} ${ inj[j][4 + 3 * i]} /
300300% endif
301- % if dic[ " lower" ] :
301+ % if lower:
302302<% break %>
303303% endif
304304% endfor
305305/
306306% endif
307307TSTEP
308- ${ f " { round (dic[ ' inj' ] [j][0 ]/ dic[ ' inj' ] [j][1 ])} * " if round (dic[ ' inj' ] [j][0 ]/ dic[ ' inj' ] [j][1 ]) > 1 else " " }${ dic[ ' inj' ] [j][1 ] / 86400 .} /
309- % endfor
308+ ${ f " { round (inj[j][0 ]/ inj[j][1 ])} * " if round (inj[j][0 ]/ inj[j][1 ]) > 1 else " " }${ inj[j][1 ] / 86400 .} /
309+ % endfor
0 commit comments