ROMSBuilder, create your ROMS component

1. What is ROMSBuilder?

ROMSBuilder is a CCA-CSDMS Modeling Tool (CMT) compliant component that creates another CMT compliant ROMS component. The new ROMS component is build as per the C-preprocessing options that defines a particular ROMS application.

2. Why ROMSBuilder?

ROMS extensively uses the C preprocessor (cpp) during compilation to replace code statements, insert files into the code, and select relevant parts of the code depending on its directives. There are numerous cpp options that can be activated in header files for your specific application. The preprocessor reads the source file (*.F) and builds a target file (*.f90) according to activated cpp options.

CPP options can be set through the CMT config tab dialogs. ROMSBuilder creates the header file from user inputs read from the CMT config dialog. It then compiles and builds the new ROMS component specific to the case using the inputs (ROMS has to be compiled using the header file options for each case).

3. How does it work?

Backend: ROMSBuilder is written in Python and the main classes are ComponentBuilder.py and ROMSComponentBuilder.py. Default inputs are provided through roms_builder_input.cfg file.
Default input is provide through roms_builde_input.cfg file. The three required input for creating the new ROMS
component are,
  1. 1. Header file path, this is the path to your header (*.h) file. The other option is to enter value into the tab dialogs. ex. /home/csdms/sims/roms_builder/upwelling
  2. 2. Application name, this should be the name of your new ROMS Application and must be specified in UPPERCASE. ex. UPWELLING
  3. 3. New component name, this is the name of the new component. As bocca cannot have two components with the same name, every time
    you create a new component the name should be unique.

ROMSBuilder creates the new component in user home directory under ‘~/.cmt/components’. It is safer not to edit the directory. Once a component is successfully created the next one goes relatively faster. To open the project user should go to ‘My Project > ROMSBuilder’. The new project can only be seen by the owner. To share the project with the rest of the community please contact CSDMS.

Notes:
  • Please wait for ROMSBuilder to finish before creating the next component. Overall run time is almost an hour for the first component.
  • ‘Performance efficient mode’ is not meant for ROMSBuilder, hence please avoid setting it for run