*IF DEF,A08_1A,OR,DEF,A08_5A GKR1F405.6 C ******************************COPYRIGHT****************************** GTS2F400.8947 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.8948 C GTS2F400.8949 C Use, duplication or disclosure of this code is subject to the GTS2F400.8950 C restrictions as set forth in the contract. GTS2F400.8951 C GTS2F400.8952 C Meteorological Office GTS2F400.8953 C London Road GTS2F400.8954 C BRACKNELL GTS2F400.8955 C Berkshire UK GTS2F400.8956 C RG12 2SZ GTS2F400.8957 C GTS2F400.8958 C If no contract has been raised with this copy of the code, the use, GTS2F400.8959 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.8960 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.8961 C Modelling at the above address. GTS2F400.8962 C ******************************COPYRIGHT****************************** GTS2F400.8963 ! SUBROUTINE SIEVE-------------------------------------------------- APA1F405.9 ! APA1F405.10 ! Subroutine Interface: APA1F405.11SUBROUTINE SIEVE (NPNTS,R,CAN_WCNT,CAN_CPY,AREA,TFALL 6APA1F405.12 &, TIMESTEP) APA1F405.13 APA1F405.14 IMPLICIT NONE SIEVE1A.33 ! APA1F405.15 ! Description: APA1F405.16 ! Calculates the flux of water passing through the canopy APA1F405.17 ! APA1F405.18 ! Documentation: APA1F405.19 ! APA1F405.20 ! Current Code Owner: Peter Cox APA1F405.21 ! APA1F405.22 ! History: APA1F405.23 ! Version Date Comment APA1F405.24 ! ------- ---- ------- APA1F405.25 ! 4.5 6/98 Options to interpret canopy moisture as bimodally APA1F405.26 ! rather than uniformily distributed, with either a APA1F405.27 ! random or maximum overlap of the wet canopy and APA1F405.28 ! the precipitating area (P.M.Cox) APA1F405.29 ! 4.5 01/10/98 Removed old section-version defs. K Rogers APA1F405.30 ! APA1F405.31 ! Code Description: APA1F405.32 ! Language: FORTRAN 77 + common extensions. APA1F405.33 ! APA1F405.34 ! System component covered: P25 APA1F405.35 ! System Task: P25 APA1F405.36 ! APA1F405.37 ! Subroutine arguments APA1F405.38 ! Scalar arguments with intent(IN): APA1F405.39 INTEGER APA1F405.40 & NPNTS ! IN Number of gridpoints. APA1F405.41 APA1F405.42 REAL APA1F405.43 & TIMESTEP ! IN Model timestep (s). APA1F405.44 &,AREA ! IN Fractional area of the gridbox over APA1F405.45 C ! which water falls. APA1F405.46 APA1F405.47 ! Array arguments with intent(IN): APA1F405.48 REAL APA1F405.49 & R(NPNTS) ! IN Flux of water incident on the APA1F405.50 C ! canopy (kg/m2/s). APA1F405.51 &,CAN_WCNT(NPNTS) ! IN Canopy water content (kg/m2). APA1F405.52 &,CAN_CPY(NPNTS) ! IN Canopy capacity (kg/m2). APA1F405.53 APA1F405.54 ! Array arguments with intent(OUT): APA1F405.55 REAL APA1F405.56 & TFALL(NPNTS) ! OUT Throughfall (kg/m2/s). APA1F405.57 APA1F405.58 ! Local scalars: APA1F405.59 INTEGER APA1F405.60 & I ! WORK Loop counter. APA1F405.61 APA1F405.62 REAL APA1F405.63 & AEXP ! WORK Exponential term. APA1F405.64 &,CAN_RATIO ! WORK Fractional saturation of the APA1F405.65 C ! canopy. APA1F405.66 &,FDT_TERM ! WORK Finite timestep term. APA1F405.67 APA1F405.68 ! Local parameters: APA1F405.69 REAL APA1F405.70 & GAMMA ! Forward timestep weighting APA1F405.71 PARAMETER(GAMMA=1.0) APA1F405.72 APA1F405.73 *CALL MOSES_OPT
APA1F405.74 APA1F405.75 C----------------------------------------------------------------------- SIEVE1A.65 C Uniform canopy water APA1F405.76 C----------------------------------------------------------------------- SIEVE1A.67 IF (TF_MODEL.EQ.1) THEN APA1F405.77 DO I=1,NPNTS APA1F405.78 IF (CAN_CPY(I).GT.0.0.AND.R(I).GT.0.0) THEN APA1F405.79 AEXP=AREA*CAN_CPY(I)/(R(I)*TIMESTEP) APA1F405.80 *IF DEF,SCMA,AND,-DEF,T3E APA1F405.81 IF (AEXP.GT.80) THEN APA1F405.82 AEXP=0.0 APA1F405.83 ELSE APA1F405.84 AEXP=EXP(-AEXP) APA1F405.85 ENDIF APA1F405.86 *ELSE APA1F405.87 AEXP=EXP(-AEXP) APA1F405.88 *ENDIF APA1F405.89 CAN_RATIO=CAN_WCNT(I)/CAN_CPY(I) APA1F405.90 TFALL(I)=R(I)*((1.0-CAN_RATIO)*AEXP+CAN_RATIO) APA1F405.91 ELSE APA1F405.92 TFALL(I)=R(I) APA1F405.93 END IF APA1F405.94 ENDDO APA1F405.95 APA1F405.96 C----------------------------------------------------------------------- SIEVE1A.75 C Bimodel canopy water, random overlap APA1F405.97 C----------------------------------------------------------------------- SIEVE1A.77 ELSEIF (TF_MODEL.EQ.2) THEN APA1F405.98 DO I=1,NPNTS APA1F405.99 IF (CAN_CPY(I).GT.0.0.AND.R(I).GT.0.0) THEN APA1F405.100 CAN_RATIO=CAN_WCNT(I)/CAN_CPY(I) APA1F405.101 FDT_TERM=GAMMA*R(I)*TIMESTEP/CAN_CPY(I) APA1F405.102 TFALL(I)=R(I)*((CAN_RATIO+FDT_TERM)/(1.0+FDT_TERM)) APA1F405.103 ELSE APA1F405.104 TFALL(I)=R(I) APA1F405.105 END IF APA1F405.106 ENDDO APA1F405.107 APA1F405.108 C----------------------------------------------------------------------- SIEVE1A.88 C Bimodel canopy water, maximum overlap APA1F405.109 C----------------------------------------------------------------------- SIEVE1A.90 ELSEIF (TF_MODEL.EQ.3) THEN APA1F405.110 DO I=1,NPNTS APA1F405.111 IF (CAN_CPY(I).GT.0.0.AND.R(I).GT.0.0) THEN APA1F405.112 CAN_RATIO=CAN_WCNT(I)/(AREA*CAN_CPY(I)) APA1F405.113 IF (CAN_RATIO.LT.1.0) THEN APA1F405.114 FDT_TERM=GAMMA*R(I)*TIMESTEP/(AREA*CAN_CPY(I)) APA1F405.115 TFALL(I)=R(I)*((CAN_RATIO+FDT_TERM)/(1.0+FDT_TERM)) APA1F405.116 ELSE APA1F405.117 TFALL(I)=R(I) APA1F405.118 ENDIF APA1F405.119 ELSE APA1F405.120 TFALL(I)=R(I) APA1F405.121 ENDIF APA1F405.122 ENDDO APA1F405.123 ENDIF APA1F405.124 RETURN SIEVE1A.109 END SIEVE1A.110 *ENDIF SIEVE1A.111