Back to home page

darwin3

 
 

    


File indexing completed on 2026-01-27 18:49:50 UTC

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