    THE SAS PART OF THIS RETRIEVAL PERFORMS COMPUTATIONS                00000040
    FOR THE EPA FRESHWATER AQUATIC LIFE CRITERIA FOR SEVERAL            00000050
    TOXIC METALS, USING EXPONENTIAL FUNCTIONS OF HARDNESS               00000060
    AS THE CRITERIA, IN ACCORDANCE WITH EPA STANDARDS                   00000070
    PUBLISHED IN THE NOV 1980 FEDERAL REGISTER.                         00000080
       THE REPORT IS MADE OF VIOLATIONS AT THE                          00000090
    SAMPLE AND STATION LEVEL.                                           00000100
       IT IS INTENDED AS A MODEL FOR USERS WITH                         00000110
    NEEDS OF THIS TYPE, AND -NOT- AS AN OFFICIAL                        00000120
    EPA REPORT OF CONDITIONS.                                           00000130
                                                                        00000140
                                                                        00000150
PGM=MEAN,PURP=208/STA,MORE=4,PRT=PAR,DG=PG,PCTL=50,                     00000160
A=1116APCC,S=050151,S=050152,S=050153,                                  00000170
P=900,P=1027,P=1042,P=1051,P=1067,                                      00000180
P=1077,P=1092,P=1033,BD=76,                                             00000190
NOECHO,                                                                 00000200
SASPARMS=BEGIN,                                                         00000210
OPTIONS S=72 LS=120;                                                    00000220
DATA RAWDATA;                                                           00000230
*                                                                       00000240
INCLUDE (FCFREAD)                                                       00000250
OPTIONS NOSOURCE;  * -  SUPPRESSES SOURCE LISTING BELOW HERE  ;         00000260
LENGTH C1-C30 $ 9; ARRAY C(I) $ C1-C30;                                 00000270
FORMAT TIMEDPTH $12.;                                                   00000280
IF TIME^=. THEN TIMEDPTH=PUT(TIME,TIME5.)||DEPTH;                       00000290
           ELSE TIMEDPTH='     '||DEPTH;                                00000300
IF P1=. THEN DELETE;                                                    00000310
IF P2=.&P3=.&P4=.&P5=.&P6=.&P7=.&P8=. THEN DELETE;                      00000320
P11=LOG(P1) ;                                                           00000330
DO OVER P; IF P^=. THEN C=PUT(P,7.1)||R; END;                           00000340
*        BEGIN MAIN CALCULATION LOOP. FORMULAS HERE.   ;                00000350
IF P2^=. THEN DO; P12=2.71828**(1.05*P11-3.73); C12=PUT(P12,7.1);       00000360
         C22='     -'; IF P2>P12 THEN DO; C22='  *OVER*';               00000370
         IF R2='K'|R2='U'|R2='M' THEN C22='     ??'; END; END;          00000380
IF P3^=. THEN DO; P13=2.71828**(0.94*P11-1.23); C13=PUT(P13,7.1);       00000390
         C23='     -'; IF P3>P13 THEN DO; C23='  *OVER*';               00000400
         IF R3='K'|R3='U'|R3='M' THEN C23='     ??'; END; END;          00000410
IF P4^=. THEN DO; P14=2.71828**(1.22*P11-0.47); C14=PUT(P14,7.1);       00000420
         C24='     -'; IF P4>P14 THEN DO; C24='  *OVER*';               00000430
         IF R4='K'|R4='U'|R4='M' THEN C24='     ??'; END; END;          00000440
IF P5^=. THEN DO; P15=2.71828**(0.76*P11+4.02); C15=PUT(P15,7.1);       00000450
         C25='     -'; IF P5>P15 THEN DO; C25='  *OVER*';               00000460
         IF R5='K'|R5='U'|R5='M' THEN C25='     ??'; END; END;          00000470
IF P6^=. THEN DO; P16=2.71828**(1.72*P11-6.52); C16=PUT(P16,7.1);       00000480
         C26='     -'; IF P6>P16 THEN DO; C26='  *OVER*';               00000490
         IF R6='K'|R6='U'|R6='M' THEN C26='     ??'; END; END;          00000500
IF P7^=. THEN DO; P17=2.71828**(0.83*P11+1.95); C17=PUT(P17,7.1);       00000510
         C27='     -'; IF P7>P17 THEN DO; C27='  *OVER*';               00000520
         IF R7='K'|R7='U'|R7='M' THEN C27='     ??'; END; END;          00000530
IF P8^=. THEN DO; P18=2.71828**(1.08*P11+3.48); C18=PUT(P18,7.1);       00000540
         C28='     -'; IF P8>P18 THEN DO; C28='  *OVER*';               00000550
         IF R8='K'|R8='U'|R8='M' THEN C28='     ??'; END; END;          00000560
DROP P1-P50 R1-R50 BEGDATE BEGTIME ENDDATE                              00000570
ENDTIME TYPE CALC NUMBER;                                               00000580
*    END OF CALCULATIONS.  WRITE THE REPORT.    ;                       00000590
PROC SORT; BY STATION DATE TIME DEPTH;                                  00000600
DATA _NULL_; SET RAWDATA END=EOD;                                       00000610
BY STATION; FORMAT RDATE YYMMDD8.; RDATE=TODAY( );                      00000620
FILE PRINT HEADER=H NOTITLES LINESLEFT=LL ;                             00000630
IF FIRST.STATION THEN DO;                                               00000640
*                                         ;                             00000650
* NOTE: THE "PUT _PAGE_" STATEMENT HERE   ;                             00000660
*       SHOULD BE COMMENTED OUT WHEN      ;                             00000670
*       YOU SUPPRESS INDIVIDUAL STATION   ;                             00000680
*       LISTINGS.                         ;                             00000690
*                                         ;                             00000700
      PUT _PAGE_;  NSTN+1;                                              00000710
      NS=0; N1=0; N2=0; N3=0; N4=0; N5=0; N6=0; N7=0;                   00000720
      NV1=0; NV2=0; NV3=0; NV4=0; NV5=0; NV6=0; NV7=0;                  00000730
      NQ1=0; NQ2=0; NQ3=0; NQ4=0; NQ5=0; NQ6=0; NQ7=0;                  00000740
      END;                                                              00000750
 NS+1; IF C2^=' ' THEN DO; N1+1; T1+1; END;                             00000760
 TS+1; IF C3^=' ' THEN DO; N2+1; T2+1; END;                             00000770
       IF C4^=' ' THEN DO; N3+1; T3+1; END;                             00000780
       IF C5^=' ' THEN DO; N4+1; T4+1; END;                             00000790
       IF C6^=' ' THEN DO; N5+1; T5+1; END;                             00000800
       IF C7^=' ' THEN DO; N6+1; T6+1; END;                             00000810
       IF C8^=' ' THEN DO; N7+1; T7+1; END;                             00000820
       IF C22='  *OVER*' THEN DO; NV1+1; TV1+1; END;                    00000830
       IF C23='  *OVER*' THEN DO; NV2+1; TV2+1; END;                    00000840
       IF C24='  *OVER*' THEN DO; NV3+1; TV3+1; END;                    00000850
       IF C25='  *OVER*' THEN DO; NV4+1; TV4+1; END;                    00000860
       IF C26='  *OVER*' THEN DO; NV5+1; TV5+1; END;                    00000870
       IF C27='  *OVER*' THEN DO; NV6+1; TV6+1; END;                    00000880
       IF C28='  *OVER*' THEN DO; NV7+1; TV7+1; END;                    00000890
       IF C22='     ??' THEN DO; NQ1+1; TQ1+1; END;                     00000900
       IF C23='     ??' THEN DO; NQ2+1; TQ2+1; END;                     00000910
       IF C24='     ??' THEN DO; NQ3+1; TQ3+1; END;                     00000920
       IF C25='     ??' THEN DO; NQ4+1; TQ4+1; END;                     00000930
       IF C26='     ??' THEN DO; NQ5+1; TQ5+1; END;                     00000940
       IF C27='     ??' THEN DO; NQ6+1; TQ6+1; END;                     00000950
       IF C28='     ??' THEN DO; NQ7+1; TQ7+1; END;                     00000960
*                                                                       00000970
  NOTE: COMMENT OUT THE NEXT "PUT" STATEMENT WHEN YOU                   00000980
        SUPPRESS PRINTING OF INDIVIDUAL STATIONS/SAMPLES.  ;            00000990
*  ;                                                                    00001000
PUT @1 DATE @10 TIMEDPTH  @25 C1 $9.                                    00001010
 @40 'STORED VALUE -->' @57 (C2-C8) ($9.) /                             00001020
 @40 'CRITERIA  ----->' @57 (C12-C18) ($9.) /                           00001030
 @40 'VIOLATIONS ? -->' @57 (C22-C28) ($9.) / ;                         00001040
IF LL<3 THEN PUT _PAGE_;                                                00001050
IF LAST.STATION THEN DO;                                                00001060
*                                                                       00001070
  NOTE: COMMENT OUT BOTH "PUT" STATEMENTS HERE WHEN YOU WISH            00001080
        TO SUPPRESS PRINTING OF STATION LEVEL SUMMARIES.                00001090
                                                             ;          00001100
PUT _PAGE_; NG1=N1-NV1-NQ1; NG2=N2-NV2-NQ2; NG3=N3-NV3-NQ3;             00001110
        NG4=N4-NV4-NQ4; NG5=N5-NV5-NQ5; NG6=N6-NV6-NQ6; NG7=N7-NV7-NQ7; 00001120
PUT // @45 'STATION SUMMARY' / @45 '------- -------' //                 00001130
'SAMPLES ASSESSED' @19 NS 9.                                            00001140
@36 'OBSERVATIONS ------>'  @57 (N1-N7) (9.) /                          00001150
@36 'WITHIN LIMITS ----->'  @57 (NG1-NG7) (9.) /                        00001160
@36 'OVER CRITERIA ----->'  @57 (NV1-NV7) (9.) /                        00001170
@36 'OVER BUT REMARKED ->' @57 (NQ1-NQ7) (9.) ;                         00001180
 END;                                                                   00001190
IF EOD THEN DO;  STATION='GRAND TOTALS';                                00001200
PUT _PAGE_; TG1=T1-TV1-TQ1; TG2=T2-TV2-TQ2; TG3=T3-TV3-TQ3;             00001210
        TG4=T4-TV4-TQ4; TG5=T5-TV5-TQ5; TG6=T6-TV6-TQ6; TG7=T7-TV7-TQ7; 00001220
PUT // @45 'RUN SUMMARY' / @45 '--- -------' /                          00001230
'STATIONS EXAMINED' @19 NSTN 9. /                                       00001240
'SAMPLES ASSESSED' @19 TS 9.                                            00001250
@36 'OBSERVATIONS ------>'  @57 (T1-T7) (9.) /                          00001260
@36 'WITHIN LIMITS ----->'  @57 (TG1-TG7) (9.) /                        00001270
@36 'OVER CRITERIA ----->'  @57 (TV1-TV7) (9.) /                        00001280
@36 'OVER BUT REMARKED ->'  @57 (TQ1-TQ7) (9.) ;                        00001290
 END;                                                                   00001300
RETURN;                                                                 00001310
H: PUT  'STORET RETRIEVAL DATE ' RDATE YYMMDD8.                         00001320
        '  STORET/SAS REPORT' //                                        00001330
         @47 'FRESHWATER AQUATIC LIFE' /                                00001340
             'EPA PUBLISHED CRITERIA' @58 '-' /                         00001350
             '   REFER: FEDERAL REGISTER'                               00001360
         @50 'CRITERIA EXCEEDED' /                                      00001370
             '          FRIDAY, NOV 28, 1980' @58 '-' /                 00001380
             '          VOL. 45, NO.231    PART V'                      00001390
         @50 'STORET/SAS REPORT' / @58 '-' /                            00001400
         @46 'STATION - ' STATION $24. ///                              00001410
@25 '    900 '                                                          00001420
@57 '    1027     1042     1051     1067     1077     1092     1033' /  00001430
@25 'HARDNESS'                                                          00001440
@57 '   TOTAL    TOTAL    TOTAL    TOTAL    TOTAL    TOTAL    TOTAL' /  00001450
@25 'AS CACO3'                                                          00001460
@57 ' CADMIUM   COPPER     LEAD   NICKEL   SILVER     ZINC  CHROMIUM' / 00001470
'  DATE   TIME DEPTH         MG/L'                                      00001480
@57 '    UG/L     UG/L     UG/L     UG/L     UG/L     UG/L     UG/L' /  00001490
' ------  ---- -----       -------'                                     00001500
@57 '  -------  -------  -------  -------  -------  -------  -------';  00001510
STOPSAS,                                                                00001520
./III      JOB (AAAASTORPUUU,MIII),STORET,NOTIFY=III,TIME=5,            00001530
./             MSGLEVEL=(1,1),PRTY=1                                    00001540
**ROUTE  PRINT HOLD                                                     00001550
**JOBPARM LINES=10                                                      00001560
