C $Header: /u/gcmpack/MITgcm/pkg/ocn_compon_interf/ocn_cpl_read_pickup.F,v 1.7 2010/01/03 19:22:29 jmc Exp $
C $Name: $
#include "PACKAGES_CONFIG.h"
#include "CPP_OPTIONS.h"
CBOP
C !ROUTINE: OCN_CPL_READ_PICKUP
C !INTERFACE:
SUBROUTINE OCN_CPL_READ_PICKUP( myIter, myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE OCN_CPL_READ_PICKUP
C | o Reads fields from a pickup file for a restart
C *==========================================================*
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C == Global variables ==
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "CPL_PARAMS.h"
#include "OCNIDS.h"
#include "OCNCPL.h"
#ifdef ALLOW_PTRACERS
#include "PTRACERS_SIZE.h"
#include "PTRACERS_PARAMS.h"
#endif
C !INPUT/OUTPUT PARAMETERS:
C == Routine arguments ==
C myIter :: Iteration number
C myThid :: my Thread Id number
INTEGER myIter
INTEGER myThid
CEOP
#ifdef COMPONENT_MODULE
C !LOCAL VARIABLES:
INTEGER prec, rec_ind
CHARACTER*(MAX_LEN_FNAM) fn
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
IF ( pickupSuff.EQ.' ' ) THEN
WRITE(fn,'(A,I10.10)') 'pickup_cpl.',myIter
ELSE
WRITE(fn,'(A,A10)') 'pickup_cpl.', pickupSuff
ENDIF
prec = precFloat64
rec_ind=0
IF ( .NOT. cpl_earlyExpImpCall ) THEN
CALL READ_REC_3D_RL( fn,prec,1,atmSLPr , 1,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,HeatFlux , 2,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,qShortWave, 3,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,tauX , 4,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,tauY , 5,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,FWFlux , 6,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,iceSaltFlx, 7,myIter,myThid )
CALL READ_REC_3D_RL( fn,prec,1,seaIceMass, 8,myIter,myThid )
rec_ind=8
ENDIF
IF ( ocnCpl_exchange_DIC ) THEN
c CALL READ_REC_3D_RL( fn,prec,1,airCO2 , 9,myIter,myThid )
c CALL READ_REC_3D_RL( fn,prec,1,surfWSpeed,10,myIter,myThid )
c CALL READ_REC_3D_RL( fn,prec,1,fracIce ,11,myIter,myThid )
#ifdef ALLOW_PTRACERS
IF (nIter0.GT.PTRACERS_Iter0) THEN
rec_ind = rec_ind+1
CALL READ_REC_3D_RL( fn, prec, 1,
& fluxCO2cpl, rec_ind, myIter, myThid )
ENDIF
#endif
ENDIF
c CALL READ_REC_3D_RL( fn,prec,1,ocMxlD2cpl, 9,myIter,myThid )
c CALL READ_REC_3D_RL( fn,prec,1,SSTocn2cpl,10,myIter,myThid )
c CALL READ_REC_3D_RL( fn,prec,1,SSSocn2cpl,11,myIter,myThid )
c CALL READ_REC_3D_RL( fn,prec,1,vSqocn2cpl,12,myIter,myThid )
C-- Fill in the halo region:
IF ( .NOT. cpl_earlyExpImpCall ) THEN
_EXCH_XY_RL( atmSLPr , myThid )
_EXCH_XY_RL( HeatFlux , myThid )
_EXCH_XY_RL( qShortWave, myThid )
CALL EXCH_UV_XY_RL( tauX, tauY, .TRUE., myThid )
_EXCH_XY_RL( FWFlux , myThid )
_EXCH_XY_RL( iceSaltFlx, myThid )
_EXCH_XY_RL( seaIceMass, myThid )
ENDIF
IF ( ocnCpl_exchange_DIC ) THEN
c _EXCH_XY_RL( airCO2 , myThid )
c _EXCH_XY_RL( surfWSpeed, myThid )
c _EXCH_XY_RL( fracIce , myThid )
_EXCH_XY_RL( fluxCO2cpl, myThid )
ENDIF
#endif /* COMPONENT_MODULE */
RETURN
END