*IF DEF,A03_6A,OR,DEF,A03_7A ACB1F405.13
C *****************************COPYRIGHT****************************** SICEHT5B.3
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. SICEHT5B.4
C SICEHT5B.5
C Use, duplication or disclosure of this code is subject to the SICEHT5B.6
C restrictions as set forth in the contract. SICEHT5B.7
C SICEHT5B.8
C Meteorological Office SICEHT5B.9
C London Road SICEHT5B.10
C BRACKNELL SICEHT5B.11
C Berkshire UK SICEHT5B.12
C RG12 2SZ SICEHT5B.13
C SICEHT5B.14
C If no contract has been raised with this copy of the code, the use, SICEHT5B.15
C duplication or disclosure of it is strictly prohibited. Permission SICEHT5B.16
C to do so must first be obtained in writing from the Head of Numerical SICEHT5B.17
C Modelling at the above address. SICEHT5B.18
C ******************************COPYRIGHT****************************** SICEHT5B.19
!!! SUBROUTINE SICE_HTF----------------------------------------------- SICEHT5B.20
!!! SICEHT5B.21
!!! Purpose: Calculates heat flux through sea-ice (+ve downwards). SICEHT5B.22
!!! Sea-ice leads heat flux calculated in P243 (SF_EXCH). SICEHT5B.23
!!! SICEHT5B.24
!!! Model Modification history SICEHT5B.25
!!! version date SICEHT5B.26
!!! SICEHT5B.27
!!! Note: At present the formulation is so simple as to make this SICEHT5B.28
!!! routine fairly trivial; but in future the formulation may SICEHT5B.29
!!! be revised so as to make a separate routine more obviously SICEHT5B.30
!!! worthwhile. SICEHT5B.31
!!! SICEHT5B.32
!!! Programming standard: Unified Model Documentation Paper No.4 SICEHT5B.33
!!! version no.2, dated 18/1/90. SICEHT5B.34
!!! SICEHT5B.35
!!! System component covered: P241 SICEHT5B.36
!!! SICEHT5B.37
!!! Documentation: ?? SICEHT5B.38
!!! SICEHT5B.39
!!! ********************************************* SICEHT5B.40
!!! Penman-Monteith model. RE 19/1/95 SICEHT5B.41
!!! ********************************************* SICEHT5B.42
!!! Updates surface layer temperature and diagnoses surface temperature SICEHT5B.43
!!! for sea-ice. SICEHT5B.44
SICEHT5B.45
SICEHT5B.46
! Arguments:--------------------------------------------------------- SICEHT5B.47
SUBROUTINE SICE_HTF ( 4,6SICEHT5B.48
& ASHTF,DI,ICE_FRACTION,SURF_HT_FLUX,TIMESTEP SICEHT5B.49
&,LAND_MASK,P_FIELD,POINTS,P1,TI,TSTAR,ASURF,SEA_ICE_HTF SICEHT5B.50
&,LTIMER) SICEHT5B.51
IMPLICIT NONE SICEHT5B.52
SICEHT5B.53
LOGICAL LTIMER SICEHT5B.54
SICEHT5B.55
INTEGER SICEHT5B.56
& POINTS ! IN No of gridpoints to be processed. SICEHT5B.57
&,P_FIELD ! IN Total Number of points on p-grid SICEHT5B.58
&,P1 ! IN First point of p grid to be processed SICEHT5B.59
SICEHT5B.60
REAL SICEHT5B.61
& ASHTF(P_FIELD) ! IN Coefficient to calculate surface SICEHT5B.62
! heat flux into sea-ice (W/m2/K). SICEHT5B.63
&,DI(P_FIELD) ! IN "Equivalent thickness" of sea-ice (m). SICEHT5B.64
&,ICE_FRACTION(P_FIELD)! IN Fraction of gridbox covered by sea-ice. SICEHT5B.65
&,SURF_HT_FLUX(P_FIELD)! IN Net downward heat flux at surface W/m2 SICEHT5B.66
SICEHT5B.67
&,TIMESTEP ! IN Timestep (s). SICEHT5B.68
SICEHT5B.69
LOGICAL SICEHT5B.70
& LAND_MASK(P_FIELD) ! IN Land mask (T for land, F for sea). SICEHT5B.71
SICEHT5B.72
REAL SICEHT5B.73
& TI(P_FIELD) ! INOUT Sea-ice surface layer temperature SICEHT5B.74
! (K). Set to TSTAR for unfrozen sea, SICEHT5B.75
! missing data for land. SICEHT5B.76
&,TSTAR(P_FIELD) ! INOUT Gridbox mean surface temperature (K) SICEHT5B.77
&,ASURF(P_FIELD) ! OUT Reciprocal areal heat capacity of SICEHT5B.78
! sea-ice surface layer (Km2/J). SICEHT5B.79
&,SEA_ICE_HTF(P_FIELD) ! OUT Heat flux through sea-ice (W per sq m, SICEHT5B.80
! positive downwards). SICEHT5B.81
SICEHT5B.82
!----------------------------------------------------------------------- SICEHT5B.83
!! No workspace or EXTERNAL routines required. SICEHT5B.84
!----------------------------------------------------------------------- SICEHT5B.85
SICEHT5B.86
EXTERNAL TIMER SICEHT5B.87
SICEHT5B.88
! Common and local physical constants. SICEHT5B.89
*CALL C_0_DG_C
SICEHT5B.90
*CALL C_KAPPAI
SICEHT5B.91
*CALL C_SICEHC
SICEHT5B.92
SICEHT5B.93
! Define local scalar. SICEHT5B.94
INTEGER I ! Loop Counter; horizontal field index. SICEHT5B.95
!----------------------------------------------------------------------- SICEHT5B.96
!! No significant structure. SICEHT5B.97
!----------------------------------------------------------------------- SICEHT5B.98
SICEHT5B.99
IF (LTIMER) THEN SICEHT5B.100
CALL TIMER
('SICEHTF ',3) SICEHT5B.101
ENDIF SICEHT5B.102
SICEHT5B.103
SICEHT5B.104
DO I=P1,P1+POINTS-1 SICEHT5B.105
IF (LAND_MASK(I)) THEN SICEHT5B.106
SEA_ICE_HTF(I)=0.0 SICEHT5B.107
TI(I) = 1.0E30 SICEHT5B.108
ELSE IF (ICE_FRACTION(I).LE.0.0) THEN SICEHT5B.109
SEA_ICE_HTF(I)=0.0 SICEHT5B.110
TI(I) = TSTAR(I) SICEHT5B.111
ELSE SICEHT5B.112
ASURF(I) = AI / ICE_FRACTION(I) SICEHT5B.113
SEA_ICE_HTF(I) = KAPPAI*ICE_FRACTION(I)*(TI(I) - TFS)/DI(I) SICEHT5B.114
TSTAR(I) = (1. - ICE_FRACTION(I))*TFS + ICE_FRACTION(I)*TI(I) SICEHT5B.115
& + SURF_HT_FLUX(I)/ASHTF(I) SICEHT5B.116
TI(I) = TI(I) + ASURF(I)*TIMESTEP* SICEHT5B.117
& (SURF_HT_FLUX(I) - SEA_ICE_HTF(I)) SICEHT5B.118
ENDIF SICEHT5B.119
ENDDO SICEHT5B.120
SICEHT5B.121
IF (LTIMER) THEN SICEHT5B.122
CALL TIMER
('SICEHTF ',4) SICEHT5B.123
ENDIF SICEHT5B.124
SICEHT5B.125
RETURN SICEHT5B.126
END SICEHT5B.127
*ENDIF SICEHT5B.128