!$Author: fredfox $ !$Date: 2006-02-25 00:21:16 $ !$Revision: 1.2 $ !$Source: /weru/cvs/wepp/wepp.watbal/rdat.for,v $ SUBROUTINE RDAT(NF, SI, SC, S, T, SLEN, NS, ALPHA, M, A1, A2, 1 ACV, HCV, SCV, TSTAR) C + + + PURPOSE + + + C SUBROUTINE RDAT GETS THE INPUT FOR HDRIVE C C CALLED FROM MAIN C AUTHOR(S): D. FLANAGAN, J. ASCOUGH C VERSION: THIS MODULE TAKEN FROM ASCOUGH STANDALONE IRS CODE C DATE CODED: 3-28-2005 C CODED BY: D. FLANAGAN C C + + + PARAMETER DECLARATIONS + + + C INTEGER MXTIME PARAMETER (MXTIME = 1000) C + + + ARGUMENT DECLARATIONS + + + REAL SI(MXTIME+1), SC, S(MXTIME), T(MXTIME), 1 ALPHA, M, A1, A2, ACV(3), HCV(3), SCV(3), SLEN, TSTAR INTEGER NF, NS C + + + ARGUMENT DEFINITIONS + + + C C NR - C + + + LOCAL VARIABLES + + + C INTEGER I, IM, IRES, IC, ICC REAL RGHIDX(5), SLOPE, CHEZYC, FRCROU, FRCCOV, FRCSOL, FRCTOT, XN C C + + + END SPECIFICATIONS + + + C DATA RGHIDX /35., 15., 5., 2., 0./ C HCV(1) = .001 HCV(2) = .0833333 HCV(3) = .001 ACV(1) = 60. ACV(2) = 60. ACV(3) = 1. C C READ THE SLOPE OF THE PLANE (%) C READ (3,*) SLOPE C C READ THE RESISTANCE LAW FLAG (1 = MANNING; 2 = CHEZY) C READ (3,*) IRES C IF (IRES.EQ.2) THEN M = 1.5 C C IF CHEZY, READ THE DEPTH-DISCHARGE EXPONENT FLAG C (1 = DEFAULT VALUE OF 1.5; 2 = USER-SUPPLIED) C READ (3,*) IM C C IF IM = 2 (USER-SUPPLIED) READ THE DEPTH-DISCHARGE EXPONENT C IF (IM.EQ.2) READ (3,*) M C C IF CHEZY, READ THE DEPTH-DISCHARGE COEFFICIENT FLAG C (1 = USER-SUPPLIED CHEZY C; 2 = CHEZY C VALUE CALULATED C FROM RILL ROUGHNESS/COVER) C READ (3,*) IC C IF (IC.EQ.1) THEN READ (3,*) CHEZYC ELSE C C READ THE RILL/COVER RELATIONSHIP CODE (1-5) C C ------------------------------------------------ C CODE CHARACTERISTIC DEPRESSION DEPTH C (MM) C ------------------------------------------------ C 1 VERY ROUGH 100 - 150 C 2 MODERATE 50 - 100 C 3 LOW 25 - 50 C 4 SLIGHT 0 - 25 C 5 SMOOTH 0 C ------------------------------------------------ C READ (3,*) ICC C FRCROU = 13.0 * (1.0-EXP(-0.0773*(RGHIDX(ICC)))) FRCCOV = 18.52 * (SC/100.) ** 1.267 FRCSOL = 1.0 FRCTOT = FRCROU + FRCCOV + FRCSOL CHEZYC = 8.854 / SQRT(FRCTOT) END IF C C ALPHA = C * SQRT(S) WHERE C IS THE CHEZY ROUGHNESS C COEFFICIENT AND S IS THE SLOPE OF THE PLANE C ALPHA = CHEZYC * (SQRT(SLOPE/100.0)) ELSE C C USE MANNING RELATIONSHIP C M = 5. / 3. READ (3,*) XN ALPHA = SQRT(SLOPE/100.) / XN C END IF C C READ THE SLOPE LENGTH OF THE PLANE (M) C READ (3,*) SLEN C C CONVERT ALPHA AND EXCESS RATES TO INTERNAL LENGTH AND TIME C C ALPHA: METRIC = M**(2-M)/MIN C ENGLISH = F**(2-M)/MIN C DEFAULT = FL**(2-M)/MF C C EXCESS: METRIC = M/MIN C ENGLISH = F/MIN C DEFAULT = FL/MFN C C COMPUTE CONSTANTS USED IN LATER CALCULATIONS C ALPHA = ALPHA * ACV(1) A1 = M * ALPHA A2 = M - 1.D0 C C RAINFALL EXCESS DATA C IF (NF.EQ.0) THEN C DO I = 1, 101 SI(I) = 0.D0 END DO C TSTAR = T(NS) NS = NS - 1 C DO I = 1, NS S(I) = S(I) * SCV(1) IF (S(I).EQ.0.D0) S(I) = 1.D-8 END DO C C COMPUTE SI(N) AS THE INTEGRAL OF S WRT T FROM 0 TO T(N) FOR N C BETWEEN 1 AND NS+1 C SI(1) = 0.D0 C DO I = 1, NS SI(I+1) = SI(I) + S(I) * (T(I+1)-T(I)) END DO C END IF C RETURN END