SUBROUTINE IROBTW(KFILDO,ID,IDPARS,CCALL,LNDSEA,LTAG, 1 K,L,LL,ICANADA,IREPL,ISTOP,IER) C C APRIL 2014 GLAHN TDL MOS-2000 C APRIL 2014 GLAHN MODIFIED TO ACCEPT ONLY ONE C STATION IN CALL VICE ARRAYS; c ELIMINATED ND1 C MAY 2014 GLAHN INCREMENTED ISTOP(1) ON ERROR C C PURPOSE C TO SET IREPL( ) FOR THE FOLLOWING L. C C L TYPE ELEMENT C C 19 " TOTAL WIND SPEED (TW) C C TW HAS THREE LEVELS OF AUGMENTATION: C (1) 0-H GUSTS, C (2) MOS, BUT ONLY OVER CANADA AND WATER, AND C (3) -1-H GUSTS. C C DATA SET USE C KFILDO - UNIT NUMBER FOR OUTPUT (PRINT) FILE. (OUTPUT) C C VARIABLES C KFILDO = UNIT NUMBER FOR OUTPUT (PRINT) FILE. (INPUT) C ID(J) = 4-WORD ID OF VARIABLE TO PROVIDE FIRST GUESS FOR C (J=1,4). (INPUT) C IDPARS(J) = THE PARSED, INDIVIDUAL COMPONENTS OF THE C VARIABLE ID'S CORRESPONDING TO ID( ,N) C CCALL = CALL LETTERS OF STATION BEING DEALT WITH. C (CHARACTER*8) (INPUT) C LNDSEA = LAND/SEA INFLUENCE FLAG FOR STATION BEING C DEALT WITH). C 0 = WILL BE USED FOR ONLY OCEAN WATER (=0) C GRIDPOINTS. C 3 = WILL BE USED FOR ONLY INLAND WATER (=3) C GRIDPOINTS. C 6 = WILL BE USED FOR BOTH INLAND WATER (=3) C AND LAND (=9) GRIDPOINTS. C 9 = WILL BE USED FOR ONLY LAND (=9) GRIDPOINTS. C (INPUT) C LTAG = DENOTES USE OF DATA CORRESPONDING TO CCALL. C +4 = TOSSED IN A PREVIOUS OBS RUN AND C MAINTAINED DOWNSTREAM. C +2 = NOT USED FOR ANY PURPOSE. FLTAG SETS C A VALUE +2 WHEN THE STATION LOCATION C IS MISSING. C +1 = PERMANENTLY DISCARDED FOR THE VARIABLE C BEING ANALYZED. INCLUDES DATA FAR C OUTSIDE THE GRID, AS DEFINED BY RMAX C 0 = USE ON CURRENT PASS THROUGH DATA. C -1 = DO NOT USE ON THIS PASS (INCOMING). C SET TO 4 (OUTGOING). C -3 = ACCEPT THIS STATION ON EVERY PASS. THIS C FEATURE MAY OR MAY NOT BE IMPLEMENTED IN C THE CALLING PROGRAM. C (INPUT/OUTPUT) C K = NUMBER OF STATION. (INPUT) C L = NUMBER OF VARIABLE. (INPUT) C LL = LEVEL OF AUGMENTATION. (INPUT) C ICANADA = 1 WHEN THE STATION IS IN NORTH CANADA. C 0 OTHERWISE. (INPUT) C IREPL(NN) = 1 WHEN A STATION IS TO BE USED (NN=1); 1 WHEN A C STATION IS USED IF THERE CAN BE NO ADJUSTMENT C (NN=1,2). INCOMING VALUES WILL BE WHATEVER C THEY WERE FOR THE LAST STATION, AND WILL C ALWAYS BE MODIFIED. (OUTPUT) C ISTOP = WHEN AN ERROR OCCURS, INCREMENT ISTOP BY 1. C (INPUT/OUTPUT) C IER = ERROR CODE. C 0 = GOOD RETURN. C 777 = SUBROUTINE DOES NOT ACCOMMODATE VALUE OF C L. CONSIDER FATAL. C IFIRST(J) = INITIALLY SET TO ZERO. WHEN THIS ROUTINE IS C FIRST ENTERED CORRECTLY FOR A PARTICULAR VALUE C OF L, TIMPR IS CALLED AND IFIRST(L) IS C SET TO 1 (J=1,30). (INTERNAL) C 1 2 3 4 5 6 7 X C C NONSYSTEM SUBROUTINES USED C TIMPR C CHARACTER*8 CCALL C DIMENSION ID(4),IDPARS(15) DIMENSION ISTOP(3),IREPL(2),IFIRST(30) C DATA IFIRST/30*0/ C SAVE IFIRST C IER=0 C CCCC IF(CCALL.EQ.'44137 ')THEN CCCC WRITE(KFILDO,100)K,L,LL,ICANADA,CCALL,LNDSEA, CCCC 1 LTAG,IREPL(1),IREPL(2) CCCC 100 FORMAT(/,' AT 100 IN IROBTW--K,L,LL,ICANADA,CCALL,', CCCC 1 'LNDSEA,LTAG,IREPL(1),IREPL(2)',/, CCCC 2 4I7,2X,A8,4I4) CCCC ENDIF C C IF(L.EQ.19)THEN C THIS IS FOR OBS TOTAL WIND. C IF(IFIRST(L).EQ.0)THEN CALL TIMPR(KFILDO,KFILDO,'START IROBTW ') C THIS WILL PRINT ONCE FOR THIS VARIABLE. IFIRST(L)=1 ENDIF C IF(LL.EQ.2)THEN C THIS IS FOR MOS. C IF(ICANADA.EQ.1.OR.LNDSEA.LE.6)THEN C C THIS SECTION IS FOR NORTH CANADA OR WATER. C IF(LTAG.EQ.0)THEN C IREPL(1)=1 IREPL(2)=1 C MOS GUSTS ARE USED UNADJUSTED. NO DELTA C IS USED FOR GUSTS. C ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN C WITH LTAG COMING FROM SPEED OBS, IT CAN BE -1, C BUT NOT +4. HOWEVER, TEST IS ALSO DONE ON 4 C IN CASE LTAG WERE TO COME FROM V-WIND. IREPL(1)=1 IREPL(2)=1 C IF OB WAS TOSSED, MOS GUST CAN BE USED. THIS C IS CONSISTENT WITH USING MOS SPEED WHEN OBS C SPEED IS TOSSED. (CHANGE MADE 4/13/14) ELSE C CCCCCCCCCCCCC IF(CCALL.EQ.'44137 ')THEN CCCC WRITE(KFILDO,115)K,L,LL,ICANADA,CCALL, CCCC 1 LNDSEA,LTAG,IREPL(1),IREPL(2) CCCC 115 FORMAT(/,' AT 115 IN IROBTW--K,L,LL,ICANADA,', CCCC 1 'ICCALL,LNDSEA,LTAG,IREPL(1),', CCCC 2 'IREPL(2)',/,16X,4I7,2X,A8,4I4) CCCCCCCCCCCCC ENDIF C IREPL(1)=0 IREPL(2)=0 C LTAG GT 0 INDICATES STATION TO NOT USE. ENDIF C ELSE IREPL(1)=0 IREPL(2)=0 C MOS IS NOT USED OVER THE CONUS. ENDIF C ELSE C THIS SECTION FOR 0-H AND -1-H GUSTS, CONUS, WATER, C AND CANADA. NO ADJUSTMENT IS DONE. C IF(LTAG.EQ.0)THEN C IREPL(1)=1 IREPL(2)=1 C OBS ARE USED UNADJUSTED. C ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN C WITH LTAG COMING FROM SPEED OBS, IT CAN BE -1, C BUT NOT +4. HOWEVER, TEST IS ALSO DONE ON 4 C IN CASE LTAG WERE TO COME FROM V-WIND. IREPL(1)=0 IREPL(2)=0 C WHEN AN OB IS TOSSED, THE GUST IS NOT USED. ELSE C CCCCCCCCCCCCC IF(CCALL.EQ.'44137 ')THEN CCCC WRITE(KFILDO,150)K,L,LL,ICANADA,CCALL, CCCC 1 LNDSEA,LTAG,IREPL(1),IREPL(2) CCCC 150 FORMAT(/,' AT 150 IN IROBTW--K,L,LL,ICANADA,', CCCC 1 'ICCALL,LNDSEA,LTAG,IREPL(1),', CCCC 2 'IREPL(2)',/,16X,4I7,2X,A8,4I4) CCCCCCCCCCCCC ENDIF C IREPL(1)=0 IREPL(2)=0 C LTAG GT 0 INDICATES STATION TO NOT USE. ENDIF C ENDIF C ELSE WRITE(KFILDO,200)L 200 FORMAT(/' ****ENTERED IROBTW INCORRECTLY, L =',I4) IER=777 ISTOP(1)=ISTOP(1)+1 ENDIF C CCCC IF(CCALL.EQ.'44137 ')THEN CCCC WRITE(KFILDO,300)K,L,LL,ICANADA,CCALL,LNDSEA, CCCC 1 LTAG,IREPL(1),IREPL(2) CCCC 300 FORMAT(/,' AT 300 IN IROBTW--K,L,LL,ICANADA,CCALL,', CCCC 1 'LNDSEA,LTAG,IREPL(1),IREPL(2)',/, CCCC 2 4I7,2X,A8,4I4) CCCC ENDIF C RETURN C END