*IF DEF,SEAICE                                                             ICEFLUX.2      
C ******************************COPYRIGHT******************************    GTS2F400.4339   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.4340   
C                                                                          GTS2F400.4341   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.4342   
C restrictions as set forth in the contract.                               GTS2F400.4343   
C                                                                          GTS2F400.4344   
C                Meteorological Office                                     GTS2F400.4345   
C                London Road                                               GTS2F400.4346   
C                BRACKNELL                                                 GTS2F400.4347   
C                Berkshire UK                                              GTS2F400.4348   
C                RG12 2SZ                                                  GTS2F400.4349   
C                                                                          GTS2F400.4350   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.4351   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.4352   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.4353   
C Modelling at the above address.                                          GTS2F400.4354   
C ******************************COPYRIGHT******************************    GTS2F400.4355   
C                                                                          GTS2F400.4356   
C*LL                                                                       ICEFLUX.3      
CLL   SUBROUTINE ICEFLUX                                                   ICEFLUX.4      
CLL   ------------------                                                   ICEFLUX.5      
CLL   THIS ROUTINE APPLIES THE CHANGES IN TEMPERATURE AND SALINITY         ICEFLUX.6      
CLL   DUE TO ICE-OCEAN FLUXES, AND THE TEMPERATURE CHANGE DUE TO           ICEFLUX.7      
CLL   SNOWFALL FROM THE ATMOSPHERE. IT IS CALLED FROM TRACER.              ICEFLUX.8      
CLL   IT CAN BE COMPILED BY ANY FORTRAN COMPILER WHICH TOLERATES           ICEFLUX.9      
CLL   IN-LINE COMMENTS.                                                    ICEFLUX.10     
CLL   AUTHOR: D L ROBERTS                                                  ICEFLUX.11     
CLL   DATE: 11/10/90                                                       ICEFLUX.12     
CLL   REVIEWED BY: J F THOMPSON                                            ICEFLUX.13     
CLL   VERSION 1.3                                                          ICEFLUX.14     
CLL   REVISED: 7/2/91 BY J F THOMSON                                       ICEFLUX.15     
CLL            TO ENSURE ENERGY CALCULATION TWO TIME LEVELS OF             ICEFLUX.16     
CLL            FLUXES ARE BEING STORED AND CARYHEAT NOW CONTAINS           ICEFLUX.17     
CLL            A HEAT (NOT A HEAT FLUX) WHICH MUST BE ADDED FROM           ICEFLUX.18     
CLL            PREVIOUS ICE TIMESTEP BEFORE THIS TIMESTEP'S VALUE          ICEFLUX.19     
CLL            IS CALCULATED                                               ICEFLUX.20     
CLL   REVISED: 30/06/92 BY J.F.THOMSON                                     ICEFLUX.21     
CLL            RETURN TO VERSION 1.1 CARYHEAT A HEAT FLUX AND ONLY         ICEFLUX.22     
CLL            ONE TIME LEVEL OF THE OCEAN-ICE HEAT FLUXES                 ICEFLUX.23     
CLL   REVISED: O. Alves 12/12/93 add OSKIPLND option to STATE routines     JA121293.335    
!     3.5    16.01.95   Remove *IF dependency. R.Hill                      ORH1F305.306    
CLL   4.0 CARYSALT is now a rate  J.F.Crossley                             OJC0F400.10     
CLL   4.0 Multiply CONTEMP by C2DTTS (corrects error).  J.F.Crossley       OJC1F400.1      
CLL   4.0 Remove test on ICY in snowrate calculation, for energy           OJC2F400.12     
CLL       conservation this is now done in INIT_OCEAN_ICE called           OJC2F400.13     
CLL       from OCN_CTL. J.F.Crossley                                       OJC2F400.14     
!   4.4  15/08/97  Remove SKIPLAND code. R. Hill                           ORH7F404.65     
CLL   PROGRAMMING STANDARDS USE COX NAMING CONVENTION FOR COX VARIABLES    ICEFLUX.24     
CLL   OTHERWISE FOLLOWS UM DOC PAPER 4 VERSION 1.                          ICEFLUX.25     
CLL   THIS FORMS PART OF SYSTEM COMPONENT P4.                              ICEFLUX.26     
C*    ---------------------------------------------------------------      ICEFLUX.27     
C*L                                                                        ICEFLUX.28     

      SUBROUTINE ICEFLUX(TA,FLXTOICE,CARYHEAT,CARYSALT,SNOWRATE,ICY,        2,2ICEFLUX.29     
     +                DRHOICE,                                             ICEFLUX.32     
     & J,JMT,                                                              ORH7F404.66     
     +                IMT,KM,NT,DZ,C2DTTS,CSUBP,RHOWATER,QFUSION)          ICEFLUX.35     
C                                                                          ICEFLUX.36     
      IMPLICIT NONE                                                        ICEFLUX.37     
*CALL CNTLOCN                                                              ORH1F305.307    
*CALL OARRYSIZ                                                             ORH1F305.308    
C                                                                          ICEFLUX.38     
      INTEGER                                                              ICEFLUX.39     
     + IMT,           ! IN  NUMBER OF COLUMNS.                             ICEFLUX.40     
     + KM,            ! IN  NUMBER OF LAYERS.                              ICEFLUX.41     
     + NT             ! IN  NUMBER OF TRACERS.                             ICEFLUX.42     
     &,JMT         ! IN No of rows                                         JA121293.341    
     &,J           ! IN ROW NUMBER                                         JA121293.342    
C                                                                          ICEFLUX.43     
      LOGICAL ICY(IMT) ! IN TRUE WHERE SEA-ICE EXISTS.                     ICEFLUX.44     
C                                                                          ICEFLUX.45     
      REAL                                                                 ICEFLUX.46     
     + TA(IMT,KM,NT), ! INOUT  TRACER ARRAY.                               ICEFLUX.47     
     + FLXTOICE(IMT), ! IN PRIMARY HEAT FLUX FROM OCEAN TO ICE,IN W/M**2   ICEFLUX.48     
     + CARYHEAT(IMT), ! INOUT MINOR CONTRIBUTIONS TO OCEAN-ICE HEAT        ICEFLUX.49     
     +                !  FLUX, IN W/M**2. THIS IS POSITIVE WHEN HEAT IS    ICEFLUX.50     
     +                !  ENTERING THE OCEAN, I.E. THE SIGN CONVENTION IS   ICEFLUX.51     
     +                !  OPPOSITE TO FLXTOICE. NOTE THAT CARYHEAT IS       ICEFLUX.52     
     +                !  ZERO ON EXIT FROM THIS ROUTINE.                   ICEFLUX.53     
     + CARYSALT(IMT), ! IN RATE OF SALINITY INCREASE FROM                  OJC0F400.11     
     +                !  ICE-SNOW PROCESSES                                OJC0F400.12     
     + SNOWRATE(IMT), ! IN RATE OF SNOWFALL, IN KG M-2 S-1.                ICEFLUX.55     
     + DZ(KM),        ! IN LAYER THICKNESSES, IN CM.                       ICEFLUX.56     
     + C2DTTS,        ! IN TWICE THE TRACER TIMESTEP AT THE SURFACE        ICEFLUX.57     
     +                !  LEVEL, EXCEPT ON A FORWARD TIMESTEP WHEN IT IS    ICEFLUX.58     
     +                !  EQUAL TO THE TRACER TIMESTEP.                     ICEFLUX.59     
     + CSUBP,         ! IN SPECIFIC HEAT CAPACITY, IN J/(K*KG).            ICEFLUX.60     
     + RHOWATER,      ! IN DENSITY OF SEA WATER, IN KG/M**3.               ICEFLUX.61     
     + QFUSION        ! IN LATENT HEAT OF FUSION OF ICE, IN J/KG.          ICEFLUX.62     
      REAL DRHOICE(IMT_ICE_MIX) ! OUT DENSITY CHG AT THE SURFACE DUE TO    ORH1F305.312    
     +                  !     ICE-OCEAN FLUXES, FOR MIXED LAYER MODEL.     ICEFLUX.67     
C                                                                          ICEFLUX.68     
      EXTERNAL STATED                                                      ICEFLUX.69     
C*                                                                         ICEFLUX.72     
C     LOCAL VARIABLES.                                                     ICEFLUX.73     
C                                                                          ICEFLUX.74     
      INTEGER I       ! LOOP COUNTER FOR COLUMNS.                          ICEFLUX.75     
      REAL CONTEMP    ! CONVERSION FACTOR FROM W/M2 TO TEMPERATURE.        ICEFLUX.76     
      REAL                                                                 ICEFLUX.79     
     + RHO1(IMT,KM),  ! SURFACE DENSITY BEFORE TRACERS ARE UPDATED.        ICEFLUX.80     
     + RHO2(IMT,KM),  ! SURFACE DENSITY AFTER TRACERS ARE UPDATED.         ICEFLUX.81     
     + WORK1(IMT,KM), ! WORK ARRAY USED BY SUBROUTINE STATE.               ICEFLUX.82     
     + WORK2(IMT,KM)  ! WORK ARRAY USED BY SUBROUTINE STATE.               ICEFLUX.83     
C                                                                          ICEFLUX.86     
      CONTEMP = C2DTTS*100.0/(DZ(1)*CSUBP*RHOWATER)                        OJC1F400.2      
C                                                                          ICEFLUX.88     
      IF (L_OMIXLAY) THEN                                                  ORH1F305.313    
C     FIND SURFACE DENSITY BEFORE UPDATING TRACERS.                        ICEFLUX.91     
C                                                                          ICEFLUX.92     
                                                                           JA121293.354    
      CALL STATED(TA(1,1,1),TA(1,1,2),RHO1,WORK1,WORK2,IMT,1,J             JA121293.355    
     &,KM                                                                  JA121293.356    
     &,JMT                                                                 ORH7F404.67     
     &)                                                                    JA121293.359    
                                                                           JA121293.360    
C                                                                          ICEFLUX.94     
      ENDIF ! L_OMIXLAY = true                                             ORH1F305.316    
      DO 100 I = 1,IMT                                                     ICEFLUX.97     
        TA(I,1,1) = TA(I,1,1) + CONTEMP*( CARYHEAT(I) - FLXTOICE(I) )      ICEFLUX.98     
        TA(I,1,1) = TA(I,1,1) - CONTEMP*QFUSION*SNOWRATE(I)                OJC2F400.15     
        TA(I,1,2) = TA(I,1,2) + C2DTTS*CARYSALT(I)                         OJC0F400.13     
        CARYHEAT(I) = 0.0                                                  ICEFLUX.103    
100   CONTINUE                                                             ICEFLUX.104    
C                                                                          ICEFLUX.105    
      IF (L_OMIXLAY) THEN                                                  ORH1F305.317    
C     FIND SURFACE DENSITY AFTER UPDATING TRACERS, THEN FIND THE           ICEFLUX.108    
C     RESULTANT CHANGE IN DENSITY.                                         ICEFLUX.109    
C                                                                          ICEFLUX.110    
                                                                           JA121293.365    
                                                                           JA121293.371    
      CALL STATED(TA(1,1,1),TA(1,1,2),RHO2,WORK1,WORK2,IMT,1,J             JA121293.372    
     &,KM                                                                  JA121293.373    
     &,JMT                                                                 ORH7F404.68     
     &)                                                                    JA121293.376    
                                                                           JA121293.377    
                                                                           JA121293.382    
      DO 150 I = 1,IMT                                                     ICEFLUX.112    
        DRHOICE(I) = RHO2(I,1) - RHO1(I,1)                                 ICEFLUX.113    
150   CONTINUE                                                             ICEFLUX.114    
      ENDIF ! L_OMIXLAY = true                                             ORH1F305.320    
C                                                                          ICEFLUX.117    
      RETURN                                                               ICEFLUX.118    
      END                                                                  ICEFLUX.119    
*ENDIF                                                                     ICEFLUX.120