[Bug]: non-integer `Lbin_lo`/`Lbin_hi` are silently truncated under `Lbin_method = 1`, while method 3 raises a fatal error for the equivalent mistake
@Rick-Methot-NOAA ci sta già lavorando.
Dal 24/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Describe the bug
Under Lbin_method = 1 the Lbin_lo/Lbin_hi columns of an age composition observation are population length bin indices. If a file instead contains lengths, SS3 accepts them silently and truncates them to integers, so conditional age-at-length data can be fit to the wrong bins. There is no warning in warning.sso and the run completes normally.
Method 3 searches len_bins for an exact match and calls write_message(FATAL, 0) with "L_bin_lo no match to poplenbins in age comp" if there is none. Method 1 has no equivalent check, only a clamp to [1, nlength].
Two consequences, depending on how the data is setup:
Lbin_loandLbin_hione bin apart (e.g.18.5 19.5, intended as the edges of one 1 cm bin) becomes index range18..19, so the cell spans two population bins and consecutive rows overlap.Lbin_hi = Lbin_lo(e.g.34.5 34.5, a row on a 5 cm data bin grid) becomes bin 34, a single 1 cm bin one below the data's label.
To Reproduce
In any model with 1 cm population bins and Lbin_method = 1, write lengths rather than bin numbers in columns 7 and 8 of a conditional age-at-length row:
#_Lbin_method_for_Age_Data: 1=poplenbins; 2=datalenbins; 3=lengths
1
#_yr month fleet sex part ageerr Lbin_lo Lbin_hi Nsamp <data vector>
1991 7 2 0 0 1 18.5 19.5 1 ...
Run, then compare the input against the FIT_AGE_COMPS section of Report.sso, which reports these columns converted back to actual length and so should read the same as the input:
data.ss 1991 7 2 0 0 1 18.5 19.5 1 ...
Report.sso FIT_AGE_COMPS ... 1991 1 2 7 1991.5 0 0 1 17.5 18.5 _ _ 1 ...
Tested on v3.30.25.1 and **v3.30.22.1 ** on the 2024 Aleutian Islands Pacific cod assessment: all 1160 CAAL redictions are one bin lower than the data. but the run exits 0, and warning.sso does not mention the Lbin truncation.
Expected behavior
A non-integer Lbin_lo or Lbin_hi under Lbin_method = 1 or 2 should produce a warning, or a fatal error, as method 3 already does for its own equivalent mistake. Anything that makes the run stop would allow users to catch this immediately.
Screenshots
No response
Which OS are you seeing the problem on?
No response
Which version of SS3 are you seeing the problem on?
v3.30.25.1 and **v3.30.22.1 **
Additional Context
Impacts all cod assessments in AK
- Lingua principale
- C++
- Stelle
- 46
- Fork
- 19
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nmfs-ost/ss3-source-code
-
need warning and improved logic for generalized sizecompForse di nuovo libera @Rick-Methot-NOAA l’ha presa 236 giorni fa e non c’è nessuna pull request aperta. Apertacomposition in progress
nmfs-ost/ss3-source-code#751 · 1 commento · 1 assegnatario ·
-
[Feature]: Add standard errors for area-specific quantitiesForse di nuovo libera @Rick-Methot-NOAA l’ha presa 375 giorni fa e non c’è nessuna pull request aperta. Apertaarea & movement
nmfs-ost/ss3-source-code#731 · 3 commenti · 1 assegnatario ·
-
[Feature]: Create a basic report list that could serve as better starting configuration for customizationForse di nuovo libera @Rick-Methot-NOAA l’ha presa 381 giorni fa e non c’è nessuna pull request aperta. Apertamisc. output
nmfs-ost/ss3-source-code#723 · 1 assegnatario ·
-
[Feature]: restrict biology output using the use_morph(g) flagForse di nuovo libera @Rick-Methot-NOAA l’ha presa 403 giorni fa e non c’è nessuna pull request aperta. Apertabiology misc. output ongoing
nmfs-ost/ss3-source-code#702 · 1 assegnatario ·
-
[Feature]: mean vs median recruitment when using SCAA optionForse di nuovo libera @Rick-Methot-NOAA l’ha presa 421 giorni fa e non c’è nessuna pull request aperta. Apertarecruitment
nmfs-ost/ss3-source-code#696 · 1 assegnatario ·
Tutte le issue di nmfs-ost/ss3-source-code
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
category:port-update
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
CLI jira shell completion
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno