HEA_03.21.11_log.txt

Author: Abt Associates Inc. Created: 12/16/09 Updated: 3/22/11 Purpose: This file is a log file for a SAS program which calculates the non-use benefits of regulatory options using a habitat-based approach.

1 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: Copyright (c) 2002-2008 by SAS Institute Inc., Cary, NC, USA. NOTE: SAS (r) Proprietary Software 9.2 (TS2M0) Licensed to ABT ASSOCIATES INC, Site 70068845. NOTE: This session is executing on the XP_PRO platform.

NOTE: SAS initialization used: real time 0.39 seconds cpu time 0.21 seconds

1 *Author: Ryan Stapler, Abt Associates Inc. 2 *Created: 12/16/09 3 *Updated: 3/22/11 4 *Purpose: This file is a SAS program which calculates the non-use benefits of regulatory 4 ! options using a habitat-based approach;
5 6 *Benefits are reported in $1,000.
7 8 *The location of the input and output files is here; 9 %let d=h; *(C or H drive); 10 %let mainloc=&d.:\ERD\TYCHE Contract\Assignments\WA 2-15 (316b Benefits & SP Study)\Task 5 10 ! - Benefits Analytic Support\IE_032111\HEA\; 11 %let inloc=&mainloc.Inputs\; 12 %let outloc=&mainloc.Outputs\; 13 14 libname outloc "&outloc"; NOTE: Libref OUTLOC was successfully assigned as follows: Engine: V9 Physical Name: h:\ERD\TYCHE Contract\Assignments\WA 2-15 (316b Benefits & SP Study)\Task 5 - Benefits Analytic Support\IE_032111\HEA\Outputs 15 16 *assumptions; 17 %let t0=2012; *(define when time zero is); 18 %let yrba=2012; *(based year for discounting-set equal to t0); 19 %let yrsc=50; *(define the annualization period); 20 %let af_3=(0.03*(1.03**50))/((1.03**50)-1); *(define the 3% annualization factor by 20 ! changing the number of compliance years); 21 %let af_7=(0.07*(1.07**50))/((1.07**50)-1); *(define the 7% annualization factor by 21 ! changing the number of compliance years); 22 %let ie_year=2018; *(define the first year of I&E for compliance, all year prior just 22 ! impingement only); 23 24 *The name of the input file is; Page 1HEA_03.21.11_log.txt

25 %let input=HEA_Inputs_03.21.11.xls; 26 %let input2=IE_outputs_22MAR11.xls; 27 *The name of the output files are; 28 %let output=HEABenOutputs_&sysdate..xls; 29 %let tables=HEABenTables_&sysdate..xls; 30 %let SumTables=HEABenTablesSum_&sysdate..xls; 31 %let printout=&outloc.HEA Ben Tables &sysdate..rtf; 32 %let printout3=&outloc.HEA Ben Tables &sysdate..csv; 33 34 *This is a macro that can be used to import data from excel; 2 The SAS System 12:38 Tuesday, March 22, 2011

35 %macro import(infile,insheet,out); 36 PROC IMPORT OUT= WORK.&out 37 DATAFILE= "&infile" 38 DBMS=EXCEL REPLACE; 39 SHEET="&insheet.$"; 40 GETNAMES=YES; 41 MIXED=NO; 42 SCANTEXT=YES; 43 USEDATE=YES; 44 SCANTIME=YES; 45 RUN; 46 %mend; 47 *This is a macro that can be used to export data to excel; 48 %macro export(datafile,outfile,sheet); 49 PROC EXPORT DATA= &datafile 50 OUTFILE= &outfile 51 DBMS=EXCEL replace; 52 SHEET=&sheet; 53 RUN; 54 %mend;
55 56 *import data sets from excel input file;
57 58 *import primary production data (prim.prod); 59 %import(&inloc.&input,prim_prod,prim_prod);

NOTE: WORK.PRIM_PROD data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.56 seconds cpu time 0.25 seconds

60 *import restoration cost data; 61 %import(&inloc.&input,rest_costs,rest_costs);

NOTE: WORK.REST_COSTS data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.45 seconds cpu time 0.12 seconds

62 *import WTP data; 63 %import(&inloc.&input,WTP,WTP);

NOTE: WORK.WTP data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.46 seconds cpu time 0.14 seconds

Page 2HEA_03.21.11_log.txt

64 *import HH data; 65 %import(&inloc.&input,HH_data,HH_data);

NOTE: WORK.HH_DATA data set was successfully created. 3 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: PROCEDURE IMPORT used (Total process time): real time 0.43 seconds cpu time 0.07 seconds

66 *import flow data; 67 %import(&inloc.&input,flow_data,flow_data);

NOTE: WORK.FLOW_DATA data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 1.89 seconds cpu time 0.07 seconds

68

************************************************************************** 69 *import I&E data; 70 %import(&inloc.&input2,BNB_IE,ie);

NOTE: WORK.IE data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 5.54 seconds cpu time 1.35 seconds

71 *import impingement data; 72 %import(&inloc.&input2,BNB_IMP,i_only);

NOTE: WORK.I_ONLY data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 2.98 seconds cpu time 1.25 seconds

73 *import entrainment data; 74 %import(&inloc.&input2,BNB_ENT,ent_only);

NOTE: WORK.ENT_ONLY data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 4.73 seconds cpu time 1.06 seconds

75 *import the worksheet with the ccr.fraction data; 76 %import(&inloc.&input2,REDUCTIONS_DETAIL,reductions_detail);

NOTE: WORK.REDUCTIONS_DETAIL data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 2.54 seconds cpu time 0.28 seconds

77

************************************************************************** 78 THIS SECTION REORGANIZES THE DATA IN ORDER TO CALCULATE THE TOTAL "IMPINGEMENT FRACTION" Page 3HEA_03.21.11_log.txt

78 ! for I&E; 4 The SAS System 12:38 Tuesday, March 22, 2011

79 DATA reductions_detail; 80 SET reductions_detail; 81 if region="" then delete; 82 RUN;

NOTE: There were 28 observations read from the data set WORK.REDUCTIONS_DETAIL. NOTE: The data set WORK.REDUCTIONS_DETAIL has 28 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

83 PROC SORT data=reductions_detail; 84 By option_name region; 85 RUN;

NOTE: There were 28 observations read from the data set WORK.REDUCTIONS_DETAIL. NOTE: The data set WORK.REDUCTIONS_DETAIL has 28 observations and 3 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.03 seconds cpu time 0.00 seconds

86 87 Data i_only_1; 88 set i_only; 89 DO imp_benefit_value_regional=benefit_value_regional; 90 END; 91 IF species_econ~="zz.all.species" then delete; 92 IF metric~="ae1" then delete; 93 if comrec_type~="all.types" then delete; 94 IF region="zz.allregions" then delete; 95 DROP lossmode baseline_value_regional benefit_value_regional; 96 RUN;

NOTE: There were 23712 observations read from the data set WORK.I_ONLY. NOTE: The data set WORK.I_ONLY_1 has 28 observations and 7 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

97 PROC SORT data=i_only_1; 98 By option_name region value_basis species_econ metric comrec_type; 99 RUN;

NOTE: There were 28 observations read from the data set WORK.I_ONLY_1. NOTE: The data set WORK.I_ONLY_1 has 28 observations and 7 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

100 Data ent_only_1; 5 The SAS System 12:38 Tuesday, March 22, 2011

101 set ent_only; 102 DO ent_benefit_value_regional=benefit_value_regional; Page 4HEA_03.21.11_log.txt

103 END; 104 IF species_econ~="zz.all.species" then delete; 105 IF metric~="ae1" then delete; 106 if comrec_type~="all.types" then delete; 107 IF region="zz.allregions" then delete; 108 DROP lossmode baseline_value_regional benefit_value_regional; 109 RUN;

NOTE: There were 19224 observations read from the data set WORK.ENT_ONLY. NOTE: The data set WORK.ENT_ONLY_1 has 28 observations and 7 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

110 PROC SORT data=ent_only_1; 111 by option_name region value_basis species_econ metric comrec_type; 112 RUN;

NOTE: There were 28 observations read from the data set WORK.ENT_ONLY_1. NOTE: The data set WORK.ENT_ONLY_1 has 28 observations and 7 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

113 Data ie_rd1; 114 set ie; 115 DO ie_benefit_value_regional=benefit_value_regional; 116 END; 117 IF species_econ~="zz.all.species" then delete; 118 IF metric~="ae1" then delete; 119 if comrec_type~="all.types" then delete; 120 IF region="zz.allregions" then delete; 121 if region="zz.allregions" then delete; 122 RUN;

NOTE: There were 24640 observations read from the data set WORK.IE. NOTE: The data set WORK.IE_RD1 has 28 observations and 10 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

123 PROC SORT data=ie_rd1; 124 by option_name region value_basis species_econ metric comrec_type; 125 RUN;

NOTE: There were 28 observations read from the data set WORK.IE_RD1. NOTE: The data set WORK.IE_RD1 has 28 observations and 10 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds 6 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.00 seconds

126 DATA ie_rd2; 127 merge ie_rd1 i_only_1 ent_only_1; 128 by option_name region value_basis species_econ metric comrec_type; 129 RUN;

Page 5HEA_03.21.11_log.txt

NOTE: There were 28 observations read from the data set WORK.IE_RD1. NOTE: There were 28 observations read from the data set WORK.I_ONLY_1. NOTE: There were 28 observations read from the data set WORK.ENT_ONLY_1. NOTE: The data set WORK.IE_RD2 has 28 observations and 12 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

130 Data ie_rd3; 131 merge ie_rd2 reductions_detail; 132 by option_name region; 133 IF ent_benefit_value_regional="." then do ent_benefit_value_regional=0; 134 END; 135 IF imp_benefit_value_regional="." then do imp_benefit_value_regional=0; 136 END; 137 imp_frac_imp=(1-ccr_fraction_imp); 138 IF ie_benefit_value_regional=0 then do impingement_fraction=""; 139 END; 140 IF ie_benefit_value_regional~=0 then do 140 ! impingement_fraction=(imp_frac_imp*(imp_benefit_value_regional))/ie_benefit_value_re gional; 141 END; 142 DROP ie_benefit_value_regional imp_benefit_value_regional ent_benefit_value_regional 142 ! ccr_fraction_imp imp_frac_imp 143 value_basis species_econ lossmode metric comrec_type baseline_value_regional 143 ! benefit_value_regional; 144 RUN;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 133:32 135:32 NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column). 140:106 NOTE: There were 28 observations read from the data set WORK.IE_RD2. NOTE: There were 28 observations read from the data set WORK.REDUCTIONS_DETAIL. NOTE: The data set WORK.IE_RD3 has 28 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

145 Proc Sort data=ie out=ie; 146 by option_name region; 147 RUN;

NOTE: There were 24640 observations read from the data set WORK.IE. NOTE: The data set WORK.IE has 24640 observations and 9 variables. 7 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: PROCEDURE SORT used (Total process time): real time 0.04 seconds cpu time 0.01 seconds

148 PROC Sort data=ie_rd3 out=ie_rd3; Page 6HEA_03.21.11_log.txt

149 by option_name region; 150 RUN;

NOTE: There were 28 observations read from the data set WORK.IE_RD3. NOTE: The data set WORK.IE_RD3 has 28 observations and 3 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

151 Data ie; 152 merge ie ie_rd3; 153 by option_name region; 154 RUN;

NOTE: There were 24640 observations read from the data set WORK.IE. NOTE: There were 28 observations read from the data set WORK.IE_RD3. NOTE: The data set WORK.IE has 24640 observations and 10 variables. NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.03 seconds

155 156 157 ***************************************************************** 158 PRODUCTIVITY CALCULATIONS 159 160 *calculate total primary productivity and secondary productivity per

acre; 161 *primary productivity is the sum of aboveground productivity (abv_prim_prod) and algal 161 ! productivity (alg_prim_prod); 162 *tc_ represent the trophic conversion efficiencies required to convert primary productivity 162 ! to secondary productivity; 163 *C_export is the fraction of productivity which is lost from the system, and therefore not 163 ! converted to higher trophic levels; 164 *Values for these variables are specified in the excel input workbook; 165 166 DATA prim_prod_1; 167 SET prim_prod; 168 DO prim_prod_acre=abv_prim_prod+alg_prim_prod; 169 END; 170 DO sec_prod_acre=(prim_prod_acre)*tc_det*(1-C_export)*tc_1st*tc_2nd; 171 END; 172 Run;

NOTE: There were 12 observations read from the data set WORK.PRIM_PROD. NOTE: The data set WORK.PRIM_PROD_1 has 12 observations and 12 variables. NOTE: DATA statement used (Total process time): 8 The SAS System 12:38 Tuesday, March 22, 2011

real time 0.00 seconds cpu time 0.00 seconds

173 174 *this step manipulates the I&E input data set ("ie") 175 restoration is scaled under the HEA method based on the weight of age 1 equivalents Page 7HEA_03.21.11_log.txt

175 ! (ael.lbs) 176 In the inputs dataset ae1.lbs is expressed in terms of lbs of wet weight, this must be 176 ! converted to kg of dry weight 177 0.22 is the ratio of dry weight to wet weight 178 2.20462262 is the number of lbs per kg; 179 180 Data ie_1; 181 SET ie (KEEP = option_name region metric comrec_type species_econ benefit_value_regional 181 ! baseline_value_regional); 182 IF metric="ae1.lbs"; 183 IF comrec_type="all.types"; 184 IF species_econ="zz.all.species"; 185 IF region~="zz.allregions"; 186 *convert reductions to kg dw; 187 DO ben_val_reg=(benefit_value_regional*.22)/2.20462262; 188 END; 189 DO bas_val_reg=(baseline_value_regional*.22)/2.20462262; 190 END; 191 DROP metric comrec_type species_econ benefit_value_regional baseline_value_regional; 192 193 *Multiple potential restoration types are permitted in the input data set for some regions 194 the restoration habitat can be changed to the regional alternative within the IF 194 ! statements below (would also have to be changed later in code) 195 the preferred restoraiton habitat for each region is listed first: 196 California - kelp (ca_kelp) or typha (ca_typha) 197 North Atlantic - eelgrass (na_eelgrass) or spartina (na_spartina) 198 Mid-Atlantic - spartina (ma_spartina) or eelgrass (ma_eelgrass) 199 South Atlantic - spartina (sa_spartina) or eelgrass (sa_eelgrass) 200 Gulf of Mexico - spartina (gom_spartina) or turtlegrass (gom_turtlegrass) 201 Great Lakes - typha (gl_typha) 202 Inland - typha (in_typha); 203 204 LENGTH rest_id $20; 205 IF region="calif" THEN DO; 206 rest_id="ca_kelp"; 207 END; 208 IF region="northatlantic" THEN DO; 209 rest_id="na_eelgrass"; 210 END; 211 IF region="midatlantic" THEN DO; 212 rest_id="ma_spartina"; 213 END; 214 IF region="southatlantic" THEN DO; 215 rest_id="sa_spartina"; 216 END; 217 IF region="gulfmexico" THEN DO; 218 rest_id="gom_spartina"; 9 The SAS System 12:38 Tuesday, March 22, 2011

219 END; 220 IF region="greatlakes" THEN DO; 221 rest_id="gl_typha"; 222 END; Page 8HEA_03.21.11_log.txt

223 IF region="inland" THEN DO; 224 rest_id="in_typha"; 225 End; 226 Run;

NOTE: There were 24640 observations read from the data set WORK.IE. NOTE: The data set WORK.IE_1 has 28 observations and 5 variables. NOTE: DATA statement used (Total process time): real time 0.04 seconds cpu time 0.01 seconds

227 PROC SORT Data=ie_1; 228 BY rest_id; 229 RUN;

NOTE: There were 28 observations read from the data set WORK.IE_1. NOTE: The data set WORK.IE_1 has 28 observations and 5 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

230 Data sec_prod; 231 SET prim_prod_1 (KEEP= rest_id sec_prod_acre); 232 RUN;

NOTE: There were 12 observations read from the data set WORK.PRIM_PROD_1. NOTE: The data set WORK.SEC_PROD has 12 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

233 PROC SORT Data=sec_prod; 234 BY rest_id; 235 RUN;

NOTE: There were 12 observations read from the data set WORK.SEC_PROD. NOTE: The data set WORK.SEC_PROD has 12 observations and 2 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

236 *This data set merges the ie data together with the calculated values for secondary 236 ! productivity 237 per acre of habitat; 238 DATA ie_2; 239 Merge ie_1 sec_prod; 10 The SAS System 12:38 Tuesday, March 22, 2011

240 BY rest_id; 241 DO eq_ben_acres= ben_val_reg/sec_prod_acre; 242 END; 243 DO eq_bas_acres=bas_val_reg/sec_prod_acre; 244 END; 245 IF ben_val_reg="." THEN DELETE; 246 DROP ben_val_reg bas_val_reg sec_prod_acre; 247 RUN;

Page 9HEA_03.21.11_log.txt

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 245:17 NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 5 at 241:30 5 at 243:29 NOTE: There were 28 observations read from the data set WORK.IE_1. NOTE: There were 12 observations read from the data set WORK.SEC_PROD. NOTE: The data set WORK.IE_2 has 28 observations and 5 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

248 *The following steps incorporate the restoration id into flow data and incorporate 248 ! restoration cost and WTP data; 249 *rest_id would need to be changed within each if statement in order to specify different 249 ! habitats for each region; 250 DATA flow_data_1; 251 SET flow_data; 252 IF region="calif" THEN DO; 253 rest_id="ca_kelp"; 254 END; 255 IF region="northatlantic" THEN DO; 256 rest_id="na_eelgrass"; 257 END; 258 IF region="midatlantic" THEN DO; 259 rest_id="ma_spartina"; 260 END; 261 IF region="southatlantic" THEN DO; 262 rest_id="sa_spartina"; 263 END; 264 IF region="gulfmexico" THEN DO; 265 rest_id="gom_spartina"; 266 END; 267 IF region="greatlakes" THEN DO; 268 rest_id="gl_typha"; 269 END; 270 IF region="inland" THEN DO; 271 rest_id="in_typha"; 272 End; 273 RUN;

NOTE: There were 82 observations read from the data set WORK.FLOW_DATA. NOTE: The data set WORK.FLOW_DATA_1 has 82 observations and 5 variables. NOTE: DATA statement used (Total process time): 11 The SAS System 12:38 Tuesday, March 22, 2011

real time 0.00 seconds cpu time 0.00 seconds

274 PROC SORT Data=flow_data_1; 275 by rest_id; 276 RUN;

NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_1. NOTE: The data set WORK.FLOW_DATA_1 has 82 observations and 5 variables. NOTE: PROCEDURE SORT used (Total process time): Page 10HEA_03.21.11_log.txt

real time 0.00 seconds cpu time 0.00 seconds

277 *wtp contains wtp per HH per acre for habitat/region combinations; 278 PROC SORT Data=wtp; 279 by rest_id; 280 RUN;

NOTE: There were 12 observations read from the data set WORK.WTP. NOTE: The data set WORK.WTP has 12 observations and 6 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

281 PROC SORT Data=rest_costs; 282 by rest_id; 283 RUN;

NOTE: There were 12 observations read from the data set WORK.REST_COSTS. NOTE: The data set WORK.REST_COSTS has 12 observations and 4 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

284 DATA flow_data_2; 285 Merge flow_data_1 rest_costs wtp; 286 BY rest_id; 287 IF frac_AIF="." THEN DELETE; 288 RUN;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 287:14 WARNING: Multiple lengths were specified for the BY variable rest_id by input data sets. This may

cause unexpected results. NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_1. NOTE: There were 12 observations read from the data set WORK.REST_COSTS. NOTE: There were 12 observations read from the data set WORK.WTP. NOTE: The data set WORK.FLOW_DATA_2 has 82 observations and 10 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds 12 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.01 seconds

289 PROC SORT Data=flow_data_2; 290 by state; 291 RUN;

NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_2. NOTE: The data set WORK.FLOW_DATA_2 has 82 observations and 10 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

292 PROC SORT DATA=HH_data; Page 11HEA_03.21.11_log.txt

293 by state; 294 RUN;

NOTE: There were 49 observations read from the data set WORK.HH_DATA. NOTE: The data set WORK.HH_DATA has 49 observations and 2 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.03 seconds cpu time 0.01 seconds

295 DATA flow_data_3; 296 Merge flow_data_2 hh_data; 297 By state; 298 DROP species fish_prod tot_WTP_HH; 299 IF frac_AIF="." THEN DELETE; 300 RUN;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 299:14 NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_2. NOTE: There were 49 observations read from the data set WORK.HH_DATA. NOTE: The data set WORK.FLOW_DATA_3 has 82 observations and 8 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

301 Proc sql; 302 create table f3_table as 303 select region, 304 state, 305 AIF, 306 frac_AIF, 307 rest_id, 308 cost_acre, 309 WTP_HH, 310 numHH, 311 sum(numHH) as reg_HH 312 FROM flow_data_3 group by region; 13 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.F3_TABLE created, with 82 rows and 9 columns.

313 quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

314 RUN; 315 DATA flow_data_4; 316 SET f3_table; 317 RUN;

NOTE: There were 82 observations read from the data set WORK.F3_TABLE. NOTE: The data set WORK.FLOW_DATA_4 has 82 observations and 9 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

Page 12HEA_03.21.11_log.txt

318 PROC SORT Data=flow_data_4; 319 by region; 320 RUN;

NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_4. NOTE: The data set WORK.FLOW_DATA_4 has 82 observations and 9 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

321 PROC SORT Data=ie_2; 322 by region; 323 RUN;

NOTE: There were 28 observations read from the data set WORK.IE_2. NOTE: The data set WORK.IE_2 has 28 observations and 5 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

324 PROC TRANSPOSE data=ie_2 out=ie_3; 325 BY region; 326 id option_name; 327 Var eq_ben_acres; 328 RUN;

NOTE: There were 28 observations read from the data set WORK.IE_2. NOTE: The data set WORK.IE_3 has 7 observations and 6 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.03 seconds cpu time 0.03 seconds 14 The SAS System 12:38 Tuesday, March 22, 2011

329 PROC TRANSPOSE data=ie_2 out=ie_4; 330 BY region; 331 id option_name; 332 Var eq_bas_acres; 333 RUN;

NOTE: There were 28 observations read from the data set WORK.IE_2. NOTE: The data set WORK.IE_4 has 7 observations and 6 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

334 DATA ie_5; 335 SET ie_4 (rename=(option_tmn1=baseline)); 336 DROP option_tmn2 option_tmn3 option_tmn4; 337 RUN;

NOTE: There were 7 observations read from the data set WORK.IE_4. NOTE: The data set WORK.IE_5 has 7 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

Page 13HEA_03.21.11_log.txt

338 DATA ie_6; 339 MERGE ie_3 ie_5; 340 By region; 341 RUN;

NOTE: There were 7 observations read from the data set WORK.IE_3. NOTE: There were 7 observations read from the data set WORK.IE_5. NOTE: The data set WORK.IE_6 has 7 observations and 7 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

342 343 DATA flow_data_5; 344 Merge flow_data_4 ie_6; 345 by region; 346 IF frac_AIF="." THEN DELETE; 347 RUN;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 346:14 NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_4. NOTE: There were 7 observations read from the data set WORK.IE_6. NOTE: The data set WORK.FLOW_DATA_5 has 82 observations and 15 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds 15 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.00 seconds

348 349 *This data set calculates the annual WTP for each option and baseline for each state 1,000s 349 ! of dollars. 350 flow_data_5 provides the total number of habitat acres required for each region, but acres 350 ! are not yet broken out by state 351 option_tmn(i) is the array of the total acres required in each region 352 frac_AIF is the fraction of regional AIF that facilities in each state account for 353 frac_tmn(i) is calculated in this step, the actual number of regional habitat acres 353 ! assigned to each state; 354 355 DATA Annual_Values; 356 SET flow_data_5; 357 array frac_tmn(5) frac_tmn1 frac_tmn2 frac_tmn3 frac_tmn4 frac_baseline; 358 array option_tmn(5) option_tmn1 option_tmn2 option_tmn3 option_tmn4 baseline; 359 do i=1 to 5; 360 frac_tmn(i)=frac_AIF*option_tmn(i); 361 end; 362 *WTP_HH is the willingness to pay per household per acre within a given region for the 362 ! specified habitat type; 363 array a_WTP_(5) a_WTP_1 a_WTP_2 a_WTP_3 a_WTP_4 a_WTP_bas; 364 do i=1 to 5; Page 14HEA_03.21.11_log.txt

365 *a_WTP_(i) is total annual WTP to be within a state (in 1,000s of $), calculated as the 365 ! product of willingness 366 to pay per household per acre, the total number of households statewide, and the total 366 ! number of acres assigned to that state; 367 a_WTP_(i)=(WTP_HH*numHH*frac_tmn(i))/1000; 368 END; 369 DROP option_tmn1 option_tmn2 option_tmn3 option_tmn4; 370 RUN;

NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 35 at 367:19 35 at 367:25 35 at 367:38 NOTE: There were 82 observations read from the data set WORK.FLOW_DATA_5. NOTE: The data set WORK.ANNUAL_VALUES has 82 observations and 22 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

371 *On 1/21/10 a weighting framework was introduced to prevent the assignment of full values 371 ! for multiple regions to a single household/state; 372 *The next few steps are primarily calculations necessary for implementing the weighting 372 ! framework, 373 st_frac_ is the total total number of habitat acres assigned to each state from all regions 373 ! for each option; 374 Proc sql; 375 create table Annual_Values_1 as 376 select region, 377 state, 378 rest_id, 16 The SAS System 12:38 Tuesday, March 22, 2011

379 cost_acre, 380 numHH, 381 reg_HH, 382 frac_tmn1, 383 frac_tmn2, 384 frac_tmn3, 385 frac_tmn4, 386 frac_baseline, 387 a_WTP_1, 388 a_WTP_2, 389 a_WTP_3, 390 a_WTP_4, 391 a_WTP_bas, 392 sum(frac_tmn1) as st_frac_tmn1, 393 sum(frac_tmn2) as st_frac_tmn2, 394 sum(frac_tmn3) as st_frac_tmn3, 395 sum(frac_tmn4) as st_frac_tmn4, 396 sum(frac_baseline) as st_frac_baseline 397 From Annual_Values group by state; NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.ANNUAL_VALUES_1 created, with 82 rows and 21 columns.

398 quit; NOTE: PROCEDURE SQL used (Total process time): Page 15HEA_03.21.11_log.txt

real time 0.03 seconds cpu time 0.00 seconds

399 RUN; 400 *per_frac_(i) is the fraction of total habitat acres in each state which are associated 400 ! with a given state/316(b) region combination, 401 per_frac_(i) is the WEIGHT which is being applied to regional WTP within a given state; 402 Data Annual_Values_2; 403 Set Annual_Values_1; 404 array frac_(5) frac_tmn1 frac_tmn2 frac_tmn3 frac_tmn4 frac_baseline; 405 array st_frac_(5) st_frac_tmn1 st_frac_tmn2 st_frac_tmn3 st_frac_tmn4 st_frac_baseline; 406 array per_frac_(5) per_frac_tmn1 per_frac_tmn2 per_frac_tmn3 per_frac_tmn4 406 ! per_frac_baseline; 407 array a_WTP_(5) a_WTP_1 a_WTP_2 a_WTP_3 a_WTP_4 a_WTP_bas; 408 do i=1 to 5; 409 per_frac_(i)= frac_(i)/st_frac_(i); 410 END; 411 DROP i; 412 RUN;

NOTE: There were 82 observations read from the data set WORK.ANNUAL_VALUES_1. NOTE: The data set WORK.ANNUAL_VALUES_2 has 82 observations and 26 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

413 *p_WTP_(i) is the weighted WTP value for each combination of states and options; 414 Data Annual_Values_3; 17 The SAS System 12:38 Tuesday, March 22, 2011

415 Set Annual_Values_2; 416 array per_frac_(5) per_frac_tmn1 per_frac_tmn2 per_frac_tmn3 per_frac_tmn4 416 ! per_frac_baseline; 417 array a_WTP_(5) a_WTP_1 a_WTP_2 a_WTP_3 a_WTP_4 a_WTP_bas; 418 array p_WTP_(5) p_WTP_1 p_WTP_2 p_WTP_3 p_WTP_4 p_WTP_bas; 419 do i=1 to 5; 420 p_WTP_(i)= per_frac_(i)* a_WTP_(i); 421 END; 422 Drop i; 423 Drop a_WTP_1 a_WTP_2 a_WTP_3 a_WTP_4 a_WTP_bas; 424 RUN;

NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 35 at 420:25 NOTE: There were 82 observations read from the data set WORK.ANNUAL_VALUES_2. NOTE: The data set WORK.ANNUAL_VALUES_3 has 82 observations and 26 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Page 16HEA_03.21.11_log.txt

425 *this step simply converts the array of p_WTP values to a_WTP so the naming structure is 425 ! consistent with the 426 existing HEA code; 427 Data Annual_Values_4; 428 Set Annual_Values_3; 429 array a_WTP_(5) a_WTP_1 a_WTP_2 a_WTP_3 a_WTP_4 a_WTP_bas; 430 array p_WTP_(5) p_WTP_1 p_WTP_2 p_WTP_3 p_WTP_4 p_WTP_bas; 431 do i=1 to 5; 432 a_WTP_(i)=p_WTP_(i); 433 END; 434 DROP p_WTP_1 p_WTP_2 p_WTP_3 p_WTP_4 p_WTP_bas; 435 DROP per_frac_tmn1 per_frac_tmn2 per_frac_tmn3 per_frac_tmn4 per_frac_baseline; 436 DROP st_frac_tmn1 st_frac_tmn2 st_frac_tmn3 st_frac_tmn4 st_frac_baseline; 437 RUN;

NOTE: There were 82 observations read from the data set WORK.ANNUAL_VALUES_3. NOTE: The data set WORK.ANNUAL_VALUES_4 has 82 observations and 17 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

438 *change the source of AV_table from Annual_Values to Annual_Values_4; 439 Proc sql; 440 create table AV_table as 441 select region, 442 state, 443 rest_id, 444 cost_acre, 445 numHH, 446 reg_HH, 447 frac_tmn1, 18 The SAS System 12:38 Tuesday, March 22, 2011

448 frac_tmn2, 449 frac_tmn3, 450 frac_tmn4, 451 frac_baseline, 452 a_WTP_1, 453 a_WTP_2, 454 a_WTP_3, 455 a_WTP_4, 456 a_WTP_bas, 457 sum(a_WTP_1) as reg_WTP_1, 458 sum(a_WTP_2) as reg_WTP_2, 459 sum(a_WTP_3) as reg_WTP_3, 460 sum(a_WTP_4) as reg_WTP_4, 461 sum(a_WTP_bas) as reg_WTP_bas 462 FROM Annual_Values_4 group by region; NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.AV_TABLE created, with 82 rows and 21 columns.

463 quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

464 RUN; Page 17HEA_03.21.11_log.txt

465 466 *The step below generates a table presenting annual acres by region and option, as well as 466 ! annual WTP by region and option. 467 It also includes restoration cost per acre, however adjustments based on timing of 467 ! restoration have not yet been made.; 468 DATA Reg_Annual_Values; 469 SET AV_Table; 470 if state~="total" THEN DELETE; 471 DROP a_WTP_1 a_WTP_2 a_WTP_3 a_WTP_4 a_WTP_bas; 472 RUN;

NOTE: There were 82 observations read from the data set WORK.AV_TABLE. NOTE: The data set WORK.REG_ANNUAL_VALUES has 7 observations and 16 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

473 474 *export data for regional acreages and values; 475 %export(reg_annual_values,"&outloc.&output",reg_annual_values);

NOTE: File "h:\ERD\TYCHE Contract\Assignments\WA 2-15 (316b Benefits & SP Study)\Task 5 - Benefits Analytic Support\IE_032111\HEA\Outputs\HEABenOutputs_22MAR11.xls" will be created if the export process succeeds. NOTE: "REG_ANNUAL_VALUES" range/sheet was successfully created. NOTE: PROCEDURE EXPORT used (Total process time): real time 0.57 seconds cpu time 0.10 seconds 19 The SAS System 12:38 Tuesday, March 22, 2011

476 477 *This is the start of code related to application of the compliance schedule; 478 /* Calculate Benefits Schedule By Option;*/ 479 480 *Import facility data with both facility id's; 481 %import(&inloc.&input,IDMAP,f1);

NOTE: WORK.F1 data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.48 seconds cpu time 0.12 seconds

482 *Import data with weights; 483 %import(&inloc.&input,ID_AND_WEIGHT,ID_AND_WEIGHT);

NOTE: WORK.ID_AND_WEIGHT data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.45 seconds cpu time 0.15 seconds

484 *Import data with region and flow; 485 %import(&inloc.&input,flowdata,f3); Page 18HEA_03.21.11_log.txt

NOTE: WORK.F3 data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.43 seconds cpu time 0.17 seconds

486 *Import data with compliance dates; 487 %import(&inloc.&input,complianceyear,cydata);

NOTE: WORK.CYDATA data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 2.40 seconds cpu time 0.06 seconds

488 489 *macro for changing the name of the variables names for compliance years under each option; 490 %macro cyr; 491 cydata.tmn1 as cyr_base, 492 cydata.tmn1 as cyr_tmn1, 493 cydata.tmn2 as cyr_tmn2, 494 cydata.tmn3 as cyr_tmn3, 495 cydata.tmn4 as cyr_tmn4 496 %mend; 497 498 *Get ID for joining datasets; 499 proc sql; 20 The SAS System 12:38 Tuesday, March 22, 2011

500 create table f4 as select 501 id.plntcode, 502 w.id as facility, 503 w.ps_wgt as Weighting_Factor 504 from f1 as id right join ID_AND_WEIGHT as w on id.surveyid=w.id; NOTE: Table WORK.F4 created, with 892 rows and 3 columns.

505 quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.03 seconds cpu time 0.01 seconds

506 507 *Drop double counted plants; 508 proc sort data=f4 out=f5; by plntcode; run;

NOTE: There were 892 observations read from the data set WORK.F4. NOTE: The data set WORK.F5 has 892 observations and 3 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

509 data f6; 510 set f5; 511 by plntcode; 512 if (not first.plntcode | not last.plntcode) and Weighting_Factor=0 then delete; 513 run;

Page 19HEA_03.21.11_log.txt

NOTE: There were 892 observations read from the data set WORK.F5. NOTE: The data set WORK.F6 has 892 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

514 515 *join flow and weight data; 516 proc sql; 517 create table f7 as select 518 f6.*, 519 f3.Benefits_Region,f3.AverageFlow 520 from f6 full join f3 on f6.plntcode=f3.EIA_Code where f3.EIA_Code~=.; NOTE: Table WORK.F7 created, with 892 rows and 5 columns.

521 quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.06 seconds cpu time 0.01 seconds

522 523 *recode region variable; 21 The SAS System 12:38 Tuesday, March 22, 2011

524 data f8 (keep=region AverageFlow Weighting_Factor PLNTCODE facility); 525 set f7; 526 format region $14.; 527 if Benefits_Region="CN" | Benefits_Region="CS" | Benefits_Region="CAL" | 527 ! Benefits_Region="HI" then region="California"; 528 else if Benefits_Region="GL" then region="Great Lakes"; 529 else if Benefits_Region="INL" then region="Inland"; 530 else if Benefits_Region="MA" then region="Mid-Atlantic";

531 else if Benefits_Region="Mex" then region="Gulf of Mexico"; 532 else if Benefits_Region="NA" then region="North Atlantic"; 533 else if Benefits_Region="SA" then region="South Atlantic"; 534 run;

NOTE: There were 892 observations read from the data set WORK.F7. NOTE: The data set WORK.F8 has 892 observations and 5 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

535 536 *combine and format data with average flow, region, wgt, and compliance

year; 537 proc sql; Page 20HEA_03.21.11_log.txt

538 create table s2a as select 539 f8.plntcode,f8.AverageFlow as avgflow,f8.Region,f8.Weighting_Factor as newweight, 540 %cyr 541 from f8 full join cydata on cydata.id=f8.facility; NOTE: Table WORK.S2A created, with 892 rows and 9 columns.

542 quit; NOTE: PROCEDURE SQL used (Total process time): real time 0.03 seconds cpu time 0.01 seconds

543 RUN; 544 545 *5j This macro calculates benefits schedule, incorporating the biological lag and the lag 545 ! in compliance; 546 %macro step5schedule(opt,cyr); 547 * 5j1 generate benefits schedule; 548 data s3; *s3 contains plntcodes weights and compliance years along with the flow arrays 548 ! (flow arrays are equal to AIF) 549 and includes the biological fraction as well. It multipolies these to get the biological 549 ! schedule; 550 set s2a; 551 where region~="Virgin Islands"; 552 array flowy_(60) flowy_1-flowy_60; 553 array bio(60) bio_1-bio_60; 554 array bschd(60) bschd_1-bschd_60; 555 do i=1 to 60; 556 557 if "&opt"="baseline" then do; 558 flowy_(i)=avgflow; 22 The SAS System 12:38 Tuesday, March 22, 2011

559 if region="Inland" | region="Great Lakes" | region="Gulf of Mexico" then do; 559 ! *benefits begin in first year for these regions; 560 *this assumes no biological lag; 561 if i=1 then bio(i)=1; 562 if i=2 then bio(i)=1; 563 if i=3 then bio(i)=1; 564 if i=4 then bio(i)=1; 565 if i=5 then bio(i)=1; 566 if i=6 then bio(i)=1; 567 if i>6 and i<=45 then bio(i)=1; 568 if i=46 then bio(i)=.83; 569 if i=47 then bio(i)=.67; 570 if i=48 then bio(i)=.5; Page 21HEA_03.21.11_log.txt

571 if i=49 then bio(i)=.33; 572 if i=50 then bio(i)=.17; 573 if i>50 then bio(i)=0;
574 575 end; 576 else do; *benefits also begin in the first year for these regions; 577 *this assumes no biological lag; 578 if i=1 then bio(i)=1; 579 if i=2 then bio(i)=1; 580 if i=3 then bio(i)=1; 581 if i=4 then bio(i)=1; 582 if i=5 then bio(i)=1; 583 if i=6 then bio(i)=1; 584 if i=7 then bio(i)=1; 585 if i>7 and i<=45 then bio(i)=1; 586 if i=46 then bio(i)=.83; 587 if i=47 then bio(i)=.67; 588 if i=48 then bio(i)=.5; 589 if i=49 then bio(i)=.33; 590 if i=50 then bio(i)=.17; 591 if i>50 then bio(i)=0; 592 end; 593 end; 594 595 else do; 596 if &cyr.>=&ie_year. then delete; *cyr_ct=2 indicates that there is a tower in place 596 ! at baseline; 597 if region="Inland" | region="Great Lakes" | region="Gulf of Mexico" then do; 598 *benefits begin in first year for these regions; 599 x=i-&cyr.+&t0; *e.g., if i=1 and cyr = 2011 and first year of rule is 2011 then x=1 599 ! in 2011; 600 if x<=0 then flowy_(i)=0; *x=1 in first year of compliance; 601 else flowy_(i)=avgflow; 602 if _n_=1 then put "Not BASELINE"; 603 604 if x<=0 then bio(i)=0; Page 22HEA_03.21.11_log.txt

605 else if x=1 then bio(i)=.2; 606 else if x=2 then bio(i)=.4; 607 else if x=3 then bio(i)=.6; 608 else if x=4 then bio(i)=.8; 609 else if x=5 then bio(i)=1; 23 The SAS System 12:38 Tuesday, March 22, 2011

610 else if x=6 then bio(i)=1; 611 else if x=7 then bio(i)=1; 612 else if x=8 then bio(i)=1; 613 else if x=9 then bio(i)=1; 614 else if x>=9

and i<=45 then bio(i)=1; 615 else if i=46 then bio(i)=.83; 616 else if i=47 then bio(i)=.67; 617 else if i=48 then bio(i)=.5; 618 else if i=49 then bio(i)=.33; 619 else if i=50 then bio(i)=0.17; 620 else if i>50 then bio(i)=0; 621 end; 622 else do; 623 *benefits also begin in the first year for these regions; 624 x=i-&cyr.+&t0; *e.g., if i=1 and cyr = 2011 and first year of rule is 2011 then x=1 624 ! in 2012; 625 if x<0 then flowy_(i)=0;*x=1 in second year of compliance; 626 else flowy_(i)=avgflow; 627 if _n_=1 then put "Not BASELINE"; 628 629 if x<=0 then bio(i)=0; 630 else if x=1 then bio(i)=.2; 631 else if x=2 then bio(i)=.4; 632 else if x=3 then bio(i)=.6; 633 else if x=4 then bio(i)=.8; 634 else if x=5 then bio(i)=1; 635 else if x=6 then bio(i)=1; Page 23HEA_03.21.11_log.txt

636 else if x=7 then bio(i)=1; 637 else if x=8 then bio(i)=1; 638 else if x=9 then bio(i)=1; 639 else if x=10

then bio(i)=1; 640 else if x>=10 and i<=45 then bio(i)=1; 641 else if i=46 then bio(i)=.83; 642 else if i=47 then bio(i)=.67; 643 else if i=48 then bio(i)=.5; 644 else if i=49 then bio(i)=.33; 645 else if i=50 then bio(i)=0.17; 646 else if i>50 then bio(i)=0; 647 648 end; 649 end; 650 *the fractions here only reflect the fact that the intial compliance year for each facility 650 ! reflects a five year average, 651 in the inputs dataset, these values are converted to the first year by subtracting two, 652 the steps of 0.2 reflect staggered implementation over this five year period, 653 there is not biological lag incorporated in the HEA model, this is strictly related to 653 ! compliance; 654 655 bschd(i)=(flowy_(i)*bio(i)); 656 end; 657 format reg $30.; 658 if region="California"

then reg="calif"; 659 else if region="Great Lakes" then reg="greatlakes"; 660 else if region="Gulf of Mexico" then reg="gulfmexico"; 24 The SAS System 12:38 Tuesday, March 22, 2011

661 else if region="Inland"

then reg="inland"; 662 else if region="Mid-Atlantic" then reg="midatlantic"; 663 else if region="North Atlantic" then reg="northatlantic"; 664 else if region="South Atlantic" then reg="southatlantic"; 665 666 run; 667 668 * 5j2 calculate total average flow by region; 669 proc sql; 670 create table s5 as select 671 s3.*, Page 24HEA_03.21.11_log.txt

672 sum(avgflow*newweight) as totalavgflow /*group flag*/ 673 from s3 group by region; 674 quit; 675 676 * 5j3 generate flow and benefits schedule variables (for each facility) as percentages to 676 ! total regional average flow; 677 data s6 (drop=bio_1-bio_60 flowy_1-flowy_60); 678 set s5; 679 array flowy_(60) flowy_1-flowy_60; 680 array bschd(60) bschd_1-bschd_60; 681 do i=1 to 60; 682 IF totalavgflow~=0 then flowy_(i)=newweight*flowy_(i)/totalavgflow; 683 IF totalavgflow=0 then flowy_(i)=0; 684 IF totalavgflow~=0 then bschd(i)=newweight*bschd(i)/totalavgflow; 685 IF totalavgflow=0 then bschd(i)=0; 686 end; 687 run; 688 689 * 5j4 sort data by region; 690 proc sort data=s6 out=s7; by region; run; 691 692 * 5j6 generate benefits schedule variable for region, e.g., 1 = full benefits, .5 = 50% 692 ! of full benefits; 693 data s8_&opt (keep=option region reg rbschd_1-rbschd_60); 694 retain option region reg rbschd_1-rbschd_60; 695 set s7; 696 by region; 697 option="&opt"; 698 array bschd(60) bschd_1-bschd_60; 699 array rbschd(60) rbschd_1-rbschd_60; 700 do i=1 to 60; 701 if first.region then rbschd(i)=bschd(i); 702 else rbschd(i)+bschd(i); 703 end; 704 if last.region; 705 run; 706 %mend; 707 708 %macro step6schedule(opt,cyr); 709 * 5j1 generate benefits schedule; 710 data s3; *s3 contains plntcodes weights and compliance years along with the flow arrays 710 ! (flow arrays are equal to AIF) 711 and includes the biological fraction as well. It multipolies these to get the biological 25 The SAS System 12:38 Tuesday, March 22, 2011

711 ! schedule; 712 set s2a; 713 where region~="Virgin Islands"; 714 array flowy_(60) flowy_1-flowy_60; 715 array bio(60) bio_1-bio_60; 716 array bschd(60) bschd_1-bschd_60; 717 do i=1 to 60; 718 719 if "&opt"="baseline" then do; 720 flowy_(i)=avgflow; Page 25HEA_03.21.11_log.txt

721 if region="Inland" | region="Great Lakes" | region="Gulf of Mexico" then do; 722 if i=1 then bio(i)=1; 723 if i=2 then bio(i)=1; 724 if i=3 then bio(i)=1; 725 if i=4 then bio(i)=1; 726 if i=5 then bio(i)=1; 727 if i=6 then bio(i)=1; 728 if i>6 and i<=45 then bio(i)=1; 729 if i=46 then bio(i)=.83; 730 if i=47 then bio(i)=.67; 731 if i=48 then bio(i)=.5; 732 if i=49 then bio(i)=.33; 733 if i=50 then bio(i)=.17; 734 if i>50 then bio(i)=0;*benefits begin in first year for these regions; 735 end; 736 else do; 737 if i=1 then bio(i)=1; 738 if i=2 then bio(i)=1; 739 if i=3 then bio(i)=1; 740 if i=4 then bio(i)=1; 741 if i=5 then bio(i)=1; 742 if i=6 then bio(i)=1; 743 if i=7 then bio(i)=1; 744 if i>7 and i<=45 then bio(i)=1; 745 if i=46 then bio(i)=.83; 746 if i=47 then bio(i)=.67; 747 if i=48 then bio(i)=.5; 748 if i=49 then bio(i)=.33; 749 if i=50 then bio(i)=.17; 750 if i>50 then bio(i)=0;*benefits also begin in first year for these regions; 751 end; 752 end; 753 754 else do; 755 if &cyr.<&ie_year. Page 26HEA_03.21.11_log.txt

then delete; 756 if region="Inland" | region="Great Lakes" | region="Gulf of Mexico" then do; 757 *benefits begin in first year for these regions; 758 x=i-&cyr.+&t0; *e.g., if i=1 and cyr = 2011 and first year of rule is 2011 then x=1 758 ! in 2011; 759 if x<=0 then flowy_(i)=0; *x=1 in first year of compliance; 760 else flowy_(i)=avgflow; 761 if _n_=1 then put "Not BASELINE"; 762 763 if x<=0 then bio(i)=0; 26 The SAS System 12:38 Tuesday, March 22, 2011

764 else if x=1 then bio(i)=.2; 765 else if x=2 then bio(i)=.4; 766 else if x=3 then bio(i)=.6; 767 else if x=4 then bio(i)=.8; 768 else if x=5 then bio(i)=1; 769 else if x=6 then bio(i)=1; 770 else if x=7 then bio(i)=1; 771 else if x=8 then bio(i)=1; 772 else if x=9 then bio(i)=1; 773 else if x>=9

and i<=45 then bio(i)=1; 774 else if i=46 then bio(i)=.83; 775 else if i=47 then bio(i)=.67; 776 else if i=48 then bio(i)=.5; 777 else if i=49 then bio(i)=.33; 778 else if i=50 then bio(i)=0.17; 779 else if i>50 then bio(i)=0; 780 end; 781 else do; 782 *benefits also begin in first year for these regions; 783 x=i-&cyr.+&t0; *e.g., if i=1 and cyr = 2011 and first year of rule is 2011 then x=1 783 ! in 2012; 784 if x<0 then flowy_(i)=0;*x=1 in second year of compliance; 785 else flowy_(i)=avgflow; Page 27HEA_03.21.11_log.txt

786 if _n_=1 then put "Not BASELINE"; 787 788 if x<=0 then bio(i)=0; 789 else if x=1 then bio(i)=.2; 790 else if x=2 then bio(i)=.4; 791 else if x=3 then bio(i)=.6; 792 else if x=4 then bio(i)=.8; 793 else if x=5 then bio(i)=1; 794 else if x=6 then bio(i)=1; 795 else if x=7 then bio(i)=1; 796 else if x=8 then bio(i)=1; 797 else if x=9 then bio(i)=1; 798 else if x=10

then bio(i)=1; 799 else if x>=10 and i<=45 then bio(i)=1; 800 else if i=46 then bio(i)=.83; 801 else if i=47 then bio(i)=.67; 802 else if i=48 then bio(i)=.5; 803 else if i=49 then bio(i)=.33; 804 else if i=50 then bio(i)=0.17; 805 else if i>50 then bio(i)=0; 806 end; 807 end; 808 *the fractions here only reflect the fact that the intial compliance year for each 808 ! facility reflects a five year average, 809 in the inputs dataset, these values are converted to the first year by subtracting two, 810 the steps of 0.2 reflect staggered implementation over this five year period, 811 there is not biological lag incorporated in the HEA model, this is strictly related to 811 ! compliance; 812 813 bschd(i)=(flowy_(i)*bio(i)); 814 end; 27 The SAS System 12:38 Tuesday, March 22, 2011

815 format reg $30.; 816 if region="California"

then reg="calif"; 817 else if region="Great Lakes" then reg="greatlakes"; 818 else if region="Gulf of Mexico" Page 28HEA_03.21.11_log.txt

then reg="gulfmexico"; 819 else if region="Inland"

then reg="inland"; 820 else if region="Mid-Atlantic" then reg="midatlantic"; 821 else if region="North Atlantic" then reg="northatlantic"; 822 else if region="South Atlantic" then reg="southatlantic"; 823 824 run; 825 826 * 5j2 calculate total average flow by region; 827 proc sql; 828 create table s5 as select 829 s3.*, 830 sum(avgflow*newweight) as totalavgflow /*group flag*/ 831 from s3 group by region; 832 quit; 833 834 * 5j3 generate flow and benefits schedule variables (for each facility) as percentages to 834 ! total regional average flow; 835 data s6 (drop=bio_1-bio_60 flowy_1-flowy_60); 836 set s5; 837 array flowy_(60) flowy_1-flowy_60; 838 array bschd(60) bschd_1-bschd_60; 839 do i=1 to 60; 840 IF totalavgflow~=0 then flowy_(i)=newweight*flowy_(i)/totalavgflow; 841 IF totalavgflow=0 then flowy_(i)=0; 842 IF totalavgflow~=0 then bschd(i)=newweight*bschd(i)/totalavgflow; 843 IF totalavgflow=0 then bschd(i)=0; 844 end; 845 run; 846 847 * 5j4 sort data by region; 848 proc sort data=s6 out=s25; by region; run; 849 * 5j6 generate benefits schedule variable for region, e.g., 1 = full benefits, .5 = 50% 849 ! of full benefits; 850 data s9_&opt (keep=option region reg rbschd_1-rbschd_60); 851 retain option region reg rbschd_1-rbschd_60; 852 set s25; 853 by region; 854 option="&opt"; 855 array bschd(60) bschd_1-bschd_60; 856 array rbschd(60) rbschd_1-rbschd_60; 857 do i=1 to 60; 858 if first.region then rbschd(i)=bschd(i); 859 else rbschd(i)+bschd(i); 860 end; 861 if last.region; 862 run; 863 %mend; 864 *end of insert from impingement fraction model; 865 866 * 5j This macro calculates benefits schedule, incorporating the biological lag and the lag 28 The SAS System 12:38 Tuesday, March 22, 2011 Page 29HEA_03.21.11_log.txt

866 ! in compliance; 867 * 5k Generate dataset of Benefits Schedule By Option; 868 %macro optionmac11; 869 %step5schedule(baseline,cyr_base); 870 %step5schedule(tmn1,cyr_tmn1); 871 %step5schedule(tmn2,cyr_tmn2); 872 %step5schedule(tmn3,cyr_tmn3); 873 %step5schedule(tmn4,cyr_tmn4); 874 %mend; 875 876 %macro optionmac22; 877 %step6schedule(baseline,cyr_base); 878 %step6schedule(tmn1,cyr_tmn1); 879 %step6schedule(tmn2,cyr_tmn2); 880 %step6schedule(tmn3,cyr_tmn3); 881 %step6schedule(tmn4,cyr_tmn4); 882 %mend; 883 %optionmac11;

NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 892 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 892 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.04 seconds cpu time 0.04 seconds

NOTE: There were 892 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 892 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: There were 892 observations read from the data set WORK.S6. NOTE: The data set WORK.S7 has 892 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.03 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S7. NOTE: The data set WORK.S8_BASELINE has 8 observations and 63 variables. 29 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

Page 30HEA_03.21.11_log.txt

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE 30 The SAS System 12:38 Tuesday, March 22, 2011

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE Page 31HEA_03.21.11_log.txt

Not BASELINE NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 19320 at 883:137 4320 at 883:109 NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 892 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.03 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 892 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.06 seconds cpu time 0.03 seconds

NOTE: There were 892 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 892 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: There were 892 observations read from the data set WORK.S6. NOTE: The data set WORK.S7 has 892 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.04 seconds cpu time 0.01 seconds

NOTE: There were 892 observations read from the data set WORK.S7. NOTE: The data set WORK.S8_TMN1 has 8 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

31 The SAS System 12:38 Tuesday, March 22, 2011

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE Page 32HEA_03.21.11_log.txt

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE 32 The SAS System 12:38 Tuesday, March 22, 2011

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 19320 at 883:137 4320 at 883:109 NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 700 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 700 rows and 193 columns. Page 33HEA_03.21.11_log.txt

NOTE: PROCEDURE SQL used (Total process time): real time 0.04 seconds cpu time 0.03 seconds

NOTE: There were 700 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 700 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: There were 700 observations read from the data set WORK.S6. NOTE: The data set WORK.S7 has 700 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: There were 700 observations read from the data set WORK.S7. NOTE: The data set WORK.S8_TMN2 has 8 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Not BASELINE
Not BASELINE 33 The SAS System 12:38 Tuesday, March 22, 2011

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE Page 34HEA_03.21.11_log.txt

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE 34 The SAS System 12:38 Tuesday, March 22, 2011

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 19320 at 883:137 4320 at 883:109 NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 500 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 500 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.03 seconds cpu time 0.03 seconds

NOTE: There were 500 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 500 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Page 35HEA_03.21.11_log.txt

NOTE: There were 500 observations read from the data set WORK.S6. NOTE: The data set WORK.S7 has 500 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.03 seconds cpu time 0.00 seconds

NOTE: There were 500 observations read from the data set WORK.S7. NOTE: The data set WORK.S8_TMN3 has 7 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE 35 The SAS System 12:38 Tuesday, March 22, 2011

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE Page 36HEA_03.21.11_log.txt

Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE
Not BASELINE 36 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 19320 at 883:137 4320 at 883:109 NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 892 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 892 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.04 seconds cpu time 0.03 seconds

NOTE: There were 892 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 892 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S6. NOTE: The data set WORK.S7 has 892 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S7. NOTE: The data set WORK.S8_TMN4 has 8 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Page 37HEA_03.21.11_log.txt

884 %optionmac22;

NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 892 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. 37 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: Table WORK.S5 created, with 892 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.04 seconds cpu time 0.03 seconds

NOTE: There were 892 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 892 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S6. NOTE: The data set WORK.S25 has 892 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S25. NOTE: The data set WORK.S9_BASELINE has 8 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 0 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 0 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Page 38HEA_03.21.11_log.txt

NOTE: There were 0 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 0 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds 38 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: Input data set is empty. NOTE: The data set WORK.S25 has 0 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 0 observations read from the data set WORK.S25. NOTE: The data set WORK.S9_TMN1 has 0 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 192 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 192 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.04 seconds cpu time 0.03 seconds

NOTE: There were 192 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 192 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 192 observations read from the data set WORK.S6. NOTE: The data set WORK.S25 has 192 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 192 observations read from the data set WORK.S25. NOTE: The data set WORK.S9_TMN2 has 7 observations and 63 variables. 39 The SAS System 12:38 Page 39HEA_03.21.11_log.txt

Tuesday, March 22, 2011

NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 392 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 392 rows and 193 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.03 seconds cpu time 0.03 seconds

NOTE: There were 392 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 392 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 392 observations read from the data set WORK.S6. NOTE: The data set WORK.S25 has 392 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: There were 392 observations read from the data set WORK.S25. NOTE: The data set WORK.S9_TMN3 has 8 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 892 observations read from the data set WORK.S2A. WHERE region not = 'Virgin Islands'; NOTE: The data set WORK.S3 has 0 observations and 192 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

40 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: The query requires remerging summary statistics back with the original data. NOTE: Table WORK.S5 created, with 0 rows and 193 columns.

Page 40HEA_03.21.11_log.txt

NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: There were 0 observations read from the data set WORK.S5. NOTE: The data set WORK.S6 has 0 observations and 73 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: Input data set is empty. NOTE: The data set WORK.S25 has 0 observations and 73 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 0 observations read from the data set WORK.S25. NOTE: The data set WORK.S9_TMN4 has 0 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

885 *step5data contains the benefits schedules for all options for impingement only; 886 data Step5data; 887 length option $50.0; 888 set s8_baseline s8_tmn1 s8_tmn2 s8_tmn3 s8_tmn4; 889 IF region="" THEN DELETE; 890 DROP region; 891 array rbschd_(60) rbschd_1-rbschd_60; 892 do i=1 to 60; 893 *know that tmn2 does not have any impingement only, towers everywhere; 894 IF option="" then rbschd_(i)=0; 895 END; 896 run;

NOTE: There were 8 observations read from the data set WORK.S8_BASELINE. NOTE: There were 8 observations read from the data set WORK.S8_TMN1. NOTE: There were 8 observations read from the data set WORK.S8_TMN2. NOTE: There were 7 observations read from the data set WORK.S8_TMN3. NOTE: There were 8 observations read from the data set WORK.S8_TMN4. NOTE: The data set WORK.STEP5DATA has 35 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds 41 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.01 seconds

897 proc sort data=step5data out=step5data_1; 898 by reg; 899 RUN;

NOTE: There were 35 observations read from the data set WORK.STEP5DATA. Page 41HEA_03.21.11_log.txt

NOTE: The data set WORK.STEP5DATA_1 has 35 observations and 63 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

900 *step20data contains the benefits schedules for all options for towers; 901 data Step20data; 902 length option $20.0; 903 set s9_baseline s9_tmn1 s9_tmn2 s9_tmn3 s9_tmn4; 904 IF region="" THEN DELETE; 905 DROP region; 906 array rbschd_(60) rbschd_1-rbschd_60; 907 array sbschd_(60) sbschd_1-sbschd_60; 908 Do i=1 to 60; 909 sbschd_(i)=rbschd_(i); 910 DROP rbschd_1-rbschd_60; 911 END; 912 run;

NOTE: There were 8 observations read from the data set WORK.S9_BASELINE. NOTE: There were 0 observations read from the data set WORK.S9_TMN1. NOTE: There were 7 observations read from the data set WORK.S9_TMN2. NOTE: There were 8 observations read from the data set WORK.S9_TMN3. NOTE: There were 0 observations read from the data set WORK.S9_TMN4. NOTE: The data set WORK.STEP20DATA has 21 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

913 proc sort data=step20data out=step20data_1; 914 by reg; 915 RUN;

NOTE: There were 21 observations read from the data set WORK.STEP20DATA. NOTE: The data set WORK.STEP20DATA_1 has 21 observations and 63 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

916 *comp_calcs contains the seperate benefit schedules for each for impingement only 916 ! (step5data) and towers (step20data); 917 data comp_calcs; 918 merge step5data_1 step20data_1; 42 The SAS System 12:38 Tuesday, March 22, 2011

919 by reg option; 920 run;

NOTE: There were 35 observations read from the data set WORK.STEP5DATA_1. NOTE: There were 21 observations read from the data set WORK.STEP20DATA_1. NOTE: The data set WORK.COMP_CALCS has 35 observations and 123 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

921 Proc sort data=comp_calcs out=comp_calcs; 922 by reg option; Page 42HEA_03.21.11_log.txt

923 Run;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS. NOTE: The data set WORK.COMP_CALCS has 35 observations and 123 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

924 *ie_imp brings in the impingement fraction which needs to be applied to the comp_calcs 924 ! sheet; 925 Data ie_imp; 926 SET ie (KEEP = option_name region metric comrec_type species_econ impingement_fraction); 927 IF metric="ae1.lbs"; 928 IF comrec_type="all.types"; 929 IF species_econ="zz.all.species"; 930 IF region~="zz.allregions"; 931 If option_name="option.tmn1" then option="tmn1"; 932 else if option_name="option.tmn2" then option="tmn2"; 933 else if option_name="option.tmn3" then option="tmn3"; 934 else if option_name="option.tmn4" then option="tmn4"; 935 reg=region; 936 Drop option_name; 937 Drop region; 938 Run;

NOTE: There were 24640 observations read from the data set WORK.IE. NOTE: The data set WORK.IE_IMP has 28 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.20 seconds cpu time 0.01 seconds

939 Proc sort data=ie_imp out=ie_imp; 940 by reg option; 941 Run;

NOTE: There were 28 observations read from the data set WORK.IE_IMP. NOTE: The data set WORK.IE_IMP has 28 observations and 6 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds 43 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.00 seconds

942 *comp_imp merges the impingement only and towers benefits schedules with the schedules the 942 ! impingement fraction; 943 data comp_imp; 944 length option $20; 945 merge ie_imp comp_calcs; 946 by reg option; 947 run;

WARNING: Multiple lengths were specified for the BY variable reg by input data sets. This may cause

unexpected results. WARNING: Multiple lengths were specified for the BY variable option by input data sets and LENGTH, Page 43HEA_03.21.11_log.txt FORMAT, INFORMAT, or ATTRIB statements. This may cause unexpected results. NOTE: There were 28 observations read from the data set WORK.IE_IMP. NOTE: There were 35 observations read from the data set WORK.COMP_CALCS. NOTE: The data set WORK.COMP_IMP has 35 observations and 127 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

948 *comp_calcs_1 calculates the final benefit schedule which incorporates the benefit fraction 948 ! ; 949 data comp_calcs_1; 950 set comp_imp; 951 array rbschd_(60) rbschd_1-rbschd_60; 952 array sbschd_(60) sbschd_1-sbschd_60; 953 array fschd_(60) fschd_1-fschd_60; 954 Do i=1 to 60; 955 IF rbschd_(i)="." then rbschd_(i)=0; 956 IF sbschd_(i)="." then sbschd_(i)=0; 957 fschd_(i)=(impingement_fraction*rbschd_(i)+((1-impingement_fraction)*sbschd_(i))); 958 IF impingement_fraction="" then fschd_(i)=rbschd_(i); 959 End; 960 Run;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 955:16 956:16 957:13 957:49 NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 420 at 957:33 420 at 957:44 420 at 957:48 420 at 957:70 NOTE: There were 35 observations read from the data set WORK.COMP_IMP. NOTE: The data set WORK.COMP_CALCS_1 has 35 observations and 187 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

961 *comp_calcs_2 is comp_calcs_1 after having rows dropped, transposed, and having some961 ! variable names changed962 it results in the final biological schedules being listed vertically; 963 DATA comp_calcs_2; 44 The SAS System 12:38 Tuesday, March 22, 2011

964 SET comp_calcs_1; 965 Drop rbschd_1-rbschd_60; 966 Drop sbschd_1-sbschd_60; 967 Drop impingement_fraction metric comrec_type species_econ i; 968 Drop i; 969 RUN;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_1. NOTE: The data set WORK.COMP_CALCS_2 has 35 observations and 62 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

970 ************************************************************************* Page 44HEA_03.21.11_log.txt

971 REPOWERING CALCS START 972 *************************************************************************; 973 %import(&inloc.&input2,rep_adj,rep_adj);

NOTE: WORK.REP_ADJ data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 5.29 seconds cpu time 0.28 seconds

974 %import(&inloc.&input,rpschd,rpschd);

NOTE: WORK.RPSCHD data set was successfully created. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.56 seconds cpu time 0.11 seconds

975 976 Proc sort data=rep_adj out=rep_adj; 977 by option; 978 RUN;

NOTE: There were 240 observations read from the data set WORK.REP_ADJ. NOTE: The data set WORK.REP_ADJ has 240 observations and 4 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

979 Proc sort data=rpschd out=rpschd; 980 by option; 981 RUN;

NOTE: There were 10 observations read from the data set WORK.RPSCHD. NOTE: The data set WORK.RPSCHD has 10 observations and 61 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 45 The SAS System 12:38 Tuesday, March 22, 2011

982 983 Data repow; 984 merge rep_adj rpschd; 985 by option; 986 adj=1/rp_adj; 987 drop rp_adj; 988 RUN;

NOTE: There were 240 observations read from the data set WORK.REP_ADJ. NOTE: There were 10 observations read from the data set WORK.RPSCHD. NOTE: The data set WORK.REPOW has 240 observations and 64 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

989 990 Data repow_1; Page 45HEA_03.21.11_log.txt

991 set repow; 992 array rpschd_(60) rpschd_1-rpschd_60; 993 array rpschd_adj_(60) rpschd_adj_1-rpschd_adj_60; 994 do i=1 to 60; 995 rpschd_adj_(i)=rpschd_(i)*(1-adj); 996 if rpschd_(i)=0 then rpschd_adj_(i)=0; 997 end; 998 drop rp_adj rpschd_1-rpschd_60 i; 999 if lossmode="imp" then delete; 1000 if lossmode="ent" then delete; 1001 if region="zz.allregions" then delete; 1002 if option= "baseline_0" | option="tmn1_0" | option="tmn2_0" | option="tmn3_0" | 1002 ! option="tmn4_0" then delete; 1003 reg=region; 1004 drop region lossmode; *all values only refer to IE combined; 1005 RUN;

WARNING: The variable rp_adj in the DROP, KEEP, or RENAME list has never been referenced. NOTE: There were 240 observations read from the data set WORK.REPOW. NOTE: The data set WORK.REPOW_1 has 35 observations and 63 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1006 1007 Proc Sort data=repow_1 out=repow_1; 1008 by option reg; 1009 RUN;

NOTE: There were 35 observations read from the data set WORK.REPOW_1. NOTE: The data set WORK.REPOW_1 has 35 observations and 63 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds 46 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.00 seconds

1010 1011 Proc Sort data=comp_calcs_2 out=comp_calcs_2; 1012 by option reg; 1013 RUN;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_2. NOTE: The data set WORK.COMP_CALCS_2 has 35 observations and 62 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1014 1015 Data comp_calcs_2; 1016 merge repow_1 comp_calcs_2; 1017 by option reg; 1018 RUN;

WARNING: Multiple lengths were specified for the BY variable option by input data sets. This may

cause unexpected results. Page 46HEA_03.21.11_log.txt

NOTE: There were 35 observations read from the data set WORK.REPOW_1. NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_2. NOTE: The data set WORK.COMP_CALCS_2 has 35 observations and 123 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1019 1020 Data comp_calcs_2; 1021 set comp_calcs_2; 1022 array fschd_(60) fschd_1-fschd_60; 1023 array rpschd_adj_(60) rpschd_adj_1-rpschd_adj_60; 1024 array fschd_adj_(60) fschd_adj_1-fschd_adj_60; 1025 do i = 1 to 60; 1026 fschd_adj_(i)=fschd_(i)*adj + rpschd_adj_(i); 1027 fschd_(i) = fschd_adj_(i); 1028 END; 1029 drop i rpschd_adj_1-rpschd_adj_60 fschd_adj_1-fschd_adj_60 adj; 1030 RUN;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_2. NOTE: The data set WORK.COMP_CALCS_2 has 35 observations and 62 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1031 1032 Proc sort data=comp_calcs_2 out=comp_calcs_2; 1033 by reg option; 47 The SAS System 12:38 Tuesday, March 22, 2011

1034 RUN;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_2. NOTE: The data set WORK.COMP_CALCS_2 has 35 observations and 62 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1035 ************************************************************************* 1036 END OF REPOWERING CALCULATIONS 1037 *************************************************************************; 1038 1039 *comp_calcs_3 has both the benefits and cost schedule included; 1040 Data comp_calcs_3; 1041 SET comp_calcs_2; 1042 array fschd_(60)fschd_1-fschd_60; 1043 array cs_(59) cs_01-cs_59; 1044 do i= 1 to 59; 1045 cs_(i)= fschd_(i+1)-fschd_(i); 1046 IF i>=20 then cs_(i)=0; 1047 cs_00=fschd_1; 1048 drop i; 1049 END; 1050 RUN;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_2. NOTE: The data set WORK.COMP_CALCS_3 has 35 observations and 122 variables. Page 47HEA_03.21.11_log.txt

NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1051 *seperate the benefit schedule (fschd)from the cost schedule(cs); 1052 *ben_schd is the benefit schedule; 1053 Data ben_schd; 1054 Set comp_calcs_3 (rename=(reg=region)); 1055 Drop cs_00-cs_59; 1056 Run;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_3. NOTE: The data set WORK.BEN_SCHD has 35 observations and 62 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1057 *rcost_schd is the restoration cost schedule; 1058 Data rcost_schd; 1059 Set comp_calcs_3 (rename=(reg=region)); 1060 Drop fschd_1-fschd_60; 1061 Run;

NOTE: There were 35 observations read from the data set WORK.COMP_CALCS_3. 48 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: The data set WORK.RCOST_SCHD has 35 observations and 62 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1062 *transpose both data sets into a vertical format; 1063 *ben_schd_1 is the transposed benefit schedule; 1064 Proc Transpose data=ben_schd out=ben_schd_1; 1065 by region; 1066 id option; 1067 Run;

NOTE: There were 35 observations read from the data set WORK.BEN_SCHD. NOTE: The data set WORK.BEN_SCHD_1 has 420 observations and 7 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1068 *need to rename former variable _name_ as "fschd"; 1069 Data ben_schd_2; 1070 Set ben_schd_1 (rename=(_name_=fschd)); 1071 Run;

NOTE: There were 420 observations read from the data set WORK.BEN_SCHD_1. NOTE: The data set WORK.BEN_SCHD_2 has 420 observations and 7 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1072 *rcost_schd_1 is the transposed restoration cost schedule; 1073 Proc Transpose data=rcost_schd out=rcost_schd_1; Page 48HEA_03.21.11_log.txt

1074 by region; 1075 id option; 1076 Run;

NOTE: There were 35 observations read from the data set WORK.RCOST_SCHD. NOTE: The data set WORK.RCOST_SCHD_1 has 420 observations and 7 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1077 *need to sort the rest cost schedule data by region and and cs_schd in order to get 1077 ! cs_99-cs_59 in the correct order; 1078 Proc Sort data=rcost_schd_1 out=rcost_schd_1; 1079 by region _name_; 1080 Run;

NOTE: There were 420 observations read from the data set WORK.RCOST_SCHD_1. NOTE: The data set WORK.RCOST_SCHD_1 has 420 observations and 7 variables. NOTE: PROCEDURE SORT used (Total process time): 49 The SAS System 12:38 Tuesday, March 22, 2011

real time 0.01 seconds cpu time 0.00 seconds

1081 *merge the benefits and restoration cost schdules back together, comb_schd; 1082 *need to different option names under the restoration cost schedule before merging with the 1082 ! benefits schedule; 1083 DATA rcost_schd_2; 1084 SET rcost_schd_1 (rename=(_name_=cs_schd)); 1085 array tmn(5) tmn1 tmn2 tmn3 tmn4 baseline; 1086 array csn(5) csn1 csn2 csn3 csn4 csn_baseline; 1087 do i=1 to 5; 1088 csn(i)=tmn(i); 1089 END; 1090 DROP tmn1 tmn2 tmn3 tmn4 baseline; 1091 Drop i; 1092 run;

NOTE: There were 420 observations read from the data set WORK.RCOST_SCHD_1. NOTE: The data set WORK.RCOST_SCHD_2 has 420 observations and 7 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1093 *comb_schd has the combined benefit and restoration cost schedules, edit to incorporate 1093 ! regional WTP values, acreages, and costs; 1094 Data comb_schd; 1095 merge ben_schd_2 rcost_schd_2; 1096 by region; 1097 Run;

NOTE: MERGE statement has more than one data set with repeats of BY values. NOTE: There were 420 observations read from the data set WORK.BEN_SCHD_2. NOTE: There were 420 observations read from the data set WORK.RCOST_SCHD_2. NOTE: The data set WORK.COMB_SCHD has 420 observations and 13 variables. Page 49HEA_03.21.11_log.txt

NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.03 seconds

1098 DATA Reg_annual_values_1; 1099 length region $20; 1100 format region $20.; 1101 SET reg_annual_values; 1102 DROP rest_id state; 1103 RUN;

NOTE: There were 7 observations read from the data set WORK.REG_ANNUAL_VALUES. NOTE: The data set WORK.REG_ANNUAL_VALUES_1 has 7 observations and 14 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

50 The SAS System 12:38 Tuesday, March 22, 2011

1104 *the comb_calcs file combine the combined benefits schedule with the annual WTP values 1104 ! (Annual_wtp) and the annual acreages (Annual_acres); 1105 *also add in period, year, and discount factors in the same step; 1106 Data comb_schd_1; 1107 merge comb_schd reg_annual_values_1; 1108 by region; 1109 Drop numHH reg_HH; 1110 DO year=substr(fschd,7); 1111 END; 1112 period = year+(&t0.-&yrba.); 1113 df_3=(1/(1.03**period)); 1114 df_7=(1/(1.07**period)); 1115 Run;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 1112:11 WARNING: Multiple lengths were specified for the BY variable region by input data sets. This may

cause unexpected results. NOTE: There were 420 observations read from the data set WORK.COMB_SCHD. NOTE: There were 7 observations read from the data set WORK.REG_ANNUAL_VALUES_1. NOTE: The data set WORK.COMB_SCHD_1 has 420 observations and 28 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1116 *add in the calculations for WTP and restoration costs; 1117 DATA comb_schd_2; 1118 SET comb_schd_1; 1119 array p3_WTP_(5) p3_WTP_1 p3_WTP_2 p3_WTP_3 p3_WTP_4 p3_WTP_bas; 1120 array p7_WTP_(5) p7_WTP_1 p7_WTP_2 p7_WTP_3 p7_WTP_4 p7_WTP_bas; 1121 array reg_WTP_(5) reg_WTP_1 reg_WTP_2 reg_WTP_3 reg_WTP_4 reg_WTP_bas; 1122 array p3_rc_(5) p3_rc_1 p3_rc_2 p3_rc_3 p3_rc_4 p3_rc_bas; 1123 array p7_rc_(5) p7_rc_1 p7_rc_2 p7_rc_3 p7_rc_4 p7_rc_bas; 1124 array tmn(5) tmn1 tmn2 tmn3 tmn4 baseline; 1125 array csn(5) csn1 csn2 csn3 csn4 csn_baseline; 1126 array frac(5) frac_t1 frac_t2 frac_t3 frac_t4 frac_baseline; Page 50HEA_03.21.11_log.txt

1127 do i= 1 to 5; 1128 p3_WTP_(i)=tmn(i)*reg_WTP_(i)*df_3; 1129 p7_WTP_(i)=tmn(i)*reg_WTP_(i)*df_7; 1130 p3_rc_(i)=(csn(i)*frac(i)*cost_acre*df_3)/1000; 1131 p7_rc_(i)=(csn(i)*frac(i)*cost_acre*df_7)/1000; 1132 END; 1133 RUN;

NOTE: Character values have been converted to numeric values at the places given by: (Line):(Column). 1130:28 1131:28 NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 1680 at 1130:19 1680 at 1130:27 1680 at 1130:37 1680 at 1130:43 1680 at 1131:19 1680 at 1131:27 1680 at 1131:37 1680 at 1131:43 NOTE: There were 420 observations read from the data set WORK.COMB_SCHD_1. NOTE: The data set WORK.COMB_SCHD_2 has 420 observations and 53 variables. 51 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1134 1135 *sum WTP values for each option at a 3% discount rate; 1136 Proc sql; 1137 create table annual_WTP_3 as 1138 select region, 1139 sum(p3_WTP_1)*&af_3. as tmn1, 1140 sum(p3_WTP_2)*&af_3. as tmn2, 1141 sum(p3_WTP_3)*&af_3. as tmn3, 1142 sum(p3_WTP_4)*&af_3. as tmn4, 1143 sum(p3_WTP_bas)*&af_3. as baseline 1144 FROM comb_schd_2 group by region; NOTE: Table WORK.ANNUAL_WTP_3 created, with 7 rows and 6 columns.

1145 RUN; NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect. 1146 *sum WTP values for each option at a 7% discount rate; NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1147 Proc sql; 1148 create table annual_WTP_7 as 1149 select region, 1150 sum(p7_WTP_1)*&af_7. as tmn1, 1151 sum(p7_WTP_2)*&af_7. as tmn2, 1152 sum(p7_WTP_3)*&af_7. as tmn3, 1153 sum(p7_WTP_4)*&af_7. as tmn4, 1154 sum(p7_WTP_bas)*&af_7. as baseline 1155 FROM comb_schd_2 group by region; NOTE: Table WORK.ANNUAL_WTP_7 created, with 7 rows and 6 columns.

1156 RUN; NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect. 1157 %export(annual_wtp_3,"&outloc.&output",annual_wtp_3); NOTE: PROCEDURE SQL used (Total process time): Page 51HEA_03.21.11_log.txt

real time 0.03 seconds cpu time 0.01 seconds

NOTE: "ANNUAL_WTP_3" range/sheet was successfully created. NOTE: PROCEDURE EXPORT used (Total process time): real time 0.42 seconds cpu time 0.12 seconds

1158 %export(annual_wtp_7,"&outloc.&output",annual_wtp_7);

52 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: "ANNUAL_WTP_7" range/sheet was successfully created. NOTE: PROCEDURE EXPORT used (Total process time): real time 0.39 seconds cpu time 0.04 seconds

1159 *sum annual restoration costs for each option at a 3% discount rate; 1160 Proc sql; 1161 create table annual_rc_3 as 1162 select region, 1163 sum(p3_rc_1)*&af_3. as tmn1, 1164 sum(p3_rc_2)*&af_3. as tmn2, 1165 sum(p3_rc_3)*&af_3. as tmn3, 1166 sum(p3_rc_4)*&af_3. as tmn4, 1167 sum(p3_rc_bas)*&af_3. as baseline 1168 FROM comb_schd_2 group by region; NOTE: Table WORK.ANNUAL_RC_3 created, with 7 rows and 6 columns.

1169 RUN; NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect. 1170 *sum annual restoration costs for each option at a 7% discount rate; NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1171 Proc sql; 1172 create table annual_rc_7 as 1173 select region, 1174 sum(p7_rc_1)*&af_7. as tmn1, 1175 sum(p7_rc_2)*&af_7. as tmn2, 1176 sum(p7_rc_3)*&af_7. as tmn3, 1177 sum(p7_rc_4)*&af_7. as tmn4, 1178 sum(p7_rc_bas)*&af_7. as baseline 1179 FROM comb_schd_2 group by region; NOTE: Table WORK.ANNUAL_RC_7 created, with 7 rows and 6 columns.

1180 RUN; NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect. 1181 *%export(annual_rc_3,"&outloc.&output",annual_rc_3); 1182 *%export(annual_rc_7,"&outloc.&output",annual_rc_7); 1183 1184 *create tables for export in rtf format; 1185 NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.00 secondsPage 52HEA_03.21.11_log.txt

1186 Data reg_annual_values_2; 1187 Set reg_annual_values_1; 1188 IF region="calif" then region="California"; 1189 IF region="greatlakes" then region="Great Lakes"; 1190 IF region="gulfmexico" then region="Gulf of Mexico"; 53 The SAS System 12:38 Tuesday, March 22, 2011

1191 IF region="southatlantic" then region="South Atlantic"; 1192 IF region="northatlantic" then region="North Atlantic"; 1193 IF region="midatlantic" then region="Mid-atlantic"; 1194 IF region="inland" then region="Inland"; 1195 DROP cost_acre numHH; 1196 Run;

NOTE: There were 7 observations read from the data set WORK.REG_ANNUAL_VALUES_1. NOTE: The data set WORK.REG_ANNUAL_VALUES_2 has 7 observations and 12 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1197 *create revised data set for regional, annualized WTP at 3% discount
rate; 1198 Data annual_wtp_3_1; 1199 length region $20; 1200 Set annual_wtp_3; 1201 format tmn1 tmn2 tmn3 tmn4 baseline comma20.; 1202 RUN;

NOTE: There were 7 observations read from the data set WORK.ANNUAL_WTP_3. NOTE: The data set WORK.ANNUAL_WTP_3_1 has 7 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1203 1204 *create revised data set for regional, annualized WTP at 7% discount
rate; 1205 Data annual_wtp_7_1; 1206 length region $20; 1207 Set annual_wtp_7; 1208 format tmn1 tmn1 tmn3 tmn4 baseline comma20.; 1209 RUN;

NOTE: There were 7 observations read from the data set WORK.ANNUAL_WTP_7. NOTE: The data set WORK.ANNUAL_WTP_7_1 has 7 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1210 *create table for annual acres; 1211 Proc sql; 1212 create table reg_annual_acres_1 as 1213 select region, 1214 reg_HH as Households format=comma30., 1215 frac_baseline as baseline format=comma30., 1216 frac_tmn1 as tmn1 format=comma30., 1217 frac_tmn2 as tmn2 format=comma30., Page 53HEA_03.21.11_log.txt

1218 frac_tmn3 as tmn3 format=comma30., 1219 frac_tmn4 as tmn4 format=comma30. 1220 FROM reg_annual_values_2; 54 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: Table WORK.REG_ANNUAL_ACRES_1 created, with 7 rows and 7 columns.

1221 RUN; NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect. 1222 *create a dataset which merges results for Region, HHs, Species, WTP per acre, Equivalent 1222 ! Acres, WTP (3%), and WTP (7%); NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1223 Proc Sort data=reg_annual_acres_1 out=reg_annual_acres_2; 1224 by region households; 1225 Run;

NOTE: There were 7 observations read from the data set WORK.REG_ANNUAL_ACRES_1. NOTE: The data set WORK.REG_ANNUAL_ACRES_2 has 7 observations and 7 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.03 seconds cpu time 0.00 seconds

1226 Proc Transpose data=reg_annual_acres_2 out=reg_annual_acres_2; 1227 by region households; 1228 var baseline tmn1 tmn2 tmn3 tmn4; 1229 Run;

NOTE: There were 7 observations read from the data set WORK.REG_ANNUAL_ACRES_2. NOTE: The data set WORK.REG_ANNUAL_ACRES_2 has 35 observations and 4 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

1230 Data reg_annual_acres_2; 1231 set reg_annual_acres_2 (rename=(_NAME_=option col1=Acres)); 1232 IF region="California" then region="calif"; 1233 IF region="Great Lakes" then region="greatlakes"; 1234 IF region="Gulf of Mexico" then region="gulfmexico"; 1235 IF region="South Atlantic" then region="southatlantic"; 1236 IF region="North Atlantic" then region="northatlantic"; 1237 IF region="Mid-atlantic" then region="midatlantic"; 1238 IF region="Inland" then region="inland"; 1239 Run;

NOTE: There were 35 observations read from the data set WORK.REG_ANNUAL_ACRES_2. NOTE: The data set WORK.REG_ANNUAL_ACRES_2 has 35 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.00 seconds

1240 Proc Sort data=annual_wtp_3 out=annual_wtp_3_2; 1241 by region; 55 The SAS System 12:38 Tuesday, March 22, 2011 Page 54HEA_03.21.11_log.txt

1242 Run;

NOTE: Input data set is already sorted; it has been copied to the output data set. NOTE: There were 7 observations read from the data set WORK.ANNUAL_WTP_3. NOTE: The data set WORK.ANNUAL_WTP_3_2 has 7 observations and 6 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1243 Proc Transpose data=annual_wtp_3_2 out=annual_wtp_3_2; 1244 by region; 1245 var baseline tmn1 tmn2 tmn3 tmn4; 1246 Run;

NOTE: There were 7 observations read from the data set WORK.ANNUAL_WTP_3_2. NOTE: The data set WORK.ANNUAL_WTP_3_2 has 35 observations and 3 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1247 Data annual_wtp_3_2; 1248 set annual_wtp_3_2 (rename=(_NAME_=option col1=WTP_3)); 1249 Run;

NOTE: There were 35 observations read from the data set WORK.ANNUAL_WTP_3_2. NOTE: The data set WORK.ANNUAL_WTP_3_2 has 35 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

1250 Proc Sort data=annual_wtp_7 out=annual_wtp_7_2; 1251 by region; 1252 Run;

NOTE: Input data set is already sorted; it has been copied to the output data set. NOTE: There were 7 observations read from the data set WORK.ANNUAL_WTP_7. NOTE: The data set WORK.ANNUAL_WTP_7_2 has 7 observations and 6 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1253 Proc Transpose data=annual_wtp_7_2 out=annual_wtp_7_2; 1254 by region; 1255 var baseline tmn1 tmn2 tmn3 tmn4; 1256 Run;

NOTE: There were 7 observations read from the data set WORK.ANNUAL_WTP_7_2. NOTE: The data set WORK.ANNUAL_WTP_7_2 has 35 observations and 3 variables. NOTE: PROCEDURE TRANSPOSE used (Total process time): real time 0.03 seconds 56 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.01 seconds

1257 Data annual_wtp_7_2; 1258 set annual_wtp_7_2 (rename=(_NAME_=Option col1=WTP_7)); Page 55HEA_03.21.11_log.txt

1259 Run;

NOTE: There were 35 observations read from the data set WORK.ANNUAL_WTP_7_2. NOTE: The data set WORK.ANNUAL_WTP_7_2 has 35 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1260 *Annual_results summarizes results for all options and regions and includes households, 1260 ! Equivalent Acres, WTP (3%), and WTP (7%); 1261 Data Annual_Results; 1262 Merge reg_annual_acres_2 annual_wtp_3_2 annual_wtp_7_2; 1263 by region option; 1264 format WTP_3 comma20.; 1265 format WTp_7 comma20.; 1266 Run;

NOTE: There were 35 observations read from the data set WORK.REG_ANNUAL_ACRES_2. NOTE: There were 35 observations read from the data set WORK.ANNUAL_WTP_3_2. NOTE: There were 35 observations read from the data set WORK.ANNUAL_WTP_7_2. NOTE: The data set WORK.ANNUAL_RESULTS has 35 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1267 1268 *specify the names of options included in the runs; 1269 %let optionlist=baseline^tmn1^tmn2^tmn3^tmn4; 1270 1271 *specify the names of region included in the runs; 1272 %let reglist=calif^greatlakes^inland^midatlantic^gulfmexico^northatlantic^southatlantic; 1273 1274 *this macro generates a seperate table for each option which displays the results for all 1274 ! regions; 1275 %macro optiontables; 1276 %Do j=1 %to 4; 1277 %let option_cur=%scan(&optionlist,&j,^); 1278 DATA dat_&option_cur; 1279 Set Annual_Results; 1280 IF option~="&option_cur." then delete; 1281 IF region="calif" then region="California"; 1282 IF region="greatlakes" then region="Great Lakes"; 1283 IF region="gulfmexico" then region="Gulf of Mexico"; 1284 IF region="southatlantic" then region="South Atlantic"; 1285 IF region="northatlantic" then region="North Atlantic"; 1286 IF region="midatlantic" then region="Mid-atlantic"; 1287 IF region="inland" then region="Inland"; 57 The SAS System 12:38 Tuesday, March 22, 2011

1288 RUN; 1289 Proc sql; 1290 create table tab_&option_cur as select 1291 region as Region, 1292 option as Option, 1293 households as Households, Page 56HEA_03.21.11_log.txt

1294 acres as Acres, 1295 WTP_3 as WTP_3, 1296 WTP_7 as WTP_7 1297 from dat_&option_cur; 1298 quit; 1299 %END; 1300 %mend; 1301 *this macro generates a seperate table for each region which displays the results for each 1301 ! option; 1302 %macro regtables; 1303 %Do i=1 %to 7; 1304 %let reg_cur=%scan(®list,&i,^); 1305 DATA dat_®_cur; 1306 Set Annual_Results; 1307 IF region~="®_cur." then delete; 1308 IF region="calif" then region="California"; 1309 IF region="greatlakes" then region="Great Lakes"; 1310 IF region="gulfmexico" then region="Gulf of Mexico"; 1311 IF region="southatlantic" then region="South Atlantic"; 1312 IF region="northatlantic" then region="North Atlantic"; 1313 IF region="midatlantic" then region="Mid-atlantic"; 1314 IF region="inland" then region="Inland"; 1315 RUN; 1316 Proc sql; 1317 create table tab_®_cur as select 1318 region as Region, 1319 option as Option, 1320 households as Households, 1321 acres as Acres, 1322 WTP_3 as WTP_3, 1323 WTP_7 as WTP_7 1324 from dat_®_cur; 1325 quit; 1326 %END; 1327 %mend; 1328 %optiontables;

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_BASELINE has 7 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: Table WORK.TAB_BASELINE created, with 7 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds 58 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_TMN1 has 7 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 secondsPage 57HEA_03.21.11_log.txt

NOTE: Table WORK.TAB_TMN1 created, with 7 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_TMN2 has 7 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: Table WORK.TAB_TMN2 created, with 7 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_TMN3 has 7 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: Table WORK.TAB_TMN3 created, with 7 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1329 %regtables;

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_CALIF has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds 59 The SAS System 12:38 Tuesday, March 22, 2011

cpu time 0.00 seconds

NOTE: Table WORK.TAB_CALIF created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_GREATLAKES has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds Page 58HEA_03.21.11_log.txt

cpu time 0.00 seconds

NOTE: Table WORK.TAB_GREATLAKES created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_INLAND has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: Table WORK.TAB_INLAND created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_MIDATLANTIC has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: Table WORK.TAB_MIDATLANTIC created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

60 The SAS System 12:38 Tuesday, March 22, 2011

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_GULFMEXICO has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: Table WORK.TAB_GULFMEXICO created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.01 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_NORTHATLANTIC has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds Page 59HEA_03.21.11_log.txt

cpu time 0.00 seconds

NOTE: Table WORK.TAB_NORTHATLANTIC created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

NOTE: There were 35 observations read from the data set WORK.ANNUAL_RESULTS. NOTE: The data set WORK.DAT_SOUTHATLANTIC has 5 observations and 6 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

NOTE: Table WORK.TAB_SOUTHATLANTIC created, with 5 rows and 6 columns.

NOTE: PROCEDURE SQL used (Total process time): real time 0.00 seconds cpu time 0.00 seconds

1330 1331 *the following macro outputs the results tables in rtf format; 1332 *%macro rtfprint; 1333 *ods rtf body="&printout"; 1334 *title "Equivalent Acres per Year by Region and Option"; 1335 *Proc print data=reg_annual_acres_1 NOOBS; 1336 *RUN; 1337 *title "Annualized WTP by Region (3% discount rate)(1,000s of 2008$)"; 61 The SAS System 12:38 Tuesday, March 22, 2011

1338 *Proc print data=annual_wtp_3_1 NOOBS; 1339 *RUN; 1340 *title "Annualized WTP by Region (7% discount rate)(1,000s of 2008$)"; 1341 *Proc print data=annual_wtp_7_1 NOOBS; 1342 *RUN; 1343 *this following section of code prints out the option-specific tables; 1344 *%DO j=1 %to 4; 1345 * %let option_cur=%scan(&optionlist,&j,^); 1346 * title "Equivalent Acres and Total WTP - &option_cur. (All Regions)(WTP in 1,000s of 1346 ! 2008$)"; 1347 * PROC PRINT data=tab_&option_cur NOOBS; 1348 * RUN; 1349 *%END; 1350 *this following section of code prints out the region-specific tables for all options; 1351 *%DO j=1 %to 7; 1352 * %let reg_cur=%scan(®list,&j,^); 1353 * title "Equivalent Acres and Total WTP - ®_cur. (All Options)(WTP in 1,000s of 1353 ! 2008$)"; 1354 * PROC PRINT data=tab_®_cur NOOBS; 1355 * RUN; 1356 *%END; 1357 *ods rtf close; 1358 *%mend; 1359 Page 60HEA_03.21.11_log.txt

1360 *%rtfprint; 1361

NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414 NOTE: The SAS System used: real time 33.82 seconds cpu time 7.42 seconds

Page 61