Format for absorption cross-sections since GEISA-2015
1. Filename
In the spectral range WnMin – WnMax (cm-1). A compressed cross-section file is named “xxxx_rrrr_[yyyy]_tttt_pppp.asc.gz” where :
- xxxx represent the name of the molecule,
- rrrr the resolution in cm-1,
- yyyy the reference(s),
- tttt the temperature,
- pppp the pressure.
Example of a file name : cfc-14_00.01_[19]_216.00_005012.93.asc.gz
2. Header :
The nine first lines of each file define the header describing data parameters.

| Parameter | Molecule | Temp | Pressure | Resol | Ref | Nbline | WnMin | WnMax | 
| Fortran descriptor (values) | A20 | F6.2 | F9.2 | F8.4 | A15 | I9 | F11.4 | F11.4 | 
| Undefined values | -99999.99 | -9.99 | 
2.Data format :
For a given molecular species, each file describe absorption cross-section data corresponding to :
- a given temperature in K,
- a given pressure in Pa (which could be unknown),
- – a given resolution in cm-1 or nm (which could be unknown),
- some references.
| Parameter | Wavenumber (cm-1) | Absorption cross-section (cm2 mol-1) | 
| Field length | 13 | 11 | 
| Fortran descriptor | F13.6 | E11.3 | 
To see how to read the GEISA-2015 cross-section sub-database : read_geisa_Xcross_G15.f90
program read_geisa_Xcross_G15
! read the GEISA-2015 x-sections database
! compilation without specific options : ifort read_geisa_Xcross_G15.f90 -o read_geisa_Xcross_G15
! run : read_geisa_Xcross_G15 file_geisa_x-sections1, file_geisa_x-sections2, ...
!
integer nbr_pts
real wavenb, intensite
real T,P,resol,wavenb_min,wavenb_max
character*1 a1
character*15 reference
character*20 molecule
character*250 file_geisa_Xcross
nbfich=iargc()
do ifich=1,nbfich
   call getarg(ifich,file_geisa_Xcross)
   write(*,*) 'reading '//TRIM(file_geisa_Xcross)//' ...'
   open(10,file=file_geisa_Xcross,form='formatted',status='old')
   read(10,*)
   read(10,*)
   read(10,*)
   read(10,*)
   read(10,*)
   read(10,*) a1,molecule,T,P,resol,reference,nbr_pts,wavenb_min,wavenb_max
   write(*,'(A,1x,f6.2,1x,f9.2,1x,f8.4,A,i9,2f11.4)') molecule,T,P,resol,reference,nbr_pts,wavenb_min,wavenb_max
   read(10,*)
   read(10,*)
   read(10,*)
   do icpt=1,nbr_pts
      read (unit=10, fmt=*, IOSTAT=ios) wavenb, intensite
      if(icpt.eq.1) write(*,*) 'first point',wavenb, intensite
      if(icpt.eq.nbr_pts) write(*,*) 'last point',wavenb, intensite
   enddo
enddo
end
		