📄 vicnl_def.h
字号:
char PRT_BALANCE; char PRT_FLUX; char PRT_GLOBAL; char PRT_GRID; char PRT_KAPPA; char PRT_MOIST; char PRT_SNOW; char PRT_SOIL; char PRT_TEMP; char PRT_VAR; char PRT_VEGE; char debug_dir[512]; double **inflow[2]; double **outflow[2]; double **store_moist[2];} debug_struct;#endif/******************************************************* Stores forcing file input information.*******************************************************/typedef struct { char SIGNED; int SUPPLIED; double multiplier;} force_type_struct;/****************************************************************** This structure records the parameters set by the forcing file input routines. Those filled, are used to estimate the paramters needed for the model run in initialize_atmos.c. ******************************************************************/typedef struct { force_type_struct TYPE[N_FORCING_TYPES]; int FORCE_DT[2]; /* forcing file time step */ int FORCE_ENDIAN[2]; /* endian-ness of input file, used for DAILY_BINARY format */ int FORCE_FORMAT[2]; /* ASCII or BINARY */ int FORCE_INDEX[2][N_FORCING_TYPES]; int N_TYPES[2];} param_set_struct;/******************************************************* This structure stores all model run global parameters. *******************************************************/typedef struct {#if SAVE_STATE char statename[MAXSTRING]; /* name of file in which to store model state */#endif double MAX_SNOW_TEMP; /* maximum temperature at which snow can fall (C) */ double MIN_RAIN_TEMP; /* minimum temperature at which rain can fall (C) */ double measure_h; /* height of measurements (m) */ double wind_h; /* height of wind measurements (m) */ float resolution; /* Model resolution (degrees) */ int dt; /* Time step in hours (24/dt must be an integer) */ int endday; /* Last day of model simulation */ int endmonth; /* Last month of model simulation */ int endyear; /* Last year of model simulation */ int forceday[2]; /* day forcing files starts */ int forcehour[2]; /* hour forcing files starts */ int forcemonth[2]; /* month forcing files starts */ int forceskip[2]; /* number of model time steps to skip at the start of the forcing file */ int forceyear[2]; /* year forcing files start */ int nrecs; /* Number of time steps simulated */ int skipyear; /* Number of years to skip before writing output data */ int startday; /* Starting day of the simulation */ int starthour; /* Starting hour of the simulation */ int startmonth; /* Starting month of the simulation */ int startyear; /* Starting year of the simulation */#if SAVE_STATE int stateday; /* Day of the simulation at which to save model state */ int statemonth; /* Month of the simulation at which to save model state */ int stateyear; /* Year of the simulation at which to save model state */#endif} global_param_struct;/*********************************************************** This structure stores the soil parameters for a grid cell. ***********************************************************/typedef struct { int FS_ACTIVE; /* if TRUE frozen soil algorithm is active in current grid cell */ double Ds; /* fraction of maximum subsurface flow rate */ double Dsmax; /* maximum subsurface flow rate (mm/day) */ double Ksat[MAX_LAYERS]; /* saturated hydraulic conductivity (mm/day) */ double Wcr[MAX_LAYERS]; /* critical moisture level for soil layer, evaporation is no longer affected moisture stress in the soil (mm) */ double Wpwp[MAX_LAYERS]; /* soil moisture content at permanent wilting point (mm) */ double Ws; /* fraction of maximum soil moisture */ double alpha[MAX_NODES]; /* thermal solution constant */ double annual_prec; /* annual average precipitation (mm) */ double avg_temp; /* average soil temperature (C) */ double avgJulyAirTemp; /* Average July air temperature (C) */ double b_infilt; /* infiltration parameter */ double beta[MAX_NODES]; /* thermal solution constant */ double bubble[MAX_LAYERS]; /* bubbling pressure, HBH 5.15 (cm) */ double bubble_node[MAX_NODES]; /* bubbling pressure (cm) */ double bulk_density[MAX_LAYERS]; /* soil bulk density (kg/m^3) */ double c; /* exponent */ double depth[MAX_LAYERS]; /* thickness of each soil moisture layer (m) */ double dp; /* soil thermal damping depth (m) */ double dz_node[MAX_NODES]; /* thermal node thickness (m) */ double expt[MAX_LAYERS]; /* pore-size distribution per layer, HBH 5.15 */ double expt_node[MAX_NODES]; /* pore-size distribution per node */ double gamma[MAX_NODES]; /* thermal solution constant */ double init_moist[MAX_LAYERS]; /* initial layer moisture level (mm) */ double max_infil; /* maximum infiltration rate */ double max_moist[MAX_LAYERS]; /* maximum moisture content (mm) per layer */ double max_moist_node[MAX_NODES]; /* maximum moisture content (mm/mm) per node */ double phi_s[MAX_LAYERS]; /* soil moisture diffusion parameter (mm/mm) */ double porosity[MAX_LAYERS]; /* porosity (fraction) */ double quartz[MAX_LAYERS]; /* quartz content of soil (fraction) */ double resid_moist[MAX_LAYERS]; /* residual moisture content of soil layer */ double rough; /* soil surface roughness (m) */ double snow_rough; /* snow surface roughness (m) */ double soil_density[MAX_LAYERS]; /* soil partical density (kg/m^3) */ double *AreaFract; /* Fraction of grid cell included in each elevation band */ double *Pfactor; /* Change in Precipitation due to elevation (fract) */ double *Tfactor; /* Change in temperature due to elevation (C) */ char *AboveTreeLine; // Flag to indicate if band is above // the treeline#if QUICK_FS double **ufwc_table_layer[MAX_LAYERS]; double **ufwc_table_node[MAX_NODES]; #endif float elevation; /* grid cell elevation (m) */ float lat; /* grid cell central latitude */ float lng; /* grid cell central longitude */ float time_zone_lng; /* central meridian of the time zone */ float **layer_node_fract; /* fraction of all nodes within each layer */ int gridcel; /* grid cell number */} soil_con_struct;/******************************************************************* This structure stores information about the vegetation coverage of the current grid cell. *******************************************************************/typedef struct { double Cv; /* fraction of vegetation coverage */ double Cv_sum; /* total fraction of vegetation coverage */ float root[MAX_LAYERS]; /* percent of roots in each soil layer (fraction) */ float *zone_depth; /* depth of root zone */ float *zone_fract; /* fraction of roots within root zone */ int veg_class; /* vegetation class reference number */ int vegetat_type_num; /* number of vegetation types in the grid cell */} veg_con_struct;/****************************************************************** This structure stores parameters for individual vegetation types. ******************************************************************/typedef struct { char overstory; /* TRUE = overstory present, important for snow accumulation in canopy */ double LAI[12]; /* monthly leaf area index */ double Wdmax[12]; /* maximum monthly dew holding capacity (mm) */ double albedo[12]; /* vegetation albedo (added for full energy) (fraction) */ double displacement[12]; /* vegetation displacement height (m) */ double emissivity[12]; /* vegetation emissivity (fraction) */ double rad_atten; /* radiation attenuation due to canopy, default = 0.5 (N/A) */ double rarc; /* architectural resistance (s/m) */ double rmin; /* minimum stomatal resistance (s/m) */ double roughness[12]; /* vegetation roughness length (m) */ double trunk_ratio; /* ratio of trunk height to tree height, default = 0.2 (fraction) */ double wind_atten; /* wind attenuation through canopy, default = 0.5 (N/A) */ double wind_h; /* height at which wind is measured (m) */ float RGL; /* Value of solar radiation below which there will be no transpiration (ranges from ~30 W/m^2 for trees to ~100 W/m^2 for crops) */ int veg_class; /* vegetation class reference number */} veg_lib_struct;/*************************************************************************** This structure stores the atmospheric forcing data for each model time step for a single grid cell. Each array stores the values for the SNOW_STEPs during the current model step and the value for the entire model step. The latter is referred to by array[NR]. Looping over the SNOW_STEPs is done by for (i = 0; i < NF; i++) ***************************************************************************/typedef struct { char snowflag[25]; /* TRUE if there is snowfall in any of the snow bands during the timestep, FALSE otherwise*/ double air_temp[25]; /* air temperature (C) */ double density[25]; /* atmospheric density (kg/m^3) */ double longwave[25]; /* incoming longwave radiation (W/m^2) (net incoming longwave for water balance model) */ double out_prec; /* Total precipitation for time step - accounts for corrected precipitation totals */ double prec[25]; /* average precipitation in grid cell (mm) */ double pressure[25]; /* atmospheric pressure (kPa) */ double shortwave[25]; /* incoming shortwave radiation (W/m^2) */ double vp[25]; /* atmospheric vapor pressure (kPa) */ double vpd[25]; /* atmospheric vapor pressure deficit (kPa) */ double wind[25]; /* wind speed (m/s) */} atmos_data_struct;/************************************************************************* This structure stores information about the time and date of the current time step. *************************************************************************/typedef struct { int day; /* current day */ int day_in_year; /* julian day in year */ int hour; /* beginning of current hour */ int month; /* current month */ int year; /* current year */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -