1 Introduction

This paper presents a new method for modeling storm surges called the all-source Green’s function (ASGF) method. In contrast to the traditional Green’s function, where only one or a few grid points can be the source points, the ASGF allows all of the model grid points to be its source points. The ASGF was first proposed by Xu (2007) to instantaneously predict the arrival times and wave amplitudes of a tsunami at a point of interest (POI) from an arbitrary tsunami source region (see also Xu 2011 and Xu and Song 2013). The ASGF can also be used to efficiently model storm surges and tides; however, this paper focuses on its application to storm surge modeling.

The next section will demonstrate that the ASGF can be numerically derived from a storm surge model. All of the numerical features of the storm surge model are passed to the ASGF. The solution that is obtained using the ASGF method at a POI will be identical to or practically the same as the solution that is obtained for the same point by running the surge model traditionally (cf. Eqs. (26) and (27) and the last paragraph of Section 3.2). However, the ASGF method can compute the solution orders of magnitude faster because it eliminates the computations at all the grid points where the solutions are not of interest; the method focuses its computations at only one or a few points where the solutions are desired. The traditional method must map out the solutions at all of the grid points regardless of whether they are needed. As a result of this great improvement in computational efficiency, very-long-term simulations become feasible. For example, it is desirable to hydrodynamically convert various existing century-long climate model solutions to storm surge time series for coastal risk assessments due to climate change. Such long-term simulations might be infeasible with the traditional method but can be achieved in a few minutes using the ASGF method. Xu et al. (2015) recently demonstrated how the ASGF method was used to efficiently produce 140 years of hourly time series of storm surges driven by past and future climate forcing spanning from 1961 to 2100.

In addition to being fast, the ASGF method accounts for the influences of global forcing fields and the global ocean geometry because the ASGF can be affordably prepared with the global oceans as the model domain. This bypasses the need to address artificial open-water boundary issues. Theoretically, something that occurs at any location in the world ocean will eventually affect the solution at the POI significantly or insignificantly (cf. Section 4). Regardless of the significance of the global influences, it is better to include the entire world ocean as the domain to calculate the ASGF because that can make artificial open-water boundaries unnecessary.

Historically, the Green’s functions for the linearized and depth-averaged shallow-water equation (SWE) were used to model storm surges by Welander (1961), Uusitalo (1960), and Schwab (1978) and to model tides by Munk and Cartwright (1966). A common feature shared by the Green’s functions used in these studies is that the source points of the Green’s functions were limited to one or a few grid points. The source points are the grid points where the external forcing field is distributed. In reality, the atmospheric forcing or the tide-generating forcing field is distributed throughout the model domain, not only at one or a few points. This source point limitation problem arises from the ways how these Green’s functions were obtained. The Green’s functions were obtained empirically by analyzing the historical response data at a POI and the forcing data at the same point (Munk and Cartwright 1966) and at a few additional points elsewhere (Welander 1961). The number of source points was therefore limited by how many such data analyses could be easily conducted. In Uusitalo (1960) and Schwab (1978), the Green’s functions were dynamically calculated with a numerical model but in a traditional way, as briefly described in the following: one places an impulse at a grid point and then runs the model for a period of time to obtain the solution as a Green’s function; one then relocates the impulse to another grid point and reruns the model to obtain another Green’s function; to obtain a complete set of Green’s functions, one would have to repeat this procedure for all of the grid points, which is not feasible when the number of grid points is large. Consequently, Schwab (1978) had to limit his Green’s function computations to a few wind stations available in his model domain (Lake Eric). Uusitalo (1960) limited his Green’s function calculations to only two model runs; each run was for a constant and domain-wise uniform wind stress applied in one of two orthogonal principal directions. By taking the time derivatives of the solutions from the two model runs, he obtained two Green’s functions, with which he could then model storm surges in his model domain (the Baltic Sea) driven by any wind stress that could vary arbitrarily in time but must be uniform in space. Thus, by assuming the spatial uniformity in two principal directions, he equivalently reduced the source points to two special “points”. Obviously, the challenge from the real world is that the wind is not spatially uniform, especially over a large domain. In general, the traditional method of calculating the Green’s functions always leads to a source limitation problem in one way or another. The ASGF algorithm is a new method of calculating the Green’s functions. As will be seen in Section 3, this algorithm completely eliminates the source limitation problem; one model run can include all of the grid points as the source points. In the context of tsunami problems, Xu and Song (2013) also discussed the differences between the ASGF and the block-source Green’s functions (BSGFs).

As with any other type of Green’s function, the ASGF can only be applied to linear dynamic systems. However, linear dynamics provide a first-order approximation (e.g., Pedlosky 1979), especially for storm surges (e.g., Welander 1961; Heaps 1969), tides (e.g., Laplace 1776; Lamb 1932; Munk and Cartwright 1966; Randall 2007), and tsunamis in deep water (e.g., Shuto 1991). For locations where nonlinear effects may be strong, one may establish a local nonlinear model with its open-water boundaries set at locations where the nonlinearity is expected to be weak. In such cases, the ASGF method can be used to provide a nonlinear model with open-water boundary conditions, in terms of the barotropic components, by supplying the time series of the sea surface elevations and water mass transports along the open-water boundaries. This topic will be explored in a future study.

This study consists of two parts. This paper is part I and is mainly devoted to the development of the ASGF convolution from the depth-averaged linear SWE. Part II will be presented in the next paper (Xu 2015), which will further develop the ASGF convolution to a regression model for data assimilation. This paper is organized as follows: Section 2 establishes a canonical matrix equation for the depth-averaged linear SWE. Using the matrix equation, Section 3 defines the ASGF and presents the corresponding algorithm. This section also introduces two auxiliary concepts, the memory time scale and the sampling rate, which the subsequent development and analyses, especially those in part II, will depend on. Section 4 interprets the ASGF in terms of the domain of dependence of the wave solutions at a point, in terms of the response functions to the impulses at all of the grid points, and in term of the system control language. Section 5 summarizes the paper. In addition, five appendixes provide complementary details about the algorithm and the MATLAB functions. Testing of the algorithm with analytical solutions and with real a storm surge event and an analysis of the computational efficiency of the new method will be presented in part II.

2 Linear and depth-averaged SWE in a matrix form

In Pedlosky (1979), one can find a systematic order analysis showing that linear terms in the SWE are the leading balancing terms for large-scale geophysical fluid dynamics. Welander (1961) performed the same type of order analysis pertinent to storm surge problems and concluded that as long as the characteristic amplitude of the surge is small compared with the water depth and as long as the characteristic horizontal scale is large compared with the water depth, the nonlinear terms can be neglected from the SWE. Because the two conditions are generally met in the ocean, the depth-averaged linear SWE have commonly been adopted in many studies on storm surges (e.g., Proudman 1954; Svansson 1959; Uusitalo 1960; Welander 1961; Heaps 1969; Schwab 1978). This linearization will also be well supported by the results of a real storm surge case in this study, which will be presented in part II (Xu 2015). The purpose of this study is to provide a new method to quickly model storm surges within the linear dynamical framework. Therefore, the following depth-averaged linear SWE in matrix form is chosen as the starting point for this study:

$$ \frac{\partial }{\partial t}\left[\begin{array}{c}\hfill \eta \hfill \\ {}\hfill U\hfill \\ {}\hfill V\hfill \end{array}\right]=-\left[\begin{array}{ccc}\hfill 0\hfill & \hfill \frac{\partial }{ \cos \varphi \kern0.5em \partial x}\hfill & \hfill \frac{\partial \cos \varphi }{ \cos \varphi \kern0.5em \partial y}\hfill \\ {}\hfill gh\frac{\partial }{ \cos \varphi \kern0.5em \partial x}\hfill & \hfill \frac{\kappa }{h}\hfill & \hfill -f\hfill \\ {}\hfill gh\frac{\partial }{\partial y}\hfill & \hfill f\hfill & \hfill \frac{\kappa }{h}\hfill \end{array}\right]\left[\begin{array}{c}\hfill \eta \hfill \\ {}\hfill U\hfill \\ {}\hfill V\hfill \end{array}\right]+\left[\begin{array}{ccc}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill gh\frac{\partial }{ \cos \varphi \kern0.5em \partial x}\hfill & \hfill 1\hfill & \hfill 0\hfill \\ {}\hfill gh\frac{\partial }{\partial y}\hfill & \hfill 0\hfill & \hfill 1\hfill \end{array}\right]\left[\begin{array}{c}\hfill {\eta}_{\mathrm{a}}\hfill \\ {}\hfill {\tau}_{\mathrm{x}}\hfill \\ {}\hfill {\tau}_{\mathrm{y}}\hfill \end{array}\right] $$
(1)

where t is time; λ, φ, and R denote the longitude, latitude and the Earth’s mean radius R (taken as 6371 km), respectively; x and y are the arc lengths along the equator and a meridian circle (x =  and y = ), respectively; \( \frac{\partial }{\partial x}=\frac{\partial }{R\partial \lambda } \); \( \frac{\partial }{\partial y}=\frac{\partial }{R\partial \varphi } \); η, U, and V are the sea surface elevation and the mass fluxesFootnote 1 in the longitudinal and latitudinal directions; f and g are the Coriolis parameter and gravity acceleration, respectively; and h and κ are the water depth and bottom frictional coefficient, respectively. Note that the partial operator in the matrix affects all of the factors to its right; e.g., the multiplication of \( \frac{\partial \cos \varphi }{ \cos \varphi \partial y} \) by V should be understood as \( \frac{\partial \left(V \cos \varphi \right)}{ \cos \varphi \partial y} \). To avoid the polar singularity, a rotated spherical coordinate system is used, the pole of which is rotated to (40 W, 80 N), which corresponds to a point on land in Greenland.

The second term of the right-hand side (RHS) of Eq. (1) contains the forces of the atmospheric pressures and wind stresses. The air pressures at the mean sea level, p a, enter into the momentum equation as the inverse barometer η a

$$ {\eta}_{\mathrm{a}}=-\frac{p_{\mathrm{a}}}{\rho g} $$
(2)

where ρ is the density of seawater, which is taken as 1025 kg/m3. The unit of η a is meters. The wind stresses τ x and τ y are obtained by converting the wind velocity components, U 10 and V 10, at 10 m above sea level with

$$ \left({\tau}_{\mathrm{x}},{\tau}_{\mathrm{y}}\right)=\frac{\rho_{\mathrm{a}}}{\rho }{C}_{\mathrm{d}}\sqrt{\left({U_{10}}^2+{V_{10}}^2\right)}\left({U}_{10},{V}_{10}\right) $$
(3)

where ρ a refers to the air density, taken as 1.25 kg/m3, and C d is the drag coefficient, which is specified by

$$ {C}_{\mathrm{d}}=\left\{\begin{array}{ll}1.6\times {10}^{-3},\hfill & \left(\sqrt{U_{10}^2+{V}_{10}^2}\le 7\ \mathrm{m}\ {\mathrm{s}}^{-1}\right),\hfill \\ {}2.8\times {10}^{-3},\hfill & \left(\mathrm{otherwise}\right).\hfill \end{array}\right. $$
(4)

The formula for the drag coefficient was adapted from Csanady (1982). The second line of Eq. (4) is a modification that was obtained by trial and error from fitting our model solutions to a real storm surge. The wind stresses defined by Eq. (3) are known as the kinematic stresses and are given in units of square meters per square second.

A linear frictional stress, κ(U, V)/h, is used at the sea bottom following Heaps (1969). However, Heaps used a constant κ = 0.0024 m/s, whereas a spatially varying κ is adopted here following Ding et al. (2004) and Tan (1992) such that it is inversely proportional to the cubic root of the water depth. This produces κ values that range from 4.5 × 10−4 to 4.6 × 10−3 m/s across the world ocean. This approach is an attempt to reflect the lower values of bottom friction in deep water compared with shallow water; see Xu (2011) for additional details.

The world ocean is taken as the model domain, and GEBCO08 (General Bathymetric Chart of the Ocean; http://www.gebco.net) is used for the model’s bathymetry. An advantage of using the global ocean as the model domain is that the model is free of artificial open-water boundaries; all of the lateral boundary conditions are zero normal flow conditions at the coasts:

$$ \begin{array}{cc}\hfill U=0\hfill & \hfill \mathrm{at}\ \mathrm{the}\ \mathrm{west}\ \mathrm{and}\ \mathrm{east}\ \mathrm{coasts},\hfill \end{array} $$
(5)
$$ \begin{array}{cc}\hfill V=0\hfill & \hfill \mathrm{at}\ \mathrm{the}\ \mathrm{south}\ \mathrm{and}\ \mathrm{north}\ \mathrm{coasts}.\hfill \end{array} $$
(6)

Equation (1) contains differential operators in space and time. Xu (2011) detailed how to replace the differential operators with difference operators using the central difference in space and the explicit-implicit (EI) scheme of Sielecki (1968) in time. This study used the same central difference scheme in space, but the alternating directon implicit (ADI) scheme of Leendertse (1967) is adopted for time. An advantage of using the ADI scheme is that its time step is not restricted by the CFL condition (Courant et al. 1967). Appendix 1 shows the ADI scheme in matrix form.

Regardless of the difference schemes, we can always arrive at the following canonical form:

$$ {\left[\begin{array}{c}\hfill \boldsymbol{\upeta} \hfill \\ {}\hfill \mathbf{U}\hfill \\ {}\hfill \mathbf{V}\hfill \end{array}\right]}^{\left(k+1\right)}=\mathbf{A}{\left[\begin{array}{c}\hfill \boldsymbol{\upeta} \hfill \\ {}\hfill \mathbf{U}\hfill \\ {}\hfill \mathbf{V}\hfill \end{array}\right]}^{(k)}+\mathbf{B}{\left[\begin{array}{c}\hfill {\boldsymbol{\upeta}}_{\mathbf{a}}\hfill \\ {}\hfill {\boldsymbol{\uptau}}_{\mathbf{x}}\hfill \\ {}\hfill {\boldsymbol{\uptau}}_{\mathbf{y}}\hfill \end{array}\right]}^{(k)}\left(k=0,1,2,\cdots, {k}_{\max}\right) $$
(7)

where the bold letters are the discretized versions of their continuous counterparts in Eq. (1), k is the time-stepping index, and k max is determined by k max = fix(T/Δt), where T is the duration of a model run, Δt is the time step of the model, and fix is a function that rounds its argument to the nearest integer toward zero. In this paper, a superscript in parenthesis indicates a time-stepping index.

Matrix A updates the state vector [η U V]T from the current time step to the next; it has various names, including the dynamics matrix, the propagation matrix, and the updating matrix, depending on the context. Matrix B maps the atmospheric forcing into the momentum to change the state vector. By introducing x to denote the state vector and f to denote the forcing vector

$$ \mathbf{x}\equiv {\left[\begin{array}{ccc}\hfill \boldsymbol{\upeta} \hfill & \hfill \mathbf{U}\hfill & \hfill \mathbf{V}\hfill \end{array}\right]}^{\mathrm{T}} $$
(8)
$$ \mathbf{f}\equiv \mathbf{B}{\left[\begin{array}{ccc}\hfill {\boldsymbol{\upeta}}_{\mathbf{a}}\hfill & \hfill {\boldsymbol{\uptau}}_{\mathbf{x}}\hfill & \hfill {\boldsymbol{\uptau}}_{\mathbf{y}}\hfill \end{array}\right]}^{\mathrm{T}} $$
(9)

we can present Eq. (7) in a compact form:

$$ \begin{array}{cc}\kern1em {\mathbf{x}}^{\left(k+1\right)}=\mathbf{A}{\mathbf{x}}^{(k)}+{\mathbf{f}}^{(k)},\kern1em & \kern1em \left(k=0,1,2,\cdots, {k}_{\max}\right).\kern1em \end{array} $$
(10)

Xu (2011) showed how the updating matrix A can be generated for Sielecki’s (1968) EI difference scheme. Appendix 1 shows how the updating matrix A can be obtained as a product of four factor matrices for Leendertse’s (1967) ADI difference scheme. One may substitute in their own favorite difference scheme. In this case, the contents of matrix A will change, but the form of Eq. (10) remains the same. Therefore, Eq. (10) can be viewed as a canonical form for representing all of the depth-averaged linear SWE models.

From Eq. (10) we can see that x (k + 1) has to be updated from x (k). This means that even if we are interested in the solution to only one of the elements of the state vector, the solutions to all of the other elements must be computed. The solution to one of the elements may mean a time series of the sea surface elevations at a POI (in practice, we only have a few such POIs where we want model solutions). To obtain the time series at the POI, the solutions at all of the model grid points must be computed and then discarded, except for the one that is of interest. Thus, an enormous portion of the computations is wasted on the vast area of the ocean where solutions are not of interest. This has been the traditional way of modeling and the waste has been viewed as being necessary. However, we can actually avoid it using the ASGF method, as will be demonstrated in the next section.

The ASGF method uses Eq. (10) only to calculate a convolution matrix that contains all the Green’s functions for a POI. Having prepared the convolution matrix, Eq. (10) will no longer be used. This is because the convolution matrix is an internal property of the ocean pertinent to the POI and only needs to be calculated once. Afterward, any storm surge simulation can be achieved through the convolution of the Green’s function matrix with an atmospheric forcing field. All of the computations for the convolution are directly targeted toward the POI; no computation is wasted elsewhere. Thus enormous computational efficiencies can be gained.

The computational efficiency gain by the ASGF method compared with the traditional method will be theoretically and empirically studied in detail in Section 3 of part II, where Eq. (10) will be used to represent the traditional method because of its being canonical, because the ASGF is prepared with it, and because without the ASGF method, Eq. (10) would have to be used to model storm surges.

3 Storm surge solution and the ASGF

This section presents the definition of and algorithm for the ASGF and the solutions to the initial value and forced-wave problems. It then introduces the concepts of the memory time scale and the sampling rate for the ASGF. These two concepts are important for economically computing and storing the ASGFs; they will also be used in part II to assess the gain in computational efficiency obtained using the ASGF method.

3.1 The ASGF and its convolution

The solution to Eq. (10) can be expressed in terms of the initial condition and the external force field as

$$ \begin{array}{cc}\hfill {\mathbf{x}}^{\left(k+1\right)}={\mathbf{A}}^{k+1}{\mathbf{x}}^{(0)}+{\displaystyle \sum_{i=0}^{\mathrm{k}}{\mathbf{A}}^i{\mathbf{f}}^{\left(k-i\right)}},\hfill & \hfill \left(k=0,1,2,\cdots, {k}_{\max}\right)\hfill \end{array} $$
(11)

where the superscripts without parentheses refer to powers of the matrix. At first glance, the solution may appear to be impractical because it requires powers of the matrix A, and powers of a large matrix are computationally expensive. This would be the case if we needed to find the solutions at all the model grid points; however, we only need to know the solutions at a few POIs. In this case, we only need to calculate a few rows of the matrix powers instead of all of them. Without loss of generality, let us assume that the solution is needed at only one POI corresponding to the nth grid point, i.e., only the nth component of the solution vector x is of interest. In this case, as shown in Eq. (11), only the nth row of each of the powers of A is needed. Introducing a new notation

$$ {\mathbf{r}}_k\equiv {\mathbf{A}}^k\left(n,:\right) $$
(12)

to represent the nth row of the kth power of A, we can then write

$$ {\eta}^{\left(k+1\right)}=\begin{array}{cc}\hfill {\mathbf{r}}_{k+1}{\mathbf{x}}^{(0)}+{\displaystyle \sum_{i=0}^k{\mathbf{r}}_i{\mathbf{f}}^{\left(k-i\right)}},\hfill & \hfill \left(0\le k\le {k}_{\max}\right)\hfill \end{array} $$
(13)

where η ≡ x(n) explicitly indicates that the nth component of the state vector is a sea surface elevation, which is of particular concern in this paper (but the velocities at a POI can be of interest as well). The row vector r i can be iteratively calculated as

$$ {\mathbf{r}}_{k+1}=\begin{array}{cc}\hfill {\mathbf{r}}_k\mathbf{A},\hfill & \hfill \mathrm{f}\mathrm{o}\mathrm{r}\ 0\le k\le {k}_{\max}\hfill \end{array} $$
(14)
$$ {\mathbf{r}}_0(j)=\left\{\begin{array}{ll}0,\hfill & j\ \mathrm{f}\mathrm{o}\mathrm{r}\ \mathrm{all}\ \mathrm{the}\ \mathrm{grid}\ \mathrm{points}\ \mathrm{except}\ \mathrm{f}\mathrm{o}\mathrm{r}\ \mathrm{the}\ n\mathrm{t}\mathrm{h},\hfill \\ {}1,\hfill & j=n.\hfill \end{array}\right. $$
(15)

Each iteration involves a multiplication of a row vector by a matrix, which can be performed very economically. Appendix 2 shows how to calculate the row vector r i when the matrix A is given in its factor matrices. By collecting all of the row vectors into two matrices,

$$ {\mathbf{G}}_{\mathbf{i}}=\left[{\mathbf{r}}_1;{\mathbf{r}}_2;\cdots; {\mathbf{r}}_{k_{\max }};{\mathbf{r}}_{k_{\max }+1}\right], $$
(16)
$$ {\mathbf{G}}_{\mathbf{c}}=\left[{\mathbf{r}}_0;{\mathbf{r}}_1;{\mathbf{r}}_2;\cdots; {\mathbf{r}}_{k_{\max }}\right], $$
(17)

where the semicolon “;” indicates the end of the preceding row and the beginning of the next row (i.e., the rs are vertically stacked), we can concisely express Eq. (13) as

$$ \boldsymbol{\upeta} ={\mathbf{G}}_{\mathbf{i}}{\mathbf{x}}^{(0)}+{\mathbf{G}}_{\mathbf{c}}\ast \mathbf{f} $$
(18)

where \( \boldsymbol{\upeta} ={\left[{\eta}^{(1)}{\eta}^{(2)}{\eta}^{(3)}\cdots {\eta}^{\left({k}_{\max }+1\right)}\right]}^T \) is a column vector that contains the time series of the solution for the sea surface elevations at the POI. The second term is a convolution and is defined as

$$ \begin{array}{cc}\hfill {\left({\mathbf{G}}_{\mathbf{c}}\ast \mathbf{f}\right)}^{\left(k+1\right)}\equiv {\displaystyle \sum_{i=0}^k{\mathbf{G}}_{\mathbf{c}}\left(i+1,:\right){\mathbf{f}}^{\left(k-i\right)}},\hfill & \hfill \left(k=0,1,2,\cdots, {k}_{\max}\right)\hfill \end{array} $$
(19)

where the notation “*” represents the convolution operation. Equation (18) shows that the solution is composed of two parts: the first term of the RHS is the contribution of the initial condition, and the second term is the contribution of the external forcing. The forcing vector f changes with time. A convolution is needed because different instances of f produce different responses, which must be added in the correct order in time.

As shown in Eqs. (16) and (17), the same set of r-vectors appears in both G i and G c , except r 0 only appears in G i and \( {\mathbf{r}}_{k_{\max }+1} \) only appears in G c . The matrix G i is appropriate for free-wave problems such as tsunami propagation, whereas the matrix G c is suitable for forced-wave problems such as storm surges. Either matrix can be used as the definition of the ASGF. In this paper, when there is no ambiguity, their subscripts may be omitted. The ASGF is an internal property of the dynamic system; it can be pre-calculated. Once it has been calculated, it can be repeatedly used to rapidly produce the response to any event such as a tsunami or a storm surge.

The columns of the G matrix contain the Green’s functions corresponding to all of the model grid points, one column for one Green’s function to an impulse at a grid point. The algorithm shown in Eqs. (14) and (15) is a new way to calculate the Green’s functions. It completely eliminates the source limitation problem associated with the traditional way to calculate the Green’s functions.

Not all of the Green’s functions contained in the columns of the G matrix share the same unit. The units also depend on what the variable is interested at the POI for which the G matrix is calculated. If the sea surface elevations are the variable of interest at the POI, the Green’s functions contained in the columns of G are either nondimensional or have a dimension of square seconds per meter; the nondimensional functions are contained in the columns corresponding to the atmospheric pressures expressed as the inverse barometer, η a, and the dimensional functions are contained in the columns corresponding to the wind stresses, τ x and τ y. This can be deduced from Eq. (1) by noting that the inverse barometer pressure, η a, has units of meters and that the kinematic wind stresses, τ x and τ y, have units of square meters per square second.

For tsunami propagation in the ocean, which is a free-wave problem because there is no external forcing after the onset of a tsunami, Eq. (18) reduces to

$$ \boldsymbol{\upeta} ={\mathbf{G}}_{\mathbf{i}}{\mathbf{x}}^{(0)}. $$
(20)

A matrix times a column vector can be rapidly calculated. This means that we can instantaneously produce a tsunami arrival time series at a destination point, if a reliable initial condition x (0) can be also made available at the same time. In the tsunami literature, an initial condition is called a source function. Xu and Song (2013) demonstrated the potential for rapid tsunami prediction by combining the ASGF method and the GPS-derived source function (based on the ground movements of the coastal GPS stations that were detected by satellites) using the 2011 Tohoku tsunami as an example.

For a storm surge problem, the forcing field f exists, occupies the entire model domain, and changes with time. After the forcing spins up the ocean, the convolution term becomes dominant, whereas the effects of the initial condition become negligible due to friction. Therefore, we can drop the initial condition term and simplify Eq. (18) as

$$ \boldsymbol{\upeta} ={\mathbf{G}}_{\mathrm{c}}\ast \mathbf{f}. $$
(21)

The forcing vector f is specified using the outputs from an atmospheric model. Usually, an atmospheric model has a coarser spatial resolution than does a surge model in the ocean. In this case, the forcing vector and the columns of G c can be compressed to reduce their sizes and hence to enhance the computational and storage efficiencies. Appendix 3 discusses this point in detail.

3.2 The memory time scale of the ocean and the length of the convolution kernel

Equation (14) appears to suggest that the row vectors, \( \begin{array}{cc}\hfill {\mathbf{r}}_{k+1},\hfill & \hfill \left(k=0,1,2,\cdots, {k}_{\max}\right)\hfill \end{array} \), need to be iterated up to k = k max. This is not necessary in an energy dissipative system when k max is large. Due to friction, the magnitudes of all of the elements in the row vectors will gradually become negligibly small. The real ocean has certain memory time scales to remember certain things. We may divide a row vector in the G matrix into two sub-row vectors, one corresponding to the air pressures and another corresponding to the wind stresses. Figure 1 shows the attenuation of the sub-row vectors with time; the top panel shows the attenuation of the infinite norm of the sub-row vectors corresponding to the air pressures, and the bottom panel shows the attention of the infinite norms of the sub-row vectors corresponding to the wind stresses. As we can see, the infinite norms already become negligible after 48 h. To be conservative, this study chose 72 h as the memory time scale of the ocean, T mem, after which we can replace any r-vector by a zero vector. The memory time scale T mem may also be called the convolution kernel length because it dictates how long the kernel should extend to the past, as we will see soon.

Fig. 1
figure 1

Attenuation of the ASGF with time. Top, attenuation of the infinite-norm of the sub-row vectors of the matrix corresponding to the air pressures. Bottom, attenuation of the infinite-norm of the sub-row vectors of the matrix corresponding to the wind stresses

The fact that the ASGF attenuates with time is an advantage that we should take to reduce the computational load and storage space. By setting an appropriate memory time scale, T mem, we do not need to calculate the r-vectors after T mem. This consideration leads to a split of the recursion scheme in Eq. (14) into two parts:

$$ {\mathbf{r}}_{k+1}=\begin{array}{cc}\hfill {\mathbf{r}}_k\mathbf{A},\hfill & \hfill \left(0\le k\le {k}_{\mathrm{mem}}\right)\hfill \end{array} $$
(22)
$$ {\mathbf{r}}_{k+1}\approx \begin{array}{cc}\hfill \mathbf{0},\hfill & \hfill \left({k}_{\mathrm{mem}}+1\le k\le {k}_{\max}\right)\hfill \end{array} $$
(23)

where k mem = fix(T mem/Δt). Instead of stopping at k = k max, the recursion now stops at k = k mem, after which any r k + 1 can be simply approximated by a zero vector. Accordingly, the k max in Eqs. (16) and (17) should be replaced by k mem,

$$ {\mathbf{G}}_{\mathbf{i}}=\left[{\mathbf{r}}_1;{\mathbf{r}}_2;\cdots; {\mathbf{r}}_{k_{\mathrm{mem}}};{\mathbf{r}}_{k_{\mathrm{mem}}+1}\right], $$
(24)
$$ {\mathbf{G}}_{\mathbf{c}}=\left[{\mathbf{r}}_0;{\mathbf{r}}_1;{\mathbf{r}}_2;\cdots; {\mathbf{r}}_{k_{\mathrm{mem}}}\right], $$
(25)

and Eq. (13) should also be split into two parts:

$$ {\eta}^{\left(k+1\right)}=\begin{array}{cc}\hfill {\mathbf{r}}_{k+1}{\mathbf{x}}^{(0)}+{\displaystyle \sum_{i=0}^k{\mathbf{r}}_i{\mathbf{f}}^{\left(k-i\right)}},\hfill & \hfill \left(0\le k\le {k}_{\mathrm{mem}}\right)\hfill \end{array} $$
(26)
$$ {\eta}^{\left(k+1\right)}\approx \begin{array}{cc}\hfill {\displaystyle \sum_{i=0}^{k_{\mathrm{mem}}}{\mathbf{r}}_i{\mathbf{f}}^{\left(k-i\right)}},\hfill & \hfill \left({k}_{\mathrm{mem}}+1\le k\le {k}_{\max}\right)\hfill \end{array}. $$
(27)

Equation (26) shows that within the memory time scale, the sea level at the next time step, η (k + 1), is affected by the initial condition and by a sum of weighted forcing vectors of the present time step, f (k), and of all of the past time steps, f (k − 1), f (k − 2), ⋯, f (0). Equation (27) shows that beyond the memory time scale, the initial condition no longer has any effect; the sea level at the next time step, η (k + 1), is purely a sum of the weighted forcing vectors of the present, f (k), and of the past, \( {\mathbf{f}}^{\left(k-1\right)},{\mathbf{f}}^{\left(k-2\right)},\cdots, {\mathbf{f}}^{\left(k-{k}_{\mathrm{mem}}\right)} \), with r (0) as the weights of the current forcing vector f (k), r (1) as the weights of the immediate past forcing vector f (k−1), etc. The weights r (k) diminish with k and are simply replaced by zero vectors for any k larger than k mem, which means that any forcing vector in the past before t = k mem × Δt has no effect on the sea level at the next time step. Continuation of this weighted sum process as k increases is what a convolution is all about. The r-vectors form a kernel of the convolution, with r (0) and \( {\mathbf{r}}^{\left({k}_{\mathrm{mem}}\right)} \) as the head and tail of the kernel, respectively, and k mem is the length of the kernel.

Equation (26) is an exact relation, which means that the solution to the sea surface elevation at a point, η (k + 1), obtained by this equation will be identical to the solution obtained by the traditional method, i.e. Eq. (10), for k ≤ k mem. Equation (27) is an approximate relation, which means that the solution obtained by Eq. (27) will not be identical to but approximate the solution at the same point that is obtained by Eq. (10) for k > k mem. The error is due to the truncation of the r-vectors shown in Eq. (23). However, the truncation error can be controlled by choosing an appropriate value for k mem to make the solution obtained by Eq. (27) practically the same as that obtained by Eq. (10). Saying that two solutions are practically the same it is meant that their differences are insignificant for all practical purposes.

3.3 The sampling rate for the ASGF

With the concept of the memory time scale introduced above, the G c (or G i ) matrix should now be viewed as a collection of row vectors r k + 1 up to k mem (or k mem + 1, cf. Eqs. (16) and (17)). When k mem ≪ k max, the number of the rows in the G (either G i or G c ) matrix is greatly reduced. We can further reduce the number of rows if we find that the Δt associated with the k-index is too fine for the problem in question. In this case, we can sample only a subset of the r-vectors. For example, if Δt = 5 sec, which may be imposed by the CFL condition for stability, and if we collect all of the row vectors in the G matrix, the time series of η on the left-hand side (LHS) of Eqs. (26) and (27) would also have a 5-sec time resolution, which might be excessive for many practical problems. For example, a 1-min resolution would be adequate for a tsunami arrival time series at a POI; in modeling storm surges, a 1-hour resolution is commonly used in outputting the model solutions. We could then sample the r-vectors at a decimating rate of 12 or 720 for the tsunami or storm surge problems, respectively. In other words, the sampling rate for the G matrix can be expressed as

$$ \varDelta {t}_{\mathrm{smp}}=\begin{array}{cc}\hfill d\varDelta t,\hfill & \hfill \left(d\ge 1\right)\hfill \end{array} $$
(28)

where d represents the decimating rate. The sampling rate for the ASGF can be minutely, hourly, or any other time interval depending on the requirements of the problem. Note that regardless of how Δt smp is chosen, the accuracy of the r-vectors will not be affected. The r-vectors are the results of the iterations of Eqs. (22) and (23); their accuracies are already fixed when Δt is chosen in assembling the updating matrix A. The choice of Δt smp only matters how frequently we sample the r-vectors.

In choosing a decimating rate for storm surge modeling, we have to also consider the time resolution in a given atmospheric forcing field. If the given field has an hourly resolution, the decimating rate d should be chosen such that Δt smp = dΔt = 3600 sec. If the given atmospheric forcing field has a 3-hour resolution (which is not uncommon), the decimating rate d may be chosen as Δt smp = dΔt = 3 × 3600 sec.

The r-vectors are produced with a finer time resolution, Δt, but are sampled with a coarser one, Δt smp. During each Δt smp, the forcing is assumed to be constant. The accumulative effect of the constant forcing during the d steps of Δt is considered in Appendix 4. The appendix also presents two MATLAB functions, ASGF_ini and ASGF_conv, that are used to calculate the r-vectors and to assemble them into the G i and G c matrices for the initial value problem and for the forced problem. In the functions, we can also see how the decimating rate, d, is used.

Based on Eqs. (24) and (25) and the sampling rate introduced above, we can see that the number of rows of the matrix G, denoted by L G , is

$$ {L}_G=fix\left({T}_{\mathrm{mem}}/\varDelta {t}_{\mathrm{smp}}\right). $$
(29)

Because the matrix G plays the role of the convolution kernel, its number of rows may also be referred to as the length of the convolution kernel or simply the length of G.

4 Interpretations of the ASGF

This section interprets the ASGF from different perspectives and links it to several familiar concepts.

4.1 Dependence field

The matrix G can be interpreted with physical meanings. Figure 2 should remind us of a familiar concept often seen in text books: the dependence intervals for a one-dimensional wave solution at a point. The figure shows that the wave solution at a point of interest, x, depends only on the conditions within the interval (x − ct, x + ct), where c is the wave speed, which is constant in this case. The dependence interval increases over time at the same rate as the wave speed c.

Fig. 2
figure 2

The one-dimensional wave solution at point x depends on the initial conditions only within the interval (x − ct, x + ct). The interval of dependence grows at the same rate as the wave speed c

The wave solution at a point on the real ocean surface also has a domain of dependence. However, this seems to have received little attention in practice, perhaps because it is difficult to visualize this domain from solutions that are obtained with conventional modeling approaches. Now, from the G matrix, we can not only see the domain of dependence but also know the weights of the dependence. Each row of G contains the domain of dependence at a particular time. Figure 3 shows the domains of dependence of the wave solution at Sept-Îles (Quebec, Canada) at four different times. Figure 3a shows the domain of dependence at t = 6 hour; the solution at Sept-Îles depends only on the conditions within the colored region. The conditions outside the region do not yet affect the solutions; they need more time to affect the solution. From Fig. 3a–d, we can see how the domain of dependence grows.

Fig. 3
figure 3

Domains of dependence of the wave solutions at Sept-Îles, Gulf of St. Lawrence, at t = 6, 12, 24, and 48 hour (ad). The colors indicate the weights of the dependences. Note that the longitudes and latitudes are rotated longitudes and latitudes that are used by the model. The pole of the spherical coordinates that is used by the model is set at a location in Greenland (40 W, 80 N) to avoid having the polar singularity located in the water

Their growth rates are controlled by the wave speeds, which in turn are controlled by the water depths varying spatially in the real ocean. As shown in Fig. 3d, the domain of dependence covers almost the entire world ocean in 48 hours, which means that anything that occurs in the world ocean can significantly or insignificantly affect the wave solution at Sept-Îles within 2 days. The color spectrum indicates the weights of the dependences, which can be positive or negative. A negative weight means that a positive impulse will cause a negative response. We can collectively refer to the domains and weights of dependence as a field of dependence. The values of the weights are largely affected by the resolution of the model grid; the finer the grid spacing is, the smaller the weights will be; however what matters is the spatial integral of the weights. The weights shown in Fig. 3 are for a model grid spacing of 5 min in longitude and latitude. The field of dependence may also be called the connectivity between the POI and the rest of the world ocean.

The columns of G contain all the Green’s functions; each column is a response time series to an impulse placed at a grid point. There are as many such Green’s functions as there are grid points. The name “all-source Green’s function” means that all of the model grid points can be source points. Thus G contains a complete set of information about the linear dynamic system. Its rows contain information about how the POI is connected to the rest of the world (i.e., the fields of dependence), and its columns contain all the Green’s functions to the delta forcings at all the grid points. We may also say that its columns contain all the temporal information and its rows contain all the spatial information. The matrix G, or the ASGF, is an internal property of the linear dynamics system of the world ocean. It is independent of external forcings and can be calculated before events occur. Once it is pre-calculated, it can be repeatedly used to quickly calculate responses to tsunami and storm surge events. It can also be used to model tides (which will be the topic of another paper). All of the time-consuming computations (such as those due to the small time steps) have been absorbed into the calculation of G.

4.2 An MISO system

In the language of system and control theory, the ASGF is a system of multiple inputs and a single output (MISO, Fig. 4). The multiple inputs are a global forcing field, f, that is defined at model grid points, and the single output is a response time series, η, at a POI. The ASGF, which is the matrix G, is the kernel of the MISO system. With the same G but a different type of forcing field f, the system becomes a different model. When f represents an atmospheric forcing field, the system is a storm surge model; when f represents an astronomical forcing field, the system is a tide model; and when f is tectonic (via a source function), the system is a tsunami propagation model (Fig. 4).

Fig. 4
figure 4

An MISO system with the ASGF as its kernel. The global forcing field can be atmospheric, astronomical, or tectonic and can be defined over the entire domain or at any part of the domain. A convolution of the ASGF matrix G with the forcing field can quickly yield a response

5 Summary and discussion

Beginning with the depth-averaged linear shallow-water equations, this paper defined the ASGF and presented its algorithm for two situations: one where the dynamics matrix A is available as a single matrix, which results from using a simple numerical discretization scheme, such as Sielecki’s (1968) EI scheme, and one where the dynamic matrix A can only be presented in factor matrices. The latter situation arises from the use of a more advanced discretization scheme such as the ADI. Appendixes 1 and 2 present the ADI scheme in matrix form and the corresponding ASGF algorithm, respectively. In addition to the definition of and algorithm for the ASGF, the concepts of the memory time scale and the sampling rate of the ASGF were also introduced. The two concepts make the ASGF computed and stored economically. It will be shown in part II that they are also important factors to enhance the computational efficiency of the ASGF method in comparison with the traditional method.

The rows and columns of the ASGF have different meanings. The rows of the ASGF matrix contain information about how the POI is connected to the rest of the world ocean at different times (more precisely called the field of dependence), and the columns of the matrix contain all of the Green’s functions that correspond to the impulse forces at all of the grid points. In the terminology of system and control theory, the ASGF was also interpreted as a system of multiple inputs and a single output (MISO).

Equation (10) is a canonical form to represent various traditional linear storm surge models, although they may not be written in matrix form; different models differ only in the content of the updating matrix A. Two features are common to all the traditional storm surge models: they all must map out solutions at every grid point, even though only solutions at a few grid points are of interest, and they all have to use small time steps to ensure stability or accuracy, even though hourly outputs are commonly needed. These two features result in intensive computations. Consequently, global storm surge models are rare; most are regional. A regional model has a lower computational load, but the trade-off is the challenge of the artificial open-water boundary conditions.

The ASGF method that is proposed in this paper improves upon the traditional modeling approach. Instead of being run for individual events, Eq. (10) is used only to calculate the ASGF. The ASGF needs to be calculated once; afterward it can be repeatedly used for any event. A convolution of the ASGF matrix with a forcing field will quickly yield the response to an event. The ASGF also accounts for the influences of global forcing fields and the global ocean geometry. It bypasses the open-water boundary condition issue because it can efficiently include the entire world ocean as its domain.

The ASGF simplifies the expression of a storm surge model. It expresses the sea surface elevations at a point as a convolution of the ASGF matrix with a forcing field. This simple expression opens a door to many other mathematical operations, such as singular value decomposition (SVD), the fast Fourier transform (FFT), and linear regression analyses, which can make storm surge modeling even faster and data-assimilative. These points will be considered in part II of this study. The mathematical formulas that were developed in this paper will also be tested through both simplified and realistic cases in part II. The formulas will be validated with an analytical solution in the simplified case and will be tested with field observational data in the realistic case.