﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
375	Generalized coupled biology and sediment models interface	arango	arango	"I updated the interface for the various ecosystem model in ROMS. This allows a lot of flexibility and customization:

 * The ecosystem model input parameters are declared in an new file '''xxx_mod.h''' which is included in module '''mod_biology.F''' as:
{{{
#ifdef BIOLOGY
# if defined BIO_FENNEL
#  include <fennel_mod.h>
# elif defined ECOSIM
#  include <ecosim_mod.h>
# elif defined NEMURO
#  include <nemuro_mod.h>
# elif defined NPZD_FRANKS
#  include <npzd_Franks_mod.h>
# elif defined NPZD_IRON
#  include <npzd_iron_mod.h>
# elif defined NPZD_POWELL
#  include <npzd_Powell_mod.h>
# endif
#endif
}}}

 * The input parameters are now read from a new file '''xxx_inp.h''' which is included in '''inp_par.F''' as
{{{
#ifdef BIOLOGY
# if defined BIO_FENNEL
#  include <fennel_inp.h>
# elif defined NEMURO
#  include <nemuro_inp.h>
# elif defined NPZD_FRANKS
#  include <npzd_Franks_inp.h>
# elif defined NPZD_POWELL
#  include <npzd_Powell_inp.h>
# elif defined NPZD_IRON
#  include <npzd_iron_inp.h>
# elif defined ECOSIM
#  include <ecosim_inp.h>
# endif
#endif

#ifdef SEDIMENT
# include <sediment_inp.h>
#endif
}}}

 * The ecosystem model input parameters are defined (all output NetCDF files) in a new file '''xxx_def.h''' which is included in '''def_info.F''' as:
{{{
#if defined BIOLOGY && defined SOLVE3D
# if defined BIO_FENNEL
#  include <fennel_def.h>
# elif defined ECOSIM
#  include <ecosim_def.h>
# elif defined NEMURO
#  include <nemuro_def.h>
# elif defined NPZD_FRANKS
#  include <npzd_Franks_def.h>
# elif defined NPZD_IRON
#  include <npzd_iron_def.h>
# elif defined NPZD_POWELL
#  include <npzd_Powell_def.h>
# endif
#endif
}}}

 * The ecosystem model input parameters are written (all output NetCDF files) in a new file '''xxx_wrt.h''' which is included in '''wrt_info.F''' as:
{{{
#if defined BIOLOGY && defined SOLVE3D
# if defined BIO_FENNEL
#  include <fennel_wrt.h>
# elif defined ECOSIM
#  include <ecosim_wrt.h>
# elif defined NEMURO
#  include <nemuro_wrt.h>
# elif defined NPZD_FRANKS
#  include <npzd_Franks_wrt.h>
# elif defined NPZD_IRON
#  include <npzd_iron_wrt.h>
# elif defined NPZD_POWELL
#  include <npzd_Powell_wrt.h>
# endif
#endif
}}}

Check any of these files if you are adding a new ecosystem model into ROMS for guidance. Note that all the new ecosystem '''*.h''' files are located in '''ROMS/Nonlinear/Biology''' and included within '''<...>''' to allow the user to customize any of them in the project directory while keeping the distributed code intact (check the build script for details).

The input parameters for the NEMURO model were not written in the output NetCDF file before.  I missed this one.

Also, notice that currently only '''sediment_inp.h''' is available for the sediment model.  This will change in the future as this model evolves and more input parameters are required.

I also fixed couple unbounded local arrays bugs in '''ecosim.h''' and the sink tracer indices for the silica group.
                          "	upgrade	closed	major	Release ROMS/TOMS 3.3	Nonlinear	3.3	Done		
