3 #include "sll_assert.h"
23 procedure :: velocity_field => s_singular_mapping_advector_rotating__velocity_field
24 procedure :: flow_field => f_singular_mapping_advector_rotating__flow_field
35 real(wp),
intent(in) :: xc(2)
36 real(wp),
intent(in) :: omega
44 sll_pure
subroutine s_singular_mapping_advector_rotating__velocity_field(self, x, a)
46 real(wp),
intent(in) :: x(2)
47 real(wp),
intent(out) :: a(2)
49 a(1) = -self%omega*(x(2) - self%xc(2))
50 a(2) = self%omega*(x(1) - self%xc(1))
52 end subroutine s_singular_mapping_advector_rotating__velocity_field
55 sll_pure
function f_singular_mapping_advector_rotating__flow_field(self, x, h)
result(y)
57 real(wp),
intent(in) :: x(2)
58 real(wp),
intent(in) :: h
62 + (x(1) - self%xc(1))*cos(self%omega*h) &
63 - (x(2) - self%xc(2))*sin(self%omega*h)
66 + (x(1) - self%xc(1))*sin(self%omega*h) &
67 + (x(2) - self%xc(2))*cos(self%omega*h)
69 end function f_singular_mapping_advector_rotating__flow_field
subroutine s_singular_mapping_advector_rotating__init(self, xc, omega)
subroutine s_singular_mapping_advector_rotating__free(self)
Module to select the kind parameter.
integer, parameter, public f64
f64 is the kind type for 64-bit reals (double precision)