derivative_function_of_pstar_PT Function

public function derivative_function_of_pstar_PT(sgnBC, Pstar, Rotank, Ctank, Ptank, p_LR, u_LR, z_LR)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: sgnBC
real(kind=dp), intent(in) :: Pstar
real(kind=dp), intent(in) :: Rotank
real(kind=dp), intent(in) :: Ctank
real(kind=dp), intent(in) :: Ptank
real(kind=dp), intent(in) :: p_LR
real(kind=dp), intent(in) :: u_LR
real(kind=dp), intent(in) :: z_LR

Return Value real(kind=dp)


Calls

proc~~derivative_function_of_pstar_pt~~CallsGraph proc~derivative_function_of_pstar_pt derivative_function_of_pstar_PT proc~jacobian_rot jacobian_roT proc~derivative_function_of_pstar_pt->proc~jacobian_rot proc~t_rop T_roP proc~derivative_function_of_pstar_pt->proc~t_rop proc~eos_terms eos_terms proc~jacobian_rot->proc~eos_terms proc~brent brent proc~t_rop->proc~brent proc~fill_f_terms fill_f_terms proc~t_rop->proc~fill_f_terms proc~fill_g_dreg_terms fill_g_Dreg_terms proc~t_rop->proc~fill_g_dreg_terms f f proc~brent->f proc~set_error set_error proc~brent->proc~set_error proc~zero zero proc~brent->proc~zero proc~eos_terms->proc~fill_f_terms proc~eos_e_terms eos_e_terms proc~eos_terms->proc~eos_e_terms proc~fill_e_tpart fill_e_Tpart proc~eos_e_terms->proc~fill_e_tpart proc~fill_ff_terms fill_ff_terms proc~eos_e_terms->proc~fill_ff_terms proc~zero->f proc~fill_e_tpart->proc~fill_g_dreg_terms

Called by

proc~~derivative_function_of_pstar_pt~~CalledByGraph proc~derivative_function_of_pstar_pt derivative_function_of_pstar_PT proc~solve_boundary_pt solve_boundary_PT proc~solve_boundary_pt->proc~derivative_function_of_pstar_pt proc~boundary_resolution_from_and_to_ports boundary_resolution_from_and_to_ports proc~boundary_resolution_from_and_to_ports->proc~solve_boundary_pt proc~main_loop main_loop proc~main_loop->proc~boundary_resolution_from_and_to_ports program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

function derivative_function_of_pstar_PT(sgnBC,Pstar,Rotank,Ctank,Ptank,p_LR,u_LR,z_LR)
  
  real(dp), intent(in) :: sgnBC,Pstar,Rotank,Ctank,Ptank,p_LR,u_LR,z_LR
  real(dp) :: derivative_function_of_pstar_PT
  real(dp) :: Tstar_LR,rostar_LR,dTdp_Ro,dTdRo_p,dRodP,dUdP,Ustar,dRstardRo,dRstardT,dRdP,Rstar
  real(dp) :: dPdT_local, cv_local

  rostar_LR=Rotank+(Pstar-Ptank)/(Ctank**2)
  Tstar_LR=T_roP(rostar_LR,Pstar)
  call jacobian_roT(rostar_LR, Tstar_LR, cv_local, dPdT_local, dTdp_Ro, dTdRo_p, dRstardRo, dRstardT, Rstar)
  Ustar=u_LR+sgnBC*(Pstar-p_LR)/z_LR
  dRodP=1.0_dp/(Ctank**2)
  dUdP=sgnBC/z_LR
  dRdP=(dRstardRo+dRstardT*dTdRo_p)/(Ctank**2)+dRstardT*dTdp_Ro

  derivative_function_of_pstar_PT=(dRdP*rostar_LR-Rstar*dRodP)/(rostar_LR**2)+Ustar*dUdP

end function derivative_function_of_pstar_PT