C $Header: /u/gcmpack/MITgcm/pkg/autodiff/global_sum_ad.F,v 1.11 2010/04/27 19:27:54 jmc Exp $
C $Name:  $

#include "AUTODIFF_OPTIONS.h"

C--   File global_adsum.F: Routines that perform adjoint of
C                          global sum on all threads and all processors
C      Contents
C      o GLOBAL_ADSUM_R4
C      o GLOBAL_ADSUM_R8

C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
C     !ROUTINE: GLOBAL_ADSUM_R4

C     !INTERFACE:
#ifdef AUTODIFF_TAMC_COMPATIBILITY
      SUBROUTINE GLOBAL_ADSUM_R4(
     I                            myThid,
     U                            adsumPhi
     &                          )
#else
      SUBROUTINE GLOBAL_ADSUM_R4(
     U                            adsumPhi,
     I                            myThid
     &                          )
#endif

C     !DESCRIPTION:
C     *==========================================================*
C     | SUBROUTINE GLOBAL_ADSUM_R4
C     | o Handle sum for real*4 data.
C     *==========================================================*
C     *==========================================================*

C     !USES:
      IMPLICIT NONE

C     == Global data ==
#include "SIZE.h"
#include "EEPARAMS.h"

C     !INPUT/OUTPUT PARAMETERS:
C     == Routine arguments ==
C     sumPhi :: Result of sum.
C     myThid :: My thread id.
      Real*4 adsumPhi
      INTEGER myThid
CEOP

C     !LOCAL VARIABLES:

      CALL GLOBAL_SUM_R4( adsumPhi, myThid )

      RETURN
      END


C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: GLOBAL_ADSUM_R8 C !INTERFACE: #ifdef AUTODIFF_TAMC_COMPATIBILITY SUBROUTINE GLOBAL_ADSUM_R8( I myThid, U adsumPhi & ) #else SUBROUTINE GLOBAL_ADSUM_R8( U adsumPhi, I myThid & ) #endif C !DESCRIPTION: C *==========================================================* C | SUBROUTINE GLOBAL_ADSUM_R8 C | o Handle sum for real*8 data. C *==========================================================* C *==========================================================* C !USES: IMPLICIT NONE C == Global data == #include "SIZE.h" #include "EEPARAMS.h" C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C sumPhi :: Result of sum. C myThid :: My thread id. Real*8 adsumPhi INTEGER myThid CEOP C !LOCAL VARIABLES: C == Local variables == CALL GLOBAL_SUM_R8( adsumPhi, myThid ) RETURN END