*IF DEF,C93_1A,OR,DEF,C93_2A                                               GNF0F402.24     
C ******************************COPYRIGHT******************************    GTS2F400.12205  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.12206  
C                                                                          GTS2F400.12207  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.12208  
C restrictions as set forth in the contract.                               GTS2F400.12209  
C                                                                          GTS2F400.12210  
C                Meteorological Office                                     GTS2F400.12211  
C                London Road                                               GTS2F400.12212  
C                BRACKNELL                                                 GTS2F400.12213  
C                Berkshire UK                                              GTS2F400.12214  
C                RG12 2SZ                                                  GTS2F400.12215  
C                                                                          GTS2F400.12216  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.12217  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.12218  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.12219  
C Modelling at the above address.                                          GTS2F400.12220  
C ******************************COPYRIGHT******************************    GTS2F400.12221  
C                                                                          GTS2F400.12222  
CLL Subroutine ZONM     ----------------------------------------------     ZONM1A.3      
CLL                                                                        ZONM1A.4      
CLL Purpose :                                                              ZONM1A.5      
CLL                                                                        ZONM1A.6      
CLL  Model            Modification history from model version 3.0:         ZONM1A.7      
CLL version  Date                                                          ZONM1A.8      
CLL vn4.2  07/11/96:Allow this routine to be used in C93_2A (Farnon)       GNF0F402.23     
CLL                                                                        ZONM1A.9      
CLL Programming standard :                                                 ZONM1A.10     
CLL                                                                        ZONM1A.11     
CLL Logical components covered :                                           ZONM1A.12     
CLL                                                                        ZONM1A.13     
CLL Project task :                                                         ZONM1A.14     
CLL                                                                        ZONM1A.15     
CLL External documentation:                                                ZONM1A.16     
CLL                                                                        ZONM1A.17     
CLLEND -----------------------------------------------------------------   ZONM1A.18     
C                                                                          ZONM1A.19     

      SUBROUTINE ZONM(VAR,ZVAR,MASK,MASS,LGPTS,NY,NX)                       61ZONM1A.20     
C                                                                          ZONM1A.21     
      IMPLICIT NONE                                                        ZONM1A.22     
C                                                                          ZONM1A.23     
      INTEGER                                                              ZONM1A.24     
     1    NX,                        !     - Longitude: p,u-rows           ZONM1A.25     
     2    NY,                        !     - Latitude: rowlength           ZONM1A.26     
     4    I,                                                               ZONM1A.27     
     5    J                                                                ZONM1A.28     
      REAL                                                                 ZONM1A.29     
     1    VAR(NY,NX),                ! IN  - Variable for calculation      ZONM1A.30     
     2    ZVAR(NX),                  ! IN  - Zonal mean of variable        ZONM1A.31     
     3    MASK(NY,NX),               ! IN  - Mask (eg. Land/sea)           ZONM1A.32     
     3    MASS(NY,NX)                ! IN  - Mass weighting (p,u-grid)     ZONM1A.33     
      LOGICAL                                                              ZONM1A.34     
     1    LGPTS(NX)                  !     - No of land points/row         ZONM1A.35     
CL                                                                         ZONM1A.36     
C---                                                                       ZONM1A.37     
C    Subroutines called                                                    ZONM1A.38     
C       NONE                                                               ZONM1A.39     
C---                                                                       ZONM1A.40     
C                                                                          ZONM1A.41     
C    Local Variables                                                       ZONM1A.42     
C                                                                          ZONM1A.43     
      REAL                                                                 ZONM1A.44     
     1    SUMZTOP(NX),                                                     ZONM1A.45     
     2    SUMZBOT(NX)                                                      ZONM1A.46     
CL                                                                         ZONM1A.47     
C                                                                          ZONM1A.48     
CL 1. SUMZTOP= Sum of(MASS * MASK * VAR) for each I                        ZONM1A.49     
CL    SUMZBOT= Sum of(MASS * VAR) for each I                               ZONM1A.50     
CL    ZVAR= SUMZTOP/SUMZBOT                                                ZONM1A.51     
CL                                                                         ZONM1A.52     
      DO 10,I=1,NX                                                         ZONM1A.53     
        SUMZTOP(I)=0.0                                                     ZONM1A.54     
        SUMZBOT(I)=0.0                                                     ZONM1A.55     
          DO 20,J=1,NY                                                     ZONM1A.56     
            SUMZBOT(I) = SUMZBOT(I) + MASK(J,I) * MASS(J,I)                ZONM1A.57     
            SUMZTOP(I) = SUMZTOP(I) + (MASK(J,I) * MASS(J,I) * VAR(J,I))   ZONM1A.58     
20    CONTINUE                                                             ZONM1A.59     
        IF (LGPTS(I)) THEN            ! If logical pts/row=true then       ZONM1A.60     
          ZVAR(I) = SUMZTOP(I)/SUMZBOT(I) !  Calculate zonal mean          ZONM1A.61     
        ELSE                          ! Else                               ZONM1A.62     
          ZVAR(I)=0.0                 !  zonal mean=zero for that row      ZONM1A.63     
        ENDIF                                                              ZONM1A.64     
10    CONTINUE                                                             ZONM1A.65     
      RETURN                                                               ZONM1A.66     
      END                                                                  ZONM1A.67     
C                                                                          ZONM1A.68     
CL======================================================================   ZONM1A.69     
CL 5.1 Subroutine to calculate the column mean of a variable               ZONM1A.70     
CL----------------------------------------------------------------------   ZONM1A.71     
*ENDIF                                                                     ZONM1A.72