*IF DEF,A03_7A SFREST7A.2
C *****************************COPYRIGHT****************************** SFREST7A.3
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. SFREST7A.4
C SFREST7A.5
C Use, duplication or disclosure of this code is subject to the SFREST7A.6
C restrictions as set forth in the contract. SFREST7A.7
C SFREST7A.8
C Meteorological Office SFREST7A.9
C London Road SFREST7A.10
C BRACKNELL SFREST7A.11
C Berkshire UK SFREST7A.12
C RG12 2SZ SFREST7A.13
C SFREST7A.14
C If no contract has been raised with this copy of the code, the use, SFREST7A.15
C duplication or disclosure of it is strictly prohibited. Permission SFREST7A.16
C to do so must first be obtained in writing from the Head of Numerical SFREST7A.17
C Modelling at the above address. SFREST7A.18
C ******************************COPYRIGHT****************************** SFREST7A.19
C*LL SUBROUTINE SF_RESIST---------------------------------------------- SFREST7A.20
CLL SFREST7A.21
CLL Purpose: Calculate surface moisture flux resistance factors. SFREST7A.22
CLL SFREST7A.23
CLL SFREST7A.24
CLLEND----------------------------------------------------------------- SFREST7A.25
C* SFREST7A.26
C*L Arguments -------------------------------------------------------- SFREST7A.27
SUBROUTINE SF_RESIST ( 6,6SFREST7A.28
& P_FIELD,LAND_FIELD,TILE_PTS,LAND_INDEX,TILE_INDEX, SFREST7A.29
& CANOPY,CATCH,CH,DQ,EPDT,GC,VSHR, SFREST7A.30
& FRACA,RESFS,RESFT,LTIMER SFREST7A.31
& ) SFREST7A.32
SFREST7A.33
IMPLICIT NONE SFREST7A.34
SFREST7A.35
INTEGER SFREST7A.36
& P_FIELD ! IN Total number of P-grid points. SFREST7A.37
&,LAND_FIELD ! IN Total number of land points. SFREST7A.38
&,TILE_PTS ! IN Number of tile points. SFREST7A.39
&,LAND_INDEX(P_FIELD )! IN Index of land points. SFREST7A.40
&,TILE_INDEX(LAND_FIELD) SFREST7A.41
! ! IN Index of tile points. SFREST7A.42
SFREST7A.43
LOGICAL SFREST7A.44
& LTIMER ! IN Logical switch for TIMER diags SFREST7A.45
SFREST7A.46
REAL SFREST7A.47
& CANOPY(LAND_FIELD) ! IN Surface water (kg per sq metre). F642. SFREST7A.48
&,CATCH(LAND_FIELD) ! IN Surface capacity (max. surface water) SFREST7A.49
! ! (kg per sq metre). F6416. SFREST7A.50
&,CH(LAND_FIELD) ! IN Transport coefficient for heat and SFREST7A.51
! ! moisture transport SFREST7A.52
&,DQ(LAND_FIELD) ! IN Sp humidity difference between surface SFREST7A.53
! ! and lowest atmospheric level (Q1 - Q*). SFREST7A.54
&,EPDT(LAND_FIELD) ! IN "Potential" Evaporation * Timestep. SFREST7A.55
! ! Dummy variable for first call to routine SFREST7A.56
&,GC(LAND_FIELD) ! IN Interactive canopy conductance SFREST7A.57
! ! to evaporation (m/s) SFREST7A.58
&,VSHR(P_FIELD) ! IN Magnitude of surface-to-lowest-level SFREST7A.59
! ! windshear SFREST7A.60
SFREST7A.61
REAL SFREST7A.62
& FRACA(LAND_FIELD) ! OUT Fraction of surface moisture flux with SFREST7A.63
! ! only aerodynamic resistance. SFREST7A.64
&,RESFS(LAND_FIELD) ! OUT Combined soil, stomatal and aerodynamic SFREST7A.65
! ! resistance factor for fraction 1-FRACA. SFREST7A.66
&,RESFT(LAND_FIELD) ! OUT Total resistance factor SFREST7A.67
! ! FRACA+(1-FRACA)*RESFS. SFREST7A.68
SFREST7A.69
! Workspace ----------------------------------------------------------- SFREST7A.70
INTEGER SFREST7A.71
& I ! Horizontal field index. SFREST7A.72
&,J ! Tile field index. SFREST7A.73
&,L ! Land field index. SFREST7A.74
SFREST7A.75
IF (LTIMER) THEN SFREST7A.76
CALL TIMER
('SFRESIST',3) SFREST7A.77
ENDIF SFREST7A.78
SFREST7A.79
!----------------------------------------------------------------------- SFREST7A.80
! Evaporation over land surfaces without snow is limited by SFREST7A.81
! soil moisture availability and stomatal resistance. SFREST7A.82
! Set FRACA (= fA in the documentation) according to P243.68, SFREST7A.83
! and RESFS (= fS) according to P243.75 and P243.61. SFREST7A.84
!----------------------------------------------------------------------- SFREST7A.85
DO J=1,TILE_PTS SFREST7A.86
L = TILE_INDEX(J) SFREST7A.87
I = LAND_INDEX(L) SFREST7A.88
SFREST7A.89
!----------------------------------------------------------------------- SFREST7A.90
! Calculate the fraction of the flux with only aerodynamic resistance SFREST7A.91
! (canopy evaporation). SFREST7A.92
! Set to 1 for negative moisture flux (no surface/stomatal resistance to SFREST7A.93
! condensation). SFREST7A.94
!----------------------------------------------------------------------- SFREST7A.95
FRACA(L) = 1.0 SFREST7A.96
IF ( DQ(L).LT.0.0 ) FRACA(L) = 0.0 SFREST7A.97
IF ( DQ(L).LT.0.0 .AND. CATCH(L).GT.0.0 ) SFREST7A.98
& FRACA(L) = CANOPY(L) / ( EPDT(L) + CATCH(L) ) SFREST7A.99
FRACA(L) = MIN(FRACA(L),1.0) ABX1F405.894
SFREST7A.100
!----------------------------------------------------------------------- SFREST7A.101
! Calculate resistance factors for transpiration from vegetation tiles SFREST7A.102
! and bare soil evaporation from soil tiles. SFREST7A.103
!----------------------------------------------------------------------- SFREST7A.104
RESFS(L) = GC(L) / ( GC(L) + CH(L)*VSHR(I) ) SFREST7A.105
RESFT(L) = FRACA(L) + (1.0 - FRACA(L)) * RESFS(L) SFREST7A.106
SFREST7A.107
ENDDO SFREST7A.108
SFREST7A.109
IF (LTIMER) THEN SFREST7A.110
CALL TIMER
('SFRESIST',4) SFREST7A.111
ENDIF SFREST7A.112
SFREST7A.113
RETURN SFREST7A.114
END SFREST7A.115
*ENDIF SFREST7A.116