self_find_boozer_angles_irho Subroutine

private subroutine self_find_boozer_angles_irho(sf, irho, tz_dim, tz_boozer, thetzeta_out)

interface to find_boozer_angles from the class t_sfl_boozer

Type Bound

t_sfl_boozer

Arguments

Type IntentOptional Attributes Name
class(t_sfl_boozer), intent(in) :: sf
integer, intent(in) :: irho
integer, intent(in) :: tz_dim
real(kind=wp), intent(in) :: tz_boozer(2,tz_dim)
real(kind=wp), intent(out) :: thetzeta_out(2,tz_dim)

Calls

proc~~self_find_boozer_angles_irho~~CallsGraph proc~self_find_boozer_angles_irho t_sfl_boozer%self_find_boozer_angles_irho proc~find_boozer_angles find_boozer_angles proc~self_find_boozer_angles_irho->proc~find_boozer_angles interface~progressbar ProgressBar proc~find_boozer_angles->interface~progressbar proc~fbase_evaldof_xn t_fBase%fBase_evalDOF_xn proc~find_boozer_angles->proc~fbase_evaldof_xn proc~get_booz_newton get_booz_newton proc~find_boozer_angles->proc~get_booz_newton interface~progressbar->interface~progressbar dgemv dgemv proc~fbase_evaldof_xn->dgemv proc~fbase_eval_xn t_fBase%fBase_eval_xn proc~fbase_evaldof_xn->proc~fbase_eval_xn interface~newtonroot2d NewtonRoot2D proc~get_booz_newton->interface~newtonroot2d interface~newtonroot2d->interface~newtonroot2d

Source Code

SUBROUTINE self_find_boozer_angles_irho(sf,irho,tz_dim,tz_boozer,thetzeta_out)
  ! MODULES
  IMPLICIT NONE
  ! INPUT VARIABLES -------------------------!
  CLASS(t_sfl_boozer), INTENT(IN) :: sf
  INTEGER             ,INTENT(IN) :: irho                !< index of the flux surface to find boozer angles on, within 1:nrho
  INTEGER             ,INTENT(IN) :: tz_dim              !< size of the list of in thetstar,zetastar
  REAL(wp)            ,INTENT(IN) :: tz_boozer(2,tz_dim) !< theta,zeta positions in boozer angle (same for all rho)
  ! OUTPUT VARIABLES -------------------------!
  REAL(wp)  ,INTENT(OUT)   :: thetzeta_out(2,tz_dim)     !< theta,zeta position in original angles, for given boozer angles
  ! CODE --------------------------------------------------------------------------------------------------------------------------!
  CALL find_boozer_angles(1,sf%iota(irho:irho),sf%nu_fbase,sf%lambda(:,irho:irho),sf%nu(:,irho:irho),tz_dim,tz_boozer,thetzeta_out)
END SUBROUTINE self_find_boozer_angles_irho