diff --git a/pub/src/.deps/curve.Tpo b/pub/src/.deps/curve.Tpo
deleted file mode 100644
index 94f2aeb8f4465f6674e79341052e4a8c4ea809f3..0000000000000000000000000000000000000000
--- a/pub/src/.deps/curve.Tpo
+++ /dev/null
@@ -1,540 +0,0 @@
-curve.o: curve.cpp /usr/include/c++/4.3/iostream \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/c++config.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/os_defines.h \
-  /usr/include/features.h /usr/include/sys/cdefs.h \
-  /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
-  /usr/include/gnu/stubs-32.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/cpu_defines.h \
-  /usr/include/c++/4.3/ostream /usr/include/c++/4.3/ios \
-  /usr/include/c++/4.3/iosfwd /usr/include/c++/4.3/bits/stringfwd.h \
-  /usr/include/c++/4.3/bits/postypes.h /usr/include/c++/4.3/cwchar \
-  /usr/include/c++/4.3/cstddef \
-  /usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h /usr/include/wchar.h \
-  /usr/include/stdio.h /usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h \
-  /usr/include/bits/wchar.h \
-  /usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h \
-  /usr/include/xlocale.h /usr/include/stdint.h \
-  /usr/include/c++/4.3/exception /usr/include/c++/4.3/bits/char_traits.h \
-  /usr/include/c++/4.3/bits/stl_algobase.h \
-  /usr/include/c++/4.3/bits/functexcept.h \
-  /usr/include/c++/4.3/exception_defines.h \
-  /usr/include/c++/4.3/bits/cpp_type_traits.h \
-  /usr/include/c++/4.3/ext/type_traits.h \
-  /usr/include/c++/4.3/ext/numeric_traits.h \
-  /usr/include/c++/4.3/bits/stl_pair.h \
-  /usr/include/c++/4.3/bits/stl_move.h \
-  /usr/include/c++/4.3/bits/concept_check.h \
-  /usr/include/c++/4.3/bits/stl_iterator_base_types.h \
-  /usr/include/c++/4.3/bits/stl_iterator_base_funcs.h \
-  /usr/include/c++/4.3/bits/stl_iterator.h \
-  /usr/include/c++/4.3/debug/debug.h /usr/include/c++/4.3/cstdio \
-  /usr/include/stdio.h /usr/include/bits/types.h \
-  /usr/include/bits/typesizes.h /usr/include/libio.h \
-  /usr/include/_G_config.h /usr/include/wchar.h \
-  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
-  /usr/include/bits/stdio.h /usr/include/c++/4.3/bits/localefwd.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/c++locale.h \
-  /usr/include/c++/4.3/clocale /usr/include/locale.h \
-  /usr/include/bits/locale.h /usr/include/c++/4.3/cctype \
-  /usr/include/ctype.h /usr/include/endian.h /usr/include/bits/endian.h \
-  /usr/include/c++/4.3/bits/ios_base.h \
-  /usr/include/c++/4.3/ext/atomicity.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/gthr.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/gthr-default.h \
-  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
-  /usr/include/bits/sched.h /usr/include/bits/time.h \
-  /usr/include/signal.h /usr/include/bits/sigset.h \
-  /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
-  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
-  /usr/include/bits/environments.h /usr/include/bits/confname.h \
-  /usr/include/getopt.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/atomic_word.h \
-  /usr/include/c++/4.3/bits/locale_classes.h /usr/include/c++/4.3/string \
-  /usr/include/c++/4.3/bits/allocator.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/c++allocator.h \
-  /usr/include/c++/4.3/ext/new_allocator.h /usr/include/c++/4.3/new \
-  /usr/include/c++/4.3/bits/ostream_insert.h \
-  /usr/include/c++/4.3/cxxabi-forced.h \
-  /usr/include/c++/4.3/bits/stl_function.h \
-  /usr/include/c++/4.3/backward/binders.h \
-  /usr/include/c++/4.3/bits/basic_string.h \
-  /usr/include/c++/4.3/bits/basic_string.tcc \
-  /usr/include/c++/4.3/bits/locale_classes.tcc \
-  /usr/include/c++/4.3/streambuf /usr/include/c++/4.3/bits/streambuf.tcc \
-  /usr/include/c++/4.3/bits/basic_ios.h \
-  /usr/include/c++/4.3/bits/locale_facets.h /usr/include/c++/4.3/cwctype \
-  /usr/include/wctype.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/ctype_base.h \
-  /usr/include/c++/4.3/bits/streambuf_iterator.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/ctype_inline.h \
-  /usr/include/c++/4.3/bits/locale_facets.tcc \
-  /usr/include/c++/4.3/bits/basic_ios.tcc \
-  /usr/include/c++/4.3/bits/ostream.tcc /usr/include/c++/4.3/istream \
-  /usr/include/c++/4.3/bits/istream.tcc /usr/include/stdlib.h \
-  /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
-  /usr/include/sys/types.h /usr/include/sys/select.h \
-  /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
-  /usr/include/alloca.h /usr/include/math.h /usr/include/bits/huge_val.h \
-  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
-  /usr/include/bits/inf.h /usr/include/bits/nan.h \
-  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
-  /usr/include/bits/mathinline.h /usr/local/include/lmmin.h mystd.h \
-  /usr/include/c++/4.3/fstream /usr/include/c++/4.3/bits/codecvt.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/basic_file.h \
-  /usr/include/c++/4.3/i486-linux-gnu/bits/c++io.h \
-  /usr/include/c++/4.3/bits/fstream.tcc /usr/include/c++/4.3/vector \
-  /usr/include/c++/4.3/bits/stl_construct.h \
-  /usr/include/c++/4.3/bits/stl_uninitialized.h \
-  /usr/include/c++/4.3/bits/stl_vector.h \
-  /usr/include/c++/4.3/bits/stl_bvector.h \
-  /usr/include/c++/4.3/bits/vector.tcc olm.h boost/shared_ptr.hpp \
-  /usr/include/boost/config.hpp /usr/include/boost/config/user.hpp \
-  /usr/include/boost/config/select_compiler_config.hpp \
-  /usr/include/boost/config/compiler/gcc.hpp \
-  /usr/include/boost/config/select_stdlib_config.hpp \
-  /usr/include/boost/config/no_tr1/utility.hpp \
-  /usr/include/c++/4.3/utility /usr/include/c++/4.3/bits/stl_relops.h \
-  /usr/include/boost/config/stdlib/libstdcpp3.hpp \
-  /usr/include/boost/config/select_platform_config.hpp \
-  /usr/include/boost/config/platform/linux.hpp \
-  /usr/include/c++/4.3/cstdlib /usr/include/stdlib.h \
-  /usr/include/boost/config/posix_features.hpp \
-  /usr/include/boost/config/suffix.hpp /usr/include/c++/4.3/memory \
-  /usr/include/c++/4.3/bits/stl_tempbuf.h \
-  /usr/include/c++/4.3/bits/stl_raw_storage_iter.h \
-  /usr/include/c++/4.3/backward/auto_ptr.h /usr/include/boost/assert.hpp \
-  /usr/include/assert.h /usr/include/boost/checked_delete.hpp \
-  /usr/include/boost/throw_exception.hpp \
-  /usr/include/boost/detail/shared_count.hpp \
-  /usr/include/boost/detail/bad_weak_ptr.hpp \
-  /usr/include/boost/detail/sp_counted_base.hpp \
-  /usr/include/boost/detail/sp_counted_base_gcc_x86.hpp \
-  /usr/include/c++/4.3/typeinfo \
-  /usr/include/boost/detail/sp_counted_impl.hpp \
-  /usr/include/c++/4.3/functional \
-  /usr/include/boost/detail/workaround.hpp /usr/include/c++/4.3/algorithm \
-  /usr/include/c++/4.3/bits/stl_algo.h \
-  /usr/include/c++/4.3/bits/algorithmfwd.h \
-  /usr/include/c++/4.3/bits/stl_heap.h list.h coord.h scan.h curve.h \
-  func.h expr.h readln.h asi.h xax_lex.h /usr/include/gsl/gsl_errno.h \
-  /usr/include/errno.h /usr/include/bits/errno.h \
-  /usr/include/linux/errno.h /usr/include/asm/errno.h \
-  /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
-  /usr/include/gsl/gsl_types.h /usr/include/gsl/gsl_math.h \
-  /usr/include/gsl/gsl_sys.h /usr/include/gsl/gsl_machine.h \
-  /usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h \
-  /usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/syslimits.h \
-  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
-  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
-  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
-  /usr/lib/gcc/i486-linux-gnu/4.3.2/include/float.h \
-  /usr/include/gsl/gsl_precision.h /usr/include/gsl/gsl_nan.h \
-  /usr/include/gsl/gsl_pow_int.h /usr/include/gsl/gsl_roots.h
-
-/usr/include/c++/4.3/iostream:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/c++config.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/os_defines.h:
-
-/usr/include/features.h:
-
-/usr/include/sys/cdefs.h:
-
-/usr/include/bits/wordsize.h:
-
-/usr/include/gnu/stubs.h:
-
-/usr/include/gnu/stubs-32.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/cpu_defines.h:
-
-/usr/include/c++/4.3/ostream:
-
-/usr/include/c++/4.3/ios:
-
-/usr/include/c++/4.3/iosfwd:
-
-/usr/include/c++/4.3/bits/stringfwd.h:
-
-/usr/include/c++/4.3/bits/postypes.h:
-
-/usr/include/c++/4.3/cwchar:
-
-/usr/include/c++/4.3/cstddef:
-
-/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h:
-
-/usr/include/wchar.h:
-
-/usr/include/stdio.h:
-
-/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stdarg.h:
-
-/usr/include/bits/wchar.h:
-
-/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h:
-
-/usr/include/xlocale.h:
-
-/usr/include/stdint.h:
-
-/usr/include/c++/4.3/exception:
-
-/usr/include/c++/4.3/bits/char_traits.h:
-
-/usr/include/c++/4.3/bits/stl_algobase.h:
-
-/usr/include/c++/4.3/bits/functexcept.h:
-
-/usr/include/c++/4.3/exception_defines.h:
-
-/usr/include/c++/4.3/bits/cpp_type_traits.h:
-
-/usr/include/c++/4.3/ext/type_traits.h:
-
-/usr/include/c++/4.3/ext/numeric_traits.h:
-
-/usr/include/c++/4.3/bits/stl_pair.h:
-
-/usr/include/c++/4.3/bits/stl_move.h:
-
-/usr/include/c++/4.3/bits/concept_check.h:
-
-/usr/include/c++/4.3/bits/stl_iterator_base_types.h:
-
-/usr/include/c++/4.3/bits/stl_iterator_base_funcs.h:
-
-/usr/include/c++/4.3/bits/stl_iterator.h:
-
-/usr/include/c++/4.3/debug/debug.h:
-
-/usr/include/c++/4.3/cstdio:
-
-/usr/include/stdio.h:
-
-/usr/include/bits/types.h:
-
-/usr/include/bits/typesizes.h:
-
-/usr/include/libio.h:
-
-/usr/include/_G_config.h:
-
-/usr/include/wchar.h:
-
-/usr/include/bits/stdio_lim.h:
-
-/usr/include/bits/sys_errlist.h:
-
-/usr/include/bits/stdio.h:
-
-/usr/include/c++/4.3/bits/localefwd.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/c++locale.h:
-
-/usr/include/c++/4.3/clocale:
-
-/usr/include/locale.h:
-
-/usr/include/bits/locale.h:
-
-/usr/include/c++/4.3/cctype:
-
-/usr/include/ctype.h:
-
-/usr/include/endian.h:
-
-/usr/include/bits/endian.h:
-
-/usr/include/c++/4.3/bits/ios_base.h:
-
-/usr/include/c++/4.3/ext/atomicity.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/gthr.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/gthr-default.h:
-
-/usr/include/pthread.h:
-
-/usr/include/sched.h:
-
-/usr/include/time.h:
-
-/usr/include/bits/sched.h:
-
-/usr/include/bits/time.h:
-
-/usr/include/signal.h:
-
-/usr/include/bits/sigset.h:
-
-/usr/include/bits/pthreadtypes.h:
-
-/usr/include/bits/setjmp.h:
-
-/usr/include/unistd.h:
-
-/usr/include/bits/posix_opt.h:
-
-/usr/include/bits/environments.h:
-
-/usr/include/bits/confname.h:
-
-/usr/include/getopt.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/atomic_word.h:
-
-/usr/include/c++/4.3/bits/locale_classes.h:
-
-/usr/include/c++/4.3/string:
-
-/usr/include/c++/4.3/bits/allocator.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/c++allocator.h:
-
-/usr/include/c++/4.3/ext/new_allocator.h:
-
-/usr/include/c++/4.3/new:
-
-/usr/include/c++/4.3/bits/ostream_insert.h:
-
-/usr/include/c++/4.3/cxxabi-forced.h:
-
-/usr/include/c++/4.3/bits/stl_function.h:
-
-/usr/include/c++/4.3/backward/binders.h:
-
-/usr/include/c++/4.3/bits/basic_string.h:
-
-/usr/include/c++/4.3/bits/basic_string.tcc:
-
-/usr/include/c++/4.3/bits/locale_classes.tcc:
-
-/usr/include/c++/4.3/streambuf:
-
-/usr/include/c++/4.3/bits/streambuf.tcc:
-
-/usr/include/c++/4.3/bits/basic_ios.h:
-
-/usr/include/c++/4.3/bits/locale_facets.h:
-
-/usr/include/c++/4.3/cwctype:
-
-/usr/include/wctype.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/ctype_base.h:
-
-/usr/include/c++/4.3/bits/streambuf_iterator.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/ctype_inline.h:
-
-/usr/include/c++/4.3/bits/locale_facets.tcc:
-
-/usr/include/c++/4.3/bits/basic_ios.tcc:
-
-/usr/include/c++/4.3/bits/ostream.tcc:
-
-/usr/include/c++/4.3/istream:
-
-/usr/include/c++/4.3/bits/istream.tcc:
-
-/usr/include/stdlib.h:
-
-/usr/include/bits/waitflags.h:
-
-/usr/include/bits/waitstatus.h:
-
-/usr/include/sys/types.h:
-
-/usr/include/sys/select.h:
-
-/usr/include/bits/select.h:
-
-/usr/include/sys/sysmacros.h:
-
-/usr/include/alloca.h:
-
-/usr/include/math.h:
-
-/usr/include/bits/huge_val.h:
-
-/usr/include/bits/huge_valf.h:
-
-/usr/include/bits/huge_vall.h:
-
-/usr/include/bits/inf.h:
-
-/usr/include/bits/nan.h:
-
-/usr/include/bits/mathdef.h:
-
-/usr/include/bits/mathcalls.h:
-
-/usr/include/bits/mathinline.h:
-
-/usr/local/include/lmmin.h:
-
-mystd.h:
-
-/usr/include/c++/4.3/fstream:
-
-/usr/include/c++/4.3/bits/codecvt.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/basic_file.h:
-
-/usr/include/c++/4.3/i486-linux-gnu/bits/c++io.h:
-
-/usr/include/c++/4.3/bits/fstream.tcc:
-
-/usr/include/c++/4.3/vector:
-
-/usr/include/c++/4.3/bits/stl_construct.h:
-
-/usr/include/c++/4.3/bits/stl_uninitialized.h:
-
-/usr/include/c++/4.3/bits/stl_vector.h:
-
-/usr/include/c++/4.3/bits/stl_bvector.h:
-
-/usr/include/c++/4.3/bits/vector.tcc:
-
-olm.h:
-
-boost/shared_ptr.hpp:
-
-/usr/include/boost/config.hpp:
-
-/usr/include/boost/config/user.hpp:
-
-/usr/include/boost/config/select_compiler_config.hpp:
-
-/usr/include/boost/config/compiler/gcc.hpp:
-
-/usr/include/boost/config/select_stdlib_config.hpp:
-
-/usr/include/boost/config/no_tr1/utility.hpp:
-
-/usr/include/c++/4.3/utility:
-
-/usr/include/c++/4.3/bits/stl_relops.h:
-
-/usr/include/boost/config/stdlib/libstdcpp3.hpp:
-
-/usr/include/boost/config/select_platform_config.hpp:
-
-/usr/include/boost/config/platform/linux.hpp:
-
-/usr/include/c++/4.3/cstdlib:
-
-/usr/include/stdlib.h:
-
-/usr/include/boost/config/posix_features.hpp:
-
-/usr/include/boost/config/suffix.hpp:
-
-/usr/include/c++/4.3/memory:
-
-/usr/include/c++/4.3/bits/stl_tempbuf.h:
-
-/usr/include/c++/4.3/bits/stl_raw_storage_iter.h:
-
-/usr/include/c++/4.3/backward/auto_ptr.h:
-
-/usr/include/boost/assert.hpp:
-
-/usr/include/assert.h:
-
-/usr/include/boost/checked_delete.hpp:
-
-/usr/include/boost/throw_exception.hpp:
-
-/usr/include/boost/detail/shared_count.hpp:
-
-/usr/include/boost/detail/bad_weak_ptr.hpp:
-
-/usr/include/boost/detail/sp_counted_base.hpp:
-
-/usr/include/boost/detail/sp_counted_base_gcc_x86.hpp:
-
-/usr/include/c++/4.3/typeinfo:
-
-/usr/include/boost/detail/sp_counted_impl.hpp:
-
-/usr/include/c++/4.3/functional:
-
-/usr/include/boost/detail/workaround.hpp:
-
-/usr/include/c++/4.3/algorithm:
-
-/usr/include/c++/4.3/bits/stl_algo.h:
-
-/usr/include/c++/4.3/bits/algorithmfwd.h:
-
-/usr/include/c++/4.3/bits/stl_heap.h:
-
-list.h:
-
-coord.h:
-
-scan.h:
-
-curve.h:
-
-func.h:
-
-expr.h:
-
-readln.h:
-
-asi.h:
-
-xax_lex.h:
-
-/usr/include/gsl/gsl_errno.h:
-
-/usr/include/errno.h:
-
-/usr/include/bits/errno.h:
-
-/usr/include/linux/errno.h:
-
-/usr/include/asm/errno.h:
-
-/usr/include/asm-generic/errno.h:
-
-/usr/include/asm-generic/errno-base.h:
-
-/usr/include/gsl/gsl_types.h:
-
-/usr/include/gsl/gsl_math.h:
-
-/usr/include/gsl/gsl_sys.h:
-
-/usr/include/gsl/gsl_machine.h:
-
-/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/limits.h:
-
-/usr/lib/gcc/i486-linux-gnu/4.3.2/include-fixed/syslimits.h:
-
-/usr/include/limits.h:
-
-/usr/include/bits/posix1_lim.h:
-
-/usr/include/bits/local_lim.h:
-
-/usr/include/linux/limits.h:
-
-/usr/include/bits/posix2_lim.h:
-
-/usr/include/bits/xopen_lim.h:
-
-/usr/lib/gcc/i486-linux-gnu/4.3.2/include/float.h:
-
-/usr/include/gsl/gsl_precision.h:
-
-/usr/include/gsl/gsl_nan.h:
-
-/usr/include/gsl/gsl_pow_int.h:
-
-/usr/include/gsl/gsl_roots.h:
diff --git a/pub/src/asi.cpp b/pub/src/asi.cpp
index ccc43218184249652fa4690b0ab5829de8a02a2a..d6e728016ded3865c8a3dd4f3e091521bc6d711e 100644
--- a/pub/src/asi.cpp
+++ b/pub/src/asi.cpp
@@ -43,7 +43,7 @@ char dask_decode( const string& resp, double *rval )
 {
     if        ( resp=="" ) {
         return 'd';
-    } else if ( !mystd::any2dbl( resp, rval) ) {
+    } else if ( mystd::any2dbl( resp, rval) ) {
         return 'v';
     } else
         return 'h';
diff --git a/pub/src/coord.cpp b/pub/src/coord.cpp
index eecec876abac458628ce75a936ca47b1bd426446..fd650ddb8d264990aff9901dcc1541791992650e 100644
--- a/pub/src/coord.cpp
+++ b/pub/src/coord.cpp
@@ -114,16 +114,6 @@ ostream& operator<< (ostream &s, CCoord C)
 //  class CParam                                                            //
 //**************************************************************************//
 
-int CParam::init_from_a01( const string in )
-{
-    int ji = in.find_first_not_of(" \t");
-    int ret=-9;
-    if( ji>=20 || ( ret = mystd::any2dbl( in.substr(ji,20), &val ) ) )
-        return ret;
-    Co.load_a01( in.substr(21) );
-    return 0;
-}
-
 string CParam::str() const
 {
     return strg(val) + string(" ") + Co.str();
diff --git a/pub/src/coord.h b/pub/src/coord.h
index cdd83421d53294c52af8b03bc3782f0c6ec0eb64..60ab6a09ef3ee9e55249da1d5b901524902bb5f1 100644
--- a/pub/src/coord.h
+++ b/pub/src/coord.h
@@ -38,6 +38,5 @@ class CParam {
         { Co = CCoord(_name, _unit); val = vin; };
 
     string str(void) const;
-    int    init_from_a01( const string in );
 };
 
diff --git a/pub/src/curve.cpp b/pub/src/curve.cpp
index 6fa443dec6226aaf27e2916dc72ac2dc1db3946b..75327c5449601106ac678fb67115939f30295141 100644
--- a/pub/src/curve.cpp
+++ b/pub/src/curve.cpp
@@ -6,6 +6,7 @@
 //**************************************************************************//
 
 #include <iostream>
+#include <boost/regex.hpp>
 #include <stdlib.h>
 #include <math.h>
 #include <lmmin.h>
@@ -242,8 +243,44 @@ void NCurveFile::OprPar(string llabel)
 
 void NCurveFile::SetFixed()
 {
-    string lin = sask( "Change fix status: { <ip>+ | <ip>- | <ip>=<j-list> }" );
+    // Everything is driven by one input string
+    string lin;
+    while ( true ) {
+        lin = sask( "Change fix status", "help" );
+        if        ( lin=="h" || lin=="help" ) {
+            cout <<
+                "cx input:\n"
+                "  blank separated list of instructions\n"
+                "instruction:\n"
+                "  <ip>+         # to make parameter number ip fixed\n"
+                "  <ip>-         # to release the fixation\n"
+                "  <ip>=<j-list> # to fix the parameter for scans in j-list\n";
+            continue;
+        } else if ( lin=="q" )
+            return;
+        break;
+    }
 
+    boost::sregex_token_iterator eos;
+    boost::regex re1( "\\s+" );
+    boost::regex re2( "(\\d+)(\\+|\\-|\\=)(.*)" );
+
+    // Split input string in words
+    boost::sregex_token_iterator _wrd( lin.begin(), lin.end(), re1, -1 );
+    while ( _wrd!=eos ) {
+        string wrd = *_wrd++;
+        boost::smatch tokens;
+        if( !boost::regex_match( wrd, tokens, re2 ) )
+            throw "invalid instruction "+wrd;
+        if      ( tokens[2] == "+" )
+            cout << "+!!!\n";
+        else if ( tokens[2] == "-" )
+            cout << "-!!!\n";
+        else if ( tokens[2] == "=" )
+            cout << "=!!!\n";
+    }
+
+/*
     while( true ) {
         mystd::string_extract_word( lin, 
     const char *how_opts[] = { "", "+", "-" };
@@ -273,6 +310,7 @@ void NCurveFile::SetFixed()
             }
         }
     }
+*/
 }
 
 
diff --git a/pub/src/dualplot.cpp b/pub/src/dualplot.cpp
index 6fa576afe32bf69fc7e607b6b54e40ca2af4bdcf..b9f10a2b22725a6cc7975a2111f35612c657fe9b 100644
--- a/pub/src/dualplot.cpp
+++ b/pub/src/dualplot.cpp
@@ -63,9 +63,9 @@ void CAxis::set_from_string( const string& in )
     }
     string s1, s2;
     mystd::string_extract_word( in, &s1, &s2 );
-    if ( mystd::any2dbl(s1,&inf) )
+    if ( !mystd::any2dbl(s1,&inf) )
         throw string( "invalid lower bound, expecting real number" );
-    if ( mystd::any2dbl(s2,&sup) )
+    if ( !mystd::any2dbl(s2,&sup) )
         throw string( "invalid upper bound, expecting real number" );
 }
 
diff --git a/pub/src/edif.cpp b/pub/src/edif.cpp
index c75fd6c11f2299fb94104f7948f0fe04c35006ff..4750c16cb7ba5ee45dda70de599c55d24762825d 100644
--- a/pub/src/edif.cpp
+++ b/pub/src/edif.cpp
@@ -782,7 +782,7 @@ void NEdif::ReadTab( string qualif )
             ++n_in;
             if( lin.substr(0,4)=="#rpa" ){
                 mystd::string_extract_word( lin.substr(4), &s1, &s2 );
-                if( mystd::any2dbl( s2, &val ) )
+                if( !mystd::any2dbl( s2, &val ) )
                     printf( "invalid parameter line [%s]\n", lin.c_str() );
                 else
                     olf.RPar.push_back( CParam( s2, "", val) );
diff --git a/pub/src/file_in.cpp b/pub/src/file_in.cpp
index 80633aa151af61099415f5ed064d5d60353dfd3a..14745813a7006e44bbdb511801ac08cf16f493c1 100644
--- a/pub/src/file_in.cpp
+++ b/pub/src/file_in.cpp
@@ -138,7 +138,7 @@ void NFileIn::Load_08( FILE *F_in, string flong )
             co.unit = y.getscalar( "param(" + co.name + ").unit" );
             y.checkvalue( "value" );
             val = y.getscalar( "param(" + co.name + ").value" );
-            if( mystd::any2dbl( val, &num ) )
+            if( !mystd::any2dbl( val, &num ) )
                 throw string( "param(" ) + co.name + "): invalid value " + val;
             olo->RPar.push_back( CParam( co, num ) );
             y.checktype( YAML_MAPPING_END_EVENT,
@@ -169,7 +169,7 @@ void NFileIn::Load_08( FILE *F_in, string flong )
         for( iz=0; iz<olo->ZCo.size(); ++iz ){
             y.checkvalue( "z" + strg(iz) );
             val = y.getscalar( "z" + strg(iz) + ".value" );
-            if( mystd::any2dbl( val, &num ) )
+            if( !mystd::any2dbl( val, &num ) )
                 throw "z" + strg(iz) + ": invalid value " + val;
             z.push_back( num );
         }
@@ -195,7 +195,7 @@ void NFileIn::Load_08( FILE *F_in, string flong )
             for( size_t ip=0; ip<((COlc*)olo)->nPar(); ++ip ){
                 y.checkvalue( "p" + strg(ip) );
                 val = y.getscalar( "p" + strg(ip) + ".value" );
-                if( mystd::any2dbl( val, &num ) )
+                if( !mystd::any2dbl( val, &num ) )
                     throw "p" + strg(ip) + ": invalid value " + val;
                 cout.P.push_back( num );
             }
@@ -282,9 +282,13 @@ void NFileIn::Load_01( FILE *F_in, string flong )
             co.load_a01(val);
             old.ZCo.push_back(co);
         } else if (lin.substr(0,4)=="rpa ") {
-            old.RPar.push_back( CParam() );
-            if( old.RPar.back().init_from_a01( lin.substr(4) ) )
+            string in = lin.substr(4);
+            int ji = in.find_first_not_of(" \t");
+            double dval;
+            if( ji>=20 || !mystd::any2dbl( in.substr(ji,20), &dval ) )
                 throw string( "invalid rpa line\n" );
+            old.RPar.push_back( CParam( CCoord(), dval ) );
+            throw string( "a01 file contains rpa section. Check the source code preceeding this error message. It is possibly broken. If not, remove this exception.\n" );
         } else if (key=="#j  ") {
             if ( sscanf(val.c_str(), "%u", &nj)!=1 )
                throw string( "after key #j no no. of scans\n");
diff --git a/pub/src/mystd.cpp b/pub/src/mystd.cpp
index 677816305b40a08a80d14fa7500f0c04beff965f..1c81762094fb342eeab179de98f3e4c6b447cb50 100644
--- a/pub/src/mystd.cpp
+++ b/pub/src/mystd.cpp
@@ -173,50 +173,50 @@ int mystd::str2vec(string inp, vector<double> *V, uint nmax, bool force)
     return 0;
 }
 
-int mystd::any2dbl( const string inp, double *val )
+bool mystd::any2dbl( const string inp, double *val )
 {
     if(!inp.size()) {
         cout << "expecting double, found empty input\n";
-        return -1;
+        return false;
     }
     if( inp=="-inf" || inp=="-oo" ){
         *val = -INFINITY;
-        return 0;
+        return false;
     }
     if( inp=="inf" || inp=="oo" || inp=="+inf" || inp=="+oo" ){
         *val = INFINITY;
-        return 0;
+        return false;
     }
     if(!strchr("+-0123456789.", inp[0])) {
         cout << "expecting double, found bad char[0] in [" 
              << inp << "]\n";
-        return -2;
+        return false;
     }
     double mant; int expt;
     if (sscanf(inp.c_str(), "%lgm%d", &mant, &expt)==2) {
         *val = mant * pow(10.e0, (double)(-expt));
-        return 0;
+        return true;
     }
     if (sscanf(inp.c_str(), "%lg", val)==1)
-        return 0;
+        return true;
     cout << "expecting double, sscanf failed\n";
-    return -9;
+    return false;
 }
 
-int mystd::any2int(const string inp, int *val)
+bool mystd::any2int(const string inp, int *val)
 {
     if(!inp.size()) {
         cout << "expecting integer, found empty input\n";
-        return -1;
+        return false;
     }
     if(!strchr("+-0123456789", inp[0])) {
         cout << "expecting integer, found bad char[0] in [" 
              << inp << "]\n";
-        return -2;
+        return false;
     }
-    if (sscanf(inp.c_str(), "%d", val)==1) return 0;
+    if (sscanf(inp.c_str(), "%d", val)==1) return true;
     cout << "expecting integer, sscanf failed\n";
-    return -9;
+    return false;
 }
 
 void mystd::string_extract_word( const string in, string *out1, string *out2 )
diff --git a/pub/src/mystd.h b/pub/src/mystd.h
index c04e31671f3b4bb3d7345cf77bdb8ae355e512b5..d29125cad6f0f7fc50a05ae20eb09cc671c50abd 100644
--- a/pub/src/mystd.h
+++ b/pub/src/mystd.h
@@ -28,8 +28,8 @@ namespace mystd {
 
     //! convert from string
     int str2vec( string inp, vector<double> *V, uint nmax=0, bool force=true );
-    int any2dbl( const string inp, double *val );
-    int any2int( const string inp, int *val );
+    bool any2dbl( const string inp, double *val );
+    bool any2int( const string inp, int *val );
     void string_extract_word( const string in, string *out1, string *out2 );
     void string_extract_line( const string in, string *out1, string *out2 );
 
diff --git a/pub/src/rssm.cpp b/pub/src/rssm.cpp
index 99a279137bf81ebdf37b88abe95ed235c520938c..24666dff3540c90443dd549d58884298e07c2dd9 100644
--- a/pub/src/rssm.cpp
+++ b/pub/src/rssm.cpp
@@ -86,7 +86,7 @@ void RssmRawFile::RdRawYam( FILE *F_in )
             strptime( date_string, "%F %A %H:%M:%S", &date_broken );
             measured_until = mktime( &date_broken );
         } else if ( key=="ndet" ){
-            if( mystd::any2int( val, &ndet ) )
+            if( !mystd::any2int( val, &ndet ) )
                 throw string( "invalid ndet" );
         } else if ( key=="daq_time_step" ){
             mystd::string_extract_word( val, &bla, &blub );
@@ -112,7 +112,7 @@ void RssmRawFile::RdRawYam( FILE *F_in )
             throw string( "invalid Det angle entry" );
         if( key != "angle" )
             throw string ( "missing angle" );
-        if( mystd::any2dbl( val, &num ) ){
+        if( !mystd::any2dbl( val, &num ) ){
             num = 0;
             printf( "warning: invalid angle %s\n", val.c_str() );
         }
@@ -140,7 +140,7 @@ void RssmRawFile::RdRawYam( FILE *F_in )
             throw string ( "E-Hist: seq: no seq" );
         y.done();
         val = y.getscalar( "x-value" );
-        if( mystd::any2dbl( val, &num ) )
+        if( !mystd::any2dbl( val, &num ) )
             throw string( "E-Hist: invalid x-value " ) + val;
         for( int i=0; i<4; ++i )
             rawdata[i].push_back( num );
@@ -174,7 +174,7 @@ void RssmRawFile::RdRawYam( FILE *F_in )
             throw string ( "C-Hist: seq: no seq" );
         y.done();
         val = y.getscalar( "x-value" );
-        if( mystd::any2dbl( val, &num ) )
+        if( !mystd::any2dbl( val, &num ) )
             throw string( "C-Hist: invalid x-value " ) + val;
         for( int i=4; i<6; ++i )
             rawdata[i].push_back( num );