Skip Navigation Links www.nws.noaa.gov
NOAA logo - Click to go to the NOAA homepage National Weather Service NWS logo - Click to go to the NWS homepage
EMC Logo
Navigation Bar Left Cap Home News Organization
Navigation Bar End Cap

         MISSION / VISION    |    About EMC

EMC > NEMS > RUNNING NEMS
NOAA Environmental Modeling System

Running NEMS



This page is meant to guide you in setting up and running experiments for the different models within NEMS. If you are interested in starting out with regression tests, please refer to 'Getting Started' . Bear in mind that, currently, there is no simplified way of running the NMM-B or GFS individually. It may require changes to the regression test script (RT.sh), the ability to recognize other files involved, creation of your own run scripts, and the creation of your own compatible input files.



Libraries & Dependencies


Currently, NEMS requires the following external libraries to be installed on the system in order to run properly.
  • ESMF versions 3.1.0rp2 and 5.2.0rp1 are supported. Available from the ESMF web site.
  • netcdf - available from the UNIDATA website.
  • The following libraries are from NCEP and can be downloaded from the NEMS trunk (located in EMC's Subversion repository) in /trunk/util/syslib.tar:
    • bacio
    • w3
    • sp
    • nemsio
  • The following will be used only when write_dopost is set to .true. in the configure file:
    • g2 - /nwprod/lib
    • g2tmpl - /nwprod/util/sorc/g2tmpl.fd
    • sigio, sfcio - /nwprod/lib
    • unipost - /climate/save/wx20wa/esmf/nems/unipost_r14561
    • png, jasper - /usrx/local/64bit/lib; jasper is the library to make jpeg2000 packing
The last two libraries listed above may already be installed on your system (Linux), but may not be by default. PNG, in turn, requires zlib, but that is almost always installed, at least on Linux. They are required for compilation of the g2 (GRIB2) library.





Check Out and Build NEMS:


If you are interested in just running regression tests, please refer to 'Regression Tests'. Otherwise, continue on below.

Process to checkout and build NEMS:
ActionActive DirectoryCommand
Check out NEMS/gpfs/t3/global/save/userid (Cirrus/Stratus)
/scratch*/portfolios/NCEPDEV/**/save/Firstname.Lastname (Zeus)
* - 1 or 2
** - global, meso, etc.
svn checkout https://webarchive.library.unt.edu/web/20130304013300/https://svnemc.ncep.noaa.gov/projects/nems/trunk
Set special compile options in the appropriate configure file (default settings are used for regression tests).../trunk/src/conf
Set the version of the ESMF library that will be used (if running RT.sh, this will be done automatically):
ESMF_Version_Number = 3, use ESMF 3.1.0rp2 library
ESMF_Version_Number = 5.2, use ESMF 5.2.0rp1 library
.../trunk/srcesmf_version ESMF_Version_Number
Compile and build the core(s) needed (/job/regression_tests/RT.sh will build the default settings - NMM and GFS with GOCART).../trunk/srcSee below...


Commands used to compile various NEMS cores (outside of /job/regression_tests/RT.sh):
  • gmake nmm - for NMM core only
  • gmake gfs - for GFS core only (without GOCART)
  • gmake gfs GOCART_MODE=full - for GFS core only (with GOCART)
  • gmake nmm_gfs - for both NMM and GFS cores (without GOCART)
  • gmake nmm_gfs GOCART_MODE=full - for both NMM and GFS cores (with GOCART)
  • gmake fim - for FIM core only
  • gmake fim_gfs - for both FIM and GFS cores only (without GOCART)
  • gmake fim_gfs GOCART_MODE=full - for both FIM and GFS cores only (with GOCART)
  • gmake gen - for GEN core only
  • gmake gen_nmm_gfs GOCART_MODE=full - for GEN, NMM and GFS cores (with GOCART)
  • gmake nmm_post - for NMM core, run with post on quilt
  • gmake gfs_post - for GFS core, run with post on quilt
  • gmake nmm_gfs_gen_post GOCART_MODE=full - for GEN, NMM and GFS cores with post (with GOCART)
The executable, NEMS.x, will appear in /exe.





How To Run NMM-B (on CCS)


There are several methods by which one can run the NMM-B. Click on a [+/-] for more information.

  1. Modifying RT.sh, using regression test answers, and creating your own run script to run only the experiment(s) needed. [+/-]
  2. Modifying RT.sh, creating your own input files, and creating your own run script to run only the experiment(s) needed. If you want to use your own input data you will have to also compile and run NPS [+/-].
  3. Using the NEMS Launcher. [+/-]
In addition to the steps above, there is an evolving draft of a how-to for NEMS NMM-B here.





How To Run NMM-B Nests(on CCS)


The NMM-B has telescoping static and moving nest capability. All domains, whether the uppermost parent or any nest, are functionally equivalent and thus each needs its own configure file. Currently all nesting is 1-way which means there is no internal exchange of data between a parent and its children, i.e., the only inter-generational exchange of data is the parents' sending new boundary data to each child at the end of every parent timestep.

The following instructions are also available in the README.NMM file.


1-way nesting: [+/-]





How To Run GFS (on CCS)


Currently, this process is similar to using Method #1 or #2 for the NMM-B, using a GFS regression test instead of NMM-B to start. Following the steps below may simplify the process if you choose to run other regression tests individually.

  1. Modifying RT.sh, using regression test answers, and creating your own run script to run only the experiment(s) needed. [+/-]
  2. Modifying RT.sh, gathering your own input files, and creating your own run script to run only the experiment(s) needed. COMING SOON [+/-]





How to Run FIM (coming soon)






Porting Information


Following is a procedure for defining functional equivalence on different environments:
  1. Select key fields from the import state Fi (may include a selection of initial cases).
  2. Run control run C of application on control environment.
  3. Perturb each Fi in the last significant digit.
    1. Nominally after the 6th decimal digit for 32-bit reals.
    2. For each value Fi(x), construct a distribution.
    3. Gaussian distribution with width being | Fi(x)/1.e6|.
    4. Randomly select perturbation from that distribution.
  4. Run perturbed run P from perturbed import state on control environment.
  5. Select key fields from the export states Cj (control run) and Pj (perturbed run) - may include a selection of output times.
  6. Determine area weight w(x)
  7. Compute the butterfly vector .
  8. Butterfly vector will have units of original export fields.
  9. Now run control run but on different environment D.
  10. Compute difference vector like butterfly vector but using D instead of P.
  11. Compute dimensionless difference butterfly number vector .
  12. For a bit-identical requirement, vj must be zero.
  13. For a functionally equivalent requirement, vj must be largely less than 10.
The presentations listed below show preliminary results from porting parts of NEMS to other computers: