Portable numerical support
Both Fortran implementations compile mymats.f90 and random.f90 from this
folder. They require MPI and a BLAS/LAPACK implementation. No NAG, EISPACK,
LINPACK, or other third-party library source is bundled here.
The original solver used MyMats from Lib_90_new/Modules/mat_mod.f90 for a
small set of matrix operations and the ranf interface from
Lib_90_new/Ran/ran_imada.f. These two files are newly written implementations
of the required interfaces, under the software distribution's MIT license.
| Interface | Bundled implementation | Historical backend |
|---|---|---|
mmult(C,A,B) |
BLAS ZGEMM |
BLAS ZGEMM |
diag(A,U,W) |
LAPACK ZHEEV, complex Hermitian |
EISPACK CH |
inv(A,Ainv,det) |
LAPACK ZGETRF, ZGETRI |
LINPACK ZGEFA, ZGEDI |
udv(A,U,D,V,ncon) |
LAPACK QR, A = U diag(D) V |
NAG QR |
ranf(seed) |
Explicit 64-bit modular arithmetic | Implicit 32-bit overflow |
The uniform random recurrence remains
seed_next = (48828125 * seed) mod 2147483648
u = seed_next / 2147483648
The archived initial seeds and recurrence are retained verbatim. Do not use a zero seed for new runs. Changes in eigensolver roundoff and compiler or BLAS behavior can still change an interacting Monte Carlo trajectory. Recomputed error bars and means should be assessed statistically.
The active stabilized propagation and local-update Fortran sources are
unchanged. The udv adapter supports the retained alternative stabilization
routine; the production path uses its own pivoted LAPACK QR code.
Build and check
With GNU Fortran, an MPI development package, and BLAS/LAPACK installed:
make -C src/common check
make -C src/number_conserving build
make -C src/pairing build
compiler.mk selects mpifort when available. Compiler and linker settings
can be overridden, for example FC=mpifort LDLIBS='-lopenblas'. The GNU build
uses -fallow-argument-mismatch for the inherited mpif.h calling convention.
For Intel, first load the Intel oneAPI compiler/MPI environment, then use
FC=mpiifx; the default library switch is -qmkl.
make check verifies Hermitian eigendecomposition, nonsymmetric complex
inversion and determinant, QR reconstruction and orthogonality, and the
uniform random sequence. Each mode also retains live physical benchmark
checks and observable tests.
Numerical validation
The numerical interface checks passed with Intel mpiifx 2025.2.1 and MKL.
Both the number-conserving and finite-pairing live smoke benchmarks passed.
The complete number-conserving regression suite also passed: one analytic
free-boson case and four interacting cases with 100000 bins each.
The number-conserving eight-bin 3x3 free-boson pipeline reproduced the density,
energy density, and two plotted structure factors to within 3e-15 of their
analytic values. GNU/BLAS build settings are supplied, but a GNU compiler was
not available in this validation environment.