<% '============= Create and Open Database Connection ============= 'OPEN THE DATABASE If blnConnectToDB Then dim blnDBconnectionDown blnDBconnectionDown = false Err.Clear on error resume next set dbConn = Server.CreateObject("ADODB.Connection") 'Open the Connnection 'dbConn.Open Application("dbConn_ConnectionString") dbConn.Open "DSN=PostgreSQL30", "eere_news", "33reNews" ''New Error trapping. KC added 2/23/2012 If Err.Number <> 0 Then ''Response.Write (Err.Description& "

") dbConn.Close Set dbConn = nothing blnDBconnectionDown = true End If On Error GoTo 0 ''error trapping not working here KC removed 2/23/2012 ''tmpDBErrorNativeError = 0 '' For Each dbErr In dbConn.Errors '' strErrMsg = strErrMsg & _ '' "Source: " & dbErr.Source & vbCrLF & _ '' "Description: " & dbErr.Description & vbCrLF & _ '' "SQL State: " & dbErr.SQLState & vbCrLF & _ '' "NativeError: " & dbErr.NativeError & vbCrLF & _ '' "Number: " & dbErr.Number & vbCrLF & vbCrLF '' tmpDBErrorNativeError = dbErr.NativeError '' Next '' If (dbConn.Errors.Count > 0) AND (tmpDBErrorNativeError <> 5703) Then '' dbConn.Close '' Set dbConn = nothing '' blnDBconnectionDown = true '' Response.write(strErrMsg) '' Response.end '' End If dim arrErrors() Redim arrErrors(2,0) End If '============================================================== Public Function GetRS2(myCommand) On Error GoTo 0 'objConn: local connection object 'objRS: local recordset object 'objComm: command object passed in to the function Dim objConn, objRS, blnErrorLogged, objComm 'Create the command object Set objComm = Server.CreateObject("ADODB.Command") Set objComm = myCommand 'Create the connection object Set objConn = Server.CreateObject("ADODB.Connection") 'Open the connection object objConn.Open "DSN=PostgreSQL30", "eere_news", "33reNews" 'Set the active connection objComm.ActiveConnection = objConn 'Create the recordset object Set objRS = Server.CreateObject("ADODB.Recordset") 'Set the cursor location for disconnected recordsets 'objRS.CursorLocation = adUseClient 'Turn on error handling for just a second ' On Error Resume Next 'Open the recordset 'objRS.Open SQL, objConn, adOpenStatic, adLockOptimistic Set objRS = objComm.Execute 'Response.Write "State = " & objRS.State & "
" 'objRS.MoveLast 'objRS.MoveFirst 'Response.Write "Count = " & objRS.RecordCount & "
" 'Response.End 'Check for an error ' If Err.Number <> 0 Then ' Response.Write "Database Error Occured

" ' Response.Write "Error #" & Err.Number & "
" ' Response.Write Err.Description & "

" ' Response.Write "SQL:
" ' Response.Write SQL ' Response.End ' End If 'Turn off error handling ' On Error GoTo 0 'Disconnect the recordset 'Set objComm.ActiveConnection = Nothing 'Close the connection 'objConn.Close 'Set the connection to Nothing 'Set objConn = Nothing 'Set the Command to Nothing 'Set objComm = Nothing 'Return the recordset Set GetRS2 = objRS On Error Resume Next End Function '=============================================================== Function GetRS(sSQL) 'Declarations dim rs 'Create Recordset Object set rs = Server.CreateObject("ADODB.Recordset") If blnConnectToDB Then 'Open Recordset based on SQL rs.Open sSQL, dbConn, 1, 3, 1 End If 'Return Recordset set GetRs = rs End Function '=============================================================== Function ExecSQL(sSQL) 'Open the Command Object dim lRecordsAffected dbConn.Execute sSQL, lRecordsAffected 'Return the Records Affected ExecSQL = lRecordsAffected End Function '======================================================================== Function sendEmail(strFrom,strTo,strSubject,strMessage) Dim sch ' Schema sch = "http://schemas.microsoft.com/cdo/configuration/" Set cdoConfig = CreateObject("CDO.Configuration") With cdoConfig.Fields .Item(sch & "sendusing") = 2 .Item(sch & "smtpserver") = "mxrelay.doe.gov" .update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = cdoConfig .From = strFrom .To = strTo .Subject = strSubject .TextBody = strMessage .Send End With Set cdoMessage = Nothing Set cdoConfig = Nothing End Function Function removeBadChars(tmpString) tmpString = Replace(tmpString , "<", "") tmpString = Replace(tmpString , ">", "") tmpString = Replace(tmpString , "'", "") tmpString = Replace(tmpString , """", "") tmpString = Replace(tmpString , ";", "") tmpString = Replace(tmpString , "(", "") tmpString = Replace(tmpString , ")", "") removeBadChars = tmpString End Function %> <% 'initialize getPageFormVars(). This function is for printable versions of .asp pages that pass form variables function getPageFormVars() getPageFormVars = "" end function %> Federal Energy Management Program: Federal Correctional Institution - Phoenix, Arizona

U.S. Department of Energy: Energy Efficiency and Renewable Energy

Federal Energy Management ProgramTechnologies

Site Navigation ↓
<% 'This code is strictly when a user clicks on a left nav and needs to be forwarded to another site/program/office if ("" <> "") then Response.Clear Response.Redirect ("") end if %>

Federal Correctional Institution - Phoenix, Arizona

Photo of a Parabolic-Trough Solar Water-Heating System Installed at the Federal Correctional Institution Facility north of Phoenix, Arizona

A parabolic-trough solar water-heating system was installed at the Federal Correctional Institution (FCI) facility north of Phoenix, Arizona. This medium security prison for males has a current population of about 1,200 inmates and uses an average of 50,000 gallons of hot water per day for kitchen, shower, laundry, and sanitation needs.

The system includes 18,000 square feet of parabolic trough solar collectors and a 21,000-gallon thermal energy storage tank located adjacent to the solar field. An incoming cold-water supply line is routed to a copper-coil heat exchanger in the thermal storage tank and then through insulated underground piping to the buildings. The hot water is then tempered down to 140°F (60°C) when necessary and serves as preheated incoming water for the existing electric water heaters in each building. The system meets about 82% of the hot water needs for FCI-Phoenix and most of the demand during the peak morning period. It is designed to provide 4.9 billion Btu of energy per year. The electricity saved is equivalent to the amount used by 150 people for all purposes.

Energy Savings Performance Contracts (ESPC) were used to help finance the project, with a joint effort between the U.S. Department of Energy (DOE), the Federal Bureau of Prisons, and the Industrial Solar Technology Corporation (IST). The economic savings of the project reflect the favorable impacts of good location for receiving sunlight and a large facility, and show how high conventional energy costs can make a parabolic trough system economically attractive. Facilities such as prisons, hospitals, and military barracks with large, constant hot water loads are particularly good candidates for this technology.

Initial investment: $649,000
Payback period: 8 years
Cost savings: $78,000/year (with 90% going to IST under the ESPC)
Energy savings: 1,161,803 kWh/year (at $0.07/kWh)

Back to Top | ">View Full Site
Federal Energy Management Program Home | EERE Home
Webmaster | Search
Content Last Updated: 10/01/2010