[MITgcm-support] Spurious internal buoyancy minima in long runs

Christopher L. Wolfe clwolfe at ucsd.edu
Mon May 9 14:17:18 EDT 2011


Hi Jean-Michel,

Thanks for looking at the model setup for me. Just to clarify, it *is* the buoyancy field that I'm worrying about. I find that the temperature and salinity fields are bounded by their surface values just as you do. However, with a linear equation of state, the buoyancy satisfies the same equation as the temperature and salt (modulo Redi mixing, which I have turned off). Thus, the buoyancy field aught to satisfy the same extremum principle as the temperature and salt fields and should be bounded by its surface values. With convective adjustment (implemented here by increased vertical diffusivity), this means there should be at least one column which is completely unstratified (or perhaps weakly negatively stratified) once the system has reached steady state. Instead, all of my columns are well stratified. 

Now, with mixed boundary conditions on buoyancy, the system never really comes into a steady state, so the extremum principle has to be modified to include a term involving the eddy fluxes (which I should try diagnosing). Another problem is that the discrete system appears to satisfy the extremum principle only approximately (correct me if I'm wrong), with the approximation getting better with resolution. Perhaps a resolution one degree is simply too coarse to expect the model to faithfully reproduce the properties of the original continuous system, although this would be a really scary conclusion considering that most climate studies use one degree resolution or coarser.

To try to get a further handle on this problem, I'm going to try to diagnose the eddy fluxes to see if  time-dependence is the source of my extremum principle violation and try to do some runs with increased resolution.

Cheers,
Christopher

On May 9, 2011, at 7:18 AM, Jean-Michel Campin wrote:

> Hi Christopher,
> 
> I think I did not read carefully your 1rst email:
> Just to confirm:
> 1) T & S do not show false extrema. They are bounded by the
>  surface extrema; and for temperature (surface restauring) the
>  surface range is within the restauring target SST*.
> 2) the density is every-where and at any time larger that
>  rho(S_max,T_min) (linear EOS)
> with T_min = min(SST*) and
>      S_max = Sea-Surface-Salinity maximum over the full
>              integration (constant flux forcing).
> 3) the density distribution shows, in average sense,
>  larger value at depth than at the surface.
>  This is exected since otherwise, it's unstable and
>  the convective adjustment will act to eliminate the unstability.
>  Is it what you are getting ?
> 
> I did a 1000.y run with the set-up you sent me (restauring on SST
> + constant salt-flux, no GM-Redi) and switch T&S advection-scheme
>  to 77 (I know this one is monotonous), and did not see false
>  extrema on T or S.
> 
> Cheers,
> Jean-Michel
> 
> On Mon, May 02, 2011 at 04:43:22PM -0700, Christopher L. Wolfe wrote:
>> 
>> Hi all,
>> 
>> Here are some interesting new wrinkles to the saga of the spurious internal buoyancy minima:
>> 
>> 1. The same thing occurs if I use a single component (linear) equation of state with fixed flux boundary conditions, although the effect is smaller (~15% of the domain denser than the surface rather than 40-50%).
>> 
>> 2. The effect persists if I use a linear centered-difference scheme with horizontal diffusion, but it's smaller again than with the single component equation of state (~6% of the domain denser than the surface). However, the improvement may just be due to the addition of horizontal diffusion mixing away the overdense water.
>> 
>> 3. My default domain has a zonally-reentrant channel occupying the southern-most 1/8th of the domain. If I block off the channel (effectively building a wall across my "Drake Passage"), the problem goes away entirely.
>> 
>> So, the problem doesn't seem to be (directly) related to the advection scheme, but only appears if I have a fixed flux boundary condition *and* a zonally-reentrant channel. Hopefully these clues point to the source of the problem ...
>> 
>> Jean-Michel: Have you had a chance to look at the model setup I sent you last week?
>> 
>> Thanks,
>> Christopher
>> 
>> On Apr 26, 2011, at 4:10 PM, Jean-Michel Campin wrote:
>> 
>>> Hi Christopher,
>>> 
>>> Could you put the set-up in a tar file and put it some-where
>>> where I can get it ? or if it's not too big, send it to me by
>>> email (there is a strict limit-size on mitgcm-support).
>>> When I have some time, can have a look at it.
>>> 
>>> Thanks,
>>> Jean-Michel
>>> 
>>> On Tue, Apr 26, 2011 at 03:59:24PM -0700, Christopher L. Wolfe wrote:
>>>> 
>>>> Hi Jean-Michel,
>>>> 
>>>> cg2d converges to within 1e-7 after about 40 iterations to 1e-11 within about 80 iterations, so I don't think it has to do with poor convergence of the surface pressure. Also, decreasing the tolerance to 1e-11 didn't seem to have any impact on the spurious internal minima.
>>>> 
>>>> Cheers,
>>>> Christopher
>>>> 
>>>> On Apr 25, 2011, at 4:23 PM, Jean-Michel Campin wrote:
>>>> 
>>>>> Hi Christopher,
>>>>> 
>>>>> So we know it's not coming from GM.
>>>>> 
>>>>> I am not sure about using only the default params for PARAM02:
>>>>>>>> # Elliptic solver parameters
>>>>>>>> &PARM02
>>>>>>>> &
>>>>> 
>>>>> Sometimes (but it's only scpecial cases), with simple domains
>>>>> (cartesian grid with flat bottom) the 2-d solver does not converge well.
>>>>> The default we have are:
>>>>>    cg2dMaxIters       = 150
>>>>>    cg2dTargetResidual = 1. _d -7
>>>>> And may be you reach the MaxIters number without good convergence ?
>>>>> ( using some monitor output and default value for debugLevel
>>>>> should help to figure out if this is the case).
>>>>> 
>>>>> An other thing related to the 1rst one: If the solver does not
>>>>> converge well (could also be because the Target-residual is too
>>>>> large), setting "exactConserv=.TRUE.," might make a difference
>>>>> (whereas in general, it does not make much difference).
>>>>> 
>>>>> Cheers,
>>>>> Jean-Michel
>>>>> 
>>>>> On Wed, Apr 20, 2011 at 08:52:07PM -0700, Christopher L.P. Wolfe wrote:
>>>>>> 
>>>>>> Hi Jean-Michel,
>>>>>> 
>>>>>> Here's my data.gmredi. I've already got GM_AdvForm=.TRUE.
>>>>>> 
>>>>>> &GM_PARM01
>>>>>> GM_background_K    = 400,
>>>>>> GM_taper_scheme    = 'dm95',
>>>>>> GM_AdvForm         = .TRUE.,
>>>>>> GM_UseBVP          = .TRUE.,
>>>>>> GM_BVP_ModeNumber  = 2,
>>>>>> GM_BVP_cMin        = .1,
>>>>>> &
>>>>>> 
>>>>>> Thanks,
>>>>>> Christopher
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Apr 20, 2011, at 6:34 PM, Jean-Michel Campin wrote:
>>>>>> 
>>>>>>> Hi Christopher,
>>>>>>> 
>>>>>>> Might be usefull to also send your data.gmredi file.
>>>>>>> Sometime turning on "GM_AdvForm=.TRUE.," helps.
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> Jean-Michel
>>>>>>> 
>>>>>>> On Wed, Apr 20, 2011 at 06:04:15PM -0700, Christopher L. Wolfe wrote:
>>>>>>>> support] Spurious internal buoyancy minima in long runs
>>>>>>>> X-SA-Exim-Version: 4.2.1 (built Sun, 08 Nov 2009 07:31:22 +0000)
>>>>>>>> X-SA-Exim-Scanned: Yes (on ocean.mit.edu)
>>>>>>>> Status: O
>>>>>>>> Content-Length: 4534
>>>>>>>> Lines: 150
>>>>>>>> 
>>>>>>>> Hi Modelers,
>>>>>>>> 
>>>>>>>> I'm having a bit of a strange problem the MITgcm. I'm running at coarse resolution (80 km) in a simple domain (a 2000 km by 8000 km by 2000 m box) with a linear equation of state, GM/Redi eddies, and a "mixed layer" modeled by specifying a large diffusivity near the surface which smoothly decays into the interior. I'm forcing it with smooth winds, temperature restoring (9 days) to a fixed profile, and a fixed and balanced surface salt flux.
>>>>>>>> 
>>>>>>>> The problem is that I keep ending up with bottom water which is denser than any water found at the surface. Both the temperature and salinity fields are bounded by their surface values, which is expected since both tracers satisfy advection-diffusion equations with extremum principles which state that any extrema are found at the surface. With a linear equation of state, the buoyancy satisfies a similar advection-diffusion equation with a similar extremum principle, yet the buoyancy of the bottom water is persistently lower than any water found at the surface. This is a serious problem, since I'm trying to study deep stratification and it's hard to draw any useful conclusions with a huge volume of my domain filled with an "impossible" water mass.
>>>>>>>> 
>>>>>>>> I don't think this is a problem with my initial conditions, since I've integrated the model for almost 17,000 years with an interior diffusivity of 8e-5. I've tried using different advection schemes (2, 7, and 81) and en/disabling the "Smolarkiewicz hack" without any change in the results. For the nonlinear advection schemes, I've also varied the horizontal diffusivity from 0 to 100 with no effect.
>>>>>>>> 
>>>>>>>> I'm very much bothered by this problem and have run out of things I can think of trying. If anyone here has any suggestions/explanations, I'd be extremely grateful to hear them. I'm enclosing my data file below for reference.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Christopher
>>>>>>>> 
>>>>>>>> # ====================
>>>>>>>> # | Model parameters |
>>>>>>>> # ====================
>>>>>>>> #
>>>>>>>> # Continuous equation parameters
>>>>>>>> &PARM01
>>>>>>>> sRef=20*35,
>>>>>>>> tRef=20*0.0,
>>>>>>>> viscAh=10E3,
>>>>>>>> viscAz=0.25E-3,
>>>>>>>> no_slip_sides=.TRUE.,
>>>>>>>> no_slip_bottom=.FALSE.,
>>>>>>>> diffK4S=0.0,
>>>>>>>> diffKhS=0.0,
>>>>>>>> diffKzS=0.0,
>>>>>>>> diffK4T=0.0,
>>>>>>>> diffKhT=0.0,
>>>>>>>> diffKzT=0.0,
>>>>>>>> f0=-1.3683e-04,
>>>>>>>> beta=3.4208e-11,
>>>>>>>> tAlpha=2.E-4,
>>>>>>>> sBeta =7.4e-4,
>>>>>>>> gravity=10.,
>>>>>>>> rhoConst=1000.,
>>>>>>>> rhoNil=1000.,
>>>>>>>> rigidLid=.FALSE.,
>>>>>>>> implicitFreeSurface=.TRUE.,
>>>>>>>> saltAdvection=.TRUE.,
>>>>>>>> saltForcing=.TRUE.,
>>>>>>>> saltStepping=.TRUE.,
>>>>>>>> tempAdvection=.TRUE.,
>>>>>>>> tempForcing=.TRUE.,
>>>>>>>> tempStepping=.TRUE.,
>>>>>>>> eosType='LINEAR',
>>>>>>>> nonHydrostatic=.FALSE.,
>>>>>>>> momAdvection=.TRUE.,
>>>>>>>> implicitViscosity=.TRUE.,
>>>>>>>> implicitDiffusion=.TRUE.,
>>>>>>>> ivdc_kappa=10.,
>>>>>>>> readBinaryPrec=64,
>>>>>>>> writeBinaryPrec=32,
>>>>>>>> tempAdvScheme=81,
>>>>>>>> saltAdvScheme=81,
>>>>>>>> staggerTimeStep=.TRUE.,
>>>>>>>> bottomDragLinear=1.1135E-3,
>>>>>>>> debugLevel=-1,
>>>>>>>> useJamartWetPoints=.TRUE.,
>>>>>>>> useSingleCpuIo=.TRUE.,
>>>>>>>> diffKrNrS=4.069423e-03,
>>>>>>>> 3.808919e-03,
>>>>>>>> 2.924517e-03,
>>>>>>>> 1.608878e-03,
>>>>>>>> 5.410003e-04,
>>>>>>>> 1.345410e-04,
>>>>>>>> 8.147859e-05,
>>>>>>>> 8.000402e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> diffKrNrT=4.069423e-03,
>>>>>>>> 3.808919e-03,
>>>>>>>> 2.924517e-03,
>>>>>>>> 1.608878e-03,
>>>>>>>> 5.410003e-04,
>>>>>>>> 1.345410e-04,
>>>>>>>> 8.147859e-05,
>>>>>>>> 8.000402e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> 8.000000e-05,
>>>>>>>> &
>>>>>>>> 
>>>>>>>> # Elliptic solver parameters
>>>>>>>> &PARM02
>>>>>>>> &
>>>>>>>> 
>>>>>>>> # Time stepping parameters
>>>>>>>> &PARM03
>>>>>>>> nIter0=0006205000,
>>>>>>>> # 5000 years
>>>>>>>> nTimeSteps=1825000,
>>>>>>>> deltaTMom=3600,
>>>>>>>> deltaTtracer=86400,
>>>>>>>> abEps=0.1,
>>>>>>>> # write out every 50 years
>>>>>>>> pChkptFreq=1.5768e10,
>>>>>>>> chkptFreq=1.5768e9,
>>>>>>>> dumpFreq=1.5768e9,
>>>>>>>> monitorFreq=1.5768e7,
>>>>>>>> tauThetaClimRelax=764400.,
>>>>>>>> cAdjFreq=0,
>>>>>>>> pickupStrictlyMatch=.FALSE.,
>>>>>>>> &
>>>>>>>> 
>>>>>>>> # Gridding parameters
>>>>>>>> &PARM04
>>>>>>>> usingCartesianGrid=.TRUE.,
>>>>>>>> usingSphericalPolarGrid=.FALSE.,
>>>>>>>> dXspacing=80.e3,
>>>>>>>> dYspacing=80.e3,
>>>>>>>> delZ=  12.0505,  14.9159,  18.4328,  22.7337,  27.9692,
>>>>>>>>     34.3067,  41.9245,  51.0025,  61.7057,  74.1598,
>>>>>>>>     88.4181, 104.4189, 121.9376, 140.5412, 159.5568,
>>>>>>>>    178.0710, 194.9769, 209.0770, 219.2372, 224.5642,
>>>>>>>> &
>>>>>>>> 
>>>>>>>> # Input datasets
>>>>>>>> &PARM05
>>>>>>>> bathyFile='topo_two.bin',
>>>>>>>> thetaClimFile='TSurf.bin',
>>>>>>>> zonalWin
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> MITgcm-support mailing list
>>>>>>> MITgcm-support at mitgcm.org
>>>>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>>>> 
>>>>>> -----------------------------------------------------------
>>>>>> Dr. Christopher L. Wolfe                      858-534-4560
>>>>>> Physical Oceanography Research Division    OAR 357
>>>>>> Scripps Institution of Oceanography, UCSD  clwolfe at ucsd.edu
>>>>>> -----------------------------------------------------------
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> MITgcm-support mailing list
>>>>>> MITgcm-support at mitgcm.org
>>>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>>> 
>>>>> _______________________________________________
>>>>> MITgcm-support mailing list
>>>>> MITgcm-support at mitgcm.org
>>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>> 
>>>> 
>>>> _______________________________________________
>>>> MITgcm-support mailing list
>>>> MITgcm-support at mitgcm.org
>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>> 
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>> 
>> 
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list