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 */