*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.3SUBROUTINE 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