grdflexure - Compute flexural deformation of 3-D surfaces for various rheologies


grdflexure topogrd -Drm/rl[/ri]/rw -ETe[u] -Goutgrid [ -ANx/Ny/Nxy ] [ -Cppoisson ] [ -CyYoung ] [ -Fnu_a[/h_a/nu_m] ] [ -Llist ] [ -N[f|q|s|nx/ny][+a|d|h|l][+e|n|m][+twidth][+w[suffix]][+z[p]] [ -Sbeta ] [ -Tt0[u][/t1[u]/dt[u]|file] |n][+l] ] [ -V[level] ] [ -Wwd] [ -Zzm] [ -fg ]

Note: No space is allowed between the option flag and the associated arguments.


grdflexure computes the flexural response to loads using a range of user-selectable rheologies. User may select from elastic, viscoelastic, or firmoviscous (with one or two viscous layers). Temporal evolution can also be modeled by providing incremental load grids and specifying a range of model output times.

Required Arguments

2-D binary grid file with the topography of the load (in meters); See GRID FILE FORMATS below. If -T is used, topogrd may be a filename template with a floating point format (C syntax) and a different load file name will be set and loaded for each time step. The load times thus coincide with the times given via -T (but not all times need to have a corresponding file). Alternatively, give topogrd as =flist, where flist is an ASCII table with one topogrd filename and load time per record. These load times can be different from the evaluation times given via -T. For load time format, see -T.
Sets density for mantle, load, infill (optional, otherwise it is assumed to equal the load density), and water or air. If ri differs from rl then an approximate solution will be found. If ri is not given then it defaults to rl.
Sets the elastic plate thickness (in meter); append k for km. If the elastic thickness exceeds 1e10 it will be interpreted as a flexural rigidity D (by default D is computed from Te, Young’s modulus, and Poisson’s ratio; see -C to change these values).
If -T is set then grdfile must be a filename template that contains a floating point format (C syntax). If the filename template also contains either %s (for unit name) or %c (for unit letter) then we use the corresponding time (in units specified in -T) to generate the individual file names, otherwise we use time in years with no unit.

Optional Arguments

Specify in-plane compressional or extensional forces in the x- and y-directions, as well as any shear force [no in-plane forces]. Compression is indicated by negative values, while extensional forces are specified using positive values.
Change the current value of Poisson’s ratio [0.25].
Change the current value of Young’s modulus [7.0e10 N/m^2].
Specify a firmoviscous model in conjunction with an elastic plate thickness specified via -E. Just give one viscosity (nu_a) for an elastic plate over a viscous half-space, or also append the thickness of the asthenosphere (h_a) and the lower mantle viscosity (nu_m), with the first viscosity now being that of the asthenosphere. Give viscosities in Pa*s. If used, give the thickness of the asthenosphere in meter; append k for km.

Choose or inquire about suitable grid dimensions for FFT and set optional parameters. Control the FFT dimension:

-Na lets the FFT select dimensions yielding the most accurate result.

-Nf will force the FFT to use the actual dimensions of the data.

-Nm lets the FFT select dimensions using the least work memory.

-Nr lets the FFT select dimensions yielding the most rapid calculation.

-Ns will present a list of optional dimensions, then exit.

-Nnx/ny will do FFT on array size nx/ny (must be >= grid file size). Default chooses dimensions >= data which optimize speed and accuracy of FFT. If FFT dimensions > grid file dimensions, data are extended and tapered to zero.

Control detrending of data: Append modifiers for removing a linear trend:

+d: Detrend data, i.e. remove best-fitting linear trend [Default].

+a: Only remove mean value.

+h: Only remove mid value, i.e. 0.5 * (max + min).

+l: Leave data alone.

Control extension and tapering of data: Use modifiers to control how the extension and tapering are to be performed:

+e extends the grid by imposing edge-point symmetry [Default],

+m extends the grid by imposing edge mirror symmetry

+n turns off data extension.

Tapering is performed from the data edge to the FFT grid edge [100%]. Change this percentage via +twidth. When +n is in effect, the tapering is applied instead to the data margins as no extension is available [0%].

Control messages being reported: +v will report suitable dimensions during processing.

Control writing of temporary results: For detailed investigation you can write the intermediate grid being passed to the forward FFT; this is likely to have been detrended, extended by point-symmetry along all edges, and tapered. Append +w[suffix] from which output file name(s) will be created (i.e., ingrid_prefix.ext) [tapered], where ext is your file extension. Finally, you may save the complex grid produced by the forward FFT by appending +z. By default we write the real and imaginary components to ingrid_real.ext and ingrid_imag.ext. Append p to save instead the polar form of magnitude and phase to files ingrid_mag.ext and ingrid_phase.ext.

Write the names and evaluation times of all grids that were created to the text file list. Requires -T.
Specify a viscoelastic model in conjunction with an elastic plate thickness specified via -E. Append the Maxwell time tm for the viscoelastic model (in ).
Specify a starved moat fraction in the 0-1 range, where 1 means the moat is fully filled with material of density ri while 0 means it is only filled with material of density rw (i.e., just water) [1].
Specify t0, t1, and time increment (dt) for sequence of calculations [Default is one step, with no time dependency]. For a single specific time, just give start time t0. The unit is years; append k for kyr and M for Myr. For a logarithmic time scale, append +l and specify n steps instead of dt. Alternatively, give a file with the desired times in the first column (these times may have individual units appended, otherwise we assume year). We then write a separate model grid file for each given time step.
Set reference depth to the undeformed flexed surface in m [0]. Append k to indicate km.
Specify reference depth to flexed surface (e.g., Moho) in m; append k for km. Must be positive. [0].
-V[level] (more ...)
Select verbosity level [c].
Geographic grids (dimensions of longitude, latitude) will be converted to meters via a “Flat Earth” approximation using the current ellipsoid parameters.
-^ or just -
Print a short message about the syntax of the command, then exits (NOTE: on Windows just use -).
-+ or just +
Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation of all options, then exits.

Grid File Formats

By default GMT writes out grid as single precision floats in a COARDS-complaint netCDF file format. However, GMT is able to produce grid files in many other commonly used grid file formats and also facilitates so called “packing” of grids, writing out floating point data as 1- or 2-byte integers. (more ...)

Grid Distance Units

If the grid does not have meter as the horizontal unit, append +uunit to the input file name to convert from the specified unit to meter. If your grid is geographic, convert distances to meters by supplying -fg instead.


netCDF COARDS grids will automatically be recognized as geographic. For other grids geographical grids were you want to convert degrees into meters, select -fg. If the data are close to either pole, you should consider projecting the grid file onto a rectangular coordinate system using grdproject.

Plate Flexure Notes

The FFT solution to plate flexure requires the infill density to equal the load density. This is typically only true directly beneath the load; beyond the load the infill tends to be lower-density sediments or even water (or air). Wessel [2001, 2016] proposed an approximation that allows for the specification of an infill density different from the load density while still allowing for an FFT solution. Basically, the plate flexure is solved for using the infill density as the effective load density but the amplitudes are adjusted by the factor A = sqrt ((rm - ri)/(rm - rl)), which is the theoretical difference in amplitude due to a point load using the two different load densities. The approximation is very good but breaks down for large loads on weak plates, a fairy uncommon situation.


To compute elastic plate flexure from the load, for a 10 km thick plate with typical densities, try

gmt grdflexure -E10k -D2700/3300/1035

To compute the firmoviscous response to a series of incremental loads given by file name and load time in the table l.lis at the single time 1 Ma using the specified rheological values, try

gmt grdflexure -T1M =l.lis -D3300/2800/2800/1000 -E5k -Gflx/ -F2e20 -Nf+a


Cathles, L. M., 1975, The viscosity of the earth’s mantle, Princeton University Press.

Wessel. P., 2001, Global distribution of seamounts inferred from gridded Geosat/ERS-1 altimetry, J. Geophys. Res., 106(B9), 19,431-19,441,

Wessel, P., 2016, Regional–residual separation of bathymetry and revised estimates of Hawaii plume flux, Geophys. J. Int., 204(2), 932-947,