C $Header: /u/gcmpack/MITgcm/pkg/aim_compon_interf/atm_cpl_read_pickup.F,v 1.3 2007/10/01 13:39:53 jmc Exp $
C $Name:  $

#include "CPP_OPTIONS.h"

CBOP
C     !ROUTINE: ATM_CPL_READ_PICKUP
C     !INTERFACE:
      SUBROUTINE ATM_CPL_READ_PICKUP( myIter, myThid )

C     !DESCRIPTION: \bv
C     *==========================================================*
C     | SUBROUTINE ATM_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 "ATMIDS.h"
#include "ATMCPL.h"

C     !INPUT/OUTPUT PARAMETERS:
C     == Routine arguments ==
C     myIter  :: Current time-step number
C     myThid  :: my Thread Id number
      INTEGER myIter
      INTEGER myThid
CEOP

#ifdef COMPONENT_MODULE
C     == Local variables ==
      INTEGER prec
      INTEGER i,j,bi,bj
      CHARACTER*(MAX_LEN_FNAM) fn

      WRITE(fn,'(A,I10.10)') 'pickup_cpl.',myIter
      prec = precFloat64

c     IF ( cpl_oldPickup ) THEN
C     old pickup from before checkpoint 52m_post
c       CALL READ_REC_3D_RL(fn,prec,1,SSTocn    , 1,myIter,myThid)
c       CALL READ_REC_3D_RL(fn,prec,1,HeatFlux  , 2,myIter,myThid)
c       CALL READ_REC_3D_RL(fn,prec,1,tauX      , 3,myIter,myThid)
c       CALL READ_REC_3D_RL(fn,prec,1,tauY      , 4,myIter,myThid)
c       CALL READ_REC_3D_RL(fn,prec,1,EvMPrFlux , 5,myIter,myThid)
c       CALL READ_REC_3D_RL(fn,prec,1,RunOffFlux, 6,myIter,myThid)
c       RETURN
c     ENDIF
        CALL READ_REC_3D_RL( fn,prec,1, ocMxlD    ,  1, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, SSTocn    ,  2, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, SSSocn    ,  3, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, vSqocn    ,  4, myIter,myThid )
      IF ( cpl_earlyExpImpCall ) THEN
        CALL READ_REC_3D_RL( fn,prec,1, atmSLPr   ,  5, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, HeatFlux  ,  6, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, qShortWave,  7, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, tauX      ,  8, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, tauY      ,  9, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, EvMPrFlux , 10, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, RunOffFlux, 11, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, RunOffEnFx, 12, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, iceSaltFlx, 13, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, seaIceMass, 14, myIter,myThid )
      ENDIF
      IF ( atmCpl_exchange_DIC ) THEN
        CALL READ_REC_3D_RL( fn,prec,1, flxCO2ocn , 15, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, airCO2    , 16, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, sWSpeed   , 17, myIter,myThid )
        CALL READ_REC_3D_RL( fn,prec,1, fracIce   , 18, myIter,myThid )
      ENDIF

      IF ( cpl_oldPickup .AND. cpl_earlyExpImpCall ) THEN
        _BARRIER
C-    EmP & RunOff were (before checkpoint59h) in m/s , but are now in kg/m2/s:
        DO bj = myByLo(myThid), myByHi(myThid)
         DO bi = myBxLo(myThid), myBxHi(myThid)
          DO j=1-Oly,sNy+Oly
           DO i=1-Olx,sNx+Olx
            EvMPrFlux (i,j,bi,bj) = EvMPrFlux (i,j,bi,bj)*rhoConstFresh
            RunOffFlux(i,j,bi,bj) = RunOffFlux(i,j,bi,bj)*rhoConstFresh
           ENDDO
          ENDDO
         ENDDO
        ENDDO
      ENDIF

#endif /* COMPONENT_MODULE */

      RETURN
      END