Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

grdflexure.rst 18 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
  1. .. index:: ! grdflexure
  2. .. include:: ../module_supplements_purpose.rst_
  3. **********
  4. grdflexure
  5. **********
  6. |grdflexure_purpose|
  7. Synopsis
  8. --------
  9. .. include:: ../../common_SYN_OPTs.rst_
  10. **gmt grdflexure** *topogrd*
  11. |-D|\ *rm*/*rl*\ [/*ri*]\ /*rw*
  12. |-E|\ [*Te*\ [**k**][/*Te2*\ [**k**]]]
  13. |-G|\ *outgrid*
  14. [ |-A|\ *Nx*/*Ny*/*Nxy* ]
  15. [ |-C|\ **p**\ *poisson* ] [ |-C|\ **y**\ *Young* ]
  16. [ |-F|\ *nu_a*\ [/*h_a*\ [**k**]/*nu_m*] ]
  17. [ |-L|\ *list* ]
  18. [ |-M|\ *tm* ]
  19. [ |-N|\ *params* ]
  20. [ |-Q| ]
  21. [ |-S|\ *beta* ]
  22. [ |-T|\ *t0*\ [/*t1*/*dt*]\ \|\ *file*\ [**+l**] ]
  23. [ |SYN_OPT-V| ]
  24. [ |-W|\ *wd*]\ [**k**]
  25. [ |-Z|\ *zm*]\ [**k**]
  26. [ |SYN_OPT-f| ]
  27. [ |SYN_OPT--| ]
  28. |No-spaces|
  29. Description
  30. -----------
  31. **grdflexure** computes the deformation due to a topographic load :math:`h(\mathbf{x})`
  32. for five different types of rheological foundations, all involving *constant thickness thin plates*:
  33. #. An elastic plate overlying an inviscid half-space,
  34. #. An elastic plate overlying a viscous half-space (Firmoviscous or Kelvin-Voigt),
  35. #. An elastic plate overlying a viscous layer over a viscous half-space (Firmoviscous or Kelvin-Voigt),
  36. #. A viscoelastic plate overlying an inviscid half-space (Maxwell solid),
  37. #. A general linear viscoelastic model with an initial and final elastic plate thickness overlying an inviscid half-space.
  38. These conditions will require the *elastic* [1; :math:`\Phi_e(\mathbf{k})`],
  39. *firmoviscous* [2,3; :math:`\Phi_{fv}(\mathbf{k},t)`],
  40. *viscoelastic* [4; :math:`\Phi_{ve}(\mathbf{k},t)`],
  41. and *general linear* (viscoelastic) response functions [5; :math:`\Phi_{gl}(\mathbf{k},t)`]
  42. If the (visco)elastic plate vanishes (zero thickness) then we obtain Airy isostasy
  43. (1,4) or a purely *viscous* response (2,3). Temporal evolution can
  44. also be modeled by providing incremental load grids for select times and specifying a
  45. range of model output times. A wide range of options allow specifying the desired
  46. rheology and related constants, including in-plate forces.
  47. Required Arguments
  48. ------------------
  49. *topogrd*
  50. 2-D binary grid file with the topography of the load (in meters);
  51. See GRID FILE FORMATS below.
  52. If **-T** is used, *topogrd* may be a filename template with a
  53. floating point format (C syntax) and a different load file name
  54. will be set and loaded for each time step. The load times thus
  55. coincide with the times given via **-T** (but not all times need
  56. to have a corresponding file). Alternatively, give *topogrd* as
  57. =\ *flist*, where *flist* is an ASCII table with one *topogrd* filename
  58. and load time per record. These load times can be different from
  59. the evaluation times given via **-T**. For load time format, see
  60. **-T**.
  61. .. _-D:
  62. **-D**\ *rm*/*rl*\ [/*ri*]\ /*rw*
  63. Sets density for mantle, load, infill, and water (or air). If *ri* differs from
  64. *rl* then an approximate solution will be found. If *ri* is not given
  65. then it defaults to *rl*. Values may be given in km/m^3 or g/cm^3.
  66. .. _-E:
  67. **-E**\ [*Te*\ [**k**][/*Te2*\ [**k**]]
  68. Sets the elastic plate thickness (in meter); append **k** for km.
  69. If the elastic thickness exceeds 1e10 it will be interpreted as
  70. a flexural rigidity *D* (by default, *D* is computed from *Te*, Young's
  71. modulus, and Poisson's ratio; see **-C** to change these values).
  72. If just **-E** is given and **-F** is used it means no plate is given
  73. and we will return a purely viscous response with or without an asthenospheric layer.
  74. Select a general linear viscoelastic response by supplying both an initial and
  75. final elastic thickness; this response also requires **-M**.
  76. .. _-G:
  77. **-G**\ *outfile*
  78. If **-T** is set then *grdfile* must be a filename template that contains
  79. a floating point format (C syntax). If the filename template also contains
  80. either %s (for unit name) or %c (for unit letter) then we use the corresponding time
  81. (in units specified in **-T**) to generate the individual file names, otherwise
  82. we use time in years with no unit.
  83. Optional Arguments
  84. ------------------
  85. .. _-A:
  86. **-A**\ *Nx*/*Ny*/*Nxy*
  87. Specify in-plane compressional or extensional forces in the *x*- and *y*-directions,
  88. as well as any shear force [no in-plane forces]. Compression is indicated by
  89. negative values, while extensional forces are specified using positive values.
  90. Values are expected in Pa·m since **N** is the depth-integrated horizontal
  91. stresses.
  92. .. _-C:
  93. **-Cp**\ *poisson*
  94. Change the default value of Poisson's ratio [0.25].
  95. **-Cy**\ *Young*
  96. Change the default value of Young's modulus [7.0e10 N/m^2].
  97. .. _-F:
  98. **-F**\ *nu_a*\ [\ /*h_a*\ [**k**]/*nu_m*]
  99. Specify a firmoviscous model in conjunction with an elastic plate
  100. thickness specified via **-E**. Just give one viscosity (*nu_a*)
  101. for an elastic plate over a viscous half-space, or also append
  102. the thickness of the asthenosphere (*h_a*) and the lower mantle
  103. viscosity (*nu_m*), with the first viscosity now being that of
  104. the asthenosphere. Give viscosities in Pa·s. If used, give the
  105. thickness of the asthenosphere in meter; append **k** for km.
  106. Cannot be used in conjunctions with **-M**.
  107. .. _-L:
  108. **-L**\ *list*
  109. Write the names and evaluation times of all grids that were created
  110. to the text file *list*. Requires **-T**.
  111. .. _-N:
  112. .. include:: ../../explain_fft.rst_
  113. .. _-M:
  114. **-M**\ *tm*
  115. Specify a viscoelastic model in conjunction with a plate
  116. thickness specified via **-E**. Append the Maxwell time *tm* for the
  117. viscoelastic model (in years); add **k** for kyr and **M** for Myr.
  118. Cannot be used in conjunctions with **-F**.
  119. .. _-Q:
  120. **-Q**
  121. Do not make any flexure calculations but instead take the chosen response function
  122. given the parameters you selected and evaluate it for a range of wavenumbers and
  123. times; see the note on transfer functions below.
  124. .. _-S:
  125. **-S**\ *beta*
  126. Specify a starved moat fraction in the 0-1 range, where 1 means the moat is fully
  127. filled with material of density *ri* while 0 means it is only filled with
  128. material of density *rw* (i.e., just water) [1].
  129. .. _-T:
  130. **-T**\ *t0*\ [/*t1*/*dt*]\ \|\ *file*\ [**+l**]
  131. Specify *t0*, *t1*, and time increment (*dt*) for a sequence of calculations
  132. [Default is one calculation, with no time dependency]. For a single specific time, just
  133. give start time *t0*. Default *unit* is years; append **k** for kyr and **M** for Myr.
  134. For a logarithmic time scale, append **+l** and specify *n* steps instead of *dt*.
  135. Alternatively, give a *file* with the desired times in the first column (these times
  136. may have individual units appended, otherwise we assume year).
  137. We then write a separate model grid file for each given time step; see *-G** for output
  138. file template format.
  139. .. _-W:
  140. **-W**\ *wd*\ [**k**]
  141. Set reference water depth for the undeformed flexed surface in m. Must be positive. [0]. Append **k** to indicate
  142. km. If **-W** is used and your load exceeds this depth then we scale the subaerial part of the
  143. load to account for the change in surrounding density (air vs water).
  144. .. _-Z:
  145. **-Z**\ *zm*\ [**k**]
  146. Specify reference depth to flexed surface (e.g., Moho) in m; append **k** for km.
  147. Must be positive. [0]. We subtract this value from the flexed surface before
  148. writing the results.
  149. .. _-V:
  150. .. |Add_-V| unicode:: 0x20 .. just an invisible code
  151. .. include:: ../../explain_-V.rst_
  152. |SYN_OPT-f|
  153. Geographic grids (dimensions of longitude, latitude) will be converted to
  154. meters via a "Flat Earth" approximation using the current ellipsoid parameters.
  155. .. include:: ../../explain_help.rst_
  156. .. include:: ../../explain_grd_inout_short.rst_
  157. Grid Distance Units
  158. -------------------
  159. If a Cartesian grid does not have meter as the horizontal unit, append **+u**\ *unit*
  160. to the input file name to convert from the specified unit to meter. E.g., appending
  161. **+uk** to the load file name will scale the grid x,y coordinates from km to meter. If your
  162. grid is geographic, convert distances to meters by supplying |SYN_OPT-f| instead.
  163. netCDF COARDS geographic grids will automatically be recognized as geographic.
  164. Considerations
  165. --------------
  166. The calculations are done using a rectangular Cartesian FFT operation. If your
  167. geographic region is close to either pole, you should consider using a Cartesian
  168. setup instead; you can always project it back to geographic using :doc:`grdproject </grdproject>`.
  169. Transfer Functions
  170. ------------------
  171. If **-Q** is given we perform no actual flexure calculations and no input data file is required.
  172. Instead, we write the chosen transfer functions :math:`\Phi(\mathbf{k},t)` to 7 separate files for
  173. 7 different Te values (1, 2, 5, 10, 20, 50, and 100 km). The first two columns are
  174. always wavelength in km and wavenumber (in 1/m) for a 1:1:3000 km range. The transfer
  175. functions are evaluated for 12 different response times: 1k, 2k, 5k, 10k, 20k, 50k,
  176. 100k, 200k, 500k, 1M, 2M, and 5M years. For a purely elastic response function
  177. we only write the transfer function once per elastic thickness (in column 3). The 7 files are named
  178. grdflexure_transfer_function_te\ _\ *te*\ _km.txt, where *te* is replaced by the 7 elastic thicknesses
  179. in km (and 0 if **-E**\ [0] was used for a viscous response only).
  180. Examples
  181. --------
  182. We will use a Gaussian seamount load to demonstrate **grdflexure**. First, we make
  183. a grid of for that shape by placing a Gaussian truncated seamount at position (300,300)
  184. with a radius of 50 km and height of 5000 m::
  185. echo 300 300 0 40 40 5000 | gmt grdseamount -R0/600/0/600+uk -I1000 -Gsmt.nc t.txt -Dk -E -F0.1 -Cg
  186. To compute elastic plate flexure from the load *smt.nc*,
  187. for a 10 km thick plate with typical densities, try::
  188. gmt grdflexure smt.nc -Gflex.nc -E10k -D2700/3300/1035
  189. To see how in-plane stresses affect the result, we use **-A**. Remember that we need to depth-
  190. integrated forces, not pressures, hence we try::
  191. gmt grdflexure smt.nc -Gflex.nc -E10k -D2700/3300/1035 -A-4e11/2e11/-1e12
  192. To compute viscoelastic plate flexure from the load *smt.nc*,
  193. for a 20 km thick plate with typical densities and a Maxwell time of 40kyr, try::
  194. gmt grdflexure smt.nc -Gflex.nc -E20k -D2700/3300/1035 -M40k
  195. To compute firmoviscous plate flexure from the load *smt.nc*,
  196. for a 15 km thick plate with typical densities overlying a viscous mantle with viscosity 2e21, try::
  197. gmt grdflexure smt.nc -Gflex.nc -E15k -D2700/3300/1035 -F2e21
  198. To compute the general linear viscoelastic plate flexure from the load *smt.nc*,
  199. for an initial Te of 40 km and a final Te of 15 km with typical densities and a Maxwell time of 100 kyr, try::
  200. gmt grdflexure smt.nc -Gflex.nc -E40k/15k -D2700/3300/1035 -M100k
  201. To just compute the firmoviscous response functions using the specified rheological values, try::
  202. gmt grdflexure -D3300/2800/2800/1000 -Q -F2e20
  203. The following are not user-reproducible but shows the kind of calculations that can be done.
  204. To compute the firmoviscous response to a series of incremental loads given by
  205. file name and load time in the table l.lis at the single time 1 Ma using the
  206. specified rheological values, try::
  207. gmt grdflexure -T1M =l.lis -D3300/2800/2800/1000 -E5k -Gflx/smt_fv_%03.1f_%s.nc -F2e20 -Nf+a
  208. Theory of Response Functions
  209. ----------------------------
  210. Deformation :math:`w(\mathbf{x})` caused by topography :math:`h(\mathbf{x})` applied instantaneously to the
  211. rheological foundation at time *t = 0* and evaluated at a later time *t* is given in the Fourier domain by
  212. .. math::
  213. W(\mathbf{k},t) = \gamma \left (\frac{\rho_l - \rho_w}{\rho_m - \rho_l} \right ) H(\mathbf{k}) \Phi(\mathbf{k},t)
  214. = \gamma A H(\mathbf{k}) \Phi(\mathbf{k},t),
  215. where :math:`\mathbf{k} = (k_x, k_y)` is the wavenumber vector, :math:`k_r` its magnitude, :math:`H(\mathbf{k})` is the
  216. topographic load in the wavenumber domain, *A* is the Airy density ratio, :math:`\gamma` is a constant that depends
  217. on the infill density, and :math:`\Phi(\mathbf{k},t)` is the response function for the selected rheology. The **grdflexure**
  218. module read one or more loads *h*, transforms them to *H*, evaluates and applies the response function, and
  219. inversely transform the results back to yield on or more *w* solutions.
  220. Variable infill approximation
  221. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  222. If :math:`\rho_i = \rho_l` then :math:`\gamma = 1`, otherwise the infill density varies spatially and the Fourier
  223. solution is not valid. We avoid these complications by letting :math:`\rho_l = \rho_i` and increasing the deformation amplitude by
  224. .. math::
  225. \gamma = \sqrt{\frac{\rho_m - \rho_i}{\rho_m - \rho_l}}.
  226. The approximation is good except for very large loads on thin plates (*Wessel*, 2001).
  227. .. figure:: /_images/grdflexure_approx.*
  228. :width: 400 px
  229. :align: center
  230. a) We want a flexural calculation that allows for different densities in the moat (:math:`\rho_i`)
  231. and beneath the load (:math:`\rho_l`). Unfortunately, the Fourier method requires a constant density contrast.
  232. b) Reusing the load density as a (higher) infill density gives an exact answer, but overestimates both the
  233. flexural wavelength (:math:`\lambda_l`) and the amplitude of deflection (:math:`w_l`).
  234. c) Reusing the infill density as a (lower) load density gives approximately the correct flexural wavelength but
  235. underestimates the amplitude (dashed curve). We achieve a satisfactory approximation by scaling :math:`w_i` by
  236. the factor :math:`\gamma` (modified from *Wessel* [2016]).
  237. Elastic response function
  238. ~~~~~~~~~~~~~~~~~~~~~~~~~
  239. The time-independent *elastic response function* is
  240. .. math::
  241. \Phi_e(\mathbf{k}) = \left [ 1 + \alpha_r^4 + \epsilon_x \alpha_x^2 + \epsilon_y \alpha_y^2 + \epsilon_{xy} \alpha_{xy}^2 \right ]^{-1}, \quad \alpha_s = k_s / k,
  242. where the *flexural wavenumber k* and constants :math:`\epsilon_s` via in-plane stresses :math:`N_x, N_y, N_{xy}` are
  243. .. math::
  244. k = \left [ \frac{(\rho_m - \rho_i)g}{D} \right ]^{\frac{1}{4}}, \quad \epsilon_s = \left [ \frac{N_s}{(\rho_m - \rho_i)g} \right ]^{\frac{1}{2}},
  245. for subscripts :math:`s = \left (x, y, xy \right )`.
  246. In the most common scenario, :math:`N_s` are all zero and the elastic response function becomes *isotropic*:
  247. .. math::
  248. \Phi_e(k_r) = \left [ 1 + \alpha_r^4 \right ]^{-1}.
  249. Firmoviscous response function
  250. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  251. The *firmoviscous response function* :math:`\Phi(\mathbf{k},t)` scales the magnitude of the deformation at a given wavenumber and time
  252. and depends on rheological parameters and in-plane stresses:
  253. .. math::
  254. \Phi_{fv}(\mathbf{k},t) = \Phi_e(\mathbf{k}) \left [ 1 - \exp \left \{ - \frac{(\rho_m - \rho_l) \tau(k_r)}{\rho_m\Phi_e(\mathbf{k})} t \right \} \right ].
  255. If the foundation is an inviscid half-space, then the *relaxation parameter* :math:`\tau(k_r) = \infty`, there is no time-dependence,
  256. and :math:`\Phi_{fv}(\mathbf{k},t) = \Phi_e(\mathbf{k})`. Otherwise, it is given by
  257. .. math::
  258. \tau(k_r) = \frac{\rho_m g}{2 \eta_m k_r} \beta(k_r),
  259. where :math:`\beta(k_r)` depends on whether we have a finite-thickness layer of thickness :math:`T_a` and viscosity
  260. :math:`\eta_a` above the half-space of viscosity :math:`\eta_m` (*Cathles*, 1975; *Nakada*, 1986).
  261. If no finite layer exists then :math:`\beta(k_r) = 1`, otherwise
  262. .. math::
  263. \beta(k_r) = \frac{(\theta + \theta^{-1}) CS + k_r T_a (\theta - \theta^{-1}) + S^2 + C^2}{2CS\theta + (1-\theta)k_r^2 T_a^2 + \theta S^2 + C^2},
  264. where
  265. .. math::
  266. \theta = \eta_a/\eta_m, \quad S = \sinh (k_r T_a), \quad C = \cosh (k_r T_a).
  267. Airy and viscous response function
  268. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  269. In the limit :math:`t \rightarrow \infty, \tau \rightarrow 0` and we approach the purely elastic solution
  270. .. math::
  271. W(\mathbf{k}) = A \gamma H(\mathbf{k}) \Phi_e(\mathbf{k}).
  272. Otherwise, if the plate has no strength (**-E**\ 0), then :math:`\Phi_e(\mathbf{k}) = 1` and the response function is purely *viscous* and isotropic:
  273. .. math::
  274. \Phi_v(k_r,t) = \left [ 1 - \exp \left \{ - \frac{(\rho_m - \rho_l) \tau(k_r)}{\rho_m} t \right \} \right ].
  275. For :math:`t \rightarrow \infty` (or for an inviscid half-space) we approach Airy isostasy: :math:`w(\mathbf{x}) = A h(\mathbf{x})`.
  276. Maxwell viscoelastic response
  277. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  278. For case (4), the viscoelastic response function (only available for an inviscid substratum) is
  279. .. math::
  280. \Phi_{ve}(\mathbf{k},t) = 1 - \left [ 1 - \Phi_e(\mathbf{k}) \right ] \exp \left \{ - \frac{t}{t_m} \Phi_e(\mathbf{k}) \right \},
  281. where :math:`t_m` is the *Maxwell relaxation time* (*Watts*, 2001).
  282. General linear viscoelastic response
  283. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  284. For case (5), the general linear viscoelastic response function (with an inviscid substratum) is (*Karner*, 1982)
  285. .. math::
  286. \Phi_{gl}(\mathbf{k},t) = \Phi_f(\mathbf{k}) + \left [ \Phi_i(\mathbf{k}) - \Phi_f(\mathbf{k}) \right ] \exp \left \{ - \frac{t}{t_m} \frac{D_i \Phi_i(\mathbf{k})}{D_f \Phi_f(\mathbf{k})} \right \},
  287. where subscripts *i* and *f* refers to the initial (*t = 0*) and final (:math:`t = \infty`) values for rigidities (:math:`D_i, D_f`)
  288. and elastic response functions (:math:`\Phi_i, \Phi_f`).
  289. References
  290. ----------
  291. Cathles, L. M., 1975, *The viscosity of the earth's mantle*, Princeton University Press.
  292. Karner, G. D., 1982, Spectral representation of isostatic models, *BMR J. Australian Geology & Geophysics, 7*, 55-62.
  293. Nakada, M., 1986, Holocene sea levels in oceanic islands: Implications for the rheological
  294. structure of the Earth's mantle, *Tectonophysics, 121*, 263–276,
  295. `http://dx.doi.org/10.1016/0040-1951(86)90047-8 <http://dx.doi.org/10.1016/0040-1951(86)90047-8>`_.
  296. Watts, A. B., 2001, *Isostasy and Flexure of the Lithosphere*, 458 pp., Cambridge University Press.
  297. Wessel. P., 2001, Global distribution of seamounts inferred from gridded Geosat/ERS-1 altimetry,
  298. J. Geophys. Res., 106(B9), 19,431-19,441,
  299. `http://dx.doi.org/10.1029/2000JB000083 <http://dx.doi.org/10.1029/2000JB000083>`_.
  300. Wessel, P., 2016, Regional–residual separation of bathymetry and revised estimates of Hawaii plume flux,
  301. *Geophys. J. Int., 204(2)*, 932-947, `http://dx.doi.org/10.1093/gji/ggv472 <http://dx.doi.org/10.1093/gji/ggv472>`_.
  302. See Also
  303. --------
  304. :doc:`gmt </gmt>`,
  305. :doc:`gmtflexure </supplements/potential/gmtflexure>`,
  306. :doc:`grdfft </grdfft>`,
  307. :doc:`gravfft </supplements/potential/gravfft>`
  308. :doc:`grdmath </grdmath>`, :doc:`grdproject </grdproject>`,
  309. :doc:`grdseamount </supplements/potential/grdseamount>`
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...