Parses section-based input files with %section…end blocks This is the new format generated by mqc_prep.py
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | parameter | :: | MAX_LINE_LEN | = | 1024 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| integer, | intent(inout) | :: | nbonds | |||
| integer, | intent(inout) | :: | nbroken | |||
| type(bond_t), | intent(inout), | allocatable | :: | bonds(:) | ||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| integer, | intent(inout) | :: | nfrag | |||
| type(input_fragment_t), | intent(inout), | allocatable | :: | fragments(:) | ||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(geometry_type), | intent(inout) | :: | geom | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| integer, | intent(inout) | :: | charge | |||
| integer, | intent(inout) | :: | multiplicity | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(mqc_config_t), | intent(inout) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
Input fragment definition with charge, multiplicity, and atom indices This is the parsed representation from the input file, not the computational fragment
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | charge | = | 0 | ||
| integer, | public, | allocatable | :: | indices(:) |
Atom indices in this fragment |
||
| integer, | public | :: | multiplicity | = | 1 |
| procedure, public :: destroy => input_fragment_destroy |
Single molecule definition with structure, geometry, fragments, and connectivity
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(bond_t), | public, | allocatable | :: | bonds(:) | |||
| integer, | public | :: | charge | = | 0 | ||
| type(input_fragment_t), | public, | allocatable | :: | fragments(:) | |||
| type(geometry_type), | public | :: | geometry | ||||
| integer, | public | :: | multiplicity | = | 1 | ||
| character(len=:), | public, | allocatable | :: | name |
Optional molecule name |
||
| integer, | public | :: | nbonds | = | 0 | ||
| integer, | public | :: | nbroken | = | 0 | ||
| integer, | public | :: | nfrag | = | 0 |
| procedure, public :: destroy => molecule_destroy |
Complete configuration from .mqc file
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=dp), | public | :: | aimd_dt | = | DEFAULT_AIMD_DT |
Timestep (femtoseconds) |
|
| real(kind=dp), | public | :: | aimd_initial_temperature | = | DEFAULT_AIMD_TEMPERATURE |
Initial temperature for velocity init (K) |
|
| integer, | public | :: | aimd_nsteps | = | DEFAULT_AIMD_NSTEPS |
Number of MD steps (0 = no AIMD) |
|
| integer, | public | :: | aimd_output_frequency | = | DEFAULT_AIMD_OUTPUT_FREQ |
Write output every N steps |
|
| logical, | public | :: | allow_overlapping_fragments | = | .false. | ||
| character(len=:), | public, | allocatable | :: | aux_basis | |||
| character(len=:), | public, | allocatable | :: | basis | |||
| type(bond_t), | public, | allocatable | :: | bonds(:) | |||
| integer(kind=int32), | public | :: | calc_type | = | CALC_TYPE_ENERGY | ||
| integer, | public | :: | charge | = | 0 | ||
| integer, | public | :: | cpcm_nang | = | DEFAULT_CPCM_NANG |
Number of angular grid points for CPCM cavity |
|
| real(kind=dp), | public | :: | cpcm_rscale | = | DEFAULT_CPCM_RSCALE |
Radii scaling factor for CPCM cavity |
|
| character(len=:), | public, | allocatable | :: | cutoff_method | |||
| real(kind=dp), | public | :: | dielectric | = | -1.0_dp |
Direct dielectric constant (-1 = use solvent lookup) |
|
| character(len=:), | public, | allocatable | :: | distance_metric | |||
| character(len=:), | public, | allocatable | :: | embedding | |||
| integer, | public | :: | frag_level | = | DEFAULT_FRAG_LEVEL | ||
| character(len=:), | public, | allocatable | :: | frag_method |
MBE, etc. |
||
| real(kind=dp), | public, | allocatable | :: | fragment_cutoffs(:) |
Distance cutoffs indexed by n-mer level (2=dimer, 3=trimer, etc.) |
||
| type(input_fragment_t), | public, | allocatable | :: | fragments(:) | |||
| type(geometry_type), | public | :: | geometry | ||||
| real(kind=dp), | public | :: | hessian_displacement | = | DEFAULT_DISPLACEMENT |
Finite difference displacement (Bohr) |
|
| real(kind=dp), | public | :: | hessian_pressure | = | DEFAULT_PRESSURE |
Pressure for thermochemistry (atm) |
|
| real(kind=dp), | public | :: | hessian_temperature | = | DEFAULT_TEMPERATURE |
Temperature for thermochemistry (K) |
|
| integer, | public | :: | index_base | = | 0 |
0-based or 1-based indexing |
|
| character(len=:), | public, | allocatable | :: | log_level | |||
| integer, | public | :: | max_intersection_level | = | DEFAULT_MAX_INTERSECTION |
Maximum k-way intersection depth for GMBE |
|
| integer(kind=int32), | public | :: | method | = | METHOD_TYPE_GFN2 | ||
| type(molecule_t), | public, | allocatable | :: | molecules(:) |
Array of molecules (if nmol > 0) |
||
| integer, | public | :: | multiplicity | = | 1 | ||
| integer, | public | :: | nbonds | = | 0 | ||
| integer, | public | :: | nbroken | = | 0 | ||
| integer, | public | :: | nfrag | = | 0 | ||
| integer, | public | :: | nmol | = | 0 |
Number of molecules (0 = single molecule mode for backward compatibility) |
|
| integer, | public | :: | scf_maxiter | = | 300 |
Using 300 (parser-specific, different from DEFAULT_SCF_MAXITER) |
|
| real(kind=dp), | public | :: | scf_tolerance | = | DEFAULT_SCF_CONV | ||
| character(len=:), | public, | allocatable | :: | schema_name | |||
| character(len=:), | public, | allocatable | :: | schema_version | |||
| logical, | public | :: | skip_json_output | = | .false. |
Skip JSON output for large calculations |
|
| character(len=:), | public, | allocatable | :: | solvation_model |
Solvation model: “alpb” (default), “gbsa”, or “cpcm” |
||
| character(len=:), | public, | allocatable | :: | solvent |
Solvent name (e.g., “water”, “ethanol”) or empty for gas phase |
||
| character(len=:), | public, | allocatable | :: | units |
angstrom or bohr |
||
| logical, | public | :: | use_cds | = | .true. |
Include non-polar CDS terms in solvation (not for CPCM) |
|
| logical, | public | :: | use_shift | = | .true. |
Include solution state shift in solvation (not for CPCM) |
| procedure, public :: destroy => config_destroy |
Parse method string from input file (e.g., “XTB-GFN1” -> gfn1)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | method_str |
Remove comments (! or #) from a line and trim result
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | line |
Read and parse a .mqc format input file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| type(mqc_config_t), | intent(out) | :: | config | |||
| type(error_t), | intent(out) | :: | error |
Skip lines until ‘end’ marker is found
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit | |||
| type(error_t), | intent(out) | :: | error |
Clean up allocated memory in mqc_config_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mqc_config_t), | intent(inout) | :: | this |
Clean up allocated memory in input_fragment_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(input_fragment_t), | intent(inout) | :: | this |
Clean up allocated memory in molecule_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(molecule_t), | intent(inout) | :: | this |