ROMS/TOMS Developers

Algorithms Update Web Log
« Previous PageNext Page »

Mark Hadfield - October 24, 2006 @ 21:50
More mods- Comments (1)

A few more mods:

  • src/ROMS/Utility/ran_state.F & ran1.F: where necessary, replace integers of default kind with integers of kind i4b (4-byte). This is necessary on Cray T3E, and maybe other platforms, where the default integer is not 4 bytes long.
  • src/ROMS/Utility/metrics.F: initialise my_grdmax.

File attached, with any luck


Mark Hadfield - October 23, 2006 @ 23:05
ROMS 3.0 modifications- Comments (1)

Hello all

Is this the right place to submit ROMS modifications?

Attached is a .tar.gz file containing my modifications. Changes are:

  1. src/makefile: Add a platform-specific conversion to the output of “uname -s” for the “MINGW” platform (MSYS shell plus MinGW32 compilers on Windows). Remove ROMS/Drivers from the list of modules as it contains no .F files; this causes an error at build time on the Cray T3E, as the “ar” command does not accept an empty command line.
  2. src/Compilers: Add makefiles for MINGW platform, g95 and gfortran compilers. Minor changes to compiler flags on other platforms, including removing -ff2c flag for Gfortran.
  3. /src/ROMS/Bin/cpp_clean: Change command name in first line from “usr/bin/perl” to “/usr/bin/env perl” to allow non-standard locations for perl executable.

On the ROMS forum I have a Kermit D Frog icon. Can I have it here?


kate - September 27, 2006 @ 14:07
A tale of three bugs- Comments (0)

1. I was asked to help Ken Coyle with a problem in the GOANPZ code. It turned out to be a missing chunk in inp_par.F, converting the boundary nudging timescale from units of days to sec-1. This code is duplicated for each biology model and was missing for the GOA version – could this be cleaned up so that such duplication isn’t needed?

2. I was getting odd differences in the ice depending on my domain tiling. I tracked it down to code in the ICE part of bulk_flux.F, setting the surface albedo if there is ice, leaving it random otherwise. I also took out the fice variable since it was just used the once (and not being set right either).

3. Of more general interest, I tried out the new code for interpolating from coarse forcing files. I was surprised to get stress fields such as:
Vwind stripes
The operation order is that the coarse grid data is read in and interpolated to the ROMS grid during get_data.F. It is then time-interpolated, exchanged, and finally rotated in set_data.F. It seems to me that it would be more efficient to rotate it in get_data.F since that is only happening every time you read the (six hourly) winds, not every timestep. I’m off to try to fix this.

Just a nit on the CPP option around the rotation code: CURVGRID is for when the dmde and dndx terms are nonzero and require the extra advection terms to be computed. It is not a flag for whether your grid is aligned north-south and east-west. In fact, north-south grids generally have nonzero dmde on a sphere.

Edit: I think it’s working! Just a note that if you look at my get_data.F, it is just a bit different because Don Stark asked me to change it (and change who calls it) for the CCSM coupling effort at NCAR. Most important, he asked me to put the initialization stuff elsewhere (now in get_data_init.F).


arango - September 25, 2006 @ 22:03
Changes to ROMS Directory Tree- Comments (0)

In order to facilitate coupling to other models the directory tree of ROMS was changed to:

    src/
       /Compilers
       /Lib
       /Master
       /ROMS/
            /Adjoint
            /Bin
            /Drivers
            /External
            /Include
            /Modules
            /Nonlinear
            /Obsolete
            /Programs
            /Representer
            /SeaIce
            /Tangent
            /Utility

The makefile is now located in the top directory src. This allows us to used the same makefile in other components of the coupling sytem. Notice the a new directory ROMS was created with contains all previous directories except Lib and Compilers. They are now located in the top directory src so it can be used by other components of the coupling system.

A new directory Master was created and contains the main drivers of the coupled system. It currently contains the files air_ocean.h, master.F, ocean_control.F and propagator.F. These files were located previously in the Drivers directory.

All the Module.mk in each directory were modified to add the ROMS subdirectory. The file Compilers/MakeDepend was changed to conform with the new directory structure. Recall that this file is created automatically by executing a make depend from the top directory src.

The model is now compiled from the top directory src.

The user can add more directories in src for other coupling systems like that for atmospheric, wave models, etc.

For the current updated file list .

arango - September 3, 2006 @ 16:49
Interpolation of Forcing Fields- Comments (0)

Fixed a bug in routine nf_fread2d.F when interpolating coarser data (usually 2D forcing fields) into the model grid. Many thanks to Kate for finding this bug. In the past, I was assuming that the coarser data at input was smaller in size than the finner grid to interpolate. Now, the scratch work array wrk is allocated to the needed length.

For the current updated file list .