1function global_initialization()
2%function global_initialization()
3% initializes global variables and options for DYNARE
4%
5% INPUTS
6%    none
7%
8% OUTPUTS
9%    none
10%
11% SPECIAL REQUIREMENTS
12%    none
13
14% Copyright (C) 2003-2018 Dynare Team
15%
16% This file is part of Dynare.
17%
18% Dynare is free software: you can redistribute it and/or modify
19% it under the terms of the GNU General Public License as published by
20% the Free Software Foundation, either version 3 of the License, or
21% (at your option) any later version.
22%
23% Dynare is distributed in the hope that it will be useful,
24% but WITHOUT ANY WARRANTY; without even the implied warranty of
25% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26% GNU General Public License for more details.
27%
28% You should have received a copy of the GNU General Public License
29% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
30
31global oo_ M_ options_ estim_params_ bayestopt_ estimation_info ex0_ ys0_ dataset_ dataset_info
32estim_params_ = [];
33bayestopt_ = [];
34dataset_=[];
35dataset_info=[];
36
37M_.dname = M_.fname;
38M_.bvar = [];
39
40estimation_info.empty_prior = struct(...
41    'domain', [], 'interval', [], 'mean', [], ...
42    'median', [], 'mode', [], 'shape', [], ...
43    'shift', [], 'stdev', [], 'truncate', [], 'variance', []);
44estimation_info.empty_options = struct(...
45    'bounds',[], 'init', [], 'jscale', []);
46estimation_info.subsamples.range = struct('date1', [], 'date2', []);
47estimation_info.parameter.prior = estimation_info.empty_prior;
48estimation_info.parameter.subsample_prior = estimation_info.empty_prior;
49estimation_info.parameter.options = estimation_info.empty_options;
50estimation_info.parameter.subsample_options = estimation_info.empty_options;
51estimation_info.structural_innovation.prior = estimation_info.empty_prior;
52estimation_info.structural_innovation.subsample_prior = estimation_info.empty_prior;
53estimation_info.structural_innovation.options = estimation_info.empty_options;
54estimation_info.structural_innovation.subsample_options = estimation_info.empty_options;
55estimation_info.structural_innovation_corr.prior = estimation_info.empty_prior;
56estimation_info.structural_innovation_corr.subsample_prior = estimation_info.empty_prior;
57estimation_info.structural_innovation_corr.options = estimation_info.empty_options;
58estimation_info.structural_innovation_corr.subsample_options = estimation_info.empty_options;
59estimation_info.measurement_error.prior = estimation_info.empty_prior;
60estimation_info.measurement_error.subsample_prior = estimation_info.empty_prior;
61estimation_info.measurement_error.options = estimation_info.empty_options;
62estimation_info.measurement_error.subsample_options = estimation_info.empty_options;
63estimation_info.measurement_error_corr.prior = estimation_info.empty_prior;
64estimation_info.measurement_error_corr.subsample_prior = estimation_info.empty_prior;
65estimation_info.measurement_error_corr.options = estimation_info.empty_options;
66estimation_info.measurement_error_corr.subsample_options = estimation_info.empty_options;
67estimation_info.subsamples_index = {};
68estimation_info.subsamples.range_index = {};
69estimation_info.parameter_prior_index = {};
70estimation_info.parameter_options_index = {};
71estimation_info.parameter.range_index = {};
72estimation_info.measurement_error_prior_index = {};
73estimation_info.measurement_error_options_index = {};
74estimation_info.measurement_error.range_index = {};
75estimation_info.structural_innovation_prior_index = {};
76estimation_info.structural_innovation_options_index = {};
77estimation_info.structural_innovation.range_index = {};
78estimation_info.measurement_error_corr_prior_index = {};
79estimation_info.measurement_error_corr_options_index = {};
80estimation_info.measurement_error_corr.range_index = {};
81estimation_info.structural_innovation_corr_prior_index = {};
82estimation_info.structural_innovation_corr_options_index = {};
83estimation_info.structural_innovation_corr.range_index = {};
84estimation_info.joint_parameter_prior_index = {};
85estimation_info.joint_parameter = {'index','domain','interval','mean','median','mode','shape','shift','stdev','truncate','variance'};
86
87oo_.exo_simul = [];
88oo_.endo_simul = [];
89ys0_ = [];
90ex0_ = [];
91oo_.dr = [];
92oo_.exo_steady_state = [];
93oo_.exo_det_steady_state = [];
94oo_.exo_det_simul = [];
95
96oo_.gui.ran_estimation = false;
97oo_.gui.ran_stoch_simul = false;
98oo_.gui.ran_calib_smoother = false;
99oo_.gui.ran_perfect_foresight = false;
100oo_.gui.ran_shock_decomposition = false;
101oo_.gui.ran_realtime_shock_decomposition = false;
102
103M_.params = [];
104M_.endo_histval = [];
105M_.exo_histval = [];
106M_.exo_det_histval = [];
107M_.Correlation_matrix = [];
108M_.Correlation_matrix_ME = [];
109M_.parameter_used_with_lead_lag = false;
110
111M_.xref1.param = {};
112M_.xref1.endo = {};
113M_.xref1.exo = {};
114M_.xref1.exo_det = {};
115
116M_.xref2.param = {};
117M_.xref2.endo = {};
118M_.xref2.exo = {};
119M_.xref2.exo_det = {};
120
121M_.osr.param_names={};
122M_.osr.param_indices=[];
123M_.osr.param_bounds=[];
124M_.osr.variable_weights=[];
125M_.osr.variable_indices =[];
126
127M_.instr_id=[];
128
129% Set default options_ but keep global_init_file field if defined in the driver.
130if isstruct(options_) && isfield(options_, 'global_init_file')
131    global_init_file = options_.global_init_file;
132    options_ = default_option_values(M_);
133    options_.global_init_file = global_init_file;
134else
135    options_ = default_option_values(M_);
136end
137
138% initialize persistent variables in priordens()
139priordens([],[],[],[],[],[],1);
140% initialize persistent variables in dyn_first_order_solver()
141dyn_first_order_solver();
142
143% Set dynare random generator and seed.
144set_dynare_seed('default');
145
146
147% Create directories
148[~,~]=mkdir(M_.fname);
149[~,~]=mkdir([M_.fname filesep 'Output']);
150
151% Load user configuration file.
152if isfield(options_, 'global_init_file')
153    run(options_.global_init_file);
154end
155