//C5HAFKM  JOB ,'MASRIQUI',MSGCLASS=S,
//          CLASS=H,NOTIFY=COINEWM,TIME=24
/*JOBPARM SHIFT=D,LINES=900
/*ROUTE PRINT IOROOM
//*
//STEP1 EXEC SAS6,TIME=24
//RAWDATA DD DSN=COINEWM.CRUISE5.MIDAS,DISP=SHR
//OUTDATA DD DSN=COINEWM.CRUISE5.HALFKM,DISP=SHR
//SYSIN DD *
********************************************************************;
DATA A ;
   INFILE RAWDATA;
   INPUT TDDATEM  1-2      TDDATED  4-5      TDDATEY  7-10
         TDTIMEH  12-13    TDTIMEM  15-16    TDTIMES  18-19
         NDLATD   21-22    NDLATM   25-26    NDLATH   28-29
         NDLONGD  34-36   NDLONGM  39-40    NDLONGH  42-43
         H2OTEMP  259-265  CONDUCT  267-273  SALIN    275-281
         CHLFLUVT 283-289  AUXFLUVT 291-297
         LITTRAN  303-308  FLORATE  310-314  WNDSPD   316-320
         RWNDSPD  322-326  CWNDSPD  328-332
         CMWDIR   342-344  AIRTEMP  346-351
         BAROPRES 353-357  SOLRAD   359-365 ;
  IF ( H2OTEMP  < 5.0 OR H2OTEMP  > 40 ) THEN H2OTEMP  = . ;
  IF ( CONDUCT  < 0.0 OR CONDUCT  > 10 ) THEN CONDUCT  = . ;
  IF ( SALIN    < 5.0 OR SALIN    > 40 ) THEN SALIN    = . ;
  IF ( CHLFLUVT < 0.0 OR CHLFLUVT > 1  ) THEN CHLFLUVT = . ;
  IF ( LITTRAN  < 0.0 OR LITTRAN  > 99 ) THEN LITTRAN  = . ;
  IF ( CWNDSPD  < 0.0 OR CWNDSPD  > 40 ) THEN CWNDSPD  = . ;
  IF ( CMWDIR   < 0.0 OR CMWDIR   > 360) THEN CMWDIR   = . ;
  IF ( AIRTEMP  < 4.0 OR AIRTEMP  > 45 ) THEN AIRTEMP  = . ;
  IF ( BAROPRES < 9.0 OR BAROPRES > 50 ) THEN BAROPRES = . ;
  IF ( SOLRAD   < 0.0 OR SOLRAD   > 1  ) THEN SOLRAD   = . ;
**************       CALCULATIONS     ******************************;
         RECNUM = _N_ ;
         FLAT = NDLATD  + ( NDLATM  + NDLATH/100  )/60 ;
         FLON = NDLONGD + ( NDLONGM + NDLONGH/100 )/60 ;
********************************************************************;
         DIFLAT = ABS( DIF1( FLAT ) )   ;
         DIFLON = ABS( DIF1( FLON ) )   ;
********************************************************************;
         DIFSUM1 = ( DIFLAT * 110.848 ) ** 2 ;
         DIFSUM2 = ( DIFLON *  96.488 ) ** 2 ;
         DIFSUM  = DIFSUM1 + DIFSUM2 ;
         DIST = SQRT( DIFSUM ) ;
      *  IF DIST > 0.4 THEN DELETE ;
********************************************************************;
         IF RECNUM = 1 THEN CUMDIST = 0 ;
         IF RECNUM = 1 THEN DIST    = 0 ;
         IF RECNUM = 1 THEN JUMP    = 0.5 ;
         IF RECNUM = 1 THEN NUMB    = 0.25 ;
         RETAIN CUMDIST JUMP NUMB NUMB1 ;
         RETAIN A1   B1           ;
********************************************************************;
         CUMDIST = CUMDIST + DIST ;
         INTCDST =  CUMDIST ;
         A1 = 0 ;
         B1 = 0 ;
**********    FIND 1/2 KM AVERAGE     ******************************;
IF INTCDST < JUMP THEN NUMB1 = NUMB ;
IF INTCDST GE JUMP THEN A1 = 1 ;
IF A1 = 1 THEN NUMB = NUMB + 0.25 ;
IF A1 = 1 THEN JUMP = JUMP + 0.50 ;
     KEEP FLAT FLON DIST CUMDIST INTCDST NUMB NUMB1 JUMP
          H2OTEMP CONDUCT SALIN CHLFLUVT LITTRAN CWNDSPD CMWDIR
          AIRTEMP BAROPRES SOLRAD ;
********************************************************************;
   PROC SORT DATA = A ; BY JUMP    ;
* PROC PRINT DATA = A ;
* PROC MEANS DATA = A NOPRINT ; BY JUMP ;
PROC MEANS DATA = A ; BY JUMP ;
VAR  FLAT FLON H2OTEMP CONDUCT SALIN CHLFLUVT LITTRAN CWNDSPD CMWDIR
      AIRTEMP BAROPRES SOLRAD ;
      OUTPUT OUT = AA
MEAN = MFLAT MFLON M2OTEMP MONDUCT MALIN MHLFLUVT MITTRAN MWNDSPD
    MMWDIR MIRTEMP MAROPRES MOLRAD ;

PROC PRINT ;
********************************************************************;
DATA DD  ;
SET AA ;
E = ',' ;
FILE OUTDATA ;
PUT JUMP 1-6 .2 E$7 M2OTEMP 8-14 .2 E$15 MONDUCT 16-22 .2 E$23
    MALIN 24-30 .2 E$31 MHLFLUVT 32-38 .2 E$39 MITTRAN 40-46 .3 E$47
    MWNDSPD 48-54 .2 E$55 MMWDIR 56-62 .2 E$63 MIRTEMP 64-70 .2
  E$71 MAROPRES 72-78 .2 E$79 MOLRAD 80-86 .2 E$87 MFLAT 88-95 .3 E$96
    MFLON 97-104 .3 E$105 ;
//
