Commit b05dba19 authored by Adam Caprez's avatar Adam Caprez
Browse files

Merge branch 'lis' into 'master'

Add page for building LIS.

See merge request !303
parents c690b5e6 e038873b
+++
title = "Building LIS"
description = "How to build NASA LIS on HCC resources."
+++
The [NASA LIS](https://lis.gsfc.nasa.gov/) (Land Information System) software is a framework
for high performance terrestrial hydrology modeling and data assimilation developed with the
goal of integrating satellite and ground-based observational data products and advanced modeling
techniques to produce optimal fields of land surface states and fluxes.
The software suite consists of three modeling components: (1) Land surface Data Toolkit (LDT),
a formal environment that handles the data-related requirements of LIS including land surface
parameter processing, geospatial transformations, consistency checks, data assimilation preprocessing,
and forcing bias correction, (2) Land Information System (LIS), the modeling system that encapsulates
physical models, data assimilation algorithms, optimization and uncertainty estimation algorithms, and
high performance computing support, and (3) Land surface Verification Toolkit (LVT), a formal model
verification and benchmarking environment that can be used for enabling rapid prototyping and
evaluation of model simulations by comparing against a comprehensive suite of in-situ,
remote sensing, and model and reanalysis data products.
## Building LIS
Due to the way LIS operates, users are expected to compile it themselves on HCC resources.
To simplify this process as much as possible, HCC provides an `LIS` module which loads all of
the needed dependency packages and sets up the build environment. Example outputs showing the
correct choices for the `configure` scripts are also provided.
{{% notice warning %}}
The `LIS` module sets the `LIS_`/`LDT_`/`LVT_` build variables to their proper values. Users should
not set these varibles themselves, nor modify their `~/.profile` files.
{{% /notice %}}
The following sections assume you have downloaded one of the LIS [releases](https://lis.gsfc.nasa.gov/releases)
and unpacked it somewhere with sufficient space to work. All commands in each section are run
starting relative to the top-level directory, denoted here as `<LIS root`>.
### Building LDT
The following example commands show how to compile the Land surface Data Toolkit (LDT).
{{% panel theme="info" header="Building LDT" %}}
{{< highlight bash >}}
[demo01@login.crane LISF_public_release_7.3.3]$ ls
docs env ldt LICENSE.txt lis lvt README.adoc
[demo01@login.crane ldt]$ module purge
[demo01@login.crane ldt]$ module load compiler/intel/19 openmpi/4.0 LIS/7.3
This module loads the LIS suite (lis,lvt,ldt) build environment.
Users are expected to compile LIS themselves.
For convenience, example outputs from the configure scripts showing the proper choices are provided by the following variables:
$LIS_CONFIG_OUT, $LVT_CONFIG_OUT, $LDT_CONFIG_OUT
To view, use the cat command, i.e. 'cat $LIS_CONFIG_OUT'
[demo01@login.crane ldt]$ make -C make realclean
make: Entering directory '/lustre/work/demo/demo01/LISF_public_release_7.3.3/ldt/make'
Makefile:50: configure.ldt: No such file or directory
make: *** No rule to make target 'configure.ldt'. Stop.
make: Leaving directory '/lustre/work/demo/demo01/LISF_public_release_7.3.3/ldt/make'
[demo01@login.crane ldt]$ ./configure
------------------------------------------------------------------------
Setting up configuration for LDT
Parallelism (0-serial, 1-dmpar, default=0): 1
Optimization level (-3=strict checks with warnings, -2=strict checks, -1=debug, 0,1,2,3, default=2): 2
Assume little/big_endian data format (1-little, 2-big, default=2): 2
Use GRIBAPI/ECCODES? (0-neither, 1-gribapi, 2-eccodes, default=2): 2
NETCDF version (3 or 4, default=4)?: 4
NETCDF use shuffle filter? (1-yes, 0-no, default = 1): 1
NETCDF use deflate filter? (1-yes, 0-no, default = 1): 1
NETCDF use deflate level? (1 to 9-yes, 0-no, default = 9): 9
Use HDF4? (1-yes, 0-no, default=1): 1
Use HDF5? (1-yes, 0-no, default=1): 1
Use HDFEOS? (1-yes, 0-no, default=1): 1
Enable GeoTIFF support? (1-yes, 0-no, default=1): 1
Enable LIBGEOTIFF support? (1-yes, 0-no, default=1): 1
Include date/time stamp history? (1-yes, 0-no, default=1): 1
-----------------------------------------------------
configure.ldt file generated successfully
-----------------------------------------------------
Settings are written to configure.ldt in the make directory.
If you wish to change settings, please edit that file.
To compile, run the compile script.
------------------------------------------------------------------------
[demo01@login.crane ldt]$ ./compile -j 4
-------------------------------------------------------------------
Compiling LDT
[INFO] Compiling LDT source code
...
<intermediate output omitted for clarity>
[INFO] Compile finished
-------------------------------------------------------------------
[demo01@login.crane ldt]$ ls
ANNdata compile configure DAobs interp lib make MetforcScale plugins statDscale USAFSI
arch configs core domains LDT main metforcing params runmodes testcases utils
{{< /highlight >}}
{{% /panel %}}
If the build finishes successfully there will be no error messages and the `LDT` program will be present
in the directory.
### Building LIS
The following example shows how to compile LIS (Land Information System).
{{% panel theme="info" header="Building LIS" %}}
{{< highlight bash >}}
[demo01@login.crane lis]$ module purge
[demo01@login.crane lis]$ module load compiler/intel/19 openmpi/4.0
[demo01@login.crane lis]$ module load compiler/intel/19 openmpi/4.0 LIS/7.3
This module loads the LIS suite (lis,lvt,ldt) build environment.
Users are expected to compile LIS themselves.
For convenience, example outputs from the configure scripts showing the proper choices are provided by the following variables:
$LIS_CONFIG_OUT, $LVT_CONFIG_OUT, $LDT_CONFIG_OUT
To view, use the cat command, i.e. 'cat $LIS_CONFIG_OUT'
[demo01@login.crane lis]$ make -C make realclean
make: Entering directory '/lustre/work/demo/demo01/LISF_public_release_7.3.3/lis/make'
grep: LIS_misc.h: No such file or directory
Makefile:61: configure.lis: No such file or directory
make: *** No rule to make target 'configure.lis'. Stop.
make: Leaving directory '/lustre/work/demo/demo01/LISF_public_release_7.3.3/lis/make'
[demo01@login.crane lis]$ ./configure
------------------------------------------------------------------------
Setting up configuration for LIS
Parallelism (0-serial, 1-dmpar, default=1): 1
Optimization level (-3=strict checks with warnings, -2=strict checks, -1=debug, 0,1,2,3, default=2): 2
Assume little/big_endian data format (1-little, 2-big, default=2): 2
Use GRIBAPI/ECCODES? (0-neither, 1-gribapi, 2-eccodes, default=2): 2
Enable AFWA-specific grib configuration settings? (1-yes, 0-no, default=0): 0
Use NETCDF? (1-yes, 0-no, default=1): 1
NETCDF version (3 or 4, default=4): 4
NETCDF use shuffle filter? (1-yes, 0-no, default = 1): 1
NETCDF use deflate filter? (1-yes, 0-no, default = 1): 1
NETCDF use deflate level? (1 to 9-yes, 0-no, default = 9): 9
Use HDF4? (1-yes, 0-no, default=1): 1
Use HDF5? (1-yes, 0-no, default=1): 1
Use HDFEOS? (1-yes, 0-no, default=1): 1
Use MINPACK? (1-yes, 0-no, default=0): 1
Use LIS-CRTM? (1-yes, 0-no, default=0): 0
Use LIS-CMEM? (1-yes, 0-no, default=0): 0
Use LIS-LAPACK? (1-yes, 0-no, default=0): 1
Use LIS-MKL-LAPACK? (1-yes, 0-no, default=0): 1
-----------------------------------------------------
configure.lis file generated successfully
-----------------------------------------------------
Settings are written to configure.lis in the make directory.
If you wish to change settings, please edit that file.
To compile, run the compile script.
------------------------------------------------------------------------
[demo01@login.crane lis]$ ./compile -j 4
-------------------------------------------------------------------
Compiling LIS
[INFO] Compiling LIS source code
...
<intermediate output omitted for clarity>
[INFO] Compile finished
-------------------------------------------------------------------
[demo01@login.crane lis]$ ls
apps compile configure dataassim forecast irrigation LICENSES make offline params RESTRICTED rtms surfacemodels utils
arch configs core domains interp lib LIS metforcing optUE plugins routing runmodes testcases
{{< /highlight >}}
{{% /panel %}}
If the build finishes successfully there will be no error messages and the `LIS` program will be present
in the directory.
### Building LVT
The following example commands show how to compile the Land surface Verification Toolkit (LVT).
{{% panel theme="info" header="Building LVT" %}}
{{< highlight bash >}}
[demo01@login.crane LISF_public_release_7.3.3]$ ls
docs env ldt LICENSE.txt lis lvt README.adoc
[demo01@login.crane LISF_public_release_7.3.3]$ cd lvt
[demo01@login.crane lvt]$ module purge
[demo01@login.crane lvt]$ module load compiler/intel/19 openmpi/4.0 LIS/7.3
This module loads the LIS suite (lis,lvt,ldt) build environment.
Users are expected to compile LIS themselves.
For convenience, example outputs from the configure scripts showing the proper choices are provided by the following variables:
$LIS_CONFIG_OUT, $LVT_CONFIG_OUT, $LDT_CONFIG_OUT
To view, use the cat command, i.e. 'cat $LIS_CONFIG_OUT'
[demo01@login.crane lvt]$ make -C make realclean
make: Entering directory '/lustre/work/demo/demo01/LISF_public_release_7.3.3/lvt/make'
Makefile:50: configure.lvt: No such file or directory
make: *** No rule to make target 'configure.lvt'. Stop.
make: Leaving directory '/lustre/work/demo/demo01/LISF_public_release_7.3.3/lvt/make'
[demo01@login.crane lvt]$ ./configure
------------------------------------------------------------------------
Setting up configuration for LVT
Optimization level (-3=strict checks with warnings, -2=strict checks, -1=debug, 0,1,2,3, default=2): 2
Assume little/big_endian data format (1-little, 2-big, default=2): 2
Use GRIBAPI/ECCODES? (1-gribapi, 2-eccodes, default=2): 2
Use NETCDF? (1-yes, 0-no, default=1): 1
NETCDF version (3 or 4, default=4): 4
NETCDF use shuffle filter? (1-yes, 0-no, default = 1): 1
NETCDF use deflate filter? (1-yes, 0-no, default = 1): 1
NETCDF use deflate level? (1 to 9-yes, 0-no, default = 9): 9
Use HDF4? (1-yes, 0-no, default=1): 1
Use HDF5? (1-yes, 0-no, default=1): 1
Use HDFEOS? (1-yes, 0-no, default=1): 1
Enable AFWA-specific grib configuration settings? (1-yes, 0-no, default=0): 0
Enable GeoTIFF support? (1-yes, 0-no, default=1): 1
Use MATLAB support? (1-yes, 0-no, default=0): 0
-----------------------------------------------------
configure.lvt file generated successfully
-----------------------------------------------------
Settings are written to configure.lvt in the make directory.
If you wish to change settings, please edit that file.
To compile, run the compile script.
------------------------------------------------------------------------
[demo01@login.crane lvt]$ ./compile -j 4
-------------------------------------------------------------------
Compiling LVT
[INFO] Compiling LVT source code
...
<intermediate output omitted for clarity>
[INFO] Compile finished
-------------------------------------------------------------------
[demo01@login.crane lvt]$ ls
arch compile configs configure core datastreams domains interp LVT main make metrics plugins runmodes testcases training utils
{{< /highlight >}}
{{% /panel %}}
If the build finishes successfully there will be no error messages and the `LVT` program will be present
in the directory.
## Running LIS
Example scripts for running LIS/LVT/LDT are provided [here](https://github.com/unlhcc/job-examples/tree/master/LIS).
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment