C------------------------- C C ARL_DISP.F C C DISPLAY MODULE FOR NOAA_ARL.F (READ FIELD FUNCTION) C C Copyright 1992, University Corporation for C Atmospheric Research, All Rights Reserved C C Contains the subroutines SHOWIT and INIT C ADM MAR 26 92 RAF/NCAR C------------------------- C--------------------------------- C SHOWIT() C Displays the first 3 values for each level SUBROUTINE SHOWIT(PRES, PREC, U, V, T, Q) REAL PRES(33,33), PREC(33,33) REAL U(33,33,9), V(33,33,9), T(33,33,9), Q(33,33,9) WRITE(*, '(/A)') ' PRESSURE PRECIPITATION' DO 10 I=1,3 WRITE (*,5) PRES(1,I), PREC(1,I) 5 FORMAT(2F12.3) 10 CONTINUE WRITE(*, '(/4X,A,4X,A,3X,A,3X,A)') ' U WIND', + ' V WIND', 'TEMPERATURE', 'HUMIDITY' DO 30 LEVEL=1,9 WRITE(*,'(A,I1)') 'LEVEL ',LEVEL DO 20 I=1,3 WRITE(*,15) U(I,1,LEVEL), V(I,1,LEVEL), + T(I,1,LEVEL), Q(I,1,LEVEL) 15 FORMAT(4F12.3) 20 CONTINUE 30 CONTINUE RETURN END C--------------------------------- C INIT() C Initializes the filename and month arrays. C C The filename array contains the 8 filenames. C The month array contains (1)the starting record number C or what record corresponds to the month, day, and hour C entry, and (2)the index into the fname array indicating C which filename contains data for the requested month, C day, and hour. C SUBROUTINE INIT(FNAME,MONTH) CHARACTER*30 FNAME(8) INTEGER MONTH(7:9,31,4,2) C 7:9 is for July, August, and September C 1:31 is for the day of the month C 1:4 is for the hours 0,6,12, and 18 C the fourth index: C (1) is the record #. 0 indicates a missing record. C (2) is the FNAME index. 0 means out of range. FNAME(1)='G001.1.19910722000000.all' FNAME(2)='G001.2.19910729120000.all' FNAME(3)='G001.3.19910805120000.all' FNAME(4)='G001.4.19910812120000.all' FNAME(5)='G001.5.19910820120000.all' FNAME(6)='G001.6.19910828120000.all' FNAME(7)='G001.7.19910903120000.all' FNAME(8)='G001.8.19910909120000.all' DO 40 I=7,9 DO 30 J=1, 31 DO 20 K=1,4 DO 10 L=1,2 MONTH(I,J,K,L)=0 10 CONTINUE 20 CONTINUE 30 CONTINUE 40 CONTINUE C********************* SET UP JULY ******************* IFILE=1 IREC=1 DO 60 I=22,31 DO 50 J=1,4 MONTH(7,I,J,1)=IREC MONTH(7,I,J,2)=IFILE IREC=IREC+38 C* ---- SKIP THE TWO DUPLICATE RECORDS -------- IF (I.EQ.24 .AND. J.EQ.2) THEN IREC=IREC+38+38 C* ---- SKIP THE FIVE MISSING RECORDS -------- ELSEIF (I.EQ.24 .AND. J.EQ.2) THEN IREC=IREC-(5*38) ENDIF C* ---- ADVANCE TO NEXT FILE ------------------ IF (I.EQ.29 .AND. J.EQ.2) THEN IFILE = IFILE+1 IREC=1 ENDIF 50 CONTINUE 60 CONTINUE C* ----- THESE FIVE ARE MISSING ----- MONTH(7,28,2,1)=0 MONTH(7,28,3,1)=0 MONTH(7,28,4,1)=0 MONTH(7,29,1,1)=0 MONTH(7,29,2,1)=0 C***************** SET UP AUGUST ************************* DO 80 I=1,31 DO 70 J=1,4 MONTH(8,I,J,1)=IREC MONTH(8,I,J,2)=IFILE IREC=IREC+38 C* ---- SKIP THE FOURTEEN MISSING RECORDS ------ IF (I.EQ.1 .AND. J.EQ.2) THEN IREC=IREC-(2*38) ELSEIF (I.EQ.20 .AND. J.EQ.2) THEN IREC=IREC-(4*38) ELSEIF (I.EQ.28 .AND. J.EQ.2) THEN IREC=IREC-(8*38) ENDIF C* ---- ADVANCE TO NEXT FILE ------------------ IF (I.EQ.5 .AND. J.EQ.2) THEN IFILE=IFILE+1 IREC=1 ELSEIF (I.EQ.12 .AND. J.EQ.2) THEN IFILE=IFILE+1 IREC=1 ELSEIF (I.EQ.20 .AND. J.EQ.2) THEN IFILE = IFILE+1 IREC=1 ELSEIF (I.EQ.28 .AND. J.EQ.2) THEN IFILE = IFILE+1 IREC=1 ENDIF 70 CONTINUE 80 CONTINUE C* ----- THESE FOURTEEN ARE MISSING ----- MONTH(8,1,1,1)=0 MONTH(8,1,2,1)=0 MONTH(8,19,3,1)=0 MONTH(8,19,4,1)=0 MONTH(8,20,1,1)=0 MONTH(8,20,2,1)=0 MONTH(8,26,3,1)=0 MONTH(8,26,4,1)=0 MONTH(8,27,1,1)=0 MONTH(8,27,2,1)=0 MONTH(8,27,3,1)=0 MONTH(8,27,4,1)=0 MONTH(8,28,1,1)=0 MONTH(8,28,2,1)=0 C***************** SET UP SEPTEMBER *********************** DO 100 I=1,16 DO 90 J=1,4 MONTH(9,I,J,1)=IREC MONTH(9,I,J,2)=IFILE IREC=IREC+38 C* ---- SKIP THE SIX MISSING RECORDS ------ IF (I.EQ.11 .AND. J.EQ.2) THEN IREC=IREC-(4*38) ELSEIF (I.EQ.13 .AND. J.EQ.2) THEN IREC=IREC-(2*38) ENDIF C* ---- ADVANCE TO NEXT FILE ------------------ IF (I.EQ.3 .AND. J.EQ.2) THEN IFILE=IFILE+1 IREC=1 ELSEIF (I.EQ.9 .AND. J.EQ.2) THEN IFILE=IFILE+1 IREC=1 ENDIF 90 CONTINUE 100 CONTINUE C* ----- THESE SIX ARE MISSING ----- MONTH(9,10,3,1)=0 MONTH(9,10,4,1)=0 MONTH(9,11,1,1)=0 MONTH(9,11,2,1)=0 MONTH(9,13,1,1)=0 MONTH(9,13,2,1)=0 C* ----- THESE TWO ARE OUT OF RANGE ----- MONTH(9,16,3,1)=0 MONTH(9,16,4,1)=0 MONTH(9,16,3,2)=0 MONTH(9,16,4,2)=0 RETURN END C--------------------------------- C**END OF FILE ARL_DISP.F C---------------------------------