MOPAC — PM6 parameter tables, reference algorithms, and the validation oracle
=============================================================================

  Repository: https://github.com/openmopac/mopac  (tag v23.2.5)
  License:    Apache License 2.0 — full text in this directory as LICENSE.
  Citation:   J. E. Moussa, J. J. P. Stewart, "MOPAC: An open-source
              semiempirical molecular orbital program",
              J. Open Source Softw. 11(119), 8025 (2026).
              doi:10.21105/joss.08025
              J. J. P. Stewart, "Optimization of parameters for semiempirical
              methods V", J. Mol. Model. 13, 1173 (2007).   [the PM6 model]

The copyright notice every MOPAC source file this project drew on carries, retained
here under Apache License 2.0 section 4(c):

    Molecular Orbital PACkage (MOPAC)
    Copyright 2021 Virginia Polytechnic Institute and State University

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

openmopac/mopac ships no NOTICE file of its own, so section 4(d) adds nothing to
reproduce beyond the above. Nothing here is a MOPAC source file — every Rust file
in this project is original work — so section 4(b), which asks that modified files
say they were modified, has no file to attach to; what took its place is the
per-module provenance in the doc comments and section 2 below.

MOPAC is the single largest external dependency of this project, in three
distinct roles. They are listed separately because they carry different
obligations: the first is data, the second is derived work, the third is not
distributed at all.


1. Parameter tables extracted into src/data/
--------------------------------------------

Extracted mechanically by tools/extract_pm6_params.py from:

  src/models/parameters_for_PM6_C.F90          per-element parameters, the
                                               ~500 diatomic core-core pairs
                                               (alpha_AB, x_AB), global vector
  src/models/parameters_for_PM6_Sparkles_C.F90 lanthanide sparkle parameters
  src/models/parameters_C.F90                  shell occupancies, principal
                                               quantum numbers, atomic heats of
                                               formation, masses, core charges
  src/conref_C.F90                             2018-CODATA constants, used by
                                               src/constants.rs

landing in src/data/{pm6_parameters,pm6_pair_parameters,pm6_global,
pm6_sparkles,element_data}.csv.

These numbers are published scientific constants from the PM6 and MNDO-d
literature rather than the creation of either project; the CSV layout and the
extraction tooling are original work in this crate. One value in this group is
NOT extracted: the sparkle heat-of-formation offset (`sparkle_eheat_kcal` in
src/params.rs) is derived from isolated-Ln(3+) MOPAC reference runs, and is
disclosed as oracle-derived at its definition.


2. Algorithms reimplemented in Rust from the Fortran
----------------------------------------------------

Reimplemented — not translated line by line, and not linked against — with
per-module attribution in the doc comments:

  calpar.F90, MNDO-d ddpo/poij   -> src/params.rs      derived NDDO multipoles
  inighd + Slater-Condon radials -> src/onecenter.rs   one-centre spd integrals
  repp/reppd family, rotate.F90  -> src/integrals*.rs, src/rotations.rs
  rotate.F90, ccrep.F90          -> src/repulsion.rs   PM6 core-core repulsion
  corrections/dftd3.F90          -> src/corrections/d3.rs
  corrections/H_bonds4.F90       -> src/corrections/h4.rs
  corrections/disp_DnX.F90       -> src/corrections/hx.rs

The last three reach MOPAC from further upstream; see third_party/dftd3/NOTICE
and third_party/h_bonds4/NOTICE for where they originate and under whose
permission MOPAC carries them.


3. The validation oracle (not distributed)
-------------------------------------------

Every numeric agreement claim in README.md and docs/scope.md is against MOPAC
v23.2.5 output. The tooling that produces it is in tools/oracle/, and the
frozen expected values live in the test suite. MOPAC itself is neither vendored
nor redistributed here — running the oracle requires a separate MOPAC install.


License compatibility
---------------------

Apache-2.0 is one-way compatible with GPL-3.0-or-later, so this crate may
incorporate and redistribute the material above under GPL-3.0-or-later while
retaining the upstream license text (LICENSE, in this directory) and this
notice. See ../../THIRD_PARTY_NOTICES.md for the complete picture.
