main Program

Uses

  • program~~main~~UsesGraph program~main main git_version git_version program~main->git_version ieee_arithmetic ieee_arithmetic program~main->ieee_arithmetic module~boozer_field boozer_field program~main->module~boozer_field module~coefficients coefficients program~main->module~coefficients module~constants constants program~main->module~constants module~error_handling error_handling program~main->module~error_handling module~fieldline_mod fieldline_mod program~main->module~fieldline_mod module~make_fieldline make_fieldline program~main->module~make_fieldline module~netcdf_mod netcdf_mod program~main->module~netcdf_mod module~read_file read_file program~main->module~read_file module~shaing_callen_mod shaing_callen_mod program~main->module~shaing_callen_mod module~boozer_field->module~constants module~field_base field_base module~boozer_field->module~field_base module~coefficients->ieee_arithmetic module~coefficients->module~constants module~coefficients->module~fieldline_mod module~fieldline_mod->module~constants module~make_fieldline->module~constants module~make_fieldline->module~fieldline_mod module~make_fieldline->module~field_base module~netcdf_mod->module~constants module~read_file->ieee_arithmetic module~read_file->module~constants module~shaing_callen_mod->module~constants module~shaing_callen_mod->module~fieldline_mod module~shaing_callen_mod->module~field_base module~shaing_callen_integration shaing_callen_integration module~shaing_callen_mod->module~shaing_callen_integration module~field_base->module~constants module~shaing_callen_integration->module~constants module~shaing_callen_integration->module~fieldline_mod module~integrate integrate module~shaing_callen_integration->module~integrate module~utils utils module~shaing_callen_integration->module~utils module~integrate->ieee_arithmetic module~integrate->module~constants module~utils->module~constants

Calls

program~~main~~CallsGraph program~main main none~add_attr netcdf_t%add_attr program~main->none~add_attr none~add_global_attribute netcdf_t%add_global_attribute program~main->none~add_global_attribute none~add_int_1d netcdf_t%add_int_1d program~main->none~add_int_1d none~add_real netcdf_t%add_real program~main->none~add_real none~add_real_1d netcdf_t%add_real_1d program~main->none~add_real_1d none~create netcdf_t%create program~main->none~create none~def_dim netcdf_t%def_dim program~main->none~def_dim none~fix_to_surface boozer_field_t%fix_to_surface program~main->none~fix_to_surface none~get_iota boozer_field_t%get_iota program~main->none~get_iota none~init_from_boozmn boozer_field_t%init_from_boozmn program~main->none~init_from_boozmn none~init_from_chartmap boozer_field_t%init_from_chartmap program~main->none~init_from_chartmap none~init_from_vmec boozer_field_t%init_from_vmec program~main->none~init_from_vmec none~write_int_1d netcdf_t%write_int_1d program~main->none~write_int_1d none~write_real netcdf_t%write_real program~main->none~write_real none~write_real_1d netcdf_t%write_real_1d program~main->none~write_real_1d proc~calc_finite_boundary_layer_correction calc_finite_boundary_layer_correction program~main->proc~calc_finite_boundary_layer_correction proc~calc_gradient_scaling_factor_r_eff calc_gradient_scaling_factor_r_eff program~main->proc~calc_gradient_scaling_factor_r_eff proc~calc_lambda_lc calc_lambda_LC program~main->proc~calc_lambda_lc proc~calc_nu_star_crit calc_nu_star_crit program~main->proc~calc_nu_star_crit proc~calc_offset_coefficients calc_offset_coefficients program~main->proc~calc_offset_coefficients proc~did_fail_any_sanity_check did_fail_any_sanity_check program~main->proc~did_fail_any_sanity_check proc~get_non_omnigenous_remainder get_non_omnigenous_remainder program~main->proc~get_non_omnigenous_remainder proc~make_flock_of_fieldlines make_flock_of_fieldlines program~main->proc~make_flock_of_fieldlines proc~read_namelist read_namelist program~main->proc~read_namelist proc~reset_failed_check_counter reset_failed_check_counter program~main->proc~reset_failed_check_counter proc~set_unsafe_mode set_unsafe_mode program~main->proc~set_unsafe_mode proc~write_dat_output write_dat_output program~main->proc~write_dat_output nf90_put_att nf90_put_att none~add_attr->nf90_put_att nf90_strerror nf90_strerror none~add_attr->nf90_strerror none~add_global_attribute->nf90_put_att none~add_global_attribute->nf90_strerror nf90_def_var nf90_def_var none~add_int_1d->nf90_def_var none~add_int_1d->nf90_strerror none~add_real->nf90_def_var none~add_real->nf90_strerror none~add_real_1d->nf90_def_var none~add_real_1d->nf90_strerror nf90_create nf90_create none~create->nf90_create none~create->nf90_strerror nf90_def_dim nf90_def_dim none~def_dim->nf90_def_dim none~def_dim->nf90_strerror splint_boozer_coord splint_boozer_coord none~get_iota->splint_boozer_coord load_boozer_from_boozmn load_boozer_from_boozmn none~init_from_boozmn->load_boozer_from_boozmn load_boozer_from_chartmap load_boozer_from_chartmap none~init_from_chartmap->load_boozer_from_chartmap get_boozer_coordinates get_boozer_coordinates none~init_from_vmec->get_boozer_coordinates nf90_put_var nf90_put_var none~write_int_1d->nf90_put_var none~write_int_1d->nf90_strerror none~end_define netcdf_t%end_define none~write_int_1d->none~end_define none~write_real->nf90_put_var none~write_real->nf90_strerror none~write_real->none~end_define none~write_real_1d->nf90_put_var none~write_real_1d->nf90_strerror none~write_real_1d->none~end_define get_covariant_components get_covariant_components proc~calc_finite_boundary_layer_correction->get_covariant_components proc~calc_surface_averages calc_surface_averages proc~calc_finite_boundary_layer_correction->proc~calc_surface_averages proc~calc_gradient_scaling_factor_r_eff->proc~calc_surface_averages proc~calc_lambda_lc->get_covariant_components proc~calc_trapped_fraction calc_trapped_fraction proc~calc_lambda_lc->proc~calc_trapped_fraction proc~calc_deviation calc_deviation proc~calc_offset_coefficients->proc~calc_deviation proc~get_non_omnigenous_remainder->get_covariant_components proc~calc_avg_b_squared_over_avg_lambda calc_avg_B_squared_over_avg_lambda proc~get_non_omnigenous_remainder->proc~calc_avg_b_squared_over_avg_lambda proc~calc_avg_normalized_b_squared_dphimax_dxi0 calc_avg_normalized_B_squared_dphimax_dxi0 proc~get_non_omnigenous_remainder->proc~calc_avg_normalized_b_squared_dphimax_dxi0 proc~calc_avg_normalized_lambda_dphimax_dxi0 calc_avg_normalized_lambda_dphimax_dxi0 proc~get_non_omnigenous_remainder->proc~calc_avg_normalized_lambda_dphimax_dxi0 proc~get_eta_integration_grid get_eta_integration_grid proc~get_non_omnigenous_remainder->proc~get_eta_integration_grid proc~integrate_over_eta_grid integrate_over_eta_grid proc~get_non_omnigenous_remainder->proc~integrate_over_eta_grid proc~get_labels get_labels proc~make_flock_of_fieldlines->proc~get_labels proc~make_flock_from_labels make_flock_from_labels proc~make_flock_of_fieldlines->proc~make_flock_from_labels interface~not_same not_same proc~read_namelist->interface~not_same proc~is_not_integer is_not_integer proc~read_namelist->proc~is_not_integer proc~linspace linspace proc~read_namelist->proc~linspace none~end_define->nf90_strerror nf90_enddef nf90_enddef none~end_define->nf90_enddef proc~integrate_1d_substituted integrate_1d_substituted proc~calc_avg_b_squared_over_avg_lambda->proc~integrate_1d_substituted proc~calc_periodic_dydx calc_periodic_dydx proc~calc_avg_normalized_b_squared_dphimax_dxi0->proc~calc_periodic_dydx proc~calc_lambda_squared calc_lambda_squared proc~calc_avg_normalized_lambda_dphimax_dxi0->proc~calc_lambda_squared proc~calc_avg_normalized_lambda_dphimax_dxi0->proc~calc_periodic_dydx proc~calc_avg_normalized_lambda_dphimax_dxi0->proc~integrate_1d_substituted proc~calc_deviation->proc~calc_surface_averages proc~failed_sanity_check failed_sanity_check proc~calc_deviation->proc~failed_sanity_check proc~fourier_transform_over_label fourier_transform_over_label proc~calc_deviation->proc~fourier_transform_over_label proc~s_a S_A proc~calc_deviation->proc~s_a proc~s_b S_B proc~calc_deviation->proc~s_b proc~calc_trapped_fraction->proc~calc_avg_b_squared_over_avg_lambda proc~calc_trapped_fraction->proc~get_eta_integration_grid proc~calc_trapped_fraction->proc~integrate_over_eta_grid proc~get_eta_integration_grid->proc~linspace proc~get_labels->proc~linspace proc~calc_iota_p calc_iota_p proc~get_labels->proc~calc_iota_p proc~rational_approx rational_approx proc~get_labels->proc~rational_approx proc~make_flock_from_labels->get_covariant_components proc~make_flock_from_labels->interface~not_same proc~make_flock_from_labels->proc~is_not_integer proc~make_flock_from_labels->proc~linspace compute_B_mod compute_B_mod proc~make_flock_from_labels->compute_B_mod none~get_theta fieldline_t%get_theta proc~make_flock_from_labels->none~get_theta proc~calc_fieldline_integrals calc_fieldline_integrals proc~make_flock_from_labels->proc~calc_fieldline_integrals proc~make_flock_from_labels->proc~calc_iota_p proc~make_flock_from_labels->proc~failed_sanity_check proc~find_maxima_along_fieldline find_maxima_along_fieldline proc~make_flock_from_labels->proc~find_maxima_along_fieldline proc~get_global_b_max get_global_B_max proc~make_flock_from_labels->proc~get_global_b_max proc~pick_maximum_on_each_side pick_maximum_on_each_side proc~make_flock_from_labels->proc~pick_maximum_on_each_side proc~suspect_omnigenous_origin_not_minimum suspect_omnigenous_origin_not_minimum proc~make_flock_from_labels->proc~suspect_omnigenous_origin_not_minimum rel_accuracy_B rel_accuracy_B proc~make_flock_from_labels->rel_accuracy_B proc~calc_fieldline_integrals->proc~integrate_1d_substituted proc~check_has_correct_endpoints check_has_correct_endpoints proc~calc_periodic_dydx->proc~check_has_correct_endpoints proc~check_is_equidistant check_is_equidistant proc~calc_periodic_dydx->proc~check_is_equidistant proc~b_mod_along_fieldline B_mod_along_fieldline proc~find_maxima_along_fieldline->proc~b_mod_along_fieldline proc~db_dphi_along_fieldline dB_dphi_along_fieldline proc~find_maxima_along_fieldline->proc~db_dphi_along_fieldline proc~find_local_maxima find_local_maxima proc~find_maxima_along_fieldline->proc~find_local_maxima proc~set_field_and_fieldline set_field_and_fieldline proc~find_maxima_along_fieldline->proc~set_field_and_fieldline proc~unset_field_and_fieldline unset_field_and_fieldline proc~find_maxima_along_fieldline->proc~unset_field_and_fieldline proc~allocate_modes allocate_modes proc~fourier_transform_over_label->proc~allocate_modes proc~real_ft real_ft proc~fourier_transform_over_label->proc~real_ft proc~integrate_1d integrate_1d proc~integrate_1d_substituted->proc~integrate_1d proc~suspect_omnigenous_origin_not_minimum->compute_B_mod proc~suspect_omnigenous_origin_not_minimum->proc~b_mod_along_fieldline proc~suspect_omnigenous_origin_not_minimum->proc~db_dphi_along_fieldline proc~find_global_extrema find_global_extrema proc~suspect_omnigenous_origin_not_minimum->proc~find_global_extrema proc~find_local_minima find_local_minima proc~suspect_omnigenous_origin_not_minimum->proc~find_local_minima proc~suspect_omnigenous_origin_not_minimum->proc~set_field_and_fieldline proc~suspect_omnigenous_origin_not_minimum->proc~unset_field_and_fieldline proc~b_mod_along_fieldline->compute_B_mod proc~b_mod_along_fieldline->none~get_theta proc~db_dphi_along_fieldline->none~get_theta compute_B_and_dB_dx compute_B_and_dB_dx proc~db_dphi_along_fieldline->compute_B_and_dB_dx proc~find_global_extrema->proc~linspace proc~find_local_maxima->interface~not_same proc~find_local_maxima->proc~linspace proc~find_local_minima->proc~find_local_maxima qag qag proc~integrate_1d->qag proc~real_ft->proc~check_has_correct_endpoints proc~real_ft->proc~check_is_equidistant proc~set_field_and_fieldline->proc~unset_field_and_fieldline

Variables

Type Attributes Name Initial
character(len=*), parameter :: input_file = "rabe.in"
character(len=*), parameter :: output_file = "rabe.nc"
character(len=*), parameter :: dat_file = "rabe.dat"
type(boozer_field_t) :: field
integer :: n_stor
integer :: this
real(kind=dp) :: R
real(kind=dp) :: dr_dAtheta
real(kind=dp) :: iota
real(kind=dp) :: nfp
type(flock_of_fieldlines_t) :: flock
logical :: too_strong_violation
real(kind=dp), dimension(:), allocatable :: Lambda_A
real(kind=dp), dimension(:), allocatable :: Lambda_B
real(kind=dp), dimension(:), allocatable :: nu_star_crit
real(kind=dp), dimension(:), allocatable :: Lambda_S
integer, dimension(:), allocatable :: split_maxima
real(kind=dp) :: helical_factor
real(kind=dp) :: trapped_fraction
real(kind=dp), dimension(:), allocatable :: lambda_LC
real(kind=dp), dimension(:), allocatable :: remainder
real(kind=dp) :: nan_value
type(netcdf_t) :: nc_output
character(len=*), parameter :: dim_name = "surface"
character(len=1024) :: description

Subroutines

subroutine write_dat_output(filename, git_hash, R, n, s_tor, Lambda_A, Lambda_B, nu_star_crit, Lambda_S, split_maxima, lambda_LC, remainder)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
character(len=*), intent(in) :: git_hash
real(kind=dp), intent(in) :: R
integer, intent(in) :: n
real(kind=dp), intent(in) :: s_tor(n)
real(kind=dp), intent(in) :: Lambda_A(n)
real(kind=dp), intent(in) :: Lambda_B(n)
real(kind=dp), intent(in) :: nu_star_crit(n)
real(kind=dp), intent(in) :: Lambda_S(n)
integer, intent(in) :: split_maxima(n)
real(kind=dp), intent(in), optional :: lambda_LC(n)
real(kind=dp), intent(in), optional :: remainder(n)