@@ -81,16 +81,18 @@ pure module function construct_1D_tensor_from_components(values, x_min, x_max, c
8181 private
8282 type (gradient_operator_1D_t) gradient_operator_1D_
8383 contains
84+ generic :: grid = > scalar_1D_grid
85+ generic :: values = > scalar_1D_values
86+ generic :: operator (/ ) = > divide_by_integer
8487 generic :: operator (** ) = > exponentiate
8588 generic :: operator (.grad.) = > grad
8689 generic :: operator (.laplacian.) = > laplacian
87- generic :: grid = > scalar_1D_grid
88- generic :: values = > scalar_1D_values
90+ procedure , non_overridable, private :: scalar_1D_values
91+ procedure , non_overridable, private :: scalar_1D_grid
92+ procedure , non_overridable, private :: divide_by_integer
8993 procedure , non_overridable, private :: exponentiate
9094 procedure , non_overridable, private :: grad
9195 procedure , non_overridable, private :: laplacian
92- procedure , non_overridable, private :: scalar_1D_values
93- procedure , non_overridable, private :: scalar_1D_grid
9496 end type
9597
9698 interface scalar_1D_t
@@ -334,6 +336,14 @@ pure module function exponentiate(self, exponent) result(power)
334336 type (scalar_1D_t) power
335337 end function
336338
339+ pure module function divide_by_integer(self, denominator) result(ratio)
340+ ! ! Result is scalar_1D_t "self" divided by the integer denominator
341+ implicit none
342+ class(scalar_1D_t), intent (in ) :: self
343+ integer , intent (in ) :: denominator
344+ type (scalar_1D_t) ratio
345+ end function
346+
337347 pure module function laplacian(self) result(laplacian_1D)
338348 ! ! Result is mimetic Laplacian of the scalar_1D_t "self"
339349 implicit none
0 commit comments