Most subroutines in MOLSCAT are extensively commented; see the code for details. The following descriptions list where the various subroutines are called from, and in most cases give a brief description of their function.
AIRPRP -
Subroutine called by AXSCAT.
Airy propagator routine.
AIRYMP -
Subroutine called by SPROPN.
Modulus and phase of Airy functions and derivatives.
ASROT -
Subroutine called by SET6C.
Calculates asymmetric rotor energies and wavefunctions.
ASYME -
Entry point in subroutine SET6, called by COUPLE.
ASYMF -
Entry point in subroutine SET6, called by COUPLE.
ASYMG -
Entry point in subroutine SET6, called by MCGCPL.
AXSCAT -
Subroutine called by STORAG.
Controlling routine for the log-derivative/Airy hybrid propagator.
BASE -
Subroutine called by DRIVER.
Handles generation of basis set.
BASE9, BAS9IN, SET9, CPL9, DEGEN9 -
Subroutine / entry points called from BASE etc.
User-supplied routines to specify a special coupling scheme.
BASIN -
Entry point in subroutine BASE, called by DRIVER.
Initialisation entry for BASE - reads &BASIS data.
CHCK6I -
Subroutine called by SET6I.
Check asymmetric rotor functions for orthogonality.
CHECK6 -
Subroutine called by SET6.
Check asymmetric rotor functions for orthogonality.
CHKSTR -
Subroutine called by DRIVER, etc.
Checks that there is enough storage left in the X array.
COLIM -
Subroutine called by RMTPRP.
CONVRG -
Subroutine called by DRIVER.
Performs convergence checking if &INPUT ICONV=1.
CORR -
Subroutine called by AIRPRP.
Correction terms for Airy propagator.
COUPLE -
Subroutine called by BASE.
Handles angular momentum coupling elements.
CPLOUT -
Subroutine called by BASE.
Output routine for angular momentum coupling elements.
CPL3 -
Subroutine called by COUPLE.
Coupling matrices for ITYPE=3.
CPL4 -
Subroutine called by COUPLE; entry CPL24 called from MCGCPL..
Coupling matrices for ITYPE=4, 24.
CPL21 -
Subroutine called by MCGCPL.
Coupling matrices for ITYPE=21.
CPL22 -
Subroutine called by MCGCPL.
Coupling matrices for ITYPE=22.
CPL23 -
Subroutine called by MCGCPL.
Coupling matrices for ITYPE=23.
CPL25 -
Subroutine called by MCGCPL.
Coupling matrices for ITYPE=25.
CPL26 -
Subroutine called by MCGCPL.
Coupling matrices for ITYPE=26.
DAPROP -
Subroutine called by AXSCAT (INTFLG=8), DASCAT (INTFLG=6).
Propagation routine for the diabatic modified log-derivative method.
DASCAT -
Subroutine called by STORAG.
Controls the diabatic modified log-derivative propagator.
DASIZE, DAOPEN, DACLOS, DAWR1, DAWR2, DARD1, DARD2 -
Subroutine (and entry points)
called by PRBR for in-core simulation of direct access files.
DEGENF -
Entry point in subroutine BASE, called by OUTPUT.
Returns degeneracy factor for denominator of cross-section expressions.
DELRD -
Subroutine called by VIVAS.
Calculates length of next step.
DERMAT -
Subroutine called by VIVAS, WKB.
Calculates first or second radial derivative of potential matrix.
DGEMUL -
Subroutine called from AIRPRP, QAPROP, RMTPRP, STABIL, TRNSFM, VIVAS.
Matrix multiplication (ESSL routine).
DGESV -
Subroutine called from DVSCAT, STABIL, VIVAS, YTOK.
Solves linear equations (LAPACK routine).
DMSYM -
Subroutine called by ASROT.
Symmetrizes spherical top wavefunctions.
DRIVER -
Subroutine called by MOLSCAT main program.
Driver reads &INPUT data and handles the calls to the major routines.
DSYFIL -
Subroutine called by AIRPRP, LDVIVS, RMTPRP, TRNSFM, WAVVEC, YTOK.
Fills in upper or lower triangle of symmetric matrix.
DVFREE -
Subroutine called by DVSCAT.
Asymptotic matching for DeVogelaere algorithm.
DVSCAT -
Subroutine called by STORAG.
Main routine for DeVogelaere algorithm.
DVSTRT -
Subroutine called by DVSCAT.
Starts DeVogelaere propagation.
EAVG -
Subroutine called by DRIVER.
Provides energy values suitable for Boltzmann averaging.
ECNV -
Subroutine called by BASE, DRIVER.
Handles different possible energy units and returns conversion factor.
ECNVX -
Subroutine called by ECNV.
Handles character string data values in EUNITS.
EPSUM -
Subroutine called by OUTPUT.
Calculates S-matrix eigenphase sum from K-matrix.
ESYMTP -
Subroutine called by COUPLE, SET6.
F02AAF -
NAG Subroutine called by WAVEIG.
Eigenvalues of a real symmetric matrix.
F02ABF -
NAG Subroutine called by ASROT, DMSYM, EPSUM, POTENT, QAPROP,
RMTPRP, SHRINK, VIVAS.
Eigenvalues and eigenvectors of a real symmetric matrix.
FIND -
Subroutine called by SURBAS.
Finds potential term coupling two G-vectors in surface scattering.
FINDRM -
Subroutine called by DRIVER.
For IRMSET .gt. 0 option, finds suitable starting point for integration.
FINDRX -
Subroutine called by DRIVER.
Checks that RMAX is beyond centrifugal barrier and increments it if
necessary.
FSYMTP -
Subroutine called by COUPLE, SET6.
GASLEG -
Subroutine called by GAUSSP.
Returns points and weights for Gauss-Legendre quadrature.
GAUSHP -
Subroutine called by POTENL (VRTP case).
Returns points and weights for Gauss-Hermite quadrature.
GAUSSP -
Subroutine called by IOSBGP.
Interface to GASLEG for Gauss-Legendre points and weights.
GCLOCK -
Subroutine called by DRIVER, IOSDRV, IOSCLC.
Timing routine.
GDATE -
Subroutine called by DRIVER.
Returns character string with current date.
GET102 -
Subroutine called by IOSBIN.
Special ITYPE=102 input; dummy version supplied with MOLSCAT.
GSYMTP -
Subroutine called by MCGCPL, SET6.
GTIME -
Subroutine called by DRIVER.
Returns character string with current time of day.
headER -
Subroutine called by DRIVER.
Writes or checks a header on the ISCRU scratch file to ensure that it
is compatible with the current run.
HERM -
Called by POTENL (VRTP case).
Generates Hermite polynomials.
HRECUR -
Called by GAUSHP.
IDPART -
Subroutine called by BASE.
Handles identical particle symmetry for ITYP=3.
IOSBGP -
Entry point in subroutine IOSBIN, called by IOSDRV.
IOSBIN -
Subroutine called by BASIN.
Processes &BASIS data for IOS cases.
IOS1 -
Entry point in IOSBIN, called by IOSDRV.
Sets up points and weights for orientation quadrature.
IOS2 -
Entry point in IOSBIN, called by IOSCLC.
Initializes values for the propagator in IOS cases.
IOSCLC -
Subroutine called by IOSDRV.
Main control of IOS: loops over energies and orientations and
accumulates generalized IOS cross sections.
IOSDRV -
Subroutine called by DRIVER.
Sets up storage for IOS cases and then calls IOSCLC.
IOSOUT -
Subroutine called by IOSCLC.
Outputs IOS generalized and state-to-state cross sections.
IOSPB -
Subroutine called by IOSCLC.
Calculates pressure broadening cross sections for IOS cases.
IPASYM -
Subroutine called by SET6.
Checks symmetry of asymmetric rotor coefficients (ITYPE=6).
ISUTP -
Subroutine called by IOSCLC.
IVCHK -
Subroutine checks compatibility of symmetries with IV() indexing.
IXQLF -
Entry point in subroutine IOSBIN, called by IOSOUT, IOSPB, SIG6.
J3J000 -
Subroutine called by COUPLE, CPL21, SET6.
Recursive routine for Wigner 3-j symbols with zero projections.
J6TO4 -
Subroutine called by SET4; converts JLEV from ITYPE=6 to ITYPE=4 format.
J6J -
Subroutine called by COUPLE, J9J, SET6, SIXJ.
Recursive routine for Wigner 6-j symbol.
J9J -
Subroutine called by XNINEJ.
Recursive routine for Wigner 9-j symbol.
KSYM -
Subroutine called by YTOK.
Forces symmetry on K matrix.
KTOS -
Subroutine called by DASCAT, DVSCAT, LDVIVS, QASCAT, RMTPRP.
Converts the real symmetric K matrix into the S matrix.
LDPROP -
Subroutine called by LDVIVS.
Log-derivative propagator.
LDVIVS -
Subroutine called by STORAG.
Controls the hybrid log-derivative/VIVS propagator.
MASK -
Called by DRIVER.
Machine-dependent code to suppress floating-point underflows.
MAXMGV -
Called by POTENT.
Maximum magnitude element of a vector.
MCGCPL -
Subroutine called by BASE.
Handles angular momentum coupling for McGuire-Kouri coupled states
approximation.
MHAACK -
Subroutine called by DRIVER.
Prints a citation request for the HIBRIDON propagator.
NEXTE -
Subroutine called by DRIVER.
Estimates next energy set in resonance search option.
ODPROP -
Subroutine called by DASCAT.
Single-channel implementation of diabatic modified log-derivative
propagator.
ORDER -
Subroutine called by FIND.
Takes account of lattice symmetry for Fourier components of
atom-surface potential.
OUTERR -
Entry point in subroutine OUTPUT, called by DVSCAT.
OUTINT -
Entry point in subroutine OUTPUT, called by DRIVER.
Initialisation entry for OUTPUT.
OUTMAT -
Subroutine called by AIRPRP.
Read or write transformation matrix.
OUTPCH -
Entry point in subroutine OUTPUT, called by DRIVER.
OUTPUT -
Subroutine called by DRIVER.
Outputs S-matrices etc. and calculates state-to-state cross sections.
PARITY -
Function called by BASE, COUPLE, CSRTRT, ESYMTP, FCOEF,
FSYMTP, GSYMTP, MCGCPL, .
Returns (-1)**argument.
PRBR, ROTROT, SET6, THREEJ
PERT1 -
Subroutine called by VIVAS.
Calculates perturbation corrections for VIVAS propagator.
PERT2 -
Subroutine called by VIVAS.
Calculates perturbation corrections for VIVAS propagator.
PLM -
Subroutine called by IOSBIN.
Calculates associated Legendre polynomials.
POTENL -
Subroutine called by DRIVER, WAVMAT, DERMAT, ODPROP.
Evaluates intermolecular potential at distance R. See
Section 5 for specifications.
POTENT -
Subroutine called by AIRPRP.
Calculates wavevector matrix and diagonalises average potential.
POTIN9 -
Routine called by POTENL, for ITP=9; if used, dummy version must be
replaced with appropriate user-supplied routine.
PRBOUT -
Entry point in subroutine PRBR, called by DRIVER.
PRBR -
Subroutine called by DRIVER.
Handles calculation of pressure broadening cross sections.
PRBR3 -
Subroutine called by PRBR.
Pressure broadening code for ITYPE=3.
PRBR3R -
Entry point in subroutine PRBR3, called by PRBR.
PRBRIN -
Entry point in subroutine PRBR, called by DRIVER.
Initialisation entry for PRBR.
QAPROP -
Subroutine called by QASCAT.
Propagation routine for the quasiadiabatic modified log-derivative
method (INTFLG=7).
QASCAT -
Subroutine called by STORAG.
Controls the quasiadiabatic modified log-derivative propagator.
QSYMTP -
Subroutine called by CPL4; matrix elements for ITYPE=4.
RBES -
Subroutine called by DASCAT, DVFREE, QASCAT, RMTPRP.
Generates Riccati-Bessel functions.
RDPCH -
Subroutine called by OUTPUT.
Outputs cross sections.
RMSBF -
Subroutine called by YTOK.
Ratio of derivative to function value for modified spherical Bessel
functions of the third kind.
RMTPRP -
Subroutine called by STORAG.
Main routine for R-matrix propagator algorithm.
RSYM -
Subroutine called by DVSCAT.
Forces symmetry on K-matrix in DeVogelaere algorithm.
RSYMTP -
Subroutine called by CPL4; matrix elements for ITYPE=24.
SCAIRY -
Subroutine called by AIRYMP.
Scaled Airy function and derivatives.
SET1 -
Entry point in subroutine SETBAS, called by BASE.
Handles basis set and energy levels for ITYP=1.
SET2 -
Entry point in subroutine SETBAS, called by BASE.
Handles basis set and energy levels for ITYP=2, 7.
SET3 -
Entry point in subroutine SETBAS, called by BASE.
Handles basis set and energy levels for ITYP=3.
SET4 -
Subroutine for ITYP=4 basis functions, called by BASE.
SET5 -
Entry point in subroutine SETBAS, called by BASE.
Handles basis set and energy levels for ITYP=5.
SET6 -
Subroutine called by BASE.
Handles basis set and energy levels for ITYP=6.
SET6C -
Subroutine called by SET6.
Generates asymmetric rotor basis sets from rotational constants.
SET6I -
Subroutine called by IOSBIN.
IOS version of SET6.
SET8 -
Entry point in subroutine SURBAS, called by BASE.
Handles basis set and energy levels for ITYP=8.
SETBAS -
Name of subroutine containing SET1 - SET5.
SGNCHK -
Subroutine called by RMTPRP.
Ensures consistency of eigenvector signs from one R step to the next.
SHRINK -
Subroutine called by RMTPRP.
Performs basis set contraction for R-matrix propagator algorithm
(ISHRINK .gt. 0 option).
SIG6 -
Subroutine called by IOSOUT.
Handles ITYP=6 cross sections for IOS case.
SIXJ -
Function called by FCOEF, FSYMTP, PRBR, PRBR3, ROTROT.
Calculates Wigner 6-j symbol.
SPROPN - Subroutine called by AIRPRP.
Diagonal propagator for Airy method.
STABIL -
Subroutine called by DVSCAT.
Stabilisation routine for DeVogelaere algorithm.
STEFF -
Subroutine called by FINDRM.
Steffensen iteration for accelerated convergence on RMIN.
STORAG -
Subroutine called by DRIVER, IOSCLC.
Sets up storage for and calls a propagator; all calls to propagators
are currently done through STORAG.
STRY -
Subroutine called by RMTPRP.
Tests whether eigenvectors of potential are changing slowly enough to
end R-matrix propagation.
STSRCH -
Called by ECNVX.
SURBAS -
Subroutine called by BASE.
Handles basis set for surface scattering (ITYPE=8).
SWRITE -
Subroutine called by OUTPUT.
Writes unformatted S matrix to unit ISAVEU.
SYMINV -
Subroutine called by DAPROP, KTOS, LDVIVS, LDPROP, QAPROP, RMTPRP.
Calculates the inverse of a real symmetric matrix.
THREEJ -
Function called by COUPLE, CSRTRT, FCOEF, FSYMTP, MCGCPL, ROTROT.
Calculates Wigner 3-j symbol with all projections zero.
THRJ -
Function called by CSRTRT, ESYMTP, FSYMTP, GSYMTP, MCGCPL, PRBR, PRBR3.
Calculates Wigner 3-j symbol with no restriction on projections.
TRNSFM -
Subroutine called by AIRPRP, POTENT, QAPROP, RMTPRP, SHRINK, VIVAS.
Performs a similarity transform.
TRNSP -
Subroutine called by AIRPRP, POTENT, QAPROP, RMTPRP, SHRINK.
Transposes a matrix.
VINIT -
Subroutine called by the general-purpose version of POTENL.
Initialises for calls to potential routines VSTAR, VSTAR1, and VSTAR2.
See Section 4.2.
VIVAS -
Subroutine called by LDVIVS.
VIVAS propagator.
VRTP -
Subroutine called by general-purpose version of POTENL.
User-supplied routine which may be called to evaluate an interaction
potential which is not expanded in angular functions. See
Section 4.3.
VSTAR, VSTAR1, and VSTAR2 -
User-supplied routines which may be called by the general-purpose
version of POTENL to evaluate the interaction potential and its first
and second derivatives respectively. If used, dummy version must be
replaced by an appropriate user-supplied routine.
See Section 4.2.
WAVEIG -
Subroutine called by AIRPRP.
Get eigenvalues of potential matrix.
WAVMAT -
Subroutine called by DAPROP, DERMAT, DVSCAT, DVSTRT, HEADER,
LDPROP, POTENT, QAPROP, RMSET, RMTPRP, VIVAS, WKB.
Calls POTENL, to obtain potential coefficients, and forms potential
matrix for scattering routines.
WAVVEC -
Subroutine called by WAVMAT, DERMAT.
Efficient routine to handle vector products required by WAVMAT.
WKB -
Subroutine called by STORAG.
WKB propagator for one channel problems.
XNINEJ -
Function called by CSRTRT, ROTROT.
Calculates Wigner 9-j symbol.
YRR -
Function called by IOSBIN. Computes
bispherical harmonics for two linear rotors.
YTOK -
Subroutine called by LDVIVS, RMTPRP.
Calculates the K matrix from the log-derivative matrix.
ZBES -
Called by GASLEG.
Forward to. Section 10
Back to. Section 8
Back to the. Table of Contents