Atmospheric Modelling for ALMA


These pages are historical and document the software intended for use for ALMA during construction, commissioning and early operations. The software is still available and works as well as before, but:

If you are simply looking for an up-to-date software for atmospheric modelling for use in radio astronomy I would recommend you use Scott Paine’s “am” software


What is ATM?

ATM is a library of routines for modelling transmission of cm/mm/sub-mm wavelength radiation through the Earths atmosphere. It is designed to simulate both the absorption/emission of radiation and the dispersion (i.e., the frequency dependent refractive index of the atmosphere).

It is authored and maintained by Juan Pardo: see this home page.

What is the relationship between ALMA and ATM?

ATM will be used in certain calibration procedures of ALMA.

What is AATM?

AATM is a re-packaging of the version of ATM as used by the ALMA online calibration software “TelCal”. The aim is to track the official version in the CVS repository very closely.


The main reason for AATM is to bring the version of ATM used by ALMA to an as wide an audience as possible.

I hope this will be useful to both third parties for their own research and to us by allowing much more intense testing than we can do and by hearing from the community about any flaws or problems with the software. If you do find flaws please do write to me or somebody within the ALMA project.

The AATM package adds following small features to the CVS version of ATM to allow it to be better used by the public:

  • Packaging and public distribution as standard “.tar.gz” source packages
  • Clear, public, version numbering
  • A modern autoconf/automake based build and installation system
  • Reworked, hopefully clearer, example programs

But to re-iterate the basic library code is exactly the same as what is in the CVS repository.

Why “A”ATM?

ATM is a package most recently maintained and developed by Juan Pardo. I wanted to have a slightly different name in case Juan wants to release code under name “ATM” and then we have a name clash.


AATM is released to the public under the Gnu General Public License Version 3. The terms of the licence are described in file COPYING – please respect them.

AATM Download

Current version: V0.5

This version is available at:

Previous version: V0.4.3.1

This version is available at:

Previous version: V0.4.1

This version is available at:

Previous version: V0.4

This version is available at:

Previous version: V0.3

This version is available at:

The aim of this version is to achieve good synchronisation with the versioning of ATM as used inside TELCAL. This version of AATM therefore corresponds exactly to version on ATM-0_3_0 branch of the CVS, and will (I believe) be the same as what is used in ALMA 7.1.

Previous version: V0.2

This version is available at:

Previous version: V0.1 Please note this is a BETA version.

NEWS file extract:

Version 0.1


* Test programs dispersive and absorption now take into account the
  non-linearity in conversion of pwv to relative humidty. This
  resolves a small (~1%) problem with derivatives of path/absorption
  at high relative humidities.

* Test program "dispersive" now prints results with higher precision
  to allow more accurate derivative calculations


* ATMTemperature takes Faranhait as units (?)

* When fitting for coupling, there is a check that it doesn't exceed 1

* Removal of some dead code

* A number of functions in ATMProfile have been moved out-of-line and
  into the implementation file

* Algorigthm changes in ATMProfile

* Constructor in ATMPercent.cpp changed to reckognise the word "percent"

* Constructor in ATMOpacity changed to reckognise words neper

* Chnages to contructors in ATMLength

Previous version: V0.09

Previous V0.09 version of AATM: Please note this is a BETA version

This version has been released to work around a compiler bug on i686-apple-darwin9-g++-4.0.1.

NEWS file extract:

Version 0.09

Bug fixes:

* On certain compilers static const memebers in SMATest were not being
  compiled correctly, so replaced them with non-static members

Previous version: V0.08

This is version V0.08 of AATM:

NEWS file extract:

Version 0.08


Synchronised with the current version of ATM in the ALMA CVS
Trunk. Some changes that occurred due to this synchronisation:

* Some function names with "Wet" in their name changed to "H2O" in
  their name.

* File "ATMTypeName.h" has been removed -- no more class AtmosphereType

* Files ATMAtmosphereType.h and ATMAtmosphereType.cpp have been removed

* Fiels ATMType.h and ATMType.cpp have been removed

* Atmosphere types are now specified by an unsigned integer *only*.
  See AtmProfile::getAtmosphereType() for descriptions.


* Improvements to the test programs "dispersive" and "absorption"

Previous version: V0.07

AATM V0.07: aatm-0.07

NEWS file extract:

Version 0.07


* Use more modern boost autoconf macros which should make it easier to
  build on a variety of plotforms.

Previous version V0.06

AATM V0.06: aatm-0.06. Please note this is a BETA version.

Previous version: V0.05

The current version of AATM is V0.05: aatm-0.05. Please note this is a BETA version.

This is the first public release

AATM Examples

The examples below show how to calculate the path delay and absorption by the atmosphere