[MITgcm-support] heavy diffusion and water source
Martin Losch
Martin.Losch at awi.de
Sun Nov 2 05:50:40 EST 2008
Patrick,
not sure what's happening, but according to your data.pkg you are NOT
using OBCS (so no "open boundaries"), probably you mean periodic
boudaries?
A) exact conservation of volume (no sea level rise for a closed
system) is achieved like this:
1. in CPP_OPTIONS.h: #define EXACT_CONSERV (that's the default)
2. in data: exactConserv = .true. (not default for backward
compatibility, I guess), and
useRealFreshWaterFlux=.TRUE., if you have surface fresh water
forcing (salinity restoring or EmPmR)
if that's not sufficient, then you could try the non-linear free
surface (may not really exactly work with OBCS, if that's required):
3. in CPP_OPTIONS.h: #define NONLIN_FRSURF (not default)
4. in data (taken from verification/global_ocean.cs32x15/input/data:
select_rStar=2, nonlinFreeSurf=4, hFacInf=0.2, hFacSup=2.0, please
look up the meaning of the parameters in the documentation
B) AdvScheme=2 is the simplest scheme (2nd order central differences)
and should not be stable without additional diffusion, but that's not
your problem, I guess. You use 33 for temp and saltAdvScheme, this
scheme should be used with staggerTimeStep=.true., otherwise you'll
get a lot of vertical mixing (by static instability?), often
discussed in the email-list, but never quite understood (at least not
by myself), this mixing will affect your ptracers regardless of their
advection scheme. Setting staggerTimeStep=.true. should fix your
problem. I'd then go with 33 for ptracers as well; there is numerical
diffusion in that scheme, but it's small and directed towards
stabilizing the scheme.
Martin
On 2 Nov 2008, at 02:38, Patrick Rosendahl wrote:
> Hello,
>
> I have a flow in wind direction (constant tx) with open boundaries.
> And I have 2 problems:
>
> A) The sealevel rises very slowly like 1e-6 in 100s. I fixed this
> by setting hDivFlow(i,j)=0.0 and same in integrate_for_w(). This
> kept my eta=w=0. But this is not a clean method. V is zero as it
> should. Any thoughts on this?
>
> B) There is a lot of vertical diffusivity in the ptracers, although
> the transport is only in x-direction. I have set the diffusivity to
> 0.0 - no help. I am using advectionScheme=2, since it appears to
> have the least diffusivity. Why is there so much diffusivity?
>
> Thanks,
> Patrick
>
> ----------------------------------------------------------------------
> -------------------
> DATA:
>
> # ====================
> # | Model parameters |
> # ====================
> #
> # Continuous equation parameters
> &PARM01
> tRef=51*20.0,
> sRef=51*0.0,
> viscAh=1.3E-6,
> viscAz=1.3E-6,
> no_slip_sides=.FALSE.,
> no_slip_bottom=.TRUE.,
> diffKhT=1.4E-7,
> diffKzT=1.4E-7,
> diffKhS=1.1E-9,
> diffKzS=1.1E-9,
> f0=0.0,
> sBeta =0.,
> gravity=9.81,
> rhoConst=1000.0,
> rhoNil=1000.0,
> # heatCapacity_Cp=3900.0,
> implicitDiffusion=.TRUE.,
> implicitViscosity=.TRUE.,
> eosType='LINEAR',
> readBinaryPrec=32,
> # hFacMin=0.2,
> # hFacInf=0.2,
> tempAdvScheme=33,
> saltAdvScheme=33,
>
> nonHydrostatic=.FALSE.,
> # nonlinFreeSurf=3,
> exactConserv=.TRUE.,
> implicitFreeSurface=.TRUE.,
> rigidLid=.FALSE.,
> &
>
> # Elliptic solver parameters
> &PARM02
> cg2dMaxIters=200,
> cg2dTargetResidual=1.E-13,
> cg3dMaxIters=10,
> cg3dTargetResidual=1.E-9,
> &
>
> # Time stepping parameters
> &PARM03
> nIter0=0,
> nTimeSteps=1000,
> deltaT=10.0,
> abEps=0.1,
> pChkptFreq=500000.0,
> chkptFreq=500000.0,
> dumpFreq=100.0,
> monitorFreq=500000.0,
> # outputTypesInclusive=.TRUE.,
> &
>
> # Gridding parameters
> &PARM04
> usingCartesianGrid=.TRUE.,
> usingCylindricalGrid=.FALSE.,
> usingCurvilinearGrid=.FALSE.,
> delX=20*20.0,
> delY=1*20.0,
> delZ=51*0.2,
> &
>
> # Input datasets
> &PARM05
> zonalWindFile='windstressx.const_1.000.bin.real*4',
> bathyFile='depth.open_10.0.bin.real*4',
> &
>
> ----------------------------------------------------------------------
> -------------------
> DATA.PTRACERS:
>
> &PTRACERS_PARM01
> # PTRACERS_dumpFreq,
> # PTRACERS_taveFreq,
> # PTRACERS_monitorFreq,
> PTRACERS_advScheme(1)=2,
> PTRACERS_advScheme(2)=2,
> # PTRACERS_ImplVertAdv,
> PTRACERS_diffKh(1)=0.0,
> PTRACERS_diffKh(2)=0.0,
> PTRACERS_diffK4(1)=0.0,
> PTRACERS_diffK4(2)=0.0,
> PTRACERS_diffKr(1)=0.0,
> PTRACERS_diffKr(2)=0.0,
> # PTRACERS_ref,
> # PTRACERS_useGMRedi=.FALSE.,
> # PTRACERS_useKPP=.FALSE.,
> # PTRACERS_Iter0,
> PTRACERS_numInUse=2,
> # PTRACERS_initialFile,
> # PTRACERS_useRecords,
> PTRACERS_names(1)='tracer1',
> PTRACERS_names(2)='tracer2',
> PTRACERS_long_names(1)='tracer1',
> PTRACERS_long_names(2)='tracer2',
> PTRACERS_units(1)='ppm',
> PTRACERS_units(2)='ppm',
> # PTRACERS_timeave_mnc,
> PTRACERS_snapshot_mnc=.TRUE.,
> PTRACERS_monitor_mnc=.TRUE.,
> PTRACERS_pickup_write_mnc=.TRUE.,
> # & PTRACERS_pickup_read_mnc
> &
>
> ----------------------------------------------------------------------
> -------------------
> DATA.PKG:
>
> # Packages
> &PACKAGES
> useMNC=.TRUE.,
> # useOBCS=.TRUE.,
> # useKPP=.TRUE.,
> # useMY82=.TRUE.,
> usePTRACERS=.TRUE.,
> &
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
More information about the MITgcm-support
mailing list