MODgvec_VMEC Module

Module VMEC

Initializes variables to evaluate a VMEC dataset. In radial direction, a cubic spline is used to interpolate the data. Calls readin of VMEC "wout" datafile (netcdf format).


Uses

  • module~~modgvec_vmec~~UsesGraph module~modgvec_vmec MODgvec_VMEC module~modgvec_cubic_spline MODgvec_cubic_spline module~modgvec_vmec->module~modgvec_cubic_spline module~modgvec_globals MODgvec_Globals module~modgvec_vmec->module~modgvec_globals module~modgvec_cubic_spline->module~modgvec_globals module~sll_m_bsplines sll_m_bsplines module~modgvec_cubic_spline->module~sll_m_bsplines iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env module~sll_m_assert sll_m_assert module~sll_m_bsplines->module~sll_m_assert module~sll_m_bsplines_base sll_m_bsplines_base module~sll_m_bsplines->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform sll_m_bsplines_non_uniform module~sll_m_bsplines->module~sll_m_bsplines_non_uniform module~sll_m_bsplines_uniform sll_m_bsplines_uniform module~sll_m_bsplines->module~sll_m_bsplines_uniform module~sll_m_errors sll_m_errors module~sll_m_bsplines->module~sll_m_errors module~sll_m_working_precision sll_m_working_precision module~sll_m_bsplines->module~sll_m_working_precision module~sll_m_bsplines_base->module~sll_m_assert module~sll_m_bsplines_base->module~sll_m_working_precision module~sll_m_bsplines_non_uniform->module~sll_m_assert module~sll_m_bsplines_non_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform->module~sll_m_working_precision module~sll_m_bsplines_uniform->module~sll_m_assert module~sll_m_bsplines_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_uniform->module~sll_m_errors module~sll_m_bsplines_uniform->module~sll_m_working_precision module~sll_m_errors->iso_fortran_env

Used by

  • module~~modgvec_vmec~~UsedByGraph module~modgvec_vmec MODgvec_VMEC proc~finalizemhd3d t_functional_mhd3d%FinalizeMHD3D proc~finalizemhd3d->module~modgvec_vmec proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->module~modgvec_vmec proc~initsolution InitSolution proc~initsolution->module~modgvec_vmec proc~vmec1d_visu VMEC1D_visu proc~vmec1d_visu->module~modgvec_vmec

Interfaces

private interface InitVMEC

  • private interface InitVMEC()

    Arguments

    None

private interface VMEC_EvalSplMode

private interface FinalizeVMEC


Functions

public function VMEC_EvalSplMode(mn_in, rderiv, rho_in, xx_Spl)

evaluate spline for specific mode at position s

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mn_in(:)
integer, intent(in) :: rderiv
real(kind=wp), intent(in) :: rho_in(:)

position to evaluate rho=[0,1], rho=sqrt(phi_norm)

type(t_cubspl), intent(in) :: xx_Spl(:)

Return Value real(kind=wp), (SIZE(rho_in))


Subroutines

public subroutine InitVMEC()

Initialize VMEC module

Read more…

Arguments

None

private subroutine FitSpline(modes, nFlux, mabs, Xmn, Xmn_Spl)

Fit disrete data along flux surfaces as spline for each fourier mode

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: modes

number of modes

integer, intent(in) :: nFlux

number of flux surfaces

integer, intent(in) :: mabs(modes)

filtered m-mode value

real(kind=wp), intent(in) :: Xmn(modes,nFlux)

fourier coefficients at all flux surfaces

type(t_cubspl), intent(out) :: Xmn_Spl(modes)

spline fitted fourier coefficients

private subroutine FitSplineHalf(modes, nFlux, mabs, Xmn_half, Xmn_Spl)

Fit disrete data along flux surfaces as spline for each fourier mode input is given on the half mesh 2:nFluxVMEC

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: modes

number of modes

integer, intent(in) :: nFlux

number of flux surfaces

integer, intent(in) :: mabs(modes)

filtered m-mode value

real(kind=wp), intent(in) :: Xmn_half(modes,nFlux)

fourier coefficients at all flux surfaces

type(t_cubspl), intent(out) :: Xmn_Spl(1:modes)

spline fitted fourier coefficients

public subroutine FinalizeVMEC()

Finalize VMEC module

Arguments

None