AER-RC / MT_CKD

AER continuum model for water vapor and other gases.
15 stars 10 forks source link
atmospheric-modelling continuum mt-ckd

Introduction

This repository contains code for the AER continuum used in LBLRTM and as a standalone model, MT_CKD. MT_CKD is an enhancement ot the original CKD model

LBLRTM uses the line parameters and MT_CKD continuum in its calculations. The models and data are thus linked. For the latest release, the relationships are:

LBLRTM Release MT_CKD Release Line File
v12.17 4.3 v3.8.1

If any build or run issues occur, please create an issue or contact the AER-RC Group.

Cloning the Latest Release

Assuming the output directory should be MT_CKD:

git clone --recursive git@github.com:AER-RC/MT_CKD.git

--recursive is important, because this repository is linked with our common FORTRAN modules repository that are required in the model builds. Because LBLRTM uses the continuum, it, too, is also added as a submodule and a couple of its source files link to the LBLRTM submodule (contnm.f90, lblparams.f90, phys_consts.f90, and planet_earth.f90). If this keyword is forgotten, one can do:

git submodule init
git submodule update

in the MT_CKD directory.

Currently, the latest release is MT_CKD_4.3, and it is recommended that this be the version that users clone and checkout (rather than the master branch). To do this, one needs to simply checkout the 4.3 tag:

git checkout tags/4.3

Instead of cloning, users can also download an MT_CKD tarball and unpack it:

tar xvf cntnm_4.3.tar.gz
mv MT_CKD-4.3 cntnm

Though not necessary, the move to cntnm is for consistency with previous release packages and the associated documentation.

Building

To build the continuum model:

cd MT_CKD/build
make -f make_cntnm $TARGET

The TARGET environment variable depends on the user's operating system, compiler, and desired precision. Available targets are:

Target Description Compiler
aixIBMsgl IBM/AIX OS using IBM fortran,single precision xlf90
linuxPGIsgl Linux OS using PGI fortran,single precision pgf90
linuxGNUsgl Linux OS using GNU fortran,single precision gfortran
linuxG95sgl Linux OS using G95 fortran,single precision g95
inuxINTELsgl Linux OS using Intel fortran,single precision ifort
mingwGNUsgl Windows unix shell environment using gfortran,single precision gfortran
osxABSOFTsgl Mac OS_X using Absoft Pro fortran,singleprecision f90
osxGNUsgl Mac OS_X using GNU fortran,singleprecision gfortran
osxIBMsgl Mac OS_X using IBM XL fortran,singleprecision xlf90
osxINTELsgl Mac OS_X using Intel fortran,single precision ifort
sunSUNsgl Sun/Solaris OS using Sun fortran,single precision sunf90
sgiMIPSsgl SGI/IRIX64 OS using MIPS fortran,single precision f90

Run Example

To run MT_CKD as a standalone program instead of in LBLRTM:

cd run_example/
ln -s ../cntnm_v4.3_linux_pgi_dbl cntnm # assuming v4.3 was built with PGI in double precision (linuxPGIdbl)
./cntnm (0, enter)

Push 0, then enter, and CNTNM.OPTDPT and WATER.COEF will be written to working directory. These can be compared with CNTNM.OPTDPT_mt_ckd_AER and WATER.COEF_mt_ckd_AER, which are included in version control and are considered the baseline calculations. They change with every release and will be updated accordingly.

For other runs of the continuum standalone program, the user can edit INPUT.example in the run_example directory.