SUBROUTINE DTAST(TYPE,RES,SCALE,N,RSPRES,PBOT,PTOP,MESAGE) C$$$ SUBPROGRAM DOCUMENTATION BLOCK C . . . . C SUBPROGRAM: DTAST PRINT TABLE OF RESIDUALS BY DATA TYPE. C PRGMMR: PARRISH ORG: W/NMC22 DATE: 90-10-11 C C ABSTRACT: PRINT TABLE OF RESIDUALS BY DATA TYPE. C C PROGRAM HISTORY LOG: C 90-10-11 PARRISH C C USAGE CALL DTAST(TYPE,RES,SCALE,N,RSPRES,PBOT,PTOP,MESAGE) C INPUT ARGUMENT LIST: C TYPE - OBS TYPES (PREPDA NUMBERS) C RES - OBS RESIDUALS C SCALE - RESCALING UNIT C N - NUMBER OF RESIDUALS C RSPRES - OBSERVATION PRESSURE C PBOT - PRESSURE AT BOTTOM OF LAYER C PTOP - PRESSURE AT TOP OF LAYER C MESAGE - MESSAGE TO APPEAR AT TOP OF TABLE ($ SIGNALS END) C C OUTPUT ARGUMENT LIST: C NONE C C ATTRIBUTES: C LANGUAGE: CFT77 C MACHINE: CRAY YMP C C$$$ DIMENSION TYPE(N),RES(N) DIMENSION COUNT(7,101),RMS(7,101),BIAS(7,101) DIMENSION RSPRES(N) CHARACTER*1 MESAGE(100),DOLLAR DATA DOLLAR/'$'/ C-------- DO ITMP=1,7*101 COUNT(ITMP,1)=0. RMS(ITMP,1)=0. BIAS(ITMP,1)=0. ENDDO IOFF=INT(TYPE(1)/100)*100 C-------- DO 100 I=1,N IF(RSPRES(I).LT.PTOP.OR.RSPRES(I).GT.PBOT) GO TO 99 RESS=RES(I)*SCALE ABSR=ABS(RESS) K=1 IF(ABSR.GT.1.) K=2 IF(ABSR.GT.2.) K=3 IF(ABSR.GT.4.) K=4 IF(ABSR.GT.7.) K=5 IF(ABSR.GT.10.) K=6 IF(ABSR.GT.50.) K=7 ITYPE=NINT(TYPE(I))-IOFF ITYPE=MAX(1,MIN(ITYPE,100)) DO 90 L=K,7 COUNT(L,ITYPE)=COUNT(L,ITYPE)+1. BIAS(L,ITYPE)=BIAS(L,ITYPE)+RESS RMS(L,ITYPE)=RMS(L,ITYPE)+RESS*RESS COUNT(L,101)=COUNT(L,101)+1. BIAS(L,101)=BIAS(L,101)+RESS RMS(L,101)=RMS(L,101)+RESS*RESS 90 CONTINUE 99 CONTINUE 100 CONTINUE IF(COUNT(7,101) .LE. 0.)RETURN IMSG=1 DO 400 K=1,100 IF(MESAGE(K).EQ.DOLLAR) GO TO 410 IMSG=IMSG+1 400 CONTINUE 410 CONTINUE IMSG=MAX(1,IMSG-1) WRITE(6,500)(MESAGE(I),I=1,IMSG) 500 FORMAT(/,1H ,100A1,/,' COUNT/BIAS/RMS:',/) WRITE(6,600) 600 FORMAT(T2,'TYPE',T12,'(E<1)',T22,'(E<2)',T32,'(E<4)', * T42,'(E<7)',T52,'(E<10)',T62,'(E<50)',T72,'(50