initialize_Hollmann_params Subroutine

public subroutine initialize_Hollmann_params(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

Calls

proc~~initialize_hollmann_params~~CallsGraph proc~initialize_hollmann_params initialize_Hollmann_params 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 h5fclose_f h5fclose_f proc~load_data_from_hdf5->h5fclose_f proc~korc_abort korc_abort proc~load_data_from_hdf5->proc~korc_abort interface~load_array_from_hdf5 load_array_from_hdf5 proc~load_data_from_hdf5->interface~load_array_from_hdf5 h5fopen_f h5fopen_f proc~load_data_from_hdf5->h5fopen_f interface~load_from_hdf5 load_from_hdf5 proc~load_data_from_hdf5->interface~load_from_hdf5 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 mpi_abort mpi_abort proc~korc_abort->mpi_abort proc~rload_1d_array_from_hdf5 rload_1d_array_from_hdf5 interface~load_array_from_hdf5->proc~rload_1d_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~rload_3d_array_from_hdf5 rload_3d_array_from_hdf5 interface~load_array_from_hdf5->proc~rload_3d_array_from_hdf5 proc~iload_from_hdf5 iload_from_hdf5 interface~load_from_hdf5->proc~iload_from_hdf5 proc~rload_from_hdf5 rload_from_hdf5 interface~load_from_hdf5->proc~rload_from_hdf5 proc~iload_from_hdf5->proc~korc_abort h5dclose_f h5dclose_f proc~iload_from_hdf5->h5dclose_f h5dread_f h5dread_f proc~iload_from_hdf5->h5dread_f proc~rload_from_hdf5->proc~korc_abort proc~rload_from_hdf5->h5dclose_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 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 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

Called by

proc~~initialize_hollmann_params~~CalledByGraph proc~initialize_hollmann_params initialize_Hollmann_params proc~get_hollmann_distribution_3d get_Hollmann_distribution_3D proc~get_hollmann_distribution_3d->proc~initialize_hollmann_params proc~get_hollmann_distribution_3d_psi get_Hollmann_distribution_3D_psi proc~get_hollmann_distribution_3d_psi->proc~initialize_hollmann_params proc~get_hollmann_distribution get_Hollmann_distribution proc~get_hollmann_distribution->proc~initialize_hollmann_params proc~get_hollmann_distribution_1dtransport get_Hollmann_distribution_1Dtransport proc~get_hollmann_distribution_1dtransport->proc~initialize_hollmann_params

Contents


Source Code

  SUBROUTINE initialize_Hollmann_params(params)
    TYPE(KORC_PARAMS), INTENT(IN) :: params
    CHARACTER(MAX_STRING_LENGTH) :: filename
    CHARACTER(MAX_STRING_LENGTH) :: current_direction
    REAL(rp) :: E,sigma_E,Eo
    REAL(rp) :: Zeff,sigma_Z
    REAL(rp) :: max_pitch_angle
    REAL(rp) :: min_pitch_angle
    REAL(rp) :: max_energy
    REAL(rp) :: min_energy
    REAL(rp) :: Bo
    REAL(rp) :: lambda
    REAL(rp) :: A_fact


    h_params%filename = TRIM(filename_Hollmann)
    h_params%rho_ind = rho_ind

    h_params%E = E_Hollmann
    h_params%Eo = Eo_Hollmann
    h_params%sigma_E = sigma_E_Hollmann
    h_params%Zeff = Zeff_Hollmann
    h_params%sigma_Z = sigma_Z_Hollmann
    h_params%max_pitch_angle = max_pitch_angle_Hollmann
    h_params%min_pitch_angle = min_pitch_angle_Hollmann

    h_params%gam_min_from_col = gam_min_from_col

    if(.not.h_params%gam_min_from_col) then
       h_params%min_sampling_energy = min_energy_Hollmann*C_E ! In Joules
       h_params%min_sampling_g = 1.0_rp + h_params%min_sampling_energy/ &
            (C_ME*C_C**2)
    else
       h_params%min_sampling_g = params%gam_min
    endif
    
    h_params%max_sampling_energy = max_energy_Hollmann*C_E ! In Joules.
    h_params%max_sampling_g = 1.0_rp + h_params%max_sampling_energy/ &
         (C_ME*C_C**2)

    !write(6,*) 'init:sampling',h_params%min_sampling_g,h_params%max_sampling_g
    
    call load_data_from_hdf5(params)
    ! loads h_params%E_axis 1D energy range, h_params%fRE_E
    ! energy distribution as a function of h_params%E_axis,
    ! and h_params%fRE_pitch pitch angle distribution as a
    ! function of h_params%E_axis

    if (ALLOCATED(h_params%rho_axis)) then
       ALLOCATE(h_params%g(h_params%NE))
    else
       ALLOCATE(h_params%g(h_params%N))
    endif

    h_params%g = 1.0_rp + h_params%E_axis/(C_ME*C_C**2)
    ! 1D range of gamma based on energy range from Hollmann input file

    if (ALLOCATED(h_params%rho_axis)) then
#ifdef PSPLINE
       call initialize_Hollmann_interpolant(params,h_params%Nrho, &
            h_params%NE,h_params%rho_axis,h_params%g,h_params%fRE_E_2D, &
            h_params%fRE_pitch_2D)
#endif
    endif
    
    h_params%max_g = MAXVAL(h_params%g)
    h_params%min_g = MINVAL(h_params%g)

    !write(6,*) 'init:range',h_params%min_g,h_params%max_g
    
    h_params%current_direction = TRIM(current_direction_Hollmann)

    h_params%Bo = Bo_Hollmann
    h_params%lambda = lambda_Hollmann

    h_params%A_fact = A_fact_Hollmann
  END SUBROUTINE initialize_Hollmann_params