C $Header: /u/gcmpack/MITgcm/pkg/ocn_compon_interf/cpl_ini_vars.F,v 1.8 2016/01/06 01:02:28 jmc Exp $
C $Name: $
#include "OCN_CPL_OPTIONS.h"
CBOP
C !ROUTINE: CPL_INI_VARS
C !INTERFACE:
SUBROUTINE CPL_INI_VARS( myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | S/R CPL_INI_VARS
C | o Initialisation routine for arrays that are used to
C | buffer data that interfaces to the coupling layer.
C | - Oceanic version -
C *==========================================================*
C | For now this routine sets these arrays to the right
C | state for an initial start-up. Eventually it should
C | include some way to load this data from non-volatile
C | external storage if they are needed during a restart.
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C == Global variables ==
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "CPL_PARAMS.h"
#include "OCNCPL.h"
#include "CPL_TAVE.h"
C !INPUT/OUTPUT PARAMETERS:
C myThid :: my Thread Id Number
INTEGER myThid
CEOP
#ifdef COMPONENT_MODULE
C !LOCAL VARIABLES:
C i,j,bi,bj :: Loop counters
INTEGER i,j,bi,bj
DO bj=myByLo(myThid),myByHi(myThid)
DO bi=myBxLo(myThid),myByLo(myThid)
DO J=1-OLy,sNy+OLy
DO I=1-OLx,sNx+OLx
C. Export fields
ocMxlD2cpl(i,j,bi,bj) = 0.
SSTocn2cpl(i,j,bi,bj) = 0.
SSSocn2cpl(i,j,bi,bj) = 0.
vSqocn2cpl(i,j,bi,bj) = 0.
#ifdef ALLOW_DIC
fluxCO2cpl(i,j,bi,bj) = 0.
#endif
C- Import and/or export fields
#if (defined ALLOW_DIC) (defined ALLOW_THSICE)
sIceFrac_cpl (i,j,bi,bj) = 0.
#endif
#ifdef ALLOW_THSICE
sIceThick_cpl (i,j,bi,bj) = 0.
sIceSnowH_cpl (i,j,bi,bj) = 0.
sIceQ1_cpl (i,j,bi,bj) = 0.
sIceQ2_cpl (i,j,bi,bj) = 0.
#endif
C- Import fields
atmSLPr (i,j,bi,bj) = 0.
HeatFlux (i,j,bi,bj) = 0.
qShortWave(i,j,bi,bj) = 0.
tauX (i,j,bi,bj) = 0.
tauY (i,j,bi,bj) = 0.
FWflux (i,j,bi,bj) = 0.
iceSaltFlx(i,j,bi,bj) = 0.
seaIceMass(i,j,bi,bj) = 0.
#ifdef ALLOW_SALT_PLUME
saltPlmFlx_cpl(i,j,bi,bj) = 0.
#endif
#ifdef ALLOW_DIC
RunOff_cpl(i,j,bi,bj) = 0.
airCO2 (i,j,bi,bj) = 0.
surfWSpeed(i,j,bi,bj) = 0.
#endif
ENDDO
ENDDO
ENDDO
ENDDO
IF ( startTime.NE.baseTime .OR. nIter0.NE.0
& .OR. pickupSuff .NE. ' ' ) THEN
CALL OCN_CPL_READ_PICKUP( nIter0, myThid )
ENDIF
#ifdef ALLOW_TIMEAVE
C Initialise diagnostic counters ( these are cleared on model start
C i.e. not loaded from history file for now ).
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
CALL TIMEAVE_RESET( SLPtave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( HFtave , 1, bi, bj, myThid )
CALL TIMEAVE_RESET( QSWtave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( TXtave , 1, bi, bj, myThid )
CALL TIMEAVE_RESET( TYtave , 1, bi, bj, myThid )
CALL TIMEAVE_RESET( FWtave , 1, bi, bj, myThid )
CALL TIMEAVE_RESET( SFxtave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( SICtave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( MXLtave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( SSTtave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( SSStave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( vSqtave, 1, bi, bj, myThid )
#ifdef ALLOW_DIC
CALL TIMEAVE_RESET( aCO2tave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( sWSpdtave,1, bi, bj, myThid )
CALL TIMEAVE_RESET( iceftave, 1, bi, bj, myThid )
CALL TIMEAVE_RESET( fCO2tave, 1, bi, bj, myThid )
#endif
CPL_timeAve(bi,bj) = 0.
ENDDO
ENDDO
#endif /* ALLOW_TIMEAVE */
#endif /* COMPONENT_MODULE */
RETURN
END