*IF DEF,S40_1A                                                             UMSLAB1A.2      
C ******************************COPYRIGHT******************************    GTS2F400.10783  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.10784  
C                                                                          GTS2F400.10785  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.10786  
C restrictions as set forth in the contract.                               GTS2F400.10787  
C                                                                          GTS2F400.10788  
C                Meteorological Office                                     GTS2F400.10789  
C                London Road                                               GTS2F400.10790  
C                BRACKNELL                                                 GTS2F400.10791  
C                Berkshire UK                                              GTS2F400.10792  
C                RG12 2SZ                                                  GTS2F400.10793  
C                                                                          GTS2F400.10794  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.10795  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.10796  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.10797  
C Modelling at the above address.                                          GTS2F400.10798  
C ******************************COPYRIGHT******************************    GTS2F400.10799  
C                                                                          GTS2F400.10800  
C*LL                                                                       UMSLAB1A.3      
CLL   SUBROUTINE UMSLAB                                                    UMSLAB1A.4      
CLL   -----------------                                                    UMSLAB1A.5      
CLL                                                                        UMSLAB1A.6      
CLL   THIS ROUTINE IS FOR USE WITH THE 'SLAB' OCEAN MODEL ONLY.            UMSLAB1A.7      
CLL                                                                        UMSLAB1A.8      
CLL   THE TEMPERATURE OF THE MIXED LAYER OCEAN IS UPDATED                  UMSLAB1A.9      
CLL   ACCORDING TO THE EQUATION                                            UMSLAB1A.10     
CLL                                                                        UMSLAB1A.11     
CLL   CW * RHOW * DTM      NET HEAT FLUX IN  + HEAT CONVERGENCE            UMSLAB1A.12     
CLL               ---  =  ------------------------------------             UMSLAB1A.13     
CLL               DT                         H                             UMSLAB1A.14     
CLL                                                                        UMSLAB1A.15     
CLL   THIS ROUTINE FORMS PART OF SYSTEM COMPONENT P40.                     UMSLAB1A.16     
CLL   IT CAN BE COMPILED BY CFT77, BUT DOES NOT CONFORM TO ANSI            UMSLAB1A.17     
CLL   FORTRAN77 STANDARDS, BECAUSE OF THE INLINE COMMENTS.                 UMSLAB1A.18     
CLL   IT ADHERES TO THE STANDARDS OF DOCUMENTATION PAPER 3, VERSION 5.     UMSLAB1A.19     
CLL                                                                        UMSLAB1A.20     
CLL   ALL QUANTITIES IN THIS ROUTINE ARE IN S.I. UNITS UNLESS              UMSLAB1A.21     
CLL   OTHERWISE STATED.                                                    UMSLAB1A.22     
CLL                                                                        UMSLAB1A.23     
CLL   DIFFUSION OF SLAB TEMPERATURES ADDED                                 SJT1F304.823    
CLL                                                                        SJT1F304.824    
CLL   CALLED BY: SLABCNTL                                                  UMSLAB1A.24     
CLL                                                                        UMSLAB1A.25     
CLL   WRITTEN BY C.A.SENIOR (14/1/91)                                      UMSLAB1A.26     
CLL   MODIFIED BY A.B.KEEN (02/02/93)                                      UMSLAB1A.27     
CLL   MODIFIED BY C.A.SENIOR(22/03/93)                                     SJT1F304.825    
CLL   MODIFIED BY C.A.SENIOR(14/09/93)                                     SJT1F304.826    
CLL   MODIFIED BY J.F.THOMSON (23/05/94) Thermodynamics altered to         SJT1F304.827    
CLL                                      allow addition of dynamics.       SJT1F304.828    
CLL   Version   Description of change                                      SJC1F400.97     
CLL     4.0     Vertical SST advection included (R.Carnell) and            SJC1F400.98     
CLL             change order of heat convergence calculation for           SJC1F400.99     
CLL             ice dynamics. J.F.Crossley                                 SJC1F400.100    
!LL  4.4   04/08/97  Add missing ARGOINDX to various argument lists.       SDR1F404.97     
!LL                  D. Robinson.                                          SDR1F404.98     
!LL                                                                        SDR1F404.99     
CLL   VERSION NUMBER 1.1                                                   UMSLAB1A.28     
CLL   REVIEWER: W.INGRAM (01/03/93)                                        UMSLAB1A.29     
CLL                                                                        UMSLAB1A.30     
CLLEND---------------------------------------------------------------      UMSLAB1A.31     
C*L                                                                        UMSLAB1A.32     

      SUBROUTINE UMSLAB(                                                    1,2SDR1F404.100    
*CALL ARGOINDX                                                             SDR1F404.101    
     +                 ICY,                                                SDR1F404.102    
     +                 ATMSFLUX,                                           SJT1F304.830    
     +                 ADJHCONV,                                           SJT1F304.831    
     +                 SNOWRATE,                                           SJT1F304.832    
     +                 CARYHEAT,                                           SJT1F304.833    
     +                 SLABTEMP,                                           SJT1F304.834    
     +                 wtsfc,                                              SJC1F400.101    
     +                 wtbase,                                             SJC1F400.102    
     +                 LAND,                                               SJT1F304.835    
     +                 AICE,                                               SJT1F304.836    
     +                 NEWICE,                                             SJT1F304.837    
     +                 OIFLUX,                                             SJT1F304.838    
     +                 DTADV,DTDIFF,                                       SJC1F400.103    
     +                 L1,L2,DT,DZ1,u_field,                               SJC1F400.104    
     +                 JROWS,JROWSM1,ICOLS,                                SJT1F304.840    
     +                 TCLIMC,                                             SJT1F304.841    
     +                 HCLIM,                                              SJT1F304.842    
     +                 CALIB,                                              SJT1F304.843    
     +                 L_THERM,L_IDYN,L_IDRIF,                             SJT1F304.844    
     +                 L_SLBADV,LGLOBAL,                                   SJT1F304.845    
     +                 EDDYDIFF,                                           SJT1F304.846    
     +                 DELTA_LONG,DELTA_LAT,BASE_LAT,                      SJT1F304.847    
     +                 AH,                                                 SJT1F304.848    
     +                 OPENSEA,                                            SJT1F304.849    
     +                 UCURRENT,                                           SJT1F304.850    
     +                 VCURRENT,                                           SJT1F304.851    
     +                 COS_P_LATITUDE,COS_U_LATITUDE,                      SJT1F304.852    
     +                 SEC_P_LATITUDE,SIN_U_LATITUDE)                      SJT1F304.853    
C                                                                          UMSLAB1A.36     
      IMPLICIT NONE                                                        UMSLAB1A.37     
C                                                                          UMSLAB1A.38     
*CALL TYPOINDX                                                             SDR1F404.103    
      INTEGER L1,       ! IN SIZE OF DATA VECTORS                          UMSLAB1A.39     
     + L2               ! IN AMOUNT OF DATA TO BE PROCESSED                UMSLAB1A.40     
     +,JROWS             ! IN NO OF ROWS N-S                               SJT1F304.854    
     +,JROWSM1           ! IN NO OF ROWS N-S - 1                           SJT1F304.855    
     +,ICOLS             ! IN NO OF COLUMNS E-W                            SJT1F304.856    
     +,u_field           ! In points in u field                            SJC1F400.105    
C                                                                          UMSLAB1A.41     
      REAL ATMSFLUX(L1) ! IN NET DOWNWARD SURFACE HEAT FLUX (W M-2)        SJT1F304.857    
     +,ADJHCONV(L1)     ! IN ADJUSTED HEAT CONVERGENCE IN W M-2.           SJT1F304.858    
     +,SNOWRATE(L1)     ! IN RATE OF SNOWFALL, IN KG M-2 S-1.              SJT1F304.859    
     +,TCLIMC(L1)       ! IN CLIMATOLOGICAL SEA SURFACE TEMPS C            SJT1F304.860    
     +,HCLIM(L1)        ! IN CLIMATOLOGICAL SEA-ICE EXTENTS M              SJT1F304.861    
C                                                                          UMSLAB1A.48     
      REAL                                                                 SJT1F304.862    
     + COS_P_LATITUDE(L1)! IN COS LATITUDE ON P GRID                       SJT1F304.863    
     +,COS_U_LATITUDE(L1)! IN COS LATITUDE ON UV GRID                      SJT1F304.864    
     +,SEC_P_LATITUDE(L1)! 1.0/COS LATITUDE ON P GRID                      SJT1F304.865    
     +,SIN_U_LATITUDE(L1)! IN SIN LATITUDE ON UV GRID                      SJT1F304.866    
C                                                                          UMSLAB1A.52     
      REAL DT           ! IN TIMESTEP FOR UPDATING THE SLAB OCEAN IN S.    SJT1F304.867    
     +,DZ1              ! IN THICKNESS OF THE SLAB OCEAN IN METRES.        SJT1F304.868    
     +,AH               ! DIFFUSION COEFFICENT                             SJT1F304.869    
     +,EDDYDIFF         ! IN EDDY DIFFUSION COEFF FOR OIFLUX CALCULATION   SJT1F304.870    
     +,UCURRENT(ICOLS,JROWSM1) ! IN ZONAL SURFACE CURRENT (M/S)            SJT1F304.871    
     +,VCURRENT(ICOLS,JROWSM1) ! IN MERIDIONAL SURFACE CURRENT (M/S)       SJT1F304.872    
C                                                                          SJT1F304.873    
      REAL                                                                 SJT1F304.874    
     & DELTA_LONG             ! IN EW grid spacing (degrees)               SJT1F304.875    
     &,DELTA_LAT              ! IN NS grid spacing (degrees)               SJT1F304.876    
     &,BASE_LAT               ! IN latitude of first row (degrees)         SJT1F304.877    
C                                                                          SJT1F304.878    
      LOGICAL ICY(L1)   ! IN TRUE IF BOX CONTAINS SEA-ICE.                 SJT1F304.879    
     +,CALIB            ! IN TRUE IF CALIBRATION EXPT                      SJT1F304.880    
     +,OPENSEA(L1)      ! IN TRUE IF BOX CONTAINS OPEN SEA (NO ICE)        SJT1F304.881    
     +,LAND(L1)         ! IN TRUE AT LAND POINTS                           SJT1F304.882    
     +,NEWICE(L1)       ! OUT TRUE IF ICE IS FORMING                       SJT1F304.883    
     +,L_THERM          ! IN TRUE FOR COUPLED LIKE ICE THERMODYNAMICS      SJT1F304.884    
     +,L_IDYN           ! IN TRUE FOR CAV FLUID ICE DYNAMICS               SJT1F304.885    
     +,L_IDRIF          ! IN TRUE FOR ICE DEPTH ADVECTION                  SJT1F304.886    
     +,L_SLBADV         ! IN TRUE FOR SLAB TEMP ADVECTION                  SJT1F304.887    
     +,LGLOBAL         ! IN TRUE IF GLOBAL MODEL                           SJT1F304.888    
C                                                                          SJT1F304.889    
      REAL SLABTEMP(L1)  ! INOUT TEMPERATURE OF THE SLAB OCEAN.            SJT1F304.890    
     +,wtsfc(l1)         ! OUT W x sfc slab temp                           SJC1F400.106    
     +,wtbase(l1)        ! OUT w x base slab temp                          SJC1F400.107    
     +,AICE(L1)          ! INOUT ICE FRACTION                              SJT1F304.891    
     +,OIFLUX(L1)        ! OUT OCEAN TO ICE HEAT FLUX                      SJT1F304.892    
     +,CARYHEAT(L1)      ! OUT ZERO EXCEPT AT POINTS WHERE ICE IS          SJT1F304.893    
     +                   !     ABOUT TO FORM, WHERE IT SHOULD BE THE       UMSLAB1A.55     
     +                   !     NEGATIVE HEAT FLUX                          UMSLAB1A.56     
     +,DTADV(L1)         ! OUT HEATING RATE DUE TO ADVECTION K/S           SJC1F400.108    
     +,DTDIFF(L1)        ! OUT HEATING RATE DUE TO DIFFUSION K/S           SJC1F400.109    
C*                                                                         UMSLAB1A.57     
C     Include COMDECKS                                                     UMSLAB1A.58     
C                                                                          UMSLAB1A.59     
*CALL C_SLAB                                                               UMSLAB1A.60     
*CALL C_LHEAT                                                              UMSLAB1A.61     
*CALL C_0_DG_C                                                             UMSLAB1A.62     
C                                                                          UMSLAB1A.63     
C                                                                          UMSLAB1A.64     
C     VARIABLES LOCAL TO THIS ROUTINE ARE NOW DEFINED.                     UMSLAB1A.65     
C                                                                          UMSLAB1A.66     
      INTEGER J           ! LOOP COUNTERS                                  UMSLAB1A.67     
C                                                                          UMSLAB1A.68     
      REAL TFREEZE          ! FREEZING POINT OF SEAWATER IN C              SJT1F304.894    
     +,SLABD(L1)            ! TEMPORARY STORE FOR SLABTEMP-TCLIMC          SJT1F304.895    
     +,TWORK(L1)            ! TEMPORARY STORE FOR SLABTEMP                 SJC1F400.110    
     +,DTTOFLUX             ! CONVERSION FACTOR FROM K TO WM-2             SJT1F304.896    
     +,FLUXTODT             ! CONVERSION FACTOR FROM WM-2 TO K             SJT1F304.897    
     +,DEPTHTOK             ! CONVERSION FACTOR FROM M ICE TO K            SJT1F304.898    
     +,AHDT                 ! DIFFUSION COEFFICENT * TIMESTEP              SJT1F304.900    
C                                                                          UMSLAB1A.75     
      PARAMETER(TFREEZE=TFS-ZERODEGC)                                      UMSLAB1A.76     
C                                                                          UMSLAB1A.77     
C                                                                          SJT1F304.901    
C     SET VARIOUS CONSTANTS FOR USE IN CALCULATING THE HEAT                SJT1F304.902    
C     CONVERGENCE                                                          SJT1F304.903    
C                                                                          SJT1F304.904    
      DTTOFLUX = RHOCP * DZ1 / DT                                          SJT1F304.905    
      FLUXTODT = 1.0 / DTTOFLUX                                            SJT1F304.906    
      DEPTHTOK = RHOICE * LF / ( RHOCP * DZ1 )                             SJT1F304.907    
C                                                                          SJT1F304.908    
      DO J = 1,L2                                                          UMSLAB1A.78     
C                                                                          UMSLAB1A.79     
C     1. SET TEMPERATURE OF ICE POINTS TO TFREEZE (if coupled model        SJT1F304.909    
C        ice thermodynamics is not required)                               SJT1F304.910    
C        AND INITIALISE CARYHEAT AND ADJHCONV (IN CALIBRATION)             SJT1F304.911    
C        and initialise newice for coupled model ice thermo.               SJT1F304.912    
C                                                                          UMSLAB1A.81     
        IF ( ICY(J) .and. .not. l_therm) THEN                              SJT1F304.913    
           SLABTEMP(J) = TFREEZE                                           UMSLAB1A.94     
        END IF                                                             UMSLAB1A.95     
C                                                                          UMSLAB1A.96     
        IF ( CALIB ) THEN                                                  SJT1F304.914    
           ADJHCONV(J) = 0.0                                               SJT1F304.915    
        END IF                                                             SJT1F304.916    
C                                                                          SJT1F304.917    
        CARYHEAT(J) = 0.0                                                  SJT1F304.918    
        newice(j)   = .false.                                              SJT1F304.919    
C                                                                          SJT1F304.920    
C     2. CALCULATE THE CHANGE IN SLAB TEMPERATURE                          SJT1F304.921    
C        and ocean to ice heat flux                                        SJT1F304.922    
C                                                                          SJT1F304.923    
C     PERFORM OPERATIONS OVER SEA POINTS ONLY                              UMSLAB1A.97     
C  (for coupled ice thermodynamics, sea points means sea and sea ice)      SJT1F304.924    
C                                                                          UMSLAB1A.98     
C First coupled thermodynamics                                             SJT1F304.925    
        IF (L_THERM) THEN                                                  SJT1F304.926    
          IF ( .not. LAND(J) ) THEN                                        SJT1F304.927    
            oiflux(j)   = rhocp * eddydiff / (0.5*dz1)                     SJT1F304.928    
     &                  * ( slabtemp(j) -tfreeze )                         SJT1F304.929    
            if (opensea(j)) oiflux(j) = 0.0                                SJT1F304.930    
            SLABTEMP(J) = SLABTEMP(J) + ( ATMSFLUX(J)                      SJT1F304.931    
     &                    - LF*SNOWRATE(J)*(1.0-aice(j))                   SJT1F304.932    
     &                    - oiflux(j) ) * fluxtodt                         SJT1F304.933    
C                                                                          UMSLAB1A.100    
          ENDIF                                                            SJT1F304.934    
C Then original thermodynamic treatment                                    SJT1F304.935    
         ELSE                                                              SJT1F304.936    
          IF ( OPENSEA(J) ) THEN                                           SJT1F304.937    
            SLABTEMP(J) = SLABTEMP(J) + ( ATMSFLUX(J)                      SJT1F304.938    
     +                    - LF*SNOWRATE(J) ) * FLUXTODT                    SJT1F304.939    
          ENDIF                                                            SJT1F304.940    
        ENDIF                                                              SJT1F304.941    
C End J loop.                                                              SJT1F304.942    
      END DO                                                               SJT1F304.943    
C                                                                          UMSLAB1A.102    
C     3. CALCULATE ADVECTION OF SLAB OCEAN TEMPERATURE                     SJT1F304.944    
C (and diagnose heating rate)                                              SJC1F400.111    
      IF (L_SLBADV) THEN                                                   SJT1F304.945    
      do j=1,l1                                                            SJC1F400.112    
        twork(j) = slabtemp(j)                                             SJC1F400.113    
      end do                                                               SJC1F400.114    
        CALL SLAB_T_UV(                                                    SJT1F304.946    
*CALL ARGOINDX                                                             SDR1F404.104    
     &  L1,L2,ICOLS,JROWS,JROWSM1,LAND                                     SJT1F304.947    
     & ,LGLOBAL,u_field,dz1                                                SJC1F400.115    
     & ,DELTA_LAT,DELTA_LONG,BASE_LAT,DT                                   SJT1F304.949    
     & ,COS_U_LATITUDE,COS_P_LATITUDE                                      SJT1F304.950    
     & ,SEC_P_LATITUDE,SIN_U_LATITUDE                                      SJT1F304.951    
     & ,UCURRENT,VCURRENT                                                  SJT1F304.952    
     & ,SLABTEMP                                                           SJT1F304.953    
     & ,OPENSEA                                                            SJT1F304.954    
     & ,wtsfc                                                              SJC1F400.116    
     & ,wtbase                                                             SJC1F400.117    
     &         )                                                           SJT1F304.955    
      do j=1,l1                                                            SJC1F400.118    
        dtadv(j) = ( slabtemp(j)-twork(j) ) / dt                           SJC1F400.119    
      end do                                                               SJC1F400.120    
      ENDIF                                                                SJT1F304.956    
C                                                                          UMSLAB1A.106    
C                                                                          UMSLAB1A.110    
C        USE TEMPORARY SPACE TO HOLD SLABTEMP-TCLIMC FOR USE               SJT1F304.957    
C        IN DIFFUSION SUBROUTINE                                           SJT1F304.958    
C                                                                          SJT1F304.959    
      DO J=1,L2                                                            SJT1F304.960    
        IF ( .NOT. CALIB ) THEN                                            SJT1F304.961    
          SLABD(J) = SLABTEMP(J) - TCLIMC(J)                               SJT1F304.962    
        ENDIF                                                              SJT1F304.963    
      END DO                                                               SJT1F304.964    
C                                                                          SJT1F304.965    
C                                                                          SJT1F304.966    
C     4. CALCULATE DEL2 DIFFUSION OF SLAB TEMPERATURES                     SJT1F304.967    
C        (DIFFUSE SLABTEMP-TCLIMC - SO DONT CALL IN                        SJT1F304.968    
C         CALIBRATION EXPERIMENT)                                          SJT1F304.969    
C                                                                          SJT1F304.970    
        IF ( .NOT. CALIB) THEN                                             SJT1F304.971    
         IF ( AH .GT. 0.0) THEN                                            SJT1F304.972    
          AHDT= AH * DT                                                    SJT1F304.973    
          CALL SLABDIFF(SLABD,                                             SJT1F304.974    
     +                  OPENSEA,                                           SJT1F304.975    
     +                  L1,L2,                                             SJT1F304.976    
     +                  JROWS,ICOLS,                                       SJT1F304.977    
     +                  AHDT,                                              SJT1F304.978    
     +                  DELTA_LONG,DELTA_LAT,BASE_LAT,                     SJT1F304.979    
     +                  COS_P_LATITUDE,COS_U_LATITUDE,SEC_P_LATITUDE)      SJT1F304.980    
         ENDIF                                                             SJT1F304.981    
        ENDIF                                                              SJT1F304.982    
C                                                                          SJT1F304.983    
C     RECALCULATE SLABTEMP IN NON-CALIBRATION EXPERIMENT                   SJT1F304.984    
C     PUT DIFFUSION INCREMENT INTO NEW STORE TO ADD TO HEAT CONV           SJT1F304.985    
C                                                                          SJT1F304.986    
C     5. IF MIXED LAYER TEMPERATURE IS BELOW FREEZING THEN ICE FORMATION   SJT1F304.987    
C        IS JUST STARTING. CALCULATE THE HEAT DEFICIT THAT ARISES          UMSLAB1A.112    
C        FROM THE TEMPERATURE CHANGE AND PASS TO SLABICE THROUGH           UMSLAB1A.113    
C        CARYHEAT(J) FOR ICE FORMATION TO OCCUR. SET SLABTEMP TO           UMSLAB1A.114    
C        TFREEZE                                                           UMSLAB1A.115    
C First coupled thermodynamics                                             SJT1F304.988    
C                                                                          SJT1F304.989    
      IF (l_therm) then                                                    SJT1F304.990    
      DO J = 1,L2                                                          SJT1F304.991    
        IF ( .NOT. CALIB) THEN                                             SJT1F304.992    
          DTDIFF(J)   = SLABD(J) - SLABTEMP(J) + TCLIMC(J)                 SJC1F400.121    
          ADJHCONV(J) = ADJHCONV(J) + DTDIFF(J) * DTTOFLUX                 SJC1F400.122    
          dtdiff(j) = dtdiff(j) / dt                                       SJC1F400.123    
        ENDIF                                                              SJT1F304.995    
C                                                                          SJT1F304.996    
        IF ( .NOT.LAND(J) ) THEN                                           SJT1F304.997    
C                                                                          SJT1F304.998    
          IF ( SLABTEMP(J) .LT. TFREEZE ) THEN                             SJC1F400.124    
             CARYHEAT(J) = SLABTEMP(J) - TFREEZE                           SJC1F400.125    
             CARYHEAT(J) = (CARYHEAT(J) * RHOCP * DZ1) / DT                SJC1F400.126    
             SLABTEMP(J) = TFREEZE                                         SJC1F400.127    
             NEWICE(J) = (.NOT. ICY(J))                                    SJC1F400.128    
          ENDIF                                                            SJC1F400.129    
          IF ( CALIB ) THEN                                                SJT1F304.999    
            IF ( l_idyn .or. l_idrif ) THEN                                SJT1F304.1000   
              ADJHCONV(J) = ( TCLIMC(J) -                                  SJT1F304.1001   
     +                    SLABTEMP(J) ) * DTTOFLUX                         SJT1F304.1002   
            ELSE                                                           SJT1F304.1003   
              ADJHCONV(J) = ( ( TCLIMC(J) - DEPTHTOK * HCLIM(J) ) -        SJT1F304.1004   
     +                    SLABTEMP(J) ) * DTTOFLUX                         SJT1F304.1005   
            END IF                                                         SJT1F304.1006   
          END IF                                                           SJT1F304.1007   
C                                                                          SJT1F304.1008   
          SLABTEMP(J) = SLABTEMP (J) + ADJHCONV(J) * FLUXTODT              SJT1F304.1009   
C                                                                          UMSLAB1A.116    
        ENDIF                                                              UMSLAB1A.122    
C End J loop.                                                              SJT1F304.1011   
      END DO                                                               SJT1F304.1012   
C Then original thermodynamic treatment                                    SJT1F304.1013   
      ELSE                                                                 SJT1F304.1014   
      DO J = 1,L2                                                          SJT1F304.1015   
        IF ( .NOT. CALIB) THEN                                             SJT1F304.1016   
          DTDIFF(J)   = SLABD(J) - SLABTEMP(J) + TCLIMC(J)                 SJC1F400.130    
          ADJHCONV(J) = ADJHCONV(J) + DTDIFF(J) * DTTOFLUX                 SJC1F400.131    
          dtdiff(j) = dtdiff(j) / dt                                       SJC1F400.132    
        ENDIF                                                              SJT1F304.1019   
C                                                                          UMSLAB1A.123    
        IF ( OPENSEA(J) ) THEN                                             SJT1F304.1020   
C                                                                          SJT1F304.1021   
          IF ( CALIB ) THEN                                                SJT1F304.1022   
            ADJHCONV(J) = ( ( TCLIMC(J) - DEPTHTOK * HCLIM(J) ) -          SJT1F304.1023   
     +                  SLABTEMP(J) ) * DTTOFLUX                           SJT1F304.1024   
          END IF                                                           SJT1F304.1025   
C                                                                          SJT1F304.1026   
          SLABTEMP(J) = SLABTEMP (J) + ADJHCONV(J) * FLUXTODT              SJT1F304.1027   
C                                                                          SJT1F304.1028   
          IF ( SLABTEMP(J) .LT. TFREEZE ) THEN                             SJT1F304.1029   
             CARYHEAT(J) = SLABTEMP(J) - TFREEZE                           SJT1F304.1030   
             CARYHEAT(J) = (CARYHEAT(J) * RHOCP * DZ1) / DT                SJT1F304.1031   
             SLABTEMP(J) = TFREEZE                                         SJT1F304.1032   
             NEWICE(J) = (.NOT. ICY(J))                                    SJT1F304.1033   
          ENDIF                                                            SJT1F304.1034   
        ENDIF                                                              SJT1F304.1035   
C End J loop.                                                              SJT1F304.1036   
      END DO                                                               UMSLAB1A.124    
C End IF block for coupled thermodynamics.                                 SJT1F304.1037   
      ENDIF                                                                SJT1F304.1038   
      RETURN                                                               UMSLAB1A.125    
      END                                                                  UMSLAB1A.126    
*ENDIF                                                                     UMSLAB1A.127