*IF DEF,OCEAN                                                              @DYALLOC.4595   
C ******************************COPYRIGHT******************************    GTS2F400.7057   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.7058   
C                                                                          GTS2F400.7059   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.7060   
C restrictions as set forth in the contract.                               GTS2F400.7061   
C                                                                          GTS2F400.7062   
C                Meteorological Office                                     GTS2F400.7063   
C                London Road                                               GTS2F400.7064   
C                BRACKNELL                                                 GTS2F400.7065   
C                Berkshire UK                                              GTS2F400.7066   
C                RG12 2SZ                                                  GTS2F400.7067   
C                                                                          GTS2F400.7068   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.7069   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.7070   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.7071   
C Modelling at the above address.                                          GTS2F400.7072   
C ******************************COPYRIGHT******************************    GTS2F400.7073   
C                                                                          GTS2F400.7074   

      SUBROUTINE OCN_FRST(                                                  1OCN_FRST.2      
!     Modification History:                                                ORH1F305.5436   
!   Version    Date     Details                                            ORH1F305.5437   
!   -------  -------    ------------------------------------------         ORH1F305.5438   
!     3.5    16.01.95   Remove *IF dependency. R.Hill                      ORH1F305.5439   
CLL   4.4    15/06/97  Changes to allow for a mixing timestep to be        ORL1F404.736    
CLL                    used with the free surface solution. R.Lenton       ORL1F404.737    
CLL                                                                        ORL1F404.738    
*CALL ARGSIZE                                                              @DYALLOC.4596   
*CALL ARGOCALL                                                             @DYALLOC.4597   
*CALL ARGOINDX                                                             ORH7F402.92     
     & ITT,TTSEC,SWLDEG                                                    ORH6F402.66     
     &,P,PB,PTD,PTDB                                                       OCN_FRST.5      
     &,ETA,ETAB,UBT,UBTBBT,VBT,VBTBBT                                      ORL1F404.739    
     & )                                                                   OCN_FRST.7      
C                                                                          RH141293.30     
      IMPLICIT NONE                                                        RH141293.31     
C                                                                          RH141293.32     
      INTEGER I,             ! Grid point index (Zonal)                    RH141293.33     
     &     J                 ! Grid point index (Meridional)               RH141293.34     
C                                                                          RH141293.35     
*CALL OARRYSIZ                                                             ORH6F401.17     
*CALL TYPSIZE                                                              @DYALLOC.4598   
*CALL TYPOINDX                                                             PXORDER.29     
*CALL TYPOCALL                                                             @DYALLOC.4599   
*CALL UMSCALAR                                                             OCN_FRST.10     
*CALL CNTLOCN                                                              ORH1F305.5440   
                                                                           OCN_FRST.12     
      REAL                                                                 OCN_FRST.13     
     & TTSEC,SWLDEG                                                        ORH6F402.67     
     &,P(IMT_STREAM,JMT_STREAM),PB(IMT_STREAM,JMT_STREAM)                  ORH1F305.5442   
     &,PTD(IMT_STREAM,JMT_STREAM),PTDB(IMT_STREAM,JMT_STREAM)              ORH1F305.5443   
     &,ETA(IMT_FSF,JMT_FSF),ETAB(IMT_FSF,JMT_FSF)                          ORL1F404.740    
     &,UBT(IMT_FSF,JMTM1_FSF),UBTBBT(IMT_FSF,JMTM1_FSF)                    ORL1F404.741    
     &,VBT(IMT_FSF,JMTM1_FSF),VBTBBT(IMT_FSF,JMTM1_FSF)                    ORL1F404.742    
                                                                           ORL1F404.743    
      INTEGER                                                              OCN_FRST.18     
     & ITT                                                                 OCN_FRST.19     
C                                                                          OCN_FRST.20     
C---------------------------------------------------------------------     OCN_FRST.21     
C  UPDATE PERMUTING DISC I/O UNITS                                         OCN_FRST.22     
C---------------------------------------------------------------------     OCN_FRST.23     
C                                                                          OCN_FRST.24     
      NDISKB= MOD(ITT+2,3)+1                                               OCN_FRST.25     
      NDISK = MOD(ITT+0,3)+1                                               OCN_FRST.26     
      NDISKA= MOD(ITT+1,3)+1                                               OCN_FRST.27     
C                                                                          OCN_FRST.28     
C---------------------------------------------------------------------     OCN_FRST.29     
C  ADJUST VARIOUS QUANTITIES FOR MIXING TIMESTEP                           OCN_FRST.30     
C---------------------------------------------------------------------     OCN_FRST.31     
C                                                                          OCN_FRST.32     
      MIX=0                                                                OCN_FRST.33     
      C2DTTS=2.0*DTTS                                                      OCN_FRST.34     
      C2DTUV=2.0*DTUV                                                      OCN_FRST.35     
      IF ((.NOT.(L_OFREESFC)).AND.(.NOT.(L_ONOCLIN))) THEN                 ORL1F404.744    
         C2DTSF=2.0*DTSF                                                   ORH1F305.5445   
      ENDIF                                                                ORH1F305.5446   
      IF(MOD(ITT,NMIX).EQ.1) THEN                                          OCN_FRST.39     
        MIX=1                                                              OCN_FRST.40     
        C2DTTS=DTTS                                                        OCN_FRST.41     
        C2DTUV=DTUV                                                        OCN_FRST.42     
                                                                           ORL1F404.745    
        IF ((.NOT.(L_OFREESFC)).AND.(.NOT.(L_ONOCLIN))) THEN               ORL1F404.746    
           C2DTSF=DTSF                                                     ORH1F305.5448   
           DO J=J_1,J_JMT                                                  ORH3F402.232    
              DO I=1,IMT                                                   ORH1F305.5450   
                 PB(I,J)=P(I,J)                                            ORH1F305.5451   
              ENDDO     ! OVER I                                           ORH1F305.5452   
           ENDDO        ! OVER J                                           ORH1F305.5453   
        ELSE IF ((L_OFREESFC).AND.(.NOT.(L_ONOCLIN))) THEN                 ORL1F404.747    
C                                                                          ORL1F404.748    
C  CREATE FREE SURFACE ARRAYS FOR A MIXING TIMESTEP. NOTE THAT BECAUSE     ORL1F404.749    
C  THE FREE SURFACE SOLUTION HAS SMALL BAROTROPIC TIMESTEPS INSIDE THE     ORL1F404.750    
C  BAROCLINIC TIMESTEPS THE TIMESTEPPER C2DTBT CANNOT BE SET HERE.         ORL1F404.751    
C  C2DTBT IS INSTEAD SET TO DTBT FOR THE FIRST BAROTROPIC TIMESTEP         ORL1F404.752    
C  ONLY, INSIDE ROUTINE TROPIC.                                            ORL1F404.753    
C                                                                          ORL1F404.754    
          DO J=J_1,J_JMTM1                                                 ORL1F404.755    
            DO I=1,IMT                                                     ORL1F404.756    
              UBTBBT(I,J)=UBT(I,J)                                         ORL1F404.757    
              VBTBBT(I,J)=VBT(I,J)                                         ORL1F404.758    
            ENDDO        ! over i                                          ORL1F404.759    
          ENDDO          ! over j                                          ORL1F404.760    
                                                                           ORL1F404.761    
          DO J=J_1,J_JMT                                                   ORL1F404.762    
            DO I=1,IMT                                                     ORL1F404.763    
              ETAB(I,J)=ETA(I,J)                                           ORL1F404.764    
            ENDDO        ! over i                                          ORL1F404.765    
          ENDDO          ! over j                                          ORL1F404.766    
        ENDIF                                                              ORH1F305.5454   
      ENDIF                                                                OCN_FRST.50     
 182  CONTINUE                                                             OCN_FRST.51     
      RETURN                                                               OCN_FRST.52     
      END                                                                  OCN_FRST.53     
*ENDIF                                                                     @DYALLOC.4600