You are on page 1of 9

SPE 119156

Automatic Well Placement Optimization in a Channelized Turbidite


Reservoir Using Adjoint Based Sensitivities
David Castiñeira, Faruk O. Alpak, and Detlef Hohl, SPE, Shell International Exploration and Production Inc. usdc

Copyright 2009, Society of Petroleum Engineers

This paper was prepared for presentation at the 2009 SPE Reservoir Simulation Symposium held in The Woodlands, Texas, USA, 2–4 February 2009.

This paper was selected for presentation by an SPE program committee following review of information contained in an abstract submitted by the author(s). Contents of the paper have not been
reviewed by the Society of Petroleum Engineers and are subject to correction by the author(s). The material does not necessarily reflect any position of the Society of Petroleum Engineers, its
officers, or members. Electronic reproduction, distribution, or storage of any part of this paper without the written consent of the Society of Petroleum Engineers is prohibited. Permission to
reproduce in print is restricted to an abstract of not more than 300 words; illustrations may not be copied. The abstract must contain conspicuous acknowledgment of SPE copyright.

Abstract
Economic constraints impose stringent limits on the number of wells that can be drilled in deepwater developments. Thus,
optimal placement and operation of wells have a major impact on the project rewards. Well-placement in deepwater
developments is a challenging optimization problem. Manual approaches to its solution can be cumbersome even with good
use of engineering judgment: (a) There often exist many combinations of well locations subject to investigation; (b) There is
need to optimize operational constraints for every well-placement scenario; (c) The optimization process has to be repeated
for a variety of geologic realizations; (d) Presence of complex sub-seismic geologic architecture may render workflows that
solely rely on seismic data obsolete. We developed an adjoint-based optimization algorithm that rapidly identifies alternative
optimal well-placement scenarios for a given geologic realization. Adjoint-based gradients approximate the sensitivities of a
suitable objective function with respect to well locations. These sensitivities guide the iterative search with improving
directions that progressively maximize the ultimate recovery. The main advantage of the adjoint method is that it provides
sensitivities with only one forward (reservoir) and one backward (adjoint) simulation, rendering computational costs
affordable for field applications. The adjoint method in our implementation operates in local search mode.
Our algorithm is applied to two different geologically complex channelized turbidite reservoirs to identify alternative
optimal locations for a new injector-producer pair given existing operational and well constraints. Ensuing results
demonstrate that the adjoint-based sensitivities can be effectively used to find optimal well locations. In the field simulation
models, the optimization derived well locations lead to a higher ultimate oil recovery compared to a manual optimization
approach. The algorithm yields multiple alternative well-placement scenarios within a shorter amount of time compared to a
single optimal location found through manual optimization.

Introduction
Decisions about well configuration constitute a fundamental component of reservoir development plans. Such decisions
involve the number of wells to be drilled, well patterns, the well locations, well trajectories, well controls, etc. All these
parameters have a significant impact on the amount of oil that can be recovered over the lifetime of the field. In this work our
focus is well placement optimization. For the particular process of deciding the well locations, a net-sand driven “engineering
judgment” approach is commonly applied in conventional practice. It is desirable, however, to execute a more systematic and
objective methodology to identify optimal well locations: an approach that uses all the available information, e.g. geological
characteristics, production data from existing wells, dynamic model predictions, etc. The methodology is desired to provide a
number of alternative well locations in a short period of time and as a result of a mathematical procedure that (a) performs an
efficient intelligent search, (b) minimizes personal bias, and (c) automatizes tedious simulation tasks, e.g. input preparation,
simulation, post-processing, etc. Optimality and efficiency in the well placement decision process are the main motivations
behind the work presented here.
When it comes to well location optimization, several approaches have been proposed in the past. These approaches can be
classified in different ways (local vs. global; stochastic vs. deterministic, etc.). An overview of previously proposed
methodologies is given here:
1. Mixed integer programming (MIP): This approach was popular in the 70’s and 80’s. This method tries to solve an
optimization problem in which the objective function and constraints depends on two sets of variables: a vector of continuous
variables and a vector of integer variables (Grossmann, I.E., and Kravanja, Z., 1997; Edgar et al., 2001; Nemhauser and
Wolsey, 1988). However the increasing complexity of reservoir models nowadays make this type of mathematical problems
very difficult to be solved in a reasonable amount of time.
2 SPE 119156

2. Stochastic programming: This family of techniques encompasses simulated annealing, genetic algorithms, Markov
Chain Monte Carlo, and neighborhood algorithm, and their variants (Birge and Louveaux, 1997; Ruszczynski and Shapiro,
2003; Wallace and Ziemba, 2005). Stochastic methods typically do not require gradient information but operate with multiple
evaluations of the reservoir model. Stochastic techniques seek for global optimum and are designed to climb uphill to avoid
local optima. Such techniques typically rely on extensive forward modeling. They can be computationally prohibitive when
the computational cost of forward modeling is large.
3. Gradient methods: Gradient techniques rely on information about the derivatives of the objective function to guide the
algorithm in the search for optima (Lasdon, 2002; Snyman, 2004; Yang, 2008). Because these are local optimum methods,
they typically converge to sub-optimal solutions.
4. Combinations of the above methods into hybrid algorithms (Bilbro and Snyder, 1991; Puchinger and Raidl, 2005).
This study shows that a search algorithm based on adjoint-based gradient method can be successfully used to find
optimum well locations in a real field application. Moreover a sequential optimization approach is also shown capable to
provide good initial estimates for optimal well locations. All these algorithms are tested on geologically complex channelized
turbidite reservoirs. Two different oil reservoirs are considered here. While Reservoir #1 has been producing for almost three
years (with two producers and two injectors providing support to producers), Reservoir #2 remains undeveloped. In both
cases, proposed optimization algorithms find optimal locations for a new injector-producer pair that could increases the
cumulative oil recovery from 3% to 20% when compared to a conventional net-sand driven approach.

Theory
Optimal well placement is posed as a constrained numerical optimization problem. Well locations are parametrically
described in terms of spatial coordinates. Optimal locations are sought within spatial bounds that maximize a hydrocarbon
recovery driven objective function. The objective function is evaluated through reservoir simulation.
Objective function
The objective function J is typically defined as the NPV, that is, the total oil revenues minus the total injection and
production costs over a period of T discretized with K time-steps in combination with a discount factor (or interest rate)
(Handels et al., 2007; Zandvliet et al., 2008). Letting ro denote oil revenue per unit volume rwi the injection cost per unit
volume, and rwp the water production cost per unit volume, we can write
[ ]
J q o ,1:K (u ), q wp ,1:K (u ), q wi ,1:K (u ) =
K −1 ⎡ N N N ⎤ Δt k
∑ ⎢ ∑ 0 o , j ,k ∑ ∑
(1)
− r q (u ) + r q
wp wp , j , k (u ) − rwi q wi , j ,k (u )⎥ tk
.
k =0 ⎣ j =1 j =1 j =1 ⎦ (1 + b) τ

Here, q o , j ,k , q wp , j ,k and q wi , j ,k are elements of vectors q o ,k , q wp ,k and q wi ,k , and they denote oil production rates,
water production rates and water injection rates in well j during time-step k, N is the total number of wells, and tk and Δt k are
the time and time interval corresponding to time step k. The convention is that injection rates are positive, and production
rates negative, such that the oil revenues in the objection function (1) are positive and the costs are negative. The semicolon
in the subscripts is used to indicate a sequence, i.e., 1:K = 1, 2,…K. The variable u is a vector of spatial coordinates of the to-
be-optimized well. The term in the denominator of Eq. (1) is a discount factor that represents the time-value of money,
where b is the discount rate (cost of capital) for a reference time τ. For the field cases analyzed in this report, we focus on
maximizing the cumulative oil recovery rather than NPV. This strategy is translated to the objective function of Eq. (1)
through setting the water production and water injection costs equal to zero.
Adjoint-based gradient search method
The optimization problem must be solved numerically. One possible approach is iterating over the model parameters that
describe the well locations and gradually improving the objective function via the following update formula

u k +1 = u k + s k d k . (2)

u k , a new point u k +1 is determined by moving in the direction given by d k with a step size given
Given an initial guess
k k k
by s . Various methods have been proposed on how to determine the search direction d and the step size s (Nash and
Sofer,1996). We employ the steepest ascent method in our implementation (Avriel, 2003). This method takes the gradient
∇J (u ) as the moving direction, as it describes the direction where J (u ) increases most rapidly. Then, Eq. (2) becomes
∂J
u k +1 = u k + s k . (3)
∂u k
SPE 119156 3

The efficiency of the steepest ascent method hinges upon the way the components of the gradient vector are computed.
We numerically approximate the elements of the gradient vector via use of so-called pseudowells (Handels et al., 2007). The
crux of the matter here is to surround the to-be-placed wells with pseudowells that are constrained to produce or inject at a
very low rates (less than 1% of the flowrate of the well-to-be-placed). As such, pseudowells have a negligible influence on
the overall flow through the reservoir. Then, adjoint method (Sarma and Chen, 2007) is employed to determine the gradient
of the objective function with respect to the pseudowell flowrates. With the adjoint method the computation of the gradient
vector is carried out at the cost of one forward and backward (adjoint) simulation. Gradient vector indicates the direction of
improvement in the objective function as a function of a small perturbation in well locations. For rapid convergence, we work
with a double ring of pseudowells and find the new optimum within a two-gridblock neighborhood (Figure 1).

NPV1 NPV2 > NPV1

To be placed producer To be placed injector


Pseudoproducer Pseudoinjector
Pseudoproducer with largest gradient Pseudoinjector with largest gradient

Fig. 1– Local adjoint-based gradient algorithm using pseudowells. Wells are moved to those gridblocks with the largest gradients in
their pseudowells

Global search methods


The pseudowell approach with a few exploratory rings is an efficient technique for local search. However, the search zone
at a given iteration is relatively tight. Increasing the size of the search zone has computational repercussions (e.g., excessive
memory requirements and convergence difficulties) and also risks of being trapped in a local minimum. A more global
technique is needed to make the search more exploratory from one iteration to the other. The algorithm has to be able to take
into account the potential of moving the proposed location to far, non-adjacent cells.
With this objective in mind a simple sequential well placement is proposed in order to carry out a global search for
optimal well locations. This type of search is particularly suitable for small problems such as optimizing a few vertical
injector-producer pair locations. The idea behind this approach is simple: all the wells but one are fixed, then, one searches
only for the optimal location of the “free” well. In order to accelerate the search, we sweep the region of interest with many
simulations in parallel in our implementation. Thus, we obtain a reasonable estimate of optimal placement region for the
“free” well. Testing every other gridblock in the sweep proves sufficiently accurate in our experience. Once the optimal
location for the “free” well is identified, the “free” well becomes “fixed” and the process is repeated for a different well,
which is tagged as “free”. The process is repeated for all the wells in sequential fashion and iterated over until a convergence
criterion is satisfied. An alternative to the sequential well placement would be to directly operate with the gradients of the
ultimate recovery on a gridblock basis. The gradients should then be used to quantify reservoir connectivity and propose well
locations that improve recovery.
It is of crucial importance to emphasize the fact that there exists no algorithm reported in the open literature that
guarantees global optimum with acceptable computational costs for the well location optimization problem. Also, neither of
our algorithms guarantees an absolute global optimum. Having said that, they are devised to increase the likelihood of finding
well locations with higher ultimate recovery compared to initial guess locations within reasonable amount of time.
4 SPE 119156

Results
Reservoir #1
Our first field case is a channellized turbidite reservoir which consists of two main depositional phases (see Figure 2); an
older depositional phase of low-relief amalgamated channels (Phase #1) and a younger depositional phase composed of
relatively less amalgamated meander belts (Phase #2). There exist two injectors (I1 and I2) and two producers (P1 and P2) in
this reservoir. The existing dynamic model for this reservoir has a total of 530,817 gridblocks with 45,650 of them actively
contributing to flow and transport, with dimensions 161 × 157 × 21 in x, y, and z coordinate directions. Total oil recovery
factor predicted by the dynamic model is 17.3% if no new wells are drilled. A net-sand driven “engineering judgment”
approach has identified well locations for an updip producer-injector pair that would increase the recovery factor to 23.1% .
Only fully penetrating vertical wells are considered here. The existing dynamic model accounts for injection, production and
other operational constraints in both currently operating and future wells. The optimization algorithms investigated in this
study honor these constraints (maximum production and injection rates, maximum and minimum bottom-hole pressures, skin
factors, maximum water-cut allowed, etc). The objective of our study is to investigate alternative locations for the updip
producer-injector pair (I3 and P3) to maximize the ultimate oil recovery from this reservoir. In this context, we test the novel
optimization algorithms described in the previous section.

I2 P1
P2

I1

I3 ?
P3 ?
Fig. 2– Reservoir #1 with existing wells (injectors I1 and I2, producers P1 and P2). Two depositional phases are shown: Light blue:
Phase #1; Red: Phase #2. Search for new wells (I3 and P3) is restricted to Phase 2 where most of the recoverable oil resides.

Sequential Well Location Optimization Algorithm: Sequential well location optimization carries out a global search for well
placement to maximize the cumulative oil recovery. In order to reduce computational time, the search is strictly restricted to
the central depositional zone (Phase #2) shown in Figure 2. The highest recovery factor obtained after two iterations is
23.0%. Further iterations did not improve the ultimate recovery. A graphical representation of the objective function when
the injector is fixed is shown in Figure 3. The resulting recovery is comparable to that estimated by the engineering judgment
study but it took only a few days of simulation time. The new configuration places the injector well relatively closer to the
production well when compared to the optima identified in the previous study. This can potentially reduce pressure
maintenance risks associated with reservoir connectivity. When the number of wells to be optimized is small, as in the
current test case, the proposed approach emerges as an effective alternative to more sophisticated global techniques. Unlike
local optimization algorithms, sequential well location optimization technique is independent of initial-guess locations

Recovery factor

20%

Optimum point 16%


for new producer

Existing injectors in the field


Existing producers in the field 12%
New injector location fixed

Fig. 3– Search for optimum producer location using seq. optimization. Reservoir #1.
SPE 119156 5

Local Adjoint-Based Gradient Algorithm: The local search method that utilizes a pseudowell technique is tested here. Despite
the local nature of the search, improvement in the objective function is observed in a large number of cases rendering the
local approach an effective and auditable alternative to ad hoc techniques. Figure 4 shows, for a specific starting point, how
cumulative oil recovery increases subsequent to every iteration until convergence is achieved. Oscillations in the objective
function around a stagnant “best” objective function value indicate convergence.For this particular case, the recovery factor
increased from 16.6% to 23.8%. Paths followed by the wells over the course of iterations are also shown in Figure 4. Final
positions of the wells are represented with solid circles.

Fig. 4– Application of the local adjoint-based gradient algorithm for Reservoir #1.

Analysis of Forecast Production Profiles: Select Reservoir #1 production profiles predicted by various optimization
algorithms are compared. Let us first introduce the terminology for the different solutions analyzed here (RF = recovery
factor):
Original solution: By net-sand driven “engineering judgment”. RF = 23.1 %
Optimal solution #1: By local adjoint-based gradient algorithm. RF = 23.9 %.
Optimal solution #2: By sequential optimization + local adjoint-based algorithm. RF= 23.8 %.
Initial guess model: Poorly determined well locations. RF = 18.2%.

Figure 5 shows the cumulative oil recovery profile for each of the above scenarios. We noticed that extra oil is produced
with the optimization-based well locations. This represents a 3.3% increase in cumulative oil compared to a more manual
intensive visual trial-and-error based approach. Predicted vertically stacked and pore volume averaged oil saturation maps at
the end of production history (see Figure 6) reveals that the well locations estimated via optimization lead to more effective
sweep of oil when compared to the movable oil approach.

Time
Fig. 5– Cumulative oil recovery profiles for the original solution, the optimal solutions #1 and #2, and the initial guess model.
6 SPE 119156

Original solution: Optimal solution #1: Optimum solution #2:


OIL SAT
OIL SAT OIL SAT

Fig. 6– Predicted vertically stacked and pore volume averaged oil saturation maps at the end of production history for original
solution and two different optimal solutions. Injector = blue circle; Producer = red circle. Certain pockets of oil left behind in th
original solution are swept in optimization driven well-placement configurations.

Reservoir #2:
Reservoir #2 is adjacent to Reservoir #1 but some geological differences exist between them. No wells have been drilled
in this reservoir. Hence, no historical data is available. From the investment efficiency viewpoint, an injector-producer pair is
estimated to deliver the maximal recovery subject to economic and development constraints. The net-to-gross (NTG) map of
Reservoir #2 is given in Figure 7. NTG values are used to constrain the search area for the well-placement optimization
problem. The original dynamic model has a total of 3,716,685 gridblocks (96,502 active gridblocks), with dimensions
189 × 155 × 171 in x, y, and z coordinate directions. A previous “engineering judgment” study identified an injector-producer
pair placement that would lead to a total oil recovery factor of 23.7%.

I1 ?

P1 ?

NTG

Fig. 7– Net-to-gross for Reservoir #2. Our search for well location to high NTG areas. The new wells to be placed are I1 (injector) and
P1 (producer).

Sequential Well Location Optimization Algorithm: The highest recovery factor obtained through this method is 28.1%. A
couple of iterations were sufficient to find a reasonably well estimate of optimal well locations. Some results are shown in
Figure 8. On the left hand side, the algorithm looks for optimum location for a new producer in the field (injector is fixed).
On the right hand side, the algorithm looks for optimum location for a new injector (producer is fixed).
SPE 119156 7

Recovery factor Optimum for


new injector
20%
Optimum for
Optim um point
new producer
for new producer

10%

New producer New producer

New injector 0% New injector

Fig. 8– Iteration 1 (left) of the sequential well location optimization searches for optimal producer location. Iteration 2 (righ) searches
for the optimal injector location.

Local Adjoint-Based Gradient Algorithm: The optimization improves the recovery factor from 23.7% to 26.0% using this
method. The progress of the objective function as a function of iterations is shown along with the initial-guess and final well
locations in Figure 9. We used the engineering-jugdment proposal as starting point.

Initial injector location


Initial producer location
xx Iteration/ path
Final injector location
Final producer location

Fig. 9. Local adjoint-based gradient algorithm. Left panel: the progress of the objective function over the course of iterations. Right
panel: well locations and the optimization paths taken by the wells. Color scheme: Blue = injector , Red = producer.

Analysis of Forecast Production Profiles : Reservoir #2 production profiles predicted by various optimization algorithms
are compared to the base case well-placement results obtained in a previous study :

Original solution: By net-sand driven “engineering judgment”. RF = 23.7%


Optimal solution #1: By local adjoint-based gradient algorithm. RF = 26.0%
Optimal solution #2: By alternative global search algorithm. RF= 27.8%
Optimal solution #3: By sequential optimization algorithm. RF = 28.1%.

Vertically stacked and pore volume averaged oil saturation maps at the start-up time and at the end of forecast time
provide the background for the well location visualizations. As the drilling constraint we imposed a circle of 1.5 km radius
around the original well locations. All optimal solutions abide by this constraint but at the same time successfully increase the
ultimate recovery. Figure 10 illustrates the cumulative oil recovery profile for each of the above scenarios. Around 17%
increase in cumulative oil recovery is obtained with the optimization-based well locations compared the original solution.
Figure 11 shows the resulting field oil production rates.
8 SPE 119156

INITIAL HYDROCARBON
CONCENTRATION
1

0.5

ORIGINAL LOCATION OPTIMAL SOLUTION #1 OPTIMAL SOLUTION #3


(engineering judgment) (automatic code) (automatic code)

RF = 23.7% RF = 26.0 % RF = 28.1 %

Fig. 10. Locations of the wells for each scenario subject to production forecast analysis. Vertically stacked and normalized
hydrocarbon concentration map at the start-up time (upper side) and at the end of forecast time (lower side). RF = Recovery factor.

Time
Fig. 11. Cumulative oil recovery profiles for Reservoir #2.
SPE 119156 9

Conclusions and Future Work

Well placement is posed as a constrained optimization problem where an objective function quantifying dynamic
performance is maximized by perturbing well locations within prescribed bounds. A set of detailed studies were carried out
using channelized turbidite reservoirs with intricate sub-seismic stratigraphic architecture. Several optimization algorithms
were applied to the well location the problem.

The sequential optimization algorithm is demonstrated to identify reasonably well optimal locations in a few iterations
even in the absence of prior knowledge. For relatively small problems it can serve an ideal tool in conjunction with
distributed parallel computing and engineering judgment (to restrict search space). Alternative global search algorithms are
also an efficient alternative to sequential search in our studies. Local adjoint-based gradient algorithm consistently leads the
search to (objective) improving directions in the local neighborhood of the initial locations at a given iteration. This approach
is recommended when a reasonably well prior estimate for the well locations is already available (from an global search or by
use of engineering judgment).Adjoint computation of gradients reduces the turnaround time of a given nonlinear iteration
significantly as it requires one forward and one backward simulation per iteration.

Our optimizers identified well locations for a new injector-producer pair that yields an improvement of 3.3% to 17% of
cumulative oil recovery over the location estimated in a previous study. Well location optimization using intelligent
numerical optimization algorithms is not seen as a replacement to physical insight and objectively attained and applied
engineering judgment. On the contrary, it is envisioned as a helper tool to automate tedious, manual intensive tasks, and, in
turn, save valuable time and effort. The main advantage of an automatic search is that there is no need to manually test many
different well locations. A numerical optimization algorithm can do the same job in a much more efficient and intelligent way
when coupled with physical insight, potentially leading to a much higher recoveries from the reservoir subject to study.

Acknowledgements
Authors would like to thank Shell International Exploration and Production Inc. for permission to publish the work
documented in this manuscript. Authors would also like to acknowledge Roald Brouwer, Sippe Douma, Gijs van Essen, Jan-
Dirk Jansen for their collaboration and helpful comments.

References
[1] Avriel, M., “Nonlinear Programming: Analysis and Methods”. Dover Publishing. ISBN 0-486-43227-0., 2003.
[2] Bilbro, G.L. and W.E. Snyder., "Optimization of functions with many minima," IEEE Transactions on Systems, Man, and Cybernetics
21(4), 840-849.( 1991)
[3] Birge, J.R., and Louveaux, F.V., “Introduction to Stochastic Programming”. Springer Verlag, New York, 1997.
[4] Edgar T.F., Himmelblau D.M., Lasdon, L.S., “Optimization of chemical processes”, McGraw Hill, New York, NY , 2001.
[5] Grossmann, I.E., and Kravanja, Z., “Mixed-Integer Nonlinear Programming: a Survey of Algorithms and Applications”, In Large-Scale
Optimization with Applications, Part 2: Optimal Design and Control, L.T. Biegler et al., eds., pp 73-100, Springer-Verlag, New York,
1997.
[6] Handels, M., Zandvliet, M.J., Brouwer, D.R., Jansen, J.D., and van Essen, G.M., “Adjoint-based Well Placement Optimization Under
Production Constraints”. SPE 105797, presented at the 2007 SPE Reservoir Simulation Symposium, Houston, Texas, U.S.A., 26–28
February 2007.
[7] Nash, S., and Sofer, A., “Linear and Nonlinear Programming”, McGraw-Hill, 1996.
[8] Nemhauser, G.L., Wolsey, L.A., “Integer and combinatorial optimization”, Wiley-Interscience, New York, NY, 1988
[9] Puchinger, J., and Raidl, G.R., “Combining metaheuristics and exact algorithms in combinatorial optimization: A survey and
classification In Proceedings of the First International Work-Conference on the Interplay Between Natural and Artificial
Computation”, Part II, volume 3562 of LNCS, pages 41-53. Springer, 2005.
[10] Ruszczynski, A., and Shapiro, A., “Stochastic Programming. Handbooks in Operations Research and Management Science”, Vol. 10,
Elsevier, 2003.
[11] Sarma, P. and Chen, W.H.: “Efficient well placement optimization with gradient-based algorithms and adjoint models”, paper SPE
112257 presented at the SPE Intelligent Energy Conference and Exhibition, Amsterdam, The Netherlands, 25-27 February 2007
[12] Snyman J.A., 2004, “Practical Mathematical Optimization: An introduction to basic optimization theory and classical and new
gradient-based algorithms”, Kluwer Academic Publishers, Dordrect, The Netherlands, 2004.
[13] Yang X.S., “Introduction to Mathematical Optimization: From Linear Programming to Metaheuristics”, Cambridge Int. Science
Publishing. ISBN 1-904602827, 2008.
[14] Wallace, S.W., Ziemba, W.T., “Applications of Stochastic Programming”. MPS-SIAM Book Series on Optimization 5, 2005.
[15] Zandvliet, M.J., Handels, M., Van Essen, G.M., Brouwer, D.R., Jansen, J.D., “Adjoint-Based Well Placement Optimization Under
Production Constraints”, paper SPE 105797 presented at the SPE Reservoir Simulation Symposium, Houston, Texas, U.S.A., 26–28
February 2007.

You might also like