C $Header: /u/gcmpack/MITgcm/pkg/atm_compon_interf/cpl_import_cplparms.F,v 1.2 2016/01/06 00:45:23 jmc Exp $
C $Name: $
#include "ATM_CPL_OPTIONS.h"
CBOP 0
C !ROUTINE: CPL_IMPORT_CPLPARMS
C !INTERFACE:
SUBROUTINE CPL_IMPORT_CPLPARMS( myThid )
C !DESCRIPTION:
C *==========================================================*
C | SUBROUTINE CPL_IMPORT_CPLPARMS
C | o Routine for importing coupling parameters
C | from/to the coupler layer
C *==========================================================*
C | this version is specific to 1 component (atmos)
C *==========================================================*
C !USES:
IMPLICIT NONE
C == Global variables ==
#include "SIZE.h"
#include "EEPARAMS.h"
#include "CPL_PARAMS.h"
#include "ATMIDS.h"
C !INPUT/OUTPUT PARAMETERS:
C == Routine arguments ==
C myThid :: Thread number for this instance of the routine
INTEGER myThid
CEOP
C !LOCAL VARIABLES:
C == Local variables ==
C i :: Loop counter
C parBuf :: local buffer to receive coupler-params
C msgBuf :: Informational/error message buffer
INTEGER i
INTEGER parBuf(atmParSize)
CHARACTER*(MAX_LEN_MBUF) msgBuf
_BARRIER
_BEGIN_MASTER( myThid )
C-- Initialise error counter:
cplErrorCount = 0
C- Initialise buffer
DO i=1,atmParSize
parBuf(i) = 0
ENDDO
C- Receive coupler configuration info.
C o Import coupling exhange-field selectors (coupler params)
CALL COMPRECV_I4VEC(
I atmCplParamsName, atmParSize,
O parBuf )
C-dBug:
WRITE(standardMessageUnit,'(A,10I6)')
& ' CPL_IMPORT_CPLPARMS: Recv parBuf=', (parBuf(i),i=1,atmParSize)
C-dBug:
C- o Set options for coupling exchange
IF ( atmParSize.EQ.6 ) THEN
atm_cplSequential = parBuf(1).EQ.1
atm_cplExch_RunOff = parBuf(2).GE.2
atm_cplExch1W_sIce = parBuf(3).GE.2
atm_cplExch2W_sIce = parBuf(4).GE.2
atm_cplExch_SaltPl = parBuf(5).GE.2
atm_cplExch_DIC = parBuf(6).GE.2
C- save coupler parameter:
cpl_exchange_RunOff = parBuf(2)
cpl_exchange1W_sIce = parBuf(3)
cpl_exchange2W_sIce = parBuf(4)
cpl_exchange_SaltPl = parBuf(5)
cpl_exchange_DIC = parBuf(6)
ELSE
C- If not using an up-to-date ATMIDS.h with the wrong atmParSize
cplErrorCount = cplErrorCount + 1
WRITE(msgBuf,'(2A,I4,A)') 'CPL_IMPORT_CPLPARMS: ',
& 'atmParSize=', atmParSize, ' is wrong (expect 6)'
CALL PRINT_ERROR( msgBuf, myThid )
WRITE(msgBuf,'(2A,I4,A)') 'CPL_IMPORT_CPLPARMS: ',
& '==> set ErrorCount=', cplErrorCount, ' (Fatal)'
CALL PRINT_ERROR( msgBuf, myThid )
ENDIF
_END_MASTER( myThid )
_BARRIER
RETURN
END