C $Header: /u/gcmpack/MITgcm/pkg/cfc/cfc_readparms.F,v 1.4 2017/08/09 15:23:38 mlosch Exp $ C $Name: $ #include "GCHEM_OPTIONS.h" CBOP C !ROUTINE: CFC_READPARMS C !INTERFACE: SUBROUTINE CFC_READPARMS( myThid ) C !DESCRIPTION: \bv C *==========================================================* C | S/R CFC_READPARMS C | o Initialise and read cfc package parameters C *==========================================================* C \ev C !USES: IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "CFC.h" #ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # include "PTRACERS_PARAMS.h" #endif C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === C myThid :: My Thread Id. number INTEGER myThid CEOP #ifdef ALLOW_CFC C === Local variables === C msgBuf :: Informational/error message buffer C iUnit :: Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER iUnit C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| NAMELIST //CFC_FORCING & atmCFC_inpFile, atmCFC_recSepTime, atmCFC_timeOffset, & atmCFC_yNorthBnd, atmCFC_ySouthBnd, & CFC_windFile, CFC_atmospFile, CFC_iceFile, & CFC_forcingPeriod, CFC_forcingCycle C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| _BEGIN_MASTER(myThid) atmCFC_inpFile = 'cfc1112.atm' atmCFC_recSepTime = 360. _d 0 * 86400. _d 0 atmCFC_timeOffset = UNSET_RL atmCFC_yNorthBnd = 10. _d 0 atmCFC_ySouthBnd = -10. _d 0 CFC_windFile = ' ' CFC_atmospFile= ' ' CFC_iceFile = ' ' c default periodic forcing to same as for physics CFC_forcingPeriod = externForcingPeriod CFC_forcingCycle = externForcingCycle WRITE(msgBuf,'(A)') ' CFC_READPARMS: opening data.cfc' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, I SQUEEZE_RIGHT, myThid ) CALL OPEN_COPY_DATA_FILE( 'data.cfc', 'CFC_READPARMS', O iUnit, myThid ) C-- Read parameters from open data file: C- forcing filenames and parameters READ(UNIT=iUnit,NML=CFC_FORCING) WRITE(msgBuf,'(A)') & ' CFC_READPARMS: finished reading data.cfc' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, I SQUEEZE_RIGHT, myThid ) C-- Close the open data file #ifdef SINGLE_DISK_IO CLOSE(iUnit) #else CLOSE(iUnit,STATUS='DELETE') #endif /* SINGLE_DISK_IO */ IF ( atmCFC_timeOffset .EQ. UNSET_RL ) THEN C- Assume that cfcTime=0 corresponds to the beginning of the 1rst record C time-period. This is consistent with 1rst record value = time-averaged C atmos-CFC over time period: cfcTime= 0 to cfcTime= 1 x atmCFC_recSepTime C- To reproduce previous time interpolation (formerly in cfc12_forcing.F), C set default timeOffset according to PTRACERS_Iter0 : atmCFC_timeOffset = atmCFC_recSepTime & - deltaTClock*PTRACERS_Iter0 ENDIF CFC_monFreq = 0. _d 0 IF ( debugLevel.GE.debLevB ) CFC_monFreq = PTRACERS_monitorFreq _END_MASTER(myThid) C-- Everyone else must wait for the parameters to be loaded _BARRIER C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #endif /* ALLOW_CFC */ RETURN END