get_Hollmann_distribution_3D_psi Subroutine

public subroutine get_Hollmann_distribution_3D_psi(params, spp, F)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(inout) :: params
type(SPECIES), intent(inout) :: spp
type(FIELDS), intent(in) :: F

Calls

proc~~get_hollmann_distribution_3d_psi~~CallsGraph proc~get_hollmann_distribution_3d_psi get_Hollmann_distribution_3D_psi proc~save_hollmann_params save_Hollmann_params proc~get_hollmann_distribution_3d_psi->proc~save_hollmann_params proc~initialize_hollmann_params initialize_Hollmann_params proc~get_hollmann_distribution_3d_psi->proc~initialize_hollmann_params proc~sample_hollmann_distribution_3d_psi sample_Hollmann_distribution_3D_psi proc~get_hollmann_distribution_3d_psi->proc~sample_hollmann_distribution_3d_psi proc~normalize_hollmann_params normalize_Hollmann_params proc~get_hollmann_distribution_3d_psi->proc~normalize_hollmann_params proc~korc_abort korc_abort proc~get_hollmann_distribution_3d_psi->proc~korc_abort h5fclose_f h5fclose_f proc~save_hollmann_params->h5fclose_f interface~save_to_hdf5 save_to_hdf5 proc~save_hollmann_params->interface~save_to_hdf5 h5gclose_f h5gclose_f proc~save_hollmann_params->h5gclose_f proc~load_data_from_hdf5 load_data_from_hdf5 proc~initialize_hollmann_params->proc~load_data_from_hdf5 proc~initialize_hollmann_interpolant initialize_Hollmann_interpolant proc~initialize_hollmann_params->proc~initialize_hollmann_interpolant proc~get_random_u get_random_U proc~sample_hollmann_distribution_3d_psi->proc~get_random_u proc~deg2rad~5 deg2rad proc~sample_hollmann_distribution_3d_psi->proc~deg2rad~5 mpi_barrier mpi_barrier proc~sample_hollmann_distribution_3d_psi->mpi_barrier proc~indicator_exp indicator_exp proc~sample_hollmann_distribution_3d_psi->proc~indicator_exp proc~get_fields get_fields proc~sample_hollmann_distribution_3d_psi->proc~get_fields proc~init_random_seed init_random_seed proc~sample_hollmann_distribution_3d_psi->proc~init_random_seed mpi_scatter mpi_scatter proc~sample_hollmann_distribution_3d_psi->mpi_scatter proc~get_random_n get_random_N proc~sample_hollmann_distribution_3d_psi->proc~get_random_n proc~fre_h_3d fRE_H_3D proc~sample_hollmann_distribution_3d_psi->proc~fre_h_3d mpi_abort mpi_abort proc~korc_abort->mpi_abort interface~random_get_number_u random_get_number_U proc~get_random_u->interface~random_get_number_u proc~get_analytical_fields get_analytical_fields proc~get_fields->proc~get_analytical_fields proc~interp_fields interp_fields proc~get_fields->proc~interp_fields proc~uniform_fields uniform_fields proc~get_fields->proc~uniform_fields proc~i2save_to_hdf5 i2save_to_hdf5 interface~save_to_hdf5->proc~i2save_to_hdf5 proc~i1save_to_hdf5 i1save_to_hdf5 interface~save_to_hdf5->proc~i1save_to_hdf5 proc~i4save_to_hdf5 i4save_to_hdf5 interface~save_to_hdf5->proc~i4save_to_hdf5 proc~i8save_to_hdf5 i8save_to_hdf5 interface~save_to_hdf5->proc~i8save_to_hdf5 proc~rsave_to_hdf5 rsave_to_hdf5 interface~save_to_hdf5->proc~rsave_to_hdf5 interface~random_get_number_n random_get_number_N proc~get_random_n->interface~random_get_number_n proc~fre_h_3d->proc~deg2rad~5 proc~load_data_from_hdf5->proc~korc_abort proc~load_data_from_hdf5->h5fclose_f interface~load_array_from_hdf5 load_array_from_hdf5 proc~load_data_from_hdf5->interface~load_array_from_hdf5 interface~load_from_hdf5 load_from_hdf5 proc~load_data_from_hdf5->interface~load_from_hdf5 h5fopen_f h5fopen_f proc~load_data_from_hdf5->h5fopen_f ezspline_error ezspline_error proc~initialize_hollmann_interpolant->ezspline_error ezspline_init ezspline_init proc~initialize_hollmann_interpolant->ezspline_init ezspline_setup ezspline_setup proc~initialize_hollmann_interpolant->ezspline_setup h5screate_simple_f h5screate_simple_f proc~i2save_to_hdf5->h5screate_simple_f h5dclose_f h5dclose_f proc~i2save_to_hdf5->h5dclose_f h5tcopy_f h5tcopy_f proc~i2save_to_hdf5->h5tcopy_f h5awrite_f h5awrite_f proc~i2save_to_hdf5->h5awrite_f h5tset_size_f h5tset_size_f proc~i2save_to_hdf5->h5tset_size_f h5aclose_f h5aclose_f proc~i2save_to_hdf5->h5aclose_f h5sclose_f h5sclose_f proc~i2save_to_hdf5->h5sclose_f h5acreate_f h5acreate_f proc~i2save_to_hdf5->h5acreate_f proc~cyl_check_if_confined cyl_check_if_confined proc~get_analytical_fields->proc~cyl_check_if_confined proc~analytical_fields analytical_fields proc~get_analytical_fields->proc~analytical_fields proc~cart_to_tor_check_if_confined cart_to_tor_check_if_confined proc~get_analytical_fields->proc~cart_to_tor_check_if_confined proc~cart_to_cyl cart_to_cyl proc~get_analytical_fields->proc~cart_to_cyl proc~analytical_fields_gc analytical_fields_GC proc~get_analytical_fields->proc~analytical_fields_gc proc~analytical_fields_gc_init analytical_fields_GC_init proc~get_analytical_fields->proc~analytical_fields_gc_init proc~i1save_to_hdf5->h5screate_simple_f proc~i1save_to_hdf5->h5dclose_f proc~i1save_to_hdf5->h5tcopy_f proc~i1save_to_hdf5->h5awrite_f proc~i1save_to_hdf5->h5tset_size_f proc~i1save_to_hdf5->h5aclose_f proc~i1save_to_hdf5->h5sclose_f proc~i1save_to_hdf5->h5acreate_f proc~i4save_to_hdf5->h5screate_simple_f proc~i4save_to_hdf5->h5dclose_f proc~i4save_to_hdf5->h5tcopy_f proc~i4save_to_hdf5->h5awrite_f proc~i4save_to_hdf5->h5tset_size_f proc~i4save_to_hdf5->h5aclose_f proc~i4save_to_hdf5->h5sclose_f proc~i4save_to_hdf5->h5acreate_f proc~rload_1d_array_from_hdf5 rload_1d_array_from_hdf5 interface~load_array_from_hdf5->proc~rload_1d_array_from_hdf5 proc~rload_3d_array_from_hdf5 rload_3d_array_from_hdf5 interface~load_array_from_hdf5->proc~rload_3d_array_from_hdf5 proc~rload_2d_array_from_hdf5 rload_2d_array_from_hdf5 interface~load_array_from_hdf5->proc~rload_2d_array_from_hdf5 proc~i8save_to_hdf5->h5screate_simple_f proc~i8save_to_hdf5->h5dclose_f proc~i8save_to_hdf5->h5tcopy_f proc~i8save_to_hdf5->h5awrite_f proc~i8save_to_hdf5->h5tset_size_f proc~i8save_to_hdf5->h5aclose_f proc~i8save_to_hdf5->h5sclose_f proc~i8save_to_hdf5->h5acreate_f proc~interp_fields->proc~korc_abort proc~interp_3d_bfields interp_3D_bfields proc~interp_fields->proc~interp_3d_bfields proc~get_fio_vector_potential get_fio_vector_potential proc~interp_fields->proc~get_fio_vector_potential proc~gradient_2d_bfields gradient_2D_Bfields proc~interp_fields->proc~gradient_2d_bfields proc~interp_3d_efields interp_3D_efields proc~interp_fields->proc~interp_3d_efields proc~interp_fofields_aorsa interp_FOfields_aorsa proc~interp_fields->proc~interp_fofields_aorsa proc~interp_2d_efields interp_2D_efields proc~interp_fields->proc~interp_2d_efields proc~interp_fofields_mars interp_FOfields_mars proc~interp_fields->proc~interp_fofields_mars proc~interp_2d_curlbfields interp_2D_curlbfields proc~interp_fields->proc~interp_2d_curlbfields proc~calculate_magnetic_field calculate_magnetic_field proc~interp_fields->proc~calculate_magnetic_field proc~get_fio_magnetic_fields get_fio_magnetic_fields proc~interp_fields->proc~get_fio_magnetic_fields proc~interp_2d_gradbfields interp_2D_gradBfields proc~interp_fields->proc~interp_2d_gradbfields proc~check_if_in_lcfs check_if_in_LCFS proc~interp_fields->proc~check_if_in_lcfs proc~interp_2d_bfields interp_2D_bfields proc~interp_fields->proc~interp_2d_bfields proc~get_fio_electric_fields get_fio_electric_fields proc~interp_fields->proc~get_fio_electric_fields proc~check_if_in_fields_domain check_if_in_fields_domain proc~interp_fields->proc~check_if_in_fields_domain proc~rsave_to_hdf5->h5screate_simple_f proc~rsave_to_hdf5->h5dclose_f proc~rsave_to_hdf5->h5tcopy_f h5dwrite_f h5dwrite_f proc~rsave_to_hdf5->h5dwrite_f proc~rsave_to_hdf5->h5awrite_f proc~rsave_to_hdf5->h5tset_size_f proc~rsave_to_hdf5->h5aclose_f proc~rsave_to_hdf5->h5sclose_f proc~rsave_to_hdf5->h5acreate_f proc~rload_from_hdf5 rload_from_hdf5 interface~load_from_hdf5->proc~rload_from_hdf5 proc~iload_from_hdf5 iload_from_hdf5 interface~load_from_hdf5->proc~iload_from_hdf5 proc~uniform_magnetic_field uniform_magnetic_field proc~uniform_fields->proc~uniform_magnetic_field proc~uniform_electric_field uniform_electric_field proc~uniform_fields->proc~uniform_electric_field proc~interp_3d_bfields->ezspline_error proc~rload_from_hdf5->proc~korc_abort proc~rload_from_hdf5->h5dclose_f h5dread_f h5dread_f proc~rload_from_hdf5->h5dread_f proc~rload_1d_array_from_hdf5->proc~korc_abort proc~rload_1d_array_from_hdf5->h5dclose_f proc~rload_1d_array_from_hdf5->h5dread_f interface~fio_eval_field fio_eval_field proc~get_fio_vector_potential->interface~fio_eval_field proc~gradient_2d_bfields->ezspline_error proc~rload_3d_array_from_hdf5->proc~korc_abort proc~rload_3d_array_from_hdf5->h5dclose_f proc~rload_3d_array_from_hdf5->h5dread_f proc~interp_3d_efields->ezspline_error proc~interp_fofields_aorsa->ezspline_error ezspline_interp ezspline_interp proc~interp_fofields_aorsa->ezspline_interp proc~interp_2d_efields->ezspline_error proc~interp_fofields_mars->ezspline_error proc~interp_fofields_mars->ezspline_interp proc~interp_2d_curlbfields->ezspline_error proc~calculate_magnetic_field->ezspline_error omp_get_thread_num omp_get_thread_num proc~get_fio_magnetic_fields->omp_get_thread_num proc~get_fio_magnetic_fields->interface~fio_eval_field proc~interp_2d_gradbfields->ezspline_error proc~iload_from_hdf5->proc~korc_abort proc~iload_from_hdf5->h5dclose_f proc~iload_from_hdf5->h5dread_f proc~interp_2d_bfields->ezspline_error proc~get_fio_electric_fields->interface~fio_eval_field proc~rload_2d_array_from_hdf5->proc~korc_abort proc~rload_2d_array_from_hdf5->h5dclose_f proc~rload_2d_array_from_hdf5->h5dread_f

Contents


Source Code

  SUBROUTINE get_Hollmann_distribution_3D_psi(params,spp,F)
    TYPE(FIELDS), INTENT(IN)                                   :: F
    TYPE(KORC_PARAMS), INTENT(INOUT) :: params
    TYPE(SPECIES),  INTENT(INOUT) :: spp
    INTEGER 				:: mpierr

    if (spp%ppp*params%mpi_params%nmpi.lt.10) then
       if(params%mpi_params%rank.eq.0) then
          write(6,*) 'num_samples need to be atleast 10 but is only: ', &
               spp%ppp*params%mpi_params%nmpi
       end if
       call korc_abort(12)
    end if
    
    call initialize_Hollmann_params(params)

    call save_Hollmann_params(params)

    call normalize_Hollmann_params(params)

    call sample_Hollmann_distribution_3D_psi(params,spp,F)

  END SUBROUTINE get_Hollmann_distribution_3D_psi