C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_init_fixed.F,v 1.13 2016/01/11 21:46:55 jmc Exp $
C $Name: $
#include "DIC_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
C !ROUTINE: DIC_INIT_FIXED
C !INTERFACE:
SUBROUTINE DIC_INIT_FIXED( myThid )
C !DESCRIPTION:
C Initialize fixed quantities
C !USES:
IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "GRID.h"
#include "DIC_VARS.h"
#include "DIC_ATMOS.h"
C !INPUT PARAMETERS:
C myThid :: my Thread Id number
INTEGER myThid
CEOP
#ifdef ALLOW_DIC
INTEGER k
CHARACTER*(MAX_LEN_MBUF) msgBuf
INTEGER iUnit
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
_BEGIN_MASTER(myThid)
C set up coefficients for DIC chemistry
C define Schmidt no. coefficients for CO2
sca1 = 2073.1 _d 0
sca2 = -125.62 _d 0
sca3 = 3.6276 _d 0
sca4 = -0.043219 _d 0
C define Schmidt no. coefficients for O2
C based on Keeling et al [GBC, 12, 141, (1998)]
sox1 = 1638.0 _d 0
sox2 = -81.83 _d 0
sox3 = 1.483 _d 0
sox4 = -0.008004 _d 0
C coefficients for determining saturation O2
oA0= 2.00907 _d 0
oA1= 3.22014 _d 0
oA2= 4.05010 _d 0
oA3= 4.94457 _d 0
oA4= -2.56847 _d -1
oA5= 3.88767 _d 0
oB0= -6.24523 _d -3
oB1= -7.37614 _d -3
oB2= -1.03410 _d -2
oB3= -8.17083 _d -3
oC0= -4.88682 _d -7
C Set other constant/flag
IF ( dic_int1.EQ.2 ) THEN
CALL MDSFINDUNIT( iUnit, mythid )
OPEN(UNIT=iUnit,FILE='co2atmos.dat',STATUS='old')
DO k=1,dic_int2
READ(iUnit,*) co2atmos(k)
WRITE(standardMessageUnit,*) 'co2atmos',co2atmos(k)
ENDDO
CLOSE(iUnit)
ENDIF
#ifdef DIC_BIOTIC
#ifdef ALLOW_AUTODIFF
cph nlev=Nr used in TAF store directive
nlev=Nr
#else
k = 1
DO WHILE ( k .LT. Nr .AND. rC(k) .GE. -zcrit )
k = k+1
ENDDO
nlev = k
#endif
C-- Print out nlev values :
iUnit = standardMessageUnit
WRITE(msgBuf,'(A)') ' '
CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid)
WRITE(msgBuf,'(A)') '// ==================================='
CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid)
WRITE(msgBuf,'(A)') '// DIC_INIT_FIXED parameters :'
CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid)
CALL WRITE_0D_I( nlev, INDEX_NONE, 'nlev =',
& ' /* Number of level over which Bio act is computed */')
#endif /* DIC_BIOTIC */
_END_MASTER(myThid)
#ifdef ALLOW_MNC
IF ( useMNC ) THEN
CALL DIC_MNC_INIT( myThid )
ENDIF
#endif /* ALLOW_MNC */
#ifdef ALLOW_DIAGNOSTICS
IF ( useDIAGNOSTICS ) THEN
CALL DIC_DIAGNOSTICS_INIT( myThid )
ENDIF
#endif /* ALLOW_DIAGNOSTICS */
#endif /* ALLOW_DIC */
RETURN
END