C $Header: /u/gcmpack/MITgcm/pkg/atm_compon_interf/cpl_register.F,v 1.3 2013/11/27 21:54:45 jmc Exp $
C $Name: $
#include "PACKAGES_CONFIG.h"
#include "CPP_OPTIONS.h"
CBOP 0
C !ROUTINE: CPL_REGISTER
C !INTERFACE:
SUBROUTINE CPL_REGISTER
C !DESCRIPTION:
C *==========================================================*
C | SUBROUTINE CPL_REGISTER
C | o Routine controlling registration with MIT coupler.
C | - Atmospheric version -
C *==========================================================*
C | This version talks to the MIT Coupler. It uses the MIT
C | Coupler "checkpoint1" library calls.
C *==========================================================*
C !USES:
IMPLICIT NONE
C == Global variables ==
#include "SIZE.h"
#include "EEPARAMS.h"
#include "ATMIDS.h"
#ifdef ALLOW_EXCH2
# include "W2_EXCH2_SIZE.h"
# include "W2_EXCH2_TOPOLOGY.h"
# include "W2_EXCH2_PARAMS.h"
#endif /* ALLOW_EXCH2 */
C !INPUT/OUTPUT PARAMETERS:
C == Routine arguments ==
C myThid :: Thread number for this instance of the routine
c INTEGER myThid
CEOP
#ifdef COMPONENT_MODULE
C !LOCAL VARIABLES:
C == Local variables ==
C bi, bj :: Tile indices
C j :: Loop counter
C iG0, jG0 :: Base coordinates of a tile on the global grid.
C iReg :: Array for passing attributes to the coupler
INTEGER iG0, jG0
INTEGER bi, bj
INTEGER j, nTiles
INTEGER iReg(6,nSx*nSy)
#ifdef ALLOW_EXCH2
INTEGER tN
#endif /* ALLOW_EXCH2 */
C-- Register with the MIT coupler
j = 0
DO bj=1,nSy
DO bi=1,nSx
j = j+1
jG0 = myYGlobalLo+(bj-1)*sNy
iG0 = myXGlobalLo+(bi-1)*sNx
#ifdef ALLOW_EXCH2
IF ( W2_useE2ioLayOut ) THEN
tN = W2_myTileList(bi,bj)
iG0 = exch2_txGlobalo(tN)
jG0 = exch2_tyGlobalo(tN)
ENDIF
#endif /* ALLOW_EXCH2 */
iReg(1,j) = bi
iReg(2,j) = bj
iReg(3,j) = sNx
iReg(4,j) = sNy
iReg(5,j) = iG0
iReg(6,j) = jG0
ENDDO
ENDDO
nTiles = nSx*nSy
CALL MITCOMPONENT_TILE_REGISTER( nTiles, iReg )
#endif /* COMPONENT_MODULE */
RETURN
END