Comparison of 3 situations discloses a problem:
The Jan run had recruitment on Jan 1 at age 1, a year after spawning.
The Dec run shifted settlement to ~Dec 31 at age 0, so at end of the year of spawning. such that they would become age 1 the following day (not implying that SS3 works in days, only in decimal years).
The two runs produced nearly identical logL, but the sequence of recdevs is shifted by a year. A big recdev in 1988 for the Dec run becomes a big recdev in 1989 for the Jan run. So the labeling of recdevs is referring to the calendar year in which the settlement happens.
The settlement mechanism allows for the total recruitment to be divided among multiple settlements, which would seem to confuse that recdev naming protocol. Another test in which the recruits are evenly split between dec 31 age 0 and Jan 1 age 1 confirms that the code is not handling it as intended because the recdevs are now high for both 1988 and 1989.
Need to check the components that go into this assignment:
natage(t + Settle_seas_offset(settle), p, g, Settle_age(settle)) +=
Recruits * recr_dist(y, GP(g), settle, p) * platoon_distr(GP2(g)) *
mfexp(natM(t, p, GP3(g), Settle_age(settle)) * Settle_timing_seas(settle));
Comparison of 3 situations discloses a problem:
The Jan run had recruitment on Jan 1 at age 1, a year after spawning.
The Dec run shifted settlement to ~Dec 31 at age 0, so at end of the year of spawning. such that they would become age 1 the following day (not implying that SS3 works in days, only in decimal years).
The two runs produced nearly identical logL, but the sequence of recdevs is shifted by a year. A big recdev in 1988 for the Dec run becomes a big recdev in 1989 for the Jan run. So the labeling of recdevs is referring to the calendar year in which the settlement happens.
The settlement mechanism allows for the total recruitment to be divided among multiple settlements, which would seem to confuse that recdev naming protocol. Another test in which the recruits are evenly split between dec 31 age 0 and Jan 1 age 1 confirms that the code is not handling it as intended because the recdevs are now high for both 1988 and 1989.
Need to check the components that go into this assignment:
natage(t + Settle_seas_offset(settle), p, g, Settle_age(settle)) +=
Recruits * recr_dist(y, GP(g), settle, p) * platoon_distr(GP2(g)) *
mfexp(natM(t, p, GP3(g), Settle_age(settle)) * Settle_timing_seas(settle));