usr/kevin/code/develop/sim_gil_obj.c
int gil_react_add_product(gil_react_t * obj, const char * name, int value) {

  gil_stoich_t * ps = NULL;

  dbg_return_if(obj == NULL, -1);

  dbg_err_if(gil_stoich_create(name, value, &ps));
  dbg_err_if(u_list_add(obj->products, ps));

  return 0;

 err:
  gil_stoich_free(ps);

  return -1;

}
/*****************************************************************************
 *
 *  \brief Add a product stoichiometry item to a reaction
 *
 *  \param obj    reaction object
 *  \param name   Product component name
 *  \param value  Stoichiometry
 *
 *  \retval 0     a success
 *  \retval -1    a failure
 *
 *****************************************************************************/
\brief Add a product stoichiometry item to a reaction
\param obj    reaction object
\param name   Product component name
\param value  Stoichiometry

\retval 0     a success
\retval -1    a failure
\ brief Add a product stoichiometry item to a reaction \ param obj reaction object \ param name Product component name \ param value Stoichiometry \ retval 0 a success \ retval - 1 a failure
int gil_react_add_product(gil_react_t * obj, const char * name, int value) {
  gil_stoich_t * ps = NULL;
  dbg_return_if(obj == NULL, -1);
  dbg_err_if(gil_stoich_create(name, value, &ps));
  dbg_err_if(u_list_add(obj->products, ps));
  return 0;
 err:
  gil_stoich_free(ps);
  return -1;
}
int gil_react_add_product ( gil_react_t * obj , const char * name , int value ) { gil_stoich_t * ps = NULL ; dbg_return_if ( obj == NULL , -1 ) ; dbg_err_if ( gil_stoich_create ( name , value , & ps ) ) ; dbg_err_if ( u_list_add ( obj -> products , ps ) ) ; return 0 ; err : gil_stoich_free ( ps ) ; return -1 ; }
\brief Add a product stoichiometry item to a reaction
  \param obj    reaction object
  \param name   Product component name
  \param value  Stoichiometry
\ brief Add a product stoichiometry item to a reaction \ param obj reaction object \ param name Product component name \ param value Stoichiometry