*IF DEF,OCEAN CGSUMMAT.2
C ******************************COPYRIGHT****************************** CGSUMMAT.3
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. CGSUMMAT.4
C CGSUMMAT.5
C Use, duplication or disclosure of this code is subject to the CGSUMMAT.6
C restrictions as set forth in the contract. CGSUMMAT.7
C CGSUMMAT.8
C Meteorological Office CGSUMMAT.9
C London Road CGSUMMAT.10
C BRACKNELL CGSUMMAT.11
C Berkshire UK CGSUMMAT.12
C RG12 2SZ CGSUMMAT.13
C CGSUMMAT.14
C If no contract has been raised with this copy of the code, the use, CGSUMMAT.15
C duplication or disclosure of it is strictly prohibited. Permission CGSUMMAT.16
C to do so must first be obtained in writing from the Head of Numerical CGSUMMAT.17
C Modelling at the above address. CGSUMMAT.18
C ******************************COPYRIGHT****************************** CGSUMMAT.19
!---------------------------------------------------------------------- CGSUMMAT.20
! MODIFICATION HISTORY CGSUMMAT.21
! ==================== CGSUMMAT.22
! Model CGSUMMAT.23
! Version Date Author Description CGSUMMAT.24
! 4.2 Nov 96 R. Hill Original code - Allows fields to be CGSUMMAT.25
! summed in a consistent way to allow CGSUMMAT.26
! bit reproducibility on mpp systems CGSUMMAT.27
! of any number of PEs. Note: temporary CGSUMMAT.28
! code until we replace with calls CGSUMMAT.29
! to RVECSUMR. CGSUMMAT.30
!---------------------------------------------------------------------- CGSUMMAT.31
CGSUMMAT.32
SUBROUTINE CGSUMMATION 5,1CGSUMMAT.33
& (FIELD,JMT_GLOBAL,J_1,J_JMT,JMT, CGSUMMAT.34
& JST,JFIN,O_MYPE,O_NPROC,SUM) CGSUMMAT.35
CGSUMMAT.36
CGSUMMAT.37
IMPLICIT NONE CGSUMMAT.38
CGSUMMAT.39
*CALL PARVARS
ORH3F403.213
*CALL GCCOM
CGSUMMAT.40
CGSUMMAT.41
INTEGER JMT_GLOBAL ! In - dimension of full field CGSUMMAT.42
& ,J_1 ! In - start point in input array CGSUMMAT.43
& ,J_JMT ! In - end " " " " CGSUMMAT.44
& ,JMT ! In - dimension of local field CGSUMMAT.45
& ,JST ! In CGSUMMAT.46
& ,JFIN ! In CGSUMMAT.47
& ,O_MYPE ! In CGSUMMAT.48
& ,O_NPROC ! In CGSUMMAT.49
& ,J ! Local index CGSUMMAT.50
& ,INFO CGSUMMAT.51
CGSUMMAT.52
REAL FIELD(JMT) ! In - Field to be summed CGSUMMAT.53
& ,FIELD_GLOBAL(JMT_GLOBAL) ! Local - field to be summed CGSUMMAT.54
& ,SUM ! Out - result CGSUMMAT.55
CGSUMMAT.56
SUM = 0.0 CGSUMMAT.57
CGSUMMAT.58
IF (O_NPROC.EQ.1) THEN CGSUMMAT.59
CGSUMMAT.60
DO J = J_1,J_JMT CGSUMMAT.61
SUM = SUM + FIELD(J) CGSUMMAT.62
ENDDO CGSUMMAT.63
ELSE CGSUMMAT.64
*IF DEF,MPP CGSUMMAT.65
! Now compile a full global copy of FIELD CGSUMMAT.66
CALL O_SMARTPASS
(1,1,FIELD(J_1),FIELD_GLOBAL CGSUMMAT.67
& ,JFIN-JST+1,JMT_GLOBAL,JST,2) CGSUMMAT.68
CGSUMMAT.69
! Work out total and send sum to all PEs CGSUMMAT.70
IF (O_MYPE.EQ.0) THEN CGSUMMAT.71
CGSUMMAT.72
DO J = 1,JMT_GLOBAL CGSUMMAT.73
SUM = SUM + FIELD_GLOBAL(J) CGSUMMAT.74
ENDDO CGSUMMAT.75
ENDIF CGSUMMAT.79
CALL GC_RBCAST (
1009,1,0,nproc,info,SUM) ORH3F403.214
*ENDIF CGSUMMAT.80
ENDIF CGSUMMAT.81
CGSUMMAT.82
RETURN CGSUMMAT.83
END CGSUMMAT.84
*ENDIF CGSUMMAT.85