save_Hollmann_params Subroutine

public subroutine save_Hollmann_params(params)

Arguments

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

Calls

proc~~save_hollmann_params~~CallsGraph proc~save_hollmann_params save_Hollmann_params interface~save_to_hdf5 save_to_hdf5 proc~save_hollmann_params->interface~save_to_hdf5 h5fclose_f h5fclose_f proc~save_hollmann_params->h5fclose_f h5gclose_f h5gclose_f proc~save_hollmann_params->h5gclose_f 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 h5tset_size_f h5tset_size_f proc~i2save_to_hdf5->h5tset_size_f h5dclose_f h5dclose_f proc~i2save_to_hdf5->h5dclose_f h5aclose_f h5aclose_f proc~i2save_to_hdf5->h5aclose_f h5tcopy_f h5tcopy_f proc~i2save_to_hdf5->h5tcopy_f h5screate_simple_f h5screate_simple_f proc~i2save_to_hdf5->h5screate_simple_f h5awrite_f h5awrite_f proc~i2save_to_hdf5->h5awrite_f h5sclose_f h5sclose_f proc~i2save_to_hdf5->h5sclose_f h5acreate_f h5acreate_f proc~i2save_to_hdf5->h5acreate_f proc~i1save_to_hdf5->h5tset_size_f proc~i1save_to_hdf5->h5dclose_f proc~i1save_to_hdf5->h5aclose_f proc~i1save_to_hdf5->h5tcopy_f proc~i1save_to_hdf5->h5screate_simple_f proc~i1save_to_hdf5->h5awrite_f proc~i1save_to_hdf5->h5sclose_f proc~i1save_to_hdf5->h5acreate_f proc~i4save_to_hdf5->h5tset_size_f proc~i4save_to_hdf5->h5dclose_f proc~i4save_to_hdf5->h5aclose_f proc~i4save_to_hdf5->h5tcopy_f proc~i4save_to_hdf5->h5screate_simple_f proc~i4save_to_hdf5->h5awrite_f proc~i4save_to_hdf5->h5sclose_f proc~i4save_to_hdf5->h5acreate_f proc~i8save_to_hdf5->h5tset_size_f proc~i8save_to_hdf5->h5dclose_f proc~i8save_to_hdf5->h5aclose_f proc~i8save_to_hdf5->h5tcopy_f proc~i8save_to_hdf5->h5screate_simple_f proc~i8save_to_hdf5->h5awrite_f proc~i8save_to_hdf5->h5sclose_f proc~i8save_to_hdf5->h5acreate_f proc~rsave_to_hdf5->h5tset_size_f proc~rsave_to_hdf5->h5dclose_f proc~rsave_to_hdf5->h5aclose_f proc~rsave_to_hdf5->h5tcopy_f proc~rsave_to_hdf5->h5screate_simple_f proc~rsave_to_hdf5->h5awrite_f h5dwrite_f h5dwrite_f proc~rsave_to_hdf5->h5dwrite_f proc~rsave_to_hdf5->h5sclose_f proc~rsave_to_hdf5->h5acreate_f

Called by

proc~~save_hollmann_params~~CalledByGraph proc~save_hollmann_params save_Hollmann_params proc~get_hollmann_distribution_3d get_Hollmann_distribution_3D proc~get_hollmann_distribution_3d->proc~save_hollmann_params proc~get_hollmann_distribution_3d_psi get_Hollmann_distribution_3D_psi proc~get_hollmann_distribution_3d_psi->proc~save_hollmann_params proc~get_hollmann_distribution get_Hollmann_distribution proc~get_hollmann_distribution->proc~save_hollmann_params proc~get_hollmann_distribution_1dtransport get_Hollmann_distribution_1Dtransport proc~get_hollmann_distribution_1dtransport->proc~save_hollmann_params

Contents

Source Code


Source Code

  SUBROUTINE save_Hollmann_params(params)
    TYPE(KORC_PARAMS), INTENT(IN) :: params
    CHARACTER(MAX_STRING_LENGTH) :: filename
    CHARACTER(MAX_STRING_LENGTH) :: gname
    CHARACTER(MAX_STRING_LENGTH), DIMENSION(:), ALLOCATABLE :: attr_array
    CHARACTER(MAX_STRING_LENGTH) :: dset
    CHARACTER(MAX_STRING_LENGTH) :: attr
    INTEGER(HID_T) :: h5file_id
    INTEGER(HID_T) :: group_id
    INTEGER :: h5error
    REAL(rp) :: units

    if (params%mpi_params%rank .EQ. 0) then
       filename = TRIM(params%path_to_outputs) // "experimental_distribution_parameters.h5"
       call h5fcreate_f(TRIM(filename), H5F_ACC_TRUNC_F, h5file_id, h5error)

       gname = "pdf_params"
       call h5gcreate_f(h5file_id, TRIM(gname), group_id, h5error)

       dset = TRIM(gname) // "/max_pitch_angle"
       attr = "Maximum pitch angle in PDF (degrees)"
       call save_to_hdf5(h5file_id,dset,h_params%max_pitch_angle,attr)

       dset = TRIM(gname) // "/min_pitch_angle"
       attr = "Minimum pitch angle in PDF (degrees)"
       call save_to_hdf5(h5file_id,dset,h_params%min_pitch_angle,attr)

       dset = TRIM(gname) // "/min_energy"
       attr = "Minimum energy in PDF (eV)"
       units = 1.0_rp/C_E
       call save_to_hdf5(h5file_id,dset,units*h_params%min_energy,attr)

       dset = TRIM(gname) // "/max_energy"
       attr = "Maximum energy in PDF (eV)"
       units = 1.0_rp/C_E
       call save_to_hdf5(h5file_id,dset,units*h_params%max_energy,attr)

       dset = TRIM(gname) // "/max_g"
       attr = "Maximum momentum in PDF (me*c)"
       call save_to_hdf5(h5file_id,dset,h_params%max_g,attr)

       dset = TRIM(gname) // "/min_g"
       attr = "Maximum momentum in PDF (me*c)"
       call save_to_hdf5(h5file_id,dset,h_params%min_g,attr)

       dset = TRIM(gname) // "/max_sampling_g"
       attr = "Maximum momentum in PDF (me*c)"
       call save_to_hdf5(h5file_id,dset,h_params%max_sampling_g,attr)

       dset = TRIM(gname) // "/min_sampling_g"
       attr = "Maximum momentum in PDF (me*c)"
       call save_to_hdf5(h5file_id,dset,h_params%min_sampling_g,attr)
       
       dset = TRIM(gname) // "/Zeff"
       attr = "Effective atomic number of ions."
       call save_to_hdf5(h5file_id,dset,h_params%Zeff,attr)

       dset = TRIM(gname) // "/sigmaZeff"
       attr = "Effective atomic number of ions."
       call save_to_hdf5(h5file_id,dset,h_params%sigma_Z,attr)
       
       dset = TRIM(gname) // "/E"
       attr = "Parallel electric field in (Ec)"
       call save_to_hdf5(h5file_id,dset,h_params%E,attr)

       dset = TRIM(gname) // "/sigmaE"
       attr = "Parallel electric field in (Ec)"
       call save_to_hdf5(h5file_id,dset,h_params%sigma_E,attr)
       
       dset = TRIM(gname) // "/lambda"
       attr = "Wavelength used when PDF is weighted with the distribution of synchrotron radiation."
       call save_to_hdf5(h5file_id,dset,h_params%lambda,attr)

       dset = TRIM(gname) // "/Bo"
       attr = "Magnetic field used when PDF is weighted with the distribution of synchrotron radiation."
       call save_to_hdf5(h5file_id,dset,h_params%Bo,attr)

       call h5gclose_f(group_id, h5error)

       call h5fclose_f(h5file_id, h5error)
    end if
  END SUBROUTINE save_Hollmann_params