23 #include "sll_memory.h"
24 #include "sll_working_precision.h"
38 sll_i_transformation_func_nopass
62 character(len=64) :: label
64 logical :: written = .false.
67 procedure(get_cartesian_mesh_ct),
deferred, pass :: get_cartesian_mesh
69 procedure(geometry_function_ct),
deferred, pass :: x1
71 procedure(geometry_function_ct),
deferred, pass :: x2
73 procedure(geometry_function_ct),
deferred, pass :: jacobian
75 procedure(geometry_function_indices_ct),
deferred, pass :: x1_at_node
77 procedure(geometry_function_indices_ct),
deferred, pass :: x2_at_node
79 procedure(geometry_function_indices_ct),
deferred, pass :: jacobian_at_node
81 procedure(matrix_geometry_function_ct),
deferred, pass :: jacobian_matrix
83 procedure(matrix_geometry_function_ct),
deferred, pass :: &
84 inverse_jacobian_matrix
86 procedure(geometry_function_indices_ct),
deferred, pass :: x1_at_cell
88 procedure(geometry_function_indices_ct),
deferred, pass :: x2_at_cell
90 procedure(geometry_function_indices_ct),
deferred, pass :: jacobian_at_cell
92 procedure(write_transformation_signature),
deferred, pass :: write_to_file
94 procedure(read_transformation),
deferred, pass :: read_from_file
96 procedure(transformation_subroutine),
deferred, pass :: delete
109 #ifndef DOXYGEN_SHOULD_SKIP_THIS
112 function get_cartesian_mesh_ct(transf)
result(res)
117 end function get_cartesian_mesh_ct
121 function geometry_function_ct(transf, eta1, eta2)
result(res)
125 sll_real64,
intent(in) :: eta1
126 sll_real64,
intent(in) :: eta2
128 end function geometry_function_ct
132 function geometry_function_indices_ct(transf, i, j)
result(res)
136 sll_int32,
intent(in) :: i
137 sll_int32,
intent(in) :: j
139 end function geometry_function_indices_ct
143 function matrix_geometry_function_ct(transf, eta1, eta2)
147 sll_real64,
intent(in) :: eta1
148 sll_real64,
intent(in) :: eta2
149 sll_real64 :: matrix_geometry_function_ct(2, 2)
150 end function matrix_geometry_function_ct
157 function sll_i_transformation_func_nopass(eta1, eta2, params)
result(res)
159 sll_real64,
intent(in) :: eta1
160 sll_real64,
intent(in) :: eta2
161 sll_real64,
dimension(:),
intent(in) :: params
163 end function sll_i_transformation_func_nopass
167 function matrix_geometry_function_nopass(eta1, eta2)
result(res)
169 sll_real64,
intent(in) :: eta1
170 sll_real64,
intent(in) :: eta2
171 sll_real64 :: res(2, 2)
172 end function matrix_geometry_function_nopass
182 function two_arg_scalar_function(eta1, eta2)
184 sll_real64 :: two_arg_scalar_function
185 sll_real64,
intent(in) :: eta1
186 sll_real64,
intent(in) :: eta2
187 end function two_arg_scalar_function
191 function two_arg_message_passing_func(transf, eta1, eta2)
194 sll_real64 :: two_arg_message_passing_func
196 sll_real64,
intent(in) :: eta1
197 sll_real64,
intent(in) :: eta2
198 end function two_arg_message_passing_func
202 subroutine write_transformation_signature(transf, output_format)
206 sll_int32,
intent(in),
optional :: output_format
207 end subroutine write_transformation_signature
211 subroutine transformation_subroutine(transf)
214 end subroutine transformation_subroutine
218 subroutine read_transformation(transf, filename)
221 character(len=*),
intent(in) :: filename
222 end subroutine read_transformation
225 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
Cartesian mesh basic types.
Module to select the kind parameter.