diff --git a/configure b/configure
index 2388adb89bef817c1683f62a15367b894982ca03..3723fa2f7e087b063a7ea113e789caca5238ed7e 100755
--- a/configure
+++ b/configure
@@ -309,21 +309,16 @@ sub secondary_variables
 	    # all warnings, normal optimization, fPIC for shared library
 	    $cflags.=" -fPIC -Wall -Wstrict-prototypes -O$opt  ";
 
-            if($ccuse =~/^gcc/ &&
-               stripversion($compiler_version)>=8.0)
-            {
-                $cflags .= " -Wno-nonnull-compare ";
-            }
-            
+            # activate gcc hints
             if(defined $gcc_hints && 
                $gcc_hints &&
                $ccuse =~/^gcc/ &&
                stripversion($compiler_version) >= 8.0)
             {
                 print "Use gcc suggest-attribute hints\n";
-                foreach my $att ('pure','const','noreturn','format','cold','malloc')
+                foreach my $attribute ('pure','const','noreturn','format','cold','malloc')
                 {
-                    $cflags .= " -Wsuggest-attribute=$att ";
+                    $cflags .= " -Wsuggest-attribute=$attribute ";
                 }
             }
   
@@ -963,7 +958,17 @@ cleanall:\n	rm -f *.o */*.o *.il */*.il *.da */*.da *.gcda */*.gcda *.gcno */*.g
 
 sub compiler_version
 {
-    my $v=`$cc --version`;
+    my $cmd = "$cc --version 2>/dev/stdout";
+    my $v = `$cmd`;
+        
+    if($v=~/^\s*$/ ||
+       $v=~/not found/ || 
+       $v=~/Can\'t exec/)
+    {
+        print $colour->{'bold yellow'},"Cannot run compiler \"$cc\" or cannot find its version : this is a fatal error\n",$colour->{'reset'};
+        exit;
+    }
+    
     return ($v=~/\(GCC\) (\d\.\d)/)[0] ||
         ($v=~/(\d+\.\d+\.\d+)/)[0] || 
         ($v=~/icc \(ICC\) (\d+\.\d+)/)[0] || '';
@@ -1434,7 +1439,7 @@ sub checklib
         my $was = $path;
         $path = realpath($path);
         no warnings;
-        print "Found shared librarys \"$colour->{yellow}$soname$colour->{reset}\" at ";
+        print "Found shared library (.so file) \"$colour->{yellow}$soname$colour->{reset}\" at ";
         if($was ne $path)
         {
             print "$was which is really ";
diff --git a/src/binary_c_maths.h b/src/binary_c_maths.h
index 740106a9ad77e7adaba66369f8cebc3cd1d9d376..97055fae4f3fc542ec4283c0a127f5c3f3494717 100644
--- a/src/binary_c_maths.h
+++ b/src/binary_c_maths.h
@@ -94,27 +94,23 @@
 #define Min4(A,B,C,D) Min((A),Min3((B),(C),(D)))
 #define Min5(A,B,C,D,E) Min((A),Min4((B),(C),(D),(E)))
 
+/* NB minx should not be NULL */
 #define MinX(ax,ay,bx,by,_minx) ({                              \
             const Autotype(ax) _ax = (ax);                      \
             const Autotype(bx) _bx = (bx);                      \
             const Autotype(ay) _ay = (ay);                      \
             const Autotype(by) _by = (by);                      \
-            if(_minx!=NULL)                                     \
-            {                                                   \
-                *_minx = Less_than((_ay),(_by)) ? _ax : _bx;    \
-            }                                                   \
+            *_minx = Less_than((_ay),(_by)) ? _ax : _bx;        \
             Min(_ay,_by);                                       \
         })
 
+/* NB maxx should not be NULL */
 #define MaxX(ax,ay,bx,by,_minx) ({                              \
             const Autotype(ax) _ax = (ax);                      \
             const Autotype(bx) _bx = (bx);                      \
             const Autotype(ay) _ay = (ay);                      \
             const Autotype(by) _by = (by);                      \
-            if(_maxx!=NULL)                                     \
-            {                                                   \
-                *_maxx = More_than((_ay),(_by)) ? _ax : _bx;    \
-            }                                                   \
+            *_maxx = More_than((_ay),(_by)) ? _ax : _bx;        \
             Max(_ay,_by);                                       \
         })
 
diff --git a/src/buffering/clear_printf_buffer.c b/src/buffering/clear_printf_buffer.c
index 78de83383f0c856f58e8c503ed26834e66d03f03..b6208ac0c4c888fb099636a88f63f67e7903ae97 100644
--- a/src/buffering/clear_printf_buffer.c
+++ b/src/buffering/clear_printf_buffer.c
@@ -1,5 +1,5 @@
 #include "../binary_c.h"
-#include "./miniz.h"
+//#include "./miniz.h"
 
 #ifdef BUFFERED_STACK
 void clear_printf_buffer(struct stardata_t * RESTRICT const stardata)
diff --git a/src/buffering/miniz.c b/src/buffering/miniz.c
index 63f966bc9fad3777175b4d6a1730ba554d47757d..c92c8dbaff8239deb7c591b8c21036cdd5df6c8b 100644
--- a/src/buffering/miniz.c
+++ b/src/buffering/miniz.c
@@ -1,3 +1,5 @@
+#ifdef __USE_MINIZ_C__
+
 // https://code.google.com/p/miniz/
 
 /* miniz.c v1.15 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing
@@ -2383,7 +2385,8 @@ extern "C" {
                 mz_uint probe_pos = d->m_hash[hash];
                 d->m_hash[hash] = (mz_uint16)lookahead_pos;
 
-                if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((*(const mz_uint32 *)(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram))
+                if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) &&
+                    ((*(const mz_uint32 *)(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram))
                 {
                     const mz_uint16 *p = (const mz_uint16 *)pCur_dict;
                     const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos);
@@ -4934,3 +4937,5 @@ extern "C" {
 
   For more information, please refer to <http://unlicense.org/>
 */
+
+#endif // __USE_MINIZ_C__
diff --git a/src/debug/stardata_diff.h b/src/debug/stardata_diff.h
index e65fc818700588c2a7e2249cf69956b3d665a5cd..23d3a5f85d7427d72eeb08d9cb4fbf8456dabb9f 100644
--- a/src/debug/stardata_diff.h
+++ b/src/debug/stardata_diff.h
@@ -4,101 +4,6 @@
  */
 
 
-if(((stardata->previous_stardata->common.discs[0].thermal_zones[0].valid)!=(stardata->common.discs[0].thermal_zones[0].valid)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].thermal_zones[0].valid = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].thermal_zones[0].valid, stardata->common.discs[0].thermal_zones[0].valid, (stardata->common.discs[0].thermal_zones[0].valid - stardata->previous_stardata->common.discs[0].thermal_zones[0].valid) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].thermal_zones[0].rstart),(stardata->common.discs[0].thermal_zones[0].rstart)))        Printf ( "STARDATA double                        : stardata->common.discs[0].thermal_zones[0].rstart = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].thermal_zones[0].rstart, stardata->common.discs[0].thermal_zones[0].rstart, (stardata->common.discs[0].thermal_zones[0].rstart - stardata->previous_stardata->common.discs[0].thermal_zones[0].rstart) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].thermal_zones[0].rend),(stardata->common.discs[0].thermal_zones[0].rend)))        Printf ( "STARDATA double                        : stardata->common.discs[0].thermal_zones[0].rend = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].thermal_zones[0].rend, stardata->common.discs[0].thermal_zones[0].rend, (stardata->common.discs[0].thermal_zones[0].rend - stardata->previous_stardata->common.discs[0].thermal_zones[0].rend) ) ;
-if(((stardata->previous_stardata->common.discs[0].thermal_zones[0].type)!=(stardata->common.discs[0].thermal_zones[0].type)))        Printf ( "STARDATA int                           : stardata->common.discs[0].thermal_zones[0].type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].thermal_zones[0].type, stardata->common.discs[0].thermal_zones[0].type, (stardata->common.discs[0].thermal_zones[0].type - stardata->previous_stardata->common.discs[0].thermal_zones[0].type) ) ;
-if(((stardata->previous_stardata->common.discs[0].thermal_zones[1].valid)!=(stardata->common.discs[0].thermal_zones[1].valid)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].thermal_zones[1].valid = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].thermal_zones[1].valid, stardata->common.discs[0].thermal_zones[1].valid, (stardata->common.discs[0].thermal_zones[1].valid - stardata->previous_stardata->common.discs[0].thermal_zones[1].valid) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].thermal_zones[1].rstart),(stardata->common.discs[0].thermal_zones[1].rstart)))        Printf ( "STARDATA double                        : stardata->common.discs[0].thermal_zones[1].rstart = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].thermal_zones[1].rstart, stardata->common.discs[0].thermal_zones[1].rstart, (stardata->common.discs[0].thermal_zones[1].rstart - stardata->previous_stardata->common.discs[0].thermal_zones[1].rstart) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].thermal_zones[1].rend),(stardata->common.discs[0].thermal_zones[1].rend)))        Printf ( "STARDATA double                        : stardata->common.discs[0].thermal_zones[1].rend = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].thermal_zones[1].rend, stardata->common.discs[0].thermal_zones[1].rend, (stardata->common.discs[0].thermal_zones[1].rend - stardata->previous_stardata->common.discs[0].thermal_zones[1].rend) ) ;
-if(((stardata->previous_stardata->common.discs[0].thermal_zones[1].type)!=(stardata->common.discs[0].thermal_zones[1].type)))        Printf ( "STARDATA int                           : stardata->common.discs[0].thermal_zones[1].type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].thermal_zones[1].type, stardata->common.discs[0].thermal_zones[1].type, (stardata->common.discs[0].thermal_zones[1].type - stardata->previous_stardata->common.discs[0].thermal_zones[1].type) ) ;
-if(((stardata->previous_stardata->common.discs[0].thermal_zones[2].valid)!=(stardata->common.discs[0].thermal_zones[2].valid)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].thermal_zones[2].valid = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].thermal_zones[2].valid, stardata->common.discs[0].thermal_zones[2].valid, (stardata->common.discs[0].thermal_zones[2].valid - stardata->previous_stardata->common.discs[0].thermal_zones[2].valid) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].thermal_zones[2].rstart),(stardata->common.discs[0].thermal_zones[2].rstart)))        Printf ( "STARDATA double                        : stardata->common.discs[0].thermal_zones[2].rstart = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].thermal_zones[2].rstart, stardata->common.discs[0].thermal_zones[2].rstart, (stardata->common.discs[0].thermal_zones[2].rstart - stardata->previous_stardata->common.discs[0].thermal_zones[2].rstart) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].thermal_zones[2].rend),(stardata->common.discs[0].thermal_zones[2].rend)))        Printf ( "STARDATA double                        : stardata->common.discs[0].thermal_zones[2].rend = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].thermal_zones[2].rend, stardata->common.discs[0].thermal_zones[2].rend, (stardata->common.discs[0].thermal_zones[2].rend - stardata->previous_stardata->common.discs[0].thermal_zones[2].rend) ) ;
-if(((stardata->previous_stardata->common.discs[0].thermal_zones[2].type)!=(stardata->common.discs[0].thermal_zones[2].type)))        Printf ( "STARDATA int                           : stardata->common.discs[0].thermal_zones[2].type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].thermal_zones[2].type, stardata->common.discs[0].thermal_zones[2].type, (stardata->common.discs[0].thermal_zones[2].type - stardata->previous_stardata->common.discs[0].thermal_zones[2].type) ) ;
-if(((stardata->previous_stardata->common.discs[0].first)!=(stardata->common.discs[0].first)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].first = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].first, stardata->common.discs[0].first, (stardata->common.discs[0].first - stardata->previous_stardata->common.discs[0].first) ) ;
-if(((stardata->previous_stardata->common.discs[0].firstlog)!=(stardata->common.discs[0].firstlog)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].firstlog = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].firstlog, stardata->common.discs[0].firstlog, (stardata->common.discs[0].firstlog - stardata->previous_stardata->common.discs[0].firstlog) ) ;
-if(((stardata->previous_stardata->common.discs[0].append)!=(stardata->common.discs[0].append)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].append = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].append, stardata->common.discs[0].append, (stardata->common.discs[0].append - stardata->previous_stardata->common.discs[0].append) ) ;
-if(((stardata->previous_stardata->common.discs[0].suppress_viscous_inflow)!=(stardata->common.discs[0].suppress_viscous_inflow)))        Printf ( "STARDATA Boolean                         : stardata->common.discs[0].suppress_viscous_inflow = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].suppress_viscous_inflow, stardata->common.discs[0].suppress_viscous_inflow, (stardata->common.discs[0].suppress_viscous_inflow - stardata->previous_stardata->common.discs[0].suppress_viscous_inflow) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].M),(stardata->common.discs[0].M)))        Printf ( "STARDATA double                        : stardata->common.discs[0].M = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].M, stardata->common.discs[0].M, (stardata->common.discs[0].M - stardata->previous_stardata->common.discs[0].M) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].alpha),(stardata->common.discs[0].alpha)))        Printf ( "STARDATA double                        : stardata->common.discs[0].alpha = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].alpha, stardata->common.discs[0].alpha, (stardata->common.discs[0].alpha - stardata->previous_stardata->common.discs[0].alpha) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].gamma),(stardata->common.discs[0].gamma)))        Printf ( "STARDATA double                        : stardata->common.discs[0].gamma = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].gamma, stardata->common.discs[0].gamma, (stardata->common.discs[0].gamma - stardata->previous_stardata->common.discs[0].gamma) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].torqueF),(stardata->common.discs[0].torqueF)))        Printf ( "STARDATA double                        : stardata->common.discs[0].torqueF = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].torqueF, stardata->common.discs[0].torqueF, (stardata->common.discs[0].torqueF - stardata->previous_stardata->common.discs[0].torqueF) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].torqueF_for_Rin),(stardata->common.discs[0].torqueF_for_Rin)))        Printf ( "STARDATA double                        : stardata->common.discs[0].torqueF_for_Rin = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].torqueF_for_Rin, stardata->common.discs[0].torqueF_for_Rin, (stardata->common.discs[0].torqueF_for_Rin - stardata->previous_stardata->common.discs[0].torqueF_for_Rin) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].fuv),(stardata->common.discs[0].fuv)))        Printf ( "STARDATA double                        : stardata->common.discs[0].fuv = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].fuv, stardata->common.discs[0].fuv, (stardata->common.discs[0].fuv - stardata->previous_stardata->common.discs[0].fuv) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].kappa),(stardata->common.discs[0].kappa)))        Printf ( "STARDATA double                        : stardata->common.discs[0].kappa = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].kappa, stardata->common.discs[0].kappa, (stardata->common.discs[0].kappa - stardata->previous_stardata->common.discs[0].kappa) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Rin),(stardata->common.discs[0].Rin)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Rin = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Rin, stardata->common.discs[0].Rin, (stardata->common.discs[0].Rin - stardata->previous_stardata->common.discs[0].Rin) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Rout),(stardata->common.discs[0].Rout)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Rout = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Rout, stardata->common.discs[0].Rout, (stardata->common.discs[0].Rout - stardata->previous_stardata->common.discs[0].Rout) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Rin_min),(stardata->common.discs[0].Rin_min)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Rin_min = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Rin_min, stardata->common.discs[0].Rin_min, (stardata->common.discs[0].Rin_min - stardata->previous_stardata->common.discs[0].Rin_min) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Rout_max),(stardata->common.discs[0].Rout_max)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Rout_max = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Rout_max, stardata->common.discs[0].Rout_max, (stardata->common.discs[0].Rout_max - stardata->previous_stardata->common.discs[0].Rout_max) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].lifetime),(stardata->common.discs[0].lifetime)))        Printf ( "STARDATA double                        : stardata->common.discs[0].lifetime = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].lifetime, stardata->common.discs[0].lifetime, (stardata->common.discs[0].lifetime - stardata->previous_stardata->common.discs[0].lifetime) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dt),(stardata->common.discs[0].dt)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dt = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dt, stardata->common.discs[0].dt, (stardata->common.discs[0].dt - stardata->previous_stardata->common.discs[0].dt) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].J),(stardata->common.discs[0].J)))        Printf ( "STARDATA double                        : stardata->common.discs[0].J = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].J, stardata->common.discs[0].J, (stardata->common.discs[0].J - stardata->previous_stardata->common.discs[0].J) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].sigma0),(stardata->common.discs[0].sigma0)))        Printf ( "STARDATA double                        : stardata->common.discs[0].sigma0 = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].sigma0, stardata->common.discs[0].sigma0, (stardata->common.discs[0].sigma0 - stardata->previous_stardata->common.discs[0].sigma0) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].mu),(stardata->common.discs[0].mu)))        Printf ( "STARDATA double                        : stardata->common.discs[0].mu = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].mu, stardata->common.discs[0].mu, (stardata->common.discs[0].mu - stardata->previous_stardata->common.discs[0].mu) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Tvisc0),(stardata->common.discs[0].Tvisc0)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Tvisc0 = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Tvisc0, stardata->common.discs[0].Tvisc0, (stardata->common.discs[0].Tvisc0 - stardata->previous_stardata->common.discs[0].Tvisc0) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].F),(stardata->common.discs[0].F)))        Printf ( "STARDATA double                        : stardata->common.discs[0].F = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].F, stardata->common.discs[0].F, (stardata->common.discs[0].F - stardata->previous_stardata->common.discs[0].F) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dM_binary),(stardata->common.discs[0].dM_binary)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dM_binary = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dM_binary, stardata->common.discs[0].dM_binary, (stardata->common.discs[0].dM_binary - stardata->previous_stardata->common.discs[0].dM_binary) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Mdot_binary),(stardata->common.discs[0].Mdot_binary)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Mdot_binary = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Mdot_binary, stardata->common.discs[0].Mdot_binary, (stardata->common.discs[0].Mdot_binary - stardata->previous_stardata->common.discs[0].Mdot_binary) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dM_ejected),(stardata->common.discs[0].dM_ejected)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dM_ejected = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dM_ejected, stardata->common.discs[0].dM_ejected, (stardata->common.discs[0].dM_ejected - stardata->previous_stardata->common.discs[0].dM_ejected) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Mdot_ejected),(stardata->common.discs[0].Mdot_ejected)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Mdot_ejected = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Mdot_ejected, stardata->common.discs[0].Mdot_ejected, (stardata->common.discs[0].Mdot_ejected - stardata->previous_stardata->common.discs[0].Mdot_ejected) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dJ_binary),(stardata->common.discs[0].dJ_binary)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dJ_binary = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dJ_binary, stardata->common.discs[0].dJ_binary, (stardata->common.discs[0].dJ_binary - stardata->previous_stardata->common.discs[0].dJ_binary) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Jdot_binary),(stardata->common.discs[0].Jdot_binary)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Jdot_binary = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Jdot_binary, stardata->common.discs[0].Jdot_binary, (stardata->common.discs[0].Jdot_binary - stardata->previous_stardata->common.discs[0].Jdot_binary) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dJ_ejected),(stardata->common.discs[0].dJ_ejected)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dJ_ejected = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dJ_ejected, stardata->common.discs[0].dJ_ejected, (stardata->common.discs[0].dJ_ejected - stardata->previous_stardata->common.discs[0].dJ_ejected) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Jdot_ejected),(stardata->common.discs[0].Jdot_ejected)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Jdot_ejected = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Jdot_ejected, stardata->common.discs[0].Jdot_ejected, (stardata->common.discs[0].Jdot_ejected - stardata->previous_stardata->common.discs[0].Jdot_ejected) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dT),(stardata->common.discs[0].dT)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dT = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dT, stardata->common.discs[0].dT, (stardata->common.discs[0].dT - stardata->previous_stardata->common.discs[0].dT) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].de_binary),(stardata->common.discs[0].de_binary)))        Printf ( "STARDATA double                        : stardata->common.discs[0].de_binary = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].de_binary, stardata->common.discs[0].de_binary, (stardata->common.discs[0].de_binary - stardata->previous_stardata->common.discs[0].de_binary) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].edot_binary),(stardata->common.discs[0].edot_binary)))        Printf ( "STARDATA double                        : stardata->common.discs[0].edot_binary = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].edot_binary, stardata->common.discs[0].edot_binary, (stardata->common.discs[0].edot_binary - stardata->previous_stardata->common.discs[0].edot_binary) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Tvisc),(stardata->common.discs[0].Tvisc)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Tvisc = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Tvisc, stardata->common.discs[0].Tvisc, (stardata->common.discs[0].Tvisc - stardata->previous_stardata->common.discs[0].Tvisc) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Tradin),(stardata->common.discs[0].Tradin)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Tradin = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Tradin, stardata->common.discs[0].Tradin, (stardata->common.discs[0].Tradin - stardata->previous_stardata->common.discs[0].Tradin) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Tradout),(stardata->common.discs[0].Tradout)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Tradout = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Tradout, stardata->common.discs[0].Tradout, (stardata->common.discs[0].Tradout - stardata->previous_stardata->common.discs[0].Tradout) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Hin),(stardata->common.discs[0].Hin)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Hin = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Hin, stardata->common.discs[0].Hin, (stardata->common.discs[0].Hin - stardata->previous_stardata->common.discs[0].Hin) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].RJhalf),(stardata->common.discs[0].RJhalf)))        Printf ( "STARDATA double                        : stardata->common.discs[0].RJhalf = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].RJhalf, stardata->common.discs[0].RJhalf, (stardata->common.discs[0].RJhalf - stardata->previous_stardata->common.discs[0].RJhalf) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].HRJhalf),(stardata->common.discs[0].HRJhalf)))        Printf ( "STARDATA double                        : stardata->common.discs[0].HRJhalf = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].HRJhalf, stardata->common.discs[0].HRJhalf, (stardata->common.discs[0].HRJhalf - stardata->previous_stardata->common.discs[0].HRJhalf) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dRindt),(stardata->common.discs[0].dRindt)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dRindt = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dRindt, stardata->common.discs[0].dRindt, (stardata->common.discs[0].dRindt - stardata->previous_stardata->common.discs[0].dRindt) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].dRoutdt),(stardata->common.discs[0].dRoutdt)))        Printf ( "STARDATA double                        : stardata->common.discs[0].dRoutdt = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].dRoutdt, stardata->common.discs[0].dRoutdt, (stardata->common.discs[0].dRoutdt - stardata->previous_stardata->common.discs[0].dRoutdt) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].PISM),(stardata->common.discs[0].PISM)))        Printf ( "STARDATA double                        : stardata->common.discs[0].PISM = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].PISM, stardata->common.discs[0].PISM, (stardata->common.discs[0].PISM - stardata->previous_stardata->common.discs[0].PISM) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].RISM),(stardata->common.discs[0].RISM)))        Printf ( "STARDATA double                        : stardata->common.discs[0].RISM = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].RISM, stardata->common.discs[0].RISM, (stardata->common.discs[0].RISM - stardata->previous_stardata->common.discs[0].RISM) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].LX),(stardata->common.discs[0].LX)))        Printf ( "STARDATA double                        : stardata->common.discs[0].LX = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].LX, stardata->common.discs[0].LX, (stardata->common.discs[0].LX - stardata->previous_stardata->common.discs[0].LX) ) ;
-{
-    int i0;
-    for(i0 = 0; i0 < 489; i0 ++)
-    {
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].X[i0]),(stardata->common.discs[0].X[i0])))         Printf ( "STARDATA double                        : stardata->common.discs[0].X[% 3d]                             = [prev %g, now %g, diff %g]\n", i0, stardata->previous_stardata->common.discs[0].X[i0], stardata->common.discs[0].X[i0], (stardata->common.discs[0].X[i0] - stardata->previous_stardata->common.discs[0].X[i0]) ) ;
-    }
-}
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Owen2012_norm),(stardata->common.discs[0].Owen2012_norm)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Owen2012_norm = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Owen2012_norm, stardata->common.discs[0].Owen2012_norm, (stardata->common.discs[0].Owen2012_norm - stardata->previous_stardata->common.discs[0].Owen2012_norm) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Revap_in),(stardata->common.discs[0].Revap_in)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Revap_in = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Revap_in, stardata->common.discs[0].Revap_in, (stardata->common.discs[0].Revap_in - stardata->previous_stardata->common.discs[0].Revap_in) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Revap_out),(stardata->common.discs[0].Revap_out)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Revap_out = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Revap_out, stardata->common.discs[0].Revap_out, (stardata->common.discs[0].Revap_out - stardata->previous_stardata->common.discs[0].Revap_out) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Rshred),(stardata->common.discs[0].Rshred)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Rshred = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Rshred, stardata->common.discs[0].Rshred, (stardata->common.discs[0].Rshred - stardata->previous_stardata->common.discs[0].Rshred) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].F_stripping_correction),(stardata->common.discs[0].F_stripping_correction)))        Printf ( "STARDATA double                        : stardata->common.discs[0].F_stripping_correction = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].F_stripping_correction, stardata->common.discs[0].F_stripping_correction, (stardata->common.discs[0].F_stripping_correction - stardata->previous_stardata->common.discs[0].F_stripping_correction) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].Mdot_evap_whole_disc),(stardata->common.discs[0].Mdot_evap_whole_disc)))        Printf ( "STARDATA double                        : stardata->common.discs[0].Mdot_evap_whole_disc = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].Mdot_evap_whole_disc, stardata->common.discs[0].Mdot_evap_whole_disc, (stardata->common.discs[0].Mdot_evap_whole_disc - stardata->previous_stardata->common.discs[0].Mdot_evap_whole_disc) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].nextlog),(stardata->common.discs[0].nextlog)))        Printf ( "STARDATA double                        : stardata->common.discs[0].nextlog = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].nextlog, stardata->common.discs[0].nextlog, (stardata->common.discs[0].nextlog - stardata->previous_stardata->common.discs[0].nextlog) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].fRing),(stardata->common.discs[0].fRing)))        Printf ( "STARDATA double                        : stardata->common.discs[0].fRing = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].fRing, stardata->common.discs[0].fRing, (stardata->common.discs[0].fRing - stardata->previous_stardata->common.discs[0].fRing) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].epstorquef),(stardata->common.discs[0].epstorquef)))        Printf ( "STARDATA double                        : stardata->common.discs[0].epstorquef = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].epstorquef, stardata->common.discs[0].epstorquef, (stardata->common.discs[0].epstorquef - stardata->previous_stardata->common.discs[0].epstorquef) ) ;
-{
-    int i0;
-    for(i0 = 0; i0 < 6; i0 ++)
-    {
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].epsilon[i0]),(stardata->common.discs[0].epsilon[i0])))         Printf ( "STARDATA double                        : stardata->common.discs[0].epsilon[% 3d]                       = [prev %g, now %g, diff %g]\n", i0, stardata->previous_stardata->common.discs[0].epsilon[i0], stardata->common.discs[0].epsilon[i0], (stardata->common.discs[0].epsilon[i0] - stardata->previous_stardata->common.discs[0].epsilon[i0]) ) ;
-    }
-}
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].lastlogtime),(stardata->common.discs[0].lastlogtime)))        Printf ( "STARDATA double                        : stardata->common.discs[0].lastlogtime = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].lastlogtime, stardata->common.discs[0].lastlogtime, (stardata->common.discs[0].lastlogtime - stardata->previous_stardata->common.discs[0].lastlogtime) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].t_m),(stardata->common.discs[0].t_m)))        Printf ( "STARDATA double                        : stardata->common.discs[0].t_m = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].t_m, stardata->common.discs[0].t_m, (stardata->common.discs[0].t_m - stardata->previous_stardata->common.discs[0].t_m) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].t_m_slow),(stardata->common.discs[0].t_m_slow)))        Printf ( "STARDATA double                        : stardata->common.discs[0].t_m_slow = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].t_m_slow, stardata->common.discs[0].t_m_slow, (stardata->common.discs[0].t_m_slow - stardata->previous_stardata->common.discs[0].t_m_slow) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].t_j),(stardata->common.discs[0].t_j)))        Printf ( "STARDATA double                        : stardata->common.discs[0].t_j = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].t_j, stardata->common.discs[0].t_j, (stardata->common.discs[0].t_j - stardata->previous_stardata->common.discs[0].t_j) ) ;
-if(!FEQUAL((stardata->previous_stardata->common.discs[0].t_e),(stardata->common.discs[0].t_e)))        Printf ( "STARDATA double                        : stardata->common.discs[0].t_e = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.discs[0].t_e, stardata->common.discs[0].t_e, (stardata->common.discs[0].t_e - stardata->previous_stardata->common.discs[0].t_e) ) ;
-if(((stardata->previous_stardata->common.discs[0].vb)!=(stardata->common.discs[0].vb)))        Printf ( "STARDATA int                           : stardata->common.discs[0].vb = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].vb, stardata->common.discs[0].vb, (stardata->common.discs[0].vb - stardata->previous_stardata->common.discs[0].vb) ) ;
-if(((stardata->previous_stardata->common.discs[0].ndisc)!=(stardata->common.discs[0].ndisc)))        Printf ( "STARDATA int                           : stardata->common.discs[0].ndisc = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].ndisc, stardata->common.discs[0].ndisc, (stardata->common.discs[0].ndisc - stardata->previous_stardata->common.discs[0].ndisc) ) ;
-if(((stardata->previous_stardata->common.discs[0].type)!=(stardata->common.discs[0].type)))        Printf ( "STARDATA int                           : stardata->common.discs[0].type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].type, stardata->common.discs[0].type, (stardata->common.discs[0].type - stardata->previous_stardata->common.discs[0].type) ) ;
-if(((stardata->previous_stardata->common.discs[0].delete_count)!=(stardata->common.discs[0].delete_count)))        Printf ( "STARDATA int                           : stardata->common.discs[0].delete_count = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].delete_count, stardata->common.discs[0].delete_count, (stardata->common.discs[0].delete_count - stardata->previous_stardata->common.discs[0].delete_count) ) ;
-if(((stardata->previous_stardata->common.discs[0].solver)!=(stardata->common.discs[0].solver)))        Printf ( "STARDATA int                           : stardata->common.discs[0].solver = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].solver, stardata->common.discs[0].solver, (stardata->common.discs[0].solver - stardata->previous_stardata->common.discs[0].solver) ) ;
-if(((stardata->previous_stardata->common.discs[0].guess)!=(stardata->common.discs[0].guess)))        Printf ( "STARDATA int                           : stardata->common.discs[0].guess = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].guess, stardata->common.discs[0].guess, (stardata->common.discs[0].guess - stardata->previous_stardata->common.discs[0].guess) ) ;
-if(((stardata->previous_stardata->common.discs[0].iteration)!=(stardata->common.discs[0].iteration)))        Printf ( "STARDATA int                           : stardata->common.discs[0].iteration = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].iteration, stardata->common.discs[0].iteration, (stardata->common.discs[0].iteration - stardata->previous_stardata->common.discs[0].iteration) ) ;
-if(((stardata->previous_stardata->common.discs[0].end_count)!=(stardata->common.discs[0].end_count)))        Printf ( "STARDATA int                           : stardata->common.discs[0].end_count = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].end_count, stardata->common.discs[0].end_count, (stardata->common.discs[0].end_count - stardata->previous_stardata->common.discs[0].end_count) ) ;
-if(((stardata->previous_stardata->common.discs[0].donor_stellar_type)!=(stardata->common.discs[0].donor_stellar_type)))        Printf ( "STARDATA int                           : stardata->common.discs[0].donor_stellar_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.discs[0].donor_stellar_type, stardata->common.discs[0].donor_stellar_type, (stardata->common.discs[0].donor_stellar_type - stardata->previous_stardata->common.discs[0].donor_stellar_type) ) ;
-if(((stardata->previous_stardata->common.discs[0].n_thermal_zones)!=(stardata->common.discs[0].n_thermal_zones)))        Printf ( "STARDATA unsignedint                   : stardata->common.discs[0].n_thermal_zones = [prev %u, now %u, diff %u]\n", stardata->previous_stardata->common.discs[0].n_thermal_zones, stardata->common.discs[0].n_thermal_zones, (stardata->common.discs[0].n_thermal_zones - stardata->previous_stardata->common.discs[0].n_thermal_zones) ) ;
-if(((stardata->previous_stardata->common.discs[0].converged)!=(stardata->common.discs[0].converged)))        Printf ( "STARDATA unsignedint                   : stardata->common.discs[0].converged = [prev %u, now %u, diff %u]\n", stardata->previous_stardata->common.discs[0].converged, stardata->common.discs[0].converged, (stardata->common.discs[0].converged - stardata->previous_stardata->common.discs[0].converged) ) ;
 {
     int i0;
     for(i0 = 0; i0 < 49; i0 ++)
@@ -200,7 +105,6 @@ if(!FEQUAL((stardata->previous_stardata->common.RLOF_rolwas),(stardata->common.R
 if(!FEQUAL((stardata->previous_stardata->common.monte_carlo_kick_normfac),(stardata->common.monte_carlo_kick_normfac)))        Printf ( "STARDATA double                        : stardata->common.monte_carlo_kick_normfac = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.monte_carlo_kick_normfac, stardata->common.monte_carlo_kick_normfac, (stardata->common.monte_carlo_kick_normfac - stardata->previous_stardata->common.monte_carlo_kick_normfac) ) ;
 if(!FEQUAL((stardata->previous_stardata->common.nucsyn_metallicity),(stardata->common.nucsyn_metallicity)))        Printf ( "STARDATA double                        : stardata->common.nucsyn_metallicity = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->common.nucsyn_metallicity, stardata->common.nucsyn_metallicity, (stardata->common.nucsyn_metallicity - stardata->previous_stardata->common.nucsyn_metallicity) ) ;
 if(((stardata->previous_stardata->common.n_events)!=(stardata->common.n_events)))        Printf ( "STARDATA int                           : stardata->common.n_events = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.n_events, stardata->common.n_events, (stardata->common.n_events - stardata->previous_stardata->common.n_events) ) ;
-if(((stardata->previous_stardata->common.ndiscs)!=(stardata->common.ndiscs)))        Printf ( "STARDATA int                           : stardata->common.ndiscs = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.ndiscs, stardata->common.ndiscs, (stardata->common.ndiscs - stardata->previous_stardata->common.ndiscs) ) ;
 if(((stardata->previous_stardata->common.file_log_n_rlof)!=(stardata->common.file_log_n_rlof)))        Printf ( "STARDATA int                           : stardata->common.file_log_n_rlof = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.file_log_n_rlof, stardata->common.file_log_n_rlof, (stardata->common.file_log_n_rlof - stardata->previous_stardata->common.file_log_n_rlof) ) ;
 if(((stardata->previous_stardata->common.nucsyn_log_count)!=(stardata->common.nucsyn_log_count)))        Printf ( "STARDATA int                           : stardata->common.nucsyn_log_count = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.nucsyn_log_count, stardata->common.nucsyn_log_count, (stardata->common.nucsyn_log_count - stardata->previous_stardata->common.nucsyn_log_count) ) ;
 if(((stardata->previous_stardata->common.nucsyn_short_log_count)!=(stardata->common.nucsyn_short_log_count)))        Printf ( "STARDATA int                           : stardata->common.nucsyn_short_log_count = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->common.nucsyn_short_log_count, stardata->common.nucsyn_short_log_count, (stardata->common.nucsyn_short_log_count - stardata->previous_stardata->common.nucsyn_short_log_count) ) ;
@@ -405,7 +309,6 @@ if(!FEQUAL((stardata->previous_stardata->star[0].stellar_colour[i0]),(stardata->
 if(((stardata->previous_stardata->star[0].stellar_type)!=(stardata->star[0].stellar_type)))        Printf ( "STARDATA int                           : stardata->star[0].stellar_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].stellar_type, stardata->star[0].stellar_type, (stardata->star[0].stellar_type - stardata->previous_stardata->star[0].stellar_type) ) ;
 if(((stardata->previous_stardata->star[0].detached_stellar_type)!=(stardata->star[0].detached_stellar_type)))        Printf ( "STARDATA int                           : stardata->star[0].detached_stellar_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].detached_stellar_type, stardata->star[0].detached_stellar_type, (stardata->star[0].detached_stellar_type - stardata->previous_stardata->star[0].detached_stellar_type) ) ;
 if(((stardata->previous_stardata->star[0].starnum)!=(stardata->star[0].starnum)))        Printf ( "STARDATA int                           : stardata->star[0].starnum = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].starnum, stardata->star[0].starnum, (stardata->star[0].starnum - stardata->previous_stardata->star[0].starnum) ) ;
-if(((stardata->previous_stardata->star[0].ndiscs)!=(stardata->star[0].ndiscs)))        Printf ( "STARDATA int                           : stardata->star[0].ndiscs = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].ndiscs, stardata->star[0].ndiscs, (stardata->star[0].ndiscs - stardata->previous_stardata->star[0].ndiscs) ) ;
 if(((stardata->previous_stardata->star[0].dtlimiter)!=(stardata->star[0].dtlimiter)))        Printf ( "STARDATA int                           : stardata->star[0].dtlimiter = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].dtlimiter, stardata->star[0].dtlimiter, (stardata->star[0].dtlimiter - stardata->previous_stardata->star[0].dtlimiter) ) ;
 if(((stardata->previous_stardata->star[0].SN_type)!=(stardata->star[0].SN_type)))        Printf ( "STARDATA int                           : stardata->star[0].SN_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].SN_type, stardata->star[0].SN_type, (stardata->star[0].SN_type - stardata->previous_stardata->star[0].SN_type) ) ;
 if(((stardata->previous_stardata->star[0].was_SN)!=(stardata->star[0].was_SN)))        Printf ( "STARDATA int                           : stardata->star[0].was_SN = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[0].was_SN, stardata->star[0].was_SN, (stardata->star[0].was_SN - stardata->previous_stardata->star[0].was_SN) ) ;
@@ -610,7 +513,6 @@ if(!FEQUAL((stardata->previous_stardata->star[1].stellar_colour[i0]),(stardata->
 if(((stardata->previous_stardata->star[1].stellar_type)!=(stardata->star[1].stellar_type)))        Printf ( "STARDATA int                           : stardata->star[1].stellar_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].stellar_type, stardata->star[1].stellar_type, (stardata->star[1].stellar_type - stardata->previous_stardata->star[1].stellar_type) ) ;
 if(((stardata->previous_stardata->star[1].detached_stellar_type)!=(stardata->star[1].detached_stellar_type)))        Printf ( "STARDATA int                           : stardata->star[1].detached_stellar_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].detached_stellar_type, stardata->star[1].detached_stellar_type, (stardata->star[1].detached_stellar_type - stardata->previous_stardata->star[1].detached_stellar_type) ) ;
 if(((stardata->previous_stardata->star[1].starnum)!=(stardata->star[1].starnum)))        Printf ( "STARDATA int                           : stardata->star[1].starnum = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].starnum, stardata->star[1].starnum, (stardata->star[1].starnum - stardata->previous_stardata->star[1].starnum) ) ;
-if(((stardata->previous_stardata->star[1].ndiscs)!=(stardata->star[1].ndiscs)))        Printf ( "STARDATA int                           : stardata->star[1].ndiscs = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].ndiscs, stardata->star[1].ndiscs, (stardata->star[1].ndiscs - stardata->previous_stardata->star[1].ndiscs) ) ;
 if(((stardata->previous_stardata->star[1].dtlimiter)!=(stardata->star[1].dtlimiter)))        Printf ( "STARDATA int                           : stardata->star[1].dtlimiter = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].dtlimiter, stardata->star[1].dtlimiter, (stardata->star[1].dtlimiter - stardata->previous_stardata->star[1].dtlimiter) ) ;
 if(((stardata->previous_stardata->star[1].SN_type)!=(stardata->star[1].SN_type)))        Printf ( "STARDATA int                           : stardata->star[1].SN_type = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].SN_type, stardata->star[1].SN_type, (stardata->star[1].SN_type - stardata->previous_stardata->star[1].SN_type) ) ;
 if(((stardata->previous_stardata->star[1].was_SN)!=(stardata->star[1].was_SN)))        Printf ( "STARDATA int                           : stardata->star[1].was_SN = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->star[1].was_SN, stardata->star[1].was_SN, (stardata->star[1].was_SN - stardata->previous_stardata->star[1].was_SN) ) ;
@@ -752,10 +654,6 @@ if(((stardata->previous_stardata->preferences->rlperi)!=(stardata->preferences->
 if(((stardata->previous_stardata->preferences->hachisu_disk_wind)!=(stardata->preferences->hachisu_disk_wind)))        Printf ( "STARDATA Boolean                         : stardata->preferences->hachisu_disk_wind = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->hachisu_disk_wind, stardata->preferences->hachisu_disk_wind, (stardata->preferences->hachisu_disk_wind - stardata->previous_stardata->preferences->hachisu_disk_wind) ) ;
 if(((stardata->previous_stardata->preferences->show_minimum_separation_for_instant_RLOF)!=(stardata->preferences->show_minimum_separation_for_instant_RLOF)))        Printf ( "STARDATA Boolean                         : stardata->preferences->show_minimum_separation_for_instant_RLOF = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->show_minimum_separation_for_instant_RLOF, stardata->preferences->show_minimum_separation_for_instant_RLOF, (stardata->preferences->show_minimum_separation_for_instant_RLOF - stardata->previous_stardata->preferences->show_minimum_separation_for_instant_RLOF) ) ;
 if(((stardata->previous_stardata->preferences->show_minimum_orbital_period_for_instant_RLOF)!=(stardata->preferences->show_minimum_orbital_period_for_instant_RLOF)))        Printf ( "STARDATA Boolean                         : stardata->preferences->show_minimum_orbital_period_for_instant_RLOF = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->show_minimum_orbital_period_for_instant_RLOF, stardata->preferences->show_minimum_orbital_period_for_instant_RLOF, (stardata->preferences->show_minimum_orbital_period_for_instant_RLOF - stardata->previous_stardata->preferences->show_minimum_orbital_period_for_instant_RLOF) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_resonance_damping)!=(stardata->preferences->cbdisc_resonance_damping)))        Printf ( "STARDATA Boolean                         : stardata->preferences->cbdisc_resonance_damping = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_resonance_damping, stardata->preferences->cbdisc_resonance_damping, (stardata->preferences->cbdisc_resonance_damping - stardata->previous_stardata->preferences->cbdisc_resonance_damping) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_fail_ring_inside_separation)!=(stardata->preferences->cbdisc_fail_ring_inside_separation)))        Printf ( "STARDATA Boolean                         : stardata->preferences->cbdisc_fail_ring_inside_separation = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_fail_ring_inside_separation, stardata->preferences->cbdisc_fail_ring_inside_separation, (stardata->preferences->cbdisc_fail_ring_inside_separation - stardata->previous_stardata->preferences->cbdisc_fail_ring_inside_separation) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_inner_edge_stripping)!=(stardata->preferences->cbdisc_inner_edge_stripping)))        Printf ( "STARDATA Boolean                         : stardata->preferences->cbdisc_inner_edge_stripping = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_inner_edge_stripping, stardata->preferences->cbdisc_inner_edge_stripping, (stardata->preferences->cbdisc_inner_edge_stripping - stardata->previous_stardata->preferences->cbdisc_inner_edge_stripping) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_outer_edge_stripping)!=(stardata->preferences->cbdisc_outer_edge_stripping)))        Printf ( "STARDATA Boolean                         : stardata->preferences->cbdisc_outer_edge_stripping = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_outer_edge_stripping, stardata->preferences->cbdisc_outer_edge_stripping, (stardata->preferences->cbdisc_outer_edge_stripping - stardata->previous_stardata->preferences->cbdisc_outer_edge_stripping) ) ;
 if(((stardata->previous_stardata->preferences->initial_abunds_only)!=(stardata->preferences->initial_abunds_only)))        Printf ( "STARDATA Boolean                         : stardata->preferences->initial_abunds_only = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->initial_abunds_only, stardata->preferences->initial_abunds_only, (stardata->preferences->initial_abunds_only - stardata->previous_stardata->preferences->initial_abunds_only) ) ;
 if(((stardata->previous_stardata->preferences->NeNaMgAl)!=(stardata->preferences->NeNaMgAl)))        Printf ( "STARDATA Boolean                         : stardata->preferences->NeNaMgAl = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->NeNaMgAl, stardata->preferences->NeNaMgAl, (stardata->preferences->NeNaMgAl - stardata->previous_stardata->preferences->NeNaMgAl) ) ;
 if(((stardata->previous_stardata->preferences->yields_logtimes)!=(stardata->preferences->yields_logtimes)))        Printf ( "STARDATA Boolean                         : stardata->preferences->yields_logtimes = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->yields_logtimes, stardata->preferences->yields_logtimes, (stardata->preferences->yields_logtimes - stardata->previous_stardata->preferences->yields_logtimes) ) ;
@@ -770,7 +668,6 @@ if(((stardata->previous_stardata->preferences->nelemans_recalc_eccentricity)!=(s
 
 
 
-
 if(!FEQUAL((stardata->previous_stardata->preferences->hbbtfac),(stardata->preferences->hbbtfac)))        Printf ( "STARDATA double                        : stardata->preferences->hbbtfac = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->hbbtfac, stardata->preferences->hbbtfac, (stardata->preferences->hbbtfac - stardata->previous_stardata->preferences->hbbtfac) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->c13_eff),(stardata->preferences->c13_eff)))        Printf ( "STARDATA double                        : stardata->preferences->c13_eff = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->c13_eff, stardata->preferences->c13_eff, (stardata->preferences->c13_eff - stardata->previous_stardata->preferences->c13_eff) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->mc13_pocket_multiplier),(stardata->preferences->mc13_pocket_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->mc13_pocket_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->mc13_pocket_multiplier, stardata->preferences->mc13_pocket_multiplier, (stardata->preferences->mc13_pocket_multiplier - stardata->previous_stardata->preferences->mc13_pocket_multiplier) ) ;
@@ -861,32 +758,6 @@ if(!FEQUAL((stardata->previous_stardata->preferences->lambda_min),(stardata->pre
 if(!FEQUAL((stardata->previous_stardata->preferences->delta_mcmin),(stardata->preferences->delta_mcmin)))        Printf ( "STARDATA double                        : stardata->preferences->delta_mcmin = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->delta_mcmin, stardata->preferences->delta_mcmin, (stardata->preferences->delta_mcmin - stardata->previous_stardata->preferences->delta_mcmin) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->lambda_multiplier),(stardata->preferences->lambda_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->lambda_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->lambda_multiplier, stardata->preferences->lambda_multiplier, (stardata->preferences->lambda_multiplier - stardata->previous_stardata->preferences->lambda_multiplier) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->dtfac),(stardata->preferences->dtfac)))        Printf ( "STARDATA double                        : stardata->preferences->dtfac = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->dtfac, stardata->preferences->dtfac, (stardata->preferences->dtfac - stardata->previous_stardata->preferences->dtfac) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_max_lifetime),(stardata->preferences->cbdisc_max_lifetime)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_max_lifetime = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_max_lifetime, stardata->preferences->cbdisc_max_lifetime, (stardata->preferences->cbdisc_max_lifetime - stardata->previous_stardata->preferences->cbdisc_max_lifetime) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->disc_timestep_factor),(stardata->preferences->disc_timestep_factor)))        Printf ( "STARDATA double                        : stardata->preferences->disc_timestep_factor = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->disc_timestep_factor, stardata->preferences->disc_timestep_factor, (stardata->preferences->disc_timestep_factor - stardata->previous_stardata->preferences->disc_timestep_factor) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_gamma),(stardata->preferences->cbdisc_gamma)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_gamma = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_gamma, stardata->preferences->cbdisc_gamma, (stardata->preferences->cbdisc_gamma - stardata->previous_stardata->preferences->cbdisc_gamma) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_alpha),(stardata->preferences->cbdisc_alpha)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_alpha = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_alpha, stardata->preferences->cbdisc_alpha, (stardata->preferences->cbdisc_alpha - stardata->previous_stardata->preferences->cbdisc_alpha) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_kappa),(stardata->preferences->cbdisc_kappa)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_kappa = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_kappa, stardata->preferences->cbdisc_kappa, (stardata->preferences->cbdisc_kappa - stardata->previous_stardata->preferences->cbdisc_kappa) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_torqueF),(stardata->preferences->cbdisc_torqueF)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_torqueF = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_torqueF, stardata->preferences->cbdisc_torqueF, (stardata->preferences->cbdisc_torqueF - stardata->previous_stardata->preferences->cbdisc_torqueF) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_init_dM),(stardata->preferences->cbdisc_init_dM)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_init_dM = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_init_dM, stardata->preferences->cbdisc_init_dM, (stardata->preferences->cbdisc_init_dM - stardata->previous_stardata->preferences->cbdisc_init_dM) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_init_dJdM),(stardata->preferences->cbdisc_init_dJdM)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_init_dJdM = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_init_dJdM, stardata->preferences->cbdisc_init_dJdM, (stardata->preferences->cbdisc_init_dJdM - stardata->previous_stardata->preferences->cbdisc_init_dJdM) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->comenv_disc_angmom_fraction),(stardata->preferences->comenv_disc_angmom_fraction)))        Printf ( "STARDATA double                        : stardata->preferences->comenv_disc_angmom_fraction = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->comenv_disc_angmom_fraction, stardata->preferences->comenv_disc_angmom_fraction, (stardata->preferences->comenv_disc_angmom_fraction - stardata->previous_stardata->preferences->comenv_disc_angmom_fraction) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->comenv_disc_mass_fraction),(stardata->preferences->comenv_disc_mass_fraction)))        Printf ( "STARDATA double                        : stardata->preferences->comenv_disc_mass_fraction = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->comenv_disc_mass_fraction, stardata->preferences->comenv_disc_mass_fraction, (stardata->preferences->comenv_disc_mass_fraction - stardata->previous_stardata->preferences->comenv_disc_mass_fraction) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->wind_disc_mass_fraction),(stardata->preferences->wind_disc_mass_fraction)))        Printf ( "STARDATA double                        : stardata->preferences->wind_disc_mass_fraction = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->wind_disc_mass_fraction, stardata->preferences->wind_disc_mass_fraction, (stardata->preferences->wind_disc_mass_fraction - stardata->previous_stardata->preferences->wind_disc_mass_fraction) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->wind_disc_angmom_fraction),(stardata->preferences->wind_disc_angmom_fraction)))        Printf ( "STARDATA double                        : stardata->preferences->wind_disc_angmom_fraction = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->wind_disc_angmom_fraction, stardata->preferences->wind_disc_angmom_fraction, (stardata->preferences->wind_disc_angmom_fraction - stardata->previous_stardata->preferences->wind_disc_angmom_fraction) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_minimum_evaporation_timescale),(stardata->preferences->cbdisc_minimum_evaporation_timescale)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_minimum_evaporation_timescale = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_minimum_evaporation_timescale, stardata->preferences->cbdisc_minimum_evaporation_timescale, (stardata->preferences->cbdisc_minimum_evaporation_timescale - stardata->previous_stardata->preferences->cbdisc_minimum_evaporation_timescale) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_constant_rate),(stardata->preferences->cbdisc_mass_loss_constant_rate)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_constant_rate = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_constant_rate, stardata->preferences->cbdisc_mass_loss_constant_rate, (stardata->preferences->cbdisc_mass_loss_constant_rate - stardata->previous_stardata->preferences->cbdisc_mass_loss_constant_rate) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier),(stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier, stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier, (stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier - stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier),(stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier, stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier, (stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier - stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier),(stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier, stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier, (stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier - stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_L2_cross_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier),(stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier, stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier, (stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier - stardata->previous_stardata->preferences->cbdisc_mass_loss_ISM_ram_pressure_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_ISM_pressure),(stardata->preferences->cbdisc_mass_loss_ISM_pressure)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_ISM_pressure = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_ISM_pressure, stardata->preferences->cbdisc_mass_loss_ISM_pressure, (stardata->preferences->cbdisc_mass_loss_ISM_pressure - stardata->previous_stardata->preferences->cbdisc_mass_loss_ISM_pressure) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_FUV_multiplier),(stardata->preferences->cbdisc_mass_loss_FUV_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_FUV_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_FUV_multiplier, stardata->preferences->cbdisc_mass_loss_FUV_multiplier, (stardata->preferences->cbdisc_mass_loss_FUV_multiplier - stardata->previous_stardata->preferences->cbdisc_mass_loss_FUV_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_mass_loss_Xray_multiplier),(stardata->preferences->cbdisc_mass_loss_Xray_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_mass_loss_Xray_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_Xray_multiplier, stardata->preferences->cbdisc_mass_loss_Xray_multiplier, (stardata->preferences->cbdisc_mass_loss_Xray_multiplier - stardata->previous_stardata->preferences->cbdisc_mass_loss_Xray_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_minimum_luminosity),(stardata->preferences->cbdisc_minimum_luminosity)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_minimum_luminosity = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_minimum_luminosity, stardata->preferences->cbdisc_minimum_luminosity, (stardata->preferences->cbdisc_minimum_luminosity - stardata->previous_stardata->preferences->cbdisc_minimum_luminosity) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_minimum_mass),(stardata->preferences->cbdisc_minimum_mass)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_minimum_mass = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_minimum_mass, stardata->preferences->cbdisc_minimum_mass, (stardata->preferences->cbdisc_minimum_mass - stardata->previous_stardata->preferences->cbdisc_minimum_mass) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_resonance_multiplier),(stardata->preferences->cbdisc_resonance_multiplier)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_resonance_multiplier = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_resonance_multiplier, stardata->preferences->cbdisc_resonance_multiplier, (stardata->preferences->cbdisc_resonance_multiplier - stardata->previous_stardata->preferences->cbdisc_resonance_multiplier) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->cbdisc_minimum_fRing),(stardata->preferences->cbdisc_minimum_fRing)))        Printf ( "STARDATA double                        : stardata->preferences->cbdisc_minimum_fRing = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->cbdisc_minimum_fRing, stardata->preferences->cbdisc_minimum_fRing, (stardata->preferences->cbdisc_minimum_fRing - stardata->previous_stardata->preferences->cbdisc_minimum_fRing) ) ;
-if(!FEQUAL((stardata->previous_stardata->preferences->disc_log_dt),(stardata->preferences->disc_log_dt)))        Printf ( "STARDATA double                        : stardata->preferences->disc_log_dt = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->disc_log_dt, stardata->preferences->disc_log_dt, (stardata->preferences->disc_log_dt - stardata->previous_stardata->preferences->disc_log_dt) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->observable_radial_velocity_minimum),(stardata->preferences->observable_radial_velocity_minimum)))        Printf ( "STARDATA double                        : stardata->preferences->observable_radial_velocity_minimum = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->observable_radial_velocity_minimum, stardata->preferences->observable_radial_velocity_minimum, (stardata->preferences->observable_radial_velocity_minimum - stardata->previous_stardata->preferences->observable_radial_velocity_minimum) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->start_time),(stardata->preferences->start_time)))        Printf ( "STARDATA double                        : stardata->preferences->start_time = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->start_time, stardata->preferences->start_time, (stardata->preferences->start_time - stardata->previous_stardata->preferences->start_time) ) ;
 if(!FEQUAL((stardata->previous_stardata->preferences->max_stellar_angmom_change),(stardata->preferences->max_stellar_angmom_change)))        Printf ( "STARDATA double                        : stardata->preferences->max_stellar_angmom_change = [prev %g, now %g, diff %g]\n", stardata->previous_stardata->preferences->max_stellar_angmom_change, stardata->preferences->max_stellar_angmom_change, (stardata->preferences->max_stellar_angmom_change - stardata->previous_stardata->preferences->max_stellar_angmom_change) ) ;
@@ -895,15 +766,6 @@ if(!FEQUAL((stardata->previous_stardata->preferences->rotationally_enhanced_expo
 if(((stardata->previous_stardata->preferences->caller_id)!=(stardata->preferences->caller_id)))        Printf ( "STARDATA int                           : stardata->preferences->caller_id = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->caller_id, stardata->preferences->caller_id, (stardata->preferences->caller_id - stardata->previous_stardata->preferences->caller_id) ) ;
 if(((stardata->previous_stardata->preferences->...))!=(stardata->preferences->...))))        Printf ( "STARDATA int                           : stardata->preferences->...) = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->...), stardata->preferences->...), (stardata->preferences->...) - stardata->previous_stardata->preferences->...)) ) ;
 if(((stardata->previous_stardata->preferences->nelemans_n_comenvs)!=(stardata->preferences->nelemans_n_comenvs)))        Printf ( "STARDATA int                           : stardata->preferences->nelemans_n_comenvs = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->nelemans_n_comenvs, stardata->preferences->nelemans_n_comenvs, (stardata->preferences->nelemans_n_comenvs - stardata->previous_stardata->preferences->nelemans_n_comenvs) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_eccentricity_pumping_method)!=(stardata->preferences->cbdisc_eccentricity_pumping_method)))        Printf ( "STARDATA int                           : stardata->preferences->cbdisc_eccentricity_pumping_method = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_eccentricity_pumping_method, stardata->preferences->cbdisc_eccentricity_pumping_method, (stardata->preferences->cbdisc_eccentricity_pumping_method - stardata->previous_stardata->preferences->cbdisc_eccentricity_pumping_method) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method)!=(stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method)))        Printf ( "STARDATA int                           : stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method, stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method, (stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method - stardata->previous_stardata->preferences->cbdisc_mass_loss_inner_viscous_accretion_method) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_viscous_photoevaporation_coupling)!=(stardata->preferences->cbdisc_viscous_photoevaporation_coupling)))        Printf ( "STARDATA int                           : stardata->preferences->cbdisc_viscous_photoevaporation_coupling = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_viscous_photoevaporation_coupling, stardata->preferences->cbdisc_viscous_photoevaporation_coupling, (stardata->preferences->cbdisc_viscous_photoevaporation_coupling - stardata->previous_stardata->preferences->cbdisc_viscous_photoevaporation_coupling) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_viscous_L2_coupling)!=(stardata->preferences->cbdisc_viscous_L2_coupling)))        Printf ( "STARDATA int                           : stardata->preferences->cbdisc_viscous_L2_coupling = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_viscous_L2_coupling, stardata->preferences->cbdisc_viscous_L2_coupling, (stardata->preferences->cbdisc_viscous_L2_coupling - stardata->previous_stardata->preferences->cbdisc_viscous_L2_coupling) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_inner_edge_stripping_timescale)!=(stardata->preferences->cbdisc_inner_edge_stripping_timescale)))        Printf ( "STARDATA int                           : stardata->preferences->cbdisc_inner_edge_stripping_timescale = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_inner_edge_stripping_timescale, stardata->preferences->cbdisc_inner_edge_stripping_timescale, (stardata->preferences->cbdisc_inner_edge_stripping_timescale - stardata->previous_stardata->preferences->cbdisc_inner_edge_stripping_timescale) ) ;
-if(((stardata->previous_stardata->preferences->cbdisc_outer_edge_stripping_timescale)!=(stardata->preferences->cbdisc_outer_edge_stripping_timescale)))        Printf ( "STARDATA int                           : stardata->preferences->cbdisc_outer_edge_stripping_timescale = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->cbdisc_outer_edge_stripping_timescale, stardata->preferences->cbdisc_outer_edge_stripping_timescale, (stardata->preferences->cbdisc_outer_edge_stripping_timescale - stardata->previous_stardata->preferences->cbdisc_outer_edge_stripping_timescale) ) ;
-if(((stardata->previous_stardata->preferences->disc_log)!=(stardata->preferences->disc_log)))        Printf ( "STARDATA int                           : stardata->preferences->disc_log = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->disc_log, stardata->preferences->disc_log, (stardata->preferences->disc_log - stardata->previous_stardata->preferences->disc_log) ) ;
-if(((stardata->previous_stardata->preferences->disc_log2d)!=(stardata->preferences->disc_log2d)))        Printf ( "STARDATA int                           : stardata->preferences->disc_log2d = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->disc_log2d, stardata->preferences->disc_log2d, (stardata->preferences->disc_log2d - stardata->previous_stardata->preferences->disc_log2d) ) ;
-if(((stardata->previous_stardata->preferences->disc_n_monte_carlo_guesses)!=(stardata->preferences->disc_n_monte_carlo_guesses)))        Printf ( "STARDATA int                           : stardata->preferences->disc_n_monte_carlo_guesses = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->disc_n_monte_carlo_guesses, stardata->preferences->disc_n_monte_carlo_guesses, (stardata->preferences->disc_n_monte_carlo_guesses - stardata->previous_stardata->preferences->disc_n_monte_carlo_guesses) ) ;
 if(((stardata->previous_stardata->preferences->current_splitdepth)!=(stardata->preferences->current_splitdepth)))        Printf ( "STARDATA int                           : stardata->preferences->current_splitdepth = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->current_splitdepth, stardata->preferences->current_splitdepth, (stardata->preferences->current_splitdepth - stardata->previous_stardata->preferences->current_splitdepth) ) ;
 if(((stardata->previous_stardata->preferences->evolution_splitting_maxdepth)!=(stardata->preferences->evolution_splitting_maxdepth)))        Printf ( "STARDATA int                           : stardata->preferences->evolution_splitting_maxdepth = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->evolution_splitting_maxdepth, stardata->preferences->evolution_splitting_maxdepth, (stardata->preferences->evolution_splitting_maxdepth - stardata->previous_stardata->preferences->evolution_splitting_maxdepth) ) ;
 if(((stardata->previous_stardata->preferences->evolution_splitting_sn_n)!=(stardata->preferences->evolution_splitting_sn_n)))        Printf ( "STARDATA int                           : stardata->preferences->evolution_splitting_sn_n = [prev %d, now %d, diff %d]\n", stardata->previous_stardata->preferences->evolution_splitting_sn_n, stardata->preferences->evolution_splitting_sn_n, (stardata->preferences->evolution_splitting_sn_n - stardata->previous_stardata->preferences->evolution_splitting_sn_n) ) ;
diff --git a/src/nucsyn/nucsyn_parameters.h b/src/nucsyn/nucsyn_parameters.h
index ced7976af93f7aa6dd6898a661c89fef1210c7bc..561e77d1e8b3a0073768a259d8720128a58fa481 100644
--- a/src/nucsyn/nucsyn_parameters.h
+++ b/src/nucsyn/nucsyn_parameters.h
@@ -724,7 +724,7 @@ undances with s-process
 /* define NUCSYN_GCE to modify yield output for gce.pl
  * NB this just activates other defines, and turns some off.
  */
-//#define NUCSYN_GCE
+#define NUCSYN_GCE
 
 #ifdef NUCSYN_GCE
 
diff --git a/src/perl/scripts2/check_compilers.pl b/src/perl/scripts2/check_compilers.pl
new file mode 100755
index 0000000000000000000000000000000000000000..dba6ba82668b4ce95cb191ca01ff5d8b77ca059a
--- /dev/null
+++ b/src/perl/scripts2/check_compilers.pl
@@ -0,0 +1,121 @@
+#!/usr/bin/env perl
+use strict;
+use Sort::Versions;
+use rob_misc;
+
+$|=1;
+#
+# Script to build binary_c with each available gcc and clang,
+# checking for errors and warnings
+#
+
+my $args = "@ARGV";
+my $vb = ($args=~/-v/) ? 1 : 0;
+
+foreach my $compiler ('gcc',
+                      'clang')
+{
+    my @executables = find_executables($compiler);
+
+    print "Compiler    : $compiler\n";
+    print "Executables : @executables\n";
+ 
+    foreach my $executable (@executables)
+    {
+        build($executable);
+    }
+}
+
+exit;
+
+
+sub find_executables
+{
+    # find available executables of the compiler
+    my ($compiler) = @_;
+
+    # find the standard executables
+    my @executables = grep{
+        /$compiler-?\d*(\.\d+)*$/
+    }split(/\n/,`bash -c "compgen -ca $compiler"`);
+    chomp @executables;
+
+    # sort by string length
+    @executables = sort {
+        length($a) <=> length($b)
+    } @executables;
+    
+    # get versions : we want a unique list by version
+    my %versions;
+    foreach my $executable (@executables)
+    {
+        my $v = (`$executable -v  2>\&1`=~/version (\S+)/)[0];
+        if($v)
+        {
+            $versions{$v} = $executable;
+        }
+        else
+        {
+            $v = (`$executable --version 2>\&1`=~/$compiler \S+ (\d.*)/)[0];
+            if($v)
+            {
+                $versions{$v} = $executable;
+            }
+            else
+            {
+                print "Warning: $executable gave no version\n";
+            } 
+        }
+    }
+
+    # order by version
+    @executables = sort {versioncmp($a,$b)} values %versions;
+    
+    return @executables;    
+}
+
+sub build
+{
+    my ($compiler) = @_; 
+
+    my $env = "export CC=$compiler";
+
+    my $r = `$env ; ./configure 2>/dev/stdout`; 
+    
+    print $r if($vb);
+    
+    if($r=~/Now run .\/make/)
+    {
+        print "Building with $compiler\n";
+        my $r = `$env ; ./make clean; ./make 2>/dev/stdout`;
+        
+        # clean the results
+        $r =~ s/Done.*//g;
+        $r =~ s/Make on.*//g;
+        $r =~ s/rm -f.*//g;
+        $r =~ s/BUILD.*//g;
+        $r =~ s/LINK.*//g;
+        $r =~ s/DONE.*//g;
+        $r =~ s/\n\s*\n//g;
+        $r =~ s/^\s+//;
+        $r =~ s/\s+$//;
+        $r = rob_misc::remove_ANSI($r);
+        
+        # check for warnings or errors
+        if($r)
+        {
+            # error or warning found
+            print "Found error or warning\n\n\"$r\"\n";
+            exit;
+        }
+        else
+        {
+            print "Build was clean\n";
+        }
+    }
+    else
+    {
+        print "Configure with compiler \"$compiler\" failed \n";
+        exit;
+    }
+}