source: altifloat/src/floater_delta.d @ 108

Last change on this file since 108 was 108, checked in by leila_ocean, 11 years ago

with filter

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