C $Header: /u/gcmpack/MITgcm/pkg/matrix/matrix_readparms.F,v 1.6 2017/08/09 15:23:37 mlosch Exp $
C $Name: $
#include "MATRIX_OPTIONS.h"
C !ROUTINE: MATRIX_READPARMS
SUBROUTINE MATRIX_READPARMS( myThid )
C !DESCRIPTION:
C Initialize MATRIX parameters, read in data.matrix
IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "PTRACERS_SIZE.h"
#include "MATRIX.h"
C !INPUT PARAMETERS:
C myThid :: thread number
INTEGER myThid
C !OUTPUT PARAMETERS:
C none
#ifdef ALLOW_MATRIX
C !LOCAL VARIABLES:
C iUnit :: unit number for I/O
C msgBuf :: message buffer
INTEGER iUnit
CHARACTER*(MAX_LEN_MBUF) msgBuf
C Open and read the data.matrix file
NAMELIST //MATRIX_PARM01 expMatrixWriteTime, impMatrixWriteTime
IF ( .NOT.useMATRIX ) THEN
C- pkg MATRIX is not used
_BEGIN_MASTER(myThid)
C- Track pkg activation status:
C print a (weak) warning if data.matrix is found
CALL PACKAGES_UNUSED_MSG( 'useMATRIX', ' ', ' ' )
_END_MASTER(myThid)
RETURN
ENDIF
_BEGIN_MASTER(myThid)
expMatrixWriteTime = 10. _d 10
impMatrixWriteTime = 10. _d 10
WRITE(msgBuf,'(A)') ' MATRIX_READPARMS: opening data.matrix'
CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
CALL OPEN_COPY_DATA_FILE(
I 'data.matrix', 'MATRIX_READPARMS',
O iUnit,
I myThid )
READ(UNIT=iUnit,NML=MATRIX_PARM01)
WRITE(msgBuf,'(A)')
& ' MATRIX_READPARMS: finished reading data.matrix'
CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
C Close the open data file
#ifdef SINGLE_DISK_IO
CLOSE(iUnit)
#else
CLOSE(iUnit,STATUS='DELETE')
#endif /* SINGLE_DISK_IO */
_END_MASTER(myThid)
C Everyone else must wait for the parameters to be loaded
_BARRIER
#endif /* ALLOW_MATRIX */
RETURN
END