The Shallow Water Wave Equations

swe={(∂_t)h[λ,ϕ,t]+(1/(R Cos[ϕ]))((∂_λ)(u[λ,ϕ,t]  (h[λ, ϕ, t]   - b[λ, ϕ] ))+(∂_ϕ)(v[λ, ϕ, t]  (h[λ, ϕ, t]   - b[λ, ϕ] )Cos[ϕ]))==0,(((∂_ϕ)u[λ, ϕ, t]  v[λ, ϕ, t] )/R)+((g (∂_λ)h[λ, ϕ, t] )/(R Cos[ϕ]))+(∂_t)u[λ, ϕ, t]+((u[λ, ϕ, t]  (∂_λ)u[λ, ϕ, t] )/(R Cos[ϕ]))==f v[λ, ϕ, t] ,
(((∂_ϕ)v[λ, ϕ, t]  v[λ, ϕ, t] )/R)+((g (∂_ϕ)h[λ, ϕ, t] )/R)+(∂_t)v[λ, ϕ, t] +((u[λ, ϕ, t]  (∂_λ)v[λ, ϕ, t] )/(R Cos[ϕ]))==-f u[λ, ϕ, t] };

Shapes for Ocean Floor and Fault Displacement

Seamount[s_, w_, {λ_, ϕ_}][l_, p_] := s Exp[-w ((l-λ)^2 + (p-ϕ)^2)];FaultDisplacement[p1_, p2_][p_?(VectorQ[#, NumberQ]&)] :=
If[p1 == p2,Norm[p - p1],
 Module[{pp1,pp2, p12},
pp1 = p - p1;
pp2 = p - p2;
p12 = (p1 - p2)/Norm[p1 - p2];
If[Sign[p12.pp1] != Sign[p12.pp2],
Norm[pp1 - pp1.p12 p12],
Min[Norm[pp1], Norm[pp2]]]]];

The Ocean Floor

(Subscript[λ, min]) =-15 ° ; (Subscript[λ, max])= 15 °;(Subscript[λ, e]) = 0;(Subscript[λ, i])= 2.5 °;
(Subscript[ϕ, min])= -35 °;(Subscript[ϕ, max])= 5 °;(Subscript[ϕ, 1])= -10 °;(Subscript[ϕ, 2])= -20 °; (Subscript[ϕ, i ])= -25 °;
nxy = 50;
b[λ_, ϕ_] := -4000 + Seamount[3500, 1000, {-2.5 °, -25 °}][λ, ϕ]+ Seamount[3000, 1000, {-5 °, -23 °}][λ, ϕ] +  Seamount[3000, 1000, {-7.5 °, -27 °}][λ, ϕ]+  Seamount[3000, 1000, {5°, -24°}][λ, ϕ]+Seamount[3000, 1000, {5°, -21°}][λ, ϕ]+Seamount[3000, 1000, {5°, -18°}][λ, ϕ]+Seamount[3000, 1000, {5°, -15°}][λ, ϕ]+Seamount[3000, 1000, {5°, -12°}][λ, ϕ]+
Seamount[3750, 1000, {-2°, -18°}][λ, ϕ];

Solving the PDEs

T = 2 3600;Block[{R = 6378000, ω = ((2 π)/(24 3600)), f= 2ω Sin[ϕ], g = 9.8, s = .95},
sol = First[h /. NDSolve[{swe, h[λ, ϕ, 0] == Exp[-2000 ((FaultDisplacement[{(Subscript[λ, e]),(Subscript[ϕ, 1])},{(Subscript[λ, e]),(Subscript[ϕ, 2])}][{λ,ϕ}])^2)], u[λ, ϕ, 0] == 0, v[λ, ϕ, 0] == 0, h[λ, (Subscript[ϕ, min]), t] ==  h[λ, (Subscript[ϕ, max]), t], h[(Subscript[λ, min]), ϕ, t] ==  h[ (Subscript[λ, max]), ϕ, t]},h, {λ, (Subscript[λ, min]),  (Subscript[λ, max])}, {ϕ,(Subscript[ϕ, min]), (Subscript[ϕ, max])}, {t,0,T},DependentVariables->{h,u,v}, Method->{"MethodOfLines","SpatialDiscretization"->{"TensorProductGrid","MaxPoints"->nxy, "MinPoints"->nxy, "DifferenceOrder"->"Pseudospectral"}}]]]

Visualizing the Solutions

ani=Table[Plot3D[sol[λ, ϕ, t], {λ, (Subscript[λ, min]), (Subscript[λ, max])}, {ϕ, (Subscript[ϕ, min]), (Subscript[ϕ, max])}, PlotRange->{-1,1}, PlotPoints->nxy, Mesh->None,MaxRecursion->0,PlotStyle->{RGBColor[.8,.8,1],Specularity[White,100]},
Boxed->False,Axes->None,Background->White],{t,0,T,360}];

Animate[ani[[i]],{i,1,Length[ani],1},DefaultDuration->.25Length[ani]]