Run the Operating model scenario.
29 double ro, reck, a, b;
52 m_fmsy = cRefPoints.get_fmsy();
53 m_bmsy = cRefPoints.get_bmsy();
54 m_msy = cRefPoints.get_msy();
56 dvector bt(m_syr,m_nyr+m_pyr+1);
57 dvector rt(m_syr,m_nyr+m_pyr);
58 dvector hat_ct(m_syr,m_nyr+m_pyr);
59 dvector hat_dt(m_syr,m_nyr+m_pyr);
60 dvector hat_it(m_syr,m_nyr+m_pyr);
69 rt(m_syr,m_syr+agek) = ro * exp(wt(m_syr,m_syr+agek));
70 hat_it(m_syr,m_nyr) = it;
71 for(i = m_syr; i <= m_nyr; i++)
76 rt(i) = a*bt(i-agek)/(1.+b*bt(i-agek)) * exp(wt(i));
79 hat_ct(i) = bt(i) * ft(i);
80 bt(i+1) = s*bt(i) + rt(i) - hat_ct(i);
82 hat_ct(m_syr,m_nyr) = m_ct;
83 hat_dt(m_syr,m_nyr) = 0;
100 int pyr2 = m_nyr+m_pyr;
101 dvector pyr(pyr1,pyr2);
102 pyr.fill_seqadd(pyr1,1);
106 dvector rt_dev(pyr1,pyr2);
107 dvector it_dev(pyr1,pyr2);
108 dvector pdo_dev(pyr1,pyr2);
109 dvector tac_dev(pyr1,pyr2);
117 else if( m_nScenario==2 )
121 pdo_dev = sin((pyr-
double(pyr1))/
double(pyr2-pyr1)*4.0*PI);
124 rt_dev.fill_randn(rng);
125 it_dev.fill_randn(rng);
126 tac_dev.fill_randn(rng);
128 rt_dev = rt_dev*tau - 0.5*tau*tau;
129 it_dev = it_dev*sig - 0.5*sig*sig;
131 tac_dev = tac_dev*phi -0.5*phi*phi;
133 double fmsy,bmsy,msy, tac, frate;
135 double est_reck = reck;
137 double est_bt = bt(pyr1);
140 for( i = pyr1; i <= pyr2; i++ )
144 fmsy = cRefPoints.get_fmsy();
145 msy = cRefPoints.get_msy();
146 bmsy = cRefPoints.get_bmsy();
150 tac = m_cHCR.
getTac(est_bt,fmsy,msy,bmsy,est_bo,0.15,hat_ct(i-1),m_mintac);
151 tac = tac*exp(tac_dev(i));
157 frate = -log((-tac+bt(i))/bt(i));
163 hat_ct(i) = bt(i) * (1.-mfexp(-frate));
164 hat_dt(i) = bt(i) * (1.-mfexp(-m_iuu_rate));
169 rt(i) = a*bt(i-agek)/(1.+b*bt(i-agek)) * exp(rt_dev(i) + lambda*pdo_dev(i));
171 bt(i+1) = s*bt(i) + rt(i) - hat_ct(i) - hat_dt(i);
175 hat_it(i) = q*bt(i)*exp(it_dev(i));
176 write_data_file(i,hat_ct(m_syr,i),hat_it(m_syr,i));
181 if(m_flg_perfect_information)
185 ifstream ifs(
"mse.par");
192 else if( !m_flg_perfect_information )
194 cout<<
"|-- PERFECT INFORMATION --|"<<endl;
204 cout<<setprecision(3);
205 cout<<
"|---------------------------|"<<endl;
206 cout<<
"| - Year "<<i<<endl;
207 cout<<
"|---------------------------|"<<endl;
208 cout<<
"| - est Bo "<<est_bo<<endl;
209 cout<<
"| - est Bt "<<est_bt<<endl;
210 cout<<
"| - bmsy "<<bmsy<<endl;
211 cout<<
"| - bt(i) "<<bt(i)<<endl;
212 cout<<
"| - fmsy "<<fmsy<<endl;
213 cout<<
"| - frate "<<frate<<endl;
214 cout<<
"| - msy "<<msy<<endl;
215 cout<<
"| - tac "<<tac<<endl;
216 cout<<
"| - hat_ct(i) "<<hat_ct(i)<<endl;
217 cout<<
"|---------------------------|"<<endl;
220 m_bt = bt(m_syr,m_nyr+m_pyr);
225 dvector AAV(m_syr,pyr2);
227 for( i = m_syr+6; i <= pyr2; i++ )
229 AAV(i) = sum(fabs(first_difference(hat_ct(i-5,i))));
230 AAV(i) /= sum(hat_ct(i-5,i));