1 #include <../../nrnconf.h>
13 struct unit ux1, ux2, ur1, ur2, uflux;
17 if (
type->itemsubtype == REACT1) {
21 if (
type->itemsubtype == REACT1) {
41 "REACTION quantity units for %s is: %s\n",
45 Fprintf(stderr,
"but the quantity units of the first term is: %s\n",
unit_str());
46 diag(
"Inconsistent material quantity units\n",
"Need a correct COMPARTMENT statement");
55 if (
type->itemsubtype == REACT1 ||
type->itemsubtype ==
'-') {
66 if (
type->itemsubtype == REACT1) {
77 if (
type->itemsubtype == LT) {
83 diag(
"Inconsistent flux units", (
char*) 0);
111 diag(
"inconsistent reaction units", (
char*) 0);
136 diag(
SYM(
q)->
name,
"not declared in previous COMPARTMENT");
142 ": relevant area * diffusion constant must\n be micron2 micron2/ms (1-21 m4/s)");
149 ": With LONGDITUDINAL_DIFFUSION the compartment \
150 volume\nmust be measured in micron3/micron (1-12 m2)");
static void set_flux_units(unit *)
void unit_compartlist(Item *q)
void kinunits(Item *type, int pass)
void consreact_push(Item *q)
void unit_ldifuslist(Item *q, int flag)
static void react_unit_err(const char *, unit *)
#define ITERATE(itm, lst)
Symbol * lookup(const char *)
Symbol * install(const char *, int)
char * stralloc(const char *buf, char *rel)
void ucopypop(struct unit *)
void Unit_push(const char *)
void ucopypush(struct unit *)
void freelist(List *list)
List * newlist()
The following routines support the concept of a list.
int Sprintf(char(&buf)[N], const char *fmt, Args &&... args)
Redirect sprintf to snprintf if the buffer size can be deduced.
const char * Unit_str(unit *up)
int Fprintf(FILE *stream, const char *fmt, Args... args)