*IF DEF,C93_1A,OR,DEF,C93_2A                                               GNF0F402.12     
C ******************************COPYRIGHT******************************    GTS2F400.3385   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.3386   
C                                                                          GTS2F400.3387   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.3388   
C restrictions as set forth in the contract.                               GTS2F400.3389   
C                                                                          GTS2F400.3390   
C                Meteorological Office                                     GTS2F400.3391   
C                London Road                                               GTS2F400.3392   
C                BRACKNELL                                                 GTS2F400.3393   
C                Berkshire UK                                              GTS2F400.3394   
C                RG12 2SZ                                                  GTS2F400.3395   
C                                                                          GTS2F400.3396   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.3397   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.3398   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.3399   
C Modelling at the above address.                                          GTS2F400.3400   
C ******************************COPYRIGHT******************************    GTS2F400.3401   
C                                                                          GTS2F400.3402   
C                                                                          GLBM1A.3      

      SUBROUTINE GLBM(VAR,GVAR,START,END,AREA,MASK,GPTS,NX,NY,LOGIP)        146GLBM1A.4      
C                                                                          GLBM1A.5      
C *** Subroutine calculates global or quarter globe means                  GLBM1A.6      
C                                                                          GLBM1A.7      
CLL  Model            Modification history from model version 3.0:         GLBM1A.8      
CLL version  Date                                                          GLBM1A.9      
CLL vn4.2  07/11/96:Allow this routine to be used in C93_2A (Farnon)       GNF0F402.11     
CLL                                                                        GLBM1A.10     
CLL Logical components covered: D61                                        GLBM1A.11     
CLL                                                                        GLBM1A.12     
CLLEND --------------------------------------------------------------      GLBM1A.13     
C                                                                          GLBM1A.14     
      IMPLICIT NONE                                                        GLBM1A.15     
C                                                                          GLBM1A.16     
      INTEGER                                                              GLBM1A.17     
     1    NX,                    !     - Longitude:point on p,u-rows       GLBM1A.18     
     2    NY,                    !     - Longitude:pont on rowlength       GLBM1A.19     
     5    I,                                                               GLBM1A.20     
     6    J,                                                               GLBM1A.21     
     7    START,                 !     - Marker for start of 1/4 globe     GLBM1A.22     
     8    END                    !     - Marker for end of 1/4 globe       GLBM1A.23     
      REAL                                                                 GLBM1A.24     
     1    VAR(NY,NX),            ! IN  - Variable for calculation          GLBM1A.25     
     2    GVAR,                  ! IN  - Global mean of variable           GLBM1A.26     
     3    AREA(NY,NX),           ! IN  - Area weighting                    GLBM1A.27     
     4    MASK(NY,NX)            ! IN  - Mask or mass weighting            GLBM1A.28     
      LOGICAL                                                              GLBM1A.29     
     1    GPTS,                  !     - No of land points/row             GLBM1A.30     
     2    LOGIP                  !     - True if p-grid, false if u-grid   GLBM1A.31     
CL                                                                         GLBM1A.32     
C---                                                                       GLBM1A.33     
C    Subroutines called                                                    GLBM1A.34     
C       NONE                                                               GLBM1A.35     
C---                                                                       GLBM1A.36     
C                                                                          GLBM1A.37     
C    Local Variables                                                       GLBM1A.38     
C                                                                          GLBM1A.39     
      REAL                                                                 GLBM1A.40     
     1    SUMGTOP,                                                         GLBM1A.41     
     2    SUMGBOT                                                          GLBM1A.42     
CL                                                                         GLBM1A.43     
C                                                                          GLBM1A.44     
CL 1. SUMGTOP= Sum of(AREA * MASK * VAR) for all pts                       GLBM1A.45     
CL    SUMGBOT= Sum of(AREA * MASK) for all pts                             GLBM1A.46     
CL    GVAR=SUMGTOP/SUMGBOT                                                 GLBM1A.47     
CL                                                                         GLBM1A.48     
      SUMGTOP=0.0                                                          GLBM1A.49     
      SUMGBOT=0.0                                                          GLBM1A.50     
C                                                                          GLBM1A.51     
CL    If its a p grid, then multiply start and end rows by 0.5, so that    GLBM1A.52     
CL    rows are not counted twice when computing 1/4 globe means            GLBM1A.53     
C                                                                          GLBM1A.54     
      IF (LOGIP) THEN                                                      GLBM1A.55     
        DO 10,I=START,END                                                  GLBM1A.56     
          DO 20,J=1,NY                                                     GLBM1A.57     
            IF ((I .NE. START) .AND. (I .NE. END)) THEN                    GLBM1A.58     
               SUMGBOT = SUMGBOT + AREA(J,I) * MASK(J,I)                   GLBM1A.59     
               SUMGTOP = SUMGTOP + (AREA(J,I) * MASK(J,I) * VAR(J,I))      GLBM1A.60     
            ELSE                                                           GLBM1A.61     
               SUMGBOT = SUMGBOT + 0.5*(AREA(J,I) * MASK(J,I))             GLBM1A.62     
               SUMGTOP = SUMGTOP + 0.5*(AREA(J,I)*MASK(J,I)*VAR(J,I))      GLBM1A.63     
            END IF                                                         GLBM1A.64     
20        CONTINUE                                                         GLBM1A.65     
10      CONTINUE                                                           GLBM1A.66     
      ELSE                                                                 GLBM1A.67     
        DO 30,I=START,END                                                  GLBM1A.68     
          DO 40,J=1,NY                                                     GLBM1A.69     
            SUMGBOT = SUMGBOT + AREA(J,I) * MASK(J,I)                      GLBM1A.70     
            SUMGTOP = SUMGTOP + (AREA(J,I) * MASK(J,I) * VAR(J,I))         GLBM1A.71     
40        CONTINUE                                                         GLBM1A.72     
30      CONTINUE                                                           GLBM1A.73     
      END IF                                                               GLBM1A.74     
C                                                                          GLBM1A.75     
      IF (GPTS) THEN               ! If logical pts/globe or 1/4 globe     GLBM1A.76     
        GVAR = SUMGTOP / SUMGBOT   !  Calculate global mean                GLBM1A.77     
      ELSE                         ! Else                                  GLBM1A.78     
        GVAR=0.0                   !  Set global mean=0                    GLBM1A.79     
      ENDIF                                                                GLBM1A.80     
      RETURN                                                               GLBM1A.81     
      END                                                                  GLBM1A.82     
*ENDIF                                                                     GLBM1A.83