hmap_RZ_get_ddx_dqij Subroutine

public subroutine hmap_RZ_get_ddx_dqij(sf, q_in, ddx_dq11, ddx_dq12, ddx_dq13, ddx_dq22, ddx_dq23, ddx_dq33)

evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta),

Type Bound

t_hmap_RZ

Arguments

Type IntentOptional Attributes Name
class(t_hmap_RZ), intent(in) :: sf
real(kind=wp), intent(in) :: q_in(3)
real(kind=wp), intent(out) :: ddx_dq11(3)
real(kind=wp), intent(out) :: ddx_dq12(3)
real(kind=wp), intent(out) :: ddx_dq13(3)
real(kind=wp), intent(out) :: ddx_dq22(3)
real(kind=wp), intent(out) :: ddx_dq23(3)
real(kind=wp), intent(out) :: ddx_dq33(3)

Source Code

SUBROUTINE hmap_RZ_get_ddx_dqij( sf ,q_in,ddx_dq11,ddx_dq12,ddx_dq13,ddx_dq22,ddx_dq23,ddx_dq33)
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
  CLASS(t_hmap_RZ),INTENT(IN)  :: sf
  REAL(wp)       , INTENT(IN)  :: q_in(3)
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
  REAL(wp)       , INTENT(OUT) :: ddx_dq11(3)
  REAL(wp)       , INTENT(OUT) :: ddx_dq12(3)
  REAL(wp)       , INTENT(OUT) :: ddx_dq13(3)
  REAL(wp)       , INTENT(OUT) :: ddx_dq22(3)
  REAL(wp)       , INTENT(OUT) :: ddx_dq23(3)
  REAL(wp)       , INTENT(OUT) :: ddx_dq33(3)
    ! LOCAL VARIABLES
  REAL(wp) :: coszeta,sinzeta
  !===================================================================================================================================
  sinzeta=SIN(q_in(3))
  coszeta=COS(q_in(3))
  ddx_dq11(1:3) = 0.0_wp
  ddx_dq12(1:3) = 0.0_wp
  ddx_dq13(1:3) = (/-sinzeta,-coszeta, 0.0_wp /)
  ddx_dq22(1:3) = 0.0_wp
  ddx_dq23(1:3) = 0.0_wp
  ddx_dq33(1:3) = (/ -q_in(1)*coszeta, q_in(1)*sinzeta, 0.0_wp /)
END SUBROUTINE hmap_RZ_get_ddx_dqij