/[MITgcm]/MITgcm/eesupp/src/global_max.F
ViewVC logotype

Diff of /MITgcm/eesupp/src/global_max.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.8 by adcroft, Tue May 29 14:01:36 2001 UTC revision 1.9 by cnh, Fri Sep 21 03:54:35 2001 UTC
# Line 8  C      o global_max_r4 Line 8  C      o global_max_r4
8  C      o global_max_r8  C      o global_max_r8
9  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
10    
11  CStartOfInterface  CBOP
12    
13    C     !ROUTINE: GLOBAL_MAX_R4
14    
15    C     !INTERFACE:
16        SUBROUTINE GLOBAL_MAX_R4(        SUBROUTINE GLOBAL_MAX_R4(
17       U                       maxPhi,       U                       maxPhi,
18       I                       myThid )       I                       myThid )
 C     /==========================================================\  
 C     | SUBROUTINE GLOBAL_MAX_R4                                 |  
 C     | o Handle max for real*4 data.                            |  
 C     |==========================================================|  
 C     | Perform max on array of one value per thread and then    |  
 C     | max result of all the processes.                         |  
 C     | Notes                                                    |  
 C     | =====                                                    |  
 C     | Within a process only one thread does the max, each      |  
 C     | thread is assumed to have already maxed  its local data. |  
 C     | The same thread also does the inter-process max for      |  
 C     | example with MPI and then writes the result into a shared|  
 C     | location. All threads wait until the max is avaiailable. |  
 C     \==========================================================/  
19        IMPLICIT NONE        IMPLICIT NONE
20    C     !DESCRIPTION:
21    C     *==========================================================*
22    C     | SUBROUTINE GLOBAL_MAX_R4                                  
23    C     | o Handle max for real*4 data.                            
24    C     *==========================================================*
25    C     | Perform max on array of one value per thread and then    
26    C     | max result of all the processes.                          
27    C     | Notes                                                    
28    C     | =====                                                    
29    C     | Within a process only one thread does the max, each      
30    C     | thread is assumed to have already maxed  its local data.  
31    C     | The same thread also does the inter-process max for      
32    C     | example with MPI and then writes the result into a shared
33    C     | location. All threads wait until the max is avaiailable.  
34    C     *==========================================================*
35    
36    C     !USES:
37  C     == Global data ==  C     == Global data ==
38  #include "SIZE.h"  #include "SIZE.h"
39  #include "EEPARAMS.h"  #include "EEPARAMS.h"
40  #include "EESUPPORT.h"  #include "EESUPPORT.h"
41  #include "GLOBAL_MAX.h"  #include "GLOBAL_MAX.h"
42    
43    C     !INPUT/OUTPUT PARAMETERS:
44  C     == Routine arguments ==  C     == Routine arguments ==
45  C     maxPhi - Result of max.  C     maxPhi :: Result of max.
46  C     myThid - My thread id.  C     myThid :: My thread id.
47        Real*4 maxPhi        Real*4 maxPhi
48        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
49    
50    C     !LOCAL VARIABLES:
51  C     == Local variables ==  C     == Local variables ==
52  C     I      - Loop counters  C     I      :: Loop counters
53  C     mpiRC  - MPI return code  C     mpiRC  :: MPI return code
54        INTEGER I        INTEGER I
55        Real*4  tmp        Real*4  tmp
56  #ifdef   ALLOW_USE_MPI  #ifdef   ALLOW_USE_MPI
57        INTEGER mpiRC        INTEGER mpiRC
58  #endif /* ALLOW_USE_MPI */  #endif /* ALLOW_USE_MPI */
59    CEOP
60    
61        CALL BAR2( myThid )        CALL BAR2( myThid )
62  C--   write local max into array  C--   write local max into array
# Line 86  C--   set result for every process Line 94  C--   set result for every process
94        RETURN        RETURN
95        END        END
96                
97    CBOP
98    
99    C     !ROUTINE: GLOBAL_MAX_R8
100    
101  CStartOfInterface  C     !INTERFACE:
102        SUBROUTINE GLOBAL_MAX_R8(        SUBROUTINE GLOBAL_MAX_R8(
103       O                       maxPhi,       O                       maxPhi,
104       I                       myThid )       I                       myThid )
 C     /==========================================================\  
 C     | SUBROUTINE GLOBAL_MAX_R8                                 |  
 C     | o Handle max for real*8 data.                            |  
 C     |==========================================================|  
 C     | Perform max on array of one value per thread and then    |  
 C     | max result of all the processes.                         |  
 C     | Notes                                                    |  
 C     | =====                                                    |  
 C     | Within a process only one thread does the max, each      |  
 C     | thread is assumed to have already maxed  its local data. |  
 C     | The same thread also does the inter-process max for      |  
 C     | example with MPI and then writes the result into a shared|  
 C     | location. All threads wait until the max is avaiailable. |  
 C     \==========================================================/  
105        IMPLICIT NONE        IMPLICIT NONE
106    C     !DESCRIPTION:
107    C     *==========================================================*
108    C     | SUBROUTINE GLOBAL_MAX_R8                                  
109    C     | o Handle max for real*8 data.                            
110    C     *==========================================================*
111    C     | Perform max on array of one value per thread and then    
112    C     | max result of all the processes.                          
113    C     | Notes                                                    
114    C     | =====                                                    
115    C     | Within a process only one thread does the max, each      
116    C     | thread is assumed to have already maxed  its local data.  
117    C     | The same thread also does the inter-process max for      
118    C     | example with MPI and then writes the result into a shared
119    C     | location. All threads wait until the max is avaiailable.  
120    C     *==========================================================*
121    
122    C     !USES:
123  C     === Global data ===  C     === Global data ===
124  #include "SIZE.h"  #include "SIZE.h"
125  #include "EEPARAMS.h"  #include "EEPARAMS.h"
126  #include "EESUPPORT.h"  #include "EESUPPORT.h"
127  #include "GLOBAL_MAX.h"  #include "GLOBAL_MAX.h"
128    
129    C     !INPUT/OUTPUT PARAMETERS:
130  C     === Routine arguments ===  C     === Routine arguments ===
131  C     maxPhi - Result of max.  C     maxPhi :: Result of max.
132  C     myThid - My thread id.  C     myThid :: My thread id.
133        Real*8 maxPhi        Real*8 maxPhi
134        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
135    
136    C     !LOCAL VARIABLES:
137  C     === Local variables ===  C     === Local variables ===
138  C     I      - Loop counters  C     I      :: Loop counters
139  C     mpiRC  - MPI return code  C     mpiRC  :: MPI return code
140        INTEGER I        INTEGER I
141        Real*8  tmp        Real*8  tmp
142  #ifdef   ALLOW_USE_MPI  #ifdef   ALLOW_USE_MPI
143        INTEGER mpiRC        INTEGER mpiRC
144  #endif   /* ALLOW_USE_MPI */  #endif   /* ALLOW_USE_MPI */
145    CEOP
146    
147        CALL BAR2( myThid )        CALL BAR2( myThid )
148  C--   write local max into array  C--   write local max into array

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22