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