VIC Code Structure
Calling Tree
The following briefly outlines the calling order for the main VIC driver routine vicNl.c. If a routine is called conditionally, the condition is given in brackets. The formate of this webpage is based on the CLM 3.0 Developer's Guide.
- initialize_global
- display_current_settings [VERBOSE]
- open_file
- get_global_param
- create_output_list
- set_output_defaults
- set_output_var
- open_file
- parse_output_info
- free_out_data_files
- init_output_list
- set_output_var
- check_files
- open_file
- open_debug[!OUTPUT_FORCE && LINK_DEBUG]
- read_veglib[!OUTPUT_FORCE]
- make_dmy
- get_next_time_step
- alloc_atmos
- check_state_file[!OUTPUT_FORCE && options.INIT_STATE]
- open_file
- open_state_file[!OUTPUT_FORCE && options.INIT_STATE && options.SAVE_STATE]
- open_file
- read_soilparam[!MODEL_DONE && !options.ARC_SOIL]
- read_soilparam_arc [!MODEL_DONE && options.ARC_SOIL]
- read_arcinfo_info
- read_arcinfo_value
- write_soilparam[RUN_MODEL && LINK_DEBUG]
- read_vegparam[RUN_MODEL && !OUTPUT_FORCE]
- calc_root_fractions[RUN_MODEL && !OUTPUT_FORCE]
- linear_interp
- write_vegparam[RUN_MODEL && !OUTPUT_FORCE && LINK_DEBUG]
- make_in_and_outfiles
- open_file
- write_header[RUN_MODEL && options.PRT_HEADER]
- read_snowband[RUN_MODEL && !OUTPUT_FORCE]
- make_dist_prcp[RUN_MODEL && !OUTPUT_FORCE]
- make_snow_data
- make_energy_bal
- make_veg_var
- make_cell_data
- initialize_atmos
- read_forcing_data
- read_atmos_data
- mtclim42_wrapper[!(param_set.TYPE[VP].SUPPLIED && param_set.TYPE[SHORTWAVE].SUPPLIED]
- mtclim42_init
- calc_tair
- calc_prcp
- calc_srad_humidity
- mtclim42_to_vic
- set_max_min_hour[!param_set.TYPE[AIR_TEMP].SUPPLIED]
- HourlyT[!param_set.TYPE[AIR_TEMP].SUPPLIED]
- hermint
- calc_longwave[param_set.TYPE[LONGWAVE].SUPPLIED]
- calc_netlongwave[param_set.TYPE[LONGWAVE].SUPPLIED && !options.FULL_ENERGY && !options.FROZEN_SOIL]
- compute_treeline[!OUTPUT_FORCE && options.COMPUTE_TREELINE && !options.JULY_TAVG_SUPPLIED && options.SNOW_BAND]
- write_forcing_file[OUTPUT_FORCE]
- write_data
- write_atmosdata[RUN_MODEL && !OUTPUT_FORCE && LINK_DEBUG && debug.PRT_ATMOS]
- initialize_model_state[RUN_MODEL && !OUTPUT_FORCE]
- initialize_snow
- initialize_soil
- initialize_veg
- maximum_unfrozen_water[QUICK_FS && options.FROZEN_SOIL]
- linear_interp[QUICK_FS && options.FROZEN_SOIL]
- read_initial_model_state[options.INIT_STATE]
- exp_interp[!options.INIT_STATE && !options.QUICK_FLUX]
- set_node_parameters[options.GRND_FLUX && FIRST_VEG]
- linear_interp
- distribute_node_moisture_properties[options.GRND_FLUX]
- maximum_unfrozen_water_quick[QUICK_FS]
- maximum_unfrozen_water[!QUICK_FS]
- soil_conductivity
- volumetric_heat_capacity
- estimate_layer_ice_content[options.GRND_FLUX && options.FROZEN_SOIL]
- maximum_unfrozen_water_quick[QUICK_FS]
- maximum_unfrozen_water[!QUICK_FS]
- find_0_degree_fronts[options.GRND_FLUX && !options.QUICK_FLUX]
- linear_interp
- calc_water_balance_error[RUN_MODEL && !OUTPUT_FORCE]
- calc_energy_balance_error[RUN_MODEL && !OUTPUT_FORCE]
- dist_prec[RUN_MODEL && !OUTPUT_FORCE]
- initialize_new_storm[options.DIST_PRCP && (!STILL_STORM || ANY_SNOW)]
- average_moisture_for_storm
- full_energy
- correct_precip[options.CORRPREC]
- prepare_full_energy[options.FULL_ENERGY || options.FROZEN_SOIL]
- find_average_layer
- maximum_unfrozen_water
- compute_soil_layer_thermal_properties
- soil_conductivity
- volumetric_heat_capacity
- calc_veg_height
- CalcAerodynamic
- store_moisture_for_debug[LINK_DEBUG && (debug.DEBUG || debug.PRI_MOIST || debug.PRT_BALANCE)]
- surface_fluxes
- solve_snow
- calc_rainonly
- snow_albedo
- snow_intercept
- MassRelease
- canopy_evap
- penman
- svp_slope
- transpiration[CALC_EVAP]
- penman
- svp_slope
- snow_melt
- CalcSnowPackEnergyBalance
- SnowPackEnergyBalance
- StabilityCorrection
- root_brent
- ErrorSnowPackEnergyBalance
- ErrorPrintSnowPackEnergyBalance
- snow_density
- new_snow_density
- new_snow_density
- calc_surf_energy_bal
- root_brent
- error_calc_surf_energy_bal
- error_print_surf_energy_bal
- write_layer
- write_vegvar
- solve_surf_energy_bal
- func_surf_energy_bal
- estimate_T1
- solve_T_profile
- calc_soil_thermal_fluxes
- root_brent
- error_solve_T_profile
- error_print_solve_T_profile
- maximum_unfrozen_water
- canopy_evap[VEG && !SNOWING]
- penman
- svp_slope
- arno_evap[!VEG && !SNOWING]
- penman
- svp_slope
- finish_frozen_soil_calcs[options.GRND_FLUX && !options.QUICK_FLUX]
- estimate_layer_ice_content
- maximum_unfrozen_water_quick[QUICK_FS
- maximum_unfrozen_water[!QUICK_FS
- runoff
- maximum_unfrozen_water
- find_average_layer
- distribute_node_moisture_properties
- maximum_unfrozen_water_quick[QUICK_FS]
- maximum_unfrozen_water[!QUICK_FS]
- soil_conductivity
- volumetric_heat_capacity
- write_debug[LINK_DEBUG]
- put_data
- close_files[RUN_MODEL]
- free_atmos
- free_dmy
- free_out_data_files
- free_out_data
Last updated 05/08/2008   by Elizabeth Clark
|