Contents
LNFL converts an ASCII line file parameter database (available at RTWeb) to the unformatted binary the LBLRTM expects as input. This is called a TAPE3
.
If any build or run issues occur, please create an issue or contact the AER-RC Group.
Assuming the output directory should be LNFL
:
git clone --recursive [email protected]:AER-RC/LNFL.git
--recursive
is important, because this repository is linked with our common FORTRAN modules repository that are required in the model builds. If this keyword is forgotten, one can do:
git submodule init
git submodule update
in the LNFL
directory.
Currently, the latest release is LNFL v3.2, 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 v3.2
tag:
git checkout tags/v3.2
No releases before v3.2 are available via GitHub, but they can be requested by emailing [email protected]. For information on previous releases, please visit the What's New Wiki page.
Instead of cloning, users can also download an LNFL tarball and unpack it:
tar xvf lnfl_v3.2.tar.gz
mv LNFL-3.2/ lnfl
Though not necessary, the move to lnfl
is for consistency with previous release packages and the associated documentation.
If users would like to bypass having to setup and build LNFL on their own and have Docker installed on their system, they can use the Docker Hub image for LNFL that the AER-RC group has made publicly available. Alternatively, the same image is available in the LNFL GitHub Packages. To run an LNFL container with the image (only one pull
is necessary):
docker pull aerradclim/lnfl # from Docker Hub
docker tag aerradclim/lnfl lnfl
docker pull docker.pkg.github.com/aer-rc/lnfl/lnfl:latest # from GitHub
docker tag docker.pkg.github.com/aer-rc/lnfl/lnfl:latest lnfl
docker run --name lnfl --rm -v ~/Work/RC/TAPE5_2000-3250:/LNFL/TAPE5 -v ~/Work/RC/LNFL_output:/LNFL/LNFL_Out lnfl
Not all of the arguments in the previous code snippet are required. A simple docker run aerradclim/lnfl
will suffice, but the user would not be providing any inputs or getting any outputs. Consequently, there are two "volume mounts" -- one for the only LNFL input (the TAPE5), and one for the outputs. The former is a single file, and the latter is a directory. In volume mounts, the path on the left side of the :
is with respect to the "host" (i.e., the local machine of the user), and the path to the right of the :
is the path inside the container. LNFL users should alter their host paths accordingly. Host paths should be absolute and not relative. The output directory should already exist on the host, otherwise it will be written as root and the files underneath it will only be accessible by root. BOTH VOLUME MOUNTS ARE NECESSARY TO RUN THE MODEL AND RETRIEVE ITS OUTPUT. The image name -- lnfl
-- is the final argument in the call and is required.
The following are optional container arguments:
--name
: name of the container--rm
: removes container after LNFL is finished running and staging outputs
LNFL has been built extensively only in single precision. It is not recommended that users attempt to build in double precision. To start, descend into the build
directory:
cd build
make -f make_lnfl $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 |
LNFL now accommodates the 160 character .par
format adopted for HITRAN_2004. However, the default format for LNFL will remain the 100 character format. The rationale for this choice is that the vibrational data as stored in the 100 character format is more amenable to utilization in LBLRTM, particularly for LBLRTM Non-LTE calculation than that associated with the 160 character format for which the vibrational information had been expanded to facilitate association of the lines with the quantum mechanical vibrational designations.
The capability to accommodate the 160 character format is restricted to TAPE1
. The TAPE2
files should be in 100 character format - you can generate this from the 160 character format by running LNFL with the 160 cahacter file as TAPE1
, and then use the 100 character TAPE7
file that LNFL produces as the TAPE2
for the next run.
A few notes:
-
To facilitate the change to HITRAN2004, some of the LNFL flags on Record 3 in older releases have been distributed to Records 3 and 4. On Record 3, the flags include those that are general for the LNFL run and those that are relevant to
TAPE1
. On Record 4, the flags include those relevant toTAPE2
only. -
The default for blocking has been changed. No blocking is now the default. Flags
NBLK1
andNBLK2
are no longer necessary and are ignored. -
The writing of internally stored line coupling information to
TAPE2
is no longer supported. Line coupling information may be included explicitly onTAPE1
orTAPE2
by the user. -
As of Dec. 2013, LNFL requires additional broadening parameter input files. These files are listed in the LNFL Inputs Section, and example files are included in the LNFL package. These files are only needed and used if the
IBRD
flag is set in theTAPE5
. -
As of Jan. 2015, LNFL allows one to specify the name of the ASCII line file at the command line rather than having to link it to
TAPE1
. For example, if one wanted to use aer_v_3.6 as the ASCII line file,lnfl_v3.1_linux_pgi_sgl aer_v_3.6
could be used at the command line.
File Name | Description |
---|---|
TAPE1 |
ASCII line file (e.g., HITRAN database) |
TAPE2 |
Supplemenatry ASCII Line File to be merged with TAPE1 |
TAPE5 |
LNFL Input File |
co2_co2_brd_param |
CO2 self broadening parameters |
co2_h2o_brd_param |
CO2 transitions broadened by H2O |
o2_h2o_brd_param |
O2 transitions broadened by H2O |
wv_co2_brd_param |
H2O transitions broadened by CO2 |
spd_dep_param |
Speed-dependent Voigt parameters |
Special reduced microwave ASCII line files, corresponding to the old spectral_lines.dat
of MonoRTM v4.2, are provided to be used as the TAPE1
inputs of MonoLNFL in the microwave. The calculational accuracy of these reduced line lists at any frequency between 0 and 899.4 GHz (0-30 cm-1) with respect to the corresponding full line list (aer_v_3.3) is:
- spectral_lines.dat.0_55.v5.0_fast: 0.1 K upwelling, 0.2 K downwelling
- spectral_lines.dat.0_55.v5.0_veryfast: 0.5 K upwelling, 1.0 K downwelling
A special reduced near-IR ASCII line file for the ASCENDS region (6300-6700 cm-1) containing the first 7 HITRAN molecules is also included (spectral_lines.dat.6300_6700.v5.0
). These line parameters are consistent with aer_v_3.2 and aer_v_3.3 (which are identical for wavenumbers greater than 55 cm-1). See files headers and MonoRTM v5.0 release notes for more details.
Users who wish to run MonoRTM v5.0 in other spectral regions should use the full AER line file (aer_v_3.5), with a caution that the full line file can take a long time to run.
TAPE2
must be in older 100 character HITRAN format.
Note that LBLRTM ignores the speed dependence parameters, but they are used by MonoRTM v5.0 and later.
Required (but ignored); 72 characters (formatted as 9 8-character strings, or 9A8
) of user identification; think of this record as a documentation comment
Required; Specifies the spectral range of the line file, with:
Variable Name | Column Number Range | String Format | Notes |
---|---|---|---|
vmin | 1-10 | F10.3 |
|
vmax | 11-20 | F10.3 |
|
Required; Specifies the molecules for which the line file is created and additional LNFL options
Variable Name | Column Number Range | String Format | Notes |
---|---|---|---|
MOLIND1 |
1-47 | 47I1 |
|
HOLIND1 |
52-100 | A49 |
|
Molecule Number N |
Species Chemical Formula | Molecule Number N |
Species Chemical Formula | Molecule Number N |
Species Chemical Formula | Molecule Number N |
Species Chemical Formula | Molecule Number N |
Species Chemical Formula | Molecule Number N |
Species Chemical Formula | Molecule Number N |
Species Chemical Formula |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | H2O | 2 | CO2 | 3 | O3 | 4 | N2O | 5 | CO | 6 | CH4 | 7 | O2 |
8 | NO | 9 | SO2 | 10 | NO2 | 11 | NH3 | 12 | HNO3 | 13 | OH | 14 | HF |
15 | HCl | 16 | HBr | 17 | HI | 18 | ClO | 19 | OCS | 20 | H2CO | 21 | HOCl |
22 | N2 | 23 | HCN | 24 | CH3Cl | 25 | H2O2 | 26 | C2H2 | 27 | C2H6 | 28 | PH3 |
29 | COF2 | 30 | SF6 | 31 | H2S | 32 | HCOOH | 33 | HO2 | 34 | O | 35 | ClONO2 |
36 | NO+ | 37 | HOBr | 38 | C2H4 | 39 | C3HOH | 40 | CH3Br | 41 | CH3CN | 42 | CF4 |
43 | C4H2 | 44 | HC3N | 45 | H2 | 46 | CS | 47 | SO3 |
Option | Description |
---|---|
LNOUT |
|
NOCPL |
|
NLTE |
|
REJ |
|
MRG2 |
|
F160 |
|
BLK1 |
|
EXBRD |
|
Required if MRG2
set in Record 3; TAPE2
molecules and options
Variable Name | Column Number Range | String Format | Notes |
---|---|---|---|
MOLIND2 |
1-47 | 47I1 |
|
HOLIND2 |
52-100 | A49 |
|
Option | Description |
---|---|
BLK2 |
|
F80 |
|
Required if line rejection option (REJ
) selected in Record 3
SR(M=1,NMOL)
: Strength rejection value for moleculeM
8E10.3
Format- lines with strength values less than
SR(M)
will not be included on LBLRTM line file (TAPE3
) - negative value for
SR(M)
uses internally stored default value based on tangent path through the Earth's atmosphere - a value of 0 for
SR(M)
implies no rejection for moleculeM
, all lines for that molecule are retained - values for
SR(M)
are relative to LBLRTM line strengths, which are equal to HITRAN strengths / ( v * (1-ev/kT)) NMOL
is 7 or the number of the highest molecule selected, whichever is larger
File Name | Description |
---|---|
TAPE3 |
Binary output file (input for LBLRTM and MonoRTM) |
TAPE6 |
Log file |
TAPE7 |
ASCII version of TAPE3 in older 100 character HITRAN format, does not include extra broadening parameters |