*IF DEF,CONTROL                                                            OCNARYPT.2      
C ******************************COPYRIGHT******************************    GTS2F400.6967   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.6968   
C                                                                          GTS2F400.6969   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.6970   
C restrictions as set forth in the contract.                               GTS2F400.6971   
C                                                                          GTS2F400.6972   
C                Meteorological Office                                     GTS2F400.6973   
C                London Road                                               GTS2F400.6974   
C                BRACKNELL                                                 GTS2F400.6975   
C                Berkshire UK                                              GTS2F400.6976   
C                RG12 2SZ                                                  GTS2F400.6977   
C                                                                          GTS2F400.6978   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.6979   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.6980   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.6981   
C Modelling at the above address.                                          GTS2F400.6982   
C ******************************COPYRIGHT******************************    GTS2F400.6983   
C                                                                          GTS2F400.6984   

      SUBROUTINE OCNARYPT (                                                 1SF011193.74     
*CALL ARGSIZE                                                              SF011193.75     
     *LEN_ARRAY,ICODE,CMESSAGE)                                            SF011193.76     
CLL                                                                        OCNARYPT.4      
CLL   Subroutine OCNARYPT                                                  OCNARYPT.5      
CLL                                                                        OCNARYPT.6      
CLL   Purpose: set pointers to start positions in ocean "super arrays"     OCNARYPT.7      
CLL            which are used for dynamic allocation of memory.            OCNARYPT.8      
CLL                                                                        OCNARYPT.9      
CLL   The arrays involved are in COMDECKs TYPOCFLW, TYPOCINC, TYPOCONE     OCNARYPT.10     
CLL                                       TYPOCFLD, TYPOCFIL               OCNARYPT.11     
CLL   If any arrays are added to, removed from, or have changed lengths    OCNARYPT.12     
CLL   this routine must be changed as well.                                OCNARYPT.13     
CLL                                                                        OCNARYPT.14     
CLL   Their dimensions are calculated from primary model dimensions        OCNARYPT.15     
CLL   which are stored in a COMDECK called from TYPOCPAR.                  OCNARYPT.16     
CLL                                                                        OCNARYPT.17     
CLL   Author: S J Foreman, 15 June 1993                                    OCNARYPT.18     
CLL   Version 1.0: introduction of dynamic allocation for ocean arrays.    OCNARYPT.19     
CLL 3.4  16/6/94 : Change CHARACTER*(*) to CHARACTER*(80) N.Farnon         ANF0F304.32     
CLL 4.4  15/06/97 : Introduced new pointers used by the delplus            ORL1F404.135    
CLL                 operator in the Free Surface solution.  R.Lenton       ORL1F404.136    
CLL  4.5  14/08/97  Removed the calculations for the pointers..            OSI1F405.45     
CLL                 jocp_tbound_n,..  C.G. Jones                           OSI1F405.46     
CLL  4.5  3/11/98  added calculations for pointers jocp_csrjp ...          OOM3F405.51     
CLL                M. Roberts                                              OOM3F405.52     
CLL                                                                        OCNARYPT.20     
      IMPLICIT NONE                                                        OCNARYPT.21     
C                                                                          OCNARYPT.22     
C     Define parameters to size the model.                                 OCNARYPT.23     
C                                                                          OCNARYPT.24     
*CALL TYPOCPAR                                                             OCNARYPT.25     
*CALL COMOCBAS                                                             OCNARYPT.26     
*CALL COMOCASZ                                                             OCNARYPT.27     
C                                                                          OCNARYPT.28     
C     Pointers to arrays are in COMMON                                     OCNARYPT.29     
C                                                                          OCNARYPT.30     
*CALL TYPOCDPT                                                             OCNARYPT.31     
*CALL COCNINDX                                                             ORH6F402.81     
C                                                                          OCNARYPT.32     
C   DECLARE LOGICALS                                                       ORL1F404.137    
*CALL CNTLOCN                                                              ORL1F404.138    
C                                                                          ORL1F404.139    
                                                                           ORL1F404.140    
C     Define arguments                                                     OCNARYPT.33     
C                                                                          OCNARYPT.34     
      INTEGER                                                              OCNARYPT.35     
     & LEN_ARRAY          ! OUT Length of ocean super-array                OCNARYPT.36     
     &,ICODE              ! OUT Error code                                 OCNARYPT.37     
C                                                                          OCNARYPT.38     
      CHARACTER*(80) CMESSAGE ! OUT Error message                          ANF0F304.33     
C                                                                          OCNARYPT.40     
C                                                                          OCNARYPT.41     
C     Declare local variables                                              OCNARYPT.42     
C                                                                          OCNARYPT.43     
      INTEGER                                                              OCNARYPT.44     
     & icount         ! Next free position in super array                  OCNARYPT.45     
C                                                                          OCNARYPT.46     
C Initialize error code and message                                        OCNARYPT.47     
      ICODE = 0                                                            OCNARYPT.48     
      CMESSAGE = ' '                                                       OCNARYPT.49     
C                                                                          OCNARYPT.50     
C     Add lengths in turn.                                                 OCNARYPT.51     
C                                                                          OCNARYPT.52     
      icount=1                                                             OCNARYPT.53     
C                                                                          OCNARYPT.54     
C==================== Pointers for COMDECK TYPOCFLW ==============         OCNARYPT.55     
C                                                                          OCNARYPT.56     
C                                                                          OCNARYPT.65     
      jocp_kar=icount                                                      OCNARYPT.66     
      icount=icount+KM                                                     OCNARYPT.67     
      jocp_isz=icount                                                      OCNARYPT.81     
      icount=icount+JMT*LSEG                                               OCNARYPT.82     
C                                                                          OCNARYPT.83     
      jocp_iez=icount                                                      OCNARYPT.84     
      icount=icount+JMT*LSEG                                               OCNARYPT.85     
C                                                                          OCNARYPT.86     
C                                                                          ORL1F404.141    
        jocp_ise=icount                                                    ORL1F404.142    
        icount=icount+JMT*LSEGFS                                           ORL1F404.143    
C                                                                          ORL1F404.144    
        jocp_iee=icount                                                    ORL1F404.145    
        icount=icount+JMT*LSEGFS                                           ORL1F404.146    
C                                                                          ORL1F404.147    
        jocp_isu=icount                                                    ORL1F404.148    
        icount=icount+JMTM1*LSEGFS                                         ORL1F404.149    
C                                                                          ORL1F404.150    
        jocp_ieu=icount                                                    ORL1F404.151    
        icount=icount+JMTM1*LSEGFS                                         ORL1F404.152    
C                                                                          ORL1F404.153    
        jocp_lse=icount                                                    ORL1F404.154    
        icount=icount+JMT                                                  ORL1F404.155    
C                                                                          ORL1F404.156    
        jocp_lsu=icount                                                    ORL1F404.157    
        icount=icount+JMTM1                                                ORL1F404.158    
      jocp_iseg=icount                                                     OCNARYPT.87     
      icount=icount+NISLE                                                  OCNARYPT.88     
C                                                                          OCNARYPT.89     
      jocp_istf=icount                                                     OCNARYPT.90     
      icount=icount+NJTBFT*LSEGF*KM                                        OCNARYPT.91     
C                                                                          OCNARYPT.92     
      jocp_ietf=icount                                                     OCNARYPT.93     
      icount=icount+NJTBFT*LSEGF*KM                                        OCNARYPT.94     
C                                                                          OCNARYPT.95     
      jocp_isuf=icount                                                     OCNARYPT.96     
      icount=icount+NJTBFU*LSEGF*KM                                        OCNARYPT.97     
C                                                                          OCNARYPT.98     
      jocp_ieuf=icount                                                     OCNARYPT.99     
      icount=icount+NJTBFU*LSEGF*KM                                        OCNARYPT.100    
C                                                                          OCNARYPT.101    
      jocp_iszf=icount                                                     OCNARYPT.102    
      icount=icount+NJTBFU*LSEGF                                           OCNARYPT.103    
C                                                                          OCNARYPT.104    
      jocp_iezf=icount                                                     OCNARYPT.105    
      icount=icount+NJTBFU*LSEGF                                           OCNARYPT.106    
C                                                                          OCNARYPT.107    
      jocp_spsin=icount                                                    OCNARYPT.108    
      icount=icount+IMT                                                    OCNARYPT.109    
C                                                                          OCNARYPT.110    
      jocp_spcos=icount                                                    OCNARYPT.111    
      icount=icount+IMT                                                    OCNARYPT.112    
C                                                                          OCNARYPT.113    
C================= End of pointers for COMDECK TYPOCFLW                    OCNARYPT.122    
C                                                                          OCNARYPT.123    
C================= Pointers for COMDECK TYPOCONE =======================   OCNARYPT.124    
      jocp_dxt=icount                                                      OCNARYPT.125    
         icount=icount+IMT                                                 OCNARYPT.126    
      jocp_dxtr=icount                                                     OCNARYPT.127    
         icount=icount+IMT                                                 OCNARYPT.128    
      jocp_dxt2r=icount                                                    OCNARYPT.129    
         icount=icount+IMT                                                 OCNARYPT.130    
      jocp_dxu=icount                                                      OCNARYPT.131    
         icount=icount+IMT                                                 OCNARYPT.132    
      jocp_dxur=icount                                                     OCNARYPT.133    
         icount=icount+IMT                                                 OCNARYPT.134    
      jocp_dxu2r=icount                                                    OCNARYPT.135    
         icount=icount+IMT                                                 OCNARYPT.136    
      jocp_dxu4r=icount                                                    OCNARYPT.137    
         icount=icount+IMT                                                 OCNARYPT.138    
      jocp_dxt4r=icount                                                    OCNARYPT.139    
         icount=icount+IMT                                                 OCNARYPT.140    
      jocp_dyt=icount                                                      OCNARYPT.141    
         icount=icount+JMT                                                 OCNARYPT.142    
      jocp_dytr=icount                                                     OCNARYPT.143    
         icount=icount+JMT                                                 OCNARYPT.144    
      jocp_dyt2r=icount                                                    OCNARYPT.145    
         icount=icount+JMT                                                 OCNARYPT.146    
      jocp_dyu=icount                                                      OCNARYPT.147    
         icount=icount+JMT                                                 OCNARYPT.148    
      jocp_dyur=icount                                                     OCNARYPT.149    
         icount=icount+JMT                                                 OCNARYPT.150    
      jocp_dyu2r=icount                                                    OCNARYPT.151    
         icount=icount+JMT                                                 OCNARYPT.152    
      jocp_dyu2rj=icount                                                   ORH3F403.320    
         icount=icount+1                                                   ORH3F403.321    
      jocp_dyu4r=icount                                                    OCNARYPT.153    
         icount=icount+JMT                                                 OCNARYPT.154    
      jocp_dyt4r=icount                                                    OCNARYPT.155    
         icount=icount+JMT                                                 OCNARYPT.156    
      jocp_cs=icount                                                       OCNARYPT.157    
         icount=icount+JMT                                                 OCNARYPT.158    
      jocp_csr=icount                                                      OCNARYPT.159    
         icount=icount+JMT                                                 OCNARYPT.160    
      jocp_csrj=icount                                                     ORH3F403.322    
         icount=icount+1                                                   ORH3F403.323    
      jocp_cst=icount                                                      OCNARYPT.161    
         icount=icount+JMT                                                 OCNARYPT.162    
      jocp_cstr=icount                                                     OCNARYPT.163    
         icount=icount+JMT                                                 OCNARYPT.164    
      jocp_phi=icount                                                      OCNARYPT.165    
         icount=icount+JMT                                                 OCNARYPT.166    
      jocp_phit=icount                                                     OCNARYPT.167    
         icount=icount+JMT                                                 OCNARYPT.168    
      jocp_sine=icount                                                     OCNARYPT.169    
         icount=icount+JMT                                                 OCNARYPT.170    
      jocp_tng=icount                                                      OCNARYPT.171    
         icount=icount+JMT                                                 OCNARYPT.172    
      jocp_c2dz=icount                                                     OCNARYPT.173    
         icount=icount+KM                                                  OCNARYPT.174    
      jocp_dz=icount                                                       OCNARYPT.175    
         icount=icount+KM                                                  OCNARYPT.176    
      jocp_dz2r=icount                                                     OCNARYPT.177    
         icount=icount+KM                                                  OCNARYPT.178    
      jocp_eeh=icount                                                      OCNARYPT.179    
         icount=icount+KM                                                  OCNARYPT.180    
      jocp_eem=icount                                                      OCNARYPT.181    
         icount=icount+KM                                                  OCNARYPT.182    
      jocp_ffh=icount                                                      OCNARYPT.183    
         icount=icount+KM                                                  OCNARYPT.184    
      jocp_ffm=icount                                                      OCNARYPT.185    
         icount=icount+KM                                                  OCNARYPT.186    
      jocp_zdz=icount                                                      OCNARYPT.187    
         icount=icount+KM                                                  OCNARYPT.188    
      jocp_dzz=icount                                                      OCNARYPT.189    
         icount=icount+KMP1                                                OCNARYPT.190    
      jocp_dzz2r=icount                                                    OCNARYPT.191    
         icount=icount+KMP1                                                OCNARYPT.192    
      jocp_zdzz=icount                                                     OCNARYPT.193    
         icount=icount+KMP1                                                OCNARYPT.194    
      jocp_sol_pen=icount                                                  OCNARYPT.195    
         icount=icount+1+KM                                                OCNARYPT.196    
      jocp_dttsa=icount                                                    OCNARYPT.197    
         icount=icount+km                                                  OCNARYPT.198    
      jocp_rz=icount                                                       OCNARYPT.199    
         icount=icount+KM                                                  OCNARYPT.200    
      jocp_c2rz=icount                                                     OCNARYPT.201    
         icount=icount+KM                                                  OCNARYPT.202    
      jocp_rzz=icount                                                      OCNARYPT.203    
         icount=icount+KMP1                                                OCNARYPT.204    
      jocp_rzz2r=icount                                                    OCNARYPT.205    
         icount=icount+KMP1                                                OCNARYPT.206    
      jocp_delpsl=icount                                                   OCNARYPT.207    
         icount=icount+1+KM                                                OCNARYPT.208    
      jocp_decay=icount                                                    OCNARYPT.209    
         icount=icount+KM                                                  OCNARYPT.210    
      jocp_ahi=icount                                                      OCNARYPT.211    
         icount=icount+KM                                                  OCNARYPT.212    
      jocp_amt=icount                                                      OCNARYPT.213    
         icount=icount+JMT                                                 OCNARYPT.214    
      jocp_amu=icount                                                      OCNARYPT.215    
         icount=icount+JMTM1                                               OCNARYPT.216    
      jocp_kappabsi=icount                                                 RW071293.26     
         icount=icount+KM                                                  RW071293.27     
      jocp_cosine=icount                                                   OCNARYPT.217    
         icount=icount+IMT                                                 OCNARYPT.218    
      jocp_rlambda=icount                                                  OCNARYPT.219    
         icount=icount+IMT                                                 OCNARYPT.220    
      jocp_eddydiff=icount                                                 OCNARYPT.221    
         icount=icount+JMT                                                 OCNARYPT.222    
      jocp_amx=icount                                                      OCNARYPT.223    
         icount=icount+JMT                                                 OCNARYPT.224    
        jocp_bbu=icount                                                    ORL1F404.159    
        icount=icount+JMTM1                                                ORL1F404.160    
        jocp_ccu=icount                                                    ORL1F404.161    
        icount=icount+JMTM1                                                ORL1F404.162    
        jocp_ddu=icount                                                    ORL1F404.163    
        icount=icount+JMTM1                                                ORL1F404.164    
        jocp_ggu=icount                                                    ORL1F404.165    
        icount=icount+JMTM1                                                ORL1F404.166    
        jocp_hhu=icount                                                    ORL1F404.167    
        icount=icount+JMTM1                                                ORL1F404.168    
      jocp_athkdf=icount                                                   OLA0F401.33     
      icount=icount+KM                                                     OLA0F401.34     
      jocp_kri=icount                                                      OLA2F403.38     
      icount=icount+2                                                      OLA2F403.39     
       jocp_csrjp=icount                                                   OOM3F405.53     
       icount=icount+1                                                     OOM3F405.54     
       jocp_dyu2rjp=icount                                                 OOM3F405.55     
       icount=icount+1                                                     OOM3F405.56     
       jocp_cstjp=icount                                                   OOM3F405.57     
       icount=icount+1                                                     OOM3F405.58     
       jocp_dytrjp=icount                                                  OOM3F405.59     
       icount=icount+1                                                     OOM3F405.60     
       jocp_csjm=icount                                                    OOM3F405.61     
       icount=icount+1                                                     OOM3F405.62     
       jocp_dyurjm=icount                                                  OOM3F405.63     
       icount=icount+1                                                     OOM3F405.64     
      JOCP_MAXLARGELEVELS=ICOUNT                                           OOM1F405.422    
      ICOUNT=ICOUNT+1                                                      OOM1F405.423    
      JOCP_NOLEVSINLAYER=ICOUNT                                            OOM1F405.424    
      ICOUNT=ICOUNT+1                                                      OOM1F405.425    
C====================== End of pointers for COMDECK TYPOCONE =======       OCNARYPT.225    
C                                                                          OCNARYPT.226    
C==== Pointers for COMDECK TYPOCFLD================================        OCNARYPT.227    
      jocp_hr=icount                                                       OCNARYPT.228    
         icount=icount+IMT*JMT                                             OCNARYPT.229    
      jocp_hrj=icount                                                      ORH3F403.324    
         icount=icount+IMT                                                 ORH3F403.325    
      jocp_fkmp=icount                                                     ORH6F402.51     
         icount=icount+IMT*JMT                                             ORH6F402.52     
      jocp_fkmq_global=icount                                              ORH6F402.53     
         icount=icount+IMT*JMT_GLOBAL                                      ORH6F402.54     
      jocp_fkmq=icount                                                     OCNARYPT.230    
         icount=icount+IMT*JMT                                             OCNARYPT.231    
      jocp_coriolis=icount                                                 OCNARYPT.232    
         icount=icount+IMT*JMT                                             OCNARYPT.233    
      jocp_em=icount                                                       OCNARYPT.234    
         icount=icount+IMT*JMT                                             OCNARYPT.235    
       jocp_hrjp=icount                                                    OOM3F405.65     
       icount=icount+IMT                                                   OOM3F405.66     
       jocp_pjp=icount                                                     OOM3F405.67     
       icount=icount+IMT                                                   OOM3F405.68     
       jocp_pbjp=icount                                                    OOM3F405.69     
       icount=icount+IMT                                                   OOM3F405.70     
       jocp_fkmqjp=icount                                                  OOM3F405.71     
       icount=icount+IMT                                                   OOM3F405.72     
C==================== End of pointers for TYPOCFLD ===================     OCNARYPT.244    
C                                                                          OCNARYPT.245    
C ==================== Pointers for COMDECK TYPOCFIL =================     OCNARYPT.246    
      jocp_icbase=icount                                                   OCNARYPT.247    
         icount=icount+IMTP1                                               OCNARYPT.248    
      jocp_idbase=icount                                                   OCNARYPT.249    
         icount=icount+IMTP1                                               OCNARYPT.250    
      jocp_ind=icount                                                      OCNARYPT.251    
         icount=icount+IMTX8                                               OCNARYPT.252    
      jocp_cossav=icount                                                   OCNARYPT.253    
        icount=icount+LQMSUM                                               OCNARYPT.254    
      jocp_denmsv=icount                                                   OCNARYPT.255    
         icount=icount+LHSUM                                               OCNARYPT.256    
      jocp_cosnpi=icount                                                   OCNARYPT.257    
         icount=icount+IMT                                                 OCNARYPT.258    
      JP_MCU=icount                                                        ORH1F405.1      
      icount=icount+JMT                                                    ORH1F405.2      
      JP_MCT=icount                                                        ORH1F405.3      
      icount=icount+JMT                                                    ORH1F405.4      
      JP_MCF=icount                                                        ORH1F405.5      
      icount=icount+1                                                      ORH1F405.6      
      JP_MPU=icount                                                        ORH1F405.7      
      icount=icount+KM*LSEGF*JMT                                           ORH1F405.8      
      JP_MPT=icount                                                        ORH1F405.9      
      icount=icount+KM*LSEGF*JMT                                           ORH1F405.10     
      JP_MPF=icount                                                        ORH1F405.11     
      icount=icount+LSEGF*JMT                                              ORH1F405.12     
      JP_MKU=icount                                                        ORH1F405.13     
      icount=icount+KM*LSEGF*JMT                                           ORH1F405.14     
      JP_MKT=icount                                                        ORH1F405.15     
      icount=icount+KM*LSEGF*JMT                                           ORH1F405.16     
      JP_MSU=icount                                                        ORH1F405.17     
      icount=icount+KM*LSEGF*JMT                                           ORH1F405.18     
      JP_MST=icount                                                        ORH1F405.19     
      icount=icount+KM*LSEGF*JMT                                           ORH1F405.20     
      JP_MSF=icount                                                        ORH1F405.21     
      icount=icount+LSEGF*JMT                                              ORH1F405.22     
      JP_MRF=icount                                                        ORH1F405.23     
      icount=icount+LSEGF*JMT                                              ORH1F405.24     
      JP_SCU=icount                                                        ORH1F405.25     
      icount=icount+JMT                                                    ORH1F405.26     
      JP_SCT=icount                                                        ORH1F405.27     
      icount=icount+JMT                                                    ORH1F405.28     
      JP_SCF=icount                                                        ORH1F405.29     
      icount=icount+1                                                      ORH1F405.30     
C =================== End of pointers for COMDECK TYPOCFIL ===========     OCNARYPT.261    
C                                                                          OCNARYPT.262    
C ==== Pointers for COMDECK TYPOCMEA =================================     OCNARYPT.263    
      jocp_isht=icount                                                     OCNARYPT.264    
         icount=icount+JMMD*LSEGC*LDIV                                     OCNARYPT.265    
      jocp_IEHT=icount                                                     OCNARYPT.266    
         icount=icount+JMMD*LSEGC*LDIV                                     OCNARYPT.267    
C ==== End of pointers for TYPOCMEA =================================      OCNARYPT.268    
C                                                                          OCNARYPT.269    
C ================ Pointers for COMDECK TYPOCAC ====================       OCNARYPT.270    
      jocp_o_lon_m=icount                                                  OCNARYPT.271    
         icount=icount+IMT                                                 OCNARYPT.272    
      jocp_o_lat_m=icount                                                  OCNARYPT.273    
         icount=icount+JMT                                                 OCNARYPT.274    
      jocp_o_dep_levs_m=icount                                             OCNARYPT.275    
         icount=icount+KM                                                  OCNARYPT.276    
C ====================== End of pointers for TYPOCAC ==================    OCNARYPT.277    
C                                                                          NT080993.9      
C ==== Pointers for COMDECK TYPOCBIO                                       NT080993.10     
      jocp_daylen=icount                                                   NT080993.11     
         icount=icount+JMT*360                                             NT080993.12     
      jocp_dlco=icount                                                     NT080993.13     
         icount=icount+KM*3                                                NT080993.14     
C                                                                          NT080993.15     
C  Note that the 360 in the dimensioning of DAYLEN refers to               NT080993.16     
C  number of days in a climatological year - ie 360-day year is            NT080993.17     
C  assumed as biological model would only be using for climate             NT080993.18     
C  runs.                                                                   NT080993.19     
C                                                                          NT080993.20     
C ==== End of pointers for COMDECK TYPOCBIO =========================      NT080993.21     
C                                                                          OCNARYPT.278    
C     Now subtract one from icount to get total length of array.           OCNARYPT.279    
C                                                                          OCNARYPT.280    
      LEN_ARRAY=icount-1                                                   OCNARYPT.281    
      RETURN                                                               OCNARYPT.282    
      END                                                                  OCNARYPT.283    
*ENDIF CONTROL                                                             OCNARYPT.284