*IF DEF,OCEAN                                                              ORH1F305.470    
C ******************************COPYRIGHT******************************    GTS2F400.8191   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.8192   
C                                                                          GTS2F400.8193   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.8194   
C restrictions as set forth in the contract.                               GTS2F400.8195   
C                                                                          GTS2F400.8196   
C                Meteorological Office                                     GTS2F400.8197   
C                London Road                                               GTS2F400.8198   
C                BRACKNELL                                                 GTS2F400.8199   
C                Berkshire UK                                              GTS2F400.8200   
C                RG12 2SZ                                                  GTS2F400.8201   
C                                                                          GTS2F400.8202   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.8203   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.8204   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.8205   
C Modelling at the above address.                                          GTS2F400.8206   
C ******************************COPYRIGHT******************************    GTS2F400.8207   
C                                                                          GTS2F400.8208   
C*LL                                                                       REFREEZE.3      
CLL   SUBROUTINE REFREEZE                                                  REFREEZE.4      
CLL   -------------------                                                  REFREEZE.5      
CLL   THIS ROUTINE REIMPOSES A MINIMUM TEMPERATURE OF FREEZING AT ALL      REFREEZE.6      
CLL   LEVELS, AND STORES NEGATIVE HEAT FLUXES RELEASED BY THIS IN THE      REFREEZE.7      
CLL   ARRAY CARYHEAT, FOR THE ICE MODEL. UNLIKE THE SIMILAR ROUTINE        REFREEZE.8      
CLL   FREEZEUP, IT DOES NOT ALTER NEWICE. THE REASON FOR THIS IS THAT      REFREEZE.9      
CLL   IT IS UNDESIRABLE TO ALLOW FILTERING TO TRIGGER ICE FORMATION.       REFREEZE.10     
CLL   THIS ROUTINE IS CALLED FROM WITHIN TRACER, AFTER THE TRACER          REFREEZE.11     
CLL   FIELDS HAVE BEEN UPDATED AND JUST AFTER FILTERING.                   REFREEZE.12     
CLL   IT CAN BE COMPILED BY ANY FORTRAN COMPILER WHICH TOLERATES           REFREEZE.13     
CLL   IN-LINE COMMENTS.                                                    REFREEZE.14     
CLL   AUTHOR: D L ROBERTS                                                  REFREEZE.15     
CLL   DATE: 23/10/90                                                       REFREEZE.16     
CLL   REVISED: 7/2/91 BY J F THOMSON                                       REFREEZE.17     
CLL            STORES HEAT NOT HEAT FLUX FOR ICE MODEL.                    REFREEZE.18     
CLL            SATISFIES ENERGY CONSERVATION.                              REFREEZE.19     
CLL            ALSO MODIFIED TO CALCULATE DENSITY CHANGE AND ADD           REFREEZE.20     
CLL            IT TO THAT FROM ICEFLUX FOR MIXED LAYER MODEL.              REFREEZE.21     
CLL   REVISED:11/8/92 BY N K TAYLOR                                        REFREEZE.22     
CLL       RESETS TEMPERATURES AT ALL LEVELS IF BELOW TFREEZE.              REFREEZE.23     
CLL       THE HEAT NEEDED TO DO THIS IS TAKEN FROM THE LAYER BELOW         REFREEZE.24     
CLL       AND NOT FROM THE ICE MODEL, SINCE THE COLD TEMPERATURES          REFREEZE.25     
CLL       ARE CAUSED BY DEFICIENCIES IN THE FILTERING AND ARE              REFREEZE.26     
CLL       UNPHYSICAL.  CARYHEAT IS UNCHANGED BY THIS ROUTINE.              REFREEZE.27     
CLL   REVISED: 23/9/92 BY J F THOMSON                                      REFREEZE.28     
CLL            CARYHEAT REMOVED FROM CODE.                                 REFREEZE.29     
CLL Version 4.0 7.7.95 Add any heat supplied to the bottom layer to        OJG0F400.87     
CLL   avoid freezing to HEATSINK. (J. Murphy, mod. coded by J. Gregory)    OJG0F400.88     
!     3.5    16.01.95   Remove *IF dependency. R.Hill                      ORH1F305.4896   
CLL   VERSION 1.3                                                          REFREEZE.30     
CLL   PROGRAMMING STANDARDS USE COX NAMING CONVENTION FOR COX VARIABLES    REFREEZE.31     
CLL   OTHERWISE FOLLOWS UM DOC PAPER 4 VERSION 1.                          REFREEZE.32     
CLL   THIS FORMS PART OF SYSTEM COMPONENT P4.                              REFREEZE.33     
C*    ---------------------------------------------------------------      REFREEZE.34     
C*L                                                                        REFREEZE.35     

      SUBROUTINE REFREEZE(TA,IMT,KM,NT,FM,                                  2REFREEZE.36     
     & HEATSINK,                                                           OJG0F400.89     
     +                    DZ,C2DTTS,CSUBP,RHOWATER,TFREEZE)                REFREEZE.37     
C                                                                          REFREEZE.38     
      IMPLICIT NONE                                                        REFREEZE.39     
C                                                                          REFREEZE.40     
      INTEGER                                                              REFREEZE.41     
     + IMT,           ! IN  NUMBER OF COLUMNS.                             REFREEZE.42     
     + KM,            ! IN  NUMBER OF LAYERS.                              REFREEZE.43     
     + NT             ! IN  NUMBER OF TRACERS.                             REFREEZE.44     
C                                                                          REFREEZE.45     
      REAL                                                                 REFREEZE.46     
     + TA(IMT,KM,NT), ! INOUT TRACER ARRAY.                                REFREEZE.47     
     + DZ(KM),        ! IN LAYER THICKNESSES, IN CM.                       REFREEZE.48     
     +                !  IF VARIABLE TIMESTEP WITH DEPTH IS BEING USED,    REFREEZE.51     
     +                !  THE CALL TO REFREEZE HAS RZ INSTEAD OF DZ.        REFREEZE.52     
     + FM(IMT,KM),    ! IN MASKING ARRAY FOR TRACER POINTS: EQUALS 1.0     REFREEZE.55     
     +                !  AT OCEAN POINTS AND 0.0 AT LAND/SEABED POINTS.    REFREEZE.56     
     + HEATSINK(IMT), ! INOUT HEAT 'LOST' BY SETTING T TO TFREEZE AT       OJG0F400.90     
     +                !  BOTTOM MODEL LEVEL                                OJG0F400.91     
     + C2DTTS,        ! IN TWICE THE TRACER TIMESTEP AT THE SURFACE        REFREEZE.57     
     +                !  LEVEL, EXCEPT ON A FORWARD TIMESTEP WHEN IT IS    REFREEZE.58     
     +                !  EQUAL TO THE TRACER TIMESTEP.                     REFREEZE.59     
     + CSUBP,         ! IN SPECIFIC HEAT CAPACITY, IN J/(K*KG).            REFREEZE.60     
     + RHOWATER,      ! IN DENSITY OF SEA WATER, IN KG/M**3.               REFREEZE.61     
     + TFREEZE        ! IN FREEZING POINT OF SEA-WATER, IN CELSIUS.        REFREEZE.62     
C*                                                                         REFREEZE.63     
*IF DEF,SEAICE                                                             ORH1F305.471    
C     LOCAL VARIABLES.                                                     REFREEZE.64     
C                                                                          REFREEZE.65     
      INTEGER I       ! LOOP COUNTER FOR COLUMNS.                          REFREEZE.66     
      INTEGER K       ! LOOP COUNTER FOR LEVELS.                           REFREEZE.67     
      REAL CONFLUX    ! CONVERSION FACTOR FOR TEMP TO W/(M**2.CM.K)        OJG0F400.92     
      CONFLUX=(CSUBP*RHOWATER)/(100.0*C2DTTS)                              OJG0F400.93     
C                                                                          REFREEZE.68     
      DO 120 K=1,KM-1                                                      REFREEZE.69     
        DO 100 I = 1,IMT                                                   REFREEZE.70     
          IF (TA(I,K,1) .LT. TFREEZE) THEN                                 REFREEZE.71     
          TA(I,K+1,1) = TA(I,K+1,1) +                                      REFREEZE.72     
     +                 (DZ(K)/DZ(K+1))*FM(I,K+1)*(TA(I,K,1)-TFREEZE)       REFREEZE.73     
C If layer K+1 is not active, the heat moved down in the previous line     OJG0F400.94     
C will have been lost. Add it to HEATSINK.                                 OJG0F400.95     
          HEATSINK(I)=HEATSINK(I)+(1.0-FM(I,K+1))*CONFLUX*DZ(K)*           OJG0F400.96     
     +              (TA(I,K,1)-TFREEZE)                                    OJG0F400.97     
                                                                           OJG0F400.98     
            TA(I,K,1) = TFREEZE                                            REFREEZE.74     
          ENDIF                                                            REFREEZE.75     
100     CONTINUE                                                           REFREEZE.76     
120   CONTINUE                                                             REFREEZE.77     
*ENDIF                                                                     ORH1F305.472    
      RETURN                                                               REFREEZE.78     
      END                                                                  REFREEZE.79     
*ENDIF                                                                     REFREEZE.80