hmap_frenet_get_dx_dqi_aux Subroutine

public subroutine hmap_frenet_get_dx_dqi_aux(sf, q1, q2, xv, dx_dq1, dx_dq2, dx_dq3)

evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta),

Type Bound

t_hmap_frenet

Arguments

Type IntentOptional Attributes Name
class(t_hmap_frenet), intent(in) :: sf
real(kind=wp), intent(in) :: q1
real(kind=wp), intent(in) :: q2
class(c_hmap_auxvar), intent(in) :: xv
real(kind=wp), intent(out), DIMENSION(3) :: dx_dq1
real(kind=wp), intent(out), DIMENSION(3) :: dx_dq2
real(kind=wp), intent(out), DIMENSION(3) :: dx_dq3

Source Code

SUBROUTINE hmap_frenet_get_dx_dqi_aux( sf ,q1,q2,xv,dx_dq1,dx_dq2,dx_dq3)
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
  CLASS(t_hmap_frenet), INTENT(IN) :: sf
  REAL(wp)            , INTENT(IN) :: q1,q2
  CLASS(c_hmap_auxvar), INTENT(IN) :: xv
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
  REAL(wp),DIMENSION(3),INTENT(OUT) :: dx_dq1,dx_dq2,dx_dq3
  !=================================================================================================================================
  SELECT TYPE(xv); TYPE IS(t_hmap_frenet_auxvar)
  dx_dq1(1:3)= xv%sigma*xv%N
  dx_dq2(1:3)= xv%sigma*xv%B
  dx_dq3(1:3)=xv%lp*((1.0_wp-xv%sigma*xv%kappa*q1)*xv%T +xv%sigma*xv%tau*(xv%B*q1-xv%N*q2))
  END SELECT !type(xv)
END SUBROUTINE hmap_frenet_get_dx_dqi_aux