(see IP* routines); 2. Initialize its own variables; 3. Accept variables passed to it from other modules and the environment ; 4. Pass variables that are computed within the module; 5. Own its set of state variables; 6. Compute rates of change for its state variables; 7. Integrate its state variables; 8. Write its own variables as output (see OP* routines); and 9. Operate when linked to a dummy test program.