npp97 / ULM

Unified Land Model

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

***** Release Notes - UW implementation of Noah model *****

Author: Ben Livneh, blivneh@hydro.washington.edu. Revised and extended the work 
	to devleop driver code for Noah and Sac by Ted Bohn, 
	tbohn@hydro.washington.edu. Land Surface Hydrology Group 
	(PI: Dennis Lettenmaier)
        Department of Civil and Environmental Engineering
        University of Washington, Seattle, USA

Date:   2006-Aug-10

Modified:
  2012-Jul-23 Updated ULM updates and runfiles				BL
  2008-May-12 Modified to reflect NOAH 2.8 update.			TJB


  The makefile in this directory is set up to compile ULM on hydra.
  In it's current form, the model expects subdaily forcings in netCDF fomat that
  include: downwelling sw, lw radiations, specific humidity, surface pressure,
  rainfall and snowfall rates, air temperature, and wind.
  There is a sample global file in this directory "ulm.input.template"
  where the strings that begin and end with "X" are those paths to be replaiced.
  Input data are the same as Noah + SAC with the exception of the "sac_const.txt"
  file. This file is different for ULM than for SAC. Please use the file in this 
  directory as the constants file for all basins: sac_const.txt
  In order to change which variables are output, please change the files:
  driver/OPEN_OUTPUT.f90 and driver/WRITE_OUTPUT.f90 and ensure that the 
  variable list match in both of these files.
  To run ULM, simply type the name of the executable followed by the global file
  e.g. % ulm ulm.input
  Further questions can be directed to blivneh@hydro.washington.edu
  A bug in the snow code was detected and fixed recently, however, should further
  issues arise we are interested to learn about them and fix them.

RCS Id: $Id: README.txt,v 1.2 2008/05/12 22:58:37 vicadmin Exp $
--------------------------------------------------------------------------------

This implementation of the Noah model was intended for use in both research and
production environments, with special emphasis on the ability to run multiple
hydrological models over the same domain and compare their results in a common
format.

As a result, the following features were needed:
  1. a common set of output variables among the models, chosen to be the ALMA
     convention
  2. a common output file format, chosen to be netCDF
  3. the ability to quickly prepare the model for a new domain or parameter set
     (especially important in ESP forecasting)

In addition, the ability to handle elevation bands within a grid cell was needed
to make Noah compatible with the other models.

The original base version of the model physics source code (the SFLX routine,
found in the "src/physics" directory) was Noah 2.7.1.  As NOAA/NCEP have
updated their version of SFLX, we have attempted to incorporate their latest
updates into our code base, keeping our version almost identical to theirs.
The current version of SFLX in our implementation is 2.8.

The bulk of the changes to the code were made in the i/o and pre-processing
code, found in the "src/driver" directory.  The i/o and preproc code began from
the NLDAS driver code; since then we have changed the files from fortran 77 to
fortran 90 to take advantage of dynamic array allocation (which allows us
to run the model over any arbitrary basin simply by feeding it new parameter
files, without needing to recompile the code with new array dimensions).

The implementation of elevation bands involves dividing the grid cell into
fractions ("bands"), representing quantiles of the cell's elevation
distribution.  Each band's temperature and precipitation are derived from
the grid cell average temperature and precipitation based on parameters from
the snowbands parameter file.  Each band's values of DQSDT2, TH2, SPFH_SAT,
and SPFH are modified accordingly, while the values of the other forcing
variables are held equal to the grid cell average values.  In addition, the
following state variables have an added "band" dimension:
  T1
  STC
  SMC
  SH2O
  CMC
  SNOWH
  SNEQV
  SNCOVR
  LSTSNW
The following derived quantities also have an added "band" dimension:
  CH
  CM
  ALB_TOT (albedo)
  SOLNET  (net solar radiation)
The outputs of the SFLX routine are aggregated over all elevation bands to give
average values for the entire grid cell.

One of the other models in our system here is the SAC/SNOW17 model, which needs
potential evapotranspiration supplied as an input.  The value output by Noah is
typically the used as the input to SAC/SNOW17.  Since this quantity is band-
dependent, and also must be available at the same time intervals as the forcing
data, we have modified Noah to output a separate PE file, containing PE as a
function of grid cell and band, at the time interval of the forcing data.

The driver code is set up to save a state (restart) file and end the simulation
when the end of the forcing file is reached.  This state file can be used as
the initial condition file for a new run using the next forcing file.

To compile the noah model, you may first need to edit src/makefile so that the
compiler is set to your system's fortran 90 (or later) compiler.  In addition,
you will need to have netCDF libraries installed on your system.  Then, simply
cd to the "src" directory and type "make".  You may then wish to copy the
executable "noah" to the "bin" directory (this insulates your working version
of noah from any development you might do in the "src" directory).

To run the noah model, first prepare a control file listing the names of the
necessary input files and the values of the run parameters (sample input files
and documentation should be available under the "data" directory in this
distribution).  If your current directory is the "bin" directory, and your
control file is located at /my_path/input.txt, simply type
  noah /my_path/input.txt
to run the model.  To create a log file, redirect the model's output from
stdout to a file:
  noah /my_path/input.txt > logfile.txt

About

Unified Land Model