16 logical,
private :: finalized = .false.
29 class(
curve_t),
intent(inout) :: z
30 integer,
optional :: size
34 if (
present(size))
then
35 call z%scratch%init(size)
44 class(
curve_t),
intent(inout) :: z
45 if (
allocated(z%curve_el))
then
46 deallocate(z%curve_el)
59 class(
curve_t),
target,
intent(inout) :: z
62 if (.not. z%finalized)
then
64 allocate(z%curve_el(z%scratch%size()))
65 select type (tp=>z%scratch%data)
67 do i = 1, z%scratch%size()
72 z%size = z%scratch%size()
74 call z%scratch%clear()
84 class(
curve_t),
intent(inout) :: z
85 real(kind=
dp),
dimension(5,12),
intent(in) :: curve_data
86 integer,
dimension(12),
intent(in) :: curve_type
87 integer,
intent(in) :: el_idx
93 c_el%curve_data = curve_data
94 c_el%curve_type = curve_type
96 call z%scratch%push(c_el)
Defines a domain as a subset of facets in a mesh.
subroutine curve_element_free(z)
Deallocate a domain.
subroutine curve_element_finalize(z)
Finalize a domain list.
subroutine curve_element_init(z, size)
Initialize a curved domain.
subroutine curve_element_add(z, el_idx, curve_data, curve_type)
Add a (facet, el) tuple to an unfinalized domain.
integer, parameter, public dp
Implements a dynamic stack ADT.
Defines structs that are used... Dont know if we should keep it though.