SUBROUTINE RDPREP( . TDATA,SDATA,WDATA,PSDATA,QDATA,PWDATA, . TTYPE,STYPE,WTYPE,PSTYPE,QTYPE,PWTYPE, . QMAXERR,PWMERR,IQTFLG, . NTDATA,NSDATA,NWDATA,NPDATA,NQDATA,NPWDAT) C$$$ SUBPROGRAM DOCUMENTATION BLOCK C . . . . C SUBPROGRAM: RDPREP READ IN AND REFORMAT PREPDA DATA C PRGMMR: PARRISH ORG: W/NMC22 DATE: 90-10-07 C PRGMMR: WOOLLEN ORG: W/NMC22 DATE: 93-12-07 C C ABSTRACT: READ IN AND REFORMAT DATA. C C PROGRAM HISTORY LOG: C 90-10-07 PARRISH C C USAGE: CALL RDPREP(INBUFR,ON85DT, C . TDATA,SDATA,WDATA,PSDATA,QDATA,PWDATA, C . TTYPE,STYPE,WTYPE,PSTYPE,QTYPE,PWTYPE, C . QMAXERR,PWMERR,NQTDATA,IQTFLG, C . NTDATA,NSDATA,NWDATA,NPDATA,NQDATA,NPWDAT) C INPUT ARGUMENT LIST: C INBUFR - UNIT NUMBER FOR BUFR DATA FILE. C NTDATA - NUMBER OF TEMP OBS C NSDATA - NUMBER OF SATELLITE OBS C NWDATA - NUMBER OF WIND OBS C NPDATA - NUMBER OF SURFACE PRESSURE OBS C NQDATA - NUMBER OF MOISTURE OBS C NPWDAT - NUMBER OF TOTAL PRECIPITABLE WATER OBS C C OUTPUT ARGUMENT LIST: C ON85DT - BUFR PREPDA ON85 DATE RECORD C TDATA - TDATA(NTDATA,7) C SDATA - SDATA(NSDATA,5) C WDATA - WDATA(NWDATA,8) C PSDATA - PSDATA(NPDATA,8) C QDATA - QDATA(NQDATA,7) C PWDATA - PWDATA(NPWDAT,6) C TTYPE - TEMPERATURE TYPES C STYPE - SATELLITE TYPES C WTYPE - WIND TYPES C PSTYPE - SURFACE PRESSURE TYPES C PWTYPE - PRECIPITABLE WATER TYPES C QMAXERR - MAXIMUM ERROR FOR MOISTURE C PWMERR - MAXIMUM ERROR FOR PRECIPITABLE WATER C NQTDATA - NUMBER OF T OBSERVATIONS WITHOUT Q C IQTFLG - FLAG FOR NO MOISTURE C C ATTRIBUTES: C LANGUAGE: CFT77 C MACHINE: CRAY YMP C C$$$ C-CRA DIMENSION TDATA(NTDATA,7),WDATA(NWDATA,8) C-CRA DIMENSION SDATA(NSDATA,5) C-CRA DIMENSION PSDATA(NPDATA,8),QDATA(NQDATA,7) C-CRA DIMENSION PWDATA(NPWDAT,6) C-CRA DIMENSION TTYPE(NTDATA),WTYPE(NWDATA) C-CRA DIMENSION STYPE(NSDATA) C-CRA DIMENSION PSTYPE(NPDATA),QTYPE(NQDATA) C-CRA DIMENSION PWTYPE(NPWDAT),IQTFLG(NTDATA) C-CRA DIMENSION QMAXERR(NQDATA),PWMERR(NPWDAT) C DIMENSION TDATA(60000,7),WDATA(85000,8) DIMENSION SDATA(120000,5) DIMENSION PSDATA(18000,8),QDATA(15000,7) DIMENSION PWDATA(1,6) DIMENSION TTYPE(60000),WTYPE(85000) DIMENSION STYPE(120000) DIMENSION PSTYPE(18000),QTYPE(15000) DIMENSION PWTYPE(1),IQTFLG(60000) DIMENSION QMAXERR(15000),PWMERR(1) C------ IF(NTDATA.GT.0) THEN REWIND 81 II0=1 DO K=1,1000000 II1=MIN(NTDATA,II0+511) READ(81)((TDATA(I,J),I=II0,II1),J=1,7), * (TTYPE(I),I=II0,II1),(IQTFLG(I),I=II0,II1) IF(II1.EQ.NTDATA) GO TO 200 II0=II0+512 END DO 200 CONTINUE CLOSE(81) END IF IF(NSDATA.GT.0) THEN REWIND 82 II0=1 DO K=1,1000000 II1=MIN(NSDATA,II0+511) READ(82)((SDATA(I,J),I=II0,II1),J=1,5), * (STYPE(I),I=II0,II1) IF(II1.EQ.NSDATA) GO TO 300 II0=II0+512 END DO 300 CONTINUE CLOSE(82) END IF IF(NWDATA.GT.0) THEN REWIND 83 II0=1 DO K=1,1000000 II1=MIN(NWDATA,II0+511) READ(83)((WDATA(I,J),I=II0,II1),J=1,8), * (WTYPE(I),I=II0,II1) IF(II1.EQ.NWDATA) GO TO 400 II0=II0+512 END DO 400 CONTINUE CLOSE(83) END IF IF(NPDATA.GT.0) THEN REWIND 84 II0=1 DO K=1,1000000 II1=MIN(NPDATA,II0+511) READ(84)((PSDATA(I,J),I=II0,II1),J=1,8), * (PSTYPE(I),I=II0,II1) IF(II1.EQ.NPDATA) GO TO 500 II0=II0+512 END DO 500 CONTINUE CLOSE(84) END IF IF(NQDATA.GT.0) THEN REWIND 85 II0=1 DO K=1,1000000 II1=MIN(NQDATA,II0+511) READ(85)((QDATA(I,J),I=II0,II1),J=1,7), * (QTYPE(I),I=II0,II1),(QMAXERR(I),I=II0,II1) IF(II1.EQ.NQDATA) GO TO 600 II0=II0+512 END DO 600 CONTINUE CLOSE(85) END IF IF(NPWDAT.GT.0) THEN REWIND 86 II0=1 DO K=1,1000000 II1=MIN(NPWDAT,II0+511) READ(86)((PWDATA(I,J),I=II0,II1),J=1,6), * (PWTYPE(I),I=II0,II1),(PWMERR(I),I=II0,II1) IF(II1.EQ.NPWDAT) GO TO 700 II0=II0+512 END DO 700 CONTINUE CLOSE(86) END IF PRINT *,' NTDATA=',NTDATA PRINT *,' NSDATA=',NSDATA PRINT *,' NWDATA=',NWDATA PRINT *,' NPDATA=',NPDATA PRINT *,' NQDATA=',NQDATA PRINT *,' NPWDAT=',NPWDAT RETURN END