SUBROUTINE StringPropertyCalculator (md, den, pre, tem)
    
    !!! This subroutine gets location of a guage or an observation point and determines information of that point such as pressure, density, velocity and temperature later.
    use PressureDisplayVARIABLESModule
    USE Fluid_Flow_Startup_Vars
    ! use ConfigurationVariables
    !USE MudSystemVARIABLES
use SimulationVariables !@@@
    USE FricPressDropVarsModule
    !use CDataDisplayConsole
   !@ use ConfigurationVariables ,  StandPipePressureDataDisplay=>StandPipePressure
    !use CDataDisplayConsole
   !@ use ConfigurationVariables , CasingPressureDataDisplay=>CasingPressure!, StandPipePressureDataDisplay=>StandPipePressure
    use SimulationVariables !@
    
    IMPLICIT NONE
    INTEGER, intent(in) :: md  ! input
    REAL(8) :: TVD
    real(8), intent(inout) :: den  ! output
    real(8), intent(inout) :: pre  ! output
    real(8), intent(inout) :: tem  ! output
    
    INTEGER :: ilocal
    
    CALL TVD_Calculator(md * 1.d0 , TVD)
    
    DO ilocal = data%State%FricPressDrop%StringFirstEl , data%State%FricPressDrop%StringLastEl
        IF (md < INT(FinalFlowEl(ilocal)%EndX)) EXIT
    END DO
    den = FinalFlowEl(ilocal)%Density
    pre = FinalFlowEl(ilocal)%StartPress - (md - FinalFlowEl(ilocal)%StartX) * FinalFlowEl(ilocal)%dPdLfric &
                    + (TVD - FinalFlowEl(ilocal)%StartTVD) * FinalFlowEl(ilocal)%dPdLGrav
    tem = 500
            
    END SUBROUTINE