[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