Fill an existing seven-point cubature buffer without allocating a plan.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(panel_geometry_type), | intent(in) | :: | geometry | |||
| real(kind=dp), | intent(out) | :: | position(3,7) | |||
| real(kind=dp), | intent(out) | :: | weight(7) |
subroutine fill_panel_quadrature(geometry, position, weight) type(panel_geometry_type), intent(in) :: geometry real(dp), intent(out) :: position(3, 7), weight(7) real(dp), parameter :: barycentric(3, 7) = reshape([ & 1.0_dp/3.0_dp, 1.0_dp/3.0_dp, 1.0_dp/3.0_dp, & 0.059715871789770_dp, 0.470142064105115_dp, 0.470142064105115_dp, & 0.470142064105115_dp, 0.059715871789770_dp, 0.470142064105115_dp, & 0.470142064105115_dp, 0.470142064105115_dp, 0.059715871789770_dp, & 0.797426985353087_dp, 0.101286507323456_dp, 0.101286507323456_dp, & 0.101286507323456_dp, 0.797426985353087_dp, 0.101286507323456_dp, & 0.101286507323456_dp, 0.101286507323456_dp, 0.797426985353087_dp & ], [3, 7]) real(dp), parameter :: normalized_weight(7) = [ & 0.225000000000000_dp, & 0.132394152788506_dp, 0.132394152788506_dp, 0.132394152788506_dp, & 0.125939180544827_dp, 0.125939180544827_dp, 0.125939180544827_dp & ] integer :: point do point = 1, 7 position(:, point) = matmul(geometry%vertex, barycentric(:, point)) end do weight = geometry%area*normalized_weight end subroutine fill_panel_quadrature