** Warning **

Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.

Last-Modified: Sun, 18 May 2024 05:11:33 GMT Content-Type: text/html; charset=utf-8 MITgcm/MITgcm/pkg/dic/dic_init_fixed.F
Back to home page

MITgcm

 
 

    


File indexing completed on 2023-11-08 06:10:16 UTC

view on githubraw file Latest commit 51e381e9 on 2023-11-07 18:00:07 UTC
3a1a157ebd Ed H*0001 #include "DIC_OPTIONS.h"
                0002 
                0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0004 CBOP
                0005 C     !ROUTINE: DIC_INIT_FIXED
                0006 
                0007 C     !INTERFACE:
                0008       SUBROUTINE DIC_INIT_FIXED( myThid )
                0009 
                0010 C     !DESCRIPTION:
                0011 C     Initialize fixed quantities
                0012 
                0013 C     !USES:
                0014       IMPLICIT NONE
                0015 #include "SIZE.h"
                0016 #include "EEPARAMS.h"
                0017 #include "PARAMS.h"
73b21e3879 Jean*0018 #include "GRID.h"
3a677ccb28 Davi*0019 #include "DIC_VARS.h"
ad6cffb5e8 Gael*0020 #include "DIC_ATMOS.h"
3a1a157ebd Ed H*0021 
                0022 C     !INPUT PARAMETERS:
175a18b00a Jean*0023 C     myThid       :: my Thread Id number
3a1a157ebd Ed H*0024       INTEGER myThid
                0025 CEOP
                0026 
                0027 #ifdef ALLOW_DIC
73b21e3879 Jean*0028       INTEGER k
b718ae76a3 Davi*0029       INTEGER iUnit
51e381e9c9 Jean*0030 #if ( defined DIC_BIOTIC || defined READ_PAR )
2e3e8c330d Jona*0031       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0032 #endif
3a677ccb28 Davi*0033 
7dccb58cca Jean*0034 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0035 
3a677ccb28 Davi*0036       _BEGIN_MASTER(myThid)
                0037 
51e381e9c9 Jean*0038 C--   Set up coefficients for DIC chemistry
3a677ccb28 Davi*0039 C define Schmidt no. coefficients for CO2
                0040       sca1 = 2073.1 _d 0
                0041       sca2 = -125.62 _d 0
                0042       sca3 =    3.6276 _d 0
                0043       sca4 =   -0.043219 _d 0
                0044 C define Schmidt no. coefficients for O2
                0045 C based on Keeling et al [GBC, 12, 141, (1998)]
                0046       sox1 = 1638.0 _d 0
                0047       sox2 = -81.83 _d 0
                0048       sox3 =    1.483 _d 0
                0049       sox4 =   -0.008004 _d 0
                0050 
                0051 C coefficients for determining saturation O2
                0052       oA0=  2.00907 _d 0
                0053       oA1=  3.22014 _d 0
                0054       oA2=  4.05010 _d 0
                0055       oA3=  4.94457 _d 0
                0056       oA4= -2.56847 _d -1
                0057       oA5=  3.88767 _d 0
                0058       oB0= -6.24523 _d -3
                0059       oB1= -7.37614 _d -3
                0060       oB2= -1.03410 _d -2
                0061       oB3= -8.17083 _d -3
                0062       oC0= -4.88682 _d -7
                0063 
51e381e9c9 Jean*0064 C--   Set other constant/flag
8aa4c714ab Jean*0065 
175a18b00a Jean*0066       IF ( dic_int1.EQ.2 ) THEN
2e3e8c330d Jona*0067         CALL MDSFINDUNIT( iUnit, myThid )
175a18b00a Jean*0068         OPEN(UNIT=iUnit,FILE='co2atmos.dat',STATUS='old')
                0069         DO k=1,dic_int2
                0070           READ(iUnit,*) co2atmos(k)
                0071           WRITE(standardMessageUnit,*) 'co2atmos',co2atmos(k)
                0072         ENDDO
                0073         CLOSE(iUnit)
                0074       ENDIF
                0075 
8aa4c714ab Jean*0076 #ifdef DIC_BIOTIC
acd5268a40 Patr*0077 #ifdef ALLOW_AUTODIFF
                0078 cph nlev=Nr used in TAF store directive
8aa4c714ab Jean*0079       nlev=Nr
                0080 #else
                0081       k = 1
                0082       DO WHILE ( k .LT. Nr .AND. rC(k) .GE. -zcrit )
                0083         k = k+1
                0084       ENDDO
                0085       nlev = k
                0086 #endif
b718ae76a3 Davi*0087 C--   Print out nlev values :
                0088       iUnit = standardMessageUnit
                0089       WRITE(msgBuf,'(A)') ' '
                0090       CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid)
                0091       WRITE(msgBuf,'(A)') '// ==================================='
                0092       CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid)
                0093       WRITE(msgBuf,'(A)') '//  DIC_INIT_FIXED parameters :'
                0094       CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid)
                0095 
51e381e9c9 Jean*0096       CALL WRITE_0D_I( nlev, INDEX_NONE, 'nlev =',
b718ae76a3 Davi*0097      &   ' /* Number of level over which Bio act is computed */')
8aa4c714ab Jean*0098 #endif /* DIC_BIOTIC */
                0099 
3a677ccb28 Davi*0100       _END_MASTER(myThid)
                0101 
51e381e9c9 Jean*0102 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0103 C--  Check some option & parameter combinations:
                0104 
                0105 C    for now, just collect here few check & stop from various places:
                0106 #ifdef READ_PAR
                0107 #ifdef USE_QSW
                0108 c     WRITE(msgBuf,'(2A)') ' DIC_INI_FORCING: ',
                0109       WRITE(msgBuf,'(2A)') 'DIC_INIT_FIXED: ',
                0110      &     'You can not use READ_PAR  and USE_QSW together'
                0111       CALL PRINT_ERROR( msgBuf, myThid )
                0112       STOP 'ABNORMAL END: S/R DIC_INIT_FIXED'
                0113 #endif
                0114       IF ( DIC_forcingCycle.GT.0. _d 0
                0115      &     .AND. DIC_parFile .EQ. ' '  ) THEN
                0116 c       WRITE(msgBuf,'(2A)') ' DIC_FIELDS_LOAD: ',
                0117         WRITE(msgBuf,'(2A)') 'DIC_INIT_FIXED: ',
                0118      &     'You need to provide a file if you want to use READ_PAR'
                0119            CALL PRINT_ERROR( msgBuf, myThid )
                0120            STOP 'ABNORMAL END: S/R DIC_INIT_FIXED'
                0121       ENDIF
                0122 #endif /* READ_PAR */
                0123 
                0124 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0125 
3a1a157ebd Ed H*0126 #ifdef ALLOW_MNC
                0127       IF ( useMNC ) THEN
                0128         CALL DIC_MNC_INIT( myThid )
                0129       ENDIF
                0130 #endif /* ALLOW_MNC */
3a677ccb28 Davi*0131 
add5eda49e Oliv*0132 #ifdef ALLOW_DIAGNOSTICS
                0133       IF ( useDIAGNOSTICS ) THEN
                0134         CALL DIC_DIAGNOSTICS_INIT( myThid )
                0135       ENDIF
                0136 #endif /* ALLOW_DIAGNOSTICS */
                0137 
3a1a157ebd Ed H*0138 #endif /* ALLOW_DIC */
                0139 
                0140       RETURN
                0141       END