get_observations_temperature Subroutine

subroutine get_observations_temperature(self, obs_values, domain, properties, nodal_temperature, nodal_porosity, nodal_pw)

Arguments

Type IntentOptional Attributes Name
class(type_output_observation), intent(inout) :: self
real(kind=real64), intent(out) :: obs_values(:)
type(type_domain), intent(inout), optional :: domain
type(type_proereties_manager), intent(inout), optional :: properties
real(kind=real64), intent(in), optional :: nodal_temperature(:)
real(kind=real64), intent(in), optional :: nodal_porosity(:)
real(kind=real64), intent(in), optional :: nodal_pw(:)

Calls

proc~~get_observations_temperature~~CallsGraph proc~get_observations_temperature get_observations_temperature none~to_original_value type_reordering%to_original_value proc~get_observations_temperature->none~to_original_value proc~get_algorithm_name type_reordering%get_algorithm_name proc~get_observations_temperature->proc~get_algorithm_name interface~to_original_values_int32 type_reordering%to_original_values_int32 none~to_original_value->interface~to_original_values_int32 interface~to_original_values_real64 type_reordering%to_original_values_real64 none~to_original_value->interface~to_original_values_real64 proc~to_original_values_int32 to_original_values_int32 interface~to_original_values_int32->proc~to_original_values_int32 proc~to_original_values_real64 to_original_values_real64 interface~to_original_values_real64->proc~to_original_values_real64

Source Code

    subroutine get_observations_temperature(self, obs_values, domain, properties, &
                                            nodal_temperature, nodal_porosity, nodal_pw)
        implicit none
        class(type_output_observation), intent(inout) :: self
        real(real64), intent(out) :: obs_values(:)
        type(type_domain), intent(inout), optional :: domain
        type(type_proereties_manager), intent(inout), optional :: properties
        real(real64), intent(in), optional :: nodal_temperature(:)
        real(real64), intent(in), optional :: nodal_porosity(:)
        real(real64), intent(in), optional :: nodal_pw(:)

        integer(int32) :: iObs
        real(real64), allocatable :: original_temperature(:)
        integer(int32) :: istat

        ! Initialize to zero
        obs_values(:) = 0.0d0
        if (.not. present(nodal_temperature)) return

        if (.not. domain%reordering%get_algorithm_name() == "none") then
            allocate (original_temperature, mold=nodal_temperature)
            call domain%reordering%to_original_value(nodal_temperature, original_temperature)
        else
            allocate (original_temperature, source=nodal_temperature)
        end if

        do iObs = 1, self%num_observations
            obs_values(iObs) = original_temperature(self%node_ids(iObs))
        end do

        deallocate (original_temperature)
    end subroutine get_observations_temperature