Technical Manual

[ Return to Technical Manual Index ]


Design Analysis - Uses Relation

This is the makefile for RHESSys. The reader should note that this makefile is a little on the conservative side. Some of the dependencies may be stricter than needed, but a large number of the files and classes tat make up RHESSys are used strictly to implement the spatial hierarchy and often member functions of a low level of the hierarchy are called higher in the hierarchy. In writing this makefile, I adopted a "better safe than sorry" approach.
FLAGS = -g -Wall -ffor-scope
## All the object files for this project
OBJS= \
        assign_neighbours.o \
        basin.o \
        basin_daily_F.o \
        basin_daily_I.o \
        basin_hourly.o \
        cal_date_lt.o \
        caldat.o \
        canopy_stratum.o \
        canopy_stratum_daily_F.o \
        canopy_stratum_daily_I.o \
        canopy_stratum_hourly.o \
        climate.o \
        compute_atm_pres.o \
        compute_capillary_rise.o \
        compute_delta_water.o \
        compute_diffuse_radiative_fluxes.o \
        compute_diffuse_radiative_PAR_fluxes.o \
        compute_direct_radiative_fluxes.o \
        compute_direct_radiative_PAR_fluxes.o \
        compute_field_capacity.o \
        compute_hourly_rain_stored.o \
        compute_infiltration.o \
        compute_Lstar.o \
        compute_lwp_predawn.o \
        compute_nonvascular_stratum_conductance.o \
        compute_potential_exfiltration.o \
        compute_potential_rain_interception.o \
        compute_potential_snow_interception.o \
        compute_ra_overstory.o \
        compute_ra_surface.o \
        compute_ra_understory.o \
        compute_radiative_fluxes.o \
        compute_rain_stored.o \
        compute_return_flow.o \
        compute_seasonal_lai.o \
        compute_snow_stored.o \
        compute_stability_correction.o \
        compute_subsurface_routing.o \
        compute_surface_heat_flux.o \
        compute_toc_wind.o \
        compute_unsat_zone_drainage.o \
        compute_vapour_conductance.o \
        compute_vascular_stratum_conductance.o \
        compute_z_final.o \
        construct_base_station.o \
        construct_basin_defaults.o \
        construct_clim_sequence.o \
        construct_command_line.o \
        construct_daily_clim.o \
        construct_dated_clim_sequence.o \
        construct_hillslope_defaults.o \
        construct_hourly_clim.o \
        construct_output_files.o \
        construct_output_fileset.o \
        construct_patch_defaults.o \
        construct_routing_topology.o \
        construct_stratum_defaults.o \
        construct_tec.o \
        construct_world.o \
        construct_zone.o \
        construct_zone_defaults.o \
        default_array.o \
        default_collection.o \
        destroy_output_files.o \
        destroy_output_fileset.o \
        destroy_world.o \
        destroy_zone.o \
        execute_daily_csv_output_event.o \
        execute_daily_output_event.o \
        execute_hourly_output_event.o \
        execute_monthly_output_event.o \
        execute_redefine_strata_event.o \
        execute_state_output_event.o \
        execute_tec.o \
        execute_yearly_output_event.o \
        farq_psn.o \
        find_patch.o \
        find_stratum.o \
        handle_event.o \
        hillslope.o \
        hillslope_daily_F.o \
        hillslope_daily_I.o \
        hillslope_hourly.o \
        input_new_strata.o \
        julday.o \
        Ksat_z_curve.o \
        layer.o \
        leaf_conductance_APAR_curve.o \
        leaf_conductance_LWP_curve.o \
        leaf_conductance_tavg_curve.o \
        leaf_conductance_tmin_curve.o \
        leaf_conductance_vpd_curve.o \
        m_resp.o \
        main.o \
        output_basin.o \
        output_basin_state.o \
        output_canopy_strata_state.o \
        output_canopy_stratum.o \
        output_csv_basin.o \
        output_csv_canopy_stratum.o \
        output_csv_hillslope.o \
        output_csv_patch.o \
        output_csv_zone.o \
        output_hillslope.o \
        output_hillslope_state.o \
        output_patch.o \
        output_patch_monthly.o \
        output_patch_state.o \
        output_zone.o \
        output_zone_state.o \
        patch.o \
        patch_daily_F.o \
        patch_daily_I.o \
        patch_hourly.o \
        penman_monteith.o \
        read_record.o \
        read_snowpack.o \
        set_stratum_parent.o \
        snowpack_daily_F.o \
        sort_hillslopes.o \
        sort_patches.o \
        sort_zones.o \
        top_model.o \
        valid_option.o \
        world_daily_F.o \
        world_daily_I.o \
        world_hourly.o \
        write_snowpack.o \
        yearday.o \
        zero_patch_daily_flux.o \
        zero_stratum_daily_flux.o \
        zone_daily_F.o \
        zone_daily_I.o \
        zone_hourly.o
DEPS=\
        base_station.h\
        basin.h\
        basin_default.h\
        canopy_stratum.h\
        command_line.h\
        date.h\
        default_array.h\
        default_collection.h\
        hillslope.h\
        hillslope_default.h\
        kludge.h\
        layer.h\
        neighbour.h\
        output_files.h\
        patch.h\
        patch_default.h\
        rhessys_assert.h\
        routing_list.h\
        snowpack.h\
        stratum_default.h\
        tec.h\
        world.h\
        zone.h\
        zone_default.h
 
## Executable
rhessys : $(OBJS) 
        g++ $(FLAGS) -o rhessys $(OBJS)
clean:
        rm *.o
        rm rhessys

## canopy_stratum.o
canopy_stratum.o: canopy_stratum.cpp $(DEPS)
        g++ $(FLAGS) -c canopy_stratum.cpp -o canopy_stratum.o
        
## canopy_stratum_daily_F.o
canopy_stratum_daily_F.o: canopy_stratum_daily_F.cpp $(DEPS)
        g++ $(FLAGS) -c canopy_stratum_daily_F.cpp -o canopy_stratum_daily_F.o

## canopy_stratum_daily_I.o
canopy_stratum_daily_I.o: canopy_stratum_daily_I.cpp $(DEPS)
        g++ $(FLAGS) -c canopy_stratum_daily_I.cpp -o canopy_stratum_daily_I.o

## canopy_stratum_hourly.o
canopy_stratum_hourly.o: canopy_stratum_hourly.cpp $(DEPS)
        g++ $(FLAGS) -c canopy_stratum_hourly.cpp -o canopy_stratum_hourly.o

## compute_diffuse_radiative_fluxes.o
compute_diffuse_radiative_fluxes.o: compute_diffuse_radiative_fluxes.cpp $(DEPS)
        g++ $(FLAGS) -c compute_diffuse_radiative_fluxes.cpp -o compute_diffuse_radiative_fluxes.o

## compute_diffuse_radiative_PAR_fluxes.cpp
compute_diffuse_radiative_PAR_fluxes.o: compute_diffuse_radiative_PAR_fluxes.cpp $(DEPS)
        g++ $(FLAGS) -c compute_diffuse_radiative_PAR_fluxes.cpp -o compute_diffuse_radiative_PAR_fluxes.o

## compute_direct_radiative_fluxes.o
compute_direct_radiative_fluxes.o: compute_direct_radiative_fluxes.cpp $(DEPS)
        g++ $(FLAGS) -c compute_direct_radiative_fluxes.cpp -o compute_direct_radiative_fluxes.o

## compute_direct_radiative_PAR_fluxes.o
compute_direct_radiative_PAR_fluxes.o: compute_direct_radiative_PAR_fluxes.cpp $(DEPS)
        g++ $(FLAGS) -c compute_direct_radiative_PAR_fluxes.cpp -o compute_direct_radiative_PAR_fluxes.o

## compute_hourly_rain_stored.o
compute_hourly_rain_stored.o: compute_hourly_rain_stored.cpp $(DEPS)
        g++ $(FLAGS) -c compute_hourly_rain_stored.cpp -o compute_hourly_rain_stored.o

## compute_lwp_predawn.o
compute_lwp_predawn.o: compute_lwp_predawn.cpp $(DEPS)
        g++ $(FLAGS) -c compute_lwp_predawn.cpp -o compute_lwp_predawn.o

## compute_nonvascular_stratum_conductance.o
compute_nonvascular_stratum_conductance.o: compute_nonvascular_stratum_conductance.cpp $(DEPS)
        g++ $(FLAGS) -c compute_nonvascular_stratum_conductance.cpp -o compute_nonvascular_stratum_conductance.o

## compute_potential_rain_interception.o
compute_potential_rain_interception.o: compute_potential_rain_interception.cpp $(DEPS)
        g++ $(FLAGS) -c compute_potential_rain_interception.cpp -o compute_potential_rain_interception.o

## compute_potential_snow_interception.o
compute_potential_snow_interception.o: compute_potential_snow_interception.cpp $(DEPS)
        g++ $(FLAGS) -c compute_potential_snow_interception.cpp -o compute_potential_snow_interception.o

## compute_ra_overstory.o
compute_ra_overstory.o: compute_ra_overstory.cpp $(DEPS)
        g++ $(FLAGS) -c compute_ra_overstory.cpp -o compute_ra_overstory.o

## compute_ra_surface.o
compute_ra_surface.o: compute_ra_surface.cpp $(DEPS)
        g++ $(FLAGS) -c compute_ra_surface.cpp -o compute_ra_surface.o

## compute_ra_understory.o
compute_ra_understory.o: compute_ra_understory.cpp $(DEPS)
        g++ $(FLAGS) -c compute_ra_understory.cpp -o compute_ra_understory.o

## compute_rain_stored.o
compute_rain_stored.o: compute_rain_stored.cpp $(DEPS)
        g++ $(FLAGS) -c compute_rain_stored.cpp -o compute_rain_stored.o

## compute_seasonal_lai.o
compute_seasonal_lai.o: compute_seasonal_lai.cpp $(DEPS)
        g++ $(FLAGS) -c compute_seasonal_lai.cpp -o compute_seasonal_lai.o

## compute_snow_stored.cpp
compute_snow_stored.o: compute_snow_stored.cpp $(DEPS)
        g++ $(FLAGS) -c compute_snow_stored.cpp -o compute_snow_stored.o

## compute_toc_wind.o
compute_toc_wind.o: compute_toc_wind.cpp $(DEPS)
        g++ $(FLAGS) -c compute_toc_wind.cpp -o compute_toc_wind.o

## compute_vascular_stratum_conductance.o
compute_vascular_stratum_conductance.o: compute_vascular_stratum_conductance.cpp $(DEPS)
        g++ $(FLAGS) -c compute_vascular_stratum_conductance.cpp -o compute_vascular_stratum_conductance.o

## farq_psn.o
farq_psn.o: farq_psn.cpp $(DEPS)
        g++ $(FLAGS) -c farq_psn.cpp -o farq_psn.o

## input_new_strata.o
input_new_strata.o: input_new_strata.cpp $(DEPS)
        g++ $(FLAGS) -c input_new_strata.cpp -o input_new_strata.o

## leaf_conductance_APAR_curve.o
leaf_conductance_APAR_curve.o: leaf_conductance_APAR_curve.cpp $(DEPS)
        g++ $(FLAGS) -c leaf_conductance_APAR_curve.cpp -o leaf_conductance_APAR_curve.o
 
## leaf_conductance_LWP_curve.o
leaf_conductance_LWP_curve.o: leaf_conductance_LWP_curve.cpp $(DEPS)
        g++ $(FLAGS) -c leaf_conductance_LWP_curve.cpp -o leaf_conductance_LWP_curve.o

## leaf_conductance_tavg_curve.o
leaf_conductance_tavg_curve.o: leaf_conductance_tavg_curve.cpp $(DEPS)
        g++ $(FLAGS) -c leaf_conductance_tavg_curve.cpp -o leaf_conductance_tavg_curve.o

## leaf_conductance_tmin_curve.o
leaf_conductance_tmin_curve.o: leaf_conductance_tmin_curve.cpp $(DEP_CANOPY_STATUM)
        g++ $(FLAGS) -c leaf_conductance_tmin_curve.cpp -o leaf_conductance_tmin_curve.o

## leaf_conductance_vpd_curve.o
leaf_conductance_vpd_curve.o: leaf_conductance_vpd_curve.cpp $(DEPS)
        g++ $(FLAGS) -c leaf_conductance_vpd_curve.cpp -o leaf_conductance_vpd_curve.o

## m_resp.o
m_resp.o: m_resp.cpp $(DEPS)
        g++ $(FLAGS) -c m_resp.cpp -o m_resp.o

## output_canopy_strata_state.o
output_canopy_strata_state.o: output_canopy_strata_state.cpp $(DEPS)
        g++ $(FLAG) -c output_canopy_strata_state.cpp -o output_canopy_strata_state.o

## output_canopy_stratum.o
output_canopy_stratum.o: output_canopy_stratum.cpp $(DEPS)
        g++ $(FLAGS) -c output_canopy_stratum.cpp -o output_canopy_stratum.o

## output_csv_canopy_stratum.o
output_csv_canopy_stratum.o: output_csv_canopy_stratum.cpp $(DEPS)
        g++ $(FLAGS) -c output_csv_canopy_stratum.cpp -o output_csv_canopy_stratum.o

## penman_monteith.o
penman_monteith.o: penman_monteith.cpp $(DEPS)
        g++ $(FLAGS) -c penman_monteith.cpp -o penman_monteith.o

## set_stratum_parent.o
set_stratum_parent.o: set_stratum_parent.cpp $(DEPS)
        g++ $(FLAGS) -c set_stratum_parent.cpp -o set_stratum_parent.o

## zero_stratum_daily_flux.o
zero_stratum_daily_flux.o: zero_stratum_daily_flux.cpp $(DEPS)
        g++ $(FLAGS) -c zero_stratum_daily_flux.cpp -o zero_stratum_daily_flux.o

## compute_capillary_rise.o
compute_capillary_rise.o: compute_capillary_rise.cpp $(DEPS)
        g++ $(FLAGS) -c compute_capillary_rise.cpp -o compute_capillary_rise.o

## compute_field_capacity.o
compute_field_capacity.o: compute_field_capacity.cpp $(DEPS)
        g++ $(FLAGS) -c compute_field_capacity.cpp -o compute_field_capacity.o

## compute_infiltration.o
compute_infiltration.o: compute_infiltration.cpp $(DEPS)
        g++ $(FLAGS) -c compute_infiltration.cpp -o compute_infiltration.o

## compute_Lstar.o
compute_Lstar.o: compute_Lstar.cpp $(DEPS)
        g++ $(FLAGS) -c compute_Lstar.cpp -o compute_Lstar.o

## compute_potential_exfiltration.o
compute_potential_exfiltration.o: compute_potential_exfiltration.cpp $(DEPS)
        g++ $(FLAGS) -c compute_potential_exfiltration.cpp -o compute_potential_exfiltration.o

## compute_return_flow.o
compute_return_flow.o: compute_return_flow.cpp $(DEPS)
        g++ $(FLAGS) -c compute_return_flow.cpp -o compute_return_flow.o

## compute_stability_correction.o
compute_stability_correction.o: compute_stability_correction.cpp $(DEPS)
        g++ $(FLAGS) -c compute_stability_correction.cpp -o compute_stability_correction.o
 
## compute_unsat_zone_drainage.o
compute_unsat_zone_drainage.o: compute_unsat_zone_drainage.cpp $(DEPS)
        g++ $(FLAGS) -c compute_unsat_zone_drainage.cpp -o compute_unsat_zone_drainage.o

## compute_vapour_conductance.o
compute_vapour_conductance.o: compute_vapour_conductance.cpp $(DEPS)
        g++ $(FLAGS) -c compute_vapour_conductance.cpp -o compute_vapour_conductance.o

## compute_z_final.o
compute_z_final.o: compute_z_final.cpp $(DEPS)
        g++ $(FLAGS) -c compute_z_final.cpp -o compute_z_final.o

## Ksat_z_curve.o
Ksat_z_curve.o: Ksat_z_curve.cpp $(DEPS)
        g++ $(FLAGS) -c Ksat_z_curve.cpp -o Ksat_z_curve.o

## output_csv_patch.o
output_csv_patch.o: output_csv_patch.cpp $(DEPS)
        g++ $(FLAGS) -c output_csv_patch.cpp -o output_csv_patch.o

## output_patch.o
output_patch.o: output_patch.cpp $(DEPS)
        g++ $(FLAGS) -c output_patch.cpp -o output_patch.o

## output_patch_monthly.o
output_patch_monthly.o: output_patch_monthly.cpp $(DEPS)
        g++ $(FLAGS) -c output_patch_monthly.cpp -o output_patch_monthly.o

## output_patch_state.o
output_patch_state.o: output_patch_state.cpp $(DEPS)
        g++ $(FLAGS) -c output_patch_state.cpp -o output_patch_state.o

## patch.o
patch.o: patch.cpp $(DEPS)
        g++ $(FLAGS) -c patch.cpp -o patch.o

## patch_daily_F.o
patch_daily_F.o: patch_daily_F.cpp $(DEPS)
        g++ $(FLAGS) -c patch_daily_F.cpp -o patch_daily_F.o

## patch_daily_I.o
patch_daily_I.o: patch_daily_I.cpp $(DEPS)
        g++ $(FLAGS) -c patch_daily_I.cpp -o patch_daily_I.o

## patch_hourly.o
patch_hourly.o: patch_hourly.cpp $(DEPS)
        g++ $(FLAGS) -c patch_hourly.cpp -o patch_hourly.o

## zero_patch_daily_flux.o
zero_patch_daily_flux.o: zero_patch_daily_flux.cpp $(DEPS)
        g++ $(FLAGS) -c zero_patch_daily_flux.cpp -o zero_patch_daily_flux.o

## layer.o
layer.o: layer.cpp $(DEPS)
        g++ $(FLAGS) -c layer.cpp -o layer.o

## compute_atm_pres.o
compute_atm_pres.o: compute_atm_pres.cpp $(DEPS)
        g++ $(FLAGS) -c compute_atm_pres.cpp -o compute_atm_pres.o

## construct_zone.o
construct_zone.o: construct_zone.cpp $(DEPS)
        g++ $(FLAGS) -c construct_zone.cpp -o construct_zone.o

## destroy_zone.o
destroy_zone.o: destroy_zone.cpp $(DEPS)
        g++ $(FLAGS) -c destroy_zone.cpp -o destroy_zone.o

## output_csv_zone.o
output_csv_zone.o: output_csv_zone.cpp $(DEPS)
        g++ $(FLAGS) -c output_csv_zone.cpp -o output_csv_zone.o

## output_zone.o
output_zone.o: output_zone.cpp $(DEPS)
        g++ $(FLAGS) -c output_zone.cpp -o output_zone.o

## output_zone_state.o
output_zone_state.o: output_zone_state.cpp $(DEPS)
        g++ $(FLAGS) -c output_zone_state.cpp -o output_zone_state.o

## sort_patches.o
sort_patches.o: sort_patches.cpp $(DEPS)
        g++ $(FLAGS) -c sort_patches.cpp -o sort_patches.o 

## zone_daily_F.o
zone_daily_F.o: zone_daily_F.cpp $(DEPS)
        g++ $(FLAGS) -c zone_daily_F.cpp -o zone_daily_F.o

## zone_daily_I.o
zone_daily_I.o: zone_daily_I.cpp $(DEPS)
        g++ $(FLAGS) -c zone_daily_I.cpp -o zone_daily_I.o

## zone_hourly.o
zone_hourly.o: zone_hourly.cpp $(DEPS)
        g++ $(FLAGS) -c zone_hourly.cpp -o zone_hourly.o

## hillslope.o
hillslope.o: hillslope.cpp $(DEPS)
        g++ $(FLAGS) -c hillslope.cpp -o hillslope.o

## hillslope_daily_F.o
hillslope_daily_F.o: hillslope_daily_F.cpp $(DEPS)
        g++ $(FLAGS) -c hillslope_daily_F.cpp -o hillslope_daily_F.o

## hillslope_daily_I.o
hillslope_daily_I.o: hillslope_daily_I.cpp $(DEPS)
        g++ $(FLAGS) -c hillslope_daily_I.cpp -o hillslope_daily_I.o

## hillslope_hourly.o
hillslope_hourly.o: hillslope_hourly.cpp $(DEPS)
        g++ $(FLAGS) -c hillslope_hourly.cpp -o hillslope_hourly.o

## output_csv_hillslope.o
output_csv_hillslope.o: output_csv_hillslope.cpp $(DEPS)
        g++ $(FLAGS) -c output_csv_hillslope.cpp -o output_csv_hillslope.o

## output_hillslope.o
output_hillslope.o: output_hillslope.cpp $(DEPS)
        g++ $(FLAGS) -c output_hillslope.cpp -o output_hillslope.o

## output_hillslope_state.o
output_hillslope_state.o: output_hillslope_state.cpp $(DEPS)
        g++ $(FLAGS) -c output_hillslope_state.cpp -o output_hillslope_state.o

## sort_zones.o
sort_zones.o: sort_zones.cpp $(DEPS)
        g++ $(FLAGS) -c sort_zones.cpp -o sort_zones.o

## top_model.o
top_model.o: top_model.cpp $(DEPS)
        g++ $(FLAGS) -c top_model.cpp -o top_model.o

## basin.o
basin.o: basin.cpp $(DEPS)
        g++ $(FLAGS) -c basin.cpp -o basin.o

## basin_daily_F.o
basin_daily_F.o: basin_daily_F.cpp $(DEPS)
        g++ $(FLAGS) -c basin_daily_F.cpp -o basin_daily_F.o

## basin_daily_I.o
basin_daily_I.o: basin_daily_I.cpp $(DEPS)
        g++ $(FLAGS) -c basin_daily_I.cpp -o basin_daily_I.o

## basin_hourly.o
basin_hourly.o: basin_hourly.cpp $(DEPS)
        g++ $(FLAGS) -c basin_hourly.cpp -o basin_hourly.o

## compute_subsurface_routing.o
compute_subsurface_routing.o: compute_subsurface_routing.cpp $(DEPS)
        g++ $(FLAGS) -c compute_subsurface_routing.cpp -o compute_subsurface_routing.o

## output_basin.o
output_basin.o: output_basin.cpp $(DEPS)
        g++ $(FLAGS) -c output_basin.cpp -o output_basin.o

## output_basin_state.o
output_basin_state.o: output_basin_state.cpp $(DEPS)
        g++ $(FLAGS) -c output_basin_state.cpp -o output_basin_state.o

## output_csv_basin.o
output_csv_basin.o: output_csv_basin.cpp $(DEPS)
        g++ $(FLAGS) -c output_csv_basin.cpp -o output_csv_basin.o

## sort_hillslopes.o
sort_hillslopes.o: sort_hillslopes.cpp $(DEPS)
        g++ $(FLAGS) -c sort_hillslopes.cpp -o sort_hillslopes.o

## construct_world.o
construct_world.o: construct_world.cpp $(DEPS)
        g++ $(FLAGS) -c construct_world.cpp -o construct_world.o

## destroy_world.o
destroy_world.o: destroy_world.cpp $(DEPS)
        g++ $(FLAGS) -c destroy_world.cpp -o destroy_world.o

## world_daily_F.o
world_daily_F.o: world_daily_F.cpp $(DEPS)
        g++ $(FLAGS) -c world_daily_F.cpp -o world_daily_F.o

## world_daily_I.o 
world_daily_I.o: world_daily_I.cpp $(DEPS)
        g++ $(FLAGS) -c world_daily_I.cpp -o world_daily_I.o

## world_hourly.o
world_hourly.o: world_hourly.cpp $(DEPS)
        g++ $(FLAGS) -c world_hourly.cpp -o world_hourly.o

## cal_date_lt.o
cal_date_lt.o: cal_date_lt.cpp date.h
        g++ $(FLAGS) -c cal_date_lt.cpp -o cal_date_lt.o

## caldat.o
caldat.o: caldat.cpp date.h
        g++ $(FLAGS) -c caldat.cpp -o caldat.o
        
## julday.o
julday.o: julday.cpp date.h
        g++ $(FLAGS) -c julday.cpp -o julday.o
        
## yearday.o
yearday.o: yearday.cpp date.h
        g++ $(FLAGS) -c yearday.cpp -o yearday.o

## construct_basin_defaults.o   
construct_basin_defaults.o: construct_basin_defaults.cpp $(DEPS)
        g++ $(FLAGS) -c construct_basin_defaults.cpp -o construct_basin_defaults.o

## construct_hillslope_defaults.o
construct_hillslope_defaults.o: construct_hillslope_defaults.cpp $(DEPS)
        g++ $(FLAGS) -c construct_hillslope_defaults.cpp -o construct_hillslope_defaults.o

## construct_patch_defaults.o
construct_patch_defaults.o: construct_patch_defaults.cpp $(DEPS)
        g++ $(FLAGS) -c construct_patch_defaults.cpp -o construct_patch_defaults.o

## construct_stratum_defaults.o
construct_stratum_defaults.o: construct_stratum_defaults.cpp $(DEPS)
        g++ $(FLAGS) -c construct_stratum_defaults.cpp -o construct_stratum_defaults.o

## construct_zone_defaults.o
construct_zone_defaults.o: construct_zone_defaults.cpp $(DEPS)
        g++ $(FLAGS) -c construct_zone_defaults.cpp -o construct_zone_defaults.o

## default_array.o
default_array.o: default_array.cpp $(DEPS)
        g++ $(FLAGS) -c default_array.cpp -o default_array.o

## default_collection.o
default_collection.o: default_collection.cpp $(DEPS)
        g++ $(FLAGS) -c default_collection.cpp -o default_collection.o

## construct_output_files.o
construct_output_files.o: construct_output_files.cpp command_line.h \
        date.h kludge.h output_files.h
        g++ $(FLAGS) -c construct_output_files.cpp -o construct_output_files.o

## construct_output_fileset.o
construct_output_fileset.o: construct_output_fileset.cpp output_files.h
        g++ $(FLAGS) -c construct_output_fileset.cpp -o construct_output_fileset.o

## destroy_output_files.o
destroy_output_files.o: destroy_output_files.cpp output_files.h
        g++ $(FLAGS) -c destroy_output_files.cpp -o destroy_output_files.o

## destroy_output_fileset.o
destroy_output_fileset.o: destroy_output_fileset.cpp output_files.h
        g++ $(FLAGS) -c destroy_output_fileset.cpp -o destroy_output_fileset.o

## construct_base_station.o
construct_base_station.o: construct_base_station.cpp base_station.h date.h kludge.h
        g++ $(FLAGS) -c construct_base_station.cpp -o construct_base_station.o

## compute_delta_water.o
compute_delta_water.o: compute_delta_water.cpp kludge.h rhessys_comp.h
        g++ $(FLAGS) -c compute_delta_water.cpp -o compute_delta_water.o

## compute_radiative_fluxes.o
compute_radiative_fluxes.o: compute_radiative_fluxes.cpp rhessys.h
        g++ $(FLAGS) -c compute_radiative_fluxes.cpp -o compute_radiative_fluxes.o

## compute_surface_heat_flux.o
compute_surface_heat_flux.o: compute_surface_heat_flux.cpp rhessys.h
        g++ $(FLAGS) -c compute_surface_heat_flux.cpp -o compute_surface_heat_flux.o

## read_snowpack.o
read_snowpack.o: read_snowpack.cpp command_line.h date.h kludge.h snowpack.h
        g++ $(FLAGS) -c read_snowpack.cpp -o read_snowpack.o

## snowpack_daily_F.o
snowpack_daily_F.o: snowpack_daily_F.cpp command_line.h date.h kludge.h phys_constants.h \
        rhessys_comp.h snowpack.h
        g++ $(FLAGS) -c snowpack_daily_F.cpp -o snowpack_daily_F.o

## write_snowpack.o
write_snowpack.o: write_snowpack.cpp command_line.h date.h snowpack.h
        g++ $(FLAGS) -c write_snowpack.cpp -o write_snowpack.o

## climate.o
climate.o: climate.cpp base_station.h date.h kludge.h
        g++ $(FLAGS) -c climate.cpp -o climate.o

## construct_clim_sequence.o
construct_clim_sequence.o: construct_clim_sequence.cpp base_station.h date.h
        g++ $(FLAGS) -c construct_clim_sequence.cpp -o construct_clim_sequence.o

## construct_daily_clim.o
construct_daily_clim.o: construct_daily_clim.cpp base_station.h date.h kludge.h
        g++ $(FLAGS) -c construct_daily_clim.cpp -o construct_daily_clim.o

## construct_dated_clim_sequence.o
construct_dated_clim_sequence.o: construct_dated_clim_sequence.cpp base_station.h date.h
        g++ $(FLAGS) -c construct_dated_clim_sequence.cpp -o construct_dated_clim_sequence.o

## construct_hourly_clim.o
construct_hourly_clim.o: construct_hourly_clim.cpp base_station.h       date.h kludge.h
        g++ $(FLAGS) -c construct_hourly_clim.cpp -o construct_hourly_clim.o    

## assign_neighbours.o
assign_neighbours.o: assign_neighbours.cpp $(DEPS)
        g++ $(FLAGS) -c assign_neighbours.cpp -o assign_neighbours.o

## construct_routing_topology.o
construct_routing_topology.o: construct_routing_topology.cpp $(DEPS)
        g++ $(FLAGS) -c construct_routing_topology.cpp -o construct_routing_topology.o

## find_patch.o
find_patch.o: find_patch.cpp $(DEPS)
        g++ $(FLAGS) -c find_patch.cpp -o find_patch.o

## construct_tec.o
construct_tec.o: construct_tec.cpp $(DEPS)
        g++ $(FLAGS) -c construct_tec.cpp -o construct_tec.o

## execute_daily_csv_output_event.o
execute_daily_csv_output_event.o: execute_daily_csv_output_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_daily_csv_output_event.cpp -o execute_daily_csv_output_event.o

## execute_daily_output_event.o
execute_daily_output_event.o: execute_daily_output_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_daily_output_event.cpp -o execute_daily_output_event.o

## execute_hourly_output_event.o
execute_hourly_output_event.o: execute_hourly_output_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_hourly_output_event.cpp -o execute_hourly_output_event.o

## execute_monthly_output_event.o
execute_monthly_output_event.o: execute_monthly_output_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_monthly_output_event.cpp -o execute_monthly_output_event.o

## execute_redefine_strata_event.o
execute_redefine_strata_event.o: execute_redefine_strata_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_redefine_strata_event.cpp -o execute_redefine_strata_event.o

## execute_state_output_event.cpp
execute_state_output_event.o: execute_state_output_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_state_output_event.cpp -o execute_state_output_event.o

## execute_tec.o
execute_tec.o: execute_tec.cpp $(DEPS)
        g++ $(FLAGS) -c execute_tec.cpp -o execute_tec.o

## execute_yearly_output_event.o
execute_yearly_output_event.o: execute_yearly_output_event.cpp $(DEPS)
        g++ $(FLAGS) -c execute_yearly_output_event.cpp -o execute_yearly_output_event.o

## find_stratum.o
find_stratum.o: find_stratum.cpp $(DEPS)
        g++ $(FLAGS) -c find_stratum.cpp -o find_stratum.o

## handle_event.o
handle_event.o: handle_event.cpp $(DEPS)
        g++ $(FLAGS) -c handle_event.cpp -o handle_event.o

## construct_command_line.o
construct_command_line.o: construct_command_line.cpp command_line.h date.h
        g++ $(FLAGS) -c construct_command_line.cpp -o construct_command_line.o
        
## valid_option.o
valid_option.o: valid_option.cpp command_line.h date.h
        g++ $(FLAGS) -c valid_option.cpp -o valid_option.o      

## main.o
main.o: main.cpp output_files.h tec.h command_line.h world.h
        g++ $(FLAGS) -c main.cpp -o main.o

## read_record.o
read_record.o: read_record.cpp rhessys_assert.h kludge.h
        g++ $(FLAGS) -c read_record.cpp -o read_record.o