*IF DEF,A03_7A                                                             SFFLUX7A.2      
C *****************************COPYRIGHT******************************     SFFLUX7A.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    SFFLUX7A.4      
C                                                                          SFFLUX7A.5      
C Use, duplication or disclosure of this code is subject to the            SFFLUX7A.6      
C restrictions as set forth in the contract.                               SFFLUX7A.7      
C                                                                          SFFLUX7A.8      
C                Meteorological Office                                     SFFLUX7A.9      
C                London Road                                               SFFLUX7A.10     
C                BRACKNELL                                                 SFFLUX7A.11     
C                Berkshire UK                                              SFFLUX7A.12     
C                RG12 2SZ                                                  SFFLUX7A.13     
C                                                                          SFFLUX7A.14     
C If no contract has been raised with this copy of the code, the use,      SFFLUX7A.15     
C duplication or disclosure of it is strictly prohibited.  Permission      SFFLUX7A.16     
C to do so must first be obtained in writing from the Head of Numerical    SFFLUX7A.17     
C Modelling at the above address.                                          SFFLUX7A.18     
C ******************************COPYRIGHT******************************    SFFLUX7A.19     
                                                                           SFFLUX7A.20     
!-----------------------------------------------------------------------   SFFLUX7A.21     
!                                                                          SFFLUX7A.22     
! Subroutines SF_FLUX_LAND and SF_FLUX_SEA to calculate explicit surface   SFFLUX7A.23     
! fluxes of heat and moisture                                              SFFLUX7A.24     
!                                                                          SFFLUX7A.25     
!-----------------------------------------------------------------------   SFFLUX7A.26     
                                                                           SFFLUX7A.27     
!     SUBROUTINE SF_FLUX_LAND-------------------------------------------   SFFLUX7A.28     
!                                                                          SFFLUX7A.29     
!     Calculate explicit surface fluxes of heat and moisture over          SFFLUX7A.30     
!     land tiles                                                           SFFLUX7A.31     
!                                                                          SFFLUX7A.32     
!     ------------------------------------------------------------------   SFFLUX7A.33     

      SUBROUTINE SF_FLUX_LAND (                                             2,2SFFLUX7A.34     
     & P_FIELD,LAND_FIELD,TILE_PTS,LAND_INDEX,TILE_INDEX,                  SFFLUX7A.35     
     & ASHTF,LH,QS1,QSTAR,QW_1,RADNET,RESFT,RHOKH_1,TILE_FRAC,             SFFLUX7A.36     
     & TL_1,TS1,TSTAR,Z0H,Z0M_EFF,Z1_TQ,                                   SFFLUX7A.37     
     & FQW_1_GB,FTL_1_GB,                                                  SFFLUX7A.38     
     & ALPHA1,FQW_1,FTL_1,RHOKPM,LTIMER                                    SFFLUX7A.39     
     & )                                                                   SFFLUX7A.40     
                                                                           SFFLUX7A.41     
      IMPLICIT NONE                                                        SFFLUX7A.42     
                                                                           SFFLUX7A.43     
      INTEGER                                                              SFFLUX7A.44     
     & P_FIELD             ! IN Total number of P-grid points.             SFFLUX7A.45     
     &,LAND_FIELD          ! IN Total number of land points.               SFFLUX7A.46     
     &,TILE_PTS            ! IN Number of tile points.                     SFFLUX7A.47     
     &,LAND_INDEX(P_FIELD) ! IN Index of land points.                      SFFLUX7A.48     
     &,TILE_INDEX(LAND_FIELD)! IN Index of tile points.                    SFFLUX7A.49     
                                                                           SFFLUX7A.50     
      LOGICAL                                                              SFFLUX7A.51     
     & LTIMER              ! IN Logical for TIMER                          SFFLUX7A.52     
                                                                           SFFLUX7A.53     
      REAL                                                                 SFFLUX7A.54     
     & ASHTF(P_FIELD)      ! IN Coefficient to calculate surface           SFFLUX7A.55     
!                          !    heat flux into soil (W/m2/K).              SFFLUX7A.56     
     &,LH                  ! IN Latent heat (J/K/kg).                      SFFLUX7A.57     
     &,QS1(P_FIELD)        ! IN Sat. specific humidity qsat(TL_1,PSTAR)    SFFLUX7A.58     
     &,QSTAR(LAND_FIELD)   ! IN Surface qsat.                              SFFLUX7A.59     
     &,QW_1(P_FIELD)       ! IN Total water content of lowest              SFFLUX7A.60     
!                          !    atmospheric layer (kg per kg air).         SFFLUX7A.61     
     &,RADNET(P_FIELD)     ! IN Net surface radiation (W/m2) positive      SFFLUX7A.62     
!                          !    downwards                                  SFFLUX7A.63     
     &,RESFT(LAND_FIELD)   ! IN Total resistance factor.                   SFFLUX7A.64     
     &,RHOKH_1(LAND_FIELD) ! IN Surface exchange coefficient.              SFFLUX7A.65     
     &,TILE_FRAC(LAND_FIELD)                                               SFFLUX7A.66     
!                          ! IN Tile fraction.                             SFFLUX7A.67     
     &,TL_1(P_FIELD)       ! IN Liquid/frozen water temperature for        SFFLUX7A.68     
!                          !    lowest atmospheric layer (K).              SFFLUX7A.69     
     &,TS1(LAND_FIELD)     ! IN Temperature of surface layer (K).          SFFLUX7A.70     
     &,TSTAR(LAND_FIELD)   ! IN Surface temperature (K).                   SFFLUX7A.71     
     &,Z0H(LAND_FIELD)     ! IN Roughness length for heat and moisture     SFFLUX7A.72     
     &,Z0M_EFF(LAND_FIELD) ! IN Effective roughness length for momentum    SFFLUX7A.73     
     &,Z1_TQ(P_FIELD)      ! IN Height of lowest atmospheric level (m).    SFFLUX7A.74     
                                                                           SFFLUX7A.75     
      REAL                                                                 SFFLUX7A.76     
     & FQW_1_GB(P_FIELD)   ! INOUT GBM surface flux of QW (kg/m2/s).       SFFLUX7A.77     
     &,FTL_1_GB(P_FIELD)   ! INOUT GBM surface flux of TL.                 SFFLUX7A.78     
                                                                           SFFLUX7A.79     
      REAL                                                                 SFFLUX7A.80     
     & ALPHA1(LAND_FIELD)  ! OUT Gradient of saturated specific humidity   SFFLUX7A.81     
!                          !     with respect to temperature between the   SFFLUX7A.82     
!                          !     bottom model layer and the surface.       SFFLUX7A.83     
     &,FQW_1(LAND_FIELD)   ! OUT Local surface flux of QW (kg/m2/s).       SFFLUX7A.84     
     &,FTL_1(LAND_FIELD)   ! OUT Local surface flux of TL.                 SFFLUX7A.85     
     &,RHOKPM(LAND_FIELD)  ! OUT Modified surface exchange coefficient.    SFFLUX7A.86     
                                                                           SFFLUX7A.87     
*CALL C_EPSLON                                                             SFFLUX7A.88     
*CALL C_0_DG_C                                                             SFFLUX7A.89     
*CALL C_G                                                                  SFFLUX7A.90     
*CALL C_LHEAT                                                              SFFLUX7A.91     
*CALL C_R_CP                                                               SFFLUX7A.92     
                                                                           SFFLUX7A.93     
! Derived local parameters                                                 SFFLUX7A.94     
! Derived local parameters                                                 SFFLUX7A.95     
      REAL GRCP,LS                                                         SFFLUX7A.96     
      PARAMETER (                                                          SFFLUX7A.97     
     & GRCP=G/CP                                                           SFFLUX7A.98     
     &,LS=LF+LC            ! Latent heat of sublimation.                   SFFLUX7A.99     
     & )                                                                   SFFLUX7A.100    
                                                                           SFFLUX7A.101    
! Scalars                                                                  SFFLUX7A.102    
      INTEGER                                                              SFFLUX7A.103    
     & I                   ! Horizontal field index.                       SFFLUX7A.104    
     &,J                   ! Tile field index.                             SFFLUX7A.105    
     &,L                   ! Land point field index.                       SFFLUX7A.106    
                                                                           SFFLUX7A.107    
      REAL                                                                 SFFLUX7A.108    
     & DQ1                 ! (qsat(TL_1,PSTAR)-QW_1) + g/cp*alpha1*Z1      SFFLUX7A.109    
     &,D_T                 ! Temporary in calculation of alpha1.           SFFLUX7A.110    
     &,RAD_REDUC           ! Radiation term required for surface flux      SFFLUX7A.111    
                                                                           SFFLUX7A.112    
      EXTERNAL TIMER                                                       SFFLUX7A.113    
                                                                           SFFLUX7A.114    
      IF (LTIMER) THEN                                                     SFFLUX7A.115    
        CALL TIMER('SF_FLUX ',3)                                           SFFLUX7A.116    
      ENDIF                                                                SFFLUX7A.117    
                                                                           SFFLUX7A.118    
!-----------------------------------------------------------------------   SFFLUX7A.119    
!!  1 Calculate gradient of saturated specific humidity for use in         SFFLUX7A.120    
!!    calculation of surface fluxes                                        SFFLUX7A.121    
!-----------------------------------------------------------------------   SFFLUX7A.122    
      DO J=1,TILE_PTS                                                      SFFLUX7A.123    
        L = TILE_INDEX(J)                                                  SFFLUX7A.124    
        I = LAND_INDEX(L)                                                  SFFLUX7A.125    
        D_T = TSTAR(L) - TL_1(I)                                           SFFLUX7A.126    
        IF (D_T .GT. 0.05 .OR. D_T .LT. -0.05) THEN                        SFFLUX7A.127    
          ALPHA1(L) = (QSTAR(L) - QS1(I)) / D_T                            SFFLUX7A.128    
        ELSEIF (TL_1(I) .GT. TM) THEN                                      SFFLUX7A.129    
          ALPHA1(L) = EPSILON*LC*QS1(I)*(1. + C_VIRTUAL*QS1(I))            SFFLUX7A.130    
     &                                            / ( R*TL_1(I)*TL_1(I))   SFFLUX7A.131    
        ELSE                                                               SFFLUX7A.132    
          ALPHA1(L) = EPSILON*LS*QS1(I)*(1. + C_VIRTUAL*QS1(I))            SFFLUX7A.133    
     &                                            / ( R*TL_1(I)*TL_1(I))   SFFLUX7A.134    
        ENDIF                                                              SFFLUX7A.135    
      ENDDO                                                                SFFLUX7A.136    
                                                                           SFFLUX7A.137    
      DO J=1,TILE_PTS                                                      SFFLUX7A.138    
        L = TILE_INDEX(J)                                                  SFFLUX7A.139    
        I = LAND_INDEX(L)                                                  SFFLUX7A.140    
                                                                           SFFLUX7A.141    
        RHOKPM(L) = RHOKH_1(L) / ( ASHTF(I)  +                             SFFLUX7A.142    
     &                         RHOKH_1(L)*(LH*ALPHA1(L)*RESFT(L) + CP) )   SFFLUX7A.143    
        RAD_REDUC = RADNET(I) - ASHTF(I) * ( TL_1(I) - TS1(L)              SFFLUX7A.144    
     &                         + GRCP*(Z1_TQ(I) + Z0M_EFF(L) - Z0H(L)) )   SFFLUX7A.145    
        DQ1 = QS1(I) - QW_1(I) +                                           SFFLUX7A.146    
     &                   GRCP*ALPHA1(L)*(Z1_TQ(I) + Z0M_EFF(L) - Z0H(L))   SFFLUX7A.147    
        FQW_1(L) = RESFT(L)*RHOKPM(L)*( ALPHA1(L)*RAD_REDUC                SFFLUX7A.148    
     &                                + (CP*RHOKH_1(L) + ASHTF(I))*DQ1 )   SFFLUX7A.149    
        FTL_1(L) = RHOKPM(L)*(RAD_REDUC - LH*RESFT(L)*RHOKH_1(L)*DQ1)      SFFLUX7A.150    
                                                                           SFFLUX7A.151    
        FTL_1_GB(I) = FTL_1_GB(I) + TILE_FRAC(L)*FTL_1(L)                  SFFLUX7A.152    
        FQW_1_GB(I) = FQW_1_GB(I) + TILE_FRAC(L)*FQW_1(L)                  SFFLUX7A.153    
                                                                           SFFLUX7A.154    
      ENDDO                                                                SFFLUX7A.155    
                                                                           SFFLUX7A.156    
      IF (LTIMER) THEN                                                     SFFLUX7A.157    
        CALL TIMER('SF_FLUX ',4)                                           SFFLUX7A.158    
      ENDIF                                                                SFFLUX7A.159    
                                                                           SFFLUX7A.160    
      RETURN                                                               SFFLUX7A.161    
      END                                                                  SFFLUX7A.162    
                                                                           SFFLUX7A.163    
!     SUBROUTINE SF_FLUX_SEA--------------------------------------------   SFFLUX7A.164    
!                                                                          SFFLUX7A.165    
!     Calculate explicit surface fluxes of heat and moisture over sea      SFFLUX7A.166    
!     and sea-ice                                                          SFFLUX7A.167    
!                                                                          SFFLUX7A.168    
!     ------------------------------------------------------------------   SFFLUX7A.169    

      SUBROUTINE SF_FLUX_SEA (                                              1,2SFFLUX7A.170    
     & P_POINTS,P_FIELD,P1,NSICE,SICE_INDEX,LAND_MASK,                     SFFLUX7A.171    
     & ASHTF,ICE_FRACT,QS1,QSTAR_ICE,QSTAR_SEA,QW_1,RADNET,RHOKH_1,TI,     SFFLUX7A.172    
     & TL_1,TSTAR_ICE,TSTAR_SEA,Z0H_ICE,Z0M_ICE,Z0H_SEA,Z0M_SEA,Z1_TQ,     SFFLUX7A.173    
     & ALPHA1,E_SEA,FQW_ICE,FQW_1,FTL_ICE,FTL_1,H_SEA,RHOKPM,LTIMER        SFFLUX7A.174    
     & )                                                                   SFFLUX7A.175    
                                                                           SFFLUX7A.176    
      IMPLICIT NONE                                                        SFFLUX7A.177    
                                                                           SFFLUX7A.178    
      INTEGER                                                              SFFLUX7A.179    
     & P_POINTS            ! IN Number of P-grid points to be processed.   SFFLUX7A.180    
     &,P_FIELD             ! IN Total number of P-grid points.             SFFLUX7A.181    
     &,P1                  ! IN First P-point to be processed.             SFFLUX7A.182    
     &,NSICE               ! IN Number of sea-ice points.                  SFFLUX7A.183    
     &,SICE_INDEX(P_FIELD) ! IN Index of sea-ice points                    SFFLUX7A.184    
                                                                           SFFLUX7A.185    
      LOGICAL                                                              SFFLUX7A.186    
     & LTIMER              ! IN  Logical for TIMER                         SFFLUX7A.187    
     &,LAND_MASK(P_FIELD)  ! IN .TRUE. for land, .FALSE. elsewhere.        SFFLUX7A.188    
                                                                           SFFLUX7A.189    
      REAL                                                                 SFFLUX7A.190    
     & ASHTF(P_FIELD)      ! IN Coefficient to calculate surface           SFFLUX7A.191    
!                          !    heat flux into sea-ice (W/m2/K).           SFFLUX7A.192    
     &,ICE_FRACT(P_FIELD)  ! IN Fraction of gridbox which is sea-ice.      SFFLUX7A.193    
     &,QS1(P_FIELD)        ! IN Sat. specific humidity qsat(TL_1,PSTAR)    SFFLUX7A.194    
     &,QSTAR_ICE(P_FIELD)  ! IN Surface qsat for sea-ice.                  SFFLUX7A.195    
     &,QSTAR_SEA(P_FIELD)  ! IN Surface qsat for sea or sea-ice leads.     SFFLUX7A.196    
     &,QW_1(P_FIELD)       ! IN Total water content of lowest              SFFLUX7A.197    
!                          !    atmospheric layer (kg per kg air).         SFFLUX7A.198    
     &,RADNET(P_FIELD)     ! IN Net surface radiation (W/m2) positive      SFFLUX7A.199    
!                          !    downwards                                  SFFLUX7A.200    
     &,RHOKH_1(P_FIELD)    ! IN Surface exchange coefficient.              SFFLUX7A.201    
     &,TI(P_FIELD)         ! IN Temperature of sea-ice surface layer (K)   SFFLUX7A.202    
     &,TL_1(P_FIELD)       ! IN Liquid/frozen water temperature for        SFFLUX7A.203    
!                          !    lowest atmospheric layer (K).              SFFLUX7A.204    
     &,TSTAR_ICE(P_FIELD)  ! IN Sea-ice surface temperature (K).           SFFLUX7A.205    
     &,TSTAR_SEA(P_FIELD)  ! IN Sea surface temperature (K).               SFFLUX7A.206    
     &,Z0H_ICE(P_FIELD)    ! IN Sea-ice heat and moisture roughness        SFFLUX7A.207    
!                          !    length (m).                                SFFLUX7A.208    
     &,Z0M_ICE(P_FIELD)    ! IN Sea-ice momentum roughness length (m).     SFFLUX7A.209    
     &,Z0H_SEA(P_FIELD)    ! IN Sea and lead heat and moisture roughness   SFFLUX7A.210    
!                          !    length (m).                                SFFLUX7A.211    
     &,Z0M_SEA(P_FIELD)    ! IN Sea and lead momentum roughness length.    SFFLUX7A.212    
     &,Z1_TQ(P_FIELD)      ! IN Height of lowest atmospheric level (m).    SFFLUX7A.213    
                                                                           SFFLUX7A.214    
      REAL                                                                 SFFLUX7A.215    
     & ALPHA1(P_FIELD)     ! OUT Gradient of saturated specific humidity   SFFLUX7A.216    
!                          !     with respect to temperature between the   SFFLUX7A.217    
!                          !     bottom model layer and the surface.       SFFLUX7A.218    
     &,E_SEA(P_FIELD)      ! OUT Evaporation from sea times leads          SFFLUX7A.219    
!                          !     fraction (kg/m2/s).                       SFFLUX7A.220    
     &,FQW_ICE(P_FIELD)    ! OUT Surface flux of QW for sea-ice.           SFFLUX7A.221    
     &,FQW_1(P_FIELD)      ! OUT GBM surface flux of QW (kg/m2/s).         SFFLUX7A.222    
     &,FTL_ICE(P_FIELD)    ! OUT Surface flux of TL for sea-ice.           SFFLUX7A.223    
     &,FTL_1(P_FIELD)      ! OUT GBM surface flux of TL.                   SFFLUX7A.224    
     &,H_SEA(P_FIELD)      ! OUT Surface sensible heat flux over sea       SFFLUX7A.225    
!                          !     times leads fraction (W/m2).              SFFLUX7A.226    
     &,RHOKPM(P_FIELD)     ! OUT Modified surface exchange coefficient.    SFFLUX7A.227    
                                                                           SFFLUX7A.228    
*CALL C_EPSLON                                                             SFFLUX7A.229    
*CALL C_0_DG_C                                                             SFFLUX7A.230    
*CALL C_G                                                                  SFFLUX7A.231    
*CALL C_LHEAT                                                              SFFLUX7A.232    
*CALL C_R_CP                                                               SFFLUX7A.233    
                                                                           SFFLUX7A.234    
! Derived local parameters.                                                SFFLUX7A.235    
      REAL GRCP,LS                                                         SFFLUX7A.236    
      PARAMETER (                                                          SFFLUX7A.237    
     & GRCP=G/CP                                                           SFFLUX7A.238    
     &,LS=LF+LC            ! Latent heat of sublimation.                   SFFLUX7A.239    
     & )                                                                   SFFLUX7A.240    
                                                                           SFFLUX7A.241    
! Scalars                                                                  SFFLUX7A.242    
      INTEGER                                                              SFFLUX7A.243    
     & I                   ! Horizontal field index.                       SFFLUX7A.244    
     &,J                   ! Sea-ice field index.                          SFFLUX7A.245    
      REAL                                                                 SFFLUX7A.246    
     & DQ1                 ! (qsat(TL_1,PSTAR)-QW_1) + g/cp*alpha1*Z1      SFFLUX7A.247    
     &,D_T                 ! Temporary in calculation of alpha1.           SFFLUX7A.248    
     &,RAD_REDUC           ! Radiation term required for surface flux      SFFLUX7A.249    
!                          ! calcs.                                        SFFLUX7A.250    
                                                                           SFFLUX7A.251    
      EXTERNAL TIMER                                                       SFFLUX7A.252    
                                                                           SFFLUX7A.253    
      IF (LTIMER) THEN                                                     SFFLUX7A.254    
        CALL TIMER('SF_FLUX ',3)                                           SFFLUX7A.255    
      ENDIF                                                                SFFLUX7A.256    
                                                                           SFFLUX7A.257    
      DO I=P1,P1+P_POINTS-1                                                SFFLUX7A.258    
        ALPHA1(I) = 0.                                                     SFFLUX7A.259    
        E_SEA(I) = 0.                                                      SFFLUX7A.260    
        H_SEA(I) = 0.                                                      SFFLUX7A.261    
        FQW_ICE(I) = 0.                                                    SFFLUX7A.262    
        FTL_ICE(I) = 0.                                                    SFFLUX7A.263    
        RHOKPM(I) = 0.                                                     SFFLUX7A.264    
      ENDDO                                                                SFFLUX7A.265    
                                                                           SFFLUX7A.266    
!----------------------------------------------------------------------    SFFLUX7A.267    
!!  1 Calculate gradient of saturated specific humidity for use in         SFFLUX7A.268    
!!    calculation of surface fluxes - only required for sea-ice points     SFFLUX7A.269    
!----------------------------------------------------------------------    SFFLUX7A.270    
      DO J=1,NSICE                                                         SFFLUX7A.271    
        I = SICE_INDEX(J)                                                  SFFLUX7A.272    
        D_T = TSTAR_ICE(I) - TL_1(I)                                       SFFLUX7A.273    
        IF (D_T .GT. 0.05 .OR. D_T .LT. -0.05) THEN                        SFFLUX7A.274    
          ALPHA1(I) = (QSTAR_ICE(I) - QS1(I)) / D_T                        SFFLUX7A.275    
        ELSEIF (TL_1(I) .GT. TM) THEN                                      SFFLUX7A.276    
          ALPHA1(I) = EPSILON*LC*QS1(I)*( 1.0+C_VIRTUAL*QS1(I) )           SFFLUX7A.277    
     &                                             /(R*TL_1(I)*TL_1(I))    SFFLUX7A.278    
        ELSE                                                               SFFLUX7A.279    
          ALPHA1(I) = EPSILON*LS*QS1(I)*( 1.0+C_VIRTUAL*QS1(I) )           SFFLUX7A.280    
     &                                             /(R*TL_1(I)*TL_1(I))    SFFLUX7A.281    
        ENDIF                                                              SFFLUX7A.282    
      ENDDO                                                                SFFLUX7A.283    
                                                                           SFFLUX7A.284    
      DO I=P1,P1+P_POINTS-1                                                SFFLUX7A.285    
        IF ( .NOT. LAND_MASK(I) ) THEN                                     SFFLUX7A.286    
                                                                           SFFLUX7A.287    
          E_SEA(I) = - (1. - ICE_FRACT(I)) *                               SFFLUX7A.288    
     &                               RHOKH_1(I)*(QW_1(I) - QSTAR_SEA(I))   SFFLUX7A.289    
          H_SEA(I) = - (1. - ICE_FRACT(I))*CP*RHOKH_1(I) *                 SFFLUX7A.290    
     &                 ( TL_1(I) - TSTAR_SEA(I)                            SFFLUX7A.291    
     &                     + GRCP*(Z1_TQ(I) + Z0M_SEA(I) - Z0H_SEA(I)) )   SFFLUX7A.292    
                                                                           SFFLUX7A.293    
          IF ( ICE_FRACT(I) .GT. 0. ) THEN                                 SFFLUX7A.294    
! Sea-ice                                                                  SFFLUX7A.295    
            RHOKPM(I) = RHOKH_1(I) / ( ASHTF(I) +                          SFFLUX7A.296    
     &                                  RHOKH_1(I)*(LS*ALPHA1(I) + CP) )   SFFLUX7A.297    
            RAD_REDUC = RADNET(I) - ICE_FRACT(I) * ASHTF(I) *              SFFLUX7A.298    
     &                  ( TL_1(I) - TI(I) +                                SFFLUX7A.299    
     &                       GRCP*(Z1_TQ(I) + Z0M_ICE(I) - Z0H_ICE(I)) )   SFFLUX7A.300    
            DQ1 = QS1(I) - QW_1(I) +                                       SFFLUX7A.301    
     &               GRCP*ALPHA1(I)*(Z1_TQ(I) + Z0M_ICE(I) - Z0H_ICE(I))   SFFLUX7A.302    
            FQW_ICE(I) = RHOKPM(I) * ( ALPHA1(I)*RAD_REDUC +               SFFLUX7A.303    
     &                     (CP*RHOKH_1(I) + ASHTF(I))*DQ1*ICE_FRACT(I) )   SFFLUX7A.304    
            FTL_ICE(I) = RHOKPM(I) * ( RAD_REDUC -                         SFFLUX7A.305    
     &                                  ICE_FRACT(I)*LS*RHOKH_1(I)*DQ1 )   SFFLUX7A.306    
                                                                           SFFLUX7A.307    
          ENDIF                                                            SFFLUX7A.308    
                                                                           SFFLUX7A.309    
          FTL_1(I) = FTL_ICE(I) + H_SEA(I) / CP                            SFFLUX7A.310    
          FQW_1(I) = FQW_ICE(I) + E_SEA(I)                                 SFFLUX7A.311    
                                                                           SFFLUX7A.312    
        ENDIF                                                              SFFLUX7A.313    
      ENDDO                                                                SFFLUX7A.314    
                                                                           SFFLUX7A.315    
      IF (LTIMER) THEN                                                     SFFLUX7A.316    
        CALL TIMER('SF_FLUX ',4)                                           SFFLUX7A.317    
      ENDIF                                                                SFFLUX7A.318    
                                                                           SFFLUX7A.319    
      RETURN                                                               SFFLUX7A.320    
      END                                                                  SFFLUX7A.321    
                                                                           SFFLUX7A.322    
*ENDIF                                                                     SFFLUX7A.323