*IF DEF,A08_7A SURFHY7A.2 C ******************************COPYRIGHT****************************** SURFHY7A.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. SURFHY7A.4 C SURFHY7A.5 C Use, duplication or disclosure of this code is subject to the SURFHY7A.6 C restrictions as set forth in the contract. SURFHY7A.7 C SURFHY7A.8 C Meteorological Office SURFHY7A.9 C London Road SURFHY7A.10 C BRACKNELL SURFHY7A.11 C Berkshire UK SURFHY7A.12 C RG12 2SZ SURFHY7A.13 C SURFHY7A.14 C If no contract has been raised with this copy of the code, the use, SURFHY7A.15 C duplication or disclosure of it is strictly prohibited. Permission SURFHY7A.16 C to do so must first be obtained in writing from the Head of Numerical SURFHY7A.17 C Modelling at the above address. SURFHY7A.18 C ******************************COPYRIGHT****************************** SURFHY7A.19 C SURFHY7A.20 CLL SUBROUTINE SURF_HYD----------------------------------------------- SURFHY7A.21 CLL SURFHY7A.22 CLL PURPOSE : TO CARRY OUT CANOPY AND SURFACE HYDROLOGY CALCULATIONS SURFHY7A.23 CLL SURFHY7A.24 CLL CANOPY WATER CONTENT IS DEPRECIATED BY EVAPORATION SURFHY7A.25 CLL SURFHY7A.26 CLL SNOWMELT IS RUNOFF THE SURFACE WITHOUT INTERACTING SURFHY7A.27 CLL WITH THE CANOPY SURFHY7A.28 CLL SURFHY7A.29 CLL THE CANOPY INTERCEPTION AND SURFACE RUNOFF OF SURFHY7A.30 CLL LARGE-SCALE RAIN IS CALCUALTED SURFHY7A.31 CLL SURFHY7A.32 CLL THE CANOPY INTERCEPTION AND SURFACE RUNOFF OF SURFHY7A.33 CLL CONVECTIVE RAIN IS CALCUALTED SURFHY7A.34 CLL SURFHY7A.35 CLL SURFHY7A.36 CLL SUITABLE FOR SINGLE COLUMN MODEL USE SURFHY7A.37 CLL SURFHY7A.38 CLL WRITTEN FOR CRAY-YMP BY S.ALLEN-BETT AND D.GREGORY SURFHY7A.39 CLL SURFHY7A.40 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: SURFHY7A.41 CLL VERSION DATE SURFHY7A.42 CLL SURFHY7A.43 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4 SURFHY7A.44 CLL VERSION NO. 1 18/1/90 SURFHY7A.45 CLL SURFHY7A.46 CLL SYSTEM TASK : P252 SURFHY7A.47 CLL SURFHY7A.48 CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER NO 25 SURFHY7A.49 CLL SURFHY7A.50 CLLEND----------------------------------------------------------------- SURFHY7A.51 C SURFHY7A.52 C*L ARGUMENTS--------------------------------------------------------- SURFHY7A.53 C SURFHY7A.54SUBROUTINE SURF_HYD (NPNTS,NTYPE,TILE_PTS,TILE_INDEX, 3,13SURFHY7A.55 & LICE_PTS,LICE_INDEX, SURFHY7A.56 & CAN_CPY,E_CANOPY,FRAC,INFIL,CON_RAIN, SURFHY7A.57 & LS_RAIN,SNOW_FRAC,SNOW_MELT,TIMESTEP, SURFHY7A.58 & CAN_WCNT, SURFHY7A.59 & CAN_WCNT_GB,DSMC_DT,SURF_ROFF,TOT_TFALL) SURFHY7A.60 SURFHY7A.61 IMPLICIT NONE SURFHY7A.62 SURFHY7A.63 INTEGER SURFHY7A.64 & NPNTS ! IN Total number of land points. SURFHY7A.65 &,NTYPE ! IN Number of tiles. SURFHY7A.66 &,TILE_PTS(NTYPE) ! IN Number of tile points. SURFHY7A.67 &,TILE_INDEX(NPNTS,NTYPE) SURFHY7A.68 ! ! IN Index of tile points. SURFHY7A.69 &,LICE_INDEX(NPNTS) ! IN Array of land ice points. SURFHY7A.70 &,LICE_PTS ! IN Number of land ice points. SURFHY7A.71 SURFHY7A.72 REAL SURFHY7A.73 & CAN_CPY(NPNTS,NTYPE-1)! IN Canopy capacity for snow-free SURFHY7A.74 ! ! land tiles (kg/m2). SURFHY7A.75 &,E_CANOPY(NPNTS,NTYPE-1) SURFHY7A.76 ! ! IN Snow-free canopy evaporation (kg/m2/s). SURFHY7A.77 &,FRAC(NPNTS,NTYPE) ! IN Tile fractions. SURFHY7A.78 &,INFIL(NPNTS,NTYPE) ! IN Infiltration rate (kg/m2/s). SURFHY7A.79 &,CON_RAIN(NPNTS) ! IN Convective rain (kg/m2/s). SURFHY7A.80 &,LS_RAIN(NPNTS) ! IN Large-scale rain (kg/m2/s). SURFHY7A.81 &,SNOW_FRAC(NPNTS) ! IN Fraction of gridbox with snow cover. SURFHY7A.82 &,SNOW_MELT(NPNTS) ! IN Snow melt (kg/m2/s). SURFHY7A.83 &,TIMESTEP ! IN Timestep (s). SURFHY7A.84 SURFHY7A.85 REAL SURFHY7A.86 & CAN_WCNT(NPNTS,NTYPE-1) SURFHY7A.87 ! ! INOUT Snow-free tile canopy water contents SURFHY7A.88 ! ! (kg/m2). SURFHY7A.89 SURFHY7A.90 REAL SURFHY7A.91 & CAN_WCNT_GB(NPNTS) ! OUT Gridbox canopy water content (kg/m2). SURFHY7A.92 &,DSMC_DT(NPNTS) ! OUT Rate of change of soil moisture SURFHY7A.93 ! content (kg/m2/s). SURFHY7A.94 &,SURF_ROFF(NPNTS) ! OUT Cumulative surface runoff (kg/m2/s). SURFHY7A.95 &,TOT_TFALL(NPNTS) ! OUT Cumulative canopy throughfall SURFHY7A.96 ! (kg/m2/s). SURFHY7A.97 SURFHY7A.98 ! Workspace ----------------------------------------------------------- SURFHY7A.99 REAL SURFHY7A.100 & CAN_COND(NPNTS) ! Canopy condensation (kg/m2/s). SURFHY7A.101 SURFHY7A.102 INTEGER SURFHY7A.103 & I ! Loop counter (land points). SURFHY7A.104 &,J ! Loop counter (tile points). SURFHY7A.105 &,N ! Loop counter (tiles). SURFHY7A.106 SURFHY7A.107 EXTERNAL FRUNOFF,SIEVE SURFHY7A.108 SURFHY7A.109 ! Zero cumulative stores SURFHY7A.110 DO I=1,NPNTS SURFHY7A.111 CAN_WCNT_GB(I) = 0.0 SURFHY7A.112 TOT_TFALL(I) = 0.0 SURFHY7A.113 SURF_ROFF(I) = 0.0 SURFHY7A.114 DSMC_DT(I) = 0.0 SURFHY7A.115 ENDDO SURFHY7A.116 SURFHY7A.117 ! Land-ice points SURFHY7A.118 DO J=1,LICE_PTS SURFHY7A.119 I = LICE_INDEX(J) SURFHY7A.120 TOT_TFALL(I) = LS_RAIN(I) + CON_RAIN(I) SURFHY7A.121 SURF_ROFF(I) = TOT_TFALL(I) + SNOW_MELT(I) SURFHY7A.122 ENDDO SURFHY7A.123 SURFHY7A.124 ! Surface runoff of snowmelt SURFHY7A.125 DO N=1,NTYPE-1 SURFHY7A.126 DO J=1,TILE_PTS(N) SURFHY7A.127 I = TILE_INDEX(J,N) SURFHY7A.128 IF ( SNOW_MELT(I) .GT. 0. ) SURFHY7A.129 & SURF_ROFF(I) = SURF_ROFF(I) + FRAC(I,N)*SNOW_MELT(I) * SURFHY7A.130 & EXP( - SNOW_FRAC(I)*INFIL(I,N)/SNOW_MELT(I) ) SURFHY7A.131 ! ... P252.14 SURFHY7A.132 ENDDO SURFHY7A.133 ENDDO SURFHY7A.134 SURFHY7A.135 ! Reduce canopy water content by evaporation SURFHY7A.136 DO N=1,NTYPE-1 SURFHY7A.137 DO J=1,TILE_PTS(N) SURFHY7A.138 I = TILE_INDEX(J,N) SURFHY7A.139 IF (E_CANOPY(I,N) .GT. 0.0) SURFHY7A.140 & CAN_WCNT(I,N) = SURFHY7A.141 & MAX( CAN_WCNT(I,N) - E_CANOPY(I,N)*TIMESTEP, 0. ) SURFHY7A.142 ENDDO SURFHY7A.143 ENDDO SURFHY7A.144 SURFHY7A.145 DO N=1,NTYPE-1 SURFHY7A.146 SURFHY7A.147 ! Define canopy condensation when evaporation is negative SURFHY7A.148 DO J=1,TILE_PTS(N) SURFHY7A.149 I = TILE_INDEX(J,N) SURFHY7A.150 IF ( E_CANOPY(I,N) .LT. 0. ) THEN SURFHY7A.151 CAN_COND(I) = - E_CANOPY(I,N) SURFHY7A.152 ELSE SURFHY7A.153 CAN_COND(I) = 0. SURFHY7A.154 ENDIF SURFHY7A.155 ENDDO SURFHY7A.156 SURFHY7A.157 ! Canopy interception, throughfall and surface runoff for condensation, SURFHY7A.158 ! assumed to cover 100% of gridbox SURFHY7A.159 CALL SIEVE
(NPNTS,TILE_PTS(N),TILE_INDEX(1,N),1., SURFHY7A.160 & CAN_CPY(1,N),CAN_COND,FRAC(1,N),TIMESTEP, SURFHY7A.161 & CAN_WCNT(1,N),TOT_TFALL) SURFHY7A.162 CALL FRUNOFF
(NPNTS,TILE_PTS(N),TILE_INDEX(1,N),1., SURFHY7A.163 & CAN_CPY(1,N),CAN_WCNT(1,N),INFIL(1,N),CAN_COND, SURFHY7A.164 & FRAC(1,N),TIMESTEP, SURFHY7A.165 & SURF_ROFF) SURFHY7A.166 SURFHY7A.167 ! Canopy interception, throughfall and surface runoff for large-scale SURFHY7A.168 ! rain, assumed to cover 100% of gridbox SURFHY7A.169 CALL SIEVE
(NPNTS,TILE_PTS(N),TILE_INDEX(1,N),1., SURFHY7A.170 & CAN_CPY(1,N),LS_RAIN,FRAC(1,N),TIMESTEP, SURFHY7A.171 & CAN_WCNT(1,N),TOT_TFALL) SURFHY7A.172 CALL FRUNOFF
(NPNTS,TILE_PTS(N),TILE_INDEX(1,N),1., SURFHY7A.173 & CAN_CPY(1,N),CAN_WCNT(1,N),INFIL(1,N),LS_RAIN, SURFHY7A.174 & FRAC(1,N),TIMESTEP, SURFHY7A.175 & SURF_ROFF) SURFHY7A.176 SURFHY7A.177 ! Canopy interception, throughfall and surface runoff for convective SURFHY7A.178 ! rain, assumed to cover 30% of gridbox SURFHY7A.179 CALL SIEVE
(NPNTS,TILE_PTS(N),TILE_INDEX(1,N),0.3, SURFHY7A.180 & CAN_CPY(1,N),CON_RAIN,FRAC(1,N),TIMESTEP, SURFHY7A.181 & CAN_WCNT(1,N),TOT_TFALL) SURFHY7A.182 CALL FRUNOFF
(NPNTS,TILE_PTS(N),TILE_INDEX(1,N),0.3, SURFHY7A.183 & CAN_CPY(1,N),CAN_WCNT(1,N),INFIL(1,N),CON_RAIN, SURFHY7A.184 & FRAC(1,N),TIMESTEP, SURFHY7A.185 & SURF_ROFF) SURFHY7A.186 SURFHY7A.187 DO I=1,NPNTS SURFHY7A.188 CAN_WCNT_GB(I) = CAN_WCNT_GB(I) + FRAC(I,N)*CAN_WCNT(I,N) SURFHY7A.189 ENDDO SURFHY7A.190 SURFHY7A.191 ENDDO SURFHY7A.192 SURFHY7A.193 DO I=1,NPNTS SURFHY7A.194 DSMC_DT(I) = TOT_TFALL(I) + SNOW_MELT(I) - SURF_ROFF(I) SURFHY7A.195 ENDDO SURFHY7A.196 SURFHY7A.197 RETURN SURFHY7A.198 END SURFHY7A.199 *ENDIF SURFHY7A.200