initialize_Hollmann_params Subroutine

public subroutine initialize_Hollmann_params(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: 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

    NAMELIST /HollmannPDF/ E,Zeff,max_pitch_angle,min_pitch_angle,max_energy, &
         min_energy,filename,Bo,lambda,current_direction,A_fact,sigma_E, &
         sigma_Z,Eo


    open(unit=default_unit_open,file=TRIM(params%path_to_inputs), &
         status='OLD',form='formatted')
    read(default_unit_open,nml=HollmannPDF)
    close(default_unit_open)

    h_params%filename = TRIM(filename)

    h_params%E = E
    h_params%Eo = Eo
    h_params%sigma_E = sigma_E
    h_params%Zeff = Zeff
    h_params%sigma_Z = sigma_Z
    h_params%max_pitch_angle = max_pitch_angle
    h_params%min_pitch_angle = min_pitch_angle

    h_params%min_sampling_energy = min_energy*C_E ! In Joules
    h_params%min_sampling_g = 1.0_rp + h_params%min_sampling_energy/ &
         (C_ME*C_C**2)
    h_params%max_sampling_energy = max_energy*C_E ! In Joules.
    h_params%max_sampling_g = 1.0_rp + h_params%max_sampling_energy/ &
         (C_ME*C_C**2)

    call load_data_from_hdf5()
    ! 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

    ALLOCATE(h_params%g(h_params%N))

    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
    h_params%max_g = MAXVAL(h_params%g)
    h_params%min_g = MINVAL(h_params%g)

    h_params%current_direction = TRIM(current_direction)

    h_params%Bo = Bo
    h_params%lambda = lambda

    h_params%A_fact = A_fact
  END SUBROUTINE initialize_Hollmann_params