Frequently Asked Questions

From WikiROMS
Revision as of 03:34, 12 June 2007 by Arango (talk | contribs) (New page: <div class="title">Frequently Asked Questions</div> * '''My build finished with no errors. Where is the ROMS executable?'''<br /> It is either in '''oceanS''' (serial), '''oceanO''' (shar...)
(change visibility) (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Frequently Asked Questions
  • My build finished with no errors. Where is the ROMS executable?
    It is either in oceanS (serial), oceanO (shared-memory, OpenMP), oceanM (distributed-memory, MPI), or oceanG (debug). Check the makefile to see which options are on. The makefile definition BINDIR controls where to write the compiled ROMS executable.
  • What do I have to do to run an application?
    There are basically four levels of complexity in running an application:
  1. Canned applications that come with the ROMS distribution and don't need input NetCDF files. These can be run by editing the ROMS_APPLICATION definition in the makefile. A list of all pre-defined model applications can be found in header file cppdefs.h. Then compile using make (good practice to make clean first) and, if you are lucky, the program will build. It should run with the command
  2. Canned applications that come with ROMS and require input files. Same as above, but now they have to be run with a command like ./oceanS < External/ocean_some_predefined_app.in. These may also require netCDF input files with names like ocean_some_predefined_app.nc.
  3. User-specified applications with no input data. These are the best test beds for new users or new algorithms. They consist of a set of selected cpp options in /Include/cppdefs.h, a user-generated .in file, and usually modifications to /Nonlinear/analytical.F to specify initial, boundary, and forcing conditions internally.
  4. User applications with input data...the real deal. These require changes to cppdefs.h, some_app.in, and appropriate input files for initialization and forcing.
  • Why the _r8 at the end of real constants?
    Some computers use 32 bits for single precision real numbers and 64 bits for double precision, and some use 64 and 128, respectively. For consistent results on various machines, ROMS takes advantage of the intrinsic F90/95 function SELECTED_REAL_KIND( ). (See ./Modules/mod_kinds.F). This allows you to associate an integer parameter with a specific data type...in this case r8 is associated with 64-bit precision. RTFM (Read the Fortran90 Manual), or better yet, chapter 11 in Chapman, 2004.