source: altifloat/src/Yworkdir/Y2floater_delta.h @ 86

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

Friday's afternoon modifications

File size: 127.8 KB
Line 
1
2//----------------------------------------------------
3// project: floater_delta     header generated by YAO version v.9
4//----------------------------------------------------
5
6// € € € € € € € € LES FONCTIONS PREDEFINIES
7/*M1_TBTOGT  */ 
8void YtabTOgrad_r_float(int frompdt, int topdt, YREAL tab[])
9{
10         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
11                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
12                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
13                                 YG_r_float(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
14}/*M1_GEQPDT*/ 
15void YgradEQPdelta_r_float(int frompdt, int topdt, double pfact)
16{
17         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
18                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
19                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
20                                 YG_r_float(Yws, Yw1, Ywt) = YD_r_float(Yws, Yw1, Ywt) * pfact;}}}
21}/*M1_DEQPST*/ 
22void YdeltaEQPstate_r_float(int frompdt, int topdt, double pfact)
23{
24         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
25                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
26                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
27                                 YD_r_float(Yws, Yw1, Ywt) = YS_r_float(Yws, Yw1, Ywt) * pfact;}}}
28}/*M1_DEQPGT*/ 
29void YdeltaEQPgrad_r_float(int frompdt, int topdt, double pfact)
30{
31         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
32                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
33                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
34                                 YD_r_float(Yws, Yw1, Ywt) = YG_r_float(Yws, Yw1, Ywt) * pfact;}}}
35}/*M1_SEQPDT*/ 
36void YstateEQPdelta_r_float(int frompdt, int topdt, double pfact)
37{
38         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
39                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
40                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
41                                 YS_r_float(Yws, Yw1, Ywt) = YD_r_float(Yws, Yw1, Ywt) * pfact;}}}
42}/*M1_SEQPODT*/ 
43void YstateEQPOdelta_r_float(int frompdt, int topdt, double pfact, char *codop)
44{
45         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
46                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
47                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
48                                 YS_r_float(Yws, Yw1, Ywt) = YD_r_float(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
49}/*M1_SEQAPTDT*/ 
50void YstateEQAPTdelta_r_float(int frompdt, int topdt, double pfact, YREAL tab[])
51{
52         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
53                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
54                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
55                                 YS_r_float(Yws, Yw1, Ywt) = YD_r_float(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
56}/*M1_GEQPST*/ 
57void YgradEQPstate_r_float(int frompdt, int topdt, double pfact)
58{
59         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
60                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
61                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
62                                 YG_r_float(Yws, Yw1, Ywt) = YS_r_float(Yws, Yw1, Ywt) * pfact;}}}
63}/*M1_GEQPOST*/ 
64void YgradEQPOstate_r_float(int frompdt, int topdt, double pfact, char *codop)
65{
66         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
67                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
68                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
69                                 YG_r_float(Yws, Yw1, Ywt) = YS_r_float(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
70}/*M1_STOTBT  */ 
71void YstateTOtab_r_float(int frompdt, int topdt, YREAL tab[])
72{
73         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
74                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
75                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
76                                 tab[Y3windice] = YS_r_float(Yws, Yw1, Ywt); ++Y3windice;}}}
77}/*M1_GTOTBT  */ 
78void YgradTOtab_r_float(int frompdt, int topdt, YREAL tab[])
79{
80         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
81                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
82                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
83                                 tab[Y3windice] = YG_r_float(Yws, Yw1, Ywt); ++Y3windice;}}}
84}/*M1_RGRADT*/ 
85void Yrazgrad_r_float()
86{
87         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
88                 for (int Ywt=0; Ywt<YNBALLTIME_T_float; ++Ywt){
89                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
90                                 Yr_float(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
91}/*M1_SETAT*/ 
92void Ysetstate_r_float(double val)
93{
94         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
95                 for (int Ywt=0; Ywt<YNBALLTIME_T_float;  ++Ywt){
96                         for (int Yws=0; Yws<YNBS_r_float; ++Yws){
97                                 Yr_float(Yw1)->Ystate[Ywt][Yws] = val;}}}
98}/*M1_YIOUT*/ 
99void Yio_r_float(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)       
100{  Yiorwf ("r_float", Yws, Yw1, Yw2, Yw3, Ywt, &YS_r_float(Yws, Yw1, Ywt), val);
101}/*M00_GTEST */
102int Ytestdf_r_float (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], r_float *Modul)
103{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
104         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
105         if (!Ydftestijkt(Yid_r_float)) return(0); 
106         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
107/*M01_GTESTT*/
108         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
109         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
110         Modul->backward( Yting[0], Yting[1], Yting[2], Yting[3] );
111         for (wk=0; wk<ynbi; ++wk)
112         {       svx=yinput[wk];
113                         wdxk = svx*pdx;
114                         if (modop||svx==0.0) wdxk = pdx; 
115                         yinput[wk] += wdxk;
116                         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
117                         for (wj=0; wj<ynbs; ++wj)
118                         { wJjk = Yjac[wj][wk];
119                                 wyj = ystate[YTemps*ynbs + wj];
120                                 wDjk = (wyj - wSj[wj]) / wdxk;
121                                 wdifjk = fabs(wDjk - wJjk);
122                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
123                                 if(resKo || !KeKo) 
124                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
125                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
126                                } 
127                          yinput[wk] = svx;
128         }
129         return(nbKo);
130}/*M1_CREU*/ 
131void Ycreate_r_float() 
132{
133         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
134                 if ((Yr_float(Yw1) = new r_float ())==NULL) Ycreate_errnew();}
135}/*M1_TBTOGT  */ 
136void YtabTOgrad_ur(int frompdt, int topdt, YREAL tab[])
137{
138         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
139                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
140                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
141                                 YG_ur(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
142}/*M1_GEQPDT*/ 
143void YgradEQPdelta_ur(int frompdt, int topdt, double pfact)
144{
145         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
146                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
147                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
148                                 YG_ur(Yws, Yw1, Ywt) = YD_ur(Yws, Yw1, Ywt) * pfact;}}}
149}/*M1_DEQPST*/ 
150void YdeltaEQPstate_ur(int frompdt, int topdt, double pfact)
151{
152         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
153                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
154                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
155                                 YD_ur(Yws, Yw1, Ywt) = YS_ur(Yws, Yw1, Ywt) * pfact;}}}
156}/*M1_DEQPGT*/ 
157void YdeltaEQPgrad_ur(int frompdt, int topdt, double pfact)
158{
159         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
160                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
161                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
162                                 YD_ur(Yws, Yw1, Ywt) = YG_ur(Yws, Yw1, Ywt) * pfact;}}}
163}/*M1_SEQPDT*/ 
164void YstateEQPdelta_ur(int frompdt, int topdt, double pfact)
165{
166         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
167                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
168                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
169                                 YS_ur(Yws, Yw1, Ywt) = YD_ur(Yws, Yw1, Ywt) * pfact;}}}
170}/*M1_SEQPODT*/ 
171void YstateEQPOdelta_ur(int frompdt, int topdt, double pfact, char *codop)
172{
173         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
174                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
175                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
176                                 YS_ur(Yws, Yw1, Ywt) = YD_ur(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
177}/*M1_SEQAPTDT*/ 
178void YstateEQAPTdelta_ur(int frompdt, int topdt, double pfact, YREAL tab[])
179{
180         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
181                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
182                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
183                                 YS_ur(Yws, Yw1, Ywt) = YD_ur(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
184}/*M1_GEQPST*/ 
185void YgradEQPstate_ur(int frompdt, int topdt, double pfact)
186{
187         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
188                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
189                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
190                                 YG_ur(Yws, Yw1, Ywt) = YS_ur(Yws, Yw1, Ywt) * pfact;}}}
191}/*M1_GEQPOST*/ 
192void YgradEQPOstate_ur(int frompdt, int topdt, double pfact, char *codop)
193{
194         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
195                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
196                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
197                                 YG_ur(Yws, Yw1, Ywt) = YS_ur(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
198}/*M1_STOTBT  */ 
199void YstateTOtab_ur(int frompdt, int topdt, YREAL tab[])
200{
201         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
202                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
203                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
204                                 tab[Y3windice] = YS_ur(Yws, Yw1, Ywt); ++Y3windice;}}}
205}/*M1_GTOTBT  */ 
206void YgradTOtab_ur(int frompdt, int topdt, YREAL tab[])
207{
208         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
209                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
210                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
211                                 tab[Y3windice] = YG_ur(Yws, Yw1, Ywt); ++Y3windice;}}}
212}/*M1_RGRADT*/ 
213void Yrazgrad_ur()
214{
215         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
216                 for (int Ywt=0; Ywt<YNBALLTIME_T_float; ++Ywt){
217                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
218                                 Yur(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
219}/*M1_SETAT*/ 
220void Ysetstate_ur(double val)
221{
222         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
223                 for (int Ywt=0; Ywt<YNBALLTIME_T_float;  ++Ywt){
224                         for (int Yws=0; Yws<YNBS_ur; ++Yws){
225                                 Yur(Yw1)->Ystate[Ywt][Yws] = val;}}}
226}/*M1_YIOUT*/ 
227void Yio_ur(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)   
228{  Yiorwf ("ur", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ur(Yws, Yw1, Ywt), val);
229}/*M00_GTEST */
230int Ytestdf_ur (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], ur *Modul)
231{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
232         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
233         if (!Ydftestijkt(Yid_ur)) return(0); 
234         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
235/*M01_GTESTT*/
236         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
237         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
238         Modul->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
239         for (wk=0; wk<ynbi; ++wk)
240         {       svx=yinput[wk];
241                         wdxk = svx*pdx;
242                         if (modop||svx==0.0) wdxk = pdx; 
243                         yinput[wk] += wdxk;
244                         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
245                         for (wj=0; wj<ynbs; ++wj)
246                         { wJjk = Yjac[wj][wk];
247                                 wyj = ystate[YTemps*ynbs + wj];
248                                 wDjk = (wyj - wSj[wj]) / wdxk;
249                                 wdifjk = fabs(wDjk - wJjk);
250                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
251                                 if(resKo || !KeKo) 
252                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
253                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
254                                } 
255                          yinput[wk] = svx;
256         }
257         return(nbKo);
258}/*M1_CREU*/ 
259void Ycreate_ur() 
260{
261         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
262                 if ((Yur(Yw1) = new ur ())==NULL) Ycreate_errnew();}
263}/*M1_TBTOGT  */ 
264void YtabTOgrad_uinter(int frompdt, int topdt, YREAL tab[])
265{
266         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
267                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
268                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
269                                 YG_uinter(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
270}/*M1_GEQPDT*/ 
271void YgradEQPdelta_uinter(int frompdt, int topdt, double pfact)
272{
273         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
274                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
275                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
276                                 YG_uinter(Yws, Yw1, Ywt) = YD_uinter(Yws, Yw1, Ywt) * pfact;}}}
277}/*M1_DEQPST*/ 
278void YdeltaEQPstate_uinter(int frompdt, int topdt, double pfact)
279{
280         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
281                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
282                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
283                                 YD_uinter(Yws, Yw1, Ywt) = YS_uinter(Yws, Yw1, Ywt) * pfact;}}}
284}/*M1_DEQPGT*/ 
285void YdeltaEQPgrad_uinter(int frompdt, int topdt, double pfact)
286{
287         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
288                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
289                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
290                                 YD_uinter(Yws, Yw1, Ywt) = YG_uinter(Yws, Yw1, Ywt) * pfact;}}}
291}/*M1_SEQPDT*/ 
292void YstateEQPdelta_uinter(int frompdt, int topdt, double pfact)
293{
294         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
295                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
296                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
297                                 YS_uinter(Yws, Yw1, Ywt) = YD_uinter(Yws, Yw1, Ywt) * pfact;}}}
298}/*M1_SEQPODT*/ 
299void YstateEQPOdelta_uinter(int frompdt, int topdt, double pfact, char *codop)
300{
301         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
302                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
303                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
304                                 YS_uinter(Yws, Yw1, Ywt) = YD_uinter(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
305}/*M1_SEQAPTDT*/ 
306void YstateEQAPTdelta_uinter(int frompdt, int topdt, double pfact, YREAL tab[])
307{
308         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
309                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
310                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
311                                 YS_uinter(Yws, Yw1, Ywt) = YD_uinter(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
312}/*M1_GEQPST*/ 
313void YgradEQPstate_uinter(int frompdt, int topdt, double pfact)
314{
315         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
316                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
317                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
318                                 YG_uinter(Yws, Yw1, Ywt) = YS_uinter(Yws, Yw1, Ywt) * pfact;}}}
319}/*M1_GEQPOST*/ 
320void YgradEQPOstate_uinter(int frompdt, int topdt, double pfact, char *codop)
321{
322         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
323                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
324                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
325                                 YG_uinter(Yws, Yw1, Ywt) = YS_uinter(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
326}/*M1_STOTBT  */ 
327void YstateTOtab_uinter(int frompdt, int topdt, YREAL tab[])
328{
329         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
330                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
331                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
332                                 tab[Y3windice] = YS_uinter(Yws, Yw1, Ywt); ++Y3windice;}}}
333}/*M1_GTOTBT  */ 
334void YgradTOtab_uinter(int frompdt, int topdt, YREAL tab[])
335{
336         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
337                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
338                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
339                                 tab[Y3windice] = YG_uinter(Yws, Yw1, Ywt); ++Y3windice;}}}
340}/*M1_RGRADT*/ 
341void Yrazgrad_uinter()
342{
343         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
344                 for (int Ywt=0; Ywt<YNBALLTIME_T_float; ++Ywt){
345                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
346                                 Yuinter(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
347}/*M1_SETAT*/ 
348void Ysetstate_uinter(double val)
349{
350         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
351                 for (int Ywt=0; Ywt<YNBALLTIME_T_float;  ++Ywt){
352                         for (int Yws=0; Yws<YNBS_uinter; ++Yws){
353                                 Yuinter(Yw1)->Ystate[Ywt][Yws] = val;}}}
354}/*M1_YIOUT*/ 
355void Yio_uinter(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)       
356{  Yiorwf ("uinter", Yws, Yw1, Yw2, Yw3, Ywt, &YS_uinter(Yws, Yw1, Ywt), val);
357}/*M1_CREY*/ 
358void Ycreate_uinter()   
359{
360         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
361                 if ((Yuinter(Yw1) = new Yaouinter ())==NULL) Ycreate_errnew();}
362}/*M1_TBTOGT  */ 
363void YtabTOgrad_xinter(int frompdt, int topdt, YREAL tab[])
364{
365         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
366                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
367                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
368                                 YG_xinter(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
369}/*M1_GEQPDT*/ 
370void YgradEQPdelta_xinter(int frompdt, int topdt, double pfact)
371{
372         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
373                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
374                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
375                                 YG_xinter(Yws, Yw1, Ywt) = YD_xinter(Yws, Yw1, Ywt) * pfact;}}}
376}/*M1_DEQPST*/ 
377void YdeltaEQPstate_xinter(int frompdt, int topdt, double pfact)
378{
379         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
380                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
381                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
382                                 YD_xinter(Yws, Yw1, Ywt) = YS_xinter(Yws, Yw1, Ywt) * pfact;}}}
383}/*M1_DEQPGT*/ 
384void YdeltaEQPgrad_xinter(int frompdt, int topdt, double pfact)
385{
386         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
387                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
388                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
389                                 YD_xinter(Yws, Yw1, Ywt) = YG_xinter(Yws, Yw1, Ywt) * pfact;}}}
390}/*M1_SEQPDT*/ 
391void YstateEQPdelta_xinter(int frompdt, int topdt, double pfact)
392{
393         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
394                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
395                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
396                                 YS_xinter(Yws, Yw1, Ywt) = YD_xinter(Yws, Yw1, Ywt) * pfact;}}}
397}/*M1_SEQPODT*/ 
398void YstateEQPOdelta_xinter(int frompdt, int topdt, double pfact, char *codop)
399{
400         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
401                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
402                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
403                                 YS_xinter(Yws, Yw1, Ywt) = YD_xinter(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
404}/*M1_SEQAPTDT*/ 
405void YstateEQAPTdelta_xinter(int frompdt, int topdt, double pfact, YREAL tab[])
406{
407         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
408                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
409                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
410                                 YS_xinter(Yws, Yw1, Ywt) = YD_xinter(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
411}/*M1_GEQPST*/ 
412void YgradEQPstate_xinter(int frompdt, int topdt, double pfact)
413{
414         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
415                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
416                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
417                                 YG_xinter(Yws, Yw1, Ywt) = YS_xinter(Yws, Yw1, Ywt) * pfact;}}}
418}/*M1_GEQPOST*/ 
419void YgradEQPOstate_xinter(int frompdt, int topdt, double pfact, char *codop)
420{
421         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
422                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
423                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
424                                 YG_xinter(Yws, Yw1, Ywt) = YS_xinter(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
425}/*M1_STOTBT  */ 
426void YstateTOtab_xinter(int frompdt, int topdt, YREAL tab[])
427{
428         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
429                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
430                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
431                                 tab[Y3windice] = YS_xinter(Yws, Yw1, Ywt); ++Y3windice;}}}
432}/*M1_GTOTBT  */ 
433void YgradTOtab_xinter(int frompdt, int topdt, YREAL tab[])
434{
435         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
436                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
437                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
438                                 tab[Y3windice] = YG_xinter(Yws, Yw1, Ywt); ++Y3windice;}}}
439}/*M1_RGRADT*/ 
440void Yrazgrad_xinter()
441{
442         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
443                 for (int Ywt=0; Ywt<YNBALLTIME_T_float; ++Ywt){
444                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
445                                 Yxinter(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
446}/*M1_SETAT*/ 
447void Ysetstate_xinter(double val)
448{
449         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
450                 for (int Ywt=0; Ywt<YNBALLTIME_T_float;  ++Ywt){
451                         for (int Yws=0; Yws<YNBS_xinter; ++Yws){
452                                 Yxinter(Yw1)->Ystate[Ywt][Yws] = val;}}}
453}/*M1_YIOUT*/ 
454void Yio_xinter(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)       
455{  Yiorwf ("xinter", Yws, Yw1, Yw2, Yw3, Ywt, &YS_xinter(Yws, Yw1, Ywt), val);
456}/*M1_CREY*/ 
457void Ycreate_xinter()   
458{
459         for (int Yw1=0; Yw1<YA1_S_float; ++Yw1){
460                 if ((Yxinter(Yw1) = new Yaoxinter ())==NULL) Ycreate_errnew();}
461}/*M2_TBTOG   */ 
462void YtabTOgrad_u(YREAL tab[])
463{
464         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
465                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
466                         for (int Yws=0; Yws<YNBS_u; ++Yws){
467                                 YG_u(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}}
468}/*M2_GEQPD */ 
469void YgradEQPdelta_u(int frompdt, int topdt, double pfact)
470{
471         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
472                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
473                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
474                         for (int Yws=0; Yws<YNBS_u; ++Yws){
475                                 YG_u(Yws, Yw1, Yw2) = YD_u(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
476}/*M2_DEQPS */ 
477void YdeltaEQPstate_u(int frompdt, int topdt, double pfact)
478{
479         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
480                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
481                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
482                         for (int Yws=0; Yws<YNBS_u; ++Yws){
483                                 YD_u(Yws, Yw1, Yw2, Ywt) = YS_u(Yws, Yw1, Yw2) * pfact;}}}}
484}/*M2_DEQPG */ 
485void YdeltaEQPgrad_u(int frompdt, int topdt, double pfact)
486{
487         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
488                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
489                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
490                         for (int Yws=0; Yws<YNBS_u; ++Yws){
491                                 YD_u(Yws, Yw1, Yw2, Ywt) = YG_u(Yws, Yw1, Yw2) * pfact;}}}}
492}/*M2_SEQPD */ 
493void YstateEQPdelta_u(int frompdt, int topdt, double pfact)
494{
495         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
496                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
497                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
498                         for (int Yws=0; Yws<YNBS_u; ++Yws){
499                                 YS_u(Yws, Yw1, Yw2) = YD_u(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
500}/*M2_SEQPOD */ 
501void YstateEQPOdelta_u(int frompdt, int topdt, double pfact, char *codop)
502{
503         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
504                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
505                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
506                         for (int Yws=0; Yws<YNBS_u; ++Yws){
507                                 YS_u(Yws, Yw1, Yw2) = YD_u(Yws, Yw1, Yw2, Ywt) * (pfact*(1+Ygetval(codop)));}}}}
508}/*M2_SEQAPTD */ 
509void YstateEQAPTdelta_u(int frompdt, int topdt, double pfact, YREAL tab[])
510{
511         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
512                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
513                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
514                         for (int Yws=0; Yws<YNBS_u; ++Yws){
515                                 YS_u(Yws, Yw1, Yw2) = YD_u(Yws, Yw1, Yw2, Ywt) + pfact * tab[Y3windice++];}}}}
516}/*M2_GEQPS */ 
517void YgradEQPstate_u(double pfact)
518{
519         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
520                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
521                         for (int Yws=0; Yws<YNBS_u; ++Yws){
522                                 YG_u(Yws, Yw1, Yw2) = YS_u(Yws, Yw1, Yw2) * pfact;}}}
523}/*M2_GEQPOS */ 
524void YgradEQPOstate_u(double pfact, char *codop)
525{
526         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
527                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
528                         for (int Yws=0; Yws<YNBS_u; ++Yws){
529                                 YG_u(Yws, Yw1, Yw2) = YS_u(Yws, Yw1, Yw2) * (pfact*(1+Ygetval(codop)));}}}
530}/*M2_STOTB   */ 
531void YstateTOtab_u(YREAL tab[])
532{
533         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
534                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
535                         for (int Yws=0; Yws<YNBS_u; ++Yws){
536                                 tab[Y3windice] = YS_u(Yws, Yw1, Yw2); ++Y3windice;}}}
537}/*M2_GTOTB   */ 
538void YgradTOtab_u(YREAL tab[])
539{
540         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
541                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
542                         for (int Yws=0; Yws<YNBS_u; ++Yws){
543                                 tab[Y3windice] = YG_u(Yws, Yw1, Yw2); ++Y3windice;}}}
544}/*M2_RGRAD*/ 
545void Yrazgrad_u()
546{
547         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
548                 for (int Yw2=0; Yw2<YA2_S_euler; ++Yw2){
549                         for (int Yws=0; Yws<YNBS_u; ++Yws){
550                                 Yu(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}}
551}/*M2_SETA*/ 
552void Ysetstate_u(double val)
553{
554         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
555                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
556                         for (int Yws=0; Yws<YNBS_u; ++Yws){
557                                 Yu(Yw1, Yw2)->Ystate[Yws] = val;}}}
558}/*M2_YIOTU*/ 
559void Yio_u(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)     
560{  Yiorwf ("u", Yws, Yw1, Yw2, Yw3, Ywt, &YS_u(Yws, Yw1, Yw2), val);
561}/*M2_CREY*/ 
562void Ycreate_u() 
563{
564         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
565                 for (int Yw2=0; Yw2<YA2_S_euler; ++Yw2){
566                         if ((Yu(Yw1, Yw2)= new Yaou ())==NULL) Ycreate_errnew();}}
567}/*M2_TBTOG   */ 
568void YtabTOgrad_v(YREAL tab[])
569{
570         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
571                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
572                         for (int Yws=0; Yws<YNBS_v; ++Yws){
573                                 YG_v(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}}
574}/*M2_GEQPD */ 
575void YgradEQPdelta_v(int frompdt, int topdt, double pfact)
576{
577         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
578                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
579                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
580                         for (int Yws=0; Yws<YNBS_v; ++Yws){
581                                 YG_v(Yws, Yw1, Yw2) = YD_v(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
582}/*M2_DEQPS */ 
583void YdeltaEQPstate_v(int frompdt, int topdt, double pfact)
584{
585         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
586                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
587                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
588                         for (int Yws=0; Yws<YNBS_v; ++Yws){
589                                 YD_v(Yws, Yw1, Yw2, Ywt) = YS_v(Yws, Yw1, Yw2) * pfact;}}}}
590}/*M2_DEQPG */ 
591void YdeltaEQPgrad_v(int frompdt, int topdt, double pfact)
592{
593         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
594                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
595                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
596                         for (int Yws=0; Yws<YNBS_v; ++Yws){
597                                 YD_v(Yws, Yw1, Yw2, Ywt) = YG_v(Yws, Yw1, Yw2) * pfact;}}}}
598}/*M2_SEQPD */ 
599void YstateEQPdelta_v(int frompdt, int topdt, double pfact)
600{
601         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
602                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
603                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
604                         for (int Yws=0; Yws<YNBS_v; ++Yws){
605                                 YS_v(Yws, Yw1, Yw2) = YD_v(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
606}/*M2_SEQPOD */ 
607void YstateEQPOdelta_v(int frompdt, int topdt, double pfact, char *codop)
608{
609         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
610                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
611                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
612                         for (int Yws=0; Yws<YNBS_v; ++Yws){
613                                 YS_v(Yws, Yw1, Yw2) = YD_v(Yws, Yw1, Yw2, Ywt) * (pfact*(1+Ygetval(codop)));}}}}
614}/*M2_SEQAPTD */ 
615void YstateEQAPTdelta_v(int frompdt, int topdt, double pfact, YREAL tab[])
616{
617         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
618                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
619                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
620                         for (int Yws=0; Yws<YNBS_v; ++Yws){
621                                 YS_v(Yws, Yw1, Yw2) = YD_v(Yws, Yw1, Yw2, Ywt) + pfact * tab[Y3windice++];}}}}
622}/*M2_GEQPS */ 
623void YgradEQPstate_v(double pfact)
624{
625         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
626                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
627                         for (int Yws=0; Yws<YNBS_v; ++Yws){
628                                 YG_v(Yws, Yw1, Yw2) = YS_v(Yws, Yw1, Yw2) * pfact;}}}
629}/*M2_GEQPOS */ 
630void YgradEQPOstate_v(double pfact, char *codop)
631{
632         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
633                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
634                         for (int Yws=0; Yws<YNBS_v; ++Yws){
635                                 YG_v(Yws, Yw1, Yw2) = YS_v(Yws, Yw1, Yw2) * (pfact*(1+Ygetval(codop)));}}}
636}/*M2_STOTB   */ 
637void YstateTOtab_v(YREAL tab[])
638{
639         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
640                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
641                         for (int Yws=0; Yws<YNBS_v; ++Yws){
642                                 tab[Y3windice] = YS_v(Yws, Yw1, Yw2); ++Y3windice;}}}
643}/*M2_GTOTB   */ 
644void YgradTOtab_v(YREAL tab[])
645{
646         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
647                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
648                         for (int Yws=0; Yws<YNBS_v; ++Yws){
649                                 tab[Y3windice] = YG_v(Yws, Yw1, Yw2); ++Y3windice;}}}
650}/*M2_RGRAD*/ 
651void Yrazgrad_v()
652{
653         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
654                 for (int Yw2=0; Yw2<YA2_S_euler; ++Yw2){
655                         for (int Yws=0; Yws<YNBS_v; ++Yws){
656                                 Yv(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}}
657}/*M2_SETA*/ 
658void Ysetstate_v(double val)
659{
660         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
661                 for (int Yw2=0; Yw2<YA2_S_euler;  ++Yw2){
662                         for (int Yws=0; Yws<YNBS_v; ++Yws){
663                                 Yv(Yw1, Yw2)->Ystate[Yws] = val;}}}
664}/*M2_YIOTU*/ 
665void Yio_v(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)     
666{  Yiorwf ("v", Yws, Yw1, Yw2, Yw3, Ywt, &YS_v(Yws, Yw1, Yw2), val);
667}/*M2_CREY*/ 
668void Ycreate_v() 
669{
670         for (int Yw1=0; Yw1<YA1_S_euler; ++Yw1){
671                 for (int Yw2=0; Yw2<YA2_S_euler; ++Yw2){
672                         if ((Yv(Yw1, Yw2)= new Yaov ())==NULL) Ycreate_errnew();}}
673}/*M3_TBTOGT  */ 
674void YtabTOgrad_locate(int frompdt, int topdt, YREAL tab[])
675{
676         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
677                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
678                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
679                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
680                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
681                                                 YG_locate(Yws, Yw1, Yw2, Yw3, Ywt) = tab[Y3windice]; ++Y3windice;}}}}}
682}/*M3_GEQPDT*/ 
683void YgradEQPdelta_locate(int frompdt, int topdt, double pfact)
684{
685         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
686                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
687                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
688                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
689                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
690                                                 YG_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
691}/*M3_DEQPST*/ 
692void YdeltaEQPstate_locate(int frompdt, int topdt, double pfact)
693{
694         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
695                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
696                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
697                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
698                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
699                                                 YD_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YS_locate(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
700}/*M3_DEQPGT*/ 
701void YdeltaEQPgrad_locate(int frompdt, int topdt, double pfact)
702{
703         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
704                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
705                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
706                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
707                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
708                                                 YD_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YG_locate(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
709}/*M3_SEQPDT*/ 
710void YstateEQPdelta_locate(int frompdt, int topdt, double pfact)
711{
712         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
713                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
714                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
715                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
716                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
717                                                 YS_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
718}/*M3_SEQPODT*/ 
719void YstateEQPOdelta_locate(int frompdt, int topdt, double pfact, char *codop)
720{
721         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
722                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
723                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
724                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
725                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
726                                                 YS_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate(Yws, Yw1, Yw2, Yw3, Ywt) * (pfact*(1+Ygetval(codop)));}}}}}
727}/*M3_SEQAPTDT*/ 
728void YstateEQAPTdelta_locate(int frompdt, int topdt, double pfact, YREAL tab[])
729{
730         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
731                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
732                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
733                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
734                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
735                                                 YS_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate(Yws, Yw1, Yw2, Yw3, Ywt) + pfact * tab[Y3windice++];}}}}}
736}/*M3_GEQPST*/ 
737void YgradEQPstate_locate(int frompdt, int topdt, double pfact)
738{
739         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
740                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
741                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
742                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
743                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
744                                                 YG_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YS_locate(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
745}/*M3_GEQPOST*/ 
746void YgradEQPOstate_locate(int frompdt, int topdt, double pfact, char *codop)
747{
748         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
749                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
750                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
751                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
752                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
753                                                 YG_locate(Yws, Yw1, Yw2, Yw3, Ywt) = YS_locate(Yws, Yw1, Yw2, Yw3, Ywt) * (pfact*(1+Ygetval(codop)));}}}}}
754}/*M3_STOTBT  */ 
755void YstateTOtab_locate(int frompdt, int topdt, YREAL tab[])
756{
757         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
758                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
759                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
760                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
761                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
762                                                 tab[Y3windice] = YS_locate(Yws, Yw1, Yw2, Yw3, Ywt); ++Y3windice;}}}}}
763}/*M3_GTOTBT  */ 
764void YgradTOtab_locate(int frompdt, int topdt, YREAL tab[])
765{
766         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
767                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
768                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
769                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
770                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
771                                                 tab[Y3windice] = YG_locate(Yws, Yw1, Yw2, Yw3, Ywt); ++Y3windice;}}}}}
772}/*M3_RGRADT*/ 
773void Yrazgrad_locate()
774{
775         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
776                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
777                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
778                                 for (int Ywt=0; Ywt<YNBALLTIME_T_float; ++Ywt){
779                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
780                                                 Ylocate(Yw1, Yw2, Yw3)->Ygrad[Ywt][Yws] = 0.0;}}}}}
781}/*M3_SETAT*/ 
782void Ysetstate_locate(double val)
783{
784         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
785                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
786                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
787                                 for (int Ywt=0; Ywt<YNBALLTIME_T_float; ++Ywt){
788                                         for (int Yws=0; Yws<YNBS_locate; ++Yws){
789                                                 Ylocate(Yw1, Yw2, Yw3)->Ystate[Ywt][Yws] = val;}}}}}
790}/*M3_YIOUT*/ 
791void Yio_locate(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)       
792{  Yiorwf ("locate", Yws, Yw1, Yw2, Yw3, Ywt, &YS_locate(Yws, Yw1, Yw2, Yw3, Ywt), val);
793}/*M00_GTEST */
794int Ytestdf_locate (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], locate *Modul)
795{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
796         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
797         if (!Ydftestijkt(Yid_locate)) return(0); 
798         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
799/*M01_GTESTT*/
800         Modul->forward( Yting[0], Yting[1] );
801         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
802         Modul->backward( Yting[0], Yting[1] );
803         for (wk=0; wk<ynbi; ++wk)
804         {       svx=yinput[wk];
805                         wdxk = svx*pdx;
806                         if (modop||svx==0.0) wdxk = pdx; 
807                         yinput[wk] += wdxk;
808                         Modul->forward( Yting[0], Yting[1] );
809                         for (wj=0; wj<ynbs; ++wj)
810                         { wJjk = Yjac[wj][wk];
811                                 wyj = ystate[YTemps*ynbs + wj];
812                                 wDjk = (wyj - wSj[wj]) / wdxk;
813                                 wdifjk = fabs(wDjk - wJjk);
814                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
815                                 if(resKo || !KeKo) 
816                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
817                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
818                                } 
819                          yinput[wk] = svx;
820         }
821         return(nbKo);
822}/*M3_CREU*/ 
823void Ycreate_locate() 
824{
825         for (int Yw1=0; Yw1<YA1_S_eulerlocate; ++Yw1){
826                 for (int Yw2=0; Yw2<YA2_S_eulerlocate; ++Yw2){
827                         for (int Yw3=0; Yw3<YA3_S_eulerlocate; ++Yw3){
828                                 if ((Ylocate(Yw1, Yw2, Yw3) = new locate ())==NULL) Ycreate_errnew();}}}
829}/*M1_TBTOGT  */ 
830void YtabTOgrad_r_float_d(int frompdt, int topdt, YREAL tab[])
831{
832         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
833                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
834                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
835                                 YG_r_float_d(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
836}/*M1_GEQPDT*/ 
837void YgradEQPdelta_r_float_d(int frompdt, int topdt, double pfact)
838{
839         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
840                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
841                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
842                                 YG_r_float_d(Yws, Yw1, Ywt) = YD_r_float_d(Yws, Yw1, Ywt) * pfact;}}}
843}/*M1_DEQPST*/ 
844void YdeltaEQPstate_r_float_d(int frompdt, int topdt, double pfact)
845{
846         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
847                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
848                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
849                                 YD_r_float_d(Yws, Yw1, Ywt) = YS_r_float_d(Yws, Yw1, Ywt) * pfact;}}}
850}/*M1_DEQPGT*/ 
851void YdeltaEQPgrad_r_float_d(int frompdt, int topdt, double pfact)
852{
853         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
854                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
855                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
856                                 YD_r_float_d(Yws, Yw1, Ywt) = YG_r_float_d(Yws, Yw1, Ywt) * pfact;}}}
857}/*M1_SEQPDT*/ 
858void YstateEQPdelta_r_float_d(int frompdt, int topdt, double pfact)
859{
860         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
861                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
862                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
863                                 YS_r_float_d(Yws, Yw1, Ywt) = YD_r_float_d(Yws, Yw1, Ywt) * pfact;}}}
864}/*M1_SEQPODT*/ 
865void YstateEQPOdelta_r_float_d(int frompdt, int topdt, double pfact, char *codop)
866{
867         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
868                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
869                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
870                                 YS_r_float_d(Yws, Yw1, Ywt) = YD_r_float_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
871}/*M1_SEQAPTDT*/ 
872void YstateEQAPTdelta_r_float_d(int frompdt, int topdt, double pfact, YREAL tab[])
873{
874         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
875                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
876                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
877                                 YS_r_float_d(Yws, Yw1, Ywt) = YD_r_float_d(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
878}/*M1_GEQPST*/ 
879void YgradEQPstate_r_float_d(int frompdt, int topdt, double pfact)
880{
881         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
882                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
883                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
884                                 YG_r_float_d(Yws, Yw1, Ywt) = YS_r_float_d(Yws, Yw1, Ywt) * pfact;}}}
885}/*M1_GEQPOST*/ 
886void YgradEQPOstate_r_float_d(int frompdt, int topdt, double pfact, char *codop)
887{
888         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
889                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
890                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
891                                 YG_r_float_d(Yws, Yw1, Ywt) = YS_r_float_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
892}/*M1_STOTBT  */ 
893void YstateTOtab_r_float_d(int frompdt, int topdt, YREAL tab[])
894{
895         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
896                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
897                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
898                                 tab[Y3windice] = YS_r_float_d(Yws, Yw1, Ywt); ++Y3windice;}}}
899}/*M1_GTOTBT  */ 
900void YgradTOtab_r_float_d(int frompdt, int topdt, YREAL tab[])
901{
902         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
903                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
904                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
905                                 tab[Y3windice] = YG_r_float_d(Yws, Yw1, Ywt); ++Y3windice;}}}
906}/*M1_RGRADT*/ 
907void Yrazgrad_r_float_d()
908{
909         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
910                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d; ++Ywt){
911                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
912                                 Yr_float_d(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
913}/*M1_SETAT*/ 
914void Ysetstate_r_float_d(double val)
915{
916         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
917                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d;  ++Ywt){
918                         for (int Yws=0; Yws<YNBS_r_float_d; ++Yws){
919                                 Yr_float_d(Yw1)->Ystate[Ywt][Yws] = val;}}}
920}/*M1_YIOUT*/ 
921void Yio_r_float_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)     
922{  Yiorwf ("r_float_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_r_float_d(Yws, Yw1, Ywt), val);
923}/*M00_GTEST */
924int Ytestdf_r_float_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], r_float_d *Modul)
925{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
926         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
927         if (!Ydftestijkt(Yid_r_float_d)) return(0); 
928         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
929/*M01_GTESTT*/
930         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
931         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
932         Modul->backward( Yting[0], Yting[1], Yting[2], Yting[3] );
933         for (wk=0; wk<ynbi; ++wk)
934         {       svx=yinput[wk];
935                         wdxk = svx*pdx;
936                         if (modop||svx==0.0) wdxk = pdx; 
937                         yinput[wk] += wdxk;
938                         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
939                         for (wj=0; wj<ynbs; ++wj)
940                         { wJjk = Yjac[wj][wk];
941                                 wyj = ystate[YTemps*ynbs + wj];
942                                 wDjk = (wyj - wSj[wj]) / wdxk;
943                                 wdifjk = fabs(wDjk - wJjk);
944                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
945                                 if(resKo || !KeKo) 
946                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
947                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
948                                } 
949                          yinput[wk] = svx;
950         }
951         return(nbKo);
952}/*M1_CREU*/ 
953void Ycreate_r_float_d() 
954{
955         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
956                 if ((Yr_float_d(Yw1) = new r_float_d ())==NULL) Ycreate_errnew();}
957}/*M1_TBTOGT  */ 
958void YtabTOgrad_ur_d(int frompdt, int topdt, YREAL tab[])
959{
960         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
961                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
962                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
963                                 YG_ur_d(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
964}/*M1_GEQPDT*/ 
965void YgradEQPdelta_ur_d(int frompdt, int topdt, double pfact)
966{
967         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
968                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
969                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
970                                 YG_ur_d(Yws, Yw1, Ywt) = YD_ur_d(Yws, Yw1, Ywt) * pfact;}}}
971}/*M1_DEQPST*/ 
972void YdeltaEQPstate_ur_d(int frompdt, int topdt, double pfact)
973{
974         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
975                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
976                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
977                                 YD_ur_d(Yws, Yw1, Ywt) = YS_ur_d(Yws, Yw1, Ywt) * pfact;}}}
978}/*M1_DEQPGT*/ 
979void YdeltaEQPgrad_ur_d(int frompdt, int topdt, double pfact)
980{
981         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
982                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
983                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
984                                 YD_ur_d(Yws, Yw1, Ywt) = YG_ur_d(Yws, Yw1, Ywt) * pfact;}}}
985}/*M1_SEQPDT*/ 
986void YstateEQPdelta_ur_d(int frompdt, int topdt, double pfact)
987{
988         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
989                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
990                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
991                                 YS_ur_d(Yws, Yw1, Ywt) = YD_ur_d(Yws, Yw1, Ywt) * pfact;}}}
992}/*M1_SEQPODT*/ 
993void YstateEQPOdelta_ur_d(int frompdt, int topdt, double pfact, char *codop)
994{
995         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
996                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
997                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
998                                 YS_ur_d(Yws, Yw1, Ywt) = YD_ur_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
999}/*M1_SEQAPTDT*/ 
1000void YstateEQAPTdelta_ur_d(int frompdt, int topdt, double pfact, YREAL tab[])
1001{
1002         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1003                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1004                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1005                                 YS_ur_d(Yws, Yw1, Ywt) = YD_ur_d(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
1006}/*M1_GEQPST*/ 
1007void YgradEQPstate_ur_d(int frompdt, int topdt, double pfact)
1008{
1009         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1010                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1011                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1012                                 YG_ur_d(Yws, Yw1, Ywt) = YS_ur_d(Yws, Yw1, Ywt) * pfact;}}}
1013}/*M1_GEQPOST*/ 
1014void YgradEQPOstate_ur_d(int frompdt, int topdt, double pfact, char *codop)
1015{
1016         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1017                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1018                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1019                                 YG_ur_d(Yws, Yw1, Ywt) = YS_ur_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
1020}/*M1_STOTBT  */ 
1021void YstateTOtab_ur_d(int frompdt, int topdt, YREAL tab[])
1022{
1023         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1024                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1025                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1026                                 tab[Y3windice] = YS_ur_d(Yws, Yw1, Ywt); ++Y3windice;}}}
1027}/*M1_GTOTBT  */ 
1028void YgradTOtab_ur_d(int frompdt, int topdt, YREAL tab[])
1029{
1030         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1031                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1032                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1033                                 tab[Y3windice] = YG_ur_d(Yws, Yw1, Ywt); ++Y3windice;}}}
1034}/*M1_RGRADT*/ 
1035void Yrazgrad_ur_d()
1036{
1037         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1038                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d; ++Ywt){
1039                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1040                                 Yur_d(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
1041}/*M1_SETAT*/ 
1042void Ysetstate_ur_d(double val)
1043{
1044         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1045                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d;  ++Ywt){
1046                         for (int Yws=0; Yws<YNBS_ur_d; ++Yws){
1047                                 Yur_d(Yw1)->Ystate[Ywt][Yws] = val;}}}
1048}/*M1_YIOUT*/ 
1049void Yio_ur_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 
1050{  Yiorwf ("ur_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ur_d(Yws, Yw1, Ywt), val);
1051}/*M00_GTEST */
1052int Ytestdf_ur_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], ur_d *Modul)
1053{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
1054         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
1055         if (!Ydftestijkt(Yid_ur_d)) return(0); 
1056         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
1057/*M01_GTESTT*/
1058         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
1059         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
1060         Modul->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
1061         for (wk=0; wk<ynbi; ++wk)
1062         {       svx=yinput[wk];
1063                         wdxk = svx*pdx;
1064                         if (modop||svx==0.0) wdxk = pdx; 
1065                         yinput[wk] += wdxk;
1066                         Modul->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
1067                         for (wj=0; wj<ynbs; ++wj)
1068                         { wJjk = Yjac[wj][wk];
1069                                 wyj = ystate[YTemps*ynbs + wj];
1070                                 wDjk = (wyj - wSj[wj]) / wdxk;
1071                                 wdifjk = fabs(wDjk - wJjk);
1072                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
1073                                 if(resKo || !KeKo) 
1074                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
1075                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
1076                                } 
1077                          yinput[wk] = svx;
1078         }
1079         return(nbKo);
1080}/*M1_CREU*/ 
1081void Ycreate_ur_d() 
1082{
1083         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1084                 if ((Yur_d(Yw1) = new ur_d ())==NULL) Ycreate_errnew();}
1085}/*M1_TBTOGT  */ 
1086void YtabTOgrad_uinter_d(int frompdt, int topdt, YREAL tab[])
1087{
1088         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1089                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1090                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1091                                 YG_uinter_d(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
1092}/*M1_GEQPDT*/ 
1093void YgradEQPdelta_uinter_d(int frompdt, int topdt, double pfact)
1094{
1095         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1096                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1097                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1098                                 YG_uinter_d(Yws, Yw1, Ywt) = YD_uinter_d(Yws, Yw1, Ywt) * pfact;}}}
1099}/*M1_DEQPST*/ 
1100void YdeltaEQPstate_uinter_d(int frompdt, int topdt, double pfact)
1101{
1102         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1103                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1104                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1105                                 YD_uinter_d(Yws, Yw1, Ywt) = YS_uinter_d(Yws, Yw1, Ywt) * pfact;}}}
1106}/*M1_DEQPGT*/ 
1107void YdeltaEQPgrad_uinter_d(int frompdt, int topdt, double pfact)
1108{
1109         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1110                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1111                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1112                                 YD_uinter_d(Yws, Yw1, Ywt) = YG_uinter_d(Yws, Yw1, Ywt) * pfact;}}}
1113}/*M1_SEQPDT*/ 
1114void YstateEQPdelta_uinter_d(int frompdt, int topdt, double pfact)
1115{
1116         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1117                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1118                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1119                                 YS_uinter_d(Yws, Yw1, Ywt) = YD_uinter_d(Yws, Yw1, Ywt) * pfact;}}}
1120}/*M1_SEQPODT*/ 
1121void YstateEQPOdelta_uinter_d(int frompdt, int topdt, double pfact, char *codop)
1122{
1123         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1124                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1125                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1126                                 YS_uinter_d(Yws, Yw1, Ywt) = YD_uinter_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
1127}/*M1_SEQAPTDT*/ 
1128void YstateEQAPTdelta_uinter_d(int frompdt, int topdt, double pfact, YREAL tab[])
1129{
1130         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1131                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1132                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1133                                 YS_uinter_d(Yws, Yw1, Ywt) = YD_uinter_d(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
1134}/*M1_GEQPST*/ 
1135void YgradEQPstate_uinter_d(int frompdt, int topdt, double pfact)
1136{
1137         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1138                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1139                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1140                                 YG_uinter_d(Yws, Yw1, Ywt) = YS_uinter_d(Yws, Yw1, Ywt) * pfact;}}}
1141}/*M1_GEQPOST*/ 
1142void YgradEQPOstate_uinter_d(int frompdt, int topdt, double pfact, char *codop)
1143{
1144         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1145                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1146                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1147                                 YG_uinter_d(Yws, Yw1, Ywt) = YS_uinter_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
1148}/*M1_STOTBT  */ 
1149void YstateTOtab_uinter_d(int frompdt, int topdt, YREAL tab[])
1150{
1151         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1152                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1153                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1154                                 tab[Y3windice] = YS_uinter_d(Yws, Yw1, Ywt); ++Y3windice;}}}
1155}/*M1_GTOTBT  */ 
1156void YgradTOtab_uinter_d(int frompdt, int topdt, YREAL tab[])
1157{
1158         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1159                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1160                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1161                                 tab[Y3windice] = YG_uinter_d(Yws, Yw1, Ywt); ++Y3windice;}}}
1162}/*M1_RGRADT*/ 
1163void Yrazgrad_uinter_d()
1164{
1165         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1166                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d; ++Ywt){
1167                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1168                                 Yuinter_d(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
1169}/*M1_SETAT*/ 
1170void Ysetstate_uinter_d(double val)
1171{
1172         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1173                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d;  ++Ywt){
1174                         for (int Yws=0; Yws<YNBS_uinter_d; ++Yws){
1175                                 Yuinter_d(Yw1)->Ystate[Ywt][Yws] = val;}}}
1176}/*M1_YIOUT*/ 
1177void Yio_uinter_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)     
1178{  Yiorwf ("uinter_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_uinter_d(Yws, Yw1, Ywt), val);
1179}/*M1_CREY*/ 
1180void Ycreate_uinter_d()         
1181{
1182         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1183                 if ((Yuinter_d(Yw1) = new Yaouinter_d ())==NULL) Ycreate_errnew();}
1184}/*M2_ADJUS*/ 
1185void Yadjust_u_d()
1186{
1187         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1) 
1188         for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2) 
1189         for (int Yws=0; Yws<YNBS_u_d; ++Yws) 
1190         { Ystate_u_d(Yws, Yw1, Yw2) -= Yepsi_u_d(Yws, Yw1, Yw2) * Ygrad_u_d(Yws, Yw1, Yw2);
1191        }
1192}/*M2_GCTOTB  */ 
1193void YgradCTOtab_u_d(YREAL tab[])
1194{
1195         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1196                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1197                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1198                                 tab[Y3windice] += YG_u_d(Yws, Yw1, Yw2); ++Y3windice;}}}
1199}/*M2_VSTA*/ 
1200void Y3valstate_u_d()
1201{
1202         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1203                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1204                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1205                                 Y3x[Y3windice] = Yu_d(Yw1, Yw2)->Ystate[Yws]; ++Y3windice;}}}
1206}/*M2_GSTA*/ 
1207void Y3getstate_u_d(float x[])
1208{
1209         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1210                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1211                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1212                                 Yu_d(Yw1, Yw2)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}}}
1213}/*M2_VGRAD*/ 
1214void Y3valgrad_u_d(float g[])
1215{
1216         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1217                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1218                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1219                                 g[Y3windice] = Yu_d(Yw1, Yw2)->Ygrad[Yws]; ++Y3windice;}}}
1220}/*M2_TBTOG   */ 
1221void YtabTOgrad_u_d(YREAL tab[])
1222{
1223         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1224                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1225                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1226                                 YG_u_d(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}}
1227}/*M2_GEQPD */ 
1228void YgradEQPdelta_u_d(int frompdt, int topdt, double pfact)
1229{
1230         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1231                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1232                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1233                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1234                                 YG_u_d(Yws, Yw1, Yw2) = YD_u_d(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
1235}/*M2_DEQPS */ 
1236void YdeltaEQPstate_u_d(int frompdt, int topdt, double pfact)
1237{
1238         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1239                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1240                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1241                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1242                                 YD_u_d(Yws, Yw1, Yw2, Ywt) = YS_u_d(Yws, Yw1, Yw2) * pfact;}}}}
1243}/*M2_DEQPG */ 
1244void YdeltaEQPgrad_u_d(int frompdt, int topdt, double pfact)
1245{
1246         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1247                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1248                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1249                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1250                                 YD_u_d(Yws, Yw1, Yw2, Ywt) = YG_u_d(Yws, Yw1, Yw2) * pfact;}}}}
1251}/*M2_SEQPD */ 
1252void YstateEQPdelta_u_d(int frompdt, int topdt, double pfact)
1253{
1254         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1255                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1256                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1257                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1258                                 YS_u_d(Yws, Yw1, Yw2) = YD_u_d(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
1259}/*M2_SEQPOD */ 
1260void YstateEQPOdelta_u_d(int frompdt, int topdt, double pfact, char *codop)
1261{
1262         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1263                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1264                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1265                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1266                                 YS_u_d(Yws, Yw1, Yw2) = YD_u_d(Yws, Yw1, Yw2, Ywt) * (pfact*(1+Ygetval(codop)));}}}}
1267}/*M2_SEQAPTD */ 
1268void YstateEQAPTdelta_u_d(int frompdt, int topdt, double pfact, YREAL tab[])
1269{
1270         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1271                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1272                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1273                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1274                                 YS_u_d(Yws, Yw1, Yw2) = YD_u_d(Yws, Yw1, Yw2, Ywt) + pfact * tab[Y3windice++];}}}}
1275}/*M2_GEQPS */ 
1276void YgradEQPstate_u_d(double pfact)
1277{
1278         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1279                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1280                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1281                                 YG_u_d(Yws, Yw1, Yw2) = YS_u_d(Yws, Yw1, Yw2) * pfact;}}}
1282}/*M2_GEQPOS */ 
1283void YgradEQPOstate_u_d(double pfact, char *codop)
1284{
1285         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1286                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1287                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1288                                 YG_u_d(Yws, Yw1, Yw2) = YS_u_d(Yws, Yw1, Yw2) * (pfact*(1+Ygetval(codop)));}}}
1289}/*M2_STOTB   */ 
1290void YstateTOtab_u_d(YREAL tab[])
1291{
1292         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1293                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1294                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1295                                 tab[Y3windice] = YS_u_d(Yws, Yw1, Yw2); ++Y3windice;}}}
1296}/*M2_GTOTB   */ 
1297void YgradTOtab_u_d(YREAL tab[])
1298{
1299         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1300                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1301                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1302                                 tab[Y3windice] = YG_u_d(Yws, Yw1, Yw2); ++Y3windice;}}}
1303}/*M2_RGRAD*/ 
1304void Yrazgrad_u_d()
1305{
1306         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1307                 for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2){
1308                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1309                                 Yu_d(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}}
1310}/*M2_SETA*/ 
1311void Ysetstate_u_d(double val)
1312{
1313         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1314                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1315                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1316                                 Yu_d(Yw1, Yw2)->Ystate[Yws] = val;}}}
1317}/*M2_YIOTU*/ 
1318void Yio_u_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)   
1319{  Yiorwf ("u_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_u_d(Yws, Yw1, Yw2), val);
1320}/*M0_OUTOB*/ 
1321int Youtoobs_u_d(YioKind yiokind, int Yws, int Ywt, int arbpdt)
1322{
1323         Yaobs.time = arbpdt;
1324         Yaobs.imod = Yimod("u_d");
1325         Yaobs.smod = Yws;/*M2_OUTOB*/ 
1326         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1)
1327         for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2)
1328         {      if(select_io(yiokind, "u_d", Yws, Yw1, Yw2, -1, Ywt, &Ystate_u_d(Yws, Yw1, Yw2)))
1329                        {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = -1;
1330                                Yaobs.vobs = Ystate_u_d(Yws, Yw1, Yw2);
1331                                if(!Yobs_insert (&Yaobs)) return(0);
1332                        }
1333         }/*M9_OUTOB*/ 
1334         return(1);
1335}/*M2_SEPS*/ 
1336void Ysetepsi_u_d(double val)
1337{
1338         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1339                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1340                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1341                                 Yu_d(Yw1, Yw2)->Yepsi[Yws] = val;}}}
1342}/*M2_CREY*/ 
1343void Ycreate_u_d() 
1344{
1345         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1346                 for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2){
1347                         if ((Yu_d(Yw1, Yw2)= new Yaou_d ())==NULL) Ycreate_errnew();}}
1348}/*M2_SWISH*/ 
1349void Ysetwish_u_d(double val)
1350{
1351         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1352                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1353                         for (int Yws=0; Yws<YNBS_u_d; ++Yws){
1354                                 Ywish_u_d(Yws, Yw1, Yw2) = val;}}}
1355}/*M2_ADJUS*/ 
1356void Yadjust_v_d()
1357{
1358         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1) 
1359         for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2) 
1360         for (int Yws=0; Yws<YNBS_v_d; ++Yws) 
1361         { Ystate_v_d(Yws, Yw1, Yw2) -= Yepsi_v_d(Yws, Yw1, Yw2) * Ygrad_v_d(Yws, Yw1, Yw2);
1362        }
1363}/*M2_GCTOTB  */ 
1364void YgradCTOtab_v_d(YREAL tab[])
1365{
1366         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1367                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1368                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1369                                 tab[Y3windice] += YG_v_d(Yws, Yw1, Yw2); ++Y3windice;}}}
1370}/*M2_VSTA*/ 
1371void Y3valstate_v_d()
1372{
1373         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1374                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1375                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1376                                 Y3x[Y3windice] = Yv_d(Yw1, Yw2)->Ystate[Yws]; ++Y3windice;}}}
1377}/*M2_GSTA*/ 
1378void Y3getstate_v_d(float x[])
1379{
1380         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1381                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1382                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1383                                 Yv_d(Yw1, Yw2)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}}}
1384}/*M2_VGRAD*/ 
1385void Y3valgrad_v_d(float g[])
1386{
1387         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1388                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1389                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1390                                 g[Y3windice] = Yv_d(Yw1, Yw2)->Ygrad[Yws]; ++Y3windice;}}}
1391}/*M2_TBTOG   */ 
1392void YtabTOgrad_v_d(YREAL tab[])
1393{
1394         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1395                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1396                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1397                                 YG_v_d(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}}
1398}/*M2_GEQPD */ 
1399void YgradEQPdelta_v_d(int frompdt, int topdt, double pfact)
1400{
1401         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1402                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1403                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1404                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1405                                 YG_v_d(Yws, Yw1, Yw2) = YD_v_d(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
1406}/*M2_DEQPS */ 
1407void YdeltaEQPstate_v_d(int frompdt, int topdt, double pfact)
1408{
1409         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1410                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1411                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1412                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1413                                 YD_v_d(Yws, Yw1, Yw2, Ywt) = YS_v_d(Yws, Yw1, Yw2) * pfact;}}}}
1414}/*M2_DEQPG */ 
1415void YdeltaEQPgrad_v_d(int frompdt, int topdt, double pfact)
1416{
1417         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1418                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1419                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1420                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1421                                 YD_v_d(Yws, Yw1, Yw2, Ywt) = YG_v_d(Yws, Yw1, Yw2) * pfact;}}}}
1422}/*M2_SEQPD */ 
1423void YstateEQPdelta_v_d(int frompdt, int topdt, double pfact)
1424{
1425         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1426                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1427                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1428                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1429                                 YS_v_d(Yws, Yw1, Yw2) = YD_v_d(Yws, Yw1, Yw2, Ywt) * pfact;}}}}
1430}/*M2_SEQPOD */ 
1431void YstateEQPOdelta_v_d(int frompdt, int topdt, double pfact, char *codop)
1432{
1433         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1434                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1435                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1436                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1437                                 YS_v_d(Yws, Yw1, Yw2) = YD_v_d(Yws, Yw1, Yw2, Ywt) * (pfact*(1+Ygetval(codop)));}}}}
1438}/*M2_SEQAPTD */ 
1439void YstateEQAPTdelta_v_d(int frompdt, int topdt, double pfact, YREAL tab[])
1440{
1441         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1442                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1443                         for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1444                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1445                                 YS_v_d(Yws, Yw1, Yw2) = YD_v_d(Yws, Yw1, Yw2, Ywt) + pfact * tab[Y3windice++];}}}}
1446}/*M2_GEQPS */ 
1447void YgradEQPstate_v_d(double pfact)
1448{
1449         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1450                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1451                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1452                                 YG_v_d(Yws, Yw1, Yw2) = YS_v_d(Yws, Yw1, Yw2) * pfact;}}}
1453}/*M2_GEQPOS */ 
1454void YgradEQPOstate_v_d(double pfact, char *codop)
1455{
1456         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1457                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1458                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1459                                 YG_v_d(Yws, Yw1, Yw2) = YS_v_d(Yws, Yw1, Yw2) * (pfact*(1+Ygetval(codop)));}}}
1460}/*M2_STOTB   */ 
1461void YstateTOtab_v_d(YREAL tab[])
1462{
1463         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1464                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1465                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1466                                 tab[Y3windice] = YS_v_d(Yws, Yw1, Yw2); ++Y3windice;}}}
1467}/*M2_GTOTB   */ 
1468void YgradTOtab_v_d(YREAL tab[])
1469{
1470         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1471                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1472                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1473                                 tab[Y3windice] = YG_v_d(Yws, Yw1, Yw2); ++Y3windice;}}}
1474}/*M2_RGRAD*/ 
1475void Yrazgrad_v_d()
1476{
1477         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1478                 for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2){
1479                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1480                                 Yv_d(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}}
1481}/*M2_SETA*/ 
1482void Ysetstate_v_d(double val)
1483{
1484         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1485                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1486                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1487                                 Yv_d(Yw1, Yw2)->Ystate[Yws] = val;}}}
1488}/*M2_YIOTU*/ 
1489void Yio_v_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)   
1490{  Yiorwf ("v_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_v_d(Yws, Yw1, Yw2), val);
1491}/*M0_OUTOB*/ 
1492int Youtoobs_v_d(YioKind yiokind, int Yws, int Ywt, int arbpdt)
1493{
1494         Yaobs.time = arbpdt;
1495         Yaobs.imod = Yimod("v_d");
1496         Yaobs.smod = Yws;/*M2_OUTOB*/ 
1497         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1)
1498         for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2)
1499         {      if(select_io(yiokind, "v_d", Yws, Yw1, Yw2, -1, Ywt, &Ystate_v_d(Yws, Yw1, Yw2)))
1500                        {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = -1;
1501                                Yaobs.vobs = Ystate_v_d(Yws, Yw1, Yw2);
1502                                if(!Yobs_insert (&Yaobs)) return(0);
1503                        }
1504         }/*M9_OUTOB*/ 
1505         return(1);
1506}/*M2_SEPS*/ 
1507void Ysetepsi_v_d(double val)
1508{
1509         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1510                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1511                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1512                                 Yv_d(Yw1, Yw2)->Yepsi[Yws] = val;}}}
1513}/*M2_CREY*/ 
1514void Ycreate_v_d() 
1515{
1516         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1517                 for (int Yw2=0; Yw2<YA2_S_euler_d; ++Yw2){
1518                         if ((Yv_d(Yw1, Yw2)= new Yaov_d ())==NULL) Ycreate_errnew();}}
1519}/*M2_SWISH*/ 
1520void Ysetwish_v_d(double val)
1521{
1522         for (int Yw1=0; Yw1<YA1_S_euler_d; ++Yw1){
1523                 for (int Yw2=0; Yw2<YA2_S_euler_d;  ++Yw2){
1524                         for (int Yws=0; Yws<YNBS_v_d; ++Yws){
1525                                 Ywish_v_d(Yws, Yw1, Yw2) = val;}}}
1526}/*M3_TBTOGT  */ 
1527void YtabTOgrad_locate_d(int frompdt, int topdt, YREAL tab[])
1528{
1529         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1530                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1531                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1532                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1533                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1534                                                 YG_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = tab[Y3windice]; ++Y3windice;}}}}}
1535}/*M3_GEQPDT*/ 
1536void YgradEQPdelta_locate_d(int frompdt, int topdt, double pfact)
1537{
1538         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1539                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1540                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1541                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1542                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1543                                                 YG_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
1544}/*M3_DEQPST*/ 
1545void YdeltaEQPstate_locate_d(int frompdt, int topdt, double pfact)
1546{
1547         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1548                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1549                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1550                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1551                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1552                                                 YD_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
1553}/*M3_DEQPGT*/ 
1554void YdeltaEQPgrad_locate_d(int frompdt, int topdt, double pfact)
1555{
1556         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1557                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1558                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1559                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1560                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1561                                                 YD_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YG_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
1562}/*M3_SEQPDT*/ 
1563void YstateEQPdelta_locate_d(int frompdt, int topdt, double pfact)
1564{
1565         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1566                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1567                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1568                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1569                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1570                                                 YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
1571}/*M3_SEQPODT*/ 
1572void YstateEQPOdelta_locate_d(int frompdt, int topdt, double pfact, char *codop)
1573{
1574         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1575                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1576                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1577                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1578                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1579                                                 YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * (pfact*(1+Ygetval(codop)));}}}}}
1580}/*M3_SEQAPTDT*/ 
1581void YstateEQAPTdelta_locate_d(int frompdt, int topdt, double pfact, YREAL tab[])
1582{
1583         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1584                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1585                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1586                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1587                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1588                                                 YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YD_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) + pfact * tab[Y3windice++];}}}}}
1589}/*M3_GEQPST*/ 
1590void YgradEQPstate_locate_d(int frompdt, int topdt, double pfact)
1591{
1592         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1593                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1594                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1595                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1596                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1597                                                 YG_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * pfact;}}}}}
1598}/*M3_GEQPOST*/ 
1599void YgradEQPOstate_locate_d(int frompdt, int topdt, double pfact, char *codop)
1600{
1601         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1602                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1603                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1604                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1605                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1606                                                 YG_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) = YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt) * (pfact*(1+Ygetval(codop)));}}}}}
1607}/*M3_STOTBT  */ 
1608void YstateTOtab_locate_d(int frompdt, int topdt, YREAL tab[])
1609{
1610         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1611                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1612                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1613                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1614                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1615                                                 tab[Y3windice] = YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt); ++Y3windice;}}}}}
1616}/*M3_GTOTBT  */ 
1617void YgradTOtab_locate_d(int frompdt, int topdt, YREAL tab[])
1618{
1619         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1620                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1621                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1622                                 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){
1623                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1624                                                 tab[Y3windice] = YG_locate_d(Yws, Yw1, Yw2, Yw3, Ywt); ++Y3windice;}}}}}
1625}/*M3_RGRADT*/ 
1626void Yrazgrad_locate_d()
1627{
1628         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1629                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1630                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1631                                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d; ++Ywt){
1632                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1633                                                 Ylocate_d(Yw1, Yw2, Yw3)->Ygrad[Ywt][Yws] = 0.0;}}}}}
1634}/*M3_SETAT*/ 
1635void Ysetstate_locate_d(double val)
1636{
1637         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1638                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1639                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1640                                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d; ++Ywt){
1641                                         for (int Yws=0; Yws<YNBS_locate_d; ++Yws){
1642                                                 Ylocate_d(Yw1, Yw2, Yw3)->Ystate[Ywt][Yws] = val;}}}}}
1643}/*M3_YIOUT*/ 
1644void Yio_locate_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)     
1645{  Yiorwf ("locate_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_locate_d(Yws, Yw1, Yw2, Yw3, Ywt), val);
1646}/*M00_GTEST */
1647int Ytestdf_locate_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], locate_d *Modul)
1648{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
1649         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
1650         if (!Ydftestijkt(Yid_locate_d)) return(0); 
1651         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
1652/*M01_GTESTT*/
1653         Modul->forward( Yting[0], Yting[1] );
1654         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
1655         Modul->backward( Yting[0], Yting[1] );
1656         for (wk=0; wk<ynbi; ++wk)
1657         {       svx=yinput[wk];
1658                         wdxk = svx*pdx;
1659                         if (modop||svx==0.0) wdxk = pdx; 
1660                         yinput[wk] += wdxk;
1661                         Modul->forward( Yting[0], Yting[1] );
1662                         for (wj=0; wj<ynbs; ++wj)
1663                         { wJjk = Yjac[wj][wk];
1664                                 wyj = ystate[YTemps*ynbs + wj];
1665                                 wDjk = (wyj - wSj[wj]) / wdxk;
1666                                 wdifjk = fabs(wDjk - wJjk);
1667                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
1668                                 if(resKo || !KeKo) 
1669                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
1670                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
1671                                } 
1672                          yinput[wk] = svx;
1673         }
1674         return(nbKo);
1675}/*M3_CREU*/ 
1676void Ycreate_locate_d() 
1677{
1678         for (int Yw1=0; Yw1<YA1_S_eulerlocate_d; ++Yw1){
1679                 for (int Yw2=0; Yw2<YA2_S_eulerlocate_d; ++Yw2){
1680                         for (int Yw3=0; Yw3<YA3_S_eulerlocate_d; ++Yw3){
1681                                 if ((Ylocate_d(Yw1, Yw2, Yw3) = new locate_d ())==NULL) Ycreate_errnew();}}}
1682}/*M1_TBTOGT  */ 
1683void YtabTOgrad_r_cout_d(int frompdt, int topdt, YREAL tab[])
1684{
1685         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1686                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1687                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1688                                 YG_r_cout_d(Yws, Yw1, Ywt) = tab[Y3windice]; ++Y3windice;}}}
1689}/*M1_GEQPDT*/ 
1690void YgradEQPdelta_r_cout_d(int frompdt, int topdt, double pfact)
1691{
1692         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1693                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1694                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1695                                 YG_r_cout_d(Yws, Yw1, Ywt) = YD_r_cout_d(Yws, Yw1, Ywt) * pfact;}}}
1696}/*M1_DEQPST*/ 
1697void YdeltaEQPstate_r_cout_d(int frompdt, int topdt, double pfact)
1698{
1699         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1700                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1701                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1702                                 YD_r_cout_d(Yws, Yw1, Ywt) = YS_r_cout_d(Yws, Yw1, Ywt) * pfact;}}}
1703}/*M1_DEQPGT*/ 
1704void YdeltaEQPgrad_r_cout_d(int frompdt, int topdt, double pfact)
1705{
1706         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1707                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1708                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1709                                 YD_r_cout_d(Yws, Yw1, Ywt) = YG_r_cout_d(Yws, Yw1, Ywt) * pfact;}}}
1710}/*M1_SEQPDT*/ 
1711void YstateEQPdelta_r_cout_d(int frompdt, int topdt, double pfact)
1712{
1713         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1714                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1715                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1716                                 YS_r_cout_d(Yws, Yw1, Ywt) = YD_r_cout_d(Yws, Yw1, Ywt) * pfact;}}}
1717}/*M1_SEQPODT*/ 
1718void YstateEQPOdelta_r_cout_d(int frompdt, int topdt, double pfact, char *codop)
1719{
1720         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1721                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1722                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1723                                 YS_r_cout_d(Yws, Yw1, Ywt) = YD_r_cout_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
1724}/*M1_SEQAPTDT*/ 
1725void YstateEQAPTdelta_r_cout_d(int frompdt, int topdt, double pfact, YREAL tab[])
1726{
1727         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1728                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1729                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1730                                 YS_r_cout_d(Yws, Yw1, Ywt) = YD_r_cout_d(Yws, Yw1, Ywt) + pfact * tab[Y3windice++];}}}
1731}/*M1_GEQPST*/ 
1732void YgradEQPstate_r_cout_d(int frompdt, int topdt, double pfact)
1733{
1734         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1735                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1736                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1737                                 YG_r_cout_d(Yws, Yw1, Ywt) = YS_r_cout_d(Yws, Yw1, Ywt) * pfact;}}}
1738}/*M1_GEQPOST*/ 
1739void YgradEQPOstate_r_cout_d(int frompdt, int topdt, double pfact, char *codop)
1740{
1741         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1742                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1743                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1744                                 YG_r_cout_d(Yws, Yw1, Ywt) = YS_r_cout_d(Yws, Yw1, Ywt) * (pfact*(1+Ygetval(codop)));}}}
1745}/*M1_STOTBT  */ 
1746void YstateTOtab_r_cout_d(int frompdt, int topdt, YREAL tab[])
1747{
1748         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1749                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1750                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1751                                 tab[Y3windice] = YS_r_cout_d(Yws, Yw1, Ywt); ++Y3windice;}}}
1752}/*M1_GTOTBT  */ 
1753void YgradTOtab_r_cout_d(int frompdt, int topdt, YREAL tab[])
1754{
1755         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1756                 for (int Ywt=frompdt; Ywt<topdt;  ++Ywt){
1757                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1758                                 tab[Y3windice] = YG_r_cout_d(Yws, Yw1, Ywt); ++Y3windice;}}}
1759}/*M1_RGRADT*/ 
1760void Yrazgrad_r_cout_d()
1761{
1762         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1763                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d; ++Ywt){
1764                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1765                                 Yr_cout_d(Yw1)->Ygrad[Ywt][Yws] = 0.0;}}}
1766}/*M1_SETAT*/ 
1767void Ysetstate_r_cout_d(double val)
1768{
1769         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1770                 for (int Ywt=0; Ywt<YNBALLTIME_T_float_d;  ++Ywt){
1771                         for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1772                                 Yr_cout_d(Yw1)->Ystate[Ywt][Yws] = val;}}}
1773}/*M1_YIOUT*/ 
1774void Yio_r_cout_d(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)     
1775{  Yiorwf ("r_cout_d", Yws, Yw1, Yw2, Yw3, Ywt, &YS_r_cout_d(Yws, Yw1, Ywt), val);
1776}/*M00_GTEST */
1777int Ytestdf_r_cout_d (int modop, int KeKo, float pdx, float ptol, int ynbi, int ynbs, char *nmmod, YREAL yinput[], YREAL ystate[], r_cout_d *Modul)
1778{        int wk, wj, nbKo=0; YREAL wSj[YMAX_NBS],wdxk,wJjk,wyj,wDjk,wdifjk;
1779         YREAL svx; int resKo; char okko[2][3]={"ok", "KO"}; 
1780         if (!Ydftestijkt(Yid_r_cout_d)) return(0); 
1781         memset (Yjac, 0, YMAX_JAC_NBI*YMAX_JAC_NBS*sizeof(YREAL));
1782/*M01_GTESTT*/
1783         Modul->forward( Yting[0], Yting[1] );
1784         for (wj=0; wj<ynbs; ++wj) wSj[wj] = ystate[YTemps*ynbs + wj];
1785         Modul->backward( Yting[0], Yting[1] );
1786         for (wk=0; wk<ynbi; ++wk)
1787         {       svx=yinput[wk];
1788                         wdxk = svx*pdx;
1789                         if (modop||svx==0.0) wdxk = pdx; 
1790                         yinput[wk] += wdxk;
1791                         Modul->forward( Yting[0], Yting[1] );
1792                         for (wj=0; wj<ynbs; ++wj)
1793                         { wJjk = Yjac[wj][wk];
1794                                 wyj = ystate[YTemps*ynbs + wj];
1795                                 wDjk = (wyj - wSj[wj]) / wdxk;
1796                                 wdifjk = fabs(wDjk - wJjk);
1797                                 resKo=(wdifjk/fabs(wJjk))>ptol;  nbKo+=resKo;
1798                                 if(resKo || !KeKo) 
1799                                 printf(" %7s | J[%2i,%2i] |% 12.6e |% 12.6e |% 12.6e :  %s |% 12.6e | (%i %i %i %i)\n",
1800                                                                 nmmod, wj+1, wk+1, wJjk, wDjk, wdifjk, okko[resKo], svx, Yi+1, Yj+1, Yk+1, Yt+1);
1801                                } 
1802                          yinput[wk] = svx;
1803         }
1804         return(nbKo);
1805}/*M0_OUTOB*/ 
1806int Youtoobs_r_cout_d(YioKind yiokind, int Yws, int Ywt, int arbpdt)
1807{
1808         Yaobs.time = arbpdt;
1809         Yaobs.imod = Yimod("r_cout_d");
1810         Yaobs.smod = Yws;/*M1_OUTOBT*/
1811         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1)
1812         {      if(select_io(yiokind, "r_cout_d", Yws, Yw1, -1, -1, Ywt, &Ystate_r_cout_d(Yws, Yw1, Ywt)))
1813                        {       Yaobs.iaxe = Yw1; Yaobs.jaxe = -1; Yaobs.kaxe = -1;
1814                                Yaobs.vobs = Ystate_r_cout_d(Yws, Yw1, Ywt);
1815                                if(!Yobs_insert (&Yaobs)) return(0);
1816                        }
1817         }/*M9_OUTOB*/ 
1818         return(1);
1819}/*M1_CREU*/ 
1820void Ycreate_r_cout_d() 
1821{
1822         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1823                 if ((Yr_cout_d(Yw1) = new r_cout_d ())==NULL) Ycreate_errnew();}
1824}/*M1_SWISH*/ 
1825void Ysetwish_r_cout_d(double val)
1826{
1827         for (int Yw1=0; Yw1<YA1_S_float_d; ++Yw1){
1828                 for (int Yws=0; Yws<YNBS_r_cout_d; ++Yws){
1829                         Ywish_r_cout_d(Yws, Yw1) = val;}}
1830}
1831void Ycreate_all () 
1832{
1833         Ycreate_r_float ();
1834         Ycreate_ur ();
1835         Ycreate_uinter ();
1836         Ycreate_xinter ();
1837         Ycreate_u ();
1838         Ycreate_v ();
1839         Ycreate_locate ();
1840         Ycreate_r_float_d ();
1841         Ycreate_ur_d ();
1842         Ycreate_uinter_d ();
1843         Ycreate_u_d ();
1844         Ycreate_v_d ();
1845         Ycreate_locate_d ();
1846         Ycreate_r_cout_d ();
1847}
1848void Ywishdiff_all (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt, YREAL vobs) 
1849{       
1850         if(1==0);
1851         else if (strcmp(nmmod, "u_d") == 0)
1852                                 YW_u_d(Yws, Yw1, Yw2) = YS_u_d(Yws, Yw1, Yw2) - vobs;
1853         else if (strcmp(nmmod, "v_d") == 0)
1854                                 YW_v_d(Yws, Yw1, Yw2) = YS_v_d(Yws, Yw1, Yw2) - vobs;
1855         else if (strcmp(nmmod, "r_cout_d") == 0)
1856                                 YW_r_cout_d(Yws, Yw1) = YS_r_cout_d(Yws, Yw1, Ywt) - vobs;
1857}
1858void Ycostwishdiff_all (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt) 
1859{       
1860         if(1==0);
1861         else if (strcmp(nmmod, "u_d") == 0)
1862                                 YG_u_d(Yws, Yw1, Yw2) += Ycostdiff(YW_u_d(Yws, Yw1, Yw2), YW_u_d(Yws, Yw1, Yw2));
1863         else if (strcmp(nmmod, "v_d") == 0)
1864                                 YG_v_d(Yws, Yw1, Yw2) += Ycostdiff(YW_v_d(Yws, Yw1, Yw2), YW_v_d(Yws, Yw1, Yw2));
1865         else if (strcmp(nmmod, "r_cout_d") == 0)
1866                                 YG_r_cout_d(Yws, Yw1, Ywt) += Ycostdiff(YW_r_cout_d(Yws, Yw1), YW_r_cout_d(Yws, Yw1));
1867}
1868void Youtoobs_mod(YioKind yiokind, char *nmmod, int numout, int pdt, int arbpdt)
1869{
1870         if(1==0);
1871         else if (strcmp(nmmod, "u_d") == 0) Youtoobs_u_d(yiokind, numout, pdt, arbpdt);
1872         else if (strcmp(nmmod, "v_d") == 0) Youtoobs_v_d(yiokind, numout, pdt, arbpdt);
1873         else if (strcmp(nmmod, "r_cout_d") == 0) Youtoobs_r_cout_d(yiokind, numout, pdt, arbpdt);
1874}
1875void Yadjust_all () 
1876{
1877         Yadjust_u_d ();
1878         Yadjust_v_d ();
1879}
1880void Yrazgrad_all () 
1881{
1882         Yrazgrad_r_float ();
1883         Yrazgrad_ur ();
1884         Yrazgrad_uinter ();
1885         Yrazgrad_xinter ();
1886         Yrazgrad_u ();
1887         Yrazgrad_v ();
1888         Yrazgrad_locate ();
1889         Yrazgrad_r_float_d ();
1890         Yrazgrad_ur_d ();
1891         Yrazgrad_uinter_d ();
1892         Yrazgrad_u_d ();
1893         Yrazgrad_v_d ();
1894         Yrazgrad_locate_d ();
1895         Yrazgrad_r_cout_d ();
1896}
1897void Yrazgrad_only (int itraj) 
1898{
1899        if (itraj==Yid_T_float)
1900        {}
1901        if (itraj==Yid_T_euler)
1902        {}
1903        if (itraj==Yid_T_float_d)
1904        {}
1905        if (itraj==Yid_T_euler_d)
1906        {}
1907}
1908int Ysetstate_mod (char *nmmod, YREAL val) 
1909{       int codret=0; int all=0;
1910        if (!strcmp(nmmod, "Y#A")) all=1;
1911        if (!strcmp(nmmod, "r_float") || all)
1912        {  Ysetstate_r_float(val);codret=1;}
1913        if (!strcmp(nmmod, "ur") || all)
1914        {  Ysetstate_ur(val);codret=1;}
1915        if (!strcmp(nmmod, "uinter") || all)
1916        {  Ysetstate_uinter(val);codret=1;}
1917        if (!strcmp(nmmod, "xinter") || all)
1918        {  Ysetstate_xinter(val);codret=1;}
1919        if (!strcmp(nmmod, "u") || all)
1920        {  Ysetstate_u(val);codret=1;}
1921        if (!strcmp(nmmod, "v") || all)
1922        {  Ysetstate_v(val);codret=1;}
1923        if (!strcmp(nmmod, "locate") || all)
1924        {  Ysetstate_locate(val);codret=1;}
1925        if (!strcmp(nmmod, "r_float_d") || all)
1926        {  Ysetstate_r_float_d(val);codret=1;}
1927        if (!strcmp(nmmod, "ur_d") || all)
1928        {  Ysetstate_ur_d(val);codret=1;}
1929        if (!strcmp(nmmod, "uinter_d") || all)
1930        {  Ysetstate_uinter_d(val);codret=1;}
1931        if (!strcmp(nmmod, "u_d") || all)
1932        {  Ysetstate_u_d(val);codret=1;}
1933        if (!strcmp(nmmod, "v_d") || all)
1934        {  Ysetstate_v_d(val);codret=1;}
1935        if (!strcmp(nmmod, "locate_d") || all)
1936        {  Ysetstate_locate_d(val);codret=1;}
1937        if (!strcmp(nmmod, "r_cout_d") || all)
1938        {  Ysetstate_r_cout_d(val);codret=1;}
1939        return(codret);
1940}
1941void Ysetwish_mod (int imod, YREAL val) 
1942{       if(1==0);
1943        else if (imod==10) Ysetwish_u_d(val);
1944        else if (imod==11) Ysetwish_v_d(val);
1945        else if (imod==13) Ysetwish_r_cout_d(val);
1946}
1947void  Yio_mod (char *nmmod, int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)
1948{
1949         if(1==0);
1950         else if (strcmp(nmmod, "r_float") == 0) Yio_r_float(Yws, Yw1, Yw2, Yw3, Ywt, val);
1951         else if (strcmp(nmmod, "ur") == 0) Yio_ur(Yws, Yw1, Yw2, Yw3, Ywt, val);
1952         else if (strcmp(nmmod, "uinter") == 0) Yio_uinter(Yws, Yw1, Yw2, Yw3, Ywt, val);
1953         else if (strcmp(nmmod, "xinter") == 0) Yio_xinter(Yws, Yw1, Yw2, Yw3, Ywt, val);
1954         else if (strcmp(nmmod, "u") == 0) Yio_u(Yws, Yw1, Yw2, Yw3, Ywt, val);
1955         else if (strcmp(nmmod, "v") == 0) Yio_v(Yws, Yw1, Yw2, Yw3, Ywt, val);
1956         else if (strcmp(nmmod, "locate") == 0) Yio_locate(Yws, Yw1, Yw2, Yw3, Ywt, val);
1957         else if (strcmp(nmmod, "r_float_d") == 0) Yio_r_float_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1958         else if (strcmp(nmmod, "ur_d") == 0) Yio_ur_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1959         else if (strcmp(nmmod, "uinter_d") == 0) Yio_uinter_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1960         else if (strcmp(nmmod, "u_d") == 0) Yio_u_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1961         else if (strcmp(nmmod, "v_d") == 0) Yio_v_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1962         else if (strcmp(nmmod, "locate_d") == 0) Yio_locate_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1963         else if (strcmp(nmmod, "r_cout_d") == 0) Yio_r_cout_d(Yws, Yw1, Yw2, Yw3, Ywt, val);
1964}
1965void YgradCTOtab_target (YREAL tab[]) 
1966{       //Y3windice = 0;
1967         YgradCTOtab_u_d (tab);
1968         YgradCTOtab_v_d (tab);
1969}
1970void YtabTOgrad_target (YREAL tab[]) 
1971{       //Y3windice = 0;
1972         YtabTOgrad_u_d (tab);
1973         YtabTOgrad_v_d (tab);
1974}
1975void Y3getstate_all (float x[]) 
1976{        Y3windice = 0;
1977         Y3getstate_u_d (x);
1978         Y3getstate_v_d (x);
1979}
1980void Y3valstate_all () 
1981{        Y3windice = 0;
1982         Y3valstate_u_d ();
1983         Y3valstate_v_d ();
1984}
1985void Y3valgrad_all (float g[]) 
1986{        Y3windice = 0;
1987         Y3valgrad_u_d (g);
1988         Y3valgrad_v_d (g);
1989}
1990void YdeltaEQPstate_traj(int itraj, char *norkmod, int frompdt, int topdt, double pfact) 
1991{
1992        if (1==0){}
1993        else if (itraj==Yid_T_float)
1994        {
1995                if ( !strcmp(norkmod, "r_float") || !strcmp(norkmod, "Y#A") )
1996         YdeltaEQPstate_r_float (frompdt, topdt, pfact);
1997                if ( !strcmp(norkmod, "ur") || !strcmp(norkmod, "Y#A") )
1998         YdeltaEQPstate_ur (frompdt, topdt, pfact);
1999                if ( !strcmp(norkmod, "uinter") || !strcmp(norkmod, "Y#A") )
2000         YdeltaEQPstate_uinter (frompdt, topdt, pfact);
2001                if ( !strcmp(norkmod, "xinter") || !strcmp(norkmod, "Y#A") )
2002         YdeltaEQPstate_xinter (frompdt, topdt, pfact);
2003                if ( !strcmp(norkmod, "locate") || !strcmp(norkmod, "Y#A") )
2004         YdeltaEQPstate_locate (frompdt, topdt, pfact);
2005        }
2006        else if (itraj==Yid_T_euler)
2007        {
2008                if ( !strcmp(norkmod, "u") || !strcmp(norkmod, "Y#A") )
2009         YdeltaEQPstate_u (0, 1, pfact);
2010                if ( !strcmp(norkmod, "v") || !strcmp(norkmod, "Y#A") )
2011         YdeltaEQPstate_v (0, 1, pfact);
2012        }
2013        else if (itraj==Yid_T_float_d)
2014        {
2015                if ( !strcmp(norkmod, "r_float_d") || !strcmp(norkmod, "Y#A") )
2016         YdeltaEQPstate_r_float_d (frompdt, topdt, pfact);
2017                if ( !strcmp(norkmod, "ur_d") || !strcmp(norkmod, "Y#A") )
2018         YdeltaEQPstate_ur_d (frompdt, topdt, pfact);
2019                if ( !strcmp(norkmod, "uinter_d") || !strcmp(norkmod, "Y#A") )
2020         YdeltaEQPstate_uinter_d (frompdt, topdt, pfact);
2021                if ( !strcmp(norkmod, "locate_d") || !strcmp(norkmod, "Y#A") )
2022         YdeltaEQPstate_locate_d (frompdt, topdt, pfact);
2023                if ( !strcmp(norkmod, "r_cout_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#C") )
2024         YdeltaEQPstate_r_cout_d (frompdt, topdt, pfact);
2025        }
2026        else if (itraj==Yid_T_euler_d)
2027        {
2028                if ( !strcmp(norkmod, "u_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2029         YdeltaEQPstate_u_d (0, 1, pfact);
2030                if ( !strcmp(norkmod, "v_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2031         YdeltaEQPstate_v_d (0, 1, pfact);
2032        }
2033}
2034void YdeltaEQPstate_target(double pfact) 
2035{
2036         YdeltaEQPstate_u_d (0, 1, pfact);
2037         YdeltaEQPstate_v_d (0, 1, pfact);
2038}
2039void YdeltaEQPgrad_target(double pfact) 
2040{
2041         YdeltaEQPgrad_u_d (0, 1, pfact);
2042         YdeltaEQPgrad_v_d (0, 1, pfact);
2043}
2044void YstateEQPdelta_traj(int itraj, char *norkmod, int frompdt, int topdt, double pfact) 
2045{
2046        if (1==0){}
2047        else if (itraj==Yid_T_float)
2048        {
2049                if ( !strcmp(norkmod, "r_float") || !strcmp(norkmod, "Y#A") )
2050         YstateEQPdelta_r_float (frompdt, topdt, pfact);
2051                if ( !strcmp(norkmod, "ur") || !strcmp(norkmod, "Y#A") )
2052         YstateEQPdelta_ur (frompdt, topdt, pfact);
2053                if ( !strcmp(norkmod, "uinter") || !strcmp(norkmod, "Y#A") )
2054         YstateEQPdelta_uinter (frompdt, topdt, pfact);
2055                if ( !strcmp(norkmod, "xinter") || !strcmp(norkmod, "Y#A") )
2056         YstateEQPdelta_xinter (frompdt, topdt, pfact);
2057                if ( !strcmp(norkmod, "locate") || !strcmp(norkmod, "Y#A") )
2058         YstateEQPdelta_locate (frompdt, topdt, pfact);
2059        }
2060        else if (itraj==Yid_T_euler)
2061        {
2062                if ( !strcmp(norkmod, "u") || !strcmp(norkmod, "Y#A") )
2063         YstateEQPdelta_u (0, 1, pfact);
2064                if ( !strcmp(norkmod, "v") || !strcmp(norkmod, "Y#A") )
2065         YstateEQPdelta_v (0, 1, pfact);
2066        }
2067        else if (itraj==Yid_T_float_d)
2068        {
2069                if ( !strcmp(norkmod, "r_float_d") || !strcmp(norkmod, "Y#A") )
2070         YstateEQPdelta_r_float_d (frompdt, topdt, pfact);
2071                if ( !strcmp(norkmod, "ur_d") || !strcmp(norkmod, "Y#A") )
2072         YstateEQPdelta_ur_d (frompdt, topdt, pfact);
2073                if ( !strcmp(norkmod, "uinter_d") || !strcmp(norkmod, "Y#A") )
2074         YstateEQPdelta_uinter_d (frompdt, topdt, pfact);
2075                if ( !strcmp(norkmod, "locate_d") || !strcmp(norkmod, "Y#A") )
2076         YstateEQPdelta_locate_d (frompdt, topdt, pfact);
2077                if ( !strcmp(norkmod, "r_cout_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#C") )
2078         YstateEQPdelta_r_cout_d (frompdt, topdt, pfact);
2079        }
2080        else if (itraj==Yid_T_euler_d)
2081        {
2082                if ( !strcmp(norkmod, "u_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2083         YstateEQPdelta_u_d (0, 1, pfact);
2084                if ( !strcmp(norkmod, "v_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2085         YstateEQPdelta_v_d (0, 1, pfact);
2086        }
2087}
2088void YstateEQPdelta_target(double pfact) 
2089{
2090         YstateEQPdelta_u_d (0, 1, pfact);
2091         YstateEQPdelta_v_d (0, 1, pfact);
2092}
2093void YstateEQPOdelta_target(double pfact, char *codop) 
2094{
2095         YstateEQPOdelta_u_d (0, 1, pfact, codop);
2096         YstateEQPOdelta_v_d (0, 1, pfact, codop);
2097}
2098void YstateEQAPTdelta_target(double pfact, YREAL tab[]) 
2099{
2100         YstateEQAPTdelta_u_d (0, 1, pfact, tab);
2101         YstateEQAPTdelta_v_d (0, 1, pfact, tab);
2102}
2103void YgradEQPstate_traj(int itraj, char *norkmod, int frompdt, int topdt, double pfact) 
2104{
2105        if (1==0){}
2106        else if (itraj==Yid_T_float)
2107        {
2108                if ( !strcmp(norkmod, "r_float") || !strcmp(norkmod, "Y#A") )
2109         YgradEQPstate_r_float (frompdt, topdt, pfact);
2110                if ( !strcmp(norkmod, "ur") || !strcmp(norkmod, "Y#A") )
2111         YgradEQPstate_ur (frompdt, topdt, pfact);
2112                if ( !strcmp(norkmod, "uinter") || !strcmp(norkmod, "Y#A") )
2113         YgradEQPstate_uinter (frompdt, topdt, pfact);
2114                if ( !strcmp(norkmod, "xinter") || !strcmp(norkmod, "Y#A") )
2115         YgradEQPstate_xinter (frompdt, topdt, pfact);
2116                if ( !strcmp(norkmod, "locate") || !strcmp(norkmod, "Y#A") )
2117         YgradEQPstate_locate (frompdt, topdt, pfact);
2118        }
2119        else if (itraj==Yid_T_euler)
2120        {
2121                if ( !strcmp(norkmod, "u") || !strcmp(norkmod, "Y#A") )
2122         YgradEQPstate_u(pfact);
2123                if ( !strcmp(norkmod, "v") || !strcmp(norkmod, "Y#A") )
2124         YgradEQPstate_v(pfact);
2125        }
2126        else if (itraj==Yid_T_float_d)
2127        {
2128                if ( !strcmp(norkmod, "r_float_d") || !strcmp(norkmod, "Y#A") )
2129         YgradEQPstate_r_float_d (frompdt, topdt, pfact);
2130                if ( !strcmp(norkmod, "ur_d") || !strcmp(norkmod, "Y#A") )
2131         YgradEQPstate_ur_d (frompdt, topdt, pfact);
2132                if ( !strcmp(norkmod, "uinter_d") || !strcmp(norkmod, "Y#A") )
2133         YgradEQPstate_uinter_d (frompdt, topdt, pfact);
2134                if ( !strcmp(norkmod, "locate_d") || !strcmp(norkmod, "Y#A") )
2135         YgradEQPstate_locate_d (frompdt, topdt, pfact);
2136                if ( !strcmp(norkmod, "r_cout_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#C") )
2137         YgradEQPstate_r_cout_d (frompdt, topdt, pfact);
2138        }
2139        else if (itraj==Yid_T_euler_d)
2140        {
2141                if ( !strcmp(norkmod, "u_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2142         YgradEQPstate_u_d(pfact);
2143                if ( !strcmp(norkmod, "v_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2144         YgradEQPstate_v_d(pfact);
2145        }
2146}
2147void YgradEQPstate_target(double pfact) 
2148{
2149         YgradEQPstate_u_d (pfact);
2150         YgradEQPstate_v_d (pfact);
2151}
2152void YgradEQPOstate_target(double pfact, char *codop) 
2153{
2154         YgradEQPOstate_u_d (pfact, codop);
2155         YgradEQPOstate_v_d (pfact, codop);
2156}
2157void YstateTOtab_traj (int itraj, char *norkmod, int frompdt, int topdt, YREAL tab[]) 
2158{       //Y3windice = 0;
2159        if (1==0){}
2160        else if (itraj==Yid_T_float)
2161        {
2162                if ( !strcmp(norkmod, "r_float") || !strcmp(norkmod, "Y#A") )
2163         YstateTOtab_r_float (frompdt, topdt, tab);
2164                if ( !strcmp(norkmod, "ur") || !strcmp(norkmod, "Y#A") )
2165         YstateTOtab_ur (frompdt, topdt, tab);
2166                if ( !strcmp(norkmod, "uinter") || !strcmp(norkmod, "Y#A") )
2167         YstateTOtab_uinter (frompdt, topdt, tab);
2168                if ( !strcmp(norkmod, "xinter") || !strcmp(norkmod, "Y#A") )
2169         YstateTOtab_xinter (frompdt, topdt, tab);
2170                if ( !strcmp(norkmod, "locate") || !strcmp(norkmod, "Y#A") )
2171         YstateTOtab_locate (frompdt, topdt, tab);
2172        }
2173        else if (itraj==Yid_T_euler)
2174        {
2175                if ( !strcmp(norkmod, "u") || !strcmp(norkmod, "Y#A") )
2176         YstateTOtab_u (tab);
2177                if ( !strcmp(norkmod, "v") || !strcmp(norkmod, "Y#A") )
2178         YstateTOtab_v (tab);
2179        }
2180        else if (itraj==Yid_T_float_d)
2181        {
2182                if ( !strcmp(norkmod, "r_float_d") || !strcmp(norkmod, "Y#A") )
2183         YstateTOtab_r_float_d (frompdt, topdt, tab);
2184                if ( !strcmp(norkmod, "ur_d") || !strcmp(norkmod, "Y#A") )
2185         YstateTOtab_ur_d (frompdt, topdt, tab);
2186                if ( !strcmp(norkmod, "uinter_d") || !strcmp(norkmod, "Y#A") )
2187         YstateTOtab_uinter_d (frompdt, topdt, tab);
2188                if ( !strcmp(norkmod, "locate_d") || !strcmp(norkmod, "Y#A") )
2189         YstateTOtab_locate_d (frompdt, topdt, tab);
2190                if ( !strcmp(norkmod, "r_cout_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#C") )
2191         YstateTOtab_r_cout_d (frompdt, topdt, tab);
2192        }
2193        else if (itraj==Yid_T_euler_d)
2194        {
2195                if ( !strcmp(norkmod, "u_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2196         YstateTOtab_u_d (tab);
2197                if ( !strcmp(norkmod, "v_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2198         YstateTOtab_v_d (tab);
2199        }
2200}
2201void YstateTOtab_target (YREAL tab[]) 
2202{       //Y3windice = 0;
2203         YstateTOtab_u_d (tab);
2204         YstateTOtab_v_d (tab);
2205}
2206void YgradTOtab_traj (int itraj, char *norkmod, int frompdt, int topdt, YREAL tab[]) 
2207{       //Y3windice = 0;
2208        if (1==0){}
2209        else if (itraj==Yid_T_float)
2210        {
2211                if ( !strcmp(norkmod, "r_float") || !strcmp(norkmod, "Y#A") )
2212         YgradTOtab_r_float (frompdt, topdt, tab);
2213                if ( !strcmp(norkmod, "ur") || !strcmp(norkmod, "Y#A") )
2214         YgradTOtab_ur (frompdt, topdt, tab);
2215                if ( !strcmp(norkmod, "uinter") || !strcmp(norkmod, "Y#A") )
2216         YgradTOtab_uinter (frompdt, topdt, tab);
2217                if ( !strcmp(norkmod, "xinter") || !strcmp(norkmod, "Y#A") )
2218         YgradTOtab_xinter (frompdt, topdt, tab);
2219                if ( !strcmp(norkmod, "locate") || !strcmp(norkmod, "Y#A") )
2220         YgradTOtab_locate (frompdt, topdt, tab);
2221        }
2222        else if (itraj==Yid_T_euler)
2223        {
2224                if ( !strcmp(norkmod, "u") || !strcmp(norkmod, "Y#A") )
2225         YgradTOtab_u (tab);
2226                if ( !strcmp(norkmod, "v") || !strcmp(norkmod, "Y#A") )
2227         YgradTOtab_v (tab);
2228        }
2229        else if (itraj==Yid_T_float_d)
2230        {
2231                if ( !strcmp(norkmod, "r_float_d") || !strcmp(norkmod, "Y#A") )
2232         YgradTOtab_r_float_d (frompdt, topdt, tab);
2233                if ( !strcmp(norkmod, "ur_d") || !strcmp(norkmod, "Y#A") )
2234         YgradTOtab_ur_d (frompdt, topdt, tab);
2235                if ( !strcmp(norkmod, "uinter_d") || !strcmp(norkmod, "Y#A") )
2236         YgradTOtab_uinter_d (frompdt, topdt, tab);
2237                if ( !strcmp(norkmod, "locate_d") || !strcmp(norkmod, "Y#A") )
2238         YgradTOtab_locate_d (frompdt, topdt, tab);
2239                if ( !strcmp(norkmod, "r_cout_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#C") )
2240         YgradTOtab_r_cout_d (frompdt, topdt, tab);
2241        }
2242        else if (itraj==Yid_T_euler_d)
2243        {
2244                if ( !strcmp(norkmod, "u_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2245         YgradTOtab_u_d (tab);
2246                if ( !strcmp(norkmod, "v_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2247         YgradTOtab_v_d (tab);
2248        }
2249}
2250void YgradTOtab_target (YREAL tab[]) 
2251{       //Y3windice = 0;
2252         YgradTOtab_u_d (tab);
2253         YgradTOtab_v_d (tab);
2254}
2255void YtabTOgrad_traj (int itraj, char *norkmod, int frompdt, int topdt, YREAL tab[]) 
2256{       //Y3windice = 0;
2257        if (1==0){}
2258        else if (itraj==Yid_T_float)
2259        {
2260                if ( !strcmp(norkmod, "r_float") || !strcmp(norkmod, "Y#A") )
2261                         YtabTOgrad_r_float (frompdt, topdt, tab);
2262                if ( !strcmp(norkmod, "ur") || !strcmp(norkmod, "Y#A") )
2263                         YtabTOgrad_ur (frompdt, topdt, tab);
2264                if ( !strcmp(norkmod, "uinter") || !strcmp(norkmod, "Y#A") )
2265                         YtabTOgrad_uinter (frompdt, topdt, tab);
2266                if ( !strcmp(norkmod, "xinter") || !strcmp(norkmod, "Y#A") )
2267                         YtabTOgrad_xinter (frompdt, topdt, tab);
2268                if ( !strcmp(norkmod, "locate") || !strcmp(norkmod, "Y#A") )
2269                         YtabTOgrad_locate (frompdt, topdt, tab);
2270        }
2271        else if (itraj==Yid_T_euler)
2272        {
2273                if ( !strcmp(norkmod, "u") || !strcmp(norkmod, "Y#A") )
2274                         YtabTOgrad_u (tab);
2275                if ( !strcmp(norkmod, "v") || !strcmp(norkmod, "Y#A") )
2276                         YtabTOgrad_v (tab);
2277        }
2278        else if (itraj==Yid_T_float_d)
2279        {
2280                if ( !strcmp(norkmod, "r_float_d") || !strcmp(norkmod, "Y#A") )
2281                         YtabTOgrad_r_float_d (frompdt, topdt, tab);
2282                if ( !strcmp(norkmod, "ur_d") || !strcmp(norkmod, "Y#A") )
2283                         YtabTOgrad_ur_d (frompdt, topdt, tab);
2284                if ( !strcmp(norkmod, "uinter_d") || !strcmp(norkmod, "Y#A") )
2285                         YtabTOgrad_uinter_d (frompdt, topdt, tab);
2286                if ( !strcmp(norkmod, "locate_d") || !strcmp(norkmod, "Y#A") )
2287                         YtabTOgrad_locate_d (frompdt, topdt, tab);
2288                if ( !strcmp(norkmod, "r_cout_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#C") )
2289                         YtabTOgrad_r_cout_d (frompdt, topdt, tab);
2290        }
2291        else if (itraj==Yid_T_euler_d)
2292        {
2293                if ( !strcmp(norkmod, "u_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2294                         YtabTOgrad_u_d (tab);
2295                if ( !strcmp(norkmod, "v_d") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") )
2296                         YtabTOgrad_v_d (tab);
2297        }
2298}
2299 int Ydfward_all(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
2300{
2301        int nbko=0;
2302        if ( !strcmp(nmmod, "r_float") || All )
2303                nbko += Ytestdf_r_float(modop,KeKo,pdx,ptol,YNBI_r_float,YNBS_r_float,"r_float",Yting,Yr_float[Yi]->Ystate[0],Yr_float[Yi]);
2304        if ( !strcmp(nmmod, "ur") || All )
2305                nbko += Ytestdf_ur(modop,KeKo,pdx,ptol,YNBI_ur,YNBS_ur,"ur",Yting,Yur[Yi]->Ystate[0],Yur[Yi]);
2306        if ( !strcmp(nmmod, "locate") || All )
2307                nbko += Ytestdf_locate(modop,KeKo,pdx,ptol,YNBI_locate,YNBS_locate,"locate",Yting,Ylocate[Yi][Yj][Yk]->Ystate[0],Ylocate[Yi][Yj][Yk]);
2308        if ( !strcmp(nmmod, "r_float_d") || All )
2309                nbko += Ytestdf_r_float_d(modop,KeKo,pdx,ptol,YNBI_r_float_d,YNBS_r_float_d,"r_float_d",Yting,Yr_float_d[Yi]->Ystate[0],Yr_float_d[Yi]);
2310        if ( !strcmp(nmmod, "ur_d") || All )
2311                nbko += Ytestdf_ur_d(modop,KeKo,pdx,ptol,YNBI_ur_d,YNBS_ur_d,"ur_d",Yting,Yur_d[Yi]->Ystate[0],Yur_d[Yi]);
2312        if ( !strcmp(nmmod, "locate_d") || All )
2313                nbko += Ytestdf_locate_d(modop,KeKo,pdx,ptol,YNBI_locate_d,YNBS_locate_d,"locate_d",Yting,Ylocate_d[Yi][Yj][Yk]->Ystate[0],Ylocate_d[Yi][Yj][Yk]);
2314        if ( !strcmp(nmmod, "r_cout_d") || All )
2315                nbko += Ytestdf_r_cout_d(modop,KeKo,pdx,ptol,YNBI_r_cout_d,YNBS_r_cout_d,"r_cout_d",Yting,Yr_cout_d[Yi]->Ystate[0],Yr_cout_d[Yi]);
2316        return(nbko);
2317}
2318
2319void YwishEQPstate_traj_tocov (int itraj, int pdt, double pfact) 
2320{
2321        if (1==0){}
2322        else if (itraj==Yid_T_float)
2323        {
2324        }
2325        else if (itraj==Yid_T_euler)
2326        {
2327        }
2328        else if (itraj==Yid_T_float_d)
2329        {
2330        }
2331        else if (itraj==Yid_T_euler_d)
2332        {
2333        }
2334}
2335int Yauto_call (int argc, char *argv[]) 
2336{
2337         int codret=0; int all=0; double val;
2338         if (1==0);
2339         else if ( !strcmp(argv[0], "setepsi") || !strcmp(argv[0], "SETEPSI") 
2340                                         ||!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL"))
2341         {
2342                         if (!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")){all=1; val=atof(argv[1]);} else val=atof(argv[2]);
2343                         if (!strcmp(argv[1], "u_d") || all)
2344                                         {Ysetepsi_u_d(val);codret=1;}
2345                         if (!strcmp(argv[1], "v_d") || all)
2346                                         {Ysetepsi_v_d(val);codret=1;}
2347         }
2348         else codret=0;
2349         return(codret);
2350}
2351
2352 int Yforward_space_S_float()
2353{
2354         YA1=1; YA2=0; YA3=0;
2355Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2356for(Yi=0; Yi<YA1_S_float; ++Yi)
2357{
2358         Yting[0]=YS1_uinter( Yi, YTemps);
2359         Yting[1]=YS2_uinter( Yi, YTemps);
2360         Yting[2]=YS3_uinter( Yi, YTemps);
2361         Yting[3]=YS4_uinter( Yi, YTemps);
2362         Yting[4]=YS5_uinter( Yi, YTemps);
2363         Yting[5]=YS6_uinter( Yi, YTemps);
2364         Yting[6]=YS7_uinter( Yi, YTemps);
2365         Yting[7]=YS8_uinter( Yi, YTemps);
2366         Yting[8]=YS1_xinter( Yi, YTemps);
2367         Yting[9]=YS2_xinter( Yi, YTemps);
2368         Yting[10]=YS3_xinter( Yi, YTemps);
2369         Yting[11]=YS4_xinter( Yi, YTemps);
2370         Yting[12]=YS5_xinter( Yi, YTemps);
2371         Yting[13]=YS6_xinter( Yi, YTemps);
2372         Yting[14]=YS7_xinter( Yi, YTemps);
2373         Yting[15]=YS8_xinter( Yi, YTemps);
2374         Yting[16]=YS1_r_float( Yi, YTemps-1);
2375         Yting[17]=YS2_r_float( Yi, YTemps-1);
2376         Yur(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2377         Yting[0]=YS1_r_float( Yi, YTemps-1);
2378         Yting[1]=YS2_r_float( Yi, YTemps-1);
2379         Yting[2]=YS1_ur( Yi, YTemps);
2380         Yting[3]=YS2_ur( Yi, YTemps);
2381         Yr_float(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
2382
2383}
2384
2385         return(0);
2386}
2387
2388 int Ylinward_space_S_float()
2389{
2390         YA1=1; YA2=0; YA3=0;
2391Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2392for(Yi=0; Yi<YA1_S_float; ++Yi)
2393{
2394         Yting[0]=YS1_uinter( Yi, YTemps);
2395         Yting[1]=YS2_uinter( Yi, YTemps);
2396         Yting[2]=YS3_uinter( Yi, YTemps);
2397         Yting[3]=YS4_uinter( Yi, YTemps);
2398         Yting[4]=YS5_uinter( Yi, YTemps);
2399         Yting[5]=YS6_uinter( Yi, YTemps);
2400         Yting[6]=YS7_uinter( Yi, YTemps);
2401         Yting[7]=YS8_uinter( Yi, YTemps);
2402         Yting[8]=YS1_xinter( Yi, YTemps);
2403         Yting[9]=YS2_xinter( Yi, YTemps);
2404         Yting[10]=YS3_xinter( Yi, YTemps);
2405         Yting[11]=YS4_xinter( Yi, YTemps);
2406         Yting[12]=YS5_xinter( Yi, YTemps);
2407         Yting[13]=YS6_xinter( Yi, YTemps);
2408         Yting[14]=YS7_xinter( Yi, YTemps);
2409         Yting[15]=YS8_xinter( Yi, YTemps);
2410         Yting[16]=YS1_r_float( Yi, YTemps-1);
2411         Yting[17]=YS2_r_float( Yi, YTemps-1);
2412         Ytbeta[0]=YG1_uinter( Yi, YTemps);
2413         Ytbeta[1]=YG2_uinter( Yi, YTemps);
2414         Ytbeta[2]=YG3_uinter( Yi, YTemps);
2415         Ytbeta[3]=YG4_uinter( Yi, YTemps);
2416         Ytbeta[4]=YG5_uinter( Yi, YTemps);
2417         Ytbeta[5]=YG6_uinter( Yi, YTemps);
2418         Ytbeta[6]=YG7_uinter( Yi, YTemps);
2419         Ytbeta[7]=YG8_uinter( Yi, YTemps);
2420         Ytbeta[8]=YG1_xinter( Yi, YTemps);
2421         Ytbeta[9]=YG2_xinter( Yi, YTemps);
2422         Ytbeta[10]=YG3_xinter( Yi, YTemps);
2423         Ytbeta[11]=YG4_xinter( Yi, YTemps);
2424         Ytbeta[12]=YG5_xinter( Yi, YTemps);
2425         Ytbeta[13]=YG6_xinter( Yi, YTemps);
2426         Ytbeta[14]=YG7_xinter( Yi, YTemps);
2427         Ytbeta[15]=YG8_xinter( Yi, YTemps);
2428         Ytbeta[16]=YG1_r_float( Yi, YTemps-1);
2429         Ytbeta[17]=YG2_r_float( Yi, YTemps-1);
2430         memset(Yjac, 0, 36*sizeof(double));
2431         Yur(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2432         Yvsmat (YNBS_ur, YNBI_ur, YMAX_JAC_NBI, &YG1Y_ur, Yjac[0], Ytbeta);
2433         if (Ytestad_module)
2434         {      memcpy(&YD1Y_ur, &YG1Y_ur, YNBS_ur*sizeof(YREAL));
2435         }
2436         Yting[0]=YS1_r_float( Yi, YTemps-1);
2437         Yting[1]=YS2_r_float( Yi, YTemps-1);
2438         Yting[2]=YS1_ur( Yi, YTemps);
2439         Yting[3]=YS2_ur( Yi, YTemps);
2440         Ytbeta[0]=YG1_r_float( Yi, YTemps-1);
2441         Ytbeta[1]=YG2_r_float( Yi, YTemps-1);
2442         Ytbeta[2]=YG1_ur( Yi, YTemps);
2443         Ytbeta[3]=YG2_ur( Yi, YTemps);
2444         memset(Yjac, 0, 36*sizeof(double));
2445         Yr_float(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] );
2446         Yvsmat (YNBS_r_float, YNBI_r_float, YMAX_JAC_NBI, &YG1Y_r_float, Yjac[0], Ytbeta);
2447         if (Ytestad_module)
2448         {      memcpy(&YD1Y_r_float, &YG1Y_r_float, YNBS_r_float*sizeof(YREAL));
2449         }
2450
2451}
2452
2453         return(0);
2454}
2455
2456int Ydfward_space_S_float(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk)
2457{
2458         int nbko=0;
2459         YA1=1; YA2=0; YA3=0;
2460Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2461for(Yi=0; Yi<YA1_S_float; ++Yi)
2462{
2463         Yting[0]=YS1_uinter( Yi, YTemps);
2464         Yting[1]=YS2_uinter( Yi, YTemps);
2465         Yting[2]=YS3_uinter( Yi, YTemps);
2466         Yting[3]=YS4_uinter( Yi, YTemps);
2467         Yting[4]=YS5_uinter( Yi, YTemps);
2468         Yting[5]=YS6_uinter( Yi, YTemps);
2469         Yting[6]=YS7_uinter( Yi, YTemps);
2470         Yting[7]=YS8_uinter( Yi, YTemps);
2471         Yting[8]=YS1_xinter( Yi, YTemps);
2472         Yting[9]=YS2_xinter( Yi, YTemps);
2473         Yting[10]=YS3_xinter( Yi, YTemps);
2474         Yting[11]=YS4_xinter( Yi, YTemps);
2475         Yting[12]=YS5_xinter( Yi, YTemps);
2476         Yting[13]=YS6_xinter( Yi, YTemps);
2477         Yting[14]=YS7_xinter( Yi, YTemps);
2478         Yting[15]=YS8_xinter( Yi, YTemps);
2479         Yting[16]=YS1_r_float( Yi, YTemps-1);
2480         Yting[17]=YS2_r_float( Yi, YTemps-1);
2481        if (!strcmp(nmmod, "ur") || All)
2482        {
2483         if (Yi>=yi && Yj>=yj && Yk>=yk) 
2484         {      nbko += Ytestdf_ur(modop,KeKo,pdx,ptol,YNBI_ur,YNBS_ur,"ur",Yting,Yur[Yi]->Ystate[0],Yur[Yi]);
2485                 if (nbko>=koleft) return(nbko);
2486         }
2487        }
2488         Yur(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2489         Yting[0]=YS1_r_float( Yi, YTemps-1);
2490         Yting[1]=YS2_r_float( Yi, YTemps-1);
2491         Yting[2]=YS1_ur( Yi, YTemps);
2492         Yting[3]=YS2_ur( Yi, YTemps);
2493        if (!strcmp(nmmod, "r_float") || All)
2494        {
2495         if (Yi>=yi && Yj>=yj && Yk>=yk) 
2496         {      nbko += Ytestdf_r_float(modop,KeKo,pdx,ptol,YNBI_r_float,YNBS_r_float,"r_float",Yting,Yr_float[Yi]->Ystate[0],Yr_float[Yi]);
2497                 if (nbko>=koleft) return(nbko);
2498         }
2499        }
2500         Yr_float(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
2501
2502}
2503
2504         return(nbko);
2505}
2506
2507int Ydfward_space_maille_S_float(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
2508{
2509         int nbko=0;
2510         Yting[0]=YS1_uinter( Yi, YTemps);
2511         Yting[1]=YS2_uinter( Yi, YTemps);
2512         Yting[2]=YS3_uinter( Yi, YTemps);
2513         Yting[3]=YS4_uinter( Yi, YTemps);
2514         Yting[4]=YS5_uinter( Yi, YTemps);
2515         Yting[5]=YS6_uinter( Yi, YTemps);
2516         Yting[6]=YS7_uinter( Yi, YTemps);
2517         Yting[7]=YS8_uinter( Yi, YTemps);
2518         Yting[8]=YS1_xinter( Yi, YTemps);
2519         Yting[9]=YS2_xinter( Yi, YTemps);
2520         Yting[10]=YS3_xinter( Yi, YTemps);
2521         Yting[11]=YS4_xinter( Yi, YTemps);
2522         Yting[12]=YS5_xinter( Yi, YTemps);
2523         Yting[13]=YS6_xinter( Yi, YTemps);
2524         Yting[14]=YS7_xinter( Yi, YTemps);
2525         Yting[15]=YS8_xinter( Yi, YTemps);
2526         Yting[16]=YS1_r_float( Yi, YTemps-1);
2527         Yting[17]=YS2_r_float( Yi, YTemps-1);
2528        if (!strcmp(nmmod, "ur") || All)
2529        {
2530         nbko += Ytestdf_ur(modop,KeKo,pdx,ptol,YNBI_ur,YNBS_ur,"ur",Yting,Yur[Yi]->Ystate[0],Yur[Yi]);
2531        }
2532         Yur(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2533         Yting[0]=YS1_r_float( Yi, YTemps-1);
2534         Yting[1]=YS2_r_float( Yi, YTemps-1);
2535         Yting[2]=YS1_ur( Yi, YTemps);
2536         Yting[3]=YS2_ur( Yi, YTemps);
2537        if (!strcmp(nmmod, "r_float") || All)
2538        {
2539         nbko += Ytestdf_r_float(modop,KeKo,pdx,ptol,YNBI_r_float,YNBS_r_float,"r_float",Yting,Yr_float[Yi]->Ystate[0],Yr_float[Yi]);
2540        }
2541         Yr_float(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
2542         return(nbko);
2543}
2544
2545 int Ybackward_space_S_float()
2546{
2547         YA1=1; YA2=0; YA3=0;
2548Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2549for(Yi=YA1_S_float-1; Yi>=0; --Yi)
2550{
2551         Yting[0]=YS1_r_float( Yi, YTemps-1);
2552         Yting[1]=YS2_r_float( Yi, YTemps-1);
2553         Yting[2]=YS1_ur( Yi, YTemps);
2554         Yting[3]=YS2_ur( Yi, YTemps);
2555         memset(Yjac, 0, 36*sizeof(double));
2556         Yr_float(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] );
2557         Yvsmatt (YNBS_r_float, YNBI_r_float, YMAX_JAC_NBI, &YG1Y_r_float, Yjac[0], Ytbeta);
2558         YG1_r_float( Yi, YTemps-1) += Ytbeta[0];
2559         YG2_r_float( Yi, YTemps-1) += Ytbeta[1];
2560         YG1_ur( Yi, YTemps) += Ytbeta[2];
2561         YG2_ur( Yi, YTemps) += Ytbeta[3];
2562         if (Ytestad_module) {
2563                        Yting[0]=YD1_r_float( Yi, YTemps-1);
2564                        Yting[1]=YD2_r_float( Yi, YTemps-1);
2565                        Yting[2]=YD1_ur( Yi, YTemps);
2566                        Yting[3]=YD2_ur( Yi, YTemps);
2567                        YLTRes = Yprosca(&YD1Y_r_float, &YG1Y_r_float, YNBS_r_float);
2568                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_r_float);
2569                        if (!Ytesterrad_mod("r_float", YLTRes,YAdRes)) return(0);
2570         }
2571         Yting[0]=YS1_uinter( Yi, YTemps);
2572         Yting[1]=YS2_uinter( Yi, YTemps);
2573         Yting[2]=YS3_uinter( Yi, YTemps);
2574         Yting[3]=YS4_uinter( Yi, YTemps);
2575         Yting[4]=YS5_uinter( Yi, YTemps);
2576         Yting[5]=YS6_uinter( Yi, YTemps);
2577         Yting[6]=YS7_uinter( Yi, YTemps);
2578         Yting[7]=YS8_uinter( Yi, YTemps);
2579         Yting[8]=YS1_xinter( Yi, YTemps);
2580         Yting[9]=YS2_xinter( Yi, YTemps);
2581         Yting[10]=YS3_xinter( Yi, YTemps);
2582         Yting[11]=YS4_xinter( Yi, YTemps);
2583         Yting[12]=YS5_xinter( Yi, YTemps);
2584         Yting[13]=YS6_xinter( Yi, YTemps);
2585         Yting[14]=YS7_xinter( Yi, YTemps);
2586         Yting[15]=YS8_xinter( Yi, YTemps);
2587         Yting[16]=YS1_r_float( Yi, YTemps-1);
2588         Yting[17]=YS2_r_float( Yi, YTemps-1);
2589         memset(Yjac, 0, 36*sizeof(double));
2590         Yur(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2591         Yvsmatt (YNBS_ur, YNBI_ur, YMAX_JAC_NBI, &YG1Y_ur, Yjac[0], Ytbeta);
2592         YG1_uinter( Yi, YTemps) += Ytbeta[0];
2593         YG2_uinter( Yi, YTemps) += Ytbeta[1];
2594         YG3_uinter( Yi, YTemps) += Ytbeta[2];
2595         YG4_uinter( Yi, YTemps) += Ytbeta[3];
2596         YG5_uinter( Yi, YTemps) += Ytbeta[4];
2597         YG6_uinter( Yi, YTemps) += Ytbeta[5];
2598         YG7_uinter( Yi, YTemps) += Ytbeta[6];
2599         YG8_uinter( Yi, YTemps) += Ytbeta[7];
2600         YG1_xinter( Yi, YTemps) += Ytbeta[8];
2601         YG2_xinter( Yi, YTemps) += Ytbeta[9];
2602         YG3_xinter( Yi, YTemps) += Ytbeta[10];
2603         YG4_xinter( Yi, YTemps) += Ytbeta[11];
2604         YG5_xinter( Yi, YTemps) += Ytbeta[12];
2605         YG6_xinter( Yi, YTemps) += Ytbeta[13];
2606         YG7_xinter( Yi, YTemps) += Ytbeta[14];
2607         YG8_xinter( Yi, YTemps) += Ytbeta[15];
2608         YG1_r_float( Yi, YTemps-1) += Ytbeta[16];
2609         YG2_r_float( Yi, YTemps-1) += Ytbeta[17];
2610         if (Ytestad_module) {
2611                        Yting[0]=YD1_uinter( Yi, YTemps);
2612                        Yting[1]=YD2_uinter( Yi, YTemps);
2613                        Yting[2]=YD3_uinter( Yi, YTemps);
2614                        Yting[3]=YD4_uinter( Yi, YTemps);
2615                        Yting[4]=YD5_uinter( Yi, YTemps);
2616                        Yting[5]=YD6_uinter( Yi, YTemps);
2617                        Yting[6]=YD7_uinter( Yi, YTemps);
2618                        Yting[7]=YD8_uinter( Yi, YTemps);
2619                        Yting[8]=YD1_xinter( Yi, YTemps);
2620                        Yting[9]=YD2_xinter( Yi, YTemps);
2621                        Yting[10]=YD3_xinter( Yi, YTemps);
2622                        Yting[11]=YD4_xinter( Yi, YTemps);
2623                        Yting[12]=YD5_xinter( Yi, YTemps);
2624                        Yting[13]=YD6_xinter( Yi, YTemps);
2625                        Yting[14]=YD7_xinter( Yi, YTemps);
2626                        Yting[15]=YD8_xinter( Yi, YTemps);
2627                        Yting[16]=YD1_r_float( Yi, YTemps-1);
2628                        Yting[17]=YD2_r_float( Yi, YTemps-1);
2629                        YLTRes = Yprosca(&YD1Y_ur, &YG1Y_ur, YNBS_ur);
2630                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_ur);
2631                        if (!Ytesterrad_mod("ur", YLTRes,YAdRes)) return(0);
2632         }
2633
2634}
2635
2636         return(0);
2637}
2638
2639 int Yforward_space_S_eulerlocate()
2640{
2641         YA1=1; YA2=87; YA3=58;
2642Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2643for(Yi=0; Yi<YA1_S_eulerlocate; ++Yi)
2644for(Yj=0; Yj<YA2_S_eulerlocate; ++Yj)
2645for(Yk=0; Yk<YA3_S_eulerlocate; ++Yk)
2646{
2647         Yting[0]=YS1_r_float( Yi, YTemps-1);
2648         Yting[1]=YS2_r_float( Yi, YTemps-1);
2649         Ylocate(Yi, Yj, Yk)->forward( Yting[0], Yting[1] );
2650
2651}
2652
2653         return(0);
2654}
2655
2656 int Ylinward_space_S_eulerlocate()
2657{
2658         YA1=1; YA2=87; YA3=58;
2659Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2660for(Yi=0; Yi<YA1_S_eulerlocate; ++Yi)
2661for(Yj=0; Yj<YA2_S_eulerlocate; ++Yj)
2662for(Yk=0; Yk<YA3_S_eulerlocate; ++Yk)
2663{
2664         Yting[0]=YS1_r_float( Yi, YTemps-1);
2665         Yting[1]=YS2_r_float( Yi, YTemps-1);
2666         Ytbeta[0]=YG1_r_float( Yi, YTemps-1);
2667         Ytbeta[1]=YG2_r_float( Yi, YTemps-1);
2668         memset(Yjac, 0, 18*sizeof(double));
2669         Ylocate(Yi, Yj, Yk)->backward( Yting[0], Yting[1] );
2670         Yvsmat (YNBS_locate, YNBI_locate, YMAX_JAC_NBI, &YG1Y_locate, Yjac[0], Ytbeta);
2671         if (Ytestad_module)
2672         {      memcpy(&YD1Y_locate, &YG1Y_locate, YNBS_locate*sizeof(YREAL));
2673         }
2674
2675}
2676
2677         return(0);
2678}
2679
2680int Ydfward_space_S_eulerlocate(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk)
2681{
2682         int nbko=0;
2683         YA1=1; YA2=87; YA3=58;
2684Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2685for(Yi=0; Yi<YA1_S_eulerlocate; ++Yi)
2686for(Yj=0; Yj<YA2_S_eulerlocate; ++Yj)
2687for(Yk=0; Yk<YA3_S_eulerlocate; ++Yk)
2688{
2689         Yting[0]=YS1_r_float( Yi, YTemps-1);
2690         Yting[1]=YS2_r_float( Yi, YTemps-1);
2691        if (!strcmp(nmmod, "locate") || All)
2692        {
2693         if (Yi>=yi && Yj>=yj && Yk>=yk) 
2694         {      nbko += Ytestdf_locate(modop,KeKo,pdx,ptol,YNBI_locate,YNBS_locate,"locate",Yting,Ylocate[Yi][Yj][Yk]->Ystate[0],Ylocate[Yi][Yj][Yk]);
2695                 if (nbko>=koleft) return(nbko);
2696         }
2697        }
2698         Ylocate(Yi, Yj, Yk)->forward( Yting[0], Yting[1] );
2699
2700}
2701
2702         return(nbko);
2703}
2704
2705int Ydfward_space_maille_S_eulerlocate(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
2706{
2707         int nbko=0;
2708         Yting[0]=YS1_r_float( Yi, YTemps-1);
2709         Yting[1]=YS2_r_float( Yi, YTemps-1);
2710        if (!strcmp(nmmod, "locate") || All)
2711        {
2712         nbko += Ytestdf_locate(modop,KeKo,pdx,ptol,YNBI_locate,YNBS_locate,"locate",Yting,Ylocate[Yi][Yj][Yk]->Ystate[0],Ylocate[Yi][Yj][Yk]);
2713        }
2714         Ylocate(Yi, Yj, Yk)->forward( Yting[0], Yting[1] );
2715         return(nbko);
2716}
2717
2718 int Ybackward_space_S_eulerlocate()
2719{
2720         YA1=1; YA2=87; YA3=58;
2721Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2722for(Yi=YA1_S_eulerlocate-1; Yi>=0; --Yi)
2723for(Yj=YA2_S_eulerlocate-1; Yj>=0; --Yj)
2724for(Yk=YA3_S_eulerlocate-1; Yk>=0; --Yk)
2725{
2726         Yting[0]=YS1_r_float( Yi, YTemps-1);
2727         Yting[1]=YS2_r_float( Yi, YTemps-1);
2728         memset(Yjac, 0, 18*sizeof(double));
2729         Ylocate(Yi, Yj, Yk)->backward( Yting[0], Yting[1] );
2730         Yvsmatt (YNBS_locate, YNBI_locate, YMAX_JAC_NBI, &YG1Y_locate, Yjac[0], Ytbeta);
2731         YG1_r_float( Yi, YTemps-1) += Ytbeta[0];
2732         YG2_r_float( Yi, YTemps-1) += Ytbeta[1];
2733         if (Ytestad_module) {
2734                        Yting[0]=YD1_r_float( Yi, YTemps-1);
2735                        Yting[1]=YD2_r_float( Yi, YTemps-1);
2736                        YLTRes = Yprosca(&YD1Y_locate, &YG1Y_locate, YNBS_locate);
2737                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_locate);
2738                        if (!Ytesterrad_mod("locate", YLTRes,YAdRes)) return(0);
2739         }
2740
2741}
2742
2743         return(0);
2744}
2745
2746int Yforward_traj_T_float(int nbp)
2747{
2748        Ycurward=FORWARD;
2749         Yforward_space_S_eulerlocate();
2750         Yforward_space_S_float();
2751         return(0);
2752}
2753
2754int Ylinward_traj_T_float(int nbp)
2755{
2756        Ycurward=LINWARD;
2757         Ylinward_space_S_eulerlocate();
2758         Ylinward_space_S_float();
2759         return(0);
2760}
2761
2762int Ydfward_traj_T_float(int modop, char *nmmod, int All, int KeKo, int koleft,float pdx, float ptol, int yi, int yj, int yk)
2763{
2764         int nbko=0;
2765         if (!Ydftesttt(0)) return(0);
2766         nbko += Ydfward_space_S_eulerlocate(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk);
2767         nbko += Ydfward_space_S_float(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk);
2768         return(nbko);
2769}
2770
2771int Ydfward_traj_maille_T_float(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
2772{
2773         int nbko=0;
2774         if (!Ydftesttt(0)) return(0);
2775         nbko += Ydfward_space_maille_S_eulerlocate(modop, nmmod, All, KeKo, pdx, ptol);
2776         nbko += Ydfward_space_maille_S_float(modop, nmmod, All, KeKo, pdx, ptol);
2777         return(nbko);
2778}
2779
2780int Ybackward_traj_T_float(int nbp)
2781{
2782        Ycurward=BACKWARD;
2783         Ybackward_space_S_float();
2784         Ybackward_space_S_eulerlocate();
2785         return(0);
2786}
2787
2788 int Yforward_space_S_float_d()
2789{
2790         YA1=1; YA2=0; YA3=0;
2791Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2792for(Yi=0; Yi<YA1_S_float_d; ++Yi)
2793{
2794         Yting[0]=YS1_uinter_d( Yi, YTemps);
2795         Yting[1]=YS2_uinter_d( Yi, YTemps);
2796         Yting[2]=YS3_uinter_d( Yi, YTemps);
2797         Yting[3]=YS4_uinter_d( Yi, YTemps);
2798         Yting[4]=YS5_uinter_d( Yi, YTemps);
2799         Yting[5]=YS6_uinter_d( Yi, YTemps);
2800         Yting[6]=YS7_uinter_d( Yi, YTemps);
2801         Yting[7]=YS8_uinter_d( Yi, YTemps);
2802Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2803         Yting[8]=YS1_xinter( Yi, Ytps);
2804Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2805         Yting[9]=YS2_xinter( Yi, Ytps);
2806Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2807         Yting[10]=YS3_xinter( Yi, Ytps);
2808Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2809         Yting[11]=YS4_xinter( Yi, Ytps);
2810Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2811         Yting[12]=YS5_xinter( Yi, Ytps);
2812Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2813         Yting[13]=YS6_xinter( Yi, Ytps);
2814Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2815         Yting[14]=YS7_xinter( Yi, Ytps);
2816Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2817         Yting[15]=YS8_xinter( Yi, Ytps);
2818Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2819         Yting[16]=YS1_r_float( Yi, Ytps);
2820Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2821         Yting[17]=YS2_r_float( Yi, Ytps);
2822         Yur_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2823         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
2824         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
2825         Yting[2]=YS1_ur_d( Yi, YTemps);
2826         Yting[3]=YS2_ur_d( Yi, YTemps);
2827         Yr_float_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
2828         Yting[0]=YS1_r_float_d( Yi, YTemps);
2829         Yting[1]=YS2_r_float_d( Yi, YTemps);
2830         Yr_cout_d(Yi)->forward( Yting[0], Yting[1] );
2831
2832}
2833
2834         return(0);
2835}
2836
2837 int Ylinward_space_S_float_d()
2838{
2839         YA1=1; YA2=0; YA3=0;
2840Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2841for(Yi=0; Yi<YA1_S_float_d; ++Yi)
2842{
2843         Yting[0]=YS1_uinter_d( Yi, YTemps);
2844         Yting[1]=YS2_uinter_d( Yi, YTemps);
2845         Yting[2]=YS3_uinter_d( Yi, YTemps);
2846         Yting[3]=YS4_uinter_d( Yi, YTemps);
2847         Yting[4]=YS5_uinter_d( Yi, YTemps);
2848         Yting[5]=YS6_uinter_d( Yi, YTemps);
2849         Yting[6]=YS7_uinter_d( Yi, YTemps);
2850         Yting[7]=YS8_uinter_d( Yi, YTemps);
2851Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2852         Yting[8]=YS1_xinter( Yi, Ytps);
2853Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2854         Yting[9]=YS2_xinter( Yi, Ytps);
2855Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2856         Yting[10]=YS3_xinter( Yi, Ytps);
2857Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2858         Yting[11]=YS4_xinter( Yi, Ytps);
2859Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2860         Yting[12]=YS5_xinter( Yi, Ytps);
2861Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2862         Yting[13]=YS6_xinter( Yi, Ytps);
2863Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2864         Yting[14]=YS7_xinter( Yi, Ytps);
2865Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2866         Yting[15]=YS8_xinter( Yi, Ytps);
2867Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2868         Yting[16]=YS1_r_float( Yi, Ytps);
2869Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2870         Yting[17]=YS2_r_float( Yi, Ytps);
2871         Ytbeta[0]=YG1_uinter_d( Yi, YTemps);
2872         Ytbeta[1]=YG2_uinter_d( Yi, YTemps);
2873         Ytbeta[2]=YG3_uinter_d( Yi, YTemps);
2874         Ytbeta[3]=YG4_uinter_d( Yi, YTemps);
2875         Ytbeta[4]=YG5_uinter_d( Yi, YTemps);
2876         Ytbeta[5]=YG6_uinter_d( Yi, YTemps);
2877         Ytbeta[6]=YG7_uinter_d( Yi, YTemps);
2878         Ytbeta[7]=YG8_uinter_d( Yi, YTemps);
2879Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2880         Ytbeta[8]=YG1_xinter( Yi, Ytps);
2881Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2882         Ytbeta[9]=YG2_xinter( Yi, Ytps);
2883Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2884         Ytbeta[10]=YG3_xinter( Yi, Ytps);
2885Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2886         Ytbeta[11]=YG4_xinter( Yi, Ytps);
2887Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2888         Ytbeta[12]=YG5_xinter( Yi, Ytps);
2889Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2890         Ytbeta[13]=YG6_xinter( Yi, Ytps);
2891Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2892         Ytbeta[14]=YG7_xinter( Yi, Ytps);
2893Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2894         Ytbeta[15]=YG8_xinter( Yi, Ytps);
2895Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2896         Ytbeta[16]=YG1_r_float( Yi, Ytps);
2897Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2898         Ytbeta[17]=YG2_r_float( Yi, Ytps);
2899         memset(Yjac, 0, 36*sizeof(double));
2900         Yur_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2901         Yvsmat (YNBS_ur_d, YNBI_ur_d, YMAX_JAC_NBI, &YG1Y_ur_d, Yjac[0], Ytbeta);
2902         if (Ytestad_module)
2903         {      memcpy(&YD1Y_ur_d, &YG1Y_ur_d, YNBS_ur_d*sizeof(YREAL));
2904         }
2905         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
2906         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
2907         Yting[2]=YS1_ur_d( Yi, YTemps);
2908         Yting[3]=YS2_ur_d( Yi, YTemps);
2909         Ytbeta[0]=YG1_r_float_d( Yi, YTemps-1);
2910         Ytbeta[1]=YG2_r_float_d( Yi, YTemps-1);
2911         Ytbeta[2]=YG1_ur_d( Yi, YTemps);
2912         Ytbeta[3]=YG2_ur_d( Yi, YTemps);
2913         memset(Yjac, 0, 36*sizeof(double));
2914         Yr_float_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] );
2915         Yvsmat (YNBS_r_float_d, YNBI_r_float_d, YMAX_JAC_NBI, &YG1Y_r_float_d, Yjac[0], Ytbeta);
2916         if (Ytestad_module)
2917         {      memcpy(&YD1Y_r_float_d, &YG1Y_r_float_d, YNBS_r_float_d*sizeof(YREAL));
2918         }
2919         Yting[0]=YS1_r_float_d( Yi, YTemps);
2920         Yting[1]=YS2_r_float_d( Yi, YTemps);
2921         Ytbeta[0]=YG1_r_float_d( Yi, YTemps);
2922         Ytbeta[1]=YG2_r_float_d( Yi, YTemps);
2923         memset(Yjac, 0, 36*sizeof(double));
2924         Yr_cout_d(Yi)->backward( Yting[0], Yting[1] );
2925         Yvsmat (YNBS_r_cout_d, YNBI_r_cout_d, YMAX_JAC_NBI, &YG1Y_r_cout_d, Yjac[0], Ytbeta);
2926         if (Ytestad_module)
2927         {      memcpy(&YD1Y_r_cout_d, &YG1Y_r_cout_d, YNBS_r_cout_d*sizeof(YREAL));
2928         }
2929
2930}
2931
2932         return(0);
2933}
2934
2935int Ydfward_space_S_float_d(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk)
2936{
2937         int nbko=0;
2938         YA1=1; YA2=0; YA3=0;
2939Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
2940for(Yi=0; Yi<YA1_S_float_d; ++Yi)
2941{
2942         Yting[0]=YS1_uinter_d( Yi, YTemps);
2943         Yting[1]=YS2_uinter_d( Yi, YTemps);
2944         Yting[2]=YS3_uinter_d( Yi, YTemps);
2945         Yting[3]=YS4_uinter_d( Yi, YTemps);
2946         Yting[4]=YS5_uinter_d( Yi, YTemps);
2947         Yting[5]=YS6_uinter_d( Yi, YTemps);
2948         Yting[6]=YS7_uinter_d( Yi, YTemps);
2949         Yting[7]=YS8_uinter_d( Yi, YTemps);
2950Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2951         Yting[8]=YS1_xinter( Yi, Ytps);
2952Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2953         Yting[9]=YS2_xinter( Yi, Ytps);
2954Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2955         Yting[10]=YS3_xinter( Yi, Ytps);
2956Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2957         Yting[11]=YS4_xinter( Yi, Ytps);
2958Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2959         Yting[12]=YS5_xinter( Yi, Ytps);
2960Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2961         Yting[13]=YS6_xinter( Yi, Ytps);
2962Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2963         Yting[14]=YS7_xinter( Yi, Ytps);
2964Ytps = Ytttt_pdt(0, YTemps, YidTraj);
2965         Yting[15]=YS8_xinter( Yi, Ytps);
2966Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2967         Yting[16]=YS1_r_float( Yi, Ytps);
2968Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
2969         Yting[17]=YS2_r_float( Yi, Ytps);
2970        if (!strcmp(nmmod, "ur_d") || All)
2971        {
2972         if (Yi>=yi && Yj>=yj && Yk>=yk) 
2973         {      nbko += Ytestdf_ur_d(modop,KeKo,pdx,ptol,YNBI_ur_d,YNBS_ur_d,"ur_d",Yting,Yur_d[Yi]->Ystate[0],Yur_d[Yi]);
2974                 if (nbko>=koleft) return(nbko);
2975         }
2976        }
2977         Yur_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
2978         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
2979         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
2980         Yting[2]=YS1_ur_d( Yi, YTemps);
2981         Yting[3]=YS2_ur_d( Yi, YTemps);
2982        if (!strcmp(nmmod, "r_float_d") || All)
2983        {
2984         if (Yi>=yi && Yj>=yj && Yk>=yk) 
2985         {      nbko += Ytestdf_r_float_d(modop,KeKo,pdx,ptol,YNBI_r_float_d,YNBS_r_float_d,"r_float_d",Yting,Yr_float_d[Yi]->Ystate[0],Yr_float_d[Yi]);
2986                 if (nbko>=koleft) return(nbko);
2987         }
2988        }
2989         Yr_float_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
2990         Yting[0]=YS1_r_float_d( Yi, YTemps);
2991         Yting[1]=YS2_r_float_d( Yi, YTemps);
2992        if (!strcmp(nmmod, "r_cout_d") || All)
2993        {
2994         if (Yi>=yi && Yj>=yj && Yk>=yk) 
2995         {      nbko += Ytestdf_r_cout_d(modop,KeKo,pdx,ptol,YNBI_r_cout_d,YNBS_r_cout_d,"r_cout_d",Yting,Yr_cout_d[Yi]->Ystate[0],Yr_cout_d[Yi]);
2996                 if (nbko>=koleft) return(nbko);
2997         }
2998        }
2999         Yr_cout_d(Yi)->forward( Yting[0], Yting[1] );
3000
3001}
3002
3003         return(nbko);
3004}
3005
3006int Ydfward_space_maille_S_float_d(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
3007{
3008         int nbko=0;
3009         Yting[0]=YS1_uinter_d( Yi, YTemps);
3010         Yting[1]=YS2_uinter_d( Yi, YTemps);
3011         Yting[2]=YS3_uinter_d( Yi, YTemps);
3012         Yting[3]=YS4_uinter_d( Yi, YTemps);
3013         Yting[4]=YS5_uinter_d( Yi, YTemps);
3014         Yting[5]=YS6_uinter_d( Yi, YTemps);
3015         Yting[6]=YS7_uinter_d( Yi, YTemps);
3016         Yting[7]=YS8_uinter_d( Yi, YTemps);
3017Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3018         Yting[8]=YS1_xinter( Yi, Ytps);
3019Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3020         Yting[9]=YS2_xinter( Yi, Ytps);
3021Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3022         Yting[10]=YS3_xinter( Yi, Ytps);
3023Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3024         Yting[11]=YS4_xinter( Yi, Ytps);
3025Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3026         Yting[12]=YS5_xinter( Yi, Ytps);
3027Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3028         Yting[13]=YS6_xinter( Yi, Ytps);
3029Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3030         Yting[14]=YS7_xinter( Yi, Ytps);
3031Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3032         Yting[15]=YS8_xinter( Yi, Ytps);
3033Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3034         Yting[16]=YS1_r_float( Yi, Ytps);
3035Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3036         Yting[17]=YS2_r_float( Yi, Ytps);
3037        if (!strcmp(nmmod, "ur_d") || All)
3038        {
3039         nbko += Ytestdf_ur_d(modop,KeKo,pdx,ptol,YNBI_ur_d,YNBS_ur_d,"ur_d",Yting,Yur_d[Yi]->Ystate[0],Yur_d[Yi]);
3040        }
3041         Yur_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
3042         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3043         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3044         Yting[2]=YS1_ur_d( Yi, YTemps);
3045         Yting[3]=YS2_ur_d( Yi, YTemps);
3046        if (!strcmp(nmmod, "r_float_d") || All)
3047        {
3048         nbko += Ytestdf_r_float_d(modop,KeKo,pdx,ptol,YNBI_r_float_d,YNBS_r_float_d,"r_float_d",Yting,Yr_float_d[Yi]->Ystate[0],Yr_float_d[Yi]);
3049        }
3050         Yr_float_d(Yi)->forward( Yting[0], Yting[1], Yting[2], Yting[3] );
3051         Yting[0]=YS1_r_float_d( Yi, YTemps);
3052         Yting[1]=YS2_r_float_d( Yi, YTemps);
3053        if (!strcmp(nmmod, "r_cout_d") || All)
3054        {
3055         nbko += Ytestdf_r_cout_d(modop,KeKo,pdx,ptol,YNBI_r_cout_d,YNBS_r_cout_d,"r_cout_d",Yting,Yr_cout_d[Yi]->Ystate[0],Yr_cout_d[Yi]);
3056        }
3057         Yr_cout_d(Yi)->forward( Yting[0], Yting[1] );
3058         return(nbko);
3059}
3060
3061 int Ybackward_space_S_float_d()
3062{
3063         YA1=1; YA2=0; YA3=0;
3064Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
3065for(Yi=YA1_S_float_d-1; Yi>=0; --Yi)
3066{
3067         Yting[0]=YS1_r_float_d( Yi, YTemps);
3068         Yting[1]=YS2_r_float_d( Yi, YTemps);
3069         memset(Yjac, 0, 36*sizeof(double));
3070         Yr_cout_d(Yi)->backward( Yting[0], Yting[1] );
3071         Yvsmatt (YNBS_r_cout_d, YNBI_r_cout_d, YMAX_JAC_NBI, &YG1Y_r_cout_d, Yjac[0], Ytbeta);
3072         YG1_r_float_d( Yi, YTemps) += Ytbeta[0];
3073         YG2_r_float_d( Yi, YTemps) += Ytbeta[1];
3074         if (Ytestad_module) {
3075                        Yting[0]=YD1_r_float_d( Yi, YTemps);
3076                        Yting[1]=YD2_r_float_d( Yi, YTemps);
3077                        YLTRes = Yprosca(&YD1Y_r_cout_d, &YG1Y_r_cout_d, YNBS_r_cout_d);
3078                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_r_cout_d);
3079                        if (!Ytesterrad_mod("r_cout_d", YLTRes,YAdRes)) return(0);
3080         }
3081         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3082         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3083         Yting[2]=YS1_ur_d( Yi, YTemps);
3084         Yting[3]=YS2_ur_d( Yi, YTemps);
3085         memset(Yjac, 0, 36*sizeof(double));
3086         Yr_float_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3] );
3087         Yvsmatt (YNBS_r_float_d, YNBI_r_float_d, YMAX_JAC_NBI, &YG1Y_r_float_d, Yjac[0], Ytbeta);
3088         YG1_r_float_d( Yi, YTemps-1) += Ytbeta[0];
3089         YG2_r_float_d( Yi, YTemps-1) += Ytbeta[1];
3090         YG1_ur_d( Yi, YTemps) += Ytbeta[2];
3091         YG2_ur_d( Yi, YTemps) += Ytbeta[3];
3092         if (Ytestad_module) {
3093                        Yting[0]=YD1_r_float_d( Yi, YTemps-1);
3094                        Yting[1]=YD2_r_float_d( Yi, YTemps-1);
3095                        Yting[2]=YD1_ur_d( Yi, YTemps);
3096                        Yting[3]=YD2_ur_d( Yi, YTemps);
3097                        YLTRes = Yprosca(&YD1Y_r_float_d, &YG1Y_r_float_d, YNBS_r_float_d);
3098                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_r_float_d);
3099                        if (!Ytesterrad_mod("r_float_d", YLTRes,YAdRes)) return(0);
3100         }
3101         Yting[0]=YS1_uinter_d( Yi, YTemps);
3102         Yting[1]=YS2_uinter_d( Yi, YTemps);
3103         Yting[2]=YS3_uinter_d( Yi, YTemps);
3104         Yting[3]=YS4_uinter_d( Yi, YTemps);
3105         Yting[4]=YS5_uinter_d( Yi, YTemps);
3106         Yting[5]=YS6_uinter_d( Yi, YTemps);
3107         Yting[6]=YS7_uinter_d( Yi, YTemps);
3108         Yting[7]=YS8_uinter_d( Yi, YTemps);
3109Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3110         Yting[8]=YS1_xinter( Yi, Ytps);
3111Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3112         Yting[9]=YS2_xinter( Yi, Ytps);
3113Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3114         Yting[10]=YS3_xinter( Yi, Ytps);
3115Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3116         Yting[11]=YS4_xinter( Yi, Ytps);
3117Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3118         Yting[12]=YS5_xinter( Yi, Ytps);
3119Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3120         Yting[13]=YS6_xinter( Yi, Ytps);
3121Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3122         Yting[14]=YS7_xinter( Yi, Ytps);
3123Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3124         Yting[15]=YS8_xinter( Yi, Ytps);
3125Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3126         Yting[16]=YS1_r_float( Yi, Ytps);
3127Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3128         Yting[17]=YS2_r_float( Yi, Ytps);
3129         memset(Yjac, 0, 36*sizeof(double));
3130         Yur_d(Yi)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6], Yting[7], Yting[8], Yting[9], Yting[10], Yting[11], Yting[12], Yting[13], Yting[14], Yting[15], Yting[16], Yting[17] );
3131         Yvsmatt (YNBS_ur_d, YNBI_ur_d, YMAX_JAC_NBI, &YG1Y_ur_d, Yjac[0], Ytbeta);
3132         YG1_uinter_d( Yi, YTemps) += Ytbeta[0];
3133         YG2_uinter_d( Yi, YTemps) += Ytbeta[1];
3134         YG3_uinter_d( Yi, YTemps) += Ytbeta[2];
3135         YG4_uinter_d( Yi, YTemps) += Ytbeta[3];
3136         YG5_uinter_d( Yi, YTemps) += Ytbeta[4];
3137         YG6_uinter_d( Yi, YTemps) += Ytbeta[5];
3138         YG7_uinter_d( Yi, YTemps) += Ytbeta[6];
3139         YG8_uinter_d( Yi, YTemps) += Ytbeta[7];
3140Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3141         YG1_xinter( Yi, Ytps) += Ytbeta[8];
3142Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3143         YG2_xinter( Yi, Ytps) += Ytbeta[9];
3144Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3145         YG3_xinter( Yi, Ytps) += Ytbeta[10];
3146Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3147         YG4_xinter( Yi, Ytps) += Ytbeta[11];
3148Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3149         YG5_xinter( Yi, Ytps) += Ytbeta[12];
3150Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3151         YG6_xinter( Yi, Ytps) += Ytbeta[13];
3152Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3153         YG7_xinter( Yi, Ytps) += Ytbeta[14];
3154Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3155         YG8_xinter( Yi, Ytps) += Ytbeta[15];
3156Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3157         YG1_r_float( Yi, Ytps) += Ytbeta[16];
3158Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3159         YG2_r_float( Yi, Ytps) += Ytbeta[17];
3160         if (Ytestad_module) {
3161                        Yting[0]=YD1_uinter_d( Yi, YTemps);
3162                        Yting[1]=YD2_uinter_d( Yi, YTemps);
3163                        Yting[2]=YD3_uinter_d( Yi, YTemps);
3164                        Yting[3]=YD4_uinter_d( Yi, YTemps);
3165                        Yting[4]=YD5_uinter_d( Yi, YTemps);
3166                        Yting[5]=YD6_uinter_d( Yi, YTemps);
3167                        Yting[6]=YD7_uinter_d( Yi, YTemps);
3168                        Yting[7]=YD8_uinter_d( Yi, YTemps);
3169Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3170                        Yting[8]=YD1_xinter( Yi, Ytps);
3171Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3172                        Yting[9]=YD2_xinter( Yi, Ytps);
3173Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3174                        Yting[10]=YD3_xinter( Yi, Ytps);
3175Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3176                        Yting[11]=YD4_xinter( Yi, Ytps);
3177Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3178                        Yting[12]=YD5_xinter( Yi, Ytps);
3179Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3180                        Yting[13]=YD6_xinter( Yi, Ytps);
3181Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3182                        Yting[14]=YD7_xinter( Yi, Ytps);
3183Ytps = Ytttt_pdt(0, YTemps, YidTraj);
3184                        Yting[15]=YD8_xinter( Yi, Ytps);
3185Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3186                        Yting[16]=YD1_r_float( Yi, Ytps);
3187Ytps = Ytttt_pdt(0, YTemps-1, YidTraj);
3188                        Yting[17]=YD2_r_float( Yi, Ytps);
3189                        YLTRes = Yprosca(&YD1Y_ur_d, &YG1Y_ur_d, YNBS_ur_d);
3190                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_ur_d);
3191                        if (!Ytesterrad_mod("ur_d", YLTRes,YAdRes)) return(0);
3192         }
3193
3194}
3195
3196         return(0);
3197}
3198
3199 int Yforward_space_S_eulerlocate_d()
3200{
3201         YA1=1; YA2=87; YA3=58;
3202Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
3203for(Yi=0; Yi<YA1_S_eulerlocate_d; ++Yi)
3204for(Yj=0; Yj<YA2_S_eulerlocate_d; ++Yj)
3205for(Yk=0; Yk<YA3_S_eulerlocate_d; ++Yk)
3206{
3207         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3208         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3209         Ylocate_d(Yi, Yj, Yk)->forward( Yting[0], Yting[1] );
3210
3211}
3212
3213         return(0);
3214}
3215
3216 int Ylinward_space_S_eulerlocate_d()
3217{
3218         YA1=1; YA2=87; YA3=58;
3219Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
3220for(Yi=0; Yi<YA1_S_eulerlocate_d; ++Yi)
3221for(Yj=0; Yj<YA2_S_eulerlocate_d; ++Yj)
3222for(Yk=0; Yk<YA3_S_eulerlocate_d; ++Yk)
3223{
3224         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3225         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3226         Ytbeta[0]=YG1_r_float_d( Yi, YTemps-1);
3227         Ytbeta[1]=YG2_r_float_d( Yi, YTemps-1);
3228         memset(Yjac, 0, 18*sizeof(double));
3229         Ylocate_d(Yi, Yj, Yk)->backward( Yting[0], Yting[1] );
3230         Yvsmat (YNBS_locate_d, YNBI_locate_d, YMAX_JAC_NBI, &YG1Y_locate_d, Yjac[0], Ytbeta);
3231         if (Ytestad_module)
3232         {      memcpy(&YD1Y_locate_d, &YG1Y_locate_d, YNBS_locate_d*sizeof(YREAL));
3233         }
3234
3235}
3236
3237         return(0);
3238}
3239
3240int Ydfward_space_S_eulerlocate_d(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk)
3241{
3242         int nbko=0;
3243         YA1=1; YA2=87; YA3=58;
3244Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
3245for(Yi=0; Yi<YA1_S_eulerlocate_d; ++Yi)
3246for(Yj=0; Yj<YA2_S_eulerlocate_d; ++Yj)
3247for(Yk=0; Yk<YA3_S_eulerlocate_d; ++Yk)
3248{
3249         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3250         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3251        if (!strcmp(nmmod, "locate_d") || All)
3252        {
3253         if (Yi>=yi && Yj>=yj && Yk>=yk) 
3254         {      nbko += Ytestdf_locate_d(modop,KeKo,pdx,ptol,YNBI_locate_d,YNBS_locate_d,"locate_d",Yting,Ylocate_d[Yi][Yj][Yk]->Ystate[0],Ylocate_d[Yi][Yj][Yk]);
3255                 if (nbko>=koleft) return(nbko);
3256         }
3257        }
3258         Ylocate_d(Yi, Yj, Yk)->forward( Yting[0], Yting[1] );
3259
3260}
3261
3262         return(nbko);
3263}
3264
3265int Ydfward_space_maille_S_eulerlocate_d(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
3266{
3267         int nbko=0;
3268         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3269         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3270        if (!strcmp(nmmod, "locate_d") || All)
3271        {
3272         nbko += Ytestdf_locate_d(modop,KeKo,pdx,ptol,YNBI_locate_d,YNBS_locate_d,"locate_d",Yting,Ylocate_d[Yi][Yj][Yk]->Ystate[0],Ylocate_d[Yi][Yj][Yk]);
3273        }
3274         Ylocate_d(Yi, Yj, Yk)->forward( Yting[0], Yting[1] );
3275         return(nbko);
3276}
3277
3278 int Ybackward_space_S_eulerlocate_d()
3279{
3280         YA1=1; YA2=87; YA3=58;
3281Yi=-1; Yj=-1; Yk=-1; /* init des indices de maille: maj par la boucle si valide*/
3282for(Yi=YA1_S_eulerlocate_d-1; Yi>=0; --Yi)
3283for(Yj=YA2_S_eulerlocate_d-1; Yj>=0; --Yj)
3284for(Yk=YA3_S_eulerlocate_d-1; Yk>=0; --Yk)
3285{
3286         Yting[0]=YS1_r_float_d( Yi, YTemps-1);
3287         Yting[1]=YS2_r_float_d( Yi, YTemps-1);
3288         memset(Yjac, 0, 18*sizeof(double));
3289         Ylocate_d(Yi, Yj, Yk)->backward( Yting[0], Yting[1] );
3290         Yvsmatt (YNBS_locate_d, YNBI_locate_d, YMAX_JAC_NBI, &YG1Y_locate_d, Yjac[0], Ytbeta);
3291         YG1_r_float_d( Yi, YTemps-1) += Ytbeta[0];
3292         YG2_r_float_d( Yi, YTemps-1) += Ytbeta[1];
3293         if (Ytestad_module) {
3294                        Yting[0]=YD1_r_float_d( Yi, YTemps-1);
3295                        Yting[1]=YD2_r_float_d( Yi, YTemps-1);
3296                        YLTRes = Yprosca(&YD1Y_locate_d, &YG1Y_locate_d, YNBS_locate_d);
3297                        YAdRes = Yprosca(Yting, Ytbeta, YNBI_locate_d);
3298                        if (!Ytesterrad_mod("locate_d", YLTRes,YAdRes)) return(0);
3299         }
3300
3301}
3302
3303         return(0);
3304}
3305
3306int Yforward_traj_T_float_d(int nbp)
3307{
3308        Ycurward=FORWARD;
3309         Yforward_space_S_eulerlocate_d();
3310         Yforward_space_S_float_d();
3311         return(0);
3312}
3313
3314int Ylinward_traj_T_float_d(int nbp)
3315{
3316        Ycurward=LINWARD;
3317         Ylinward_space_S_eulerlocate_d();
3318         Ylinward_space_S_float_d();
3319         return(0);
3320}
3321
3322int Ydfward_traj_T_float_d(int modop, char *nmmod, int All, int KeKo, int koleft,float pdx, float ptol, int yi, int yj, int yk)
3323{
3324         int nbko=0;
3325         if (!Ydftesttt(2)) return(0);
3326         nbko += Ydfward_space_S_eulerlocate_d(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk);
3327         nbko += Ydfward_space_S_float_d(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk);
3328         return(nbko);
3329}
3330
3331int Ydfward_traj_maille_T_float_d(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
3332{
3333         int nbko=0;
3334         if (!Ydftesttt(2)) return(0);
3335         nbko += Ydfward_space_maille_S_eulerlocate_d(modop, nmmod, All, KeKo, pdx, ptol);
3336         nbko += Ydfward_space_maille_S_float_d(modop, nmmod, All, KeKo, pdx, ptol);
3337         return(nbko);
3338}
3339
3340int Ybackward_traj_T_float_d(int nbp)
3341{
3342        Ycurward=BACKWARD;
3343         Ybackward_space_S_float_d();
3344         Ybackward_space_S_eulerlocate_d();
3345         return(0);
3346}
3347
3348int Yforward_order()
3349{
3350         Yforward_traj_T_float(0);
3351         Yforward_traj_T_float_d(0);
3352         return(0);
3353}
3354
3355int Ylinward_order()
3356{
3357         Ylinward_traj_T_float(0);
3358         Ylinward_traj_T_float_d(0);
3359         return(0);
3360}
3361
3362int Ydfward_order(int modop, char *nmmod, int All, int KeKo, int koleft, float pdx, float ptol, int yi, int yj, int yk)
3363{
3364         int nbko=0;
3365         nbko += Ydfward_traj_T_float(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk);
3366         nbko += Ydfward_traj_T_float_d(modop, nmmod, All, KeKo, koleft, pdx, ptol, yi, yj, yk);
3367         return(nbko);
3368}
3369
3370int Ydfward_order_maille(int modop, char *nmmod, int All, int KeKo,  float pdx, float ptol)
3371{
3372         int nbko=0;
3373         nbko += Ydfward_traj_maille_T_float(modop, nmmod, All, KeKo, pdx, ptol);
3374         nbko += Ydfward_traj_maille_T_float_d(modop, nmmod, All, KeKo, pdx, ptol);
3375         return(nbko);
3376}
3377
3378int Ybackward_order()
3379{
3380         Ybackward_traj_T_float_d(0);
3381         Ybackward_traj_T_float(0);
3382         return(0);
3383}
3384
3385void Yforward_operator (char type) 
3386{       
3387}
3388void Ylinward_operator (char type) 
3389{       
3390}
3391void Ybackward_operator (char type) 
3392{       
3393}
3394
3395// € € € € € € € € LES FONCTIONS UTILISATEUR ... :
3396int Yuser_call (int argc, char *argv[]) 
3397{
3398         int codret=1;
3399         if (strcmp(argv[0], "update_uv") == 0)
3400                 update_uv();
3401         else codret=0;
3402         return(codret);
3403}
3404
3405//-------------- end Yao generation -----------------
Note: See TracBrowser for help on using the repository browser.