SUBROUTINE IRLMP(KFILDO,ID,IDPARS,CCALL,XDATA, 1 IBTAG1,IBTAG2, 1 DATA,LNDSEA,LTAG,K,L,LL,ICANADA, 2 IREPL,ISTOP,IER) C C APRIL 2014 GLAHN MDL MOS-2000 C APRIL 2014 GLAHN MODIFIED TO ACCEPT ONLY ONE C STATION IN CALL VICE ARRAYS; c ELIMINATED ND1, ADDED DATA C APRIL 2014 GLAHN MODIFIED FOR USE OF MOS TO APPLY C ONLY TO TEMP, SPEED, AND TW, C FOR PROJECTION 1 C MAY 2014 GLAHN INCREMENTED ISTOP(1) ON ERROR C MAY 2014 GLAHN ADDED IBTAG2 C MAY 2014 GLAHN MODIFIED 2 TESTS TO INCLUDE C U- AND V- WIND C C PURPOSE C TO SET IREPL( ) FOR THE FOLLOWING VALUES OF L. C C L TYPE ELEMENT C C 1 LAMP TEMPERATURE C 2 " DEWPOINT C 3 " WIND SPEED C 4 " U-WIND C 5 " V-WIND C C EACH HAS THREE LEVELS OF AUGMENTATION, FIRST IS MOS, THE C SECOND IS ON-TIME OBS, AND THE THIRD IS 1-H OLD OBS. C C MOS CAN BE USED FOR THE 1ST LAMP PROJECTION EVEN IF C THE STATION WAS TOSSED IN THE OBS ANALYSIS. C C NOTE THAT IT IS EXPECTED LAMP PROJECTION 1 WILL BE C EXECUTED. IT IS ALSO EXPECTED THAT THE OTHER PROJECTIONS C WILL BE EXECUTED IN SEQUENCE, BUT IT IS NOT MANDATORY, C AND PROJECTIONS COULD BE SKIPPED. C C LTAG CANNOT BE RESET HERE, BECAUSE IT IS NOT KNOWN C WHETHER OR NOT AN AUGMENTED VALUE WILL BE INSERTED, C EXCEPT IT MUST BE SET TO ZERO IF A LAMP VALUE IS C PRESENT FOR PROJECTION 1 TO INSURE ITS USE. 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 XDATA = DATA VALUE ON BASE VARIABLE. (INPUT) C IBTAG1 = LTAG FOR OBS ANALYSIS FOR TEMP OR WND SPEED. C (INPUT) C IBTAG2 = LTAG FOR OBS ANALYSIS FOR DEWPOINT OR TOTAL WIND. C (ONLY USED FOR DEWPOINT.) (INPUT) C DATA = VALUE OF CANDIDATE AUGMENTING VALUE. C ONLY NEEDED FOR DIAGNOSTIC. (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 = TOSSED IN LAST ANALYSIS. (INCOMING). C WILL BE SET TO 0 IF A LAMP VALUE IS C PRESENT. 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 IN LIST. NOT ACTUALLY C NEEDED (INPUT) C L = NUMBER OF VARIABLE FROM AUGMT2. (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 WITHOUT 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.'XXXXX ')THEN CCCC WRITE(KFILDO,100)K,CCALL,L,LL,ICANADA,LNDSEA, CCCC 1 LTAG,IBTAG1,IBTAG2 CCCC 100 FORMAT(/,' AT 100 IN IRLMP--K,CCALL,L,LL,ICANADA,', CCCC 1 'LNDSEA,LTAG,IBTAG1,IBTAG2',/, CCCC 2 I7,2X,A8,7I3) CCCC ENDIF C C IF(L.LE.5)THEN C THIS IS FOR LAMP TEMP, DEWPOINT, WIND SPEED, U, AND V. C IF(IFIRST(L).EQ.0)THEN CALL TIMPR(KFILDO,KFILDO,'START IRLMP ') C THIS WILL PRINT ONCE FOR THIS VARIABLE. IFIRST(L)=1 ENDIF C IREPL(1)=1 IREPL(2)=1 C THE ABOVE ARE FOR CHECKOUT AND CAN BE REMOVED. C IF(ICANADA.EQ.1)THEN C IF(LL.EQ.1)THEN C THIS IS MOS IN CANADA. C IF(LTAG.EQ.0)THEN IREPL(1)=1 IREPL(2)=1 C MOS OVER CANADA IS USED UNADJUSTED, IF NECESSARY. C ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN C LTAG = -1 OR +4 INDICATES A TOSSED FROM ONE OR C THE OTHER OF THE INCOMING SOURCES. IBTAG1 AND C IBTAG2 PERTAIN TO ONLY OBS ANALYSES. C IF(IDPARS(12).EQ.1)THEN C IF(((L.EQ.1.OR.L.EQ.3).AND.(IBTAG1.EQ.-1)).OR. 1 ((L.EQ.2).AND.(IBTAG2.EQ.-1.OR.IBTAG2.EQ.4))) 2 THEN C BECAUSE IBTAG1 PERTAINS TO TEMP AND SPEED, C THE FIRST IN EACH SERIES, THEN IT WILL NOT C BE +4. HOWEVER, IBTAG2 COULD BE EITHER -1 C OR 4 BECAUSE THE TOSSES COULD COME FROM C EITHER TEMPERATURE OR DEWPOINT. C C MOS IS USED, UNADJUSTED IF NECESSARY, FOR C LAMP PROJECTION 1 EVEN IF OB TOSSED IN OBS C ANALYSIS. THIS APPLIES ONLY TO TEMPERATURE, C DEWPOINT, AND WIND SPEED FOR PROJECTION 1. C IF MOS COMES IN AND IS LATER TOSSED, IT WILL C STAY TOSSED; OTHERWISE IF IT IS NOT TOSSED, C LTAG WILL BE 0. AUGMT2 SETS AN OB TOSSED C IN OBS ANALYSIS TO MISSING FOR EACH ELEMENT C AND PROJECTION, SO IT WILL NEVER BE USED. IREPL(1)=1 IREPL(2)=1 C WRITE(KFILDO,110)CCALL,LNDSEA 110 FORMAT(/' MOS VALUE FOR STATION ',A8, 1 ' MAY BE USED FOR A PREVIOUSLY', 2 ' TOSSED STATION IN THE CANADIAN AREA.', 3 ' DATA TYPE =',I4) IF(XDATA.LT.9998.5)THEN WRITE(KFILDO,112)CCALL,ICANADA,LTAG,IBTAG1, 1 IBTAG2,LL,XDATA, 1 DATA,LNDSEA,IREPL(1),IREPL(2) 112 FORMAT(/' AT 112 IN IRLMP--', 1 'CCALL,ICANADA,LTAG,IBTAG1,IBTAG2,LL,', 2 'XDATA,DATA,LNDSEA,IREPL(1),IREPL(2) ', 3 A8,I2,4I3,2F8.1,3I3) ENDIF C ELSE IREPL(1)=0 IREPL(2)=0 C LTAG INDICATES TO NOT USE, SO THE VALUE IS C NOT TO BE USED. ENDIF C ELSE IREPL(1)=0 IREPL(2)=0 C LTAG INDICATES TO NOT USE, SO THE VALUE IS C OT TO BE USED. ENDIF C ELSE IREPL(1)=0 IREPL(2)=0 C LTAG INDICATES TO NOT USE, SO THE VALUE IS C NOT TO BE USED. ENDIF C ELSE C IF(LTAG.EQ.0)THEN IREPL(1)=1 IREPL(2)=1 C OB IS USED, WHEN NOT PREVIOUSLY TOSSED, EVEN C UNADJUSTED. IT WILL BE ADJUSTED WITH MOS TREND C IF IT IS NOT ADJUSTED BY THE USUAL PROCEDURE. ELSE IREPL(1)=0 IREPL(2)=0 C ANY VALUE OF LTAG OTHER THAN ZERO WILL CAUSE C AN OB TO NOT BE USED. ENDIF C ENDIF 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 IRLMP--K,L,LL,ICANADA,', CCCC 1 'ICCALL,LNDSEA,LTAG,IREPL(1),', CCCC 2 'IREPL(2)',/,16X,4I7,2X,A8,4I4) CCCCCCCCCCCCC ENDIF C ELSE C C THIS SECTION IS FOR CONUS LAND AND WATER, MOS AND OBS. C IF(LTAG.EQ.0)THEN C IF(LL.EQ.1)THEN C IF(LNDSEA.LE.6)THEN IREPL(1)=1 IREPL(2)=1 C MOS IS USED, UNADJUSTED IF NECESSARY, OVER C WATER AND MIXED LAKE/LAND. ELSE IREPL(1)=1 IREPL(2)=0 C MOS IS NOT USED UNADJUSTED OVER LAND. ENDIF C ELSE C IF(LNDSEA.GE.6)THEN IREPL(1)=1 IREPL(2)=0 C OBS ARE USED OVER LAND AND MIXED LAKE/LAND, C BUT ONLY ADJUSTED. ELSE IREPL(1)=1 IREPL(2)=1 C AN OB IS USED OVER WATER, UNADJUSTED. C NO LAMP OVER WATER AND PARING OF STATIONS C IN U179D PRECLUES ADJUSTMENT. THIS WILL C LATER BE ADJUSTED WITH MOS TREND. ENDIF C ENDIF C ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN C IF(IDPARS(12).EQ.1)THEN C IF(XDATA.LT.9998.5)THEN IREPL(1)=1 IREPL(2)=1 C IF A LAMP VALUE IS THERE FOR PROJECTION 1, IT C WILL BE USED AND THE IREPL( ) WILL NOT MATTER. LTAG=0 C LTAG( ) IS SET TO ZERO TO INSURE LAMP USE. C WRITE(KFILDO,120)CCALL,XDATA 120 FORMAT(/' LAMP VALUE ACCEPTED IN AUGMT2 WHEN OB', 1 ' AT STATION HAD BEEN TOSSED IN OBS', 2 ' ANALYSIS. ',A8,F7.1) ENDIF C IF(LL.EQ.1)THEN C IF(((L.EQ.1.OR.L.EQ.3).AND.(IBTAG1.EQ.-1)).OR. 1 ((IBTAG2.EQ.-1.OR.IBTAG2.EQ.4).AND. 2 L.EQ.2))THEN C BECAUSE IBTAG1 PERTAINS TO TEMP AND SPEED, C THE FIRST IN EACH SERIES, THEN IT WILL NOT C BE +4. HOWEVER, IBTAG2 COULD BE EITHER -1 C OR 4 BECAUSE THE TOSSES COULD COME FROM C EITHER TEMPERATURE OR DEWPOINT. C C MOS IS USED, UNADJUSTED IF NECESSARY, FOR C LAMP PROJECTION 1 EVEN IF OB TOSSED IN OBS C ANALYSIS. THIS APPLIES ONLY TO TEMPERATURE, C AND WIND SPEED FOR PROJECTION 1. IF MOS C COMES IN AND IS LATER TOSSED, IT WILL STAY C TOSSED; OTHERWISE IF IT IS NOT TOSSED, LTAG C WILL BE 0. AUGMT2 SETS AN OB TOSSED IN OBS C ANALYSIS TO MISSING FOR EACH ELEMENT AND C PROJECTION, SO IT WILL NEVER BE USED. IREPL(1)=1 C IF(DATA.LT.9998.5)THEN WRITE(KFILDO,130)CCALL,LNDSEA 130 FORMAT(/' MOS VALUE FOR STATION ',A8, 1 ' WILL BE USED FOR A PREVIOUSLY', 2 ' TOSSED STATION IN THE CONUS AREA.', 3 ' DATA TYPE =',I4) ENDIF C IF(LNDSEA.EQ.9)THEN IREPL(2)=0 C AUGMENTATION BY MOS FOR PROJECTION 1, BUT C ONLY IF ADJUSTED. ELSE IREPL(2)=1 C MOS IS USED OVER WATER, UNADJUSTED IF C NECESSARY. ENDIF C CCCC WRITE(KFILDO,132)CCALL,ICANADA,LTAG,IBTAG1, CCCC 1 IBTAG2,LL,XDATA, CCCC 1 DATA,LNDSEA,IREPL(1),IREPL(2) CCCC 132 FORMAT(/' AT 132 IN IRLMP--', CCCC 1 'CCALL,ICANADA,LTAG,IBTAG1,IBTAG2,LL,', CCCC 2 'XDATA,DATA,LNDSEA,IREPL(1),IREPL(2) ', CCCC 3 A8,I2,4I3,2F8.1,3I3) C ELSE IREPL(1)=0 IREPL(2)=0 C IF NOT MOS FOR THE FIRST PROJECTION, VALUES C ARE NOT USED. ENDIF C ELSE IREPL(1)=0 IREPL(2)=0 C IF NOT MOS FOR THE FIRST PROJECTION, VALUES C ARE NOT USED. ENDIF C ELSE IREPL(1)=0 IREPL(2)=0 C IF NOT MOS FOR THE FIRST PROJECTION, VALUES C ARE NOT USED. ENDIF C ELSE C ANY LTAG GT 0 AND NE -1 OR 4 WILL BE LEFT INTACT C AND INDICATES A STATION TO NOT USE. IREPL(1)=0 IREPL(2)=0 ENDIF C ENDIF 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 IRLMP--K,L,LL,ICANADA,', CCCC 1 'ICCALL,LNDSEA,LTAG,IREPL(1),', CCCC 2 'IREPL(2)',/,16X,4I7,2X,A8,4I4) CCCCCCCCCCCCC ENDIF C ELSE WRITE(KFILDO,200)L 200 FORMAT(/' ****ENTERED IRLMP INCORRECTLY, L =',I4) IER=777 ISTOP(1)=ISTOP(1)+1 ENDIF C IF(CCALL.EQ.'XXXXX ')THEN WRITE(KFILDO,300)K,CCALL,L,LL,ICANADA,LNDSEA, 1 LTAG,IBTAG1,IBTAG2,IREPL(1),IREPL(2) 300 FORMAT(/,' AT 300 IN IRLMP--K,CCALL,L,LL,ICANADA,', 1 'LNDSEA,LTAG,IBTAG1,IBTAG2,IREPL(1),IREPL(2)',/, 2 I7,2X,A8,9I3) ENDIF C RETURN C END