C $Header: /u/gcmpack/MITgcm/pkg/obcs/OBCS_PARAMS.h,v 1.7 2017/06/11 01:36:56 dimitri Exp $
C $Name: $
#ifdef ALLOW_OBCS
CBOP
C !ROUTINE: OBCS_PARAMS.h
C !INTERFACE:
C #include "OBCS_PARAMS.h"
C !DESCRIPTION:
C *==========================================================*
C | OBCS_PARAMS.h
C | o Header file containing OBCS parameters
C *==========================================================*
C | o Note: does not (and should not) contain any conditional
C | statement that depends on OBCS options ; therefore
C | can be safely included without OBCS_OPTIONS.h
C *==========================================================*
CEOP
C tidalComponents :: number of tidal components to be applied
C OBCS_maxConnect :: maximum number of connected parts
INTEGER tidalComponents
INTEGER OBCS_maxConnect
PARAMETER ( tidalComponents = 10 )
PARAMETER ( OBCS_maxConnect = sNx+sNy )
C-- COMMON /OBC_PARM_I/ OBCS integer-type parameter
C OBCS_u1_adv_T :: >0: use 1rst O. upwind adv-scheme @ OB (=1: only if outflow)
C OBCS_u1_adv_S :: >0: use 1rst O. upwind adv-scheme @ OB (=1: only if outflow)
C OBCS_monSelect :: select group of variables to monitor
C spongeThickness :: number grid points that make up the sponge layer (def=0)
COMMON /OBC_PARM_I/
& OBCS_u1_adv_T, OBCS_u1_adv_S,
& OBCS_monSelect,
& spongeThickness
INTEGER OBCS_u1_adv_T, OBCS_u1_adv_S
INTEGER OBCS_monSelect
INTEGER spongeThickness
C-- COMMON /OBC_PARM_L/ OBCS logical-type parameter
C useOrlanskiNorth/South/East/West
C :: specify Orlanski boundary conditions for northern/
C southern/eastern/Western
C useStevensNorth/South/East/West
C :: use open boundary computations following Stevens (1990)
C useStevensPhaseVel
C :: use phase velocity contribution for open boundary
C computations following Stevens (1990), default = true
C useStevensAdvection
C :: use advective contribution for open boundary
C computations following Stevens (1990), default = true
C
C useOBCSsponge :: turns on sponge layer along boundaries (def=false)
C OBCSsponge_N :: turns on sponge layer along North boundary (def=true)
C OBCSsponge_S :: turns on sponge layer along South boundary (def=true)
C OBCSsponge_E :: turns on sponge layer along East boundary (def=true)
C OBCSsponge_W :: turns on sponge layer along West boundary (def=true)
C OBCSsponge_UatNS :: turns on uVel sponge at North/South boundaries (def=true)
C OBCSsponge_UatEW :: turns on uVel sponge at East/West boundaries (def=true)
C OBCSsponge_VatNS :: turns on vVel sponge at North/South boundaries (def=true)
C OBCSsponge_VatEW :: turns on vVel sponge at East/West boundaries (def=true)
C OBCSsponge_Theta :: turns on Theta sponge along boundaries (def=true)
C OBCSsponge_Salt :: turns on Salt sponge along boundaries (def=true)
C useLinearSponge :: use linear instead of exponential sponge (def=false)
C
C useOBCSbalance :: balance the volume flux through boundary
C at every time step
C useOBCStides :: modify OB normal flow to add tidal forcing
C NOTE that at the moment tidal forcing is applied
C only to "normal" flow.
C useOBCSprescribe :: read boundary conditions from a file
C (overrides Orlanski and other boundary values)
C OBCSprintDiags :: print boundary values to STDOUT (def=true)
C OBCSfixTopo :: check and adjust topography for problematic gradients
C across boundaries (def=true)
COMMON /OBC_PARM_L/
& useOrlanskiNorth,useOrlanskiSouth,
& useOrlanskiEast,useOrlanskiWest,
& useStevensNorth,useStevensSouth,
& useStevensEast,useStevensWest,
& useStevensPhaseVel, useStevensAdvection,
& useOBCSsponge,
& OBCSsponge_N, OBCSsponge_S,
& OBCSsponge_E, OBCSsponge_W,
& OBCSsponge_UatNS, OBCSsponge_UatEW,
& OBCSsponge_VatNS, OBCSsponge_VatEW,
& OBCSsponge_Theta, OBCSsponge_Salt, useLinearSponge,
& useOBCSbalance, useOBCStides, useOBCSprescribe,
& OBCSprintDiags,
& OBCSfixTopo
LOGICAL useOrlanskiNorth
LOGICAL useOrlanskiSouth
LOGICAL useOrlanskiEast
LOGICAL useOrlanskiWest
LOGICAL useStevensNorth
LOGICAL useStevensSouth
LOGICAL useStevensEast
LOGICAL useStevensWest
LOGICAL useStevensPhaseVel
LOGICAL useStevensAdvection
LOGICAL useOBCSsponge
LOGICAL OBCSsponge_N
LOGICAL OBCSsponge_S
LOGICAL OBCSsponge_E
LOGICAL OBCSsponge_W
LOGICAL OBCSsponge_UatNS
LOGICAL OBCSsponge_UatEW
LOGICAL OBCSsponge_VatNS
LOGICAL OBCSsponge_VatEW
LOGICAL OBCSsponge_Theta
LOGICAL OBCSsponge_Salt
LOGICAL useLinearSponge
LOGICAL useOBCSbalance
LOGICAL useOBCStides
LOGICAL useOBCSprescribe
LOGICAL OBCSprintDiags
LOGICAL OBCSfixTopo
C-- COMMON /OBC_PARM_R/ OBCS real-type parameter
C OBCS_balanceFacN/S/E/W :: weighting factor for balancing OB normal flow
C OBCS_uvApplyFac :: multiplying factor to U,V normal comp. when applying
C OBC to 2nd column/row (for backward compatibility).
C OBCS_monitorFreq :: monitor output frequency (s) for OB statistics
C U/Vrelaxobcsinner/bound :: relaxation time scale (in seconds) on the boundary
C (bound) and at the innermost grid point of the sponge
C layer (inner); relaxation time scales in-between
C are linearly interpolated from these values
C T/SrelaxStevens :: relaxation time scale (in seconds) for T/S-points
C for Stevens boundary conditions
C tidalPeriod :: tidal period (s)
COMMON /OBC_PARM_R/
& OBCS_balanceFacN, OBCS_balanceFacS,
& OBCS_balanceFacE, OBCS_balanceFacW,
& OBCS_uvApplyFac,
& OBCS_monitorFreq,
& tidalPeriod,
& Urelaxobcsinner,Urelaxobcsbound,
& Vrelaxobcsinner,Vrelaxobcsbound,
& TrelaxStevens, SrelaxStevens
_RL OBCS_balanceFacN, OBCS_balanceFacS
_RL OBCS_balanceFacE, OBCS_balanceFacW
_RL OBCS_uvApplyFac
_RL OBCS_monitorFreq
_RL tidalPeriod(tidalComponents)
_RS Urelaxobcsinner
_RS Urelaxobcsbound
_RS Vrelaxobcsinner
_RS Vrelaxobcsbound
_RS TrelaxStevens
_RS SrelaxStevens
C-- COMMON /OBC_FILES/ OBCS character-type parameter
C OB[N,S,E,W][u,v,w,t,s,eta,am,ph]File :: Files with boundary conditions,
C the letter combinations mean:
C N/S/E/W :: northern/southern/eastern/western boundary
C u/v/w/t/s :: ocean u/v/w velocities, temperature/salinity
C eta :: sea surface height
C am/ph :: tidal amplitude (m/s) / phase (s)
C OB[N,S,E,W]connectFile :: Files with connected piece Id for N/S/E/W OB grid pt
C insideOBmaskFile :: File to specify Inside OB region mask (zero beyond OB)
COMMON /OBC_FILES/
& OBNuFile, OBSuFile, OBEuFile, OBWuFile,
& OBNvFile, OBSvFile, OBEvFile, OBWvFile,
& OBNwFile, OBSwFile, OBEwFile, OBWwFile,
& OBNtFile, OBStFile, OBEtFile, OBWtFile,
& OBNsFile, OBSsFile, OBEsFile, OBWsFile,
& OBNetaFile,OBSetaFile,OBEetaFile,OBWetaFile,
& OBNamFile, OBSamFile, OBEamFile, OBWamFile,
& OBNphFile, OBSphFile, OBEphFile, OBWphFile,
& OBNconnectFile, OBSconnectFile,
& OBEconnectFile, OBWconnectFile,
& insideOBmaskFile
CHARACTER*(MAX_LEN_FNAM)
& OBNuFile, OBSuFile, OBEuFile, OBWuFile,
& OBNvFile, OBSvFile, OBEvFile, OBWvFile,
& OBNwFile, OBSwFile, OBEwFile, OBWwFile,
& OBNtFile, OBStFile, OBEtFile, OBWtFile,
& OBNsFile, OBSsFile, OBEsFile, OBWsFile,
& OBNetaFile,OBSetaFile,OBEetaFile,OBWetaFile,
& OBNamFile, OBSamFile, OBEamFile, OBWamFile,
& OBNphFile, OBSphFile, OBEphFile, OBWphFile,
& OBNconnectFile, OBSconnectFile,
& OBEconnectFile, OBWconnectFile,
& insideOBmaskFile
#endif /* ALLOW_OBCS */