Opened 15 years ago

Closed 15 years ago

#388 closed upgrade (Done)

Generalized coupled biology and sediment models interface, final phase

Reported by: arango Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.3
Component: Nonlinear Version: 3.3
Keywords: Cc:

Description

This is the final phase of the redesign of the coupled biology and sediment models in ROMS which started with src:ticket:375. This update removes the dependency of these models on mod_param.F, mod_ncparam.F, and mod_scalars.F. No longer there is a need to modifying these files when customizing or expanding these models.

  • The ecosystem and sediment models metadata indices are now assigned in a new file xxx_var.h which is included in module mod_ncparm.F as:
    #ifdef BIOLOGY
    # if defined BIO_FENNEL
    #  include <fennel_var.h>
    # elif defined ECOSIM
    #  include <ecosim_var.h>
    # elif defined NEMURO
    #  include <nemuro_var.h>
    # elif defined NPZD_FRANKS
    #  include <npzd_Franks_var.h>
    # elif defined NPZD_POWELL
    #  include <npzd_Powell_var.h>
    # elif defined NPZD_IRON
    #  include <npzd_iron_var.h>
    # endif
    #endif
    
    #if defined SEDIMENT || defined BBL_MODEL
    #  include <sediment_var.h>
    #endif
    
  • The ecosystem model tracer indices (idbio(:) and friends) are now set-up in their respective xxx_mod.h instead of mod_scalars.F. Everything including their declaration is moved to mod_biology.F which includes the file xxx_mod.h.
  • As in the ecosystem model, the sediment model tracer indices (idmud(:), isand(:) and friends) are now set-up in new file sediment_mod.h instead of mod_scalars.F. Everything including their declaration is moved to mod_sediment.F which includes the new file sediment_mod.h.
  • All the declarations associated with the ecosystem and sediment models was moved from mod_param.F to their respective xxx_mod.h and now they are declared in modules mod_biology.F and mod_sediment.F, respectively.
  • The sediment model input parameters are defined (all output NetCDF files) in a new file sediment_def.h which is included in def_info.F as:
    #ifdef SEDIMENT
    # include <sediment_def.h>
    #endif
    
  • The sediment model input parameters are written (all output NetCDF files) in a new file sediment_wrt.h which is included in wrt_info.F as:
    #ifdef SEDIMENT
    # include <sediment_wrt.h>
    #endif
    
  • All the sediment model kernel variables declarations are moved from mod_average.F, mod_grid.F, and mod_ocean.F to a new module mod_sedbed.F. This new module includes the file sedbed_mod.h to facilitate customization.

Several files have minor changes to facilitate this redesign. It will be very easy in the future to add new ecosystem models or expand existing ones.

WARNING: If adding new tracer indices to any of these models, the user need to select a unique and meaningful five character index (like, itemp for temperature) and check for conflicts in mod_ncparam.F or mod_scalars.F. The new metadata in varinfo.dat must be consistent with the new index.

Change History (1)

comment:1 by arango, 15 years ago

Resolution: Done
Status: newclosed
Type: bugupgrade
Note: See TracTickets for help on using tickets.