Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:40:52 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
daab022f42 Step*0001 #include "GCHEM_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: GCHEM_READPARMS
                0005 
                0006 C !INTERFACE: ==========================================================
                0007       SUBROUTINE GCHEM_READPARMS( myThid )
                0008 
                0009 C !DESCRIPTION:
33df540eda Mart*0010 C     Initialize GCHEM parameters, read in data.gchem
daab022f42 Step*0011 
                0012 C !USES: ===============================================================
                0013       IMPLICIT NONE
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
e1858e35fd Step*0016 #include "PARAMS.h"
daab022f42 Step*0017 #include "GCHEM.h"
                0018 
                0019 C !INPUT PARAMETERS: ===================================================
011faa4555 Jean*0020 C  myThid         :: thread number
daab022f42 Step*0021       INTEGER myThid
                0022 
                0023 C !OUTPUT PARAMETERS: ==================================================
                0024 C  none
                0025 
5bff508b97 Step*0026 #ifdef ALLOW_GCHEM
daab022f42 Step*0027 
                0028 C !LOCAL VARIABLES: ====================================================
011faa4555 Jean*0029 C  tIter0         :: retired parameter
                0030 C  iUnit          :: unit number for I/O
                0031 C  msgBuf         :: message buffer
e1858e35fd Step*0032       INTEGER tIter0
daab022f42 Step*0033       INTEGER iUnit
                0034       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0035 CEOP
                0036 
35ea67eed4 Davi*0037 C- Sub-package on/off flags: not fully implemented, requires
                0038 C  to test the flag before any corresponding pkg S/R call
                0039 
727f3ba9e2 Jean*0040       NAMELIST /GCHEM_PARM01/
35ea67eed4 Davi*0041      &                   useCFC,
0b2b69e236 Jean*0042      &                   useDIC,
                0043      &                   useBLING,
011faa4555 Jean*0044      &                   useSPOIL,
5dae554984 Oliv*0045      &                   useDARWIN,
011faa4555 Jean*0046      &           fileName1, fileName2, fileName3,
                0047      &           fileName4, fileName5,
9b49463ca4 Step*0048      &           gchem_int1, gchem_int2, gchem_int3,
011faa4555 Jean*0049      &           gchem_int4, gchem_int5, nsubtime,
9b49463ca4 Step*0050      &           gchem_rl1, gchem_rl2, gchem_rl3,
e1858e35fd Step*0051      &           gchem_rl4, gchem_rl5,
35ea67eed4 Davi*0052      &           gchem_ForcingPeriod, gchem_ForcingCycle,
                0053      &           tIter0
727f3ba9e2 Jean*0054 
652de42f4a Jean*0055 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0056 
ae4c29e0db Jean*0057       IF ( .NOT.useGCHEM ) THEN
                0058 C-    pkg GCHEM is not used
                0059         _BEGIN_MASTER(myThid)
                0060 C-    Track pkg activation status:
                0061 C     print a (weak) warning if data.gchem is found
                0062          CALL PACKAGES_UNUSED_MSG( 'useGCHEM', ' ', ' ' )
                0063         _END_MASTER(myThid)
                0064         RETURN
                0065       ENDIF
                0066 
652de42f4a Jean*0067       _BEGIN_MASTER(myThid)
                0068 
011faa4555 Jean*0069 C- Set defaults values for parameters in GCHEM.h
652de42f4a Jean*0070        useCFC = .FALSE.
0b2b69e236 Jean*0071        useDIC = .FALSE.
                0072        useBLING  = .FALSE.
011faa4555 Jean*0073        useSPOIL  = .FALSE.
5dae554984 Oliv*0074        useDARWIN = .FALSE.
727f3ba9e2 Jean*0075        tIter0 = UNSET_I
011faa4555 Jean*0076        fileName1=' '
                0077        fileName2=' '
                0078        fileName3=' '
                0079        fileName4=' '
                0080        fileName5=' '
                0081        nsubtime = 1
9b49463ca4 Step*0082        gchem_int1=0
                0083        gchem_int2=0
                0084        gchem_int3=0
                0085        gchem_int4=0
                0086        gchem_int5=0
71ebe3095c Davi*0087        gchem_rl1=0. _d 0
                0088        gchem_rl2=0. _d 0
                0089        gchem_rl3=0. _d 0
                0090        gchem_rl4=0. _d 0
                0091        gchem_rl5=0. _d 0
011faa4555 Jean*0092 C  default periodic forcing to same as for physics
e1858e35fd Step*0093        gchem_ForcingPeriod=externForcingPeriod
                0094        gchem_ForcingCycle=externForcingCycle
011faa4555 Jean*0095 C- Open and read the data.gchem file
daab022f42 Step*0096       WRITE(msgBuf,'(A)') ' GCHEM_READPARMS: opening data.gchem'
011faa4555 Jean*0097       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0098      &                    SQUEEZE_RIGHT, myThid )
daab022f42 Step*0099       CALL OPEN_COPY_DATA_FILE(
                0100      I                   'data.gchem', 'GCHEM_PARM01',
                0101      O                   iUnit,
                0102      I                   myThid )
                0103       READ(UNIT=iUnit,NML=GCHEM_PARM01)
                0104       WRITE(msgBuf,'(A)')
                0105      &  ' GCHEM_READPARMS: finished reading data.gchem'
011faa4555 Jean*0106       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0107      &                    SQUEEZE_RIGHT, myThid )
daab022f42 Step*0108 
011faa4555 Jean*0109 C- Close the open data file
7a77863887 Mart*0110 #ifdef SINGLE_DISK_IO
daab022f42 Step*0111       CLOSE(iUnit)
7a77863887 Mart*0112 #else
                0113       CLOSE(iUnit,STATUS='DELETE')
                0114 #endif /* SINGLE_DISK_IO */
727f3ba9e2 Jean*0115 
                0116 C- Check for retired parameters:
                0117       IF ( tIter0 .NE. UNSET_I ) THEN
                0118 c      nRetired = nRetired+1
                0119        WRITE(msgBuf,'(A,A)')
                0120      &  'S/R GCHEM_READPARMS: Paramater "tIter0" is',
                0121      &  ' no longer allowed in file "data.gchem"'
011faa4555 Jean*0122        CALL PRINT_ERROR( msgBuf, myThid )
727f3ba9e2 Jean*0123        WRITE(msgBuf,'(A,A)')
                0124      &  'S/R GCHEM_READPARMS: "tIter0" has been moved to',
                0125      &  ' PTRACERS_Iter0 in file "data.ptracers".'
011faa4555 Jean*0126        CALL PRINT_ERROR( msgBuf, myThid )
727f3ba9e2 Jean*0127        STOP 'ABNORMAL END: S/R GCHEM_READPARMS'
                0128       ENDIF
                0129 
daab022f42 Step*0130       _END_MASTER(myThid)
                0131 
011faa4555 Jean*0132 C  Everyone else must wait for the parameters to be loaded
175f667f88 Jean*0133       _BARRIER
                0134 
0b2b69e236 Jean*0135 #ifdef ALLOW_CFC
                0136       IF ( useCFC ) THEN
                0137         CALL CFC_READPARMS(myThid)
                0138       ENDIF
                0139 #endif
                0140 
bcb8efaf8a Davi*0141 #ifdef ALLOW_DIC
                0142       IF ( useDIC ) THEN
175f667f88 Jean*0143         CALL DIC_READPARMS(myThid)
bcb8efaf8a Davi*0144       ENDIF
                0145 #endif
                0146 
0b2b69e236 Jean*0147 #ifdef ALLOW_BLING
                0148       IF ( useBLING ) THEN
                0149         CALL BLING_READPARMS(myThid)
254eed5bf2 Davi*0150       ENDIF
                0151 #endif
                0152 
011faa4555 Jean*0153 #ifdef ALLOW_SPOIL
                0154       IF ( useSPOIL ) THEN
                0155         CALL SPOIL_READPARMS(myThid)
                0156       ENDIF
                0157 #endif
                0158 
5dae554984 Oliv*0159 #ifdef ALLOW_DARWIN
                0160       IF ( useDARWIN ) THEN
                0161         CALL DARWIN_READPARMS(myThid)
                0162       ENDIF
                0163 #endif
                0164 
011faa4555 Jean*0165 C- Register GCHEM tracer indices
                0166       CALL GCHEM_TR_REGISTER( myThid )
                0167 
969f3d7839 Mart*0168 #endif /* ALLOW_GCHEM */
daab022f42 Step*0169 
                0170       RETURN
                0171       END