40 use,
intrinsic :: iso_c_binding, only : c_ptr, c_associated, c_null_ptr
69 integer,
intent(in) :: order
75 allocate(this%coeffs_A(order, order))
76 allocate(this%coeffs_b(order))
77 allocate(this%coeffs_c(order))
80 coeffs_a => this%coeffs_A, &
81 coeffs_b => this%coeffs_b, &
82 coeffs_c => this%coeffs_c, &
83 coeffs_a_d => this%coeffs_A_d, &
84 coeffs_b_d => this%coeffs_b_d, &
85 coeffs_c_d => this%coeffs_c_d)
96 coeffs_a(1, 1) = 0.0_rp
102 coeffs_a(2, 1) = 1.0_rp
112 coeffs_a(2, 1) = 1.0_rp
113 coeffs_a(3, 1) = 0.25_rp
114 coeffs_a(3, 2) = 0.25_rp
116 coeffs_b(1) = 1.0_rp / 6.0_rp
117 coeffs_b(2) = 1.0_rp / 6.0_rp
118 coeffs_b(3) = 2.0_rp / 3.0_rp
126 coeffs_a(2, 1) = 0.5_rp
127 coeffs_a(3, 2) = 0.5_rp
128 coeffs_a(4, 3) = 1.0_rp
130 coeffs_b(1) = 1.0_rp / 6.0_rp
131 coeffs_b(2) = 1.0_rp / 3.0_rp
132 coeffs_b(3) = 1.0_rp / 3.0_rp
133 coeffs_b(4) = 1.0_rp / 6.0_rp
140 call neko_error(
"The time order must be 1 to 4.")
143 if (c_associated(coeffs_a_d))
then
148 if (c_associated(coeffs_b_d))
then
153 if (c_associated(coeffs_c_d))
then
167 if (c_associated(this%coeffs_A_d))
then
168 call device_free(this%coeffs_A_d)
170 if (c_associated(this%coeffs_b_d))
then
171 call device_free(this%coeffs_b_d)
173 if (c_associated(this%coeffs_c_d))
then
174 call device_free(this%coeffs_c_d)