mqc_xyz_reader Module

Provides functions to parse standard XYZ format files containing atomic coordinates and element symbols for molecular structures. Read XYZ file from disk Parse XYZ data from string Split text into lines (for testing)


Uses

  • module~~mqc_xyz_reader~~UsesGraph module~mqc_xyz_reader mqc_xyz_reader module~mqc_error mqc_error module~mqc_xyz_reader->module~mqc_error module~mqc_geometry mqc_geometry module~mqc_xyz_reader->module~mqc_geometry pic_types pic_types module~mqc_xyz_reader->pic_types module~mqc_geometry->pic_types

Used by

  • module~~mqc_xyz_reader~~UsedByGraph module~mqc_xyz_reader mqc_xyz_reader module~mqc_physical_fragment mqc_physical_fragment module~mqc_physical_fragment->module~mqc_xyz_reader module~mqc_calculation_interface mqc_calculation_interface module~mqc_calculation_interface->module~mqc_physical_fragment module~mqc_config_parser mqc_config_parser module~mqc_calculation_interface->module~mqc_config_parser module~mqc_config_adapter mqc_config_adapter module~mqc_config_adapter->module~mqc_physical_fragment module~mqc_config_adapter->module~mqc_config_parser module~mqc_config_parser->module~mqc_physical_fragment module~mqc_driver mqc_driver module~mqc_driver->module~mqc_physical_fragment module~mqc_driver->module~mqc_config_adapter module~mqc_driver->module~mqc_config_parser module~mqc_frag_utils mqc_frag_utils module~mqc_driver->module~mqc_frag_utils module~mqc_many_body_expansion mqc_many_body_expansion module~mqc_driver->module~mqc_many_body_expansion module~mqc_mbe mqc_mbe module~mqc_driver->module~mqc_mbe module~mqc_mbe_fragment_distribution_scheme mqc_mbe_fragment_distribution_scheme module~mqc_driver->module~mqc_mbe_fragment_distribution_scheme module~mqc_json_writer mqc_json_writer module~mqc_driver->module~mqc_json_writer module~mqc_finite_differences mqc_finite_differences module~mqc_finite_differences->module~mqc_physical_fragment module~mqc_frag_utils->module~mqc_physical_fragment module~mqc_gmbe_utils mqc_gmbe_utils module~mqc_frag_utils->module~mqc_gmbe_utils module~mqc_gmbe_fragment_distribution_scheme mqc_gmbe_fragment_distribution_scheme module~mqc_gmbe_fragment_distribution_scheme->module~mqc_physical_fragment module~mqc_gmbe_fragment_distribution_scheme->module~mqc_mbe_fragment_distribution_scheme module~mqc_gmbe_utils->module~mqc_physical_fragment module~mqc_many_body_expansion->module~mqc_physical_fragment module~mqc_many_body_expansion->module~mqc_config_adapter module~mqc_mbe->module~mqc_physical_fragment module~mqc_mbe->module~mqc_frag_utils module~mqc_mbe->module~mqc_gmbe_utils module~mqc_mbe_io mqc_mbe_io module~mqc_mbe->module~mqc_mbe_io module~mqc_mbe_fragment_distribution_scheme->module~mqc_physical_fragment module~mqc_mbe_fragment_distribution_scheme->module~mqc_config_adapter module~mqc_mbe_fragment_distribution_scheme->module~mqc_mbe module~mqc_mbe_fragment_distribution_scheme->module~mqc_mbe_io module~mqc_method_base mqc_method_base module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_base module~mqc_method_factory mqc_method_factory module~mqc_mbe_fragment_distribution_scheme->module~mqc_method_factory module~mqc_mbe_io->module~mqc_physical_fragment module~mqc_method_base->module~mqc_physical_fragment module~mqc_method_dft mqc_method_dft module~mqc_method_dft->module~mqc_physical_fragment module~mqc_method_dft->module~mqc_method_base module~mqc_method_hf mqc_method_hf module~mqc_method_hf->module~mqc_physical_fragment module~mqc_method_hf->module~mqc_method_base module~mqc_method_mcscf mqc_method_mcscf module~mqc_method_mcscf->module~mqc_physical_fragment module~mqc_method_mcscf->module~mqc_method_base module~mqc_method_xtb mqc_method_xtb module~mqc_method_xtb->module~mqc_physical_fragment module~mqc_method_xtb->module~mqc_method_base proc~apply_distance_screening apply_distance_screening proc~apply_distance_screening->module~mqc_physical_fragment proc~apply_distance_screening->module~mqc_config_adapter proc~calculate_fragment_distances calculate_fragment_distances proc~calculate_fragment_distances->module~mqc_physical_fragment proc~compute_gmbe compute_gmbe proc~compute_gmbe->module~mqc_physical_fragment proc~compute_gmbe->module~mqc_config_parser proc~compute_gmbe->module~mqc_gmbe_utils proc~compute_polymer_atoms compute_polymer_atoms proc~compute_polymer_atoms->module~mqc_physical_fragment proc~fragment_should_be_screened fragment_should_be_screened proc~fragment_should_be_screened->module~mqc_physical_fragment proc~fragment_should_be_screened->module~mqc_config_adapter proc~generate_intersections generate_intersections proc~generate_intersections->module~mqc_physical_fragment proc~generate_k_way_intersections_for_level generate_k_way_intersections_for_level proc~generate_k_way_intersections_for_level->module~mqc_physical_fragment proc~generate_polymer_intersections generate_polymer_intersections proc~generate_polymer_intersections->module~mqc_physical_fragment proc~gmbe_enumerate_pie_terms gmbe_enumerate_pie_terms proc~gmbe_enumerate_pie_terms->module~mqc_physical_fragment proc~gmbe_pie_coordinator gmbe_pie_coordinator proc~gmbe_pie_coordinator->module~mqc_physical_fragment proc~map_fragment_to_system_dipole_derivatives map_fragment_to_system_dipole_derivatives proc~map_fragment_to_system_dipole_derivatives->module~mqc_physical_fragment proc~map_fragment_to_system_gradient map_fragment_to_system_gradient proc~map_fragment_to_system_gradient->module~mqc_physical_fragment proc~map_fragment_to_system_hessian map_fragment_to_system_hessian proc~map_fragment_to_system_hessian->module~mqc_physical_fragment proc~parse_connectivity_generic parse_connectivity_generic proc~parse_connectivity_generic->module~mqc_physical_fragment proc~process_intersection_derivatives process_intersection_derivatives proc~process_intersection_derivatives->module~mqc_physical_fragment proc~process_intersection_derivatives->module~mqc_config_parser proc~process_intersection_derivatives->module~mqc_gmbe_utils proc~serial_gmbe_pie_processor serial_gmbe_pie_processor proc~serial_gmbe_pie_processor->module~mqc_physical_fragment program~main main program~main->module~mqc_physical_fragment program~main->module~mqc_config_adapter program~main->module~mqc_config_parser program~main->module~mqc_driver module~mpi_fragment_work_smod mpi_fragment_work_smod module~mpi_fragment_work_smod->module~mqc_mbe_fragment_distribution_scheme module~mqc_config_parser_basic_sections mqc_config_parser_basic_sections module~mqc_config_parser_basic_sections->module~mqc_config_parser module~mqc_config_parser_calc_settings mqc_config_parser_calc_settings module~mqc_config_parser_calc_settings->module~mqc_config_parser module~mqc_config_parser_fragments mqc_config_parser_fragments module~mqc_config_parser_fragments->module~mqc_config_parser module~mqc_config_parser_molecules mqc_config_parser_molecules module~mqc_config_parser_molecules->module~mqc_config_parser module~mqc_config_parser_structure mqc_config_parser_structure module~mqc_config_parser_structure->module~mqc_config_parser module~mqc_hessian_distribution_scheme mqc_hessian_distribution_scheme module~mqc_hessian_distribution_scheme->module~mqc_mbe_fragment_distribution_scheme module~mqc_json_writer->module~mqc_mbe_io module~mqc_method_factory->module~mqc_method_base module~mqc_method_factory->module~mqc_method_dft module~mqc_method_factory->module~mqc_method_hf module~mqc_method_factory->module~mqc_method_mcscf module~mqc_method_factory->module~mqc_method_xtb module~mqc_serial_fragment_processor mqc_serial_fragment_processor module~mqc_serial_fragment_processor->module~mqc_mbe_fragment_distribution_scheme module~mqc_unfragmented_workflow mqc_unfragmented_workflow module~mqc_unfragmented_workflow->module~mqc_mbe_fragment_distribution_scheme proc~check_fragment_overlap check_fragment_overlap proc~check_fragment_overlap->module~mqc_config_parser proc~compute_energy_and_forces compute_energy_and_forces proc~compute_energy_and_forces->module~mqc_config_adapter proc~compute_energy_and_forces->module~mqc_driver proc~gmbe_run_distributed gmbe_context_t%gmbe_run_distributed proc~gmbe_run_distributed->module~mqc_gmbe_fragment_distribution_scheme proc~gmbe_run_distributed->module~mqc_mbe_fragment_distribution_scheme proc~gmbe_run_serial gmbe_context_t%gmbe_run_serial proc~gmbe_run_serial->module~mqc_gmbe_fragment_distribution_scheme proc~hessian_coordinator hessian_coordinator proc~hessian_coordinator->module~mqc_finite_differences proc~hessian_coordinator->module~mqc_method_base proc~hessian_coordinator->module~mqc_method_factory proc~hessian_worker hessian_worker proc~hessian_worker->module~mqc_finite_differences proc~hessian_worker->module~mqc_method_base proc~hessian_worker->module~mqc_method_factory proc~initialize_fragmented_system initialize_fragmented_system proc~initialize_fragmented_system->module~mqc_config_parser proc~mbe_run_distributed mbe_context_t%mbe_run_distributed proc~mbe_run_distributed->module~mqc_mbe_fragment_distribution_scheme proc~mbe_run_serial mbe_context_t%mbe_run_serial proc~mbe_run_serial->module~mqc_mbe_fragment_distribution_scheme proc~molecule_to_system_geometry molecule_to_system_geometry proc~molecule_to_system_geometry->module~mqc_config_parser proc~run_multi_molecule_calculations run_multi_molecule_calculations proc~run_multi_molecule_calculations->module~mqc_config_adapter proc~run_multi_molecule_calculations->module~mqc_config_parser proc~xtb_calc_hessian xtb_method_t%xtb_calc_hessian proc~xtb_calc_hessian->module~mqc_finite_differences

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: MAX_ELEMENT_SYMBOL_LEN = 4

Maximum element symbol length


Functions

private pure function int_to_string(i) result(str)

Convert integer to string

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i

Return Value character(len=:), allocatable


Subroutines

public subroutine read_xyz_file(filename, geom, error)

Read molecular geometry from XYZ format file

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename

Path to XYZ file

type(geometry_type), intent(out) :: geom

Parsed molecular geometry

type(error_t), intent(out) :: error

Error handling

public pure subroutine read_xyz_string(xyz_string, geom, error)

Parse molecular geometry from XYZ format string

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: xyz_string
type(geometry_type), intent(out) :: geom
type(error_t), intent(out) :: error

public pure subroutine split_lines(text, lines, nlines)

Split input text into lines based on CR, LF, or CRLF line endings Trailing newlines do not create empty lines

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: text
character(len=:), intent(out), allocatable :: lines(:)
integer, intent(out) :: nlines