Institute of Physics, Polish Academy of Sciences This is a database of computer Programs for ROtational SPEctroscopyEstablished Nov. 1999
About this database
Summary of the available programs
Conditions of use
How to download
Notes on FORTRAN and on the FORTRAN graphics in these programs
Notes on gle graphics used for PostScript output
Useful Relations for Rotational Spectroscopy


Programs for ROtational SPEctroscopy

        This is a collection of programs for various aspects of the rotational spectroscopy problem. For those who are already using these programs an upgrade is possible from here. The site is also to serve as a documented archive for the IFPAN group.

        The main reason for creating this site is the experience that the advances in computer power have not been reflected in the quality of software available to a typical rotational spectroscopist. The codes of 1960/1970 are still in use, and many are unparalleled in the beauty of their FORTRAN. However, as handed down to current students, they suffer from very sparse documentation, lack of source commenting and cryptic input/output. Most of the programs listed here offer some advance on these counts.

        The level of the listed programs is very uneven. They range from 'state of the art' solutions to specific problems (e.g. QSTARK, STRFIT), to simple, yet useful tools (EVAL, PLANM). The various spectral fitting programs now face strong competition from the superb SPFIT/SPCAT package of H.M.Pickett. I am still surprised, however, that the older fitting programs have by no means been relegated from use. I hope that this is not entirely due to inertia and familiarity, but also to greater user friendliness and minimal learning curve. Nevertheless, the current importance of SPFIT/SPCAT is such that a separate section is devoted to various add-ons to get even more out of that package.

        The majority of the programs on this site have been written in our group although the number of donated programs is on the increase. Our programs are often based on preceding older code, for which I tried to acknowledge authorship when known. All of our programs are deeply rooted in the 1970's discovery that computing can have a 'human face' and programs can be INTERACTIVE! This is nevertheless not taken too far, as coding is, on the whole, rather conservative. Considerable effort has gone into commenting the source, and intelligible input and output, but interactivity rarely goes beyond simple ASCII menus. With some exceptions mice and GUI's are studiously ignored. The several graphics programs are keycode operated, although help screens are available. All programs contain extensive descriptive headers in the listings.

        Some older programs of other authors (like the classic STARK) are put out here without explicit consent of the authors, who may no longer be reachable. In keeping with the tradition of this field I assumed implicit consent of the original authors to such action. If this is not the case then please let me know. Several programs written by other people have had internal workings unaltered, while changes have been made to input, output, and commenting in the listing.

        Making these programs available publicly is a way of paying my debt to the many predecessors in programming for rotational spectroscopy from whose code I have been able to draw freely. I would be happy to accept programs to add to this site on a deposited basis. The required minimum would be the listing, specimen data, output for the specimen data and, as importantly, concise but clear documentation, including a suggested reference for example of use as well as citation.

        Comments on the programs already put up are also appreciated but I cannot promise a rapid reaction time unless some really grave error is spotted.

        Zbigniew Kisiel,

An introductory description of this site was given on p.103 of the paper below, which is also the recommended reference if you want to cite this site as a whole:
Z.Kisiel, in: J.Demaison et al. (Eds.), Spectroscopy from Space,  Kluwer Academic Publishers, Dordrecht, 2001, pp.91-106.PROSPE paper


GROUPS of programs


Summary of the available programs:


  Analysis of spectra
AABS The AABS package for Assignment and Analysis of Broadband Spectra: consists of linked viewers of spectra and predictions, which are integrated with several programs for fitting/prediction

Several other programs for analysis of broadband spectra are also available - you will find a brief comparison and links here

  Asymmetric rotor
ASFIT To fit rotational transitions in an asymmetric top with various versions of Watson's asymmetric top Hamiltonian, tailored for repetitive online operation 
ASROT Predictive program complementing ASFIT 
ASCP Graphical program to display spectral predictions from ASROT and from Pickett's program SPCAT
PICKETT The SPFIT/SPCAT program suite written by H.M.Pickett (and available from JPL Molecular Spectroscopy) has become the workhorse of analysis of high resolution rotation and rotation-vibration spectra.  This section provides some useful accessories for use with these programs:

Crib-sheet to SPFIT/SPCAT containing many notes and hints dealing with typical problems faced by users.

Annotated documentation to SPFIT/SPCAT.
Postprocessing programs for the
SPFIT/SPCAT input and output files: 
PIFORM - to reformat the .FIT output into a form closer to the requirements for publishing
PISLIN - to check large .LIN files for line duplication + split blends, and also for line sorting according to many different criteria
PICHAM - to determine actual values of Hamiltonian matrix elements used in SPFIT/SPCAT
PISORT - to extract and to sort calculated transitions from the .OUT file
LINFIL - to filter out a subset of lines from the .LIN file
CATFIL - to filter out a subset of lines from the .CAT file
PMIX and PMIXC - to produce distribution plots of energy level mixing coefficients based on .EGY file output
PICONTR - contributions to transition frequencies from parameters in the Hamiltonian
SPFIT/SPCAT 64-bit executables for both Windows and Linux.
CONVC Conversions between various types of asymmetric rotor constants
PLANM Planar moments of inertia and associated quantities
PLAN Quadratic, quartic and sextic planarity relations among asymmetric rotor constants

  Symmetric rotor
SYMF Interactive symmetric top, ground state fitting program along the lines of ASFIT 
SYMTOP Simple SYMmetric TOP predictive program 
LFITD Interactive fitting program for v=1 state of E-symmetry mode in a C3v symmetric top
V2E Fitting program for v=2 state of E-symmetry mode in a C3v symmetric top

  Linear rotor
OCS Calculation of OCS calibration spectra from data for most known isotopologues and excited states, results are intended to be merged and previewed with ASCP

  Internal rotation
IAM internal rotation program of Holger Hartwig from the Kiel group for up to three symmetric internal rotors and up to one quadrupolar nucleus.  The XIAM_mod extension by Sven Herbers allows the use of two additional internal rotation parameters.
ERHAM Peter Groner's Effective Rotational HAMiltonian program for molecules with up to two-periodic large-amplitude motions
BARRIER Internal rotation barrier from energy level differences (by Peter Groner)
BELGI The BELGian Internal Rotor program of Isabelle Kleiner et al. for a C3v rotor attached to a Cs or a C1 framework
Vadim Ilyushin's Rho-Axis Method program for 3 and 6 fold barriers (without and with nuclear quadrupole hyperfine structure)

Can SPFIT be used to fit internal rotation ?
  Nuclear quadrupole coupling
NSYM To predict hyperfine splitting in a linear/symmetric top with one quadrupolar nucleus
ASQ1P To predict hyperfine splitting in an asymmetric top with one quadrupolar nucleus - first order calculation only but produces handy plots of expected splitting patterns
Q2FIT To fit rotational transitions for an asymmetric top with up to two quadrupolar nuclei in the I,F coupling scheme.
QDIAG Diagonalization of the inertial quadrupole tensor with errors
QPRINC Rotation of the quadrupole tensor from its principal to inertial axes

  Electric dipole moment
STARK Ribeaud's venerable STARK to predict first, second and mixed order Stark shifts in an asymmetric rotor without nuclear coupling
SZK Modified version of Pickett's STARK to do basically the same thing as above, but from an .STK file produced by SPCAT
QSTARK To fit Stark shifts in rotational transitions for a rotor with up to one quadrupolar nucleus by direct matrix diagonalization for each value of the electric field and M

  Structural calculations
PMIFST Graphical molecule display program tailored to the needs of rotational spectroscopy - the name comes from calculation of Principal Moments of Inertia from STRucture 
STRFIT General STRucture FITting program to fit internal coordinates directly to moments of inertia of multiple isotopic species
KRA Substitution coordinates from Kraitchman's formulae for single isotopic substitution 
EVAL Evaluation of internal coordinates from Cartesians
CORSCL Scaling of trial molecular geometry for better prediction of isotopic spectra
RGDFIT Fitting of coordinates of a Rare-Gas atom in a molecule-Rg dimer

  Vibrational calculations
VIBCA Calculation of miscellaneous quantities from the harmonic force field including quartic centrifugal distortion constants, Coriolis coefficients, vibrational contributions to moments of inertia...
VECTOR Graphical display of normal coordinate displacement vectors from VIBCA
FCONV Force constant conversions, which include setting up of a VIBCA data set from results of a GAMESS force field run
ANHARM Energies, eigenvectors and vibrational transitions for a reduced anharmonic potential

  Handling of spectra (some of these programs are only  intended for local use and are of limited general applicability)
The RECSPE package for RECovery of legacy paper SPEctra: consists of a family of programs that allow conversion of a paper spectrum scanned into bitmap images to a calibrated digital spectrum for use in analysis or just for display
SVIEW Generalised viewer for frequency domain spectra
MODSPE Spectral transformation program for broadband MM-wave spectra 
LISTSPE Listing and sorting programs for various types of spectra
FM File Manager for IFPAN FTMW spectral files, compresses individual spectra into archives and allows various maintenance operations on such archives
V6_20 Viewer of multiple supersonic expansion, cavity FTMW spectra in the IFPAN standard and of their archives
FFTS General FFT program for chirped-pulse and cavity FTMW spectroscopy with optimisations for IFPAN schemes of multi-microwave pulsing per single gas pulse
VKIEL Viewer for FTMW files recorded in the KIEL standard

FIDFIT FID Fitting in the time-domain (modification of the DECAYSBN program by J.Haekel, ca 1990)

  Molecular modeling
DJ Diatomic approximation to weakly bound dimers: Rcm, kσ, ωσ, ε from rotational constants and DJ
RGDMIN Structures of molecule..Rg dimers from a simple distributed model for the dispersive interaction
MIN16 Structures of hydrogen bonded dimers from the electrostatic model of Buckingham and Fowler

     The sections below discuss some general issues associated with using these programs, downloading, compilation and gle graphics.


  Use of these programs

        License: This site was established before the current practice of licensing was established.  Some of the programs are old enough to precede the licensing concept altogether.  All of these programs were developed in the academic environment, as part of non-profit, scientific research.  The general licensing conditions (unless otherwise stated in connection with a specific program) are laid out below.  Your use of the programs from this site is assumed to constitute agreement to the following conditions:

        The use of these programs is free.

        The copyright for a given program is assumed to belong to its author, who is clearly identified in the description of the program on this site, or in the header printed by the program.

        There is no objection to modification of those programs for which the source code has been made available.   Nevertheless, in order to avoid confusion:  1/ please change the program name 2/ insert appropriate comments at the top of the listing 3/ preserve or add comments acknowledging the original source.

        If a program is found useful in publishable research and you want to acknowledge it, then please cite the paper suggested in the description of the program - in particular if the program is not one of mine.

        If there is no suggested publication for a program and/or you wish to acknowledge the use of this site then please cite this publication.  You might, optionally, also cite the link to this site as:  "Z.Kisiel, PROSPE - Programs for ROtational SPEctroscopy,"

- - -

        Version date: Each of my programs displays this on the header printed at the beginning of operation, and also carries it near the top of the listing. Many of the programs are in continuous use, and new capabilities are put in as required. The more significant changes are pointed out in the PROSPE latest listing, but incremental changes are only identified by the version  number and the associated comment in the source code listing.

        Internal documentation: Sufficient documentation for each program should normally be available on its web-page. However, please note that many programs carry additional/duplicate documentation at the top of their .FOR source listing. It is recommended that this be inspected, even if you are not FORTRAN literate.



       The programs are mostly available both as FORTRAN source (see the notes below) and as Windows executables. If an explicit link to the executable is not provided, just change the ending of the link to the FORTRAN listing from .FOR to .EXE.

       Some rare, but recurring, problems may arise due to differences in handling of text files by various systems:

       Line termination:  This web site is on a UNIX machine and all text files (i.e. FORTRAN listings, data and output files) are in the UNIX ASCII format. In this format each line is terminated only with the LF character, whereas in WINDOWS/DOS, in particular, lines have to end with both LF and CR characters. Thus there may be compatibility problems on direct downloading to file onto WINDOWS/DOS machines. The easiest way to ensure that the text files, such as program listings, are compatible with your system is to read the file first into the viewer and then to save it using the FILE / SAVE AS options.

       If ASCII file type conversion is necessary then it can be made with a suitable text editor.  In addition, the unix2dos and dos2unix utilities, which are native to UNIX environments, are also available for Windows and can be found on the web.  FTP file transfer between UNIX and Windows systems will also carry out the necessary conversion when the ascii transfer mode is specified.

       Encoding:   An associated problem with text files is that of encoding.  The name ASCII is, in fact, the name for a specific way of encoding characters by using one byte of storage for one character.  One byte character encoding is now a subset of many different character encoding schemes, which may also use multiple bytes per character.
      One byte character storage is still the safest way for text input files to programs on this website.  An easy way to check whether you do not have multibyte encoding is to load the file into a text editor, make it count the number of characters in the file, and compare that with the size of that file on disk.  If the numbers differ by a factor close to 2 or 4 then your encoding is not single byte.  Many text editing programs allow you to convert to single byte encoding.


  Notes on FORTRAN


        The programs usually do not depart much from F-95 and, unless they contain graphics, compile in standard manner in Windows, UNIX, and MAC environments. The expected reply to YES/NO type of question is 1/0, unless Y/N is explicitly suggested in the prompt. Pressing just the ENTER key often suffices for 0.

       Most contemporary compilers no longer use default static memory allocation that preserves values of variables previously set in some subroutine. Many programs assume this to be the case so that you need to use an appropriate compiler option to enforce static allocation. For example on the f77 compiler on SGI machines and in Compaq Visual Fortran this used to be the -static option, in Intel Visual Fortran this is option -Qsave., while in the gfortran compiler the same option is called  -fno-automatic.

        Minimal tweaking may be necessary for several trivial issues such as

  • the edit descriptor in FORMAT statements used to halt carriage control - I generally use the $ character for this, but the occasional backslash character \ may have slipped in and this is less widely recognized
  • the bell signal is hard coded as CHAR(7) and many systems will probably just ignore it

Fortran is still evolving, so it might be useful to check out some of these Fortran links.


        Some graphics is clearly better than none and many years ago I selected the graphics package that appeared for the first time with Microsoft Fortran 5.0 (MSF5). This was tied to the PC DOS/WIN world, but worked well enough.  It also turned out to be a good choice since it is available in only a moderately changed form. Further development has been to use these graphics in programs requiring a lot of memory, and the solution came with Microsoft PowerStation Fortran 1.0 (MSPS1). For the NT/WIN95+ systems the same graphics became available in Microsoft PowerStation 4.0 (MSPS4). Microsoft then sold off its Fortran to DIGITAL who were, in turn, acquired by COMPAQ.   This Fortran then became Compaq Visual Fortran. With time, another change of ownership took place, and the current version is under the INTEL brand name. Various evolutionary milestones and compatibility issues are described below:

        MSF5 (Microsoft Fortran 5): The resulting code was quite troublefree, but it had to be run in a full-screen MS-DOS window (or just DOS). Programs used only the low DOS memory, so could not be too large and screen resolutions higher than VGA were not supported. This version was the only one tested on an Apple (PowerMac) and worked very acceptably on the W3.0 emulator found there, and was able to run on PC's ranging from 286/Hercules to PIV/Windows 2000+.

        MSPS1.0 (Microsoft PowerStation Fortran 1): Programs gained access to much more memory and to resolutions higher than the VGA. Full screen operation was still by far the best mode, although (extremely slow) operation in a window was possible. A 32-bit DOS extender, DOSXMSF.EXE, was required and the programs were best launched from DOS. For W95/W98 it was necessary to block detection of Windows from DOS, which was done in the properties/advanced section of the MS-DOS window. Furthermore resolutions higher than VGA, which worked fine within Windows 3.1, were subject to various problems in Windows 95+. Also compilation with the optimization options was prone to produce code that crashed very nicely.
        This was for a long time the preferred version, up to the moment when portability problems became serious. It was necessary to use the DOSXMSF.EXE extender (and the associated DOSXNT.386).  The legalese concerning its availability was not clear.but it seemed to be bundled with many packages put out on the web.

        MSPS4.0 (Microsoft PowerStation Fortran 4): This produced native NT/W95+ applications which was fine, although recompilation of older code with minimal modifications gave results that were inferior in many respects to the code from MSPS1.0. In addition there were many evident bugs in the compiler.

        CVF6 (Compaq Visual Fortran 6): This turned out to be a much more reliable implementation of Fortran for the Windows environment, and most of the old graphics inherited from the MSF5.0 still worked. The OpenGL graphics (available since MSPS4.0) were well documented and were enticing, but never tested. Much of the behaviour suspect with MSPS4.0 has been understood. Many of the changes since MSPS4.0 had the robust feeling of DEC Fortran about them, and there has been useful manufacturer support for this version.
        The downsides were relatively few, one being that links with the past had to be broken as the executables would no longer run in Windows 3.x or clean MS-DOS. Also the executables have become three times larger, and the graphics was many times slower than with MSPS1.  Fortunately, those drawbacks were more than adequately compensated for by advances in the hardware. Finally the number of changes in the code were just too many to keep a single source running on all available systems.  Older graphics versions of my programs were thus successively discontinued. The CVF6.6B compiler was, for quite a few years, the preferred version.

        IVF9.1 (Intel Visual Fortran Compiler for Windows): The CVF compiler was taken over by Intel, while maintaining backward compatibility. This particular version was used for continuation of the development of the graphics oriented programs on this site.

        IVF12.1 (Intel Fortran Compiler for Windows): This is the latest incarnation  of this indestructible compiler (as of Nov2011, the time of this update). The compiler has been rebranded as Intel Visual Fortran Compiler XE 2011, and is part of the Intel Parallel Composer XE package.  The internal version numbering still goes back to the Microsoft Powerstation Fortran.
        There is one important change that took place during the update process of this package. Subversions up to and including Update 5 were based on Microsoft Visual Studio 2008 Shell, whereas from Update 6 these are based on the Microsoft Visual Studio 2010 Shell.  The two shells are integrated with different versions of Microsoft .NET Framework (3.5 and 4, respectively) and compile with rather different libraries.  Executables of graphics programs produced with the VS2010 Shell no longer work on Windows 2000 systems (as seen on Pro and Server versions).  Fortunately, if you have the VS2008 shell already installed, the upgrading process updates the Fortran also in this shell.  Thus the Fortran 12.1.1 subversion out of Update 7, when compiled within the VS2008 shell, will still run on W2000 systems. It is true that these systems are largely obsolescent but the VS2008 shell route will be maintained for some time.

       As a recap: the ownership trail for this compiler is quite spectacular being  MICROSOFT->DEC->COMPAQ(+HP)->INTEL


  Notes on gle

        Many of the graphics programs on this site, in particular those from the AABS and RECSPE packages, and PMIFST, produce high-quality printouts by outputting files for gle, which can then generate PostScript, EPS or PDF output.

        gle stands for graphics layout engine, and was originally written by Chris Pugmire in the early 1990's. This is a freely available program and its appeal for many computer users is that the control file for the drawing is plain ASCII, so it can be manipulated with any editor. The language is fairly straightforward, yet powerful, so that very sophisticated diagrams can be created in a completely transparent manner. You can peruse these background notes on gle, for additional  historical information.

        It is recommended that you install the currently available version of  gle (gle v.4.2 or above), since this comes with a very useful QGLE viewer/WYSIWYG editor.  You also need to preinstall the GSview/Ghostscript package. After successful installation all you need to do is to click on any  .gle file to view the diagram in QGLE, and proceed from there.  Thus, if you want to obtain a PDF diagram from, say ASCP_L, first generate the appropriate files using the G option of ASCP_L. This will produce several files, only one of which has the extension .gle.  Once that file is loaded into QGLE you can use one of the many export options in File menu of that program.

        The programs on this website mostly stick to the script standard of the 4.0.7 subversion of gle, which was completely backward compatible.  In the current versions some of those scripts may suffer from a small change in the placement of the diagram on the page, which can be remedied by enclosing all of the lines in the script that follow the size command into a translate block:

        begin translate xx yy
        end translate

where xx and yy are shift parameters in cm units. It is also recommended that you set the script version indicator in QGLE to 3.5 (in the top right subwindow on the taskbar).

        gle and the Polish alphabet: 

        It is clearly an advantage to use WYSIWYG character input if annotations in various national characters are desired in gle diagrams.  The variations in Windows installations and application programs do not allow a simple general rule to be given.  The two worked examples given below for the Polish language illustrate the possible techniques and can be modified as necessary:

  • input in the national code-page and annotations generated via TEX: annotated gle script and its pdf output
        Please note that whether you see anything understandable in the positions of the Polish letters in these scripts will depend on your browser and its settings.
Institute of Physics, Polish Academy of Sciences
This site is subject to continuous modification...

Use the refresh option of your browser to make sure you are reading the current version.