Calculating Absorption Bands of CO

The molecule carbon monoxide is a simple diatomic molecule with an even number of electrons. Its ground electronic state "X", has no unpaired electrons, so is a singlet state. Many of its excited electronic states are also singlet states, where the first of these is the "A" state.

This demonstration can be used to illustrate the different types of vibration and rotation transitions within the "X" state, within the "A" state, and between the "X" and "A" states, where in all cases transitions are from a lower to an upper state, and correspond to absorption. In addition to the default 12C16O isotopic version of CO, bands can be shown for other isotopic versions of CO.

On entering information in the form below, a display of the types of transitions is shown in the large display area, with the smaller display area to the lower left being used as a key to the types of transitions involved. More details are given below the form, and by mousing over the components in the form tool-tips are used to explain their functionalities.

Initial Electronic State     X:     A:     Initial Vibrational Level v":
Final Electronic State     X:     A:     Final Vibrational Level v':

Automatic Scaling:                                Carbon Isotope:
Manual Scaling: Oxygen Isotope:

Calculated Wavenumber in cm-1 Isotopic Shift of Minimum Maximum Number of
Minimum Maximum Band Origin Band Origin in cm-1  Scaled Scaled Intervals
Input Values in cm-1 Number of Maximum Number of
Minimum Maximum Intervals Strength Intervals

Temperature:         Boltzmann cut-off:


On loading/reloading the page, clicking "Submit" or "Reset", the width of the main display area is adjusted to fit in the window. By default the main display area is blank, the caption window showing the key is replaced by the "Show Caption" button, the initial and final electronic states are both "X", the initial vibrational level v" is set to 0 and the final vibrational level v' is set to 1, the 12C16O isotopic version of CO is selected, and automatic scaling is set. Also all inputs are cleared. When suitable input is specified and there are no errors, then when "Submit" is clicked, a band is plotted, together with a title on the plot specifying the band system and the isotopic version of CO, expressed in parentheses as the mass number of carbon and oxygen, respectively. By clicking "Reset" the page is set back to its default state.

As an experiment, the capability of downloaded a GIF image file is added. After creating an image, you can enter a filename without the ".gif" extension in the input field then click "Download", then a file with the ".gif" extention should be downloaded. Note that at the moment only the lines are saved in the image, without the axes, background, labels and other text. Also note that only GIF files are currently supported, and the browser you are using may not support this feature.

When calculating transitions within the "X" state, these are vibration-rotations in the IR. In absorption v' must always be larger than v" and the form prevents any values with v' ≤ v". The form also prevents unrealistically large values of v" and v'. The new HTML5 input type of "number" displays these input field as "spinners", and in conjunction with jQuery, is used to restrict the values used. However, Internet Explorer, at least for version 10 (IE10), displays these input fields as normal text fields into which the user has to enter the values. In that case a fall-back is provided by displaying a JavaScript alert message if one of the values of v" or v' is out of range. A realistic temperature between 100 and 5000 K must be entered together with the Boltzmann cut-off. The latter is used to limit the number of rotational lines calculated, and a recommended value is around 0.001. On clicking "Submit", starting with a Boltzmann factor of 1 for the initial rotational level J" = 0, calculations are performed with increasing J" and J' until the Boltzmann factor of the J" level drops below the cut-off, together with information on the number of lines drawn, see below.

The rotational selection rules for the "X" state are such that J' = J" ± 1 because the angular momentum quantum number Λ = 0 in both levels, there is no Q-branch with ΔJ = 0. When J' = J" + 1, i.e. ΔJ = +1, this corresponds to the R-branch plotted in yellow on the right, and when J' = J" − 1, i.e. ΔJ = −1, this corresponds to the P-branch plotted in cyan on the left. As J ≥ 0, for the P-branch, J" ≥ 1. The fictitious J' = J" = 0 transition is the band origin, which is shown as a dashed line in all browsers except for Internet Explorer. For some reason IE10 at least objects to dashed lines, so some conditional JavaScript compilation is used to test the browser, and if IE is used, a gray line is drawn instead. Nevertheless a warning is displayed at the top of the page for IE users. The caption identifies the P and R-branches, if they overlap, the overlapping lines are plotted in green, and the band origin. In addition to the graphics, the total number of lines drawn in the plot, and the number of lines drawn for each of the three branches is displayed in green, although for this system there are no Q-branch lines.

By default automatic scaling is used, and the input fields for manual scaling are disabled with red backgrounds. The minimum and maximum wavenumbers are calculated, and an algorithm is used to calculate the lower and upper limits for plotting that are rounded values with "nice" intervals for dividing up the range. The code was originally obtained in FORTRAN then converted to JavaScript here, see js/clscal.js. In addition to the results being plotted, the limits, band origin and the scaled values from clscal() are printed in blue below "Calculated Wavenumber in cm-1". The user inputs below the graphics use jQuery, see js/jquery-funs.js, to control the display.

If manual scaling input is required, the manual scaling radio button should be selected, then the scaling input fields are enabled with a green background. Realistic values should be entered in the first three input fields using the automatic scaling as a guide, thus automatic scaling should be initially selected. The number of intervals selected should match the limits in order to get useful divisions and labelling of the x-axis. After clicking "Submit", the newly scaled plot will be displayed, and the minimum scaled, maximum scaled, and number of intervals will be printed with a yellow background to show that these are the input values and have not been calculated. If at least one of the last two input fields are left blank, the default vertical scaling will be used. Note that the default maximum strength in 1.1 with 11 intervals to allow space for the title. If other scaling is required, a maximum strength of less than 1.1 with a suitable number of divisions should be used, but note that the plotted lines may run over the title. If a bad choice is made and no lines are drawn in the plotting range, a message is displayed in red in place of the information on the lines.

To select transitions between the "X" and "A" states, leave "X" as the initial state and select the "A" as the final state with the radio buttons below the display. Note that the form will not allow you to select the "A" as the initial state and the "X" as the final state. The X → A electronic transition is called the 4th Positive System and is in the UV. There are no restrictions of v" and v', as they are in different electronic states, but limits are set on their maximum values. Unlike the "X" state, the "A" state has an orbital angular momentum quantum number Λ = 1, and when ΔΛ ± 1, in addition to the P-branch with ΔJ = −1, and the R-branch with ΔJ = +1, there is strong Q-branch with ΔJ = 0, except that the transition J' = J" = 0 is always absent. Also note that for Λ > 0, the smallest value J can take for that state is Λ.

On clicking "Submit" with automatic scaling and the X → A electronic transition selected, a strong Q-branch is also plotted, and the caption is larger to show the Q-branch and any overlapping involving the Q-branch. The Q-branch alone is drawn in magenta, overlapping P and Q-branches are drawn in in blue, overlapping Q and R-branches are drawn in red, and all three overlapping branches are drawn in black. This in a way simulates absorption, as the three branches are drawn in the primary complementary colors of cyan, magenta and yellow, when added together for overlapping, the colors are in fact subtracted, yielding black if all three are subtracted. The user can of course select manual scaling as above, after using automatic scaling.

The final type of transitions are those within the excited "A" state. These are of academic interest as they have probably never been observed due to the very high excitation energies. Like the transitions within the "X" state, they should have vibration-rotations absorption in the IR. Also, like transitions within the "X" state, ΔΛ = 0, however, because Λ > 1 in both states, there will in fact be a weak Q-branch. The Boltzmann cut-off factor is based on the Boltzmann factor of the initial rotational level in the current vibrational level, regardless of how high the excitation energy is above the lowest rotational (J = 0) of the lowest vibrational level (v = 0) of the "X" state. The spectroscopic constants of the "X" and "A" states of CO were obtained from the book "Molecular Spectra and Molecular Structure - IV. Constants of Diatomic Molecules" by K .P. Huber and G. Herzber, Van Nostrand Reinhold Company (1979).

By default the bands of 12C16O are calculated. Other isotopes of carbon and oxygen can be selected from the number input fields as "spinners". As IE10 at least shows them as regular text inputs, the mass numbers of carbon and oxygen isotopes have to be entered by hand. For carbon only 12 and 13 are allowed, and for oxygen 16, 17, and 18 are only allowed. Any isotopic version other than 12C16O will cause an additional column to be displayed in the output table which will show the shift of the isotopically substituted band head in cm-1. After clicking "Submit" for a specified transition, the band will be shown as before, except that in addition to the band head, a fainter dashed line, or fainter gray line for IE10, will be displayed in the position corresponding to the band head of the 12C16O isotopic version, which gives an indication of the isotopic shift. The output table will show the shift, which will be positive when the band origin of the isotopically substituted molecule has a higher wavenumber than the corresponding 12C16O band origin, i.e. the latter will be drawn to the left, and negative when the wavenumber is lower than the corresponding 12C16O band origin, i.e. the latter will be drawn to the right. If the band origin of the 12C16O version is outside the plot, an arrow is displayed with the shift to indicate whether this is off to the left or right. By manually scaling, this can be displayed.

All the calculations are performed in JavaScript, namely calculating the energy levels in order to obtain the wavenumbers of the transitions and the Boltzmann factors, and the Hönl-London factors are calculated for singlet-singlet transitions with allowed values of J and ΔJ = 0, ± 1, and Λ and ΔΛ = 0, ± 1. JavaScript is also used to scale and generate the graphics using the HTML5 <canvas> tags, and some of the operations of the form components. jQuery is used to control the form components when the user changes radio buttons and changes the vibrational quantum numbers. As stated above, conditional JavaScript compilation is used to test for Internet Explorer, and if it is used, a warning message about possible problems is printed at the top of the page in connection with the new HTML5 input "number" type and some of the graphics. For development and debugging purposes, a test is also made to determine if jQuery has been loaded.

The demonstration application here has the spectroscopic constants of the "X" and "A" electronic states of CO "hard-wired" into the code. Improvements could be made by putting the spectroscopic constants of several electronic states of a number of diatomic molecules into a file or a database, then the user could select which transitions of which molecule he wants to display from a menu. When writing text to the <canvas> tag, unfortunately the HTML <sup> and <sub> tags do not work. The superscripts used here for the state designation were obtained from a Unicode list, but they do not work properly for prefixing the mass numbers of isotopes, so the numbers are given in parentheses.

Click here to return to the main selection page.