*IF DEF,A08_7A FRUNOF7A.2 C ******************************COPYRIGHT****************************** FRUNOF7A.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. FRUNOF7A.4 C FRUNOF7A.5 C Use, duplication or disclosure of this code is subject to the FRUNOF7A.6 C restrictions as set forth in the contract. FRUNOF7A.7 C FRUNOF7A.8 C Meteorological Office FRUNOF7A.9 C London Road FRUNOF7A.10 C BRACKNELL FRUNOF7A.11 C Berkshire UK FRUNOF7A.12 C RG12 2SZ FRUNOF7A.13 C FRUNOF7A.14 C If no contract has been raised with this copy of the code, the use, FRUNOF7A.15 C duplication or disclosure of it is strictly prohibited. Permission FRUNOF7A.16 C to do so must first be obtained in writing from the Head of Numerical FRUNOF7A.17 C Modelling at the above address. FRUNOF7A.18 C ******************************COPYRIGHT****************************** FRUNOF7A.19 C FRUNOF7A.20 CLL SUBROUTINE FRUNOFF------------------------------------------------ FRUNOF7A.21 CLL FRUNOF7A.22 CLL PURPOSE : TO CALCULATE SURFACE RUNOFF FRUNOF7A.23 CLL FRUNOF7A.24 CLL SUITABLE FOR SINGLE COLUMN MODEL USE FRUNOF7A.25 CLL FRUNOF7A.26 CLL WRITTEN FOR CRAY-YMP BY S.ALLEN AND D.GREGORY FRUNOF7A.27 CLL DEC - FEB 1989/90 FRUNOF7A.28 CLL FRUNOF7A.29 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: FRUNOF7A.30 CLL VERSION DATE FRUNOF7A.31 CLL FRUNOF7A.32 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4 FRUNOF7A.33 CLL VERSION NO. 1 18/1/90 FRUNOF7A.34 CLL FRUNOF7A.35 CLL LOGICAL COMPONENTS : P252 FRUNOF7A.36 CLL FRUNOF7A.37 CLL SYSTEM TASK : FRUNOF7A.38 CLL FRUNOF7A.39 CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER NO 25 FRUNOF7A.40 CLL SECTION (3B(II)), EQN(P252.14) FRUNOF7A.41 CLL FRUNOF7A.42 CLLEND----------------------------------------------------------------- FRUNOF7A.43 C FRUNOF7A.44 C*L ARGUMENTS--------------------------------------------------------- FRUNOF7A.45 C FRUNOF7A.46SUBROUTINE FRUNOFF ( 7FRUNOF7A.47 & NPNTS,TILE_PTS,TILE_INDEX,AREA, FRUNOF7A.48 & CAN_CPY,CAN_WCNT,INFIL,R,FRAC,TIMESTEP, FRUNOF7A.49 & SURF_ROFF FRUNOF7A.50 & ) FRUNOF7A.51 FRUNOF7A.52 IMPLICIT NONE FRUNOF7A.53 FRUNOF7A.54 INTEGER FRUNOF7A.55 & NPNTS ! IN Total number of land points. FRUNOF7A.56 &,TILE_PTS ! IN Number of tile points. FRUNOF7A.57 &,TILE_INDEX(NPNTS) ! IN Index of tile points. FRUNOF7A.58 FRUNOF7A.59 REAL FRUNOF7A.60 & AREA ! IN Fractional area of gridbox over which FRUNOF7A.61 ! water falls (%). FRUNOF7A.62 &,CAN_CPY(NPNTS) ! IN Canopy capacity (kg/m2). FRUNOF7A.63 &,CAN_WCNT(NPNTS) ! IN Canopy water content (kg/m2). FRUNOF7A.64 &,INFIL(NPNTS) ! IN Infiltration rate (kg/m2/s). FRUNOF7A.65 &,R(NPNTS) ! IN Water fall rate (kg/m2/s). FRUNOF7A.66 &,FRAC(NPNTS) ! IN Tile fraction. FRUNOF7A.67 &,TIMESTEP ! IN Timestep (s). FRUNOF7A.68 FRUNOF7A.69 REAL FRUNOF7A.70 & SURF_ROFF(NPNTS) ! OUT Cummulative surface runoff (kg/m2/s). FRUNOF7A.71 FRUNOF7A.72 ! Workspace -------------------------------------------------------- FRUNOF7A.73 REAL FRUNOF7A.74 & AEXP ! Used in the calculation of exponential FRUNOF7A.75 &,AEXP1 ! terms in the surface runoff formula. FRUNOF7A.76 &,AEXP2 ! FRUNOF7A.77 &,CM ! (CAN_CPY - CAN_WCNT)/TIMESTEP FRUNOF7A.78 &,CAN_RATIO ! CAN_WCNT / CAN_CPY FRUNOF7A.79 &,RUNOFF ! Local runoff. FRUNOF7A.80 FRUNOF7A.81 INTEGER FRUNOF7A.82 & I ! Land point index. FRUNOF7A.83 &,J ! Counter for loop over tile points. FRUNOF7A.84 FRUNOF7A.85 DO J=1,TILE_PTS FRUNOF7A.86 I = TILE_INDEX(J) FRUNOF7A.87 RUNOFF = 0. FRUNOF7A.88 IF (R(I).GT.0.0) THEN FRUNOF7A.89 IF ( INFIL(I)*TIMESTEP.LE.CAN_WCNT(I) FRUNOF7A.90 & .AND. CAN_CPY(I).GT.0.0 ) THEN FRUNOF7A.91 ! Infiltration in timestep < or = canopy water content FRUNOF7A.92 AEXP = AREA*CAN_CPY(I)/R(I) FRUNOF7A.93 IF (CAN_WCNT(I) .GT. 0.0) THEN FRUNOF7A.94 AEXP1 = EXP( -AEXP*INFIL(I)/CAN_WCNT(I)) FRUNOF7A.95 ELSE FRUNOF7A.96 AEXP1 = 0.0 FRUNOF7A.97 END IF FRUNOF7A.98 AEXP2 = EXP( -AEXP/TIMESTEP) FRUNOF7A.99 CAN_RATIO = CAN_WCNT(I)/CAN_CPY(I) FRUNOF7A.100 CAN_RATIO = MIN(CAN_RATIO,1.0) ABX1F405.967 RUNOFF = R(I) * ( CAN_RATIO*AEXP1 + FRUNOF7A.101 * (1. - CAN_RATIO)*AEXP2 ) FRUNOF7A.102 ! ... P252.14A FRUNOF7A.103 ELSE FRUNOF7A.104 ! Infiltration in timestep > canopy water content FRUNOF7A.105 CM = (CAN_CPY(I)-CAN_WCNT(I))/TIMESTEP FRUNOF7A.106 CM = MAX(CM,0.0) ABX1F405.968 AEXP = EXP( -AREA*(INFIL(I)+CM)/R(I)) FRUNOF7A.107 RUNOFF = R(I)*AEXP ! ... P252.14B FRUNOF7A.108 ENDIF FRUNOF7A.109 ENDIF FRUNOF7A.110 SURF_ROFF(I) = SURF_ROFF(I) + FRAC(I)*RUNOFF FRUNOF7A.111 ENDDO FRUNOF7A.112 FRUNOF7A.113 RETURN FRUNOF7A.114 END FRUNOF7A.115 *ENDIF FRUNOF7A.116