#include "CPP_OPTIONS.h"
#include "PACKAGES_CONFIG.h"
CBOP
C !ROUTINE: RBCS_READPARMS
C !INTERFACE: ==========================================================
SUBROUTINE RBCS_READPARMS( myThid )
C !DESCRIPTION:
C Initialize RBCS parameters, read in data.rbcs
C !USES: ===============================================================
IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "GRID.h"
#ifdef ALLOW_PTRACERS
#include "PTRACERS_SIZE.h"
#include "PTRACERS.h"
#endif
#include "RBCS.h"
C !INPUT PARAMETERS: ===================================================
C myThid :: thread number
INTEGER myThid
C !OUTPUT PARAMETERS: ==================================================
C none
#ifdef ALLOW_RBCS
C === Local variables ===
C msgBuf - Informational/error meesage buffer
C iUnit - Work variable for IO unit number
CHARACTER*(MAX_LEN_MBUF) msgBuf
INTEGER iUnit
INTEGER iTracer
INTEGER ic
INTEGER irbc
CEOP
C-- RBCS parameter
NAMELIST //RBCS_PARM01
& tauRelaxT,
& tauRelaxS,
& relaxMaskFile,
& relaxTFile,
& relaxSFile,
& useRBCtemp,
& useRBCsalt,
& useRBCptracers,
& rbcsIniter,
& rbcsForcingPeriod,
& rbcsForcingCycle
#ifdef ALLOW_PTRACERS
NAMELIST //RBCS_PARM02
& useRBCptrnum, tauRelaxPTR,
& relaxPtracerFile
#endif
C-- Default values
tauRelaxT =1.
tauRelaxS =1.
do irbc=1,maskLEN
relaxMaskFile(irbc) = ' '
enddo
relaxTFile = ' '
relaxSFile = ' '
useRBCtemp=.FALSE.
useRBCsalt=.FALSE.
useRBCptracers=.FALSE.
rbcsIniter=nIter0
rbcsForcingPeriod=0.
rbcsForcingCycle=0.
#ifdef ALLOW_PTRACERS
DO iTracer=1,PTRACERS_num
useRBCptrnum(iTracer)=.FALSE.
tauRelaxPTR(iTracer)=1.
DO ic = 1,MAX_LEN_FNAM
relaxPtracerFile(iTracer)(ic:ic) = ' '
ENDDO
ENDDO
#endif
C Open and read the data.rbcs file
_BEGIN_MASTER(myThid)
WRITE(msgBuf,'(A)') ' RBCS_READPARMS: opening data.rbcs'
CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
CALL OPEN_COPY_DATA_FILE(
I 'data.rbcs', 'RBCS_PARM01',
O iUnit,
I myThid )
READ(UNIT=iUnit,NML=RBCS_PARM01)
#ifdef ALLOW_PTRACERS
CALL OPEN_COPY_DATA_FILE(
I 'data.rbcs', 'RBCS_PARM02',
O iUnit,
I myThid )
READ(UNIT=iUnit,NML=RBCS_PARM02)
#endif
WRITE(msgBuf,'(A)')
& ' RBCS_READPARMS: finished reading data.rbcs'
CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
C Close the open data file
CLOSE(iUnit)
_END_MASTER(myThid)
C Everyone else must wait for the parameters to be loaded
_BARRIER
#endif /* ALLOW_RBCS */
RETURN
END