*IF DEF,OCEAN,AND,DEF,SEAICE                                               CU_TO_UV.2      
C ******************************COPYRIGHT******************************    GTS2F400.1531   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.1532   
C                                                                          GTS2F400.1533   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.1534   
C restrictions as set forth in the contract.                               GTS2F400.1535   
C                                                                          GTS2F400.1536   
C                Meteorological Office                                     GTS2F400.1537   
C                London Road                                               GTS2F400.1538   
C                BRACKNELL                                                 GTS2F400.1539   
C                Berkshire UK                                              GTS2F400.1540   
C                RG12 2SZ                                                  GTS2F400.1541   
C                                                                          GTS2F400.1542   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.1543   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.1544   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.1545   
C Modelling at the above address.                                          GTS2F400.1546   
C ******************************COPYRIGHT******************************    GTS2F400.1547   
C                                                                          GTS2F400.1548   
C*LL                                                                       CU_TO_UV.3      
CLL   SUBROUTINE CU_TO_UV                                                  CU_TO_UV.4      
CLL   -------------------                                                  CU_TO_UV.5      
CLL                                                                        CU_TO_UV.6      
CLL   DYNAMIC SEA ICE MODEL SUBROUTINE TO INTERPOLATE FIELDS ON            CU_TO_UV.7      
CLL   ARAKAWA C GRID U POINTS TO ARAKAWA B GRID U POINTS.                  CU_TO_UV.8      
CLL                                                                        CU_TO_UV.9      
CLL   IT CAN BE COMPILED BY CFT77, BUT DOES NOT CONFORM TO ANSI            CU_TO_UV.10     
CLL   FORTRAN77 STANDARDS, BECAUSE OF THE INLINE COMMENTS.                 CU_TO_UV.11     
CLL                                                                        CU_TO_UV.12     
CLL   ALL QUANTITIES IN THIS ROUTINE ARE IN S.I. UNITS UNLESS              CU_TO_UV.13     
CLL   OTHERWISE STATED.                                                    CU_TO_UV.14     
CLL                                                                        CU_TO_UV.15     
CLL   WRITTEN BY J.F.THOMSON (07/05/93)                                    CU_TO_UV.16     
CLL                                                                        CU_TO_UV.17     
CLL  MODEL            MODIFICATION HISTORY:                                CU_TO_UV.18     
CLL VERSION  DATE                                                          CU_TO_UV.19     
!     3.5    16.01.95   Remove *IF dependency. R.Hill                      ORH1F305.4715   
CLL                                                                        CU_TO_UV.20     
CLL                                                                        CU_TO_UV.21     
CLL   THIS ROUTINE FORMS PART OF SYSTEM COMPONENT P4.                      CU_TO_UV.22     
CLL                                                                        CU_TO_UV.23     
CLL   ADHERES TO THE STANDARDS OF DOCUMENTATION PAPER 4, VERSION 1.        CU_TO_UV.24     
CLL                                                                        CU_TO_UV.25     
CLLEND---------------------------------------------------------------      CU_TO_UV.26     
C*L                                                                        CU_TO_UV.27     

      subroutine cu_to_uv(                                                 ,1CU_TO_UV.28     
*CALL ARGOINDX                                                             ORH7F402.218    
     & data_cu                                                             CU_TO_UV.29     
     &,data_uv                                                             CU_TO_UV.30     
     &,jmtm1                                                               CU_TO_UV.31     
     &,imt                                                                 CU_TO_UV.32     
     & )                                                                   CU_TO_UV.33     
C                                                                          CU_TO_UV.34     
      implicit none                                                        CU_TO_UV.35     
*CALL CNTLOCN                                                              ORH1F305.4716   
*CALL TYPOINDX                                                             ORH7F402.219    
C                                                                          CU_TO_UV.36     
      integer                                                              CU_TO_UV.37     
     & jmtm1          ! in number of rows on velocity grid.                CU_TO_UV.38     
     &,imt            ! in number of points in each row.                   CU_TO_UV.39     
      real                                                                 CU_TO_UV.40     
     & data_cu(imt,jmtm1) ! in  data on C grid.                            CU_TO_UV.41     
     &,data_uv(imt,jmtm1) ! out data on B grid.                            CU_TO_UV.42     
C                                                                          CU_TO_UV.43     
C variables local to this subroutine are now defined                       CU_TO_UV.44     
C                                                                          CU_TO_UV.45     
      integer                                                              CU_TO_UV.46     
     & i                                                                   CU_TO_UV.47     
     &,j                                                                   CU_TO_UV.48     
C*                                                                         CU_TO_UV.49     
C start executable code                                                    CU_TO_UV.50     
*IF DEF,MPP                                                                ORH4F402.182    
C=====================================================================     ORH4F402.183    
C CALL TO SWAPBOUNDS FOR HALO UPDATE IN MPP VERSION                        ORH4F402.184    
C=====================================================================     ORH4F402.185    
                                                                           ORH4F402.186    
      CALL SWAPBOUNDS(DATA_CU,IMT,JMTM1,O_EW_HALO,O_NS_HALO,1)             ORH4F402.187    
                                                                           ORH4F402.188    
*ENDIF                                                                     ORH4F402.189    
                                                                           ORH4F402.190    
C                                                                          CU_TO_UV.51     
C Interpolate velocity field.                                              CU_TO_UV.52     
C                                                                          CU_TO_UV.53     
       do j=j_2,j_jmtm1                                                    ORH3F402.45     
        do i=1,imt                                                         CU_TO_UV.55     
          data_uv(i,j) = ( data_cu(i,j-1) + data_cu(i,j) ) * 0.5           CU_TO_UV.56     
        end do                                                             CU_TO_UV.57     
      end do                                                               CU_TO_UV.58     
*IF DEF,MPP                                                                ORH3F402.46     
       IF (JST.EQ.1) THEN                                                  ORH3F402.47     
*ENDIF                                                                     ORH3F402.48     
      do i=1,imt                                                           CU_TO_UV.59     
        data_uv(i,1)   = data_cu(i,1)                                      CU_TO_UV.60     
      end do                                                               CU_TO_UV.61     
*IF DEF,MPP                                                                ORH3F402.49     
       ENDIF                                                               ORH3F402.50     
*ENDIF                                                                     ORH3F402.51     
      IF (L_OCYCLIC) THEN                                                  ORH1F305.4717   
C                                                                          CU_TO_UV.63     
C Make cyclic if necessary.                                                CU_TO_UV.64     
C                                                                          CU_TO_UV.65     
       do j=j_1,j_jmtm1                                                    ORH3F402.52     
        data_uv(1,j)   = data_uv(imt-1,j)                                  CU_TO_UV.67     
        data_uv(imt,j) = data_uv(2,j)                                      CU_TO_UV.68     
      end do                                                               CU_TO_UV.69     
      ENDIF                                                                ORH1F305.4718   
C                                                                          CU_TO_UV.71     
      return                                                               CU_TO_UV.72     
      end                                                                  CU_TO_UV.73     
*ENDIF                                                                     CU_TO_UV.74