C $Header: /u/gcmpack/MITgcm/pkg/ocn_compon_interf/ocn_export_fields.F,v 1.5 2016/01/06 01:02:28 jmc Exp $
C $Name: $
#include "OCN_CPL_OPTIONS.h"
CBOP 0
C !ROUTINE: OCN_EXPORT_FIELDS
C !INTERFACE:
SUBROUTINE OCN_EXPORT_FIELDS( myIter, myThid )
C !DESCRIPTION:
C *==========================================================*
C | SUBROUTINE OCN_EXPORT_FIELDS
C | o Routine for exporting oceanic fields
C | to the coupling layer.
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 "CPL_PARAMS.h"
#include "OCNIDS.h"
#include "OCNCPL.h"
C !INPUT/OUTPUT PARAMETERS:
C == Routine arguments ==
C myIter :: Current timestep number.
C myThid :: Thread number for this instance of the routine
INTEGER myIter
INTEGER myThid
CEOP
#ifdef COMPONENT_MODULE
C !LOCAL VARIABLES:
C == Local variables ==
C- Send Oceanic fields to coupling layer
C Note: 1) Information is sent on the ocean model grid.
C 2) MIT Coupler checkpoint1 does not allow asynchronous posting of
C data, so ordering has to be consistent with coupling layer ordering
_BARRIER
_BEGIN_MASTER( myThid )
C- Send Ocean mixed-layer depth to coupling layer
CALL COMPSEND_R8TILES( ocnMxlDName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, ocMxlD2cpl )
C- Send sea-surface temperature to coupling layer
CALL COMPSEND_R8TILES( ocnSSTName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, SSTocn2cpl )
C- Send sea-surface salinity to coupling layer
CALL COMPSEND_R8TILES( ocnSSSName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, SSSocn2cpl )
C- Send ocean surface velocity square to coupling layer
CALL COMPSEND_R8TILES( ocnSSVsqName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, vSqocn2cpl )
#ifdef ALLOW_DIC
IF ( ocn_cplExch_DIC ) THEN
C- Send ocean CO2 flux to coupling layer
CALL COMPSEND_R8TILES( ocnCO2FluxName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, fluxCO2cpl )
ENDIF
#endif /* ALLOW_DIC */
#ifdef ALLOW_THSICE
IF ( ocn_cplExch2W_sIce ) THEN
C- Send thSIce state-vars to coupling layer
CALL COMPSEND_R8TILES( ocnSIceFracName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, sIceFrac_cpl )
CALL COMPSEND_R8TILES( ocnSIceThickName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, sIceThick_cpl )
CALL COMPSEND_R8TILES( ocnSIceSnowName,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, sIceSnowH_cpl )
CALL COMPSEND_R8TILES( ocnSIceQ1Name,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, sIceQ1_cpl )
CALL COMPSEND_R8TILES( ocnSIceQ2Name,
I sNx, OLx, sNy, OLy, 1, nSx, nSy, sIceQ2_cpl )
ENDIF
#endif /* ALLOW_THSICE */
_END_MASTER( myThid )
_BARRIER
#endif /* COMPONENT_MODULE */
RETURN
END