-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2016sc.tpl
4027 lines (3647 loc) · 193 KB
/
2016sc.tpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
DATA_SECTION
//Bering Sea snow crab model
!!CLASS ofstream post("eval.csv")
int call_no;
!! call_no = 0;
number spmo // spawning month
!! spmo=0.; // spmo=deviation in fraction of year from time of fishery to mating
init_int styr //start year of the model
init_int endyr //end year of the model
// Data stuff only from here
init_int nirec //number of intial recruitments to estimate
init_int nlenm //number of length bins for males in the model
init_int nobs_fish //number of years of fishery retained length data
init_ivector yrs_fish(1,nobs_fish) //years when have fishery retained length data
init_matrix nsamples_fish(1,2,1,nobs_fish) //nsamples weight for fish length comps needmatrix each year,new/old shell
init_int nobs_fish_discf //number of years of fishery female discard length data
init_ivector yrs_fish_discf(1,nobs_fish_discf) //years when have fishery discard length data
init_vector nsamples_fish_discf(1,nobs_fish_discf) //nsamples weight for fish length comps needmatrix each year and sex
init_int nobs_fish_discm //number of years of fishery male discard length data
init_ivector yrs_fish_discm(1,nobs_fish_discm) //years when have fishery discard length data
init_matrix nsamples_fish_discm(1,2,1,nobs_fish_discm) //nsamples weight for fish length comps needmatrix each year and sex
init_number nobs_trawl
init_vector yrs_trawl(1,nobs_trawl)
init_matrix nsamples_trawl(1,2,1,nobs_trawl)
init_number nobs_srv1
init_ivector yrs_srv1(1,nobs_srv1) //years when have biomass estimates
init_int nobs_srv1_length //number of years of survey length data
init_ivector yrs_srv1_length(1,nobs_srv1_length) //years when have length data
init_4darray nsamples_srv1_length(1,2,1,2,1,2,1,nobs_srv1_length) //number of samples for each length comp by immat,mat,new/old,sex,year
//extra survey in 2009
init_int yrs_srv2 //years when have biomass estimates for extra survey
init_3darray nsamples_srv2_length(1,2,1,2,1,2) //number of samples for each length comp by sruvey,sex,immat,mat
init_4darray obs_p_srv2_lend(1,2,1,2,1,2,1,nlenm) //numbers by length two surveys, sex, immat, mat
init_vector obs_srv2(1,2)
init_matrix obs_srv2_cv(1,2,1,2)
//extra survey in 2010
init_int yrs_srv10 //years when have biomass estimates for extra survey
init_3darray nsamples_srv10_length(1,2,1,2,1,2) //number of samples for each length comp by sruvey,sex,immat,mat
init_4darray obs_p_srv10_lend(1,2,1,2,1,2,1,nlenm) //numbers by length two surveys, sex, immat, mat
init_vector obs_srv10(1,2)
init_matrix obs_srv10_cv(1,2,1,2)
//standard survey for length data
//first index,1 immat, 2 mature,1 new shell, 2 old shell, then female 1 male 2
init_5darray obs_p_srv1_lend(1,2,1,2,1,2,1,nobs_srv1_length,1,nlenm) //immat,mat,new, old survey length data,female,male,year then bin
init_3darray obs_p_fish_retd(1,2,1,nobs_fish,1,nlenm) //new, old,male retained fishery length data
init_matrix obs_p_fish_discfd(1,nobs_fish_discf,1,nlenm) //female,discard length data
init_3darray obs_p_fish_discmd(1,2,1,nobs_fish_discm,1,nlenm) //male,discard length data new-old shel
init_3darray obs_p_trawld(1,2,1,nobs_trawl,1,nlenm)
init_vector catch_numbers(styr,endyr)
!! catch_numbers /= 1000.; //retained catch number of crab
init_vector catch_ret(styr,endyr) //retained catch lbs of crab
!! catch_ret /= 1000.;
init_matrix catch_odisc(1,2,styr,endyr) //estimated discard catch numbers female,male
!! catch_odisc /= 1000.;
init_vector catch_trawl(styr,endyr) //trawl bycatch numbers sex combined need to apply mort 80%
!! catch_trawl /= 1000.;
init_vector obs_srv1(1,nobs_srv1) //survey numbers
!! obs_srv1 /= 1000.;
init_matrix cv_srv1o(1,2,1,nobs_srv1) //survey cv
init_vector maturity_logistic(1,nlenm) //logistic maturity probability curve for new shell immature males
init_matrix maturity_average(1,2,1,nlenm) //probability mature for new immature females, avearge proportion mature by length for new males
init_matrix maturity_old_average(1,2,1,nlenm) //average proportion mature by length for old shell females, males
init_3darray maturity(1,2,styr,endyr,1,nlenm) //proportion mature by length for new shell females,males by year
init_3darray maturity_old(1,2,styr,endyr,1,nlenm) //proportion mature by length for old shell females, males by year
init_matrix cv_mean_length_obs(1,2,1,2) //cv of mean length for female and male min and max age
init_vector length_bins(1,nlenm)
init_vector catch_midptIn(styr,endyr)
init_vector meanlength(1,13) //mean length at age for F40 calc
init_vector catch_fracmature(1,22) //fraction morphometrically mature males in the pot fishery catch
init_vector cpue(styr,endyr) //cpue fishery retained males only numbers/potlift
init_vector catch_ghl(styr,endyr)
init_int nobs_growf
init_vector femalegrowdatx(1,nobs_growf)
init_vector femalegrowdaty(1,nobs_growf)
init_int nobs_growm
init_vector malegrowdatx(1,nobs_growm)
init_vector malegrowdaty(1,nobs_growm)
// End of reading normal data file
// Open control file....
!! ad_comm::change_datafile_name("2016sc.ctl");
init_int styr_fut //start year of future projections
init_int endyr_fut //end year of future projections
init_int nsellen //selectivity is set to the selectivity at nselages-1 after age nselages
init_int nsellen_srv1 //same as above for survey selectivities
init_number p_const
init_number q1 // Q mult by pop biomass to get survey biomass
init_vector M_in(1,2) //natural mortality females then males
init_vector M_matn_in(1,2) //natural mortality mature new shell female/male
init_vector M_mato_in(1,2) //natural mortality mature old shell female/male
init_number m_disc //fraction of discards that die (e.g 0.25)
init_number m_trawl //fraction of trawl discards that die(.8)
init_vector median_rec(1,2) //median recruitment value to use for last years in model
init_int median_rec_yrs //median recruitment fixed for endyr to endyr-median_rec_yrs+1
init_number var_rec_obs
init_number sd_var_rec
init_vector sel_som(1,5) // parameters for somerton 2009 study selectivity curve
init_number sel_avg_Nyrs
init_number alpha_wt_imm_f
init_number beta_wt_imm_f
init_number alpha_wt_mat_f
init_number beta_wt_mat_f
init_number alpha_wt_m
init_number beta_wt_m
init_number linff_obs
init_number sd_linff
init_number linfm_obs
init_number sd_linfm
init_number growthkf_obs
init_number sd_growthkf
init_number growthkm_obs
init_number sd_growthkm
init_number af_obs
init_number sd_af
init_number am_obs
init_number sd_am
init_number bf_obs
init_number sd_bf
init_number bm_obs
init_number sd_bm
init_number a1_obs
init_number sd_a1
init_number b1_obs
init_number sd_b1
init_number sd_meetpt
init_number var_last_obs
init_number sd_var_last
init_number mate_ratio
init_number fraction_new_error
init_int nages //number of ages to track for mature old shell
init_int matest_n
init_int matestm_n
init_vector wt_like(1,8) //weights for selectivity likelihoods 1 fishery female, 2 survey female, 3 fishery male, 4 survey male
init_vector like_wght(1,7) //likelihood weights for fishery length data, survey length, age data, catch likelihood, survey biomass likelihood,growth like
init_number like_wght_mbio //likelihood weight for male biomass fit
init_number like_wght_rec
init_number like_wght_recf
init_number like_wght_sexr
init_number like_wght_sel50
init_number like_wght_fph1
init_number like_wght_fph2
init_number like_wght_fdev
init_number wght_total_catch //weight for total catch biomass
init_number wght_female_potcatch //weight for female pot bycatch
init_number cpue_cv //cv for fit to fishery pot cpue
init_number wt_lmlike
init_number old_shell_constraint
init_vector disclen_mult(1,2)
init_number selsmo_wght
init_number femSel_wght
init_number init_yr_len_smooth_f
init_number init_yr_len_smooth_m
init_number natm_mult_wght
init_number natm_mult_var
init_number natm_Immult_wght
init_number natm_Immult_var
init_number smooth_mat_wght
init_number mat_est_wght
init_number mat_est_vs_obs_sd
init_number smooth_mat_wght_f
init_number mat_est_vs_obs_sd_f
init_number growth_data_wght_m
init_number growth_data_wght_f
init_number extra_wght_ind_m
init_number smooth_disc_catch
init_number disc_catch_wght_fem
init_number fmort_phase
init_number rec_phase
init_number growth_phase
init_number growth_phase2
init_number maturity_phase
init_number natM_phase
init_int phase_moltingp //phase to estimate molting prob for mature males
init_int phase_fishsel //phase to estimate dome shape parameters for fishery selectivities
init_int survsel_phase //switch for which survey selectivty to use for 1989 to present - positive estimated negative fixed at somerton and otto
init_int survsel1_phase //switch for fixing all survey sel to somerton and otto - <0 fix, >0 estimate
init_int phase_fut //phase to do F40% and future projection calculations
init_int phase_logistic_sel //phase to estimate selectivities using logistic function
init_int phase_selcoffs //phase to estimate smooth selectivities
init_int growth_switch //switch for which growth function to use
init_int somertonsel
init_int monot_sel //switch for monotonically increasing selectivities (1 on 0 off)
init_int monot_sel_srv1 //sames as above for survey
init_number maturity_switch
init_int f_penalties
init_int retro_years
int styr_rec;
//year,age,sex
int i;
int j;
int k;
// counters
int iy;
int ii;
int m;
int iage;
int ilen;
int nyl;
int ll;
int l;
int il2;
int is;
int what;
int ipass;
int Nproj;
!! Nproj = 101;
int IsB0;
//==============================================================================
LOCAL_CALCS
cout<<"to local calcs"<<endl;
styr_rec=styr-nirec; //year to start estimating recruits to get initial age comp
if(nsellen>nlenm) nsellen=nlenm; //make sure nselages not greater than nages
if(nsellen_srv1>nlenm) nsellen_srv1=nlenm; //same as above for survey
obs_srv1=obs_srv1*1000000; //survey numbers read in are millions of crab
obs_srv2=obs_srv2*1000000; //survey numbers read in are millions of crab
catch_ret=catch_ret/2204.6;
// cout<<"end of local calcs"<<endl;
END_CALCS
//==============================================================================
INITIALIZATION_SECTION
mean_log_rec1 13.1
rec_dev_mean 0.0
log_avg_fmort -1.0
log_avg_fmortt -7.0
log_avg_sel50_mn 4.4427 //this is 85.0 mm
fmort_dev 0.00001
moltp_af 2.0
moltp_bf 150.
moltp_am 0.02
moltp_bm 300.
moltp_ammat 0.05
moltp_bmmat 105.0
srv1_q 1.0
srv2_q 1.0
srv3_q 1.0
srv1_sel95 60
srv1_sel50 40
fish_fit_sel50_mn 95.1
fish_fit_sel50_mo 100.0
log_sel50_dev_mn 0.0000
discard_mult 1.0
mateste -0.7
matestfe -0.7
cpueq 0.001
fish_disc_sel50_f 4.2
//==============================================================================
PARAMETER_SECTION
//growth pars
init_bounded_number af(-100,0.0,growth_phase)
init_bounded_number am(-50.0,0.0,growth_phase)
init_bounded_number bf(1.0,10.0,growth_phase)
init_bounded_number bm(1.0,5.0,growth_phase)
init_bounded_number b1(1.0,1.5,growth_phase2)
init_bounded_number bf1(1.0,2.0,growth_phase2)
init_bounded_number deltam(10.0,50.0,growth_phase2)
init_bounded_number deltaf(5.0,50.0,growth_phase2)
init_bounded_number st_gr(0.5,0.5,-growth_phase2)
init_bounded_vector growth_beta(1,2,0.749,0.751,-2)
//Maturity parameters
init_bounded_number matest50f(30,60,-4)
init_bounded_number matestslpf(0.05,0.5,-4)
init_bounded_number matest50m(60,110,-4)
init_bounded_number matestslpm(0.02,0.5,-4)
init_bounded_vector mateste(1,matestm_n,-6.0,-0.000000001,maturity_phase)
init_bounded_vector matestfe(1,matest_n,-6.0,-0.000000001,maturity_phase)
//Molting parameters
//Females molt to maturity, therefore the prob of molting for mature females is 0
init_bounded_number moltp_af(0.01,3.0,-6) //paramters for logistic function molting
init_bounded_number moltp_bf(20,200,-6) //female
init_bounded_number moltp_am(0.04,3.0,-5) //paramters for logistic function molting
init_bounded_number moltp_bm(130.0,300.0,-5) //immature males
init_bounded_number moltp_ammat(.0025,3.0,phase_moltingp) //logistic molting prob for mature males
init_bounded_number moltp_bmmat(1,120,phase_moltingp) //logistic molting prob for mature males
//recruitment parameters (CSS: why two mean log recs?)
init_number mean_log_rec1(1)
init_bounded_number rec_dev_mean(0,0,-1)
vector mean_log_rec(1,2)
init_bounded_dev_vector rec_devf(styr,endyr,-15,15,rec_phase)
init_bounded_dev_vector rec_devm(styr,endyr,0,0,-rec_phase)
init_bounded_number alpha1_rec(11.49,11.51,-8)
init_bounded_number beta_rec(3.99,4.01,-8)
//initial numbers at length
init_bounded_matrix mnatlen_styr(1,2,1,nlenm,-3,15,1)
init_bounded_matrix fnatlen_styr(1,2,1,12,-10,15,1)
//Fishing mortality parameters
init_number log_avg_fmort(1)
init_bounded_dev_vector fmort_dev(styr,endyr-1,-5,5,fmort_phase)
init_bounded_number log_avg_fmortdf(-8.0,-0.0001,fmort_phase)
init_bounded_dev_vector fmortdf_dev(styr,endyr-1,-15,15,fmort_phase)
init_bounded_number log_avg_fmortt(-8.0,-0.0001,fmort_phase)
init_bounded_dev_vector fmortt_dev_era1(styr,1991,-15,15,fmort_phase)
init_bounded_dev_vector fmortt_dev_era2(1992,endyr-1,-15,15,fmort_phase)
init_bounded_number discard_mult(0.999,1.01,-fmort_phase)
init_bounded_number Fem_F_prop_constant(0.0000001,1,fmort_phase)
//Fishing selectivity parameters
//fish_slope, fish_fit, fish_disc, mn vs. mo, mo vs. mo2????
init_bounded_number log_avg_sel50_mn(4,5.0,phase_logistic_sel)
init_bounded_dev_vector log_sel50_dev_mn(1978,endyr,-5,5,-phase_logistic_sel+2)
init_bounded_number log_avg_sel50_mo(4,5.0,-phase_logistic_sel)
init_bounded_dev_vector log_sel50_dev_mo(1978,endyr,-5,5,-phase_logistic_sel+2)
init_bounded_number fish_slope_mn(0.1,0.5,phase_logistic_sel)
init_bounded_number fish_slope_mo(0.1,0.8,-phase_logistic_sel)
init_bounded_number fish_fit_slope_mn(.05,.5,phase_logistic_sel)
init_bounded_number fish_fit_sel50_mn(85.0,120.0,phase_logistic_sel)
init_bounded_number fish_fit_slope_mo(.05,.5,-phase_logistic_sel)
init_bounded_number fish_fit_sel50_mo(90.0,300.0,-phase_logistic_sel)
init_bounded_number fish_slope_mo2(1.9,2.0,phase_fishsel)
init_bounded_number fish_sel50_mo2(159.0,160.0,phase_fishsel)
init_bounded_number fish_slope_mn2(.01,2.0,phase_fishsel)
init_bounded_number fish_sel50_mn2(100.0,160.0,phase_fishsel)
init_bounded_number fish_disc_slope_f(0.10,0.70,phase_logistic_sel)
// init_bounded_number fish_disc_sel50_f(4.20,4.201,-phase_logistic_sel)
init_bounded_number fish_disc_sel50_f(1,5,phase_logistic_sel)
init_bounded_dev_vector log_dev_50f(1995,endyr-1,-5,5,-phase_logistic_sel)
init_bounded_number fish_disc_slope_tf(.01,.3,phase_logistic_sel)
init_bounded_number fish_disc_sel50_tf(30.,120.0,phase_logistic_sel)
//Survey selectivity parameters
// three survey eras:
//srv1: 1978-1982
init_bounded_number srv1_q(0.2,1.000,survsel1_phase+1)
init_bounded_number srv1_q_f(0.2,1.000,survsel1_phase+1)
init_bounded_number srv1_sel95(30.0,150.0,survsel1_phase)
init_bounded_number srv1_sel50(0.0,150.0,survsel1_phase)
//srv2: 1983-1988
init_bounded_number srv2_q(0.2,1.000,survsel1_phase+1)
init_bounded_number srv2_q_f(0.2,1.000,survsel1_phase+1)
init_bounded_number srv2_sel95(50.0,160.0,survsel1_phase)
init_bounded_number srv2_sel50(0.0,80.0,survsel1_phase)
//srv3: 1989-present
//males and females split
init_bounded_number srv3_q(0.20,1.0000,survsel1_phase)
init_bounded_number srv3_sel95(40.0,200.0,survsel1_phase)
init_bounded_number srv3_sel50(25.0,90.0,survsel1_phase)
init_bounded_number srv3_q_f(0.20,1.0000,survsel1_phase)
init_bounded_number srv3_sel95_f(40.0,150.0,survsel1_phase+1)
init_bounded_number srv3_sel50_f(0.0,90.0,survsel1_phase+1)
//2009 side by side trawls
//industry
init_bounded_number srvind_q(0.10,1.000,survsel1_phase+2)
init_bounded_number srvind_q_f(0.01,1.000,survsel1_phase+2)
init_bounded_number srvind_sel95_f(55.0,120.0,survsel1_phase)
init_bounded_number srvind_sel50_f(-50.0,55.0,survsel1_phase)
//2010 bsfrf study area double logistic
//industry
init_bounded_number srv10ind_q(0.1,1.000,survsel1_phase+2)
init_bounded_number srv10ind_q_f(0.01,1.00,survsel1_phase+2)
init_bounded_number srv10ind_sel95_f(0.05,50.0,-survsel1_phase)
init_bounded_number srv10ind_sel50_f(0.0,50.0,-survsel1_phase)
//smooth selectivity for the industry survey
init_bounded_vector selsmo10ind(1,nlenm,-4.0,-0.0010,survsel1_phase)
init_bounded_vector selsmo09ind(1,nlenm,-4.0,-0.0010,survsel1_phase)
//model 5 estimate M
init_bounded_number Mmult_imat(0.2000,2.000001,natM_phase)
init_bounded_number Mmult(0.20000,2.0000001,natM_phase)
init_bounded_number Mmultf(1.0000,1.000001,-5)
//pot fishery cpue q
// init_bounded_number cpueq(0.000877,0.000877,-5)
init_bounded_number cpueq(0.0000877,0.00877,5)
// proportion new shell in recruits
init_bounded_number proprecn(1.0,1.0,-2)
////end of estimated parameters///////////////
//Weight at length vectors
matrix wtf(1,2,1,nlenm) //weight at length juvenile and mature females (from kodiak program)
vector wtm(1,nlenm)
//Selectivity related variables
vector fish_sel50_mn(styr,endyr+Nproj)
vector fish_sel50_mo(styr,endyr+Nproj)
vector log_sel_fish(1,nlenm)
matrix log_sel_fish_disc(1,2,1,nlenm)
matrix log_sel_srv1(1,2,1,nlenm)
3darray sel(1,2,styr,endyr+Nproj,1,nlenm)
matrix sel_discf(1995,endyr+Nproj,1,nlenm)
vector sel_discf_e(1,nlenm)
3darray sel_fit(1,2,styr,endyr+Nproj,1,nlenm)
3darray sel_ret(1,2,styr,endyr+Nproj,1,nlenm)
matrix sel_trawl(1,2,1,nlenm)
matrix sel_srv1(1,2,1,nlenm)
matrix sel_srv2(1,2,1,nlenm)
matrix sel_srv3(1,2,1,nlenm)
matrix sel_srvind(1,2,1,nlenm)
matrix sel_srvnmfs(1,2,1,nlenm)
matrix sel_srv10ind(1,2,1,nlenm)
matrix sel_srv10nmfs(1,2,1,nlenm)
number avgsel_fish
vector avgsel_fish_disc(1,2)
vector avgsel_srv1(1,2)
//summary population quantities (year and sex)
vector popn_lmale(styr,endyr+Nproj)
matrix popn_disc(1,2,styr,endyr+Nproj)
matrix totn_srv1(1,2,styr,endyr+Nproj)
matrix totn_srv2(1,2,1,2) //2009 survey numbers
matrix totn_srv10(1,2,1,2)
matrix totn_trawl(1,2,styr,endyr+Nproj)
vector explbiom(styr,endyr+Nproj)
vector pred_bio(styr,endyr+Nproj)
vector fspbio(styr,endyr+Nproj)
vector mspbio(styr,endyr+Nproj)
//population quantities by length, year, and sex
3darray pred_srv1(1,2,styr,endyr+Nproj,1,nlenm)
3darray pred_p_fish(1,2,styr,endyr+Nproj,1,nlenm)
3darray pred_p_fish_fit(1,2,styr,endyr+Nproj,1,nlenm)
3darray pred_p_fish_discm(1,2,styr,endyr+Nproj,1,nlenm)
matrix pred_p_fish_discf(styr,endyr+Nproj,1,nlenm)
3darray pred_p_trawl(1,2,styr,endyr+Nproj,1,nlenm)
4darray pred_p_srv1_len(1,2,1,2,styr,endyr+Nproj,1,nlenm)
4darray pred_p_srv1_len_new(1,2,1,2,styr,endyr+Nproj,1,nlenm)
4darray pred_p_srv1_len_old(1,2,1,2,styr,endyr+Nproj,1,nlenm)
3darray pred_p_srv2_len(1,2,1,2,1,nlenm)
matrix pred_p_srv2_len_ind(1,2,1,nlenm)
matrix pred_p_srv2_len_nmfs(1,2,1,nlenm)
matrix pred_p_srv10_len_ind(1,2,1,nlenm)
matrix pred_p_srv10_len_nmfs(1,2,1,nlenm)
//summary catch statistics (year and sex)
vector pred_catch(styr,endyr+Nproj)
vector pred_catch_ret(styr,endyr+Nproj)
matrix pred_catch_disc(1,2,styr,endyr+Nproj)
vector pred_catch_trawl(styr,endyr+Nproj)
matrix catch_male_ret(styr,endyr+Nproj,1,nlenm)
matrix catch_lmale(styr,endyr+Nproj,1,nlenm)
//catch quantities by length, year, and sex
3darray catch_discp(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_iold(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_inew(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_mold(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_mnew(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_old(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_new(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_i(1,2,styr,endyr+Nproj,1,nlenm)
3darray natlength_mat(1,2,styr,endyr+Nproj,1,nlenm)
//growth and molting related variables
3darray len_len(1,2,1,nlenm,1,nlenm) //length to length growth array
matrix moltp(1,2,1,nlenm) //molting probabilities for female, male by length bin
matrix moltp_mat(1,2,1,nlenm) //molting probs for mature female, male by length bin
//fishing mortality related variables
4darray Ftot(1,2,1,2,styr,endyr+Nproj,1,nlenm)
3darray F(1,2,styr,endyr+Nproj,1,nlenm)
3darray F_ret(1,2,styr,endyr+Nproj,1,nlenm)
3darray Fmat(1,2,styr,endyr+Nproj,1,nlenm)
3darray Fmat_ret(1,2,styr,endyr+Nproj,1,nlenm)
3darray Fimat(1,2,styr,endyr+Nproj,1,nlenm)
3darray Fimat_ret(1,2,styr,endyr+Nproj,1,nlenm)
3darray Fdiscm(1,2,styr,endyr+Nproj,1,nlenm)
matrix Fdiscf(styr,endyr+Nproj,1,nlenm)
3darray Fdisct(1,2,styr,endyr+Nproj,1,nlenm)
4darray S(1,2,1,2,styr,endyr+Nproj,1,nlenm)
4darray Simat(1,2,1,2,styr,endyr+Nproj,1,nlenm)
4darray Smat(1,2,1,2,styr,endyr+Nproj,1,nlenm)
//how is fmort, fmortret, different from F, F_ret??
vector fmort(styr,endyr+Nproj)
vector fmortret(styr,endyr+Nproj)
vector fmortdf(styr,endyr+Nproj)
vector fmortt(styr,endyr+Nproj)
vector fmort_disc(styr,endyr+Nproj)
number rbar
vector surv(1,2)
vector offset(1,5)
vector matest(1,nlenm)
vector matestf(1,nlenm)
//likelihood components
number rec_like
number catch_like1
number catch_like2
number catch_liket
number catch_likef
number growth_like
4darray len_likeyr(1,2,1,2,1,2,1,nobs_srv1_length)
vector len_like(1,7)
vector sel_like(1,4)
number sel_like_50m
number like_natm
number fpen
number surv_like
number surv2_like
number surv3_like
number surv10_like
number sexr_like
number like_initsmo
number like_q
number like_linff
number like_linfm
number like_growthkf
number like_growthkm
number like_af
number like_am
number like_bf
number like_bf1
number like_bm
number like_a1
number like_b1
number like_meetpt
number like_srvsel
number selsmo_like
number discf_like
number largemale_like
number like_mat
number like_initnum
number len_like10_ind
number len_like10_nmfs
number surv10nmfs_like
//quantities to report in SD file
sdreport_vector fspbios(styr,endyr+Nproj)
sdreport_vector mspbios(styr,endyr+Nproj)
sdreport_vector legal_malesd(styr,endyr+Nproj)
sdreport_vector recf_sd(styr,endyr+Nproj-1)
sdreport_vector recm_sd(styr,endyr+Nproj-1)
sdreport_number depletion
objective_function_value f
number tmp
vector tmpn(1,nlenm)
vector pred_sexr(styr,endyr+Nproj)
vector preds_sexr(styr,endyr+Nproj)
vector predpop_sexr(styr,endyr+Nproj)
number maxsel_fish
number maxsel_srv1
number maxseld
matrix mean_length(1,2,1,nlenm)
matrix sd_mean_length(1,2,1,nlenm)
matrix sum_len(1,2,1,nlenm)
number tmp1
number tmp2
number tmp3
vector sumfish(1,nobs_fish)
vector sumfishret(1,nobs_fish)
vector sumfishtot(1,nobs_fish_discm)
vector sumfishdiscm(1,nobs_fish_discm)
vector sumfishdiscf(1,nobs_fish_discf)
vector sumtrawl(1,nobs_trawl)
vector sumsrv(1,nobs_srv1_length)
//observed proportion at length for surveys
4darray obs_p_srv2_len(1,2,1,2,1,2,1,nlenm)
4darray obs_p_srv10_len(1,2,1,2,1,2,1,nlenm)
5darray obs_p_srv1_len(1,2,1,2,1,2,1,nobs_srv1_length,1,nlenm)
5darray obs_p_srv1_len1(1,2,1,2,1,2,1,nobs_srv1_length,1,nlenm)
3darray obs_p_srv1_lenc(1,2,1,nobs_srv1_length,1,nlenm) //observed proportion survey length female, males,combined new/old
4darray obs_p_fish(1,2,1,2,1,nobs_fish,1,nlenm) //observed proportion fishery length-combined ret/disc
vector obs_sexr(1,nobs_fish) //observed fraction female fishery length data
vector obs_sexr_srv1_l(1,nobs_srv1_length) //observed fraction female survey length data
//observed proportion at length fishery
3darray obs_p_fish_ret(1,2,1,nobs_fish,1,nlenm)
3darray obs_p_fish_tot(1,2,1,nobs_fish,1,nlenm)
3darray obs_p_fish_discm(1,2,1,nobs_fish_discm,1,nlenm)
matrix obs_p_fish_discf(1,nobs_fish_discf,1,nlenm)
3darray obs_p_trawl(1,2,1,nobs_trawl,1,nlenm)
vector pf(1,nlenm)
vector pb(1,nlenm)
//management related quanities
vector catch_tot(styr,endyr+Nproj)
vector legal_males(styr,endyr+Nproj)
vector legal_srv_males(styr,endyr+Nproj)
vector popn(styr,endyr+Nproj)
vector popn_fit(styr,endyr+Nproj)
3darray obs_srv1_num(1,2,styr,endyr+Nproj,1,nlenm)
matrix tmpo(1,2,styr,endyr+Nproj)
matrix tmpp(1,2,styr,endyr+Nproj)
matrix obs_srv1_bioms(1,2,styr,endyr+Nproj)
vector obs_srv1_biom(styr,endyr+Nproj)
matrix obs_srv1_spbiom(1,2,styr,endyr+Nproj)
matrix obs_srv2_spbiom(1,2,1,2)
matrix obs_srv10_spbiom(1,2,1,2)
3darray obs_srv1_spnum(1,2,1,2,styr,endyr+Nproj)
vector pred_srv1_biom(styr,endyr+Nproj)
matrix pred_srv1_bioms(1,2,styr,endyr+Nproj)
vector obs_srv1t(styr,endyr+Nproj)
matrix cv_srv1(1,2,styr,endyr+Nproj)
matrix cv_srv1_nowt(1,2,styr,endyr+Nproj)
vector obs_catchdm_biom(styr,endyr+Nproj)
vector obs_catchdf_biom(styr,endyr+Nproj)
vector obs_catcht_biom(styr,endyr+Nproj)
vector obs_catchtot_biom(styr,endyr+Nproj)
vector avgp(1,nlenm)
vector avgpf(1,nlenm)
vector avgpm(1,nlenm)
matrix biom_tmp(1,2,styr,endyr+Nproj)
matrix discardc(1,2,1,nlenm)
vector rec_len(1,nlenm)
vector avg_rec(1,2)
vector obs_lmales(1,nobs_srv1_length)
matrix rec_dev(1,2,styr,endyr)
matrix avgsel(1,2,1,nlenm)
matrix avgsel_fit(1,2,1,nlenm)
number sel_avg_like
4darray effn_srv1(1,2,1,2,1,2,styr,endyr+Nproj)
matrix effn_fish_ret(1,2,styr,endyr+Nproj)
matrix effn_fish_tot(1,2,styr,endyr+Nproj)
//population broken up by new and old shell reported at different time
vector legal_males_bio(styr,endyr+Nproj)
vector legal_srv_males_n(styr,endyr+Nproj)
vector legal_srv_males_o(styr,endyr+Nproj)
vector legal_srv_males_bio(styr,endyr+Nproj)
vector obs_lmales_bio(1,nobs_srv1_length)
3darray natl_new_fishtime(1,2,styr,endyr+Nproj,1,nlenm)
3darray natl_old_fishtime(1,2,styr,endyr+Nproj,1,nlenm)
3darray natl_inew_fishtime(1,2,styr,endyr+Nproj,1,nlenm)
3darray natl_iold_fishtime(1,2,styr,endyr+Nproj,1,nlenm)
3darray natl_mnew_fishtime(1,2,styr,endyr+Nproj,1,nlenm)
3darray natl_mold_fishtime(1,2,styr,endyr+Nproj,1,nlenm)
vector popn_lmale_new(styr,endyr+Nproj)
vector popn_lmale_old(styr,endyr+Nproj)
//catch in different fleets of different shell conditions
matrix catch_lmale_new(styr,endyr+Nproj,1,nlenm)
matrix catch_lmale_old(styr,endyr+Nproj,1,nlenm)
matrix catch_male_ret_new(styr,endyr+Nproj,1,nlenm)
matrix catch_male_ret_old(styr,endyr+Nproj,1,nlenm)
vector popn_fit_new(styr,endyr+Nproj)
vector popn_fit_old(styr,endyr+Nproj)
vector popn_lmale_bio(styr,endyr+Nproj)
number like_mmat
number sumrecf
number sumrecm
vector cv_rec(1,2)
vector fspbio_srv1(styr,endyr+Nproj)
vector mspbio_srv1(styr,endyr+Nproj)
number fspbio_srv2_ind
number mspbio_srv2_ind
number fspbio_srv2_nmfs
number mspbio_srv2_nmfs
number fspbio_srv10_ind
number mspbio_srv10_ind
number fspbio_srv10_nmfs
number mspbio_srv10_nmfs
matrix fspbio_srv1_num(1,2,styr,endyr+Nproj)
matrix mspbio_srv1_num(1,2,styr,endyr+Nproj)
3darray offset_srv(1,2,1,2,1,2)
3darray len_like_srv(1,2,1,2,1,2)
number growinc_90
number growinc_67
number hrate
number ghl
number ghl_number
vector emspbio_matetime(styr,endyr+Nproj)
vector efspbio_matetime(styr,endyr+Nproj)
vector mspbio_matetime(styr,endyr+Nproj)
vector mspbio_old_matetime(styr,endyr+Nproj)
vector fspbio_new_matetime(styr,endyr+Nproj)
vector efspbio_new_matetime(styr,endyr+Nproj)
vector fspnum_new_matetime(styr,endyr+Nproj)
vector fspbio_matetime(styr,endyr+Nproj)
vector mspbio_fishtime(styr,endyr+Nproj)
vector fspbio_fishtime(styr,endyr+Nproj)
vector emspnum_old_matetime(styr,endyr+Nproj)
vector mspnum_matetime(styr,endyr+Nproj)
vector efspnum_matetime(styr,endyr+Nproj)
vector pred_catch_gt101(styr,endyr+Nproj)
vector pred_catch_no_gt101(styr,endyr+Nproj)
vector num_males_gt101(styr,endyr+Nproj)
vector bio_males_gt101(styr,endyr+Nproj)
vector obs_tmp(styr,endyr+Nproj)
vector catch_midpt(styr,endyr+Nproj)
vector alpha(1,2)
number alpha_rec
number avg_beta
number devia
number recsum
vector tmps(1,nlenm)
number tmpi
matrix catch_disc(1,2,styr,endyr+Nproj)
number old_mult
matrix maturity_est(1,2,1,nlenm)
vector cpue_pred(styr,endyr+Nproj)
number cpue_like
vector ftarget(styr,endyr+Nproj)
vector pred_catch_target(styr,endyr+Nproj)
number ghl_like
number wt_lmlike2
number multi
vector tmpmnew(1,nlenm)
vector tmpinew(1,nlenm)
vector tmpmold(1,nlenm)
vector offset_srv2(1,2)
vector offset_srv10(1,2)
vector selsmo2_n(1,nlenm)
vector selsmof2_n(1,nlenm)
vector Fout(1,30)
number call_no
vector M_matn(1,2)
vector M_mato(1,2)
vector M(1,2)
vector tmpp1(1,nlenm)
vector tmpp2(1,nlenm)
vector tmpp3(1,nlenm)
vector tmpp4(1,nlenm)
number len_like_immat
number len_like_mat
number len_like_ex
number sumobs
number sumobs2
number sumobs10
number sumobs102
likeprof_number lp_q;
// For projection functions
number FutRec
number FutMort
number Bzero
number Target
number F35
number SBPRF35
number Ratio
number Btest
number OFL
number FOFL
number Bmsy
//Francis weighting stuff
4darray Lbar(1,2,1,2,1,2,1,nobs_srv1_length)
3darray Lbar_hat_old(1,2,1,2,1,nobs_srv1_length)
3darray Lbar_hat_new(1,2,1,2,1,nobs_srv1_length)
3darray SE_Lbar_hat_old(1,2,1,2,1,nobs_srv1_length)
3darray SE_Lbar_hat_new(1,2,1,2,1,nobs_srv1_length)
3darray Francis_var_temp_new(1,2,1,2,1,nobs_srv1_length)
3darray Francis_var_temp_old(1,2,1,2,1,nobs_srv1_length)
number Francis_weight_m
number Francis_weight_f
number countFem
number countMal
number totalFem
number totalMal
number FemMeanVarTerm
number MaleMeanVarTerm
//==============================================================================
PRELIMINARY_CALCS_SECTION
int mat;
int m;
// Calculate weight at length
for(i=1;i<=nlenm;i++)
{
wtm(i) = alpha_wt_m*pow(length_bins(i),beta_wt_m);
wtf(1,i) = alpha_wt_imm_f*pow(length_bins(i),beta_wt_imm_f);
wtf(2,i) = alpha_wt_mat_f*pow(length_bins(i),beta_wt_mat_f);
}
//change weight to tons
wtm=wtm*.000001;
wtf=wtf*.000001;
for(m=styr;m<=endyr;m++)
catch_midpt(m) = catch_midptIn(m);
for(m=endyr+1;m<=endyr+Nproj;m++)
catch_midpt(m) = catch_midptIn(endyr);
mnatlen_styr(1) = log(10*(obs_p_srv1_lend(1,1,2,1)+obs_p_srv1_lend(2,1,2,1)+1e-02));
mnatlen_styr(2) = log(10*(obs_p_srv1_lend(1,2,2,1)+obs_p_srv1_lend(2,2,2,1)+1e-02));
for(j=1;j<=12;j++){
fnatlen_styr(1,j) = log(10*(obs_p_srv1_lend(1,1,1,1,j)+obs_p_srv1_lend(2,1,1,1,j)+1e-02));
fnatlen_styr(2,j) = log(10*(obs_p_srv1_lend(1,2,1,1,j)+obs_p_srv1_lend(2,2,1,1,j)+1e-02));
}
//use logistic maturity curve for new shell males instead of fractions by year if switch>0
//this would be for initial population not probability of moving to mature
if(maturity_switch>0){
maturity_average(2) = maturity_logistic;
for(i=styr;i<=endyr;i++){
maturity(2,i)= maturity_logistic;
}
}
sumfishdiscm.initialize();
sumfishret.initialize();
sumfishtot.initialize();
sumfishdiscf.initialize();
sumtrawl.initialize();
//get total catch - sum up catches mult by assumed mortality
for(i=styr; i<=endyr; i++)
{
catch_trawl(i)=catch_trawl(i)*m_trawl;
catch_disc(1,i)=catch_odisc(1,i)*m_disc;
catch_disc(2,i)=catch_odisc(2,i)*m_disc;
catch_tot(i)=catch_numbers(i)+catch_disc(2,i);
}
//sum each fishery data
for(i=1; i<=nobs_fish_discm; i++)
{
sumfishdiscm(i)+=sum(obs_p_fish_discmd(1,i));
sumfishdiscm(i)+=sum(obs_p_fish_discmd(2,i));
}
for(i=1; i<=nobs_fish; i++){
for(j=1; j<=2; j++){
sumfishret(i)+=sum(obs_p_fish_retd(j,i));
}
}
for(i=1; i<=nobs_fish_discf; i++){
sumfishdiscf(i)+=sum(obs_p_fish_discfd(i));
}
for(i=1; i<=nobs_trawl; i++){
for(k=1;k<=2;k++){
sumtrawl(i)+=sum(obs_p_trawld(k,i));
}
}
//length obs sex ratio in survey
for(i=1; i<=nobs_srv1_length;i++)
{
obs_p_srv1_lenc(1,i)=obs_p_srv1_lend(1,1,1,i)+obs_p_srv1_lend(1,2,1,i)+obs_p_srv1_lend(2,1,1,i)+obs_p_srv1_lend(2,2,1,i);
obs_p_srv1_lenc(2,i)=obs_p_srv1_lend(1,1,2,i)+obs_p_srv1_lend(1,2,2,i)+obs_p_srv1_lend(2,1,2,i)+obs_p_srv1_lend(2,2,2,i);
obs_sexr_srv1_l(i)=sum(obs_p_srv1_lenc(1,i))/(sum(obs_p_srv1_lenc(1,i))+sum(obs_p_srv1_lenc(2,i)));
}
offset.initialize();
offset_srv2.initialize();
for(k=1; k<=2; k++)
for (i=1; i <= nobs_fish_discm; i++)
for (j=1; j<=nlenm; j++)
{
if(k<2){ //new shell
obs_p_fish_discm(k,i,j)=((obs_p_fish_discmd(k,i,j)*fraction_new_error)/sumfishdiscm(i))*(catch_disc(2,yrs_fish_discm(i))/catch_tot(yrs_fish_discm(i)));
}
else{
obs_p_fish_discm(k,i,j)=((obs_p_fish_discmd(k,i,j)+obs_p_fish_discmd(1,i,j)*(1.-fraction_new_error))/sumfishdiscm(i))*(catch_disc(2,yrs_fish_discm(i))/catch_tot(yrs_fish_discm(i)));
}
}
for(i=1;i<=nobs_fish;i++)
{
obs_p_fish_ret(1,i) = obs_p_fish_retd(1,i)*fraction_new_error;
obs_p_fish_ret(2,i) = obs_p_fish_retd(2,i)+(1.-fraction_new_error)*obs_p_fish_retd(1,i);
}
//make observations proportions by year
//fishery offset
for (i=1; i <= nobs_fish; i++)
{
for (j=1; j<=nlenm; j++)
{
for(k=1; k<=2; k++)
obs_p_fish_ret(k,i,j)=(obs_p_fish_ret(k,i,j)/sumfishret(i));
offset(1)-=nsamples_fish(1,i)*(obs_p_fish_ret(1,i,j)+obs_p_fish_ret(2,i,j))*log(obs_p_fish_ret(1,i,j)+obs_p_fish_ret(2,i,j)+p_const);
}
}
for(k=1; k<=2; k++)
{
for (i=1; i <= nobs_fish_discm; i++)
{
//make observations proportions by year
//fishery offset
for (j=1; j<=nlenm; j++)
{
obs_p_fish_tot(k,i,j)=((obs_p_fish_ret(k,i+yrs_fish_discm(1)-1978,j)*catch_numbers(yrs_fish_discm(i)))/catch_tot(yrs_fish_discm(i)))+obs_p_fish_discm(k,i,j);
//old and new shell together
if (k<2)
offset(2)-=nsamples_fish(k,i)*(obs_p_fish_tot(1,i,j)+obs_p_fish_tot(2,i,j) )*log(obs_p_fish_tot(1,i,j)+obs_p_fish_tot(2,i,j)+p_const);
}
}
}
//make observations proportions by year
//fishery offset
for (i=1; i <= nobs_fish_discf; i++)
for (j=1; j<=nlenm; j++)
{
obs_p_fish_discf(i,j)=((obs_p_fish_discfd(i,j))/sumfishdiscf(i));
offset(3)-=nsamples_fish_discf(i)*obs_p_fish_discf(i,j)*log(obs_p_fish_discf(i,j)+p_const);
}
//trawl length freq
for(k=1; k<=2; k++)
for (i=1; i <= nobs_trawl; i++)
{
//make observations proportions by year
//fishery offset
for (j=1; j<=nlenm; j++)
{
obs_p_trawl(k,i,j)=((obs_p_trawld(k,i,j))/sumtrawl(i));
offset(5)-=nsamples_trawl(k,i)*obs_p_trawl(k,i,j)*log(obs_p_trawl(k,i,j)+p_const);
}
obs_catcht_biom(yrs_trawl(i))=(obs_p_trawl(1,i)*catch_trawl(yrs_trawl(i)))*wtf(2)+(obs_p_trawl(2,i)*catch_trawl(yrs_trawl(i)))*wtm;
}
sumsrv.initialize();
//survey length offset
for(ll=1; ll<=nobs_srv1_length; ll++)
for(mat=1;mat<=2;mat++)
for(k=1; k<=2; k++)
for(j=1; j<=2; j++)
sumsrv(ll)+=sum(obs_p_srv1_lend(mat,k,j,ll));
for(mat=1; mat<=2; mat++) //maturity
for(l=1; l<=2; l++) //shell condition
for(k=1; k<=2;k++) //sex
for (i=1; i <= nobs_srv1_length; i++)
for (j=1; j<=nlenm; j++)
{
//only do new/old shell correction for mature crab
if(mat<2){
obs_p_srv1_len1(mat,l,k,i,j)=(obs_p_srv1_lend(mat,l,k,i,j))/sumsrv(i);
}
else{
if(l<2){
obs_p_srv1_len1(mat,l,k,i,j)=(obs_p_srv1_lend(mat,l,k,i,j)*fraction_new_error)/sumsrv(i);
}
else{
obs_p_srv1_len1(mat,l,k,i,j)=(obs_p_srv1_lend(mat,l,k,i,j)+obs_p_srv1_lend(mat,1,k,i,j)*(1.-fraction_new_error))/sumsrv(i);
}
}
}
//
//use logistic maturity curve for new and old shell male survey data if switch>0 instead of yearly samples
// old shell already uses ok maturity curve
if(maturity_switch>0)
{
for(i=1; i <= nobs_srv1_length; i++)
{
//oldshell
tmps = (obs_p_srv1_len1(1,2,2,i)+obs_p_srv1_len1(2,2,2,i));
obs_p_srv1_len1(2,2,2,i) = elem_prod(maturity_old_average(2),tmps);
obs_p_srv1_len1(1,2,2,i) = elem_prod(1.0-maturity_old_average(2),tmps);
}
}
avgpf=0;
avgpm=0;
for(i=1; i <= nobs_trawl; i++)
{
avgpf+=obs_p_trawl(1,i);
avgpm+=obs_p_trawl(2,i);
}
avgpf=avgpf/nobs_trawl;