[MITgcm-support] Freshwater OBCS problem

Dustin Carroll spanishcastlemagik at gmail.com
Thu Dec 27 14:00:02 EST 2012


Hello Dimitris and Jody,

First off, thank you for your helpful responses and following up with me. This listserv is a great resource.

I must be doing something inherently wrong in my setup. Hopefully you can help me debug it. Let me try to explain my model setup, and let me know if you need some information.

The domain is 820 x 280 cells. I have a 100km telescoping sponge layer on both the W and E boundaries. The non-sponge grid of the model (780 x 280) has 100m spacing in both the x and y direction. The sponge layers gradually increase so the total 20 cells of the sponge layer is 100km.

I have 38 Z cells, with cell resolution increasing from 2.5m near the surface to 100m near the bottom (1200m depth)

The non sponge part of the grid is bathymetry of a fjord, ranging from 0 to 1200m with open channels on the W, and E boundaries. The depths at the sponge layers is 600m and is open ocean with no obstructions.

I am providing initial T and S profiles from a CTD cast near the area. T ranges from 4.5 to 0. and S ranges ~ 33-34.

I am trying to force fresh water into my fjord on the eastern boundary. I have set up my time dependent forcing files using OBCS and EXF. I am forcing water of 1 salinity and 1 deg C through the E boundary. I am using a u velocity of -0.1 m/s. I have tried to limit the flow into the model to just the surface layer and also to the entire water column (neither works.)

I also tried turning off the forcing and just setting certain locations of the initial T and S to (1 psu and 1 deg C). This causes the model to get negative salinities as well.

I have attached my data, data.exf, and data.obcs. Thanks again, I'm looking forward to getting this running and learning more in the process.

My CLF conditions < 0 in the output.txt as well

Cheers,
Dustin 

This what happens in my output.txt

(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector =    F
(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: zeroPsNH=    F , zeroMeanPnh=    F
(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: oldFreeSurfTerm =    F
 cg2d: Sum(rhs),rhsMax =  -1.23669643624173E-01  1.23909669410489E+00
 cg3d: Sum(rhs),rhsMax =   2.92987389839203E-03  2.74021546800487E-04
 cg2d: Sum(rhs),rhsMax =  -3.09456978004173E-02  9.89371257994956E+00
 cg3d: Sum(rhs),rhsMax =   9.66636637066391E-05  8.58123491164106E-03
 cg2d: Sum(rhs),rhsMax =  -2.95267011703648E-04  1.55380574516224E+03
 cg3d: Sum(rhs),rhsMax =  -5.13489702243333E-07  4.32634731905807E+00
 cg2d: Sum(rhs),rhsMax =  -1.19444066446460E-09  5.11618129296292E+08
 cg3d: Sum(rhs),rhsMax =  -4.49303409485987E-07  2.22536655847759E+06
 cg2d: Sum(rhs),rhsMax =   1.47198878949921E-15  6.37590054144547E+19
 cg3d: Sum(rhs),rhsMax =   1.05648550301288E-07  2.02973210092732E+17
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    1 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   318 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    2 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero  1122 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    3 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero  1264 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    4 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero  1226 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    5 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero  1066 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    6 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   832 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    7 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero  1116 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    8 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   930 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =    9 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   349 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   10 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero  1308 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   11 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   882 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   12 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   472 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   13 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   466 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   14 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   368 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   15 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   355 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   16 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   314 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   17 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   298 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   18 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   304 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   19 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   265 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   20 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   584 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   21 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   302 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   22 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   175 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   23 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   143 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   24 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   147 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   25 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   144 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   26 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   147 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   27 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   162 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   28 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   143 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   29 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero   119 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   30 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero    82 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   31 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero    72 negative salinity.
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: from level k =   32 ; bi,bj =   1   1
(PID.TID 0000.0001) S/R LOOK_FOR_NEG_SALINITY: reset to zero    49 negative salinity.
 cg2d: Sum(rhs),rhsMax =                    NaN  1.05720239644105E+31
 cg3d: Sum(rhs),rhsMax =                    NaN  0.00000000000000E+00


# ====================
# | Model parameters |
# ====================
# Continuous equation parameters
#
#   viscAh          - Horizontal eddy viscosity coefficient             (m^2/s)
#   viscAz          - Vertical eddy viscosity coefficient               (m^2/s)
#   diffKhT         - Horizontal temperature diffusivity                (m^2/s)
#   diffKzT         - Vertical temperature diffusivity                  (m^2/s)
#   diffKhS         - Horizontal salt diffusivity                       (m^2/s)

# Continuous equation parameters
 &PARM01

 viscAhGrid=1.E-2,
 viscAhGridMax=1,
 viscAhGridMin=5.E-3,
 viscA4Grid=1.E-3,
 viscAz=1.E-5,

 bottomDragQuadratic=2.E-3,
 no_slip_sides=.FALSE.,
 no_slip_bottom=.FALSE.,

 diffKzT=1.E-5,
 diffKzS=1.E-5,

 tempAdvScheme=77,
 saltAdvScheme=77,
 f0=143.E-6,
 beta=417.E-14,
 eosType='MDJWF',
 rigidLid=.FALSE.,
 implicitFreeSurface=.TRUE.,
 implicitViscosity=.TRUE.,
 implicitDiffusion=.TRUE., 	 	
 staggerTimeStep=.TRUE.,
 hFacMin=0.2,
 nonHydrostatic=.TRUE.,
 exactConserv=.TRUE.,
 useRealFreshWaterFlux=.TRUE.,

 debuglevel=1,
 rhoConstFresh=999.8,

 readBinaryPrec=64,
 writeBinaryPrec=32,
 &

# Elliptic solver parameters
 &PARM02
 cg2dMaxIters=300,
 cg2dTargetResidual=1.E-13,
 cg3dMaxIters=20,
 cg3dTargetResidual=1.E-8,
 &

# Time stepping parameters
 &PARM03
 nIter0=0,
 nTimeSteps=28800,
 deltaT=30,
 abEps=0.1,
 pChkptFreq=0,
 chkptFreq=0,
 dumpFreq=86400,
 monitorSelect=1,
 monitorFreq=21600.,
 periodicExternalForcing=.FALSE.,
 externForcingPeriod=3600.,
 externForcingCycle=5184000.,
 &

# Gridding parameters
 &PARM04
 usingCartesianGrid=.TRUE.,
 delXfile='delX.bin',
 delYfile='delY.bin',
 delRfile='delZ.bin',
 &

# Input datasets
 &PARM05
 bathyFile='bathy.bin',
 hydrogThetaFile='temp.bin',
 hydrogSaltFile='salt.bin',
 zonalWindFile='',
 meridWindFile='',
 &


# Open-boundaries
 &OBCS_PARM01
 OB_Iwest= 280*1,
 OB_Ieast= 280*-1,
 
 useOBCSsponge=.TRUE.,
 useOBCSprescribe=.TRUE.,
 useOBCSbalance=.FALSE.,

 OBCS_monitorFreq = 3600, 
 OBCS_monSelect = 3,

 OBWuFile='OBWU.bin',
 OBWvFile='OBWV.bin',
 OBWtFile='OBWT.bin',
 OBWsFile='OBWS.bin',
 
 OBEuFile='OBEU.bin',
 OBEvFile='OBEV.bin',
 OBEtFile='OBET.bin',
 OBEsFile='OBES.bin',

 &

# Orlanski parameters
 &OBCS_PARM02
#
 &

# *****************************************
# Sponge Layer Parameters.
# *****************************************
 &OBCS_PARM03
  Urelaxobcsinner=432000.E0,
  Urelaxobcsbound=21600.E0,
  Vrelaxobcsinner=432000.E0,
  Vrelaxobcsbound=21600.E0,
  spongeThickness=20,
 &

# *********************
# External Forcing Data
# *********************

 &EXF_NML_01
#
 useExfCheckRange  = .TRUE.,
 readStressOnCgrid = .FALSE.,
 exf_iprec         = 64,
#
 &

# *********************
 &EXF_NML_02
#
  ustressfile        = '',
  vstressfile        = '',
#
#  ustressstartdate1   = 19790101,
#  ustressstartdate2   = 000000,
#  ustressperiod       = 86400.0,
#
#  vstressstartdate1   = 19790101,
#  vstressstartdate2   = 000000,
#  vstressperiod       = 86400.0,
 &

# *********************
 &EXF_NML_03
 &

# *********************
# old open64 compiler (4.2.1) cannot skip this namelist to read in the next one;
# comment out this namelist (not read).
#&EXF_NML_04
#&

# *********************
 &EXF_NML_OBCS
#obcsSstartdate1   = 19790101,
#obcsSstartdate2   = 000000,
#obcsSperiod       = 0,
#
#obcsNstartdate1   = 19790101,
#obcsNstartdate2   = 000000,
#obcsNperiod       = 0,
#
obcsWstartdate1   = 19790101,
obcsWstartdate2   = 000000,
obcsWperiod       = 3600.0,
#
obcsEstartdate1   = 19790101,
obcsEstartdate2   = 000000,
obcsEperiod       = 86400.0,
#
 &





> Dustin, I have not followed in detail the discussion, but the answer to question below is yes.  We have model setups where fresh water is forced at depth to simulate underwater river runoff in glacial fjords and the setups work fine.
> 
> On Dec 26, 2012, at 7:49 PM, "Dustin Carroll" <spanishcastlemagik at gmail.com> wrote:
> 
> > Has anyone tried forcing freshwater into the model through a OBCS? Can MITgcm handle this?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mitgcm.org/pipermail/mitgcm-support/attachments/20121227/e64e9f2e/attachment-0001.htm>


More information about the MITgcm-support mailing list