Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:36:06 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
4c563c2ee9 Chri*0001 CBOP
                0002 C     !ROUTINE: GLOBAL_MAX.h
                0003 C     !INTERFACE:
                0004 C     include "GLOBAL_MAX.h"
                0005 C     !DESCRIPTION:
                0006 C     *==========================================================*
07ef6829ed Jean*0007 C     | GLOBAL\_MAX.h
                0008 C     | o Globals used by Fortran global max routine.
4c563c2ee9 Chri*0009 C     *==========================================================*
07ef6829ed Jean*0010 C     | The global max shared memory scheme uses global heap data
                0011 C     | structures (.i.e COMMON blocks ). Each thread writes to
                0012 C     | an its own element of the shared memory array and then
                0013 C     | one thread reads all the entries and maxs them. The max
                0014 C     | result is then read by all threads.
                0015 C     | Remember - you are working with regions of memory that
                0016 C     | are being updated concurrently by different threads.
                0017 C     | What happens, when it happens and who gets to see what
                0018 C     | happens at what stage depends on the computer systems
                0019 C     | memory model. Every computer has a different memory model
                0020 C     | and they are never simple. In all current platforms it is
                0021 C     | possible for one thread to see events happening in a
                0022 C     | different order from the order they are written in the
                0023 C     | code.
                0024 C     | Unless you understand this it is not a good idea to
                0025 C     | make modifications te way these header files are setup or
                0026 C     | the way the global max routines work.
4c563c2ee9 Chri*0027 C     *==========================================================*
                0028 CEOP
07ef6829ed Jean*0029       COMMON / GMAX_COMMON_R8 / phiGMR8
                0030       Real*8  phiGMR8(lShare8, 0:MAX_NO_THREADS )
aea29c8517 Alis*0031 
07ef6829ed Jean*0032       COMMON / GMAX_COMMON_R4 / phiGMR4
                0033       Real*4  phiGMR4(lShare4, 0:MAX_NO_THREADS )
aea29c8517 Alis*0034 
                0035       COMMON / GMAX_COMMON_I  / phiGMI
07ef6829ed Jean*0036       INTEGER phiGMI (lShare4, 0:MAX_NO_THREADS )