None of the Johannesson-Parker implementations will work using the MNRR input data as-is:
width = variable (min=218.901 max=1480.894 mean=803.771 in 200 pt 19877.41 m subset) depth = 3.429 flow = 899.33 slope = 0.0001918 diam = 0.001

All produce fatal numerical errors in the calculations. Here is the output for implementation 3 (JP89 integral eqns with partial summation, probably the best):
i U C_f chi_1 chi chi_20 delta C_tilde A_s A phi sigma sigma_s integrand1 integral1 integrand2 integral2 u_1b
----- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- --------------
0 0.180396 0.198057 0.173020 -0.160314 2.818374 -3.474884 0.002655 -0.000237 3.147522 0.000000 1.930374 1.930374 1.930374e+00 0.000000e+00 1.930374e+00 0.000000e+00 1.930374
1 0.177104 0.205488 0.169862 -0.163471 2.878720 -3.184809 0.002655 -0.000244 3.147522 99.929554 1.966254 -3160604853.992569 3.127006e+05 1.562411e+07 -5.026425e+14 -2.511442e+16 -29784391179.655685
2 0.177628 0.204277 0.170365 -0.162968 2.868916 -3.229242 0.002303 -0.000243 3.147522 99.608831 1.699916 -663616290109375872.000000 2.424762e+05 1.207648e+07 -9.465832e+22 -4.714402e+24 -6196875914419073024.000000
3 0.181984 0.194615 0.174543 -0.158790 2.790280 -3.624717 0.000035 -0.000233 3.147522 99.938426 0.025294 -563471415042582015060738048.000000 2.136592e+03 1.068488e+05 -4.759665e+31 -2.378367e+33 -5029452071087756093497016320.000000
4 0.191777 0.175247 0.183935 -0.149398 2.630410 -4.721768 0.001716 -0.000203 3.147522 99.974190 1.173588 -16920977129793365379595106484762968064.000000 3.217321e+04 1.608247e+06 -4.638786e+41 -2.318795e+43 -136052681449621237668582504876839272448.000000
5 0.208259 0.148605 0.199744 -0.133589 2.405373 -7.606553 0.001073 -0.000121 3.147522 99.886018 0.675837 -3.37807e+51 3.888858e+03 1.942799e+05 -1.943790e+55 -9.707871e+56 -2.30124e+52
6 0.225136 0.127160 0.215931 -0.117402 2.219601 -13.601221 0.000937 0.000009 3.147522 99.921461 0.545722 -2.60977e+73 9.026013e+02 4.512838e+04 -4.316452e+76 -2.156531e+78 -1.5219e+74
7 0.238514 0.113296 0.228762 -0.104571 2.097129 -25.382153 0.000749 0.000150 3.147522 99.990238 0.411920 -6.83215e+109 3.050599e+02 1.527879e+04 -5.059751e+112 -2.529629e+114 -3.55238e+110
8 0.250164 0.102990 0.239935 -0.093398 2.004812 -63.146341 0.000313 0.000303 3.147522 99.982178 0.164000 -1.54118e+192 6.655432e+01 3.347715e+03 -6.254375e+194 -3.126630e+196 -7.28419e+192
Exception in thread stepThread:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/threading.py", line 486, in __bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/threading.py", line 446, in run
self.__target(*self.__args, **self.__kwargs)
File "/Users/sky/Projects/Lancaster/MNRRSim/MNRRSimData.py", line 629, in stepCalcs
params)
File "/Users/sky/Projects/Lancaster/MNRRSim/MeanderJP3.py", line 225, in meander
edpr = exp(delta * phi / r)
FloatingPointError: overflow encountered in exp
Here is the full output for implementations 1 (Lancaster 98), 3, and 4 (JP89 differential eqns). These all fail because:
It's probably more complicated than this, as there is likely a thin n-dimensional subspace of acceptable values whose relationships cannot be easily partitioned by simple ranges. I have noticed this before: the JP method only accepts inputs in a fairly narrow range of values. In general, it likes very flat, shallow, streams with fairly high flows. In order to get something working with the MNRR geometry, I have tried starting from a different set of initial conditions:
width = 100.0 depth = 1.0 flow = 1000.0 slope = 0.0001 diam = 0.001
Here is the JP1 simulation:

Here is the JP3 simulation:

Here is the JP4 simulation:

In the interest of time, I have decided to continue to work only with the JP3 implementation, as I think that stands the best chance of producing something useful. The initial output of the simulation shown above (at middle) was the following:
i U C_f chi_1 chi chi_20 delta C_tilde A_s A phi sigma sigma_s integrand1 integral1 integrand2 integral2 u_1b
----- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- -------------- --------------
0 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.002655 3.523061 6.499205 0.000000 0.132775 0.132775 1.327748e-01 0.000000e+00 1.327748e-01 0.000000e+00 0.132775
1 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.002655 3.523061 6.499205 99.929554 0.132775 0.133013 1.330351e-01 1.328114e+01 1.332733e-01 1.329304e+01 0.135014
2 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.002303 3.523061 6.499205 99.608831 0.115130 0.130623 1.153545e-01 1.235794e+01 1.308787e-01 1.314295e+01 0.154782
3 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.000035 3.523061 6.499205 99.938426 0.001755 0.110377 1.758526e-03 5.840805e+00 1.105936e-01 1.205342e+01 0.269462
4 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.001716 3.523061 6.499205 99.974190 0.085814 0.095156 8.598263e-02 4.385754e+00 9.534263e-02 1.028334e+01 0.186351
5 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.001073 3.523061 6.499205 99.886018 0.053665 0.088262 5.377057e-02 6.971289e+00 8.843460e-02 9.169066e+00 0.219634
6 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.000937 3.523061 6.499205 99.921461 0.046845 0.078613 4.693703e-02 5.026171e+00 7.876683e-02 8.344864e+00 0.227289
7 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.000749 3.523061 6.499205 99.990238 0.037461 0.069288 3.753424e-02 4.218560e+00 6.942360e-02 7.401094e+00 0.237326
8 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.000313 3.523061 6.499205 99.982178 0.015643 0.058118 1.567359e-02 2.656244e+00 5.823152e-02 6.374823e+00 0.259524
9 10.000000 0.000010 24.596748 24.263414 1.000110 297.786749 0.000709 3.523061 6.499205 99.999972 0.035461 0.050287 3.553068e-02 2.558679e+00 5.038547e-02 5.425148e+00 0.239977
...
This is much more reasonable, as C_f, chi_20, A_s, and u_b1 are all within their proper magnitude ranges. By experimenting with the parameters for width, depth, flow, slope, and diameter, while attempting to bring them closer to their values for the MNRR, I have produced some reasonable looking simulations:
width = 100.0, depth = 2.5, flow = 100.0, slope = 0.0001, diam = 0.001

width = 200.0, depth = 2.5, flow = 150.0, slope = 0.0001, diam = 0.001

width = 300.0, depth = 2.5, flow = 300.0, slope = 0.00019, diam = 0.001

width = 300.0, depth = 3.0, flow = 600.0, slope = 0.00019, diam = 0.001

width = 300.0, depth = 3.0, flow = 800.0, slope = 0.00019, diam = 0.001

width = 600.0, depth = 3.0, flow = 800.0, slope = 0.00019, diam = 0.001

width = 800.0, depth = 3.0, flow = 800.0, slope = 0.00019, diam = 0.001

The wider simulations are somewhat less interesting, in part because the cutoff detection routine is removing new bends a bit sooner than it should, as new points in the bends are closer together than a river width. However, these simulations suggest that it might be possible to get close to the input values for the MNRR and to produce realistic output from the JP3 method.
I have also tried a variable-width meandering method, although at present this is implmented only with the centripetal speed method (which is equivalent to the unmodified sigma calculation from JP). The basis of this method is straightforward, and is derived from the class of 'bank speed' methods we have been using. The basic idea is the following:
However:
The variable-width routine extends the centripetal speed method by:
As a simplification, both the curvature and sediment distances are the same. Actually, sediment entering the water at a point s should be available to all downstream points > s --not just those at the lag distance--, and should be removed and accumulated by an exponential decay process. However, the current implementation is sufficient to test the concept. There are also other possible modifications that I will discuss below.
Here are some examples of variable-width tests. Note that the initial condition may involve a constant width along the river (which will change), or a variable width. In all cases, the minimum width of any evolved segment was limited to at least 25 m:
width = 100.0, depth = 3.429, flow = 899.33, ldist = 150.0, sdist = 300.0

width = 100.0, depth = 3.429, flow = 899.33, ldist = 110.0, sdist = 550.0

width = 100.0, depth = 3.429, flow = 909.33, ldist = 110.0, sdist = 550.0

width = actual river, depth = 3.429, flow = 899.33, ldist = 110.0, sdist = 550.0

In the following progression of simulations, two additional modifications were added:
width = 400.0, depth = 3.0, flow = 800.0, ldist = 220.0, sdist = 440.0, exp = 1.0

width = actual river, depth = 3.429, flow = 899.33, ldist = 0.5w, sdist = 1.0w, exp = 1.0

width = actual river, depth = 3.429, flow = 899.33, ldist = 0.49w, sdist = 1.0w, exp = 1.5

width = actual river, depth = 3.429, flow = 899.33, ldist = 0.50w, sdist = 1.0w, exp = 1.5

I am particularly interested in the latter simulations because:
Next week I will continue working on these methods in the attempt to:
I will also spend at least one day working on a braided meandering test.