*IF DEF,C72_1A,AND,DEF,ATMOS,AND,DEF,OCEAN                                 GLW1F404.15     
C ******************************COPYRIGHT******************************    GTS2F400.1585   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.1586   
C                                                                          GTS2F400.1587   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.1588   
C restrictions as set forth in the contract.                               GTS2F400.1589   
C                                                                          GTS2F400.1590   
C                Meteorological Office                                     GTS2F400.1591   
C                London Road                                               GTS2F400.1592   
C                BRACKNELL                                                 GTS2F400.1593   
C                Berkshire UK                                              GTS2F400.1594   
C                RG12 2SZ                                                  GTS2F400.1595   
C                                                                          GTS2F400.1596   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.1597   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.1598   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.1599   
C Modelling at the above address.                                          GTS2F400.1600   
C ******************************COPYRIGHT******************************    GTS2F400.1601   
C                                                                          GTS2F400.1602   
CLL   SUBROUTINE CYCLICBC ---------------------------------------------    CYCLCBC1.3      
CLL   -------------------                                                  CYCLCBC1.4      
CLL                                                                        CYCLCBC1.5      
CLL   THIS ROUTINE COPIES THE FIRST TWO COLUMNS OF A TWO-DIMENSIONAL       CYCLCBC1.6      
CLL   ARRAY TO THE LAST TWO COLUMNS, OVERWRITING ANY DATA THAT HAPPEN      CYCLCBC1.7      
CLL   TO BE IN THOSE COLUMNS. THE MOTIVATION FOR THIS IS THAT THE OCEAN    CYCLCBC1.8      
CLL   MODEL HAS TWO SUCH DUPLICATE COLUMNS WHEN IT IS WORKING WITH A       CYCLCBC1.9      
CLL   DOMAIN WITH CYCLICALLY CONTINUOUS EAST-WEST BOUNDARIES (SUCH AS      CYCLCBC1.10     
CLL   A GLOBAL MODEL OR A FRAM-TYPE CONFIGURATION).                        CYCLCBC1.11     
CLL   THIS ROUTINE IS CALLED FROM TRANSA2O.                                CYCLCBC1.12     
CLL                                                                        CYCLCBC1.13     
CLL   ROUTINE WRITTEN BY D.L.ROBERTS                                       CYCLCBC1.14     
CLL                                                                        CYCLCBC1.15     
CLL  Model            Modification history from model version 3.0:         CYCLCBC1.16     
CLL version  Date                                                          CYCLCBC1.17     
CLL                                                                        CYCLCBC1.18     
CLL Programming standard :                                                 CYCLCBC1.19     
CLL   This routine can be compiled by cft77 but does not conform to        CYCLCBC1.20     
CLL   Fortran77 standards, because of the inline comments. it follows      CYCLCBC1.21     
CLL   version 1 of Documentation paper no. 3.                              CYCLCBC1.22     
CLL                                                                        CYCLCBC1.23     
CLL Logical components covered : S194                                      CYCLCBC1.24     
CLL                                                                        CYCLCBC1.25     
CLL Project task : D2                                                      CYCLCBC1.26     
CLL                                                                        CYCLCBC1.27     
CLL External documentation: Unified Model documentation paper No:          CYCLCBC1.28     
CLL                         Version:                                       CYCLCBC1.29     
CLL                                                                        CYCLCBC1.30     
CLLEND -----------------------------------------------------------------   CYCLCBC1.31     
C                                                                          CYCLCBC1.32     

      SUBROUTINE CYCLICBC(ARRAY,ICOLS,JROWS)                                14CYCLCBC1.33     
C     --------------------------------------                               CYCLCBC1.34     
C                                                                          CYCLCBC1.35     
      IMPLICIT NONE                                                        CYCLCBC1.36     
C*L                                                                        CYCLCBC1.37     
      INTEGER ICOLS           ! IN  TOTAL NUMBER OF COLUMNS IN FIELD,      CYCLCBC1.38     
     +                        !     INCLUDING THE DUPLICATED COLUMNS.      CYCLCBC1.39     
      INTEGER JROWS           ! IN  NUMBER OF ROWS IN FIELD.               CYCLCBC1.40     
      REAL ARRAY(ICOLS,JROWS) ! IN OUT ARRAY TO BE OPERATED ON.            CYCLCBC1.41     
C*                                                                         CYCLCBC1.42     
      INTEGER                                                              CYCLCBC1.43     
     + ICOLSM1,               !   THE PENULTIMATE COLUMN.                  CYCLCBC1.44     
     + J                      !   LOOP COUNTER.                            CYCLCBC1.45     
C                                                                          CYCLCBC1.46     
      ICOLSM1 = ICOLS - 1                                                  CYCLCBC1.47     
C                                                                          CYCLCBC1.48     
      DO 100 J = 1,JROWS                                                   CYCLCBC1.49     
        ARRAY(ICOLSM1,J) = ARRAY(1,J)                                      CYCLCBC1.50     
        ARRAY(ICOLS,J) = ARRAY(2,J)                                        CYCLCBC1.51     
100   CONTINUE                                                             CYCLCBC1.52     
C                                                                          CYCLCBC1.53     
      RETURN                                                               CYCLCBC1.54     
      END                                                                  CYCLCBC1.55     
*ENDIF                                                                     CYCLCBC1.56