Back to home page

MITgcm

 
 

    


File indexing completed on 2024-05-19 05:10:57 UTC

view on githubraw file Latest commit 672b8226 on 2024-05-18 15:32:33 UTC
08da45d586 Jean*0001 #ifdef ALLOW_OBCS
                0002 
                0003 CBOP
                0004 C     !ROUTINE: OBCS_PARAMS.h
                0005 C     !INTERFACE:
                0006 C     #include "OBCS_PARAMS.h"
                0007 
                0008 C     !DESCRIPTION:
                0009 C     *==========================================================*
                0010 C     | OBCS_PARAMS.h
                0011 C     | o Header file containing OBCS parameters
                0012 C     *==========================================================*
                0013 C     | o Note: does not (and should not) contain any conditional
                0014 C     |   statement that depends on OBCS options ; therefore
                0015 C     |   can be safely included without OBCS_OPTIONS.h
                0016 C     *==========================================================*
                0017 CEOP
                0018 
672b822630 Jean*0019 C OBCS_tideCompSize :: size of tidal components arrays
                0020 C                      (not smaller than OBCS_nTidalComp)
                0021 C OBCS_maxConnect   :: maximum number of connected parts
                0022       INTEGER OBCS_tideCompSize
e4a300ec91 Jean*0023       INTEGER OBCS_maxConnect
672b822630 Jean*0024       PARAMETER ( OBCS_tideCompSize = 10 )
e4a300ec91 Jean*0025       PARAMETER ( OBCS_maxConnect = sNx+sNy )
6f4cf52d27 Dimi*0026 
4fb81a5efb Jean*0027 C--   COMMON /OBC_PARM_I/ OBCS integer-type parameter
                0028 C OBCS_u1_adv_T    :: >0: use 1rst O. upwind adv-scheme @ OB (=1: only if outflow)
                0029 C OBCS_u1_adv_S    :: >0: use 1rst O. upwind adv-scheme @ OB (=1: only if outflow)
672b822630 Jean*0030 C OBCS_nTidalComp  :: number of tidal components to be applied
4fb81a5efb Jean*0031 C OBCS_monSelect   :: select group of variables to monitor
                0032 C spongeThickness  :: number grid points that make up the sponge layer (def=0)
                0033       COMMON /OBC_PARM_I/
                0034      & OBCS_u1_adv_T, OBCS_u1_adv_S,
672b822630 Jean*0035      & OBCS_nTidalComp, OBCS_monSelect,
4fb81a5efb Jean*0036      & spongeThickness
                0037       INTEGER OBCS_u1_adv_T, OBCS_u1_adv_S
672b822630 Jean*0038       INTEGER OBCS_nTidalComp
4fb81a5efb Jean*0039       INTEGER OBCS_monSelect
                0040       INTEGER spongeThickness
08da45d586 Jean*0041 
4fb81a5efb Jean*0042 C--   COMMON /OBC_PARM_L/ OBCS logical-type parameter
08da45d586 Jean*0043 C useOrlanskiNorth/South/East/West
                0044 C                  :: specify Orlanski boundary conditions for northern/
                0045 C                     southern/eastern/Western
                0046 C useStevensNorth/South/East/West
                0047 C                  :: use open boundary computations following Stevens (1990)
                0048 C useStevensPhaseVel
                0049 C                  :: use phase velocity contribution for open boundary
                0050 C                     computations following Stevens (1990), default = true
                0051 C useStevensAdvection
                0052 C                  :: use advective contribution for open boundary
                0053 C                     computations following Stevens (1990), default = true
432b2a4585 Dimi*0054 C
672b822630 Jean*0055 C useOBCSprescribe :: read boundary conditions from a file
                0056 C                      (overrides Orlanski and other boundary values)
                0057 C useOBCStides     :: modify OB velocity by adding barotropic tidal component
432b2a4585 Dimi*0058 C useOBCSsponge    :: turns on sponge layer along boundaries (def=false)
                0059 C OBCSsponge_N     :: turns on sponge layer along North boundary (def=true)
                0060 C OBCSsponge_S     :: turns on sponge layer along South boundary (def=true)
                0061 C OBCSsponge_E     :: turns on sponge layer along East boundary (def=true)
                0062 C OBCSsponge_W     :: turns on sponge layer along West boundary (def=true)
                0063 C OBCSsponge_UatNS :: turns on uVel sponge at North/South boundaries (def=true)
                0064 C OBCSsponge_UatEW :: turns on uVel sponge at East/West boundaries (def=true)
                0065 C OBCSsponge_VatNS :: turns on vVel sponge at North/South boundaries (def=true)
                0066 C OBCSsponge_VatEW :: turns on vVel sponge at East/West boundaries (def=true)
                0067 C OBCSsponge_Theta :: turns on Theta sponge along boundaries (def=true)
                0068 C OBCSsponge_Salt  :: turns on Salt sponge along boundaries (def=true)
                0069 C useLinearSponge  :: use linear instead of exponential sponge (def=false)
                0070 C
08da45d586 Jean*0071 C useOBCSbalance   :: balance the volume flux through boundary
                0072 C                     at every time step
abfe198bce Mart*0073 C OBCSbalanceSurf  :: also include surface flux of mass into balance
08da45d586 Jean*0074 C OBCSprintDiags   :: print boundary values to STDOUT (def=true)
                0075 C OBCSfixTopo      :: check and adjust topography for problematic gradients
                0076 C                     across boundaries (def=true)
                0077 
                0078       COMMON /OBC_PARM_L/
                0079      & useOrlanskiNorth,useOrlanskiSouth,
                0080      & useOrlanskiEast,useOrlanskiWest,
                0081      & useStevensNorth,useStevensSouth,
                0082      & useStevensEast,useStevensWest,
                0083      & useStevensPhaseVel, useStevensAdvection,
672b822630 Jean*0084      & useOBCSprescribe, useOBCStides, useOBCSsponge,
432b2a4585 Dimi*0085      & OBCSsponge_N, OBCSsponge_S,
                0086      & OBCSsponge_E, OBCSsponge_W,
                0087      & OBCSsponge_UatNS, OBCSsponge_UatEW,
                0088      & OBCSsponge_VatNS, OBCSsponge_VatEW,
                0089      & OBCSsponge_Theta, OBCSsponge_Salt, useLinearSponge,
672b822630 Jean*0090      & useOBCSbalance, OBCSbalanceSurf,
05b5fb3079 Jean*0091      & OBCSprintDiags,
08da45d586 Jean*0092      & OBCSfixTopo
                0093       LOGICAL useOrlanskiNorth
                0094       LOGICAL useOrlanskiSouth
                0095       LOGICAL useOrlanskiEast
                0096       LOGICAL useOrlanskiWest
                0097       LOGICAL useStevensNorth
                0098       LOGICAL useStevensSouth
                0099       LOGICAL useStevensEast
                0100       LOGICAL useStevensWest
                0101       LOGICAL useStevensPhaseVel
                0102       LOGICAL useStevensAdvection
672b822630 Jean*0103       LOGICAL useOBCSprescribe
                0104       LOGICAL useOBCStides
08da45d586 Jean*0105       LOGICAL useOBCSsponge
432b2a4585 Dimi*0106       LOGICAL OBCSsponge_N
                0107       LOGICAL OBCSsponge_S
                0108       LOGICAL OBCSsponge_E
                0109       LOGICAL OBCSsponge_W
                0110       LOGICAL OBCSsponge_UatNS
                0111       LOGICAL OBCSsponge_UatEW
                0112       LOGICAL OBCSsponge_VatNS
                0113       LOGICAL OBCSsponge_VatEW
                0114       LOGICAL OBCSsponge_Theta
                0115       LOGICAL OBCSsponge_Salt
                0116       LOGICAL useLinearSponge
08da45d586 Jean*0117       LOGICAL useOBCSbalance
abfe198bce Mart*0118       LOGICAL OBCSbalanceSurf
08da45d586 Jean*0119       LOGICAL OBCSprintDiags
                0120       LOGICAL OBCSfixTopo
                0121 
4fb81a5efb Jean*0122 C--   COMMON /OBC_PARM_R/ OBCS real-type parameter
672b822630 Jean*0123 C OBCS_tidalPeriod        :: tidal period (s) for each tidal component
4fb81a5efb Jean*0124 C OBCS_balanceFacN/S/E/W  :: weighting factor for balancing OB normal flow
                0125 C OBCS_uvApplyFac         :: multiplying factor to U,V normal comp. when applying
                0126 C                            OBC to 2nd column/row (for backward compatibility).
                0127 C OBCS_monitorFreq        :: monitor output frequency (s) for OB statistics
                0128 C U/Vrelaxobcsinner/bound :: relaxation time scale (in seconds) on the boundary
                0129 C                            (bound) and at the innermost grid point of the sponge
                0130 C                            layer (inner); relaxation time scales in-between
                0131 C                            are linearly interpolated from these values
                0132 C T/SrelaxStevens         :: relaxation time scale (in seconds) for T/S-points
                0133 C                            for Stevens boundary conditions
08da45d586 Jean*0134       COMMON /OBC_PARM_R/
672b822630 Jean*0135      &     OBCS_tidalPeriod,
08da45d586 Jean*0136      &     OBCS_balanceFacN, OBCS_balanceFacS,
                0137      &     OBCS_balanceFacE, OBCS_balanceFacW,
                0138      &     OBCS_uvApplyFac,
                0139      &     OBCS_monitorFreq,
672b822630 Jean*0140      & Urelaxobcsinner, Urelaxobcsbound,
                0141      & Vrelaxobcsinner, Vrelaxobcsbound,
08da45d586 Jean*0142      & TrelaxStevens, SrelaxStevens
672b822630 Jean*0143       _RL OBCS_tidalPeriod(OBCS_tideCompSize)
08da45d586 Jean*0144       _RL OBCS_balanceFacN, OBCS_balanceFacS
                0145       _RL OBCS_balanceFacE, OBCS_balanceFacW
                0146       _RL OBCS_uvApplyFac
                0147       _RL OBCS_monitorFreq
                0148       _RS Urelaxobcsinner
                0149       _RS Urelaxobcsbound
                0150       _RS Vrelaxobcsinner
                0151       _RS Vrelaxobcsbound
                0152       _RS TrelaxStevens
                0153       _RS SrelaxStevens
                0154 
4fb81a5efb Jean*0155 C--   COMMON /OBC_FILES/ OBCS character-type parameter
672b822630 Jean*0156 C OB[N,S,E,W][u,v,w,t,s,eta]File  :: Files with boundary conditions,
6f4cf52d27 Dimi*0157 C                                         the letter combinations mean:
4fb81a5efb Jean*0158 C                     N/S/E/W   :: northern/southern/eastern/western boundary
6f4cf52d27 Dimi*0159 C                     u/v/w/t/s :: ocean u/v/w velocities, temperature/salinity
                0160 C                     eta       :: sea surface height
672b822630 Jean*0161 C OB[N,S,E,W]_[u,v]Tid[Am,Ph]File :: Files with barotropic tidal components
                0162 C                      Am/Ph      :: Amplitude (m/s) / Phase (s)
e4a300ec91 Jean*0163 C OB[N,S,E,W]connectFile :: Files with connected piece Id for N/S/E/W OB grid pt
                0164 C insideOBmaskFile   :: File to specify Inside OB region mask (zero beyond OB)
08da45d586 Jean*0165       COMMON /OBC_FILES/
                0166      &      OBNuFile,  OBSuFile,  OBEuFile,  OBWuFile,
                0167      &      OBNvFile,  OBSvFile,  OBEvFile,  OBWvFile,
                0168      &      OBNwFile,  OBSwFile,  OBEwFile,  OBWwFile,
                0169      &      OBNtFile,  OBStFile,  OBEtFile,  OBWtFile,
                0170      &      OBNsFile,  OBSsFile,  OBEsFile,  OBWsFile,
672b822630 Jean*0171      &      OBNetaFile, OBSetaFile, OBEetaFile, OBWetaFile,
                0172      &  OBN_uTidAmFile, OBS_uTidAmFile, OBE_uTidAmFile, OBW_uTidAmFile,
                0173      &  OBN_vTidAmFile, OBS_vTidAmFile, OBE_vTidAmFile, OBW_vTidAmFile,
                0174      &  OBN_uTidPhFile, OBS_uTidPhFile, OBE_uTidPhFile, OBW_uTidPhFile,
                0175      &  OBN_vTidPhFile, OBS_vTidPhFile, OBE_vTidPhFile, OBW_vTidPhFile,
e4a300ec91 Jean*0176      &      OBNconnectFile, OBSconnectFile,
                0177      &      OBEconnectFile, OBWconnectFile,
08da45d586 Jean*0178      &      insideOBmaskFile
                0179       CHARACTER*(MAX_LEN_FNAM)
                0180      &      OBNuFile,  OBSuFile,  OBEuFile,  OBWuFile,
                0181      &      OBNvFile,  OBSvFile,  OBEvFile,  OBWvFile,
                0182      &      OBNwFile,  OBSwFile,  OBEwFile,  OBWwFile,
                0183      &      OBNtFile,  OBStFile,  OBEtFile,  OBWtFile,
                0184      &      OBNsFile,  OBSsFile,  OBEsFile,  OBWsFile,
672b822630 Jean*0185      &      OBNetaFile, OBSetaFile, OBEetaFile, OBWetaFile,
                0186      &  OBN_uTidAmFile, OBS_uTidAmFile, OBE_uTidAmFile, OBW_uTidAmFile,
                0187      &  OBN_vTidAmFile, OBS_vTidAmFile, OBE_vTidAmFile, OBW_vTidAmFile,
                0188      &  OBN_uTidPhFile, OBS_uTidPhFile, OBE_uTidPhFile, OBW_uTidPhFile,
                0189      &  OBN_vTidPhFile, OBS_vTidPhFile, OBE_vTidPhFile, OBW_vTidPhFile,
e4a300ec91 Jean*0190      &      OBNconnectFile, OBSconnectFile,
                0191      &      OBEconnectFile, OBWconnectFile,
08da45d586 Jean*0192      &      insideOBmaskFile
                0193 
                0194 #endif /* ALLOW_OBCS */