ROMS/TOMS Developers

Algorithms Update Web Log

arango - February 19, 2007 @ 21:43
Alternate Application CPP definition- Comments (0)

The CPP option defining a particular application can now be specified in either header file cppdefs.h or the makefile. If defined in the makefile, all the applications definition in cppdefs.h must be commented out with an ! (exclamation mark) in column 1. For example, to activate the upwelling application (UPWELLING) in the makefile, set:


Otherwise, leave the ROMS_APPLICATION macro blank


and uncomment the appropriate application in cppdefs.h.

!#define A4DVAR_TOY      /* for 4DVAR Data Assimilation Toy */
!#define BASIN           /* for Big Bad Basin Example */
!#define BENCHMARK1      /* for Small Benchmark Test */
!#define BENCHMARK2      /* for Medium Benchmark Test */
!#define BENCHMARK3      /* for Big Benchmark Test */
!#define BIO_TOY         /* for One-dimension (vertical) Biology Toy */
!#define BL_TEST         /* for Boundary Layers Test */
!#define CANYON_A        /* for Canyon_A Example */
!#define CANYON_B        /* for Canyon_B Example */
!#define CHANNEL_NECK    /* Channel with a Constriction */
!#define COUPLING_TEST   /* for two-way atmosphere-ocean coupling test */
!#define DOUBLE_GYRE     /* for idealized double-gyre Example */
!#define ESTUARY_TEST    /* test estuary for sediment*/
!#define FLT_TEST        /* for Float Tracking Example */
!#define GRAV_ADJ        /* for Graviational Adjustment Example */
!#define INNER_PRODUCT   /* Tangent/Adjoint State Matrix Inner Product Test */
!#define KELVIN          /* for Kelvin wave test */
!#define LAB_CANYON      /* for Lab Canyon, Polar Coordinates Example */
!#define LAKE_SIGNELL    /* for Lake Signell Sediment Test Case */
!#define LMD_TEST        /* Test for LMD and KPP */
!#define OVERFLOW        /* for Graviational/Overflow Example */
!#define RIVERPLUME1     /* for River plume Example 1 */
!#define RIVERPLUME2     /* for River plume Example 2 (Hyatt and Signell) */
!#define OPT_PERT2D      /* Optimal Perturbation 2D Test */
!#define OPT_PERT3D      /* Optimal Perturbation 3D Test */
!#define SEAMOUNT        /* for Seamount Example */
!#define SED_TEST1       /* for Suspended Sediment Test in a Channel */
!#define SED_TOY         /* for One-dimension (vertical) Sediment Toy */
!#define SOLITON         /* for Equatorial Rossby Wave Example */
#define UPWELLING        /* for Upwelling Example */
!#define USWEST          /* for US West Coast Application */
!#define WEDDELL         /* for Idealized Weddell Sea Shelf Application */
!#define WINDBASIN       /* linear wind-driven constant Coriolis basin */

Some users may prefer to specify the application in the makefile and never to change header file cppdefs.h. Recall that now there is a specific header file for each application (see this post).

For the current updated file list .

arango - February 6, 2007 @ 18:23
New version, copyright, and license- Comments (1)

We started the process of releasing the long awaited ROMS/TOMS new version:

  • We have been working on the copyright and other legal aspects of ROMS/TOMS for awhile. The new version will now be distributed with the following copyright:

    Copyright (c) 2002-2007 The ROMS/TOMS Group
    Licensed under a MIT/X style license
    See License_ROMS.txt

    Many thanks to Chris Sherwood and Rich Signell (USGS) for their help with the copyright and open source license.

  • ROMS/TOMS will be distributed primarily using subversion version control (svn). In the future the user will be able to download the latest version of the model and/or frozen version(s) from our new server by just typing a single UNIX command, like:

    svn checkout MyLocalDir

    or using any GUI interface like esvn (Unix), RapidSVN (cross-platform) or TortoiseSVN (Windows).

    The ROMS svn project managment and bug/issue tracking system is:

    The new ROMS sever hosting will be open to the community in few days. We are currently migrating all services and testing. The new server is a Linux quad completely dedicated to ROMS business: web sites, svn and trac, wikiROMS, developers blog, and forum.

  • All files were modified to include the copyright and license notice. I also added the svn keyword id. For example, get_state.F looks like:
    #include "cppdefs.h"
          SUBROUTINE get_state (ng, model, msg, ncname, IniRec, Tindex)
    !svn $Id: get_state.F 8 2007-02-06 19:00:29Z arango $
    !================================================== Hernan G. Arango ===
    !  Copyright (c) 2002-2007 The ROMS/TOMS Group                         !
    !    Licensed under a MIT/X style license                              !
    !    See License_ROMS.txt                                              !
    !                                                                      !
    !  This routine reads in requested model state from specified NetCDF   !
    !  file. It is usually used to read initial conditions.                !
    !                                                                      !
    !  On Input:                                                           !
    !                                                                      !
    !     ng         Nested grid number.                                   !
    !     model      Calling model identifier.                             !
    !     msg        Message index for Mstate.                             !
    !     ncname     Nonlinear initial conditions NetCDF file name.        !
    !     IniRec     Nonlinear initial conditions time record to read.     !
    !     Tindex     State variable time index to intialize.               !
    !                                                                      !
  • Converted distribute.F into a module to allow module procedure interface to distinguish scalar and vector operations:
         INTERFACE mp_bcastf
            MODULE PROCEDURE mp_bcastf_s
            MODULE PROCEDURE mp_bcastf_v
          END INTERFACE mp_bcastf

    This fixes a problem with Absoft Pro Fortran10 compilers. Many thanks to Brian Powell for reporting this.

  • Fixed few bugs in several drivers that have risen during the compilation of all of then.
  • This new version was committed into svn and frozen as ROMS/TOMS 2.3 in the tags directory. The Version file is:
    ROMS/TOMS Framework:  February 6, 2007
    Copyright (c) 2002-2007 The ROMS/TOMS Group
      Licensed under a MIT/X style license
      See License_ROMS.txt
    svn: $LastChangedBy: arango $
    svn: $LastChangedRevision: 8 $
    svn: $LastChangedDate: 2007-02-06 14:00:29 -0500 (Tue, 06 Feb 2007) $
    svn: $Id: Version 8 2007-02-06 19:00:29Z arango $
For the current updated file list .