C $Header: /u/gcmpack/MITgcm/pkg/aim_v23/aim_aim2dyn_exchanges.F,v 1.5 2009/04/28 18:08:13 jmc Exp $
C $Name: $
#include "AIM_OPTIONS.h"
#ifdef ALLOW_THSICE
# include "THSICE_OPTIONS.h"
#endif
CBOP
C !ROUTINE: AIM_AIM2DYN_EXCHANGES
C !INTERFACE:
SUBROUTINE AIM_AIM2DYN_EXCHANGES(
I myTime, myIter, myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE AIM_AIM2DYN_EXCHANGES
C | o Do overlap exchanges for AIM related quantities.
C | AIM does not compute into overlaps so exchanges
C | are needed for AIM quantities.
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "FFIELDS.h"
#include "AIM2DYN.h"
#ifdef ALLOW_THSICE
# include "THSICE_PARAMS.h"
# include "THSICE_VARS.h"
#endif
C !INPUT/OUTPUT PARAMETERS:
C myTime :: Current time in simulation (s)
C myIter :: Current iteration number
C myThid :: My Thread Id. number
_RL myTime
INTEGER myIter
INTEGER myThid
CEOP
#ifdef ALLOW_AIM
C !LOCAL VARIABLES:
#ifdef COMPONENT_MODULE
INTEGER bi,bj
#endif
_EXCH_XY_RL( aim_drag, myThid )
#ifdef ALLOW_THSICE
IF (useThSIce) THEN
CALL EXCH_XY_RL( iceMask, myThid )
IF ( useSEAICE .OR. thSIceAdvScheme.GT.0 ) THEN
CALL EXCH_XY_RL( iceHeight, myThid )
CALL EXCH_XY_RL( snowHeight, myThid )
CALL EXCH_XY_RL( Qice1, myThid )
CALL EXCH_XY_RL( Qice2, myThid )
#ifdef ATMOSPHERIC_LOADING
IF ( useRealFreshWaterFlux )
& CALL EXCH_XY_RS( sIceLoad, myThid )
#endif
ENDIF
ENDIF
#endif
#ifdef COMPONENT_MODULE
IF ( useCoupler ) THEN
DO bj=myByLo(myThid),myByHi(myThid)
DO bi=myBxLo(myThid),myBxHi(myThid)
CALL ATM_STORE_TAUX( bi,bj, myTime, myIter, myThid )
CALL ATM_STORE_TAUY( bi,bj, myTime, myIter, myThid )
ENDDO
ENDDO
ENDIF
#endif /* COMPONENT_MODULE */
#endif /* ALLOW_AIM */
RETURN
END