Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:41:49 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
8decba0243 Jean*0001 CBOP
                0002 C     !ROUTINE: MDSIO_BUFF_3D.h
                0003 C     !INTERFACE:
                0004 C     include "MDSIO_BUFF_3D.h"
                0005 C
                0006 C     !DESCRIPTION:
                0007 C     *==========================================================*
                0008 C     | MDSIO_BUFF_3D.h
                0009 C     | o Shared 3-D Buffers used for I/O
                0010 C     *==========================================================*
                0011 CEOP
                0012 
                0013 C     size3dBuf  :: buffer 3rd dimension, corresponds to the maximum number
                0014 C                   of levels that can be read/written at a time.
                0015 C     Note: minimum value = Nr, but in few cases (vertical interpolation,
                0016 C           NrPhys from Fizhi, ...)  needs to be larger. Here we pick 2*Nr
                0017 C           which should be enough for most applications.
                0018       INTEGER size3dBuf
d24daa2c55 Jean*0019 #ifdef ALLOW_FIZHI
                0020       PARAMETER ( size3dBuf = Nr+NrPhys )
                0021 #else
8decba0243 Jean*0022       PARAMETER ( size3dBuf = 2*Nr )
d24daa2c55 Jean*0023 #endif
8decba0243 Jean*0024 
                0025 C--   COMMON /MDS_3D_BUFFERS/  3-D Shared Local Buffers
fe43d95724 Jean*0026 C     Those buffers have be in common block to be shared by all threads;
                0027 C     considered to be "owned" by master-thread and any access by other 
                0028 C     than master thread needs to be put protected by BARRIER.
8decba0243 Jean*0029 C shared3dBuf_rx :: Heap storage buffer to which master thread
                0030 C                   read-in/write-from data which all threads copy from
                0031 C                   (during read) or copy to (during write).
                0032       COMMON /MDS_3D_BUFFERS/ shared3dBuf_r8, shared3dBuf_r4
                0033       Real*8 shared3dBuf_r8( sNx*sNy*size3dBuf*nSx*nSy )
                0034       Real*4 shared3dBuf_r4( sNx*sNy*size3dBuf*nSx*nSy )
                0035 
                0036 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|