Report Typos and Errors    
Semi-Lagrangian Library
Modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices.
sll_m_singular_mapping_advector_constant.F90
Go to the documentation of this file.
2 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 #include "sll_assert.h"
4 
6 
8 
9  implicit none
10 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11 
12  ! Working precision
13  integer, parameter :: wp = f64
14 
16 
17  ! Constant advection velocities
18  real(wp) :: a(2)
19 
20  contains
21 
23  procedure :: velocity_field => s_singular_mapping_advector_constant__velocity_field
24  procedure :: flow_field => f_singular_mapping_advector_constant__flow_field
26 
28 
29 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
30 contains
31 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
32 
34  class(sll_t_singular_mapping_advector_constant), intent(inout) :: self
35  real(wp), intent(in) :: a(2) ! constant advection velocities
36 
37  self%a(:) = a(:)
38 
40 
41  !-----------------------------------------------------------------------------
42  sll_pure subroutine s_singular_mapping_advector_constant__velocity_field(self, x, a)
43  class(sll_t_singular_mapping_advector_constant), intent(in) :: self
44  real(wp), intent(in) :: x(2)
45  real(wp), intent(out) :: a(2)
46 
47  a(:) = self%a(:)
48 
49  end subroutine s_singular_mapping_advector_constant__velocity_field
50 
51  !-----------------------------------------------------------------------------
52  sll_pure function f_singular_mapping_advector_constant__flow_field(self, x, h) result(y)
53  class(sll_t_singular_mapping_advector_constant), intent(in) :: self
54  real(wp), intent(in) :: x(2)
55  real(wp), intent(in) :: h
56  real(wp) :: y(2)
57 
58  y(:) = x(:) + self%a(:)*h
59 
60  end function f_singular_mapping_advector_constant__flow_field
61 
62  !-----------------------------------------------------------------------------
64  class(sll_t_singular_mapping_advector_constant), intent(inout) :: self
66 
Module to select the kind parameter.
integer, parameter, public f64
f64 is the kind type for 64-bit reals (double precision)
    Report Typos and Errors