diff --git a/src/binary_c_parameters.h b/src/binary_c_parameters.h
index e1a4368e8900f5740439a3ea914e37c4192d372e..b382a3df0201fc35765c0bc23e6ff1dc5ef9b2e8 100644
--- a/src/binary_c_parameters.h
+++ b/src/binary_c_parameters.h
@@ -1394,9 +1394,7 @@
* see nucsyn/nucsyn.h for details of parts you can switch on
* off.
************************************************************/
-#ifndef BINT
-//#define NUCSYN
-#endif
+#define NUCSYN
/************************************************************
* Stellar colour library
@@ -1936,6 +1934,10 @@
#Error: you should not define BOTH BSE and BINT
#endif
+#if defined BINT && defined NUCSYN
+#Error: you should not define BOTH BINT and NUCSYN
+#endif
+
/*
* Use new version of difflog that requires fewer memcpys
*/
diff --git a/src/common_envelope/common_envelope_evolution_BSE.c b/src/common_envelope/common_envelope_evolution_BSE.c
index f41fdda7ac685100b087deca35fd55db0b9a698b..0333ab15fdbf80e4ccb2f0026f3b6dd6f0a47bc8 100644
--- a/src/common_envelope/common_envelope_evolution_BSE.c
+++ b/src/common_envelope/common_envelope_evolution_BSE.c
@@ -2122,7 +2122,9 @@ end_section:
if(cbdisc->memo)
{
Dprint("call memoize_free on appended cbdisc\n");
+ printf("comenv double disc memoize free %p\n",cbdisc->memo); fflush(NULL);
memoize_free(&cbdisc->memo);
+ printf("comenv double disc now %p\n",cbdisc->memo);fflush(NULL);
}
Set_logstring(LOG_DISC,
"0Append CB disc: age=%g y, M+=%g=%g, Msun, J+=%g=%g (+=%g and +=%g %% of CE) ",
diff --git a/src/disc/disc_initialize_disc.c b/src/disc/disc_initialize_disc.c
index ffa918939e7c396a9d59c714eff61ab229a7e6f0..b8db91fdee634f32614068af9685ff5650ead3a9 100644
--- a/src/disc/disc_initialize_disc.c
+++ b/src/disc/disc_initialize_disc.c
@@ -70,8 +70,10 @@ void disc_initialize_disc(struct stardata_t * const stardata,
disc->prevzone = DISC_NO_PREVZONE_YET;
#endif
#ifdef MEMOIZE
+ printf("disc memoize init was %p\n",disc->memo);
disc->memo = NULL;
memoize_initialize(&disc->memo);
+ printf("disc memoize init %p\n",disc->memo);
#endif
/*
diff --git a/src/disc/disc_macros.h b/src/disc/disc_macros.h
index 628948d2aa2687868f7ed2f55413a83e3dd0873a..d9052ce9ec0d9c1decc4927b9e42ab8ac3181b80 100644
--- a/src/disc/disc_macros.h
+++ b/src/disc/disc_macros.h
@@ -306,7 +306,6 @@
(D)->J = 0.0; \
(D)->dt = LONG_TIMESTEP; \
(D)->converged = FALSE; \
- if((D)->memo)memoize_free(&(D)->memo); \
if(DISC_DEBUG) \
printf("Disc evaporated at line %d in file %s because %s\n", \
__LINE__, \
diff --git a/src/disc/remove_disc.c b/src/disc/remove_disc.c
index a8dad79a1752ac087e5cd306e956160c81a7db20..b64bf660125808fb19434b4490c9ecfee5b18e0e 100644
--- a/src/disc/remove_disc.c
+++ b/src/disc/remove_disc.c
@@ -31,7 +31,9 @@ void remove_disc(
}
int n = DISC_POS_TO_N(star,pos);
#ifdef MEMOIZE
+ printf("remove_disc memoize_free %p\n",star->discs[n]->memo);fflush(NULL);
memoize_free(&star->discs[n]->memo);
+ printf("remove_disc now %p\n",star->discs[n]->memo);fflush(NULL);
#endif // MEMOIZE
Safe_free(star->discs[n]);
int i;
@@ -98,15 +100,18 @@ void remove_disc(
struct disc_t * disc = &common->discs[n];
#ifdef MEMOIZE
if(stardata->previous_stardata->common.discs[n].memo ==
- stardata->common.discs[n].memo)
+ stardata->common.discs[n].memo &&
+ stardata != stardata->previous_stardata)
{
/* the memo will be freed, so remove the reference to it */
stardata->previous_stardata->common.discs[n].memo = NULL;
}
- if(disc->memo)
+ if(disc->memo != NULL)
{
Dprint("call memoize_free\n");
+ printf("remove_disc memoize_free %p\n",disc->memo);fflush(NULL);
memoize_free(&disc->memo);
+ printf("remove_disc now %p\n",disc->memo);fflush(NULL);
}
#endif//MEMOIZE
memset(disc,0,sizeof(struct disc_t));
diff --git a/tbse b/tbse
index 733ce1c1a42ee457af9652802bcf179c4dddbf10..ffbe5df6eaf054e4be216add02abdd16fdd64397 100755
--- a/tbse
+++ b/tbse
@@ -572,10 +572,10 @@ DISC_TIMESTEP_FACTOR=1.0
# DISC_LOG_LEVEL_SUBTIMESTEP 2 = on with sub-timestep logging
# DISC_LOG_LEVEL_NORMAL_FIRST_DISC_ONLY = as 1 for first disc only
# DISC_LOG_LEVEL_SUBTIMESTEP_FIRST_DISC_ONLY = as 2 for first disc only
-DISC_LOG=DISC_LOG_LEVEL_SUBTIMESTEP_FIRST_DISC_ONLY
+DISC_LOG=DISC_LOG_LEVEL_NONE
# soft 2D disc log switch, same options as DISC_LOG
-DISC_LOG2D=DISC_LOG_LEVEL_SUBTIMESTEP_FIRST_DISC_ONLY
+DISC_LOG2D=DISC_LOG_LEVEL_NONE
# disc log every DISC_LOG_DT Myr only. Ignored if zero.
# If set to -1, is automatically calculated (1Myr except on the GB/AGB)
diff --git a/test_random.pl b/test_random.pl
index a501631ea40af266722b4021580de22489eda073..44802000aa321a1bffc2b790a42e45b69944febf 100755
--- a/test_random.pl
+++ b/test_random.pl
@@ -27,7 +27,7 @@ check_ps() unless($args=~/skip_valgrind_check/);
$SIG{INT} = \&reaper;
my $valgrind = ($args=~/valgrind/) ? 'valgrind' : ''; # valgrind or ''
my $nice = ($args=~/nice=(\d+)/) ? "nice -n +$1" : 'nice';
-my $timeout = ($args=~/timeout=(\d+)/) ? "timeout $1" : '';
+my $timeout = ($args=~/timeout=(\d+)/) ? "timeout -s 9 $1" : '';
my $repeat = ($args=~/repeat=(\d+)/)[0] // 1;
my $logtimes = ($args=~/logtimes/) ? 1 : 0;
my $ignore_time = ($args=~/ignore_time=(\S+)/)[0] // 2.0; # do not log time if < this