0a1,2
> #ifndef _POPULATE_H
> #define _POPULATE_H
2,4c4
< extern void	populate_groups(int period, int when);
< extern void	populate_areas(int period);
< extern void	PopulateClassGroupLists(CLASS *class, int period, int when);
---
> #include "defs.h"
5a6,68
> #include "func.h"
> 
> /*extern*/ void	populate_groups(int period, int when);
> /*extern*/ void	populate_areas(int period);
> /*extern*/ void	PopulateClassGroupLists(TIMBER_CLASS *timber_class, int period, int when);
> 
> extern inline void PopulateClassGroupLists(TIMBER_CLASS *timber_class, int period, int when) {
> 	GROUP	*group, *testgroup;
> 
> 	timber_class->parent_au->EligibleGroupList = (LIST_PTR *)list_reset(timber_class->parent_au->EligibleGroupList);
> 	group = (GROUP *)list_next(timber_class->parent_au->EligibleGroupList);
> 	while (group != NULL) {
> 		if (func_group_membership(group, period, when, timber_class->parent_zone->label, timber_class->parent_au->label, timber_class->parent_block->label, timber_class->age, timber_class->width, timber_class->class_type)==TRUE) {
> 			if (group->grouptype==STATIC) {
> 				testgroup = (GROUP *)list_find(timber_class->staticgrouplist, group->id);
> 				if (testgroup == NULL) {
> 					timber_class->staticgrouplist = (LIST_PTR *)list_insert(timber_class->staticgrouplist, group, group->id);
> 				}
> 			} else if (group->grouptype==FLOAT) {
> 				testgroup = (GROUP *)list_find(timber_class->floatgrouplist, group->id);
> 				if (testgroup == NULL) {
> 					timber_class->floatgrouplist = (LIST_PTR *)list_insert(timber_class->floatgrouplist, group, group->id);
> 				}
> 			} else {
> 				printf("\n\nERROR: PopulateClassGroupLists(): Invalid group(%d)->grouptype(%d)\n\n", group->id, group->grouptype);
> 				exit(-2);
> 			}
> 		}
> 		group = (GROUP *)list_next(timber_class->parent_au->EligibleGroupList);
> 	}
> }
> 
> extern inline void populate_groups(int period, int when) {
> 	ZONE	*zone;
> 	AU	*au;
> 	TIMBER_CLASS	*timber_class;
> 	GROUP	*group, *testgroup;
> 
> 	printf("\nPeriod : %3d - Populating", period);
> 
> 	zonelist = (LIST_PTR *)list_reset(zonelist);
> 	zone = (ZONE *)list_next(zonelist);
> 	while (zone != NULL) {
> 		zone->aulist = (LIST_PTR *)list_reset(zone->aulist);
> 		au = (AU *)list_next(zone->aulist);
> 		while (au != NULL) {
> 			au->classlist = (LIST_PTR *)list_reset(au->classlist);
> 			timber_class = (TIMBER_CLASS *)list_next(au->classlist);
> 			while (timber_class != NULL) {
> 				if (timber_class->class_type != INACTIVE) {
> 					timber_class->floatgrouplist = (LIST_PTR *)list_done(timber_class->floatgrouplist);
> 					timber_class->floatgrouplist = NULL;
> 					PopulateClassGroupLists(timber_class, period, when);
> 				}
> 				timber_class = (TIMBER_CLASS *)list_next(au->classlist);
> 			}
> 			au = (AU *)list_next(zone->aulist);
> 		}
> 		zone = (ZONE *)list_next(zonelist);
> 	}
> }
> 
> #endif
