C $Header: /u/gcmpack/MITgcm/model/src/packages_boot.F,v 1.34 2006/06/28 21:24:54 heimbach Exp $
C $Name: $
#include "PACKAGES_CONFIG.h"
#include "CPP_OPTIONS.h"
CBOP
C !ROUTINE: PACKAGES_BOOT
C !INTERFACE:
SUBROUTINE PACKAGES_BOOT( myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE PACKAGES_BOOT
C | o Routine to parse runtime package selection file
C *==========================================================*
C | Routine reads a flat file which contains a single flag
C | for each known "package". Flag can enables runtime
C | activation or deactivation of a package. The data is read
C | from a file called data.pkg.
C | Note - If a runtime activation flag is set on but the
C | package code was not included in the build then
C | the default behavior is to stop with an error.
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
C !INPUT/OUTPUT PARAMETERS:
C === Routine arguments ===
C myThid - Number of this instances
INTEGER myThid
C !LOCAL VARIABLES:
C === Local variables ===
C msgBuf - Informational/error meesage buffer
C iUnit - Work variable for IO unit number
CHARACTER*(MAX_LEN_MBUF) msgBuf
INTEGER iUnit
C data.pkg namelists
NAMELIST //PACKAGES
& useOPPS,
& usePP81,
& useMY82,
& useGGL90,
& useKPP,
& useGMRedi,
& useOBCS,
& useAIM,
& useLand,
& useGrdchk,
& useECCO,
& useSHAP_FILT,
& useZONAL_FILT,
& useFLT,
& usePTRACERS,
& useGCHEM,
& useRBCS,
& useOffLine,
& useSBO,
& useSEAICE,
& useShelfIce,
& useThSIce,
& useBulkForce,
& useEBM,
& usefizhi,
& usegridalt,
& useDiagnostics,
& useMNC,
& useRunClock,
& useMATRIX,
& useEMBED_FILES,
& useMYPACKAGE
CEOP
_BEGIN_MASTER(myThid)
WRITE(msgBuf,'(A)') ' PACKAGES_BOOT: opening data.pkg'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
CALL OPEN_COPY_DATA_FILE(
I 'data.pkg', 'PACKAGES_BOOT',
O iUnit,
I myThid )
C-- Default package configuration
useOPPS =.FALSE.
usePP81 =.FALSE.
useMY82 =.FALSE.
useGGL90 =.FALSE.
useKPP =.FALSE.
useGMRedi =.FALSE.
useOBCS =.FALSE.
useAIM =.FALSE.
useLand =.FALSE.
useCAL =.FALSE.
useEXF =.FALSE.
useEBM =.FALSE.
useGrdchk =.FALSE.
useECCO =.FALSE.
useSHAP_FILT =.FALSE.
useZONAL_FILT =.FALSE.
useFLT =.FALSE.
usePTRACERS =.FALSE.
useGCHEM =.FALSE.
useRBCS =.FALSE.
useOffLine =.FALSE.
useMATRIX =.FALSE.
useSBO =.FALSE.
useSEAICE =.FALSE.
useShelfIce =.FALSE.
useThSIce =.FALSE.
useBulkForce =.FALSE.
usefizhi =.FALSE.
usegridalt =.FALSE.
useDiagnostics =.FALSE.
useMNC =.FALSE.
useRunClock =.FALSE.
useMYPACKAGE =.FALSE.
C-- Read parameters from open data file
READ(UNIT=iUnit,NML=PACKAGES)
WRITE(msgBuf,'(A)') ' PACKAGES_BOOT: finished reading data.pkg'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
C-- Close the open data file
CLOSE(iUnit)
_END_MASTER(myThid)
C-- packages with hard-coded switch
#ifdef ALLOW_EXF
useEXF = .TRUE.
#endif
#ifdef ALLOW_CAL
useCAL = .TRUE.
#endif
C-- Everyone else must wait for the parameters to be loaded
_BARRIER
RETURN
END