save_params Subroutine

private subroutine save_params(params)

Arguments

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

Contents

Source Code


Source Code

SUBROUTINE save_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) // "simple_equilibrium_pdf.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 avalanche PDF (degrees)"
		call save_to_hdf5(h5file_id,dset,pdf_params%max_pitch_angle,attr)

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

		dset = TRIM(gname) // "/Zeff"
		attr = "Effective atomic number of ions."
		call save_to_hdf5(h5file_id,dset,pdf_params%Zeff,attr)

		dset = TRIM(gname) // "/E"
		attr = "Parallel electric field in (Ec)"
		call save_to_hdf5(h5file_id,dset,pdf_params%E,attr)

		dset = TRIM(gname) // "/Bo"
		attr = "Characteristic magnetic field in T (in case of using PR)"
		call save_to_hdf5(h5file_id,dset,pdf_params%Bo,attr)

		dset = TRIM(gname) // "/lambda"
		attr = "Characteristic wavelength in m (in case of using PR)"
		call save_to_hdf5(h5file_id,dset,pdf_params%lambda,attr)

		call h5gclose_f(group_id, h5error)

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