C $Header: /u/gcmpack/MITgcm/pkg/cost/cost_readparms.F,v 1.17 2017/08/09 15:23:38 mlosch Exp $
C $Name: $
#include "COST_OPTIONS.h"
subroutine COST_READPARMS( mythid )
c ==================================================================
c SUBROUTINE cost_readparms
c ==================================================================
c
c o This routine initialises the package cost.
c
c started: Ralf Giering 18-Jan-2001
c
c ==================================================================
c SUBROUTINE cost_readparms
c ==================================================================
implicit none
c == global variables ==
#include "EEPARAMS.h"
#include "SIZE.h"
#include "GRID.h"
#include "PARAMS.h"
#include "cost.h"
c == routine arguments ==
integer mythid
c == local variables ==
character*(max_len_mbuf) msgbuf
integer iUnit
c == end of interface ==
c-- Read the namelist input.
namelist //cost_nml
& mult_atl, mult_test, mult_tracer
& , multTheta, multSalt, multUvel, multVvel, multEtan
#ifdef ALLOW_COST_TRANSPORT
& , mult_transport
#endif
#ifdef ALLOW_COST_DEPTH
& , mult_depth
#endif
& , lastinterval
cHFLUXM_CONTROL
& , mult_temp_tut, mult_hflux_tut
cHFLUXM_CONTROL
_BEGIN_MASTER( myThid )
c-- Set default values.
mult_atl = 0. _d 0
mult_test = 0. _d 0
mult_tracer = 0. _d 0
multTheta = 0. _d 0
multSalt = 0. _d 0
multUvel = 0. _d 0
multVvel = 0. _d 0
multEtan = 0. _d 0
#ifdef ALLOW_COST_TRANSPORT
mult_transport = 0. _d 0
#endif
#ifdef ALLOW_COST_DEPTH
mult_depth = 0. _d 0
#endif
cHFLUXM_CONTROL
mult_temp_tut = 0. _d 0
mult_hflux_tut = 0. _d 0
cHFLUXM_CONTROL
c-- 30*24*3600 = 2592000 = 1 model month
lastinterval = 2592000.
c-- Next, read the cost data file.
WRITE(msgBuf,'(A)') 'COST_READPARMS: opening data.cost'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
CALL OPEN_COPY_DATA_FILE(
I 'data.cost', 'COST_READPARMS',
O iUnit,
I myThid )
READ( iUnit, nml = cost_nml )
WRITE(msgBuf,'(A)') 'COST_READPARMS: finished reading data.cost'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
#ifdef SINGLE_DISK_IO
CLOSE(iUnit)
#else
CLOSE(iUnit,STATUS='DELETE')
#endif /* SINGLE_DISK_IO */
IF ( MOD(lastinterval,deltaTclock) .GT. 0. )
& lastinterval = MAX(
& INT(lastinterval/deltaTclock-1)*deltaTclock,deltaTclock)
#if (defined ALLOW_COST_HFLUXM) (defined ALLOW_COST_TEMP)
c-- get the weights for the cost functions
CALL COST_WEIGHTS( myThid )
cgf : to compile previous line user is expected to provide cost_weights.F
#endif
_END_MASTER( mythid )
_BARRIER
end