SUBROUTINE SKYAMP(KFILDO,XDATA,NVAL,TLO,SETLO,THI,SETHI, 1 CONST,NSCAL,EX1,EX2,IER) C C DECEMBER 2019 GLAHN MDL MOS-2000 C MODIFIED FROM SKYAMT C C PURPOSE C TO POSTPROCESS SKY COVER IN CUBE ROOT OF PERCENT BACK C INTO A PERCENT. EX1 AND EX2 ARE FOR POSSIBLE C FUTURE USE. THE VARIABLE IN XDATA( ) IS SCALED C *CONST*10**NSCAL BEFORE RETURNING. ALL VALUES IN XDATA( ) C LT TLO ARE SET TO SETLO AND ALL VALUES GT THI TO SETHI C AFTER THE SCALING. C USE TLO = 1.5, SETLO = 0. C THI = 87., SETHI = 100. C THESE VALUES CAN BE ADJUSTED FOR DESIRABLE DISTRIBUTION. C THE 87. VALUE CAME FROM SCLSKY USED FOR DISCRETE MOS C CATEGORIES ANALYZED WITH PROBABILITIES. THIS IS C UP TO 7 OCTAS FOR BROKEN. C C DATA SET USE C KFILDO - UNIT NUMBER OF OUTPUT (PRINT) FILE. (OUTPUT) C C VARIABLES C KFILDO = UNIT NUMBER OF OUTPUT (PRINT) FILE. (INPUT) C XDATA(K) = THE DATA TO SCALE (K=1,NVAL). C SCALED VALUES ON OUTPUT. (INPUT-OUTPUT) C NVAL = THE NUMBER OF VALUES IN XDATA( ) BEING DEALT C WITH. (INPUT) C TLO = LOW THRESHOLD. WHEN A VALUE IN XDATA( ) C AFTER SCALING IS LT TLOD, IT IS SET TO C SETLOD. (INPUT) C SETLO = SEE TLOD. (INPUT) C THI = HIGH THRESHOLD. WHEN A VALUE IN XDATA( ) C AFTER SCALING IS GT THID, IT IS SET TO C SETHID. (INPUT) C SETHI = SEE THID. (INPUT) C CONST = CONSTANT TO FURNISH TO IN SCALING (SEE C NSCAL BELOW). THIS IS PROBABLY 1. (INPUT) C NSCAL = SCALING CONSTANT. THIS IS PROBABLY 1. C SCALING OF XDATA( ) IS C XDATA( ) = XDATA( )*CONST*10**NSCAL. (INPUT) C EX1 = EXTRA PARAMETER NOT YET USED IN SKYAMP. C (INPUT) C EX2 = EXTRA PARAMETER NOT YET USED IN SKYAMP. C (INPUT) C IER = ERROR RETURN. C 0 = GOOD RETURN. C (OUTPUT) C 1 2 3 4 5 6 7 X C C NONSYSTEM SUBROUTINES USED C NONE C DIMENSION XDATA(NVAL) C CALL TIMPR(KFILDO,KFILDO,'START SKYAMP ') IER=0 C D WRITE(KFILDO,102)TLO,SETLO,THI,SETHI,CONST,NSCAL,EX1,EX2,NVAL D102 FORMAT(/' AT 102 IN SKYAMP--TLO,SETLO,THI,SETHI,CONST,NSCAL,', D 1 'EX1,EX2,NVAL',5F10.4,I4,2F10.4,I8) C D WRITE(KFILDO,105)(XDATA(K),K=1,2345) D105 FORMAT(/,' IN SKYAMP AT 105--XDATA(K)',/,(15F8.2)) C FACTOR=CONST*10.**NSCAL C 125 DO 160 K=1,NVAL C IF(XDATA(K).LT.9998.5)THEN XDATA(K)=(XDATA(K)**3)*FACTOR ENDIF C 160 CONTINUE C C TRUNCATE IF NECESSARY. C IF(TLO.LE.-99998.5.AND. 1 THI.GE.+99998.5)GO TO 180 C C TRUNCATE AT HIGH AND/OR LOW ENDS. C DO 170 K=1,NVAL C IF(XDATA(K).LT.9998.5)THEN C IF(XDATA(K).LT.TLO)THEN XDATA(K)=SETLO ELSEIF(XDATA(K).GT.THI)THEN XDATA(K)=SETHI ENDIF C ENDIF C 170 CONTINUE C D WRITE(KFILDO,165)(XDATA(K),K=1,2345) D165 FORMAT(/,' IN SKYAMP AT 165--XDATA(K)',/,(15F8.2)) C 180 CONTINUE CALL TIMPR(KFILDO,KFILDO,'END SKYAMP ') RETURN END