Before answering to John's questions, I would like to ask what would
be a good "industry standard" against which all these algorithms
should be compared?



>
> 1) What is the "old" grid and what is the "new" grid?  In order to
> be able to compare profiles on the same grid you should be doing 
> something like
>                "old" -> "new" -> "old"
> N times.  Is this what you do?  Otherwise, if the grid stretching
> is continuous, how can it be done 10000 times?
>

In principle, it can be done this way too. In the examples I have
created I have chosen a periodic law:

           z_k = f[k, sin(omega*nstep)] 

where omega=2*pi/50, and nstep=0,1,2,...,10000. The grid repeats
itself every 50 steps.  I thought that it is more natural to pose
the problem this way because changes in real ocean models occur
on larger time scale that just one step. This choice is also
motivated by the desire to cover all possible "CFL numbers" i.e.
there are both infinitelty small changes in grid interface positions 
(relatively to grid box size) as well as changes comparable to box
size. The amplitude of grid motion is about 1/3 of the while size
of the domain for grid-box interfaces in the middle (to see that
compare the uppermost and the lowermost positions of the coursor).

Since all these algorithms are upstream biased, the numerical errors
associated with upward and downward motion of the grid are
accumulated (not cancel out), therefore it is fair to say that during
the whole experiment (200 periods) thermocline moves distance
equivalent to  200*2/3=130 sizes of the whore domain or, about
1500 grid box steps. 

  ==> There are not so many advection schemes which can propagate 
      a structure of five grid points wide to a distance of 1500
      grid points and still keep it recognizable. 


As stated by John, the profiles can be compared on "the same grid".
It occurs naturally every time when clock passes a whole number,
like 1.000, 2.000 etc, up to 200.000.

Or, alternatively, they can be compared as just "profiles", i.e.
regardless of the grid, continuous reconstruction should be able
to reproduce the same profile, and any difference between them 
should be interpreted as numerical error.





>
> 2) The interpolated profile using WENO is not monotonic!  This is
> not acceptable since remapping to an arbitrary "new" grid could
> reproduce the false extrema that occur. Furthermore, a steeper
> profile could exacerbate the extrema.
>

Except PPM, none of these schemes is designed to handle shocks.

Moreover, they are "biased" toward continuity rather than shocks.

The non-monotonicity (I believe you are referring to several frames
centered around time 0.28 then later 1.28  and later again 2.28, but 
the amputude of that wiggle is slightly smaller due to dissipation.)
is caused by fundamental limitation of parabolic fits.

WENO guarantees that interfacial values it produces is bounded by
the adjacent grid box averages. This condition is not sufficient
to guarantee the monotonicity of the associated parabolic fit.

WENO can be fitted with PPM style limiting (see CPP switch 
LIMIT_INTERIOR in file "remap2W.F") which would enforce
monotonicity but give up continuity at interface.

Since my interest in WENO is mostly as a the first stage of quartic 
scheme, this limiting was turned OFF. 





>
> 3) The interpolated profile using QUARTIC is steeper than the 
> original!  This appears to be an indication of a serious problem,
> ie, anti-diffusion in the associated advection problem, or
> extrapolation rather than interpolation somewhere in the scheme.
> Am I misunderstanding something?
>

Remember, we are talking about long-term effect and many cycles.
Just after one two or three periods the difference between red and
green curve is barely seen.

By its construction, there are no extrapolations in this algorithm,
and I can prove that a linearized version of it (i.e. with slope
limiting turned off) is analytically stable and dissipative
(hyperdiffusive, but with dominant truncation term similar to sixth
derivative, thather than fourth).  Most of the 4th order
hyperdiffusion of WENO (which can be associated with the
discontinuity of first derivative of the reconstructed profile at
grid box interfaces) is eliminated by power-law reconciliation step,
resulting a much less dissipative scheme.


I believe that the effect of steepening due to interplay of
hyperdiffusive and dispersive truncation errors and limiting.

Both dispersion and hyperdiffusion tend to generate overshots
similar to that if parabolic or quartic spline is used. Limiting
prevents the appearance of overshots, but it also delays the
change from flat part of the profile to slope.

Running this problem longer reveals that steepening saturates and
profile actually reaches an equilibrium status. Which, I believe,
is set by some kind of balance between the dispersive tendency and 
nonlinear dissipation associated with slope limiting.





>
> 4) Your methods appear to be tuned to a density-like profile, ie,
> a tanh function.  Can they be made to work equally well on more
> general profiles?
>

None of there algorithm is tuned specifically to "tanh" function. 

I just pick a tanh profile because this is a hard one: the problem
(only 12 grid boxes) is posed deliberately in such a way that any
unlimited scheme (like spline) will fail. (Try to undefine CPP
switches LIMIT_SLOPES and LIMIT_INTERIOR in "remap2PPM.F" ==> the
result will be a complete disaster.)

Examples with other profiles (EXP, x^alpha, etc) can be produced too,
but the comparison of different methods would be not as dramatic as
for tanh profile.

In the case of smooth functions all of them do reasonably good job.
Most of these methods are exact for profile rho(z)=const +A*z +B*z^2 
where A abd B are arbitrary coefficients.









