[MITgcm-support] Temperature undershoots using scheme 77 and GM
Oliver Jahn
jahn at MIT.EDU
Tue May 19 12:42:38 EDT 2009
Christopher,
David is right, this might help. And, just to make this clear: the
undershoots are not a bug in the code, but a property of OS7MP. It does
not preserve extrema (at least not in more than 1 dimension).
To enable the hack also for temperature, you will have to remove the test
for GAD_TEMPERATURE from the lines
IF (tracerIdentity.NE.GAD_TEMPERATURE .AND.
& tracerIdentity.NE.GAD_SALINITY) THEN
But you will have to make some changes to the following code too. Right
now, the hack ensures that the tracer does not go negative. You'd have to
change this to some other minimum value for temperature. You'd probably
have to pick some fixed value. The hach does not generally avoid the
generation of new extrema.
I am not sure, though, that this is the best thing to do in your case.
The way the hack works is that it modifies the fluxes generated by
isopycnal mixing: it reduces the outgoing fluxes as much as necessary to
avoid undershoots (under zero or whatever value you change this to). This
will introduce some extra diffusion, which might ruin your study.
Cheers,
Oliver
On Mon, 18 May 2009, David Ferreira wrote:
> Christopher,
> Don't think anyone answered to you... In any case, you should look at
> the option:
> #define GAD_SMOLARKIEWICZ_HACK in GAD_OPTIONS.h
> (there a clear comment coming with it)
> I used it for a couple of passive tracers going negative, and it worked fine.
> You'll need to edit gad_calc_rhs.F to change the tracer number to apply it
> to
> temperature (and/or salinity).
> Cheers,
> david
>
>
>
> Christopher L. Wolfe wrote:
>> Hi all,
>>
>> I'm running a low resolution (dx = 80 km) basin scale model and I'm finding
>> that my abyss is getting filled with water that's colder than any surface
>> water by .001 to .01 degrees. I'm using a linear equation of state, no
>> salt, no sea-ice, nothing fancy. I'm using advection scheme 77 and GM in
>> skew-flux form. Scheme 77 is not supposed to be able to generate local
>> interior maxima and GM is not supposed to be able to create new water
>> masses, so I'm at a loss as to what's causing the undershoots. The problem
>> seems to get worse at low diffusivities. I use small (1e-5) isotropic
>> Laplacian diffusivity, which would be unstable if I wasn't using a flux
>> limiter ... but I am. I run a high-resolution version of the model with
>> everything the same but no GM and don't get any undershoots, so I suspect
>> GM.
>>
>> Any thoughts as to what could be causing these undershoots?
>>
>> I'm using the latest version of the OS7MP scheme. My data and data.gmredi
>> files are included below.
>>
>> Thanks,
>> Christopher
>>
>> data:
>> # ====================
>> # | Model parameters |
>> # ====================
>> #
>> # Continuous equation parameters
>> &PARM01
>> tRef=-9.9, -9.9, -9.9, -9.9, -9.9, -9.9, -9.9
>> -9.9, -9.9, -9.9, -9.9, -9.9, -9.9, -9.9
>> -9.9, -9.9, -9.9, -9.9, -9.9, -9.9,
>> viscAh=10E3,
>> viscAz=0.25E-3,
>> no_slip_sides=.TRUE.,
>> no_slip_bottom=.FALSE.,
>> diffK4T=0.E9,
>> diffKhT=0.8E-4,
>> diffKzT=0.8E-4,
>> f0=-1.3683e-04,
>> beta=3.4208e-11,
>> tAlpha=2.E-4,
>> sBeta =0.,
>> gravity=10.,
>> rhoConst=1000.,
>> rhoNil=1000.,
>> heatCapacity_Cp=3900.,
>> rigidLid=.FALSE.,
>> implicitFreeSurface=.TRUE.,
>> saltAdvection=.FALSE.,
>> saltForcing=.FALSE.,
>> saltStepping=.FALSE.,
>> eosType='LINEAR',
>> nonHydrostatic=.FALSE.,
>> momAdvection=.TRUE.,
>> implicitViscosity=.TRUE.,
>> implicitDiffusion=.TRUE.,
>> ivdc_kappa=10.,
>> readBinaryPrec=64,
>> tempAdvScheme=7,
>> staggerTimeStep=.TRUE.,
>> bottomDragLinear=1.1135E-3,
>> debugLevel=-1,
>> useJamartWetPoints=.TRUE.,
>> useSingleCpuIo=.TRUE.,
>> &
>>
>> # Elliptic solver parameters
>> &PARM02
>> cg2dMaxIters=400,
>> cg2dTargetResidual=4.E-7,
>> cg3dMaxIters=400,
>> cg3dTargetResidual=4.E-7,
>> &
>>
>> # Time stepping parameters
>> &PARM03
>> nIter0=0,
>> nTimeSteps=3155760,
>> deltaT=4000,
>> abEps=0.1,
>> # write out every 50 years
>> pChkptFreq=1.57788e9,
>> chkptFreq=1.57788e8,
>> dumpFreq=1.57788e9,
>> monitorFreq=1.57788e7,
>> 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
>> thetaClimFile='N85_SST.bin',
>> bathyFile='topo_two_noeddy.bin',
>> zonalWindFile='windx_two.weakeq',
>> meridWindFile=,
>> &
>>
>>
>> data.gmredi:
>> &GM_PARM01
>> GM_background_K = 0.9e+3,
>> GM_taper_scheme = 'gkw91',
>> GM_maxSlope = 1.e-2,
>> GM_Kmin_horiz = 50.,
>> GM_Scrit = 4.e-3,
>> GM_Sd = 1.e-3,
>> &
>>
>>
>> _______________________________________________
>> 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