Output the Euler field state.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(euler_1d), | intent(in) | :: | self | Euler field. |
||
| logical, | intent(in), | optional | :: | is_primitive | Output in primitive variables. |
Euler state vector.
pure function output(self, is_primitive) result(state)
!< Output the Euler field state.
class(euler_1d), intent(in) :: self !< Euler field.
logical, intent(in), optional :: is_primitive !< Output in primitive variables.
real(R8P), allocatable :: state(:,:) !< Euler state vector.
real(R8P), allocatable :: state_(:) !< Euler state vector, local variable.
logical :: is_primitive_ !< Output in primitive variables, local variable.
type(primitive_compressible) :: primitive !< Primitive state.
integer(I4P) :: i !< Counter.
is_primitive_ = .false. ; if (present(is_primitive)) is_primitive_ = is_primitive
if (is_primitive_) then
allocate(state(1:size(primitive%array(), dim=1), 1:self%Ni))
do i=1, self%Ni
primitive = conservative_to_primitive_compressible(conservative=self%U(i), eos=self%eos)
state_ = primitive%array()
enddo
else
allocate(state(1:size(self%U(1)%array(), dim=1), 1:self%Ni))
do i=1, self%Ni
state_ = self%U(i)%array()
state(:, i) = state_
enddo
endif
endfunction output