C ********************************************************** SUBROUTINE TYPE91(TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) C Component writes utility data file for the utility reader/bill printer C ********************************************************** C C This component writes utility rate schedule files for the TYPE 90 C schedule reader/bill printer. TYPE 91 is skipped except for the first C time it is called in the simulation. (The file only need to be written once) C If this component is used it should appear before TYPE 90 in the deck. C TYPE 91 will produce schedules with either constant or seasonal useage rates. C Daily time-of-use schedules are not supported. The schedule also includes a C constant demand rate. C C**************************************************************** C C PARAMETERS, (NO INPUTS or OUTPUTS FOR THIS UNIT) C Mode #1 requires 4 parameters. Mode #2 requires 7 parameters C C PAR(1) Logical unit number of rate schedule file C PAR(2) Mode: 1=Constant useage rate, 2=Seasonal useage schedule C PAR(3) MODE 1: Useage rate ($/kW-hr) C MODE 2: Month at which summer useage rate begins C PAR(4) MODE 1: Demand rate ($/kW) C MODE 2: Month at which winter useage rate begins C PAR(5) MODE 2: Summer useage rate 9$/kW-hr) C PAR(6) MODE 2: Winter useage rate ($/kW-hr) C PAR(7) MODE 2: Demand rate ($/kW) C C**************************************************************** C C VARIABLES C C STARTSUM First month of summer rates C ENDSUM First month of winter rates C RATEWIN Winter rate ($/kW-hr) C RATESUM Summer rate ($/kW-hr) C MODE Mode! C TIME1 Hour of year for first change of useage rate (MODE 2) C TIME2 Hout of year for second change of useage rate (MODE 2) C MTHHRS(J) Cumulative hours in year at beginning of month J C C**************************************************************** C Declaration of Variables IMPLICIT NONE C COMMON /STORE/SLOC/IAV/S(5000) REAL PAR(7),TIME,T,DTDT,ICNTRL DOUBLE PRECISION STARTSUM,ENDSUM,A,B,D,RATESUM,RATEWIN,XIN,OUT INTEGER INFO,LU,NP,MODE,TIME1,TIME2,MTHHRS DIMENSION INFO(15),MTHHRS(13) DATA MTHHRS/0,744,1416,2160,2880,3624,4344,5088,5832, &6552,7296,8016,8760/ C Component should only perform on first call, BEFORE simulation calculations IF (INFO(7).EQ.-1) THEN C Outputs INFO(6)=0 C Time Dependence INFO(9)=0 C Storage Allocation INFO(10)=0 C Discrete Control Variables INFO(11)=0 MODE=INT(PAR(2)+0.1) IF (MODE.EQ.2) THEN NP=7 ELSE NP=4 ENDIF CALL TYPECK(1,INFO,0,NP,0) C Mode 1: No seasonal rates LU=INT(PAR(1)+0.1) IF (MODE.EQ.1) THEN C A=usage rate, B=demand rate A=PAR(3) B=PAR(4) WRITE (LU,1000) 1 WRITE (LU,1001) 0,8783,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A, & A,A,A,A,A,A,A,A,A,A, & B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B WRITE (LU,1000) 0 ELSE C Seasonal rate schedule C A=Summer usage rate, B=winter useage rate, D=Demand STARTSUM=INT(PAR(3)+0.1) ENDSUM=INT(PAR(4)+0.1) RATESUM=PAR(5) RATEWIN=PAR(6) D=PAR(7) C Check to see if beginning of summer occurs before or after C end of summer in calendar year IF (STARTSUM.GT.ENDSUM) THEN TIME1=MTHHRS(ENDSUM) TIME2=MTHHRS(STARTSUM) A=RATESUM B=RATEWIN ELSE TIME1=MTHHRS(STARTSUM) TIME2=MTHHRS(ENDSUM) A=RATEWIN B=RATESUM ENDIF WRITE (LU,1000) 3 WRITE (LU,1001) 0,(TIME1-1),A,A,A,A,A,A,A,A,A,A, & A,A,A,A,A,A,A,A,A,A,A,A,A,A,A, & D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D WRITE (LU,1002) TIME1,(TIME2-1),B,B,B,B,B,B,B,B,B,B, & B,B,B,B,B,B,B,B,B,B,B,B,B,B,B, & D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D WRITE (LU,1002) TIME2,8783,A,A,A,A,A,A,A,A,A,A, & A,A,A,A,A,A,A,A,A,A,A,A,A,A,A, & D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D WRITE (LU,1000) 0 ENDIF ENDIF 3000 RETURN 1 1000 FORMAT(I1) 1001 FORMAT(I1,1X,I4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X) 1002 FORMAT(I4,1X,I4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X, & F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X,F8.4,1X) END