hmap_knot_get_dx_dqi Subroutine

public subroutine hmap_knot_get_dx_dqi(sf, q_in, 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_knot

Arguments

Type IntentOptional Attributes Name
class(t_hmap_knot), intent(in) :: sf
real(kind=wp), intent(in) :: q_in(3)
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

Calls

proc~~hmap_knot_get_dx_dqi~~CallsGraph proc~hmap_knot_get_dx_dqi t_hmap_knot%hmap_knot_get_dx_dqi proc~hmap_knot_eval_rl t_hmap_knot%hmap_knot_eval_Rl proc~hmap_knot_get_dx_dqi->proc~hmap_knot_eval_rl

Called by

proc~~hmap_knot_get_dx_dqi~~CalledByGraph proc~hmap_knot_get_dx_dqi t_hmap_knot%hmap_knot_get_dx_dqi proc~hmap_knot_test hmap_knot_test proc~hmap_knot_test->proc~hmap_knot_get_dx_dqi proc~hmap_knot_init_params hmap_knot_init_params proc~hmap_knot_init_params->proc~hmap_knot_test interface~t_hmap_knot t_hmap_knot interface~t_hmap_knot->proc~hmap_knot_init_params proc~hmap_knot_init hmap_knot_init interface~t_hmap_knot->proc~hmap_knot_init proc~hmap_knot_init->proc~hmap_knot_init_params

Source Code

SUBROUTINE hmap_knot_get_dx_dqi( sf ,q_in,dx_dq1,dx_dq2,dx_dq3)
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
  CLASS(t_hmap_knot), INTENT(IN) :: sf
  REAL(wp)          , INTENT(IN) :: q_in(3)
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
  REAL(wp),DIMENSION(3),INTENT(OUT):: dx_dq1,dx_dq2,dx_dq3
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
  REAL(wp) :: coskzeta,sinkzeta
  !===================================================================================================================================
  ASSOCIATE(zeta=>q_in(3))
  coskzeta=COS(sf%k*zeta)
  sinkzeta=SIN(sf%k*zeta)
  dx_dq1(1:3)=   (/ coskzeta, -sinkzeta, 0.0_wp /)
  dx_dq2(1:3)=   (/ 0.0_wp,0.0_wp,1.0_wp /)
  dx_dq3(1:3)=   (/ -sf%k*sf%Rl(q_in)*sinkzeta-sf%l*sf%delta*SIN(sf%l*zeta)*coskzeta, &
                    -sf%k*sf%Rl(q_in)*coskzeta+sf%l*sf%delta*SIN(sf%l*zeta)*sinkzeta, &
                                               sf%l*sf%delta*COS(sf%l*zeta)      /)
 END ASSOCIATE
END SUBROUTINE hmap_knot_get_dx_dqi