Please check the website, http://pgopher.chm.bris.ac.uk/
and the beta version page http://pgopher.chm.bris.ac.uk/pgopher-beta/
The following are not implemented in the current version of PGOPHER, but may be in a
- Spherical Tops
- Nuclear spin effects in symmetric tops are limited to nuclei
on the symmetry axis only.
- Electron spin effects in symmetric tops are partly
- Magnetic dipole transitions in symmetric tops are partly
- Internal rotation and other large amplitude motion effects can
only currently be dealt with if the effects are small, and can
be accounted for by adding one or two terms to the Hamiltonian -
see the discussion around the data file nd3x0one.pgo in The pure rotational spectrum of the ground
state of NH3 for an example involving the
inversion doubling in ammonia.
- The Mac version is less polished than the windows version. Any
problems are, however, likely to affect the user interface only,
rather than the calculations. (A comprehensive test suite for
the calculations passes on all systems.)
Upgrading from previous
Newer versions of PGOPHER can always read
files from older versions, though design changes may mean some
changes must be made on loading selected files, as noted below.
Older versions can normally read .pgo files from newer
versions, though use of new feature can trigger a warning about
unread items. If an error prevents the .pgo file from
loading at all in an older version, an ordinary text editor can be
used to remove the problem item if use of an older version is
- In version 10.0.21 the method of calculation for two photon
(and higher rank) transitions in the presence of external fields
was changed, and earlier versions will have given wrong results
for perpendicular polarization. See Polarization
objects for more information.
- In version 10.0 an adjustment has been made to the phase of
some transition moments; see the discussion at the end of Transition Moments and Line Strengths
for more details. For the most correct calculations FixTransitionPhase
should be set to true, and this is likely to become the default.
In practice this will not affect most calculations, but may
change calculations involving multiple interfering transition
moments, particularly if they are of different types.
- In version 10.0.502 the default order of J and
F within a given basis set changed from
decreasing to increasing. This can provide better quantum number
assignments under some circumstances, though in most cases will
have no effect. To force compatibility by reverting to the older
order set OldHyperfineOrder
- In versions after 10.1.108, inverting an Experimental Plot simply
multiplies it by -1. Previous versions used the transformation Iinverted
+ Imin - I.
- The Lorentzian and Gaussian variable names in a LineShape object changed in 10.1.145
to avoid confusion with the function names. Old files will
normally be converted automatically.
- The hyperfine parameter, dJ
was implemented fully in 10.1.151, and the results from the
initial implementation in earlier versions will only be
- For versions before 10.1.160, if specifying populations of
individual levels (see Non-Boltzmann
Populations) in the presence of a field, reading back
saved populations from a .pgo file could fail for linear
molecules. This is now fixed, but the format has changed
slightly. Old files will normally be read correctly, but the new
files can't be read by older versions.
- Plots in version 10.1 now always plot the same quantity for
intensity by default, regardless of the frequency or wavelength
scale chosen. This removes some confusion when comparing or
fitting to experimental spectra, though the implied peak area
then depends on the plot units chosen. Setting PreserveArea
true restores the old behaviour, and this may need to be done
when loading older files to match earlier simulations. See the documentation on this
parameter for more details.
New Features and Fixed problems
- New Features in 10.1.180
- Significant updates to the automatic fitting process,
particularly the introduction of the Nearest Lines Window. Two
detailed walk-throughs, Automatic
Fitting of the nu5 band of cis 1,2-Dichloroethene
and N2O IR spectrum with
additional diagnostic tools show how to use this. In
addition the user interface to the automatic fitting algorithm
has changed slightly, with the fit and check lines indicated
on the spectrum and the new MinCheck setting; see Automatic fitting of an N2O IR spectrum
for the updated process.
- Weighted Contour Fitting
is now possible; weights can be taken from an extra channel on
import, or calculated from the intensity and/or frequency -
see Calculated Intensity
- More options for exporting plots to files (and via
clipboard) described in Exporting
- PowerPoint (.pptx) format
- Windows metafiles (WMF) or enhanced metafiles (EMF files).
- Right clicking on a line in a simulated spectrum now does
not add a line to the Line List Window
if it is already present, but simply highlights the first line
if no lines are added. To always add lines, turn off "Discard
Duplicates" in the Line Selection
Options Window or use Shift+Right Click. The options
window also allows the sort order on adding lines to be
- Assignment of lines underneath the mouse cursor is now shown
in the status bar of the main window.
- A series of features has been added to assist in handling
larger problems, particularly where many states are involved.
See Combined and Multi-State
Fits and Constructing Large
(Multi-State) Files for an overview; new features
- Constants Plot Window
- File, Export, Constants To...
- Detail/Linelist output now has much less repetitive output
of matrix elements.
- Export as Matrix...
- Include statements in line list files can now
include .pgo files
- Make Lower/Make Higher in constants window.
observation" in a residuals window can now open
.pgo files in a second copy of PGOPHER, as well as
- Line intensity measurements can now be made at the same time
as line position measurements, and they can be used as a check
on peak assignments, or in their own right for determining
temperature. See automatic fitting
of the N2O IR spectrum for a walk-through of
the new features, which include:
- Intensity can be set and fitted in the line list window at
the same time as a peak position.
- Line lists in general can can contain both frequency and
intensity; the ValuesPresent
directive indicates what is present.
- Intensity residuals window,
including a Boltzmann plot. The main residuals window has
also been enhanced, with a greater selection of plot
- Fractional Intensity fits, where the default estimated
error is taken as a fraction of the value
mode for fitting blended lines as a single observation.
- Additional linear molecule parameters - TSpinParity
(parity dependent anisotropic g factor), the nuclear
hyperfine interactions dJ
and cIp and
higher orders for the centrifugal distortion of A, AH,
- Several enhancements to the way fluorescence spectra are
calculated, overcoming previous limitations and giving more
flexible output. This includes the Fluorescence
simulation setting, the AbsoluteE
molecule setting and the WperMolecule intensity units.
See Emission Spectra for how these
- Text Size option on the view menu - particularly helpful if
demonstrating the program on a computer projector.
- Enhancements for Fortrat plots, including showing assignment
on mouse hover.
- The restriction of only having a single TransitionMoments object
for any given pair of manifolds has been relaxed. This allows
colour coding according to individual transition types, such
as a and b type transitions in asymmetric
tops, as colours can be associated with TransitionMoments objects,
but not individual transition moments. Note that separating
transition moments in this way will ignore interference
between the separated transition moment objects, which can
lead to significant errors. However for the common use case of
straightforward asymmetric top spectra no error is introduced.
directives can take a variable name, rather than a constant
value, and the variable can be used in fitting.
- Select in line
lists can be on a wider range of quantum numbers.
setting to adjust the algorithm used to assign Ka
and Kc quantum numbers.
- LAPACK upgraded
- Fixed Problems in 10.1.180
- The algorithm used to determine colours for transitions was
inconsistent with the documentation in Determining Colours and J
ranges. The results now agree with the
documentation, though the older behaviour can be invoked with
- If EigenSearch
was False, then under certain circumstances (typically
simulating after a fit) spurious eigenvectors could be used
for subsequent calculations, which manifested itself as
- MinI of zero in
Fortrat plots was plotting no transitions (rather than all).
- Calibrating spectra was broken
from version 9.
- Loading .pgo files from older versions will set
the eigenvalue number columns (labelled #) in the line list
window to a negative number if they were saved as blank.
- Table updates via the GUI required a
Clear Cache (or save/load) to take effect.
- If specifying populations of individual levels (see Non-Boltzmann Populations) in the
presence of a field, reading back saved populations from a .pgo
file could fail for linear molecules.
- Some energy level plots against hyperfine quantum numbers
other than F failed.
- Some unrecognised parameters on the command line were simply
ignored, rather than triggering an error message.
- Plots now always plot the same quantity for intensity by
default, regardless of the frequency or wavelength scale
chosen. Set the PreserveArea
setting true to restore the older behaviour; see the documentation on this
parameter for more details.
- New Features in 10.0.505
- Automatic Fitting as
described in "Automatic assignment and fitting of spectra with
PGOPHER". There are knock on changes in the Residuals Window, Transitions Window and Line List Window.
- Automatic baseline and peak finding; see under Automatic Fitting for worked
- More general lineshape functions - see Lineshape Function and Custom Lineshape Function.
- Forbidden Transition
Moment to allow a wider range of forbidden transitions
to be simulated.
- Bulk Import From Table for
states, transitions and perturbations.
- Import of Excel (.XLS, .XLSX) files and
selected other spreadsheet formats, depending on the platform.
- The full set of unicode characters are now handled in many
contexts, though it is recommended that object names are
restricted to the standard ASCII set to avoid problems with
earlier versions of the program. PGOPHER assumes
UTF8 encoding in text files in the absence of any other
- The default value of MinI
is now 0.01, which typically gives more useful Fortrat plots
as many weak transitions are excluded.
- Initial implementation of import of Bruker Opus files
- Initial implementation of handling of spectra in FITS format, common
for astronomical data.
- Text file overlay import faster and more robust, and will
also import comment lines from the start of the file.
- In the overlay menu, "Deglitch" is now "Delete
point", and "Delete Points" command has been
- On-line help is now connected on Linux and Mac.
- Enhancements to SPFIT/SPCAT file handling - see the qfmt and
- Significant speed-ups for selected operations, particularly
handling large line lists and experimental data files.
- LAPACK upgraded
- "Offset By..." menu item on manifolds to shift all
state origins by a constant amount.
- Stack traces on non-windows systems now show in the log
window, rather than the console.
- More consistent keyboard shortcuts in Mac version.
- Overlay linelists can include estimated error values; these
are not plotted, but if the peak finder finds a single peak
the value will be copied to the "Std Dev" column in
the linelist window.
- Fixed Problems in 10.0.505
- An adjustment has been made to the phase of some transition
moments; see the discussion at the end of Transition Moments and Line
Strengths for more details. For the most correct
should be set to true
- M dependent line strengths for perpendicular
multiphoton transitions. See Polarization
objects for more information.
- Change in definition of spin forbidden gS; now discards
quantum number dependence
- Changing units changes increment as well as value and
- On non-windows machines, save and restore of a setup with
multiple plot windows open gave a (harmless) error message.
- Colours lost in line list window.
- New Features in 9.1.100
- Comprehensive tutorial Walkthrough of
Simulating and Fitting a Simple Spectrum added to the
documentation, including an N2O sample spectrum to
- Custom Width Functions
provide an alternative simple empirical way of specifying
quantum number dependent line widths and intensities.
- Significant rework of the Transitions
Window to allow selection by more quantum numbers and
- BranchExpr format
added as an option to the linelist
- Remove forced sorting of transition moments by rank.
- Settings set to Auto have the actual value
displayed in the hint in the constants window and in detailed
- Rename parameter command added to the Variables object, and others to
which parameters can be added.
- makesvn script to
give a starting point for compiling PGOPHER if the
available binaries are not suitable.
- Updated fundamental constants to the CODATA 2014 set from http://physics.nist.gov.
The largest effect of this is a to scale effective absolute
temperatures by 1.000000274, the amount by which k/h
- Atomic masses taken from v4.1 of the NIST "Atomic Weights
and Isotopic Compositions" at http://physics.nist.gov/PhysRefData/Compositions
- LAPACK upgraded
- MaxDJ setting for Linear,
Symmetric, Asymmetric Top nuclei to
limit the maximum ΔJ to consider in
evaluating hyperfine matrix elements.
- Fixed Problems in 9.1.100
- Disable global menu on Ubuntu Unity for PGOPHER,
as it interacts badly with the multiple windows used.
- Speed up rejection of vibrational states above Emax.
- All Button on plot now resets vertical scale as well as the
- If Signed
of a Custom Transition
Function was True the function was called
twice, both with and without the signed quantum numbers. The
is only an issue if the Value variable was used.
- Copy Branch Table/Copy Simple Format and
corresponding fits in the linelist
window fixed for linear case for several combinations of
- Transitions window would
show 4th power of transformed transition matrix elements if
transition moments with multiple ranks contributed to it,
rather than the square as labelled.
- In Transitions window
update symmetry names if molecule JAdjustSym
setting is changed.
- Fixed Problems in 9.0.101
- Better handling of multiple spin 0 nuclei on .par/.var
- Some error messages in Mac version resulted in crash.
Log of older changes
- New Features in 9.0.100
Partition Function for calculating complete partition
- Command line export of Hamiltonian and
- Scale relative magnitudes of parameters when fitting, based
on the derivatives. This is controlled by the ScaledParameters
- Switch memory manager to FastMM,
which is significantly faster on some workloads. In addition
changes have been made to the code that gives significant
speed-ups for large problems on multi-core machines.
- Export to CSV
file added as option in right clicking an object in the constants window.
parameter to override automatic estimate of this.
setting to override automatic mechanism for assigning Ω,
N and F number in linear molecules.
- l-matrix and other vibrational calculation windows
have an option to rotate the plot plane about the axis plotted
horizontally. (A full 3D plot option is planned for the next
- More plot options in the Residuals
window, including ratios and logarithmic scales most useful
when fitting intensities, and the population option now works.
- zMatrix has a show calculated
parameters menu command.
- A+ and A- (and B+/B-) notation for symmetry alternating with
J in Symmetric Tops.
directive in observation files to specify the units of
- Default Symmetry in
observations files can be specified as either J
adjusted or non J adjusted.
- Branches in linelists for fitting can be expressed in a more
general way using the BranchExpr
directive, to allow easy adjustment to assignments.
- Custom Population
functions now have EB and Origin
variables, to allow a closer match to the PGOPHER
- Simple calculator for testing expressions.
- Table object for use with
- Objects having an expression, such as Custom Population
Functions or Custom
Transition Functions now display with an enlarged (and
correctly labelled) window in the Constants
is now an intensity option.
- Sub-basis numbers can be included in the quantum number
- The SymWt
setting in linear molecules is now included in intensity
calculations even for molecules without a centre of symmetry
to allow all nuclear spins to be included in partition
- The size of matrix that the 64 bit version can handle is now
limited by available memory, rather than 16384×16384.
- Check Derivatives
option to fitting to assess the accuracy of numerical
derivatives, and other tools to assist in fitting.
- Branch format
allows specification of symmetry for symmetric tops.
- Setting SVDThresh
negative switches the least squares process to a QR
- Simple line list format extended for symmetric tops, and
other fixes to K quantum number handling, including branch format input.
See the SymmetryLabels
flags. As part of this fix Copy simple format from the linelist window now works for
- Detailed output now includes simulation parameters, and
fundamental constants used.
- Custom populations can now specify an M dependence in the
presence of external field, either in a custom population
function, or as numerical populations specfied in a manifold.
- Force constants in internal coordinates can now specify the
electronic states they operate on, allowing for Jahn-Teller or
similar terms that act between electronic states to be
- Added zero point rotational constants Bx0, By0 and Bz0 to
calculated parameters for an electronic state. These and the
inertial defect are calculated to avoid problems with
resonances for zero point level, as in A. L. L. East, C. S.
Johnson and W. D. Allen, J. Chem. Phys. 98, 1299
- Switched fundamental constants to CODATA 2010 set (was 2006
set). This has a small effect, most significantly on
intensities. (A temperature of 300.000375 K is required to
reproduce earlier spectra at 300 K).
- Threshold for zero frequency vibrational modes and other
small values now adjustable via SmallCoefficient.
- Loomis-Wood plots.
- Debug setting added to Custom Population
functions and Custom
Transition Moment functions.
- Angstroms (or Å) now a valid unit.
- LAPACK upgraded
- Correlations object now
always written to .pgo file if present. (It was not in version
8 to avoid compatibility problems with earlier versions.)
- Fixed Problems in 9.0.100
- Adjusted treatment of exclude
perturbations flag when plotting observed energy levels.
- Negative Error
Multiplier in energy level plots scales errors by the
estimated error of the observation.
- Inconsistent observation colours in level
and residual plots.
- Improve F1/F2/F3 numbering and N assignment if OmegaSelect is
used for linear molecules. Note that unexpected results are
still possible - see the documentation for OmegaSelect.
- If Symmetry
Coordinates are used the largest coefficient in the L
matrix for a given mode is forced positive by multiplying the
mode by -1. This helps to give consistent signs for Coriolis
coupling constants and some other values.
- Equivalent nuclei with spin 0 that have been explicitly
included in the calculation now have the correct statistical
weight applied. As part of this fix, the irrelevant Spin and
AsNext settings were removed from nuclei for vibrational
- The I2 built in calibration overlay was broken.
- Hönl-London checkbox disabled in Transitions Window if external
fields present, as it does not do a relevant calculation.
- Documentation for Scomp values for linear perturbations was
wrong - values in text were doubled.
- Width setting in
vibrational simulations was treated incorrectly.
- +l and -l labels were swapped in symmetric
tops for levels of E2 and E5 vibronic
symmetry (not rovibronic symmetry) as compared to the
definition given by Hoy and Mills J. Molec Spectrosc. 46, 333 (1973).
- Specifying individual level
populations failed when overall J was half
- l matrix import from molpro was not handling dummy
- Complex transition moment matrices were not displayed
correctly in the transition moments window.
- The RemoveSpins
directive was not correctly removing all terms involving
- Display of symmetric
top perturbations in constants tree inverted if lChange
- Convert to Perturbations for symmetric tops corrupted zeta.
- Branch format linelists failed for linear molecules with
- HITRAN files for O2, NO and OH would not import;
ignore lines not beginning with a number.
- Spectra in the presence of external fields involving
symmetric tops with degenerate vibronic states included
spurious extra transitions.
- M dependence of multiphoton transitions always used 1
as the transition rank, giving incorrect intensities in the
presence of an external field. As part of the fix for this
Rank has been removed as a setting in Polarization objects; the rank
is now taken from the transition moment. In addition spectra
with random polarisation in the presence of an external field
had the wrong relative intensity between ΔM = 0
and ΔM ≠ 0 for all ranks.
- Energy level lists of a single state in a manifold only show
levels assigned to that state.
- Display of vibrations fails in the presence of dummy atoms.
- Force failure when redundant coordinates used and UUT
= 1 test fails.
- Do not decompose Dushinsky
Matrix into equivalent rotations if determinant
- G-1 matrix printed out incorrectly
- Force field analysis printout used two different meanings
for the A matrix.
- Documentation wrong for FixCentre.
- Allow FrequencyOffset
to be set in a .ovr file at the same time as a calibration
- Remove order dependence of node fixup.
- Fixed crash on level printout if widths present.
- Peak finding reported positions to insufficient precision
for spectra with a very non-uniform frequency scale, such as
spectra arising from combining non-adjacent individual
- Custom Population
functions and Custom
Transition Moment functions used ½ the required
values for the Fn variable.
- Precision lost in Voigt profile on some platforms
- Units directive more
flexible: accepts cm1, nmVac, nmAir, angVac, angAir, Angstroms. (Previous versions had
no way of specifying air wavelengths.)
- Fixes for compilation using the free Pascal compiler under