ObserverSourcePairInterpolateSolSecond Subroutine

public subroutine ObserverSourcePairInterpolateSolSecond(self, tobserver, tsource)

Type Bound

ObserverSourcePairClass

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
real(kind=RP), intent(in) :: tobserver
real(kind=RP), intent(in) :: tsource

Source Code

  Subroutine ObserverSourcePairInterpolateSolSecond(self, tobserver, tsource)

       implicit none

       class(ObserverSourcePairClass)                      :: self
       real(kind=RP),  intent(in)                          :: tobserver
       real(kind=RP),  intent(in)                          :: tsource

       ! local variables
       real(kind=RP), dimension(2)                         :: tPair         ! time array of the panel
       real(kind=RP), dimension(3)                         :: PaccInterp    ! solution of the pair interpolated

       ! save last time
       self % tInterp(size(self % tInterp)) = tsource + self % tDelay
       ! use 2 first values to interpolate
       tPair = self % tInterp(1:2)

       PaccInterp(:) = linearInterpolation(tobserver, tPair(1), self % Pacc(1,:), tPair(2), self % Pacc(2,:), 3)

       !update the first value of the solution of the pair with the interpolated one
       self % Pacc(1,:) = PaccInterp(:)

    End Subroutine ObserverSourcePairInterpolateSolSecond