Latest: GEIHIT v3.11 (05AUG15)




geihit is a FORTRAN77 program to convert GEISA 2011 spectroscopic data (including GEISA-IASI 2011) into HITRAN format.

GEISA data is available from

Since most of the 'essential' parameters for radiative transfer modelling are the same in GEISA and HITRAN this doesn't involve anything too complicated, but the follwing adjustments are made by geihit

Note that this version of program won't work on the older GEISA 2003 or 2009 formats, although would probably only require minor modifications.

Installing geihit

First download the source code: [geihit.f]

Then compile with any FORTRAN77 compiler, eg

f77 geihit.f -o geihit

Running geihit

To run the program, simply type geihit and respond to the prompts.

A typical run might be (user responses in bold)

R-GEIHIT: Running program GEIHIT v3.10
GEISA 2011 input file [ <CR> for GEISA-IASI]: line_GEISA2011_asc_gs08_v1.0
HITRAN output file: geisa.par
Include non-HITRAN mol/iso? (Y/N) [ <CR>=N]: <CR>
W-HITMOL: Ignoring GEISA Mol,Iso=HNC 142
W-HITMOL: Ignoring GEISA Mol,Iso=HCN 224
I-GEIHIT: Line# 100000 7.231653 [cm-1]
I-GEIHIT: Line# 200000 11.075480 [cm-1]
I-GEIHIT: Line# 300000 15.073768 [cm-1]
I-GEIHIT: Line# 400000 22.258057 [cm-1]
I-GEIHIT: Line# 500000 32.565403 [cm-1]
I-GEIHIT: Line# 600000 48.828850 [cm-1]
I-GEIHIT: Line# 700000 103.794296 [cm-1]
W-HITMOL: Assigning HITRAN Mol,Iso ID=43 1 to GEISA Mol,Iso=C4H2 211
W-HITMOL: Ignoring GEISA Mol,Iso=C2N2 224
I-GEIHIT: Line# 800000 256.960790 [cm-1]
W-GEIHIT: 288.912585 [cm-1] C3H4 line skipped - no air half-width data
W-GEIHIT: 289.465330 [cm-1] C3H4 line skipped - no air half-width data
W-GEIHIT: 290.017828 [cm-1] C3H4 line skipped - no air half-width data
W-WRITEW: Further similar messages suppressed
W-HITMOL: Assigning HITRAN Mol,Iso ID=26 3 to GEISA Mol,Iso=C2HD 122
STOP R-GEIHIT: Successful completion statement executed

The program takes a few minutes to complete.


  1. The first line tells you which version (3.10) of the program is being executed
  2. Then follows the dialogue which asks for
    1. GEISA filename. If you want to use GEISA-IASI data, then type <CR> here and it will prompt you for a GEISA-IASI filename - see GEISA v GEISA-IASI below.
    2. HITRAN-type output filename
    3. Whether you want to include additional molecules and isotopologues in the output which are not standard in HITRAN 2012 (type 'Y' or 'y' if 'yes', anything else, including <CR> in this case, interpreted as 'no').
  3. The program then prints a series of progress/warning messages which will be one of the following
    W-HITMOL: Ignoring GEISA Mol,Iso=...
    line is ignored since either the molecule (eg HNC) or isotopologue (eg HCN 224) is not within the HITRAN 2012 definition
    I-GEIHIT: Line# ...
    a progress message every 100 000 input lines, with the associated wavenumber
    W-HITMOL: Assigning HITRAN Mol,Iso ID= ...
    An internal geihit assignment of HITRAN code (see HITRAN 2012 molecules below).
    W-GEIHIT: ... [cm-1] ... line skipped - no air half-width data
    No air-broadened half-width data so the line was ignored
    W-WRITEW: Further similar messages suppressed
    An internal check to limit the number of identical warning messages written to the terminal
  4. The program should end with STOP R-GEIHIT: Successful completion statement executed


There are two types of GEISA 2011 data: the standard data and IASI-specific data. The data formats are the same but GEISA-IASI is limited to a narrower spectral region (599-3001 cm-1 instead of 0-35877 cm-1) and has fewer molecules (20 instead of 50).

But ...

the GEISA-IASI molecule IDs #11-20 are re-defined eg ID=11 identifies NH3 in GEISA, but HNO3 in GEISA-IASI (see GEISA 2011 molecules v GEISA-IASI 2011 molecules). I assume it's because they wanted all the molecules in GEISA-IASI to be numbered consecutively 1-20 but it seems a bit of an unnecessary hazard for data users.

Anyway, geihit has separate prompts for entering GEISA or GEISA-IASI filenames so that it knows which set of molecule IDs it's dealing with.

Note that the GEISA list of 'molecules' includes some isotopologues with separate molecule IDs, eg CH3D is ID=30 (with associated isotopologues 212 and 312, ie 12C and 13C variants), while CH4 is ID=6 (with the same carbon variants 211 and 311). I assume this is to avoid ambiguities in the isotopologue notation of molecules containing carbon and deuterium (both identified by digit '2').

HITRAN 2012 Molecules

In most cases the GEISA format contains the equivalent HITRAN molecular and isotopologue ID, with values of -9 and 0 for molecules and isotopologues which are not recognised by HITRAN. However GEISA 2011 doesn't know about the additions for HITRAN 2012 so the geihit program, and specifically the subroutine HITMOL, checks all these undefined cases and defines HITRAN indices for the following GEISA molecule, isotopologue combinations
Molec Iso Mol# Iso#
New Isotopologues in HITRAN 2012
C2HD 122 26 3
*CO2 838 2 10
New Molecules in HITRAN 2012
C4H2 211 43 1
HC3N 124 44 1
*An additional modification is that HITRAN 2012 reassigned the CO2 838 as isotopologue#10 (previously #9), inserting CO2 827 as the new #9 (see
HITRAN web-page, and specifically the footnote). Here the subroutine HITMOL changes the GEISA isotopologue assigment from 9 to 10 (GEISA itself does not include CO2 827).

If you type 'Y' to the prompt for new molecules,isotopologues the following assignments are made. HITRAN 2012 defines molecule indices #1-47 and new molecules assigned by geihit are arbitrarily numbered from #51 onwards. The HITRAN isotopologues numbers are in decreasing order of abundance (#1 being the most abundant) so the new Isotopologue numbers simply extend the currently defined HITRAN list
Molec Iso Mol# Iso#
New Isotopologues for standard HITRAN molecules
N2O 556 4 6
N2O 458 4 7
N2O 548 4 8
OCS 634 19 5
HCN 224 23 4
New Molecules
GeH4 411 51 1
C3H8 221 52 1
C2N2 224 53 1
C3H4 341 54 1 NB: all C3H4 lines in GEISA 2011 are excluded due to lack of half-width data
HNC 142 55 1
C6H6 266 56 1

If you want to change the behaviour of geihit so that it assigns different HITRAN indices, just follow the pattern in the HITMOL subroutine.

HITRAN 2012 Fields

The following table summarises how geihit derives the HITRAN fields [format] from GEISA data [format], including handling of GEISA missing data flags
Parameter Format GEISA Source & Modifications Missing data
Molecule# I2 Field K Add # if new HITRAN 2012 molecule, else discard line
Isotopologue# I1 Field L Add # if new HITRAN 2012 isotopologue, else discard line
Wavenumber F12.6 Field A Discard line
Intensity 1PE10.3 Field B truncated by 1 digit Discard line
Ein. A Coeff 1PE10.3 Field M Copied ("-9.999E-01")
Air Half-Width F5.3/F5.4 Field C truncated by 1 digit if >= 1.0 Discard line
Self Half-Width F5.4/F5.3/F5.2 Field N truncated by 1,2 digits if >=1,10 Set to Air Half-Width
Lower Energy F10.4 Field D Set to HITRAN bad value -1.0000
T-Coeff F4.2 Field F Discard line
Pressure Shift F8.6/F8.5 Field O truncated by 1 digit if >=10 Copied (".000000") - equivalent to no pressure shift
Upper Vib A15 Field E1, compressed by removing blanks Copied
Lower Vib A15 Field E2, compressed by removing blanks Copied
Upper Rot A15 Field E3 Copied
Lower Rot A15 Field E4 Copied
Error Codes 6I1 Fields A',B',C',N',F',O' converted to HITRAN codes Set HITRAN codes 0 (=unreported)
Ref Codes 12X [set blank]
Line Mixing 1X [set blank]
Upper Wgt F7.1 [set 0.0]
Lower Wgt F7.1 [set 0.0]

Version History

v1.00 (14OCT00)
Original code.
v2.00 (20DEC07)
Convert GEISA 2003 to HITRAN 2004
v2.10 (15DEC09)
Also convert GEISA 2009 to HITRAN 2004
v3.00 (30AUG13)
Rewritten for GEISA 2011 to HITRAN 2012.
v3.10 (30SEP13)
Add option to write non-standard HITRAN molecules, isotopologues
v3.11 (05AUG15)
Change '$' in WRITE statements to avoid gfortran warnings