1 | #define FILTER |
---|
2 | |
---|
3 | |
---|
4 | defval jtlag 3//nombre de pas de temps Delta t/ delta t |
---|
5 | //for the fake |
---|
6 | //defval jtlag 720 |
---|
7 | |
---|
8 | defval jptfl 7 //Nombre total de pas de temps |
---|
9 | defval jpnfl 2 //nombre total de flotteurs |
---|
10 | |
---|
11 | |
---|
12 | defval nlon 87 //nbre de points de grilles en longitude |
---|
13 | defval nlat 58 //nbre de points de grilles en latitude |
---|
14 | defval nfloat 2 //nbre de flotteurs max par assim |
---|
15 | |
---|
16 | #ifdef FILTER |
---|
17 | defval K_FILTER //create a define K_FILTER in the source code |
---|
18 | defval OFIL 2 //order of the filter |
---|
19 | #else |
---|
20 | defval OFIL 0 //Offtime of the main trajectory (0 since there is no filter) |
---|
21 | #endif |
---|
22 | |
---|
23 | |
---|
24 | hat_name "floater.h" |
---|
25 | |
---|
26 | |
---|
27 | option o_m1qn3 |
---|
28 | option o_gradtest |
---|
29 | //option O_EXTOBJ "../object/ncutil.o" //for aviso files |
---|
30 | #ifdef FILTER |
---|
31 | traj Tcstfil D 0 1 //Traj for control parameters |
---|
32 | traj Tfil D 1 0 1 OFIL //Traj for compute the filter |
---|
33 | #endif |
---|
34 | |
---|
35 | // name M upt offt dt nbstep |
---|
36 | traj T_float M 1 OFIL 1 jtlag //trajectoire pour r |
---|
37 | traj T_euler M 0 OFIL 1 jtlag //trajectoire pour u et v |
---|
38 | //for varibale u, put under nb step jtlag |
---|
39 | |
---|
40 | //deltas |
---|
41 | traj T_euler_d D 0 OFIL 1 1 |
---|
42 | traj T_float_d D 1 OFIL 1 jtlag //trajectoires type modele ou tangent. permet de controler quel type activer dans le i |
---|
43 | |
---|
44 | |
---|
45 | #ifdef FILTER |
---|
46 | space S_euler_df M nlon nlat Tcstfil //space for control parameter |
---|
47 | space S_euler_df_t M nlon nlat Tfil //space for filter calculation |
---|
48 | #endif |
---|
49 | |
---|
50 | space S_float M nfloat T_float |
---|
51 | space S_euler M nlon nlat T_euler |
---|
52 | space S_eulerlocate M nfloat nlon nlat T_float |
---|
53 | |
---|
54 | //deltas |
---|
55 | space S_float_d M nfloat T_float_d |
---|
56 | space S_euler_d M nlon nlat T_euler_d |
---|
57 | space S_eulerlocate_d M nfloat nlon nlat T_float_d |
---|
58 | |
---|
59 | |
---|
60 | modul r_float space S_float input 4 output 2 tempo |
---|
61 | modul ur space S_float input 18 output 2 tempo |
---|
62 | modul uinter space S_float noward output 8 tempo |
---|
63 | modul xinter space S_float noward output 8 tempo |
---|
64 | |
---|
65 | |
---|
66 | modul u space S_euler noward output 1 tempo //noward veut dire pas de calcul |
---|
67 | modul v space S_euler noward output 1 tempo |
---|
68 | modul locate space S_eulerlocate input 2 output 1 tempo |
---|
69 | modul mask space S_euler noward output 1 |
---|
70 | |
---|
71 | |
---|
72 | //deltas |
---|
73 | modul r_float_d space S_float_d input 4 output 2 tempo |
---|
74 | modul ur_d space S_float_d input 18 output 2 tempo |
---|
75 | modul uinter_d space S_float_d noward output 8 tempo |
---|
76 | //modul xinter_d space S_float_d noward output 8 tempo |
---|
77 | |
---|
78 | |
---|
79 | |
---|
80 | #ifdef FILTER |
---|
81 | //active filter |
---|
82 | modul uc_d space S_euler_df noward output 1 target |
---|
83 | modul vc_d space S_euler_df noward output 1 target |
---|
84 | modul cfil space S_euler_df noward output 9 |
---|
85 | modul dfil space S_euler_df noward output 9 |
---|
86 | modul lapfilu space S_euler_df_t input 20 output 1 tempo |
---|
87 | modul lapfilv space S_euler_df_t clonol lapfilu |
---|
88 | modul u_d space S_euler_d input 2 output 1 |
---|
89 | modul v_d space S_euler_d clonol u_d |
---|
90 | modul u_norm space S_euler_df noward output 1 |
---|
91 | modul v_norm space S_euler_df noward output 1 |
---|
92 | |
---|
93 | #else |
---|
94 | //no filter |
---|
95 | modul u_d space S_euler_d noward output 1 target //noward veut dire pas de calcul |
---|
96 | modul v_d space S_euler_d noward output 1 target |
---|
97 | #endif |
---|
98 | |
---|
99 | modul locate_d space S_eulerlocate_d input 2 output 1 tempo |
---|
100 | modul r_cout_d space S_float_d input 2 output 2 tempo cout |
---|
101 | |
---|
102 | //Filter modules |
---|
103 | |
---|
104 | |
---|
105 | |
---|
106 | |
---|
107 | exec disp_modul //afficher les modules lors de la ganeration du code |
---|
108 | |
---|
109 | ctin r_float 1..2 from r_float 1..2 i t-1 // i par default est la premier dimension, ici i=1 floater |
---|
110 | ctin r_float 3..4 from ur 1..2 i t // comme c'est un calcul, il depend pas de la valeur initiale |
---|
111 | |
---|
112 | ctin ur 1..8 from uinter 1..8 i t |
---|
113 | ctin ur 9..16 from xinter 1..8 i t |
---|
114 | ctin ur 17..18 from r_float 1..2 i t-1 |
---|
115 | |
---|
116 | ctin locate 1..2 from r_float 1..2 i t-1 |
---|
117 | |
---|
118 | //deltas |
---|
119 | ctin r_float_d 1..2 from r_float_d 1..2 i t-1 // i par default est la premier dimension, ici i=1 floater |
---|
120 | ctin r_float_d 3..4 from ur_d 1..2 i t // comme c'est un calcul, il depend pas de la valeur initiale |
---|
121 | |
---|
122 | ctin ur_d 1..8 from uinter_d 1..8 i t |
---|
123 | ctin ur_d 9..16 from xinter 1..8 i t |
---|
124 | ctin ur_d 17..18 from r_float 1..2 i t-1 |
---|
125 | |
---|
126 | ctin locate_d 1..2 from r_float_d 1..2 i t-1 |
---|
127 | ctin r_cout_d 1..2 from r_float_d 1..2 i t |
---|
128 | |
---|
129 | #ifdef FILTER |
---|
130 | ctin lapfilu 1 from uc_d 1 i j |
---|
131 | ctin lapfilu 2 from lapfilu 1 i j t-1 |
---|
132 | ctin lapfilu 3 from lapfilu 1 i+1 j t-1 |
---|
133 | ctin lapfilu 4 from lapfilu 1 i j+1 t-1 |
---|
134 | ctin lapfilu 5 from lapfilu 1 i j-1 t-1 |
---|
135 | ctin lapfilu 6 from lapfilu 1 i-1 j t-1 |
---|
136 | ctin lapfilu 7 from lapfilv 1 i j t-1 |
---|
137 | ctin lapfilu 8 from lapfilv 1 i+1 j-1 t-1 |
---|
138 | ctin lapfilu 9 from lapfilv 1 i j-1 t-1 |
---|
139 | ctin lapfilu 10 from lapfilv 1 i+1 j t-1 |
---|
140 | ctin lapfilu 11..19 from cfil 1..9 i j |
---|
141 | ctin lapfilu 20 from mask 1 i j |
---|
142 | |
---|
143 | ctin lapfilv 1 from vc_d 1 i j |
---|
144 | ctin lapfilv 2 from lapfilv 1 i j t-1 |
---|
145 | ctin lapfilv 3 from lapfilv 1 i+1 j t-1 |
---|
146 | ctin lapfilv 4 from lapfilv 1 i j+1 t-1 |
---|
147 | ctin lapfilv 5 from lapfilv 1 i j-1 t-1 |
---|
148 | ctin lapfilv 6 from lapfilv 1 i-1 j t-1 |
---|
149 | ctin lapfilv 7 from lapfilu 1 i j t-1 |
---|
150 | ctin lapfilv 8 from lapfilu 1 i j+1 t-1 |
---|
151 | ctin lapfilv 9 from lapfilu 1 i-1 j t-1 |
---|
152 | ctin lapfilv 10 from lapfilu 1 i-1 j+1 t-1 |
---|
153 | ctin lapfilv 11..19 from dfil 1..9 i j |
---|
154 | ctin lapfilv 20 from mask 1 i j |
---|
155 | |
---|
156 | ctin u_d 1 from lapfilu 1 i j t |
---|
157 | ctin u_d 2 from u_norm 1 i j |
---|
158 | |
---|
159 | ctin v_d 1 from lapfilv 1 i j t |
---|
160 | ctin v_d 2 from v_norm 1 i j |
---|
161 | |
---|
162 | #endif |
---|
163 | |
---|
164 | |
---|
165 | exec disp_ct_in //afficher les connexions |
---|
166 | |
---|
167 | #ifdef FILTER |
---|
168 | order modinspace S_euler_df_t |
---|
169 | order YA1 YA2 |
---|
170 | lapfilu lapfilv |
---|
171 | forder |
---|
172 | forder |
---|
173 | |
---|
174 | order modinspace S_euler_d |
---|
175 | order YA1 YA2 |
---|
176 | u_d v_d |
---|
177 | forder |
---|
178 | forder |
---|
179 | #endif |
---|
180 | |
---|
181 | order modinspace S_float |
---|
182 | order YA1 |
---|
183 | ur r_float |
---|
184 | forder |
---|
185 | forder |
---|
186 | |
---|
187 | order modinspace S_eulerlocate |
---|
188 | order YA1 YA2 YA3 |
---|
189 | locate |
---|
190 | forder |
---|
191 | forder |
---|
192 | |
---|
193 | order spaceintraj T_float |
---|
194 | S_eulerlocate S_float |
---|
195 | forder |
---|
196 | |
---|
197 | //deltas |
---|
198 | order modinspace S_float_d |
---|
199 | order YA1 |
---|
200 | ur_d r_float_d r_cout_d |
---|
201 | forder |
---|
202 | forder |
---|
203 | |
---|
204 | order modinspace S_eulerlocate_d |
---|
205 | order YA1 YA2 YA3 |
---|
206 | locate_d |
---|
207 | forder |
---|
208 | forder |
---|
209 | |
---|
210 | #ifdef FILTER |
---|
211 | order spaceintraj Tfil |
---|
212 | S_euler_df_t |
---|
213 | forder |
---|
214 | |
---|
215 | order spaceintraj T_euler_d |
---|
216 | S_euler_d |
---|
217 | forder |
---|
218 | #endif |
---|
219 | |
---|
220 | order spaceintraj T_float_d |
---|
221 | S_eulerlocate_d S_float_d |
---|
222 | forder |
---|
223 | |
---|
224 | |
---|
225 | //insert_fct arg load_aviso |
---|
226 | insert_fct update_uv |
---|
227 | insert_fct arg run_inc |
---|
228 | insert_fct arg read_obs |
---|
229 | insert_fct multirun |
---|
230 | insert_fct arg save_output_uv |
---|