Changeset 14 for trunk/src


Ignore:
Timestamp:
03/18/11 17:35:53 (13 years ago)
Author:
jbrlod
Message:

experience 3D

Location:
trunk/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/Yworkdir/Y1sinobad.h

    r9 r14  
    5959//~~~~~~~~~~~~~~~~~~~~~~~~~ module sshn_c~~~~~~~~~~~~~~~~~~~~~~~~~ 
    6060#define Yid_sshn_c 0 
    61 #define YNBPTARGET_sshn_c 0 
    62 #define YDEBTARGET_sshn_c 0 
    63 #define YENDTARGET_sshn_c 0 
    6461/*M2_VALST  */ #define   Ydelta_sshn_c(v, i, j, t)               Ysshn_c[i][j]->Ydelta[t][v]  
    6562/*M2_VALST  */ #define   YD_sshn_c(v, i, j, t)           Ysshn_c[i][j]->Ydelta[t][v]  
     
    8077/*M2_VALSGI */ #define   YG1_sshn_c(i, j)                Ysshn_c[i][j]->Ygrad[0]  
    8178/*M2_HERESGI*/ #define   YG1Y_sshn_c             Ysshn_c[Yi][Yj]->Ygrad[0]  
    82 /*M2_VALSG  */ #define   Yepsi_sshn_c(v, i, j)           Ysshn_c[i][j]->Yepsi[v]  
    83 /*M2_VALSG  */ #define   YE_sshn_c(v, i, j)              Ysshn_c[i][j]->Yepsi[v]  
    84 /*M2_VALSGI */ #define   YE1_sshn_c(i, j)                Ysshn_c[i][j]->Yepsi[0]  
    8579Yaosshn_c                *Ysshn_c[YA1_S3d][YA2_S3d]; 
    86 /*M2_VALSG  */ #define   Ywish_sshn_c(v, i, j)           Ysshn_c[i][j]->Ywish[v]  
    87 /*M2_VALSG  */ #define   YW_sshn_c(v, i, j)              Ysshn_c[i][j]->Ywish[v]  
    88 /*M2_VALSGI */ #define   YW1_sshn_c(i, j)                Ysshn_c[i][j]->Ywish[0]  
    89 /*M2_HERESGI*/ #define   YW1Y_sshn_c             Ysshn_c[Yi][Yj]->Ywish[0]  
    9080 
    9181//~~~~~~~~~~~~~~~~~~~~~~~~~ module ta_c~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    122112//~~~~~~~~~~~~~~~~~~~~~~~~~ module sa_c~~~~~~~~~~~~~~~~~~~~~~~~~ 
    123113#define Yid_sa_c 2 
    124 #define YNBPTARGET_sa_c 0 
    125 #define YDEBTARGET_sa_c 0 
    126 #define YENDTARGET_sa_c 0 
    127114/*M3_VALST  */ #define   Ydelta_sa_c(v, i, j, k, t)      Ysa_c[i][j][k]->Ydelta[t][v]  
    128115/*M3_VALST  */ #define   YD_sa_c(v, i, j, k, t)                  Ysa_c[i][j][k]->Ydelta[t][v]  
     
    142129/*M3_VALSGI */ #define   YG1_sa_c(i, j, k)               Ysa_c[i][j][k]->Ygrad[0]  
    143130/*M3_HERESGI*/ #define   YG1Y_sa_c               Ysa_c[Yi][Yj][Yk]->Ygrad[0]  
    144 /*M3_VALSG  */ #define   Yepsi_sa_c(v, i, j, k)          Ysa_c[i][j][k]->Yepsi[v]  
    145 /*M3_VALSG  */ #define   YE_sa_c(v, i, j, k)             Ysa_c[i][j][k]->Yepsi[v]  
    146 /*M3_VALSGI */ #define   YE1_sa_c(i, j, k)               Ysa_c[i][j][k]->Yepsi[0]  
    147131Yaosa_c                  *Ysa_c[YA1_S3d][YA2_S3d][YA3_S3d]; 
    148 /*M3_VALSG  */ #define   Ywish_sa_c(v, i, j, k)          Ysa_c[i][j][k]->Ywish[v]  
    149 /*M3_VALSG  */ #define   YW_sa_c(v, i, j, k)             Ysa_c[i][j][k]->Ywish[v]  
    150 /*M3_VALSGI */ #define   YW1_sa_c(i, j, k)               Ysa_c[i][j][k]->Ywish[0]  
    151 /*M3_HERESGI*/ #define   YW1Y_sa_c               Ysa_c[Yi][Yj][Yk]->Ywish[0]  
    152132 
    153133//~~~~~~~~~~~~~~~~~~~~~~~~~ module ua_c~~~~~~~~~~~~~~~~~~~~~~~~~ 
    154134#define Yid_ua_c 3 
    155 #define YNBPTARGET_ua_c 0 
    156 #define YDEBTARGET_ua_c 0 
    157 #define YENDTARGET_ua_c 0 
    158135/*M3_VALST  */ #define   Ydelta_ua_c(v, i, j, k, t)      Yua_c[i][j][k]->Ydelta[t][v]  
    159136/*M3_VALST  */ #define   YD_ua_c(v, i, j, k, t)                  Yua_c[i][j][k]->Ydelta[t][v]  
     
    173150/*M3_VALSGI */ #define   YG1_ua_c(i, j, k)               Yua_c[i][j][k]->Ygrad[0]  
    174151/*M3_HERESGI*/ #define   YG1Y_ua_c               Yua_c[Yi][Yj][Yk]->Ygrad[0]  
    175 /*M3_VALSG  */ #define   Yepsi_ua_c(v, i, j, k)          Yua_c[i][j][k]->Yepsi[v]  
    176 /*M3_VALSG  */ #define   YE_ua_c(v, i, j, k)             Yua_c[i][j][k]->Yepsi[v]  
    177 /*M3_VALSGI */ #define   YE1_ua_c(i, j, k)               Yua_c[i][j][k]->Yepsi[0]  
    178152Yaoua_c                  *Yua_c[YA1_S3d][YA2_S3d][YA3_S3d]; 
    179 /*M3_VALSG  */ #define   Ywish_ua_c(v, i, j, k)          Yua_c[i][j][k]->Ywish[v]  
    180 /*M3_VALSG  */ #define   YW_ua_c(v, i, j, k)             Yua_c[i][j][k]->Ywish[v]  
    181 /*M3_VALSGI */ #define   YW1_ua_c(i, j, k)               Yua_c[i][j][k]->Ywish[0]  
    182 /*M3_HERESGI*/ #define   YW1Y_ua_c               Yua_c[Yi][Yj][Yk]->Ywish[0]  
    183153 
    184154//~~~~~~~~~~~~~~~~~~~~~~~~~ module va_c~~~~~~~~~~~~~~~~~~~~~~~~~ 
    185155#define Yid_va_c 4 
    186 #define YNBPTARGET_va_c 0 
    187 #define YDEBTARGET_va_c 0 
    188 #define YENDTARGET_va_c 0 
    189156/*M3_VALST  */ #define   Ydelta_va_c(v, i, j, k, t)      Yva_c[i][j][k]->Ydelta[t][v]  
    190157/*M3_VALST  */ #define   YD_va_c(v, i, j, k, t)                  Yva_c[i][j][k]->Ydelta[t][v]  
     
    204171/*M3_VALSGI */ #define   YG1_va_c(i, j, k)               Yva_c[i][j][k]->Ygrad[0]  
    205172/*M3_HERESGI*/ #define   YG1Y_va_c               Yva_c[Yi][Yj][Yk]->Ygrad[0]  
    206 /*M3_VALSG  */ #define   Yepsi_va_c(v, i, j, k)          Yva_c[i][j][k]->Yepsi[v]  
    207 /*M3_VALSG  */ #define   YE_va_c(v, i, j, k)             Yva_c[i][j][k]->Yepsi[v]  
    208 /*M3_VALSGI */ #define   YE1_va_c(i, j, k)               Yva_c[i][j][k]->Yepsi[0]  
    209173Yaova_c                  *Yva_c[YA1_S3d][YA2_S3d][YA3_S3d]; 
    210 /*M3_VALSG  */ #define   Ywish_va_c(v, i, j, k)          Yva_c[i][j][k]->Ywish[v]  
    211 /*M3_VALSG  */ #define   YW_va_c(v, i, j, k)             Yva_c[i][j][k]->Ywish[v]  
    212 /*M3_VALSGI */ #define   YW1_va_c(i, j, k)               Yva_c[i][j][k]->Ywish[0]  
    213 /*M3_HERESGI*/ #define   YW1Y_va_c               Yva_c[Yi][Yj][Yk]->Ywish[0]  
    214174 
    215175//~~~~~~~~~~~~~~~~~~~~~~~~~ module sbcgyre_qsr_qns~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    22602220/*M3_HERESIT*/ #define   YG1Y_wa                 Ywa[Yi][Yj][Yk]->Ygrad[YTemps][0]  
    22612221wa               *Ywa[YA1_S3dt][YA2_S3dt][YA3_S3dt]; 
    2262 #define  YSIZEPB   88000//sum of the number of states (output) of all targets 
     2222#define  YSIZEPB   21824//sum of the number of states (output) of all targets 
    22632223 
    22642224//€ € € € FOR M1QN3 € € € € € € € € € € € € € € € € € € € € € € € 
    22652225float   Y3x[YSIZEPB]; //table for the states of targets  
    22662226float   Y3g[YSIZEPB]; //table for the gradients of targets 
    2267 #define Y3_SZ_RZ   1760008  //rz dimension 
     2227#define Y3_SZ_RZ   436488  //rz dimension 
    22682228float   Y3rz[Y3_SZ_RZ]; 
    22692229#define Y3_SZ_IZ   5  //iz dimension 
     
    24292389              double     Ystate[YNBS_sshn_c]; 
    24302390              double     Ygrad[YNBS_sshn_c]; 
    2431               double     Yepsi[YNBS_sshn_c]; 
    2432               double     Ywish[YNBS_sshn_c]; 
    24332391              double     Ydelta[1][YNBS_sshn_c]; 
    24342392 
     
    24612419              double     Ystate[YNBS_sa_c]; 
    24622420              double     Ygrad[YNBS_sa_c]; 
    2463               double     Yepsi[YNBS_sa_c]; 
    2464               double     Ywish[YNBS_sa_c]; 
    24652421              double     Ydelta[1][YNBS_sa_c]; 
    24662422 
     
    24772433              double     Ystate[YNBS_ua_c]; 
    24782434              double     Ygrad[YNBS_ua_c]; 
    2479               double     Yepsi[YNBS_ua_c]; 
    2480               double     Ywish[YNBS_ua_c]; 
    24812435              double     Ydelta[1][YNBS_ua_c]; 
    24822436 
     
    24932447              double     Ystate[YNBS_va_c]; 
    24942448              double     Ygrad[YNBS_va_c]; 
    2495               double     Yepsi[YNBS_va_c]; 
    2496               double     Ywish[YNBS_va_c]; 
    24972449              double     Ydelta[1][YNBS_va_c]; 
    24982450 
     
    40974049void Yrazgrad_sshn_c();  
    40984050void Ysetstate_sshn_c();  
    4099 void Ysetepsi_sshn_c();  
    4100 void Yadjust_sshn_c();  
    4101 void Y3getstate_sshn_c(float x[]);  
    4102 void Y3valstate_sshn_c();  
    4103 void Y3valgrad_sshn_c(float g[]); void Yrazgrad_ta_c();  
     4051void Yrazgrad_ta_c();  
    41044052void Ysetstate_ta_c();  
    41054053void Ysetepsi_ta_c();  
     
    41094057void Y3valgrad_ta_c(float g[]); void Yrazgrad_sa_c();  
    41104058void Ysetstate_sa_c();  
    4111 void Ysetepsi_sa_c();  
    4112 void Yadjust_sa_c();  
    4113 void Y3getstate_sa_c(float x[]);  
    4114 void Y3valstate_sa_c();  
    4115 void Y3valgrad_sa_c(float g[]); void Yrazgrad_ua_c();  
     4059void Yrazgrad_ua_c();  
    41164060void Ysetstate_ua_c();  
    4117 void Ysetepsi_ua_c();  
    4118 void Yadjust_ua_c();  
    4119 void Y3getstate_ua_c(float x[]);  
    4120 void Y3valstate_ua_c();  
    4121 void Y3valgrad_ua_c(float g[]); void Yrazgrad_va_c();  
     4061void Yrazgrad_va_c();  
    41224062void Ysetstate_va_c();  
    4123 void Ysetepsi_va_c();  
    4124 void Yadjust_va_c();  
    4125 void Y3getstate_va_c(float x[]);  
    4126 void Y3valstate_va_c();  
    4127 void Y3valgrad_va_c(float g[]); void Yrazgrad_sbcgyre_qsr_qns();  
     4063void Yrazgrad_sbcgyre_qsr_qns();  
    41284064void Ysetstate_sbcgyre_qsr_qns();  
    41294065void Yrazgrad_sbcgyre_emp1();  
     
    43214257#define YNBMODUL       87  
    43224258struct Yst_modul YTabMod[87] = { 
    4323         {"sshn_c", *Ysshn_c, 2, 32, 22, 0, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
     4259        {"sshn_c", *Ysshn_c, 2, 32, 22, 0, 0, 1, 0, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
    43244260        {"ta_c", *Yta_c, 3, 32, 22, 31, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
    4325         {"sa_c", *Ysa_c, 3, 32, 22, 31, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
    4326         {"ua_c", *Yua_c, 3, 32, 22, 31, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
    4327         {"va_c", *Yva_c, 3, 32, 22, 31, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
     4261        {"sa_c", *Ysa_c, 3, 32, 22, 31, 0, 1, 0, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
     4262        {"ua_c", *Yua_c, 3, 32, 22, 31, 0, 1, 0, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
     4263        {"va_c", *Yva_c, 3, 32, 22, 31, 0, 1, 0, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S3d"}, 
    43284264        {"sbcgyre_qsr_qns", *Ysbcgyre_qsr_qns, 2, 32, 22, 0, 1, 2, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 
    43294265        {"sbcgyre_emp1", *Ysbcgyre_emp1, 2, 32, 22, 0, 0, 1, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 
  • trunk/src/Yworkdir/Y2sinobad.h

    r9 r14  
    55 
    66// € € € € € € € € LES FONCTIONS PREDEFINIES 
    7 /*M2_ADJUS*/  
    8 void Yadjust_sshn_c() 
    9 { 
    10          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1)  
    11          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2)  
    12          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws)  
    13          { Ystate_sshn_c(Yws, Yw1, Yw2) -= Yepsi_sshn_c(Yws, Yw1, Yw2) * Ygrad_sshn_c(Yws, Yw1, Yw2); 
    14         } 
    15 }/*M2_GCTOTB  */  
    16 void YgradCTOtab_sshn_c(YREAL tab[]) 
    17 { 
    18          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    19                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    20                          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws){ 
    21                                  tab[Y3windice] += YG_sshn_c(Yws, Yw1, Yw2); ++Y3windice;}}} 
    22 }/*M2_VSTA*/  
    23 void Y3valstate_sshn_c() 
    24 { 
    25          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    26                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    27                          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws){ 
    28                                  Y3x[Y3windice] = Ysshn_c(Yw1, Yw2)->Ystate[Yws]; ++Y3windice;}}} 
    29 }/*M2_GSTA*/  
    30 void Y3getstate_sshn_c(float x[]) 
    31 { 
    32          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    33                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    34                          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws){ 
    35                                  Ysshn_c(Yw1, Yw2)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}}} 
    36 }/*M2_VGRAD*/  
    37 void Y3valgrad_sshn_c(float g[]) 
    38 { 
    39          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    40                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    41                          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws){ 
    42                                  g[Y3windice] = Ysshn_c(Yw1, Yw2)->Ygrad[Yws]; ++Y3windice;}}} 
    43 }/*M2_TBTOG   */  
     7/*M2_TBTOG   */  
    448void YtabTOgrad_sshn_c(YREAL tab[]) 
    459{ 
     
    141105void Yio_sshn_c(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)         
    142106{  Yiorwf ("sshn_c", Yws, Yw1, Yw2, Yw3, Ywt, &YS_sshn_c(Yws, Yw1, Yw2), val); 
    143 }/*M0_OUTOB*/  
    144 int Youtoobs_sshn_c(YioKind yiokind, int Yws, int Ywt, int arbpdt) 
    145 { 
    146          Yaobs.time = arbpdt; 
    147          Yaobs.imod = Yimod("sshn_c"); 
    148          Yaobs.smod = Yws;/*M2_OUTOB*/  
    149          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1) 
    150          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2) 
    151          {      if(select_io(yiokind, "sshn_c", Yws, Yw1, Yw2, -1, Ywt, &Ystate_sshn_c(Yws, Yw1, Yw2))) 
    152                         {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = -1; 
    153                                 Yaobs.vobs = Ystate_sshn_c(Yws, Yw1, Yw2); 
    154                                 if(!Yobs_insert (&Yaobs)) return(0); 
    155                         } 
    156          }/*M9_OUTOB*/   
    157          return(1); 
    158 }/*M2_SEPS*/  
    159 void Ysetepsi_sshn_c(double val) 
    160 { 
    161          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    162                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    163                          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws){ 
    164                                  Ysshn_c(Yw1, Yw2)->Yepsi[Yws] = val;}}} 
    165107}/*M2_CREY*/  
    166108void Ycreate_sshn_c()   
     
    169111                 for (int Yw2=0; Yw2<YA2_S3d; ++Yw2){ 
    170112                         if ((Ysshn_c(Yw1, Yw2)= new Yaosshn_c ())==NULL) Ycreate_errnew();}} 
    171 }/*M2_SWISH*/  
    172 void Ysetwish_sshn_c(double val) 
    173 { 
    174          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    175                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    176                          for (int Yws=0; Yws<YNBS_sshn_c; ++Yws){ 
    177                                  Ywish_sshn_c(Yws, Yw1, Yw2) = val;}}} 
    178113}/*M3_ADJUS*/  
    179114void Yadjust_ta_c() 
     
    369304                                 for (int Yws=0; Yws<YNBS_ta_c; ++Yws){ 
    370305                                         Ywish_ta_c(Yws, Yw1, Yw2, Yw3) = val;}}}} 
    371 }/*M3_ADJUS*/  
    372 void Yadjust_sa_c() 
    373 { 
    374          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1)  
    375          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2)  
    376          for (int Yw3=0; Yw3<YA3_S3d; ++Yw3)  
    377          for (int Yws=0; Yws<YNBS_sa_c; ++Yws)  
    378          { Ystate_sa_c(Yws, Yw1, Yw2, Yw3) -= Yepsi_sa_c(Yws, Yw1, Yw2, Yw3) * Ygrad_sa_c(Yws, Yw1, Yw2, Yw3); 
    379         } 
    380 }/*M3_GCTOTB  */  
    381 void YgradCTOtab_sa_c(YREAL tab[]) 
    382 { 
    383          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    384                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    385                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    386                                  for (int Yws=0; Yws<YNBS_sa_c; ++Yws){ 
    387                                          tab[Y3windice] += YG_sa_c(Yws, Yw1, Yw2, Yw3); ++Y3windice;}}}} 
    388 }/*M3_VSTA*/  
    389 void Y3valstate_sa_c() 
    390 { 
    391          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    392                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    393                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    394                                  for (int Yws=0; Yws<YNBS_sa_c; ++Yws){ 
    395                                          Y3x[Y3windice] = Ysa_c(Yw1, Yw2, Yw3)->Ystate[Yws]; ++Y3windice;}}}} 
    396 }/*M3_GSTA*/  
    397 void Y3getstate_sa_c(float x[]) 
    398 { 
    399          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    400                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    401                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    402                                  for (int Yws=0; Yws<YNBS_sa_c; ++Yws){ 
    403                                          Ysa_c(Yw1, Yw2, Yw3)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}}}} 
    404 }/*M3_VGRAD*/  
    405 void Y3valgrad_sa_c(float g[]) 
    406 { 
    407          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    408                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    409                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    410                                  for (int Yws=0; Yws<YNBS_sa_c; ++Yws){ 
    411                                          g[Y3windice] = Ysa_c(Yw1, Yw2, Yw3)->Ygrad[Yws]; ++Y3windice;}}}} 
    412306}/*M3_TBTOG   */  
    413307void YtabTOgrad_sa_c(YREAL tab[]) 
     
    523417void Yio_sa_c(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)   
    524418{  Yiorwf ("sa_c", Yws, Yw1, Yw2, Yw3, Ywt, &YS_sa_c(Yws, Yw1, Yw2, Yw3), val); 
    525 }/*M0_OUTOB*/  
    526 int Youtoobs_sa_c(YioKind yiokind, int Yws, int Ywt, int arbpdt) 
    527 { 
    528          Yaobs.time = arbpdt; 
    529          Yaobs.imod = Yimod("sa_c"); 
    530          Yaobs.smod = Yws;/*M3_OUTOB*/  
    531          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1) 
    532          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2) 
    533          for (int Yw3=0; Yw3<YA3_S3d; ++Yw3) 
    534          {      if(select_io(yiokind, "sa_c", Yws, Yw1, Yw2, Yw3, Ywt, &Ystate_sa_c(Yws, Yw1, Yw2, Yw3))) 
    535                         {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = Yw3; 
    536                                 Yaobs.vobs = Ystate_sa_c(Yws, Yw1, Yw2, Yw3); 
    537                                 if(!Yobs_insert (&Yaobs)) return(0); 
    538                         } 
    539          }/*M9_OUTOB*/   
    540          return(1); 
    541 }/*M3_SEPS*/  
    542 void Ysetepsi_sa_c(double val) 
    543 { 
    544          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    545                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    546                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    547                                  for (int Yws=0; Yws<YNBS_sa_c; ++Yws){ 
    548                                          Ysa_c(Yw1, Yw2, Yw3)->Yepsi[Yws] = val;}}}} 
    549419}/*M3_CREY*/  
    550420void Ycreate_sa_c()   
     
    554424                         for (int Yw3=0; Yw3<YA3_S3d; ++Yw3){ 
    555425                                 if ((Ysa_c(Yw1, Yw2, Yw3) = new Yaosa_c ())==NULL) Ycreate_errnew();}}} 
    556 }/*M3_SWISH*/  
    557 void Ysetwish_sa_c(double val) 
    558 { 
    559          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    560                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    561                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    562                                  for (int Yws=0; Yws<YNBS_sa_c; ++Yws){ 
    563                                          Ywish_sa_c(Yws, Yw1, Yw2, Yw3) = val;}}}} 
    564 }/*M3_ADJUS*/  
    565 void Yadjust_ua_c() 
    566 { 
    567          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1)  
    568          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2)  
    569          for (int Yw3=0; Yw3<YA3_S3d; ++Yw3)  
    570          for (int Yws=0; Yws<YNBS_ua_c; ++Yws)  
    571          { Ystate_ua_c(Yws, Yw1, Yw2, Yw3) -= Yepsi_ua_c(Yws, Yw1, Yw2, Yw3) * Ygrad_ua_c(Yws, Yw1, Yw2, Yw3); 
    572         } 
    573 }/*M3_GCTOTB  */  
    574 void YgradCTOtab_ua_c(YREAL tab[]) 
    575 { 
    576          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    577                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    578                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    579                                  for (int Yws=0; Yws<YNBS_ua_c; ++Yws){ 
    580                                          tab[Y3windice] += YG_ua_c(Yws, Yw1, Yw2, Yw3); ++Y3windice;}}}} 
    581 }/*M3_VSTA*/  
    582 void Y3valstate_ua_c() 
    583 { 
    584          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    585                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    586                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    587                                  for (int Yws=0; Yws<YNBS_ua_c; ++Yws){ 
    588                                          Y3x[Y3windice] = Yua_c(Yw1, Yw2, Yw3)->Ystate[Yws]; ++Y3windice;}}}} 
    589 }/*M3_GSTA*/  
    590 void Y3getstate_ua_c(float x[]) 
    591 { 
    592          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    593                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    594                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    595                                  for (int Yws=0; Yws<YNBS_ua_c; ++Yws){ 
    596                                          Yua_c(Yw1, Yw2, Yw3)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}}}} 
    597 }/*M3_VGRAD*/  
    598 void Y3valgrad_ua_c(float g[]) 
    599 { 
    600          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    601                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    602                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    603                                  for (int Yws=0; Yws<YNBS_ua_c; ++Yws){ 
    604                                          g[Y3windice] = Yua_c(Yw1, Yw2, Yw3)->Ygrad[Yws]; ++Y3windice;}}}} 
    605426}/*M3_TBTOG   */  
    606427void YtabTOgrad_ua_c(YREAL tab[]) 
     
    716537void Yio_ua_c(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)   
    717538{  Yiorwf ("ua_c", Yws, Yw1, Yw2, Yw3, Ywt, &YS_ua_c(Yws, Yw1, Yw2, Yw3), val); 
    718 }/*M0_OUTOB*/  
    719 int Youtoobs_ua_c(YioKind yiokind, int Yws, int Ywt, int arbpdt) 
    720 { 
    721          Yaobs.time = arbpdt; 
    722          Yaobs.imod = Yimod("ua_c"); 
    723          Yaobs.smod = Yws;/*M3_OUTOB*/  
    724          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1) 
    725          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2) 
    726          for (int Yw3=0; Yw3<YA3_S3d; ++Yw3) 
    727          {      if(select_io(yiokind, "ua_c", Yws, Yw1, Yw2, Yw3, Ywt, &Ystate_ua_c(Yws, Yw1, Yw2, Yw3))) 
    728                         {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = Yw3; 
    729                                 Yaobs.vobs = Ystate_ua_c(Yws, Yw1, Yw2, Yw3); 
    730                                 if(!Yobs_insert (&Yaobs)) return(0); 
    731                         } 
    732          }/*M9_OUTOB*/   
    733          return(1); 
    734 }/*M3_SEPS*/  
    735 void Ysetepsi_ua_c(double val) 
    736 { 
    737          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    738                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    739                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    740                                  for (int Yws=0; Yws<YNBS_ua_c; ++Yws){ 
    741                                          Yua_c(Yw1, Yw2, Yw3)->Yepsi[Yws] = val;}}}} 
    742539}/*M3_CREY*/  
    743540void Ycreate_ua_c()   
     
    747544                         for (int Yw3=0; Yw3<YA3_S3d; ++Yw3){ 
    748545                                 if ((Yua_c(Yw1, Yw2, Yw3) = new Yaoua_c ())==NULL) Ycreate_errnew();}}} 
    749 }/*M3_SWISH*/  
    750 void Ysetwish_ua_c(double val) 
    751 { 
    752          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    753                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    754                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    755                                  for (int Yws=0; Yws<YNBS_ua_c; ++Yws){ 
    756                                          Ywish_ua_c(Yws, Yw1, Yw2, Yw3) = val;}}}} 
    757 }/*M3_ADJUS*/  
    758 void Yadjust_va_c() 
    759 { 
    760          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1)  
    761          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2)  
    762          for (int Yw3=0; Yw3<YA3_S3d; ++Yw3)  
    763          for (int Yws=0; Yws<YNBS_va_c; ++Yws)  
    764          { Ystate_va_c(Yws, Yw1, Yw2, Yw3) -= Yepsi_va_c(Yws, Yw1, Yw2, Yw3) * Ygrad_va_c(Yws, Yw1, Yw2, Yw3); 
    765         } 
    766 }/*M3_GCTOTB  */  
    767 void YgradCTOtab_va_c(YREAL tab[]) 
    768 { 
    769          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    770                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    771                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    772                                  for (int Yws=0; Yws<YNBS_va_c; ++Yws){ 
    773                                          tab[Y3windice] += YG_va_c(Yws, Yw1, Yw2, Yw3); ++Y3windice;}}}} 
    774 }/*M3_VSTA*/  
    775 void Y3valstate_va_c() 
    776 { 
    777          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    778                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    779                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    780                                  for (int Yws=0; Yws<YNBS_va_c; ++Yws){ 
    781                                          Y3x[Y3windice] = Yva_c(Yw1, Yw2, Yw3)->Ystate[Yws]; ++Y3windice;}}}} 
    782 }/*M3_GSTA*/  
    783 void Y3getstate_va_c(float x[]) 
    784 { 
    785          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    786                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    787                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    788                                  for (int Yws=0; Yws<YNBS_va_c; ++Yws){ 
    789                                          Yva_c(Yw1, Yw2, Yw3)->Ystate[Yws] = x[Y3windice]; ++Y3windice;}}}} 
    790 }/*M3_VGRAD*/  
    791 void Y3valgrad_va_c(float g[]) 
    792 { 
    793          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    794                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    795                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    796                                  for (int Yws=0; Yws<YNBS_va_c; ++Yws){ 
    797                                          g[Y3windice] = Yva_c(Yw1, Yw2, Yw3)->Ygrad[Yws]; ++Y3windice;}}}} 
    798546}/*M3_TBTOG   */  
    799547void YtabTOgrad_va_c(YREAL tab[]) 
     
    909657void Yio_va_c(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val)   
    910658{  Yiorwf ("va_c", Yws, Yw1, Yw2, Yw3, Ywt, &YS_va_c(Yws, Yw1, Yw2, Yw3), val); 
    911 }/*M0_OUTOB*/  
    912 int Youtoobs_va_c(YioKind yiokind, int Yws, int Ywt, int arbpdt) 
    913 { 
    914          Yaobs.time = arbpdt; 
    915          Yaobs.imod = Yimod("va_c"); 
    916          Yaobs.smod = Yws;/*M3_OUTOB*/  
    917          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1) 
    918          for (int Yw2=0; Yw2<YA2_S3d; ++Yw2) 
    919          for (int Yw3=0; Yw3<YA3_S3d; ++Yw3) 
    920          {      if(select_io(yiokind, "va_c", Yws, Yw1, Yw2, Yw3, Ywt, &Ystate_va_c(Yws, Yw1, Yw2, Yw3))) 
    921                         {       Yaobs.iaxe = Yw1; Yaobs.jaxe = Yw2; Yaobs.kaxe = Yw3; 
    922                                 Yaobs.vobs = Ystate_va_c(Yws, Yw1, Yw2, Yw3); 
    923                                 if(!Yobs_insert (&Yaobs)) return(0); 
    924                         } 
    925          }/*M9_OUTOB*/   
    926          return(1); 
    927 }/*M3_SEPS*/  
    928 void Ysetepsi_va_c(double val) 
    929 { 
    930          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    931                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    932                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    933                                  for (int Yws=0; Yws<YNBS_va_c; ++Yws){ 
    934                                          Yva_c(Yw1, Yw2, Yw3)->Yepsi[Yws] = val;}}}} 
    935659}/*M3_CREY*/  
    936660void Ycreate_va_c()   
     
    940664                         for (int Yw3=0; Yw3<YA3_S3d; ++Yw3){ 
    941665                                 if ((Yva_c(Yw1, Yw2, Yw3) = new Yaova_c ())==NULL) Ycreate_errnew();}}} 
    942 }/*M3_SWISH*/  
    943 void Ysetwish_va_c(double val) 
    944 { 
    945          for (int Yw1=0; Yw1<YA1_S3d; ++Yw1){ 
    946                  for (int Yw2=0; Yw2<YA2_S3d;  ++Yw2){ 
    947                          for (int Yw3=0; Yw3<YA3_S3d;  ++Yw3){ 
    948                                  for (int Yws=0; Yws<YNBS_va_c; ++Yws){ 
    949                                          Ywish_va_c(Yws, Yw1, Yw2, Yw3) = val;}}}} 
    950666}/*M2_TBTOGT  */  
    951667void YtabTOgrad_sbcgyre_qsr_qns(int frompdt, int topdt, YREAL tab[]) 
     
    1365113367{        
    1365213368         if(1==0); 
    13653          else if (strcmp(nmmod, "sshn_c") == 0) 
    13654                                  YW_sshn_c(Yws, Yw1, Yw2) = YS_sshn_c(Yws, Yw1, Yw2) - vobs; 
    1365513369         else if (strcmp(nmmod, "ta_c") == 0) 
    1365613370                                 YW_ta_c(Yws, Yw1, Yw2, Yw3) = YS_ta_c(Yws, Yw1, Yw2, Yw3) - vobs; 
    13657          else if (strcmp(nmmod, "sa_c") == 0) 
    13658                                  YW_sa_c(Yws, Yw1, Yw2, Yw3) = YS_sa_c(Yws, Yw1, Yw2, Yw3) - vobs; 
    13659          else if (strcmp(nmmod, "ua_c") == 0) 
    13660                                  YW_ua_c(Yws, Yw1, Yw2, Yw3) = YS_ua_c(Yws, Yw1, Yw2, Yw3) - vobs; 
    13661          else if (strcmp(nmmod, "va_c") == 0) 
    13662                                  YW_va_c(Yws, Yw1, Yw2, Yw3) = YS_va_c(Yws, Yw1, Yw2, Yw3) - vobs; 
    1366313371         else if (strcmp(nmmod, "tb") == 0) 
    1366413372                                 YW_tb(Yws, Yw1, Yw2, Yw3) = YS_tb(Yws, Yw1, Yw2, Yw3, Ywt) - vobs; 
     
    1367513383{        
    1367613384         if(1==0); 
    13677          else if (strcmp(nmmod, "sshn_c") == 0) 
    13678                                  YG_sshn_c(Yws, Yw1, Yw2) += Ycostdiff(YW_sshn_c(Yws, Yw1, Yw2), YW_sshn_c(Yws, Yw1, Yw2)); 
    1367913385         else if (strcmp(nmmod, "ta_c") == 0) 
    1368013386                                 YG_ta_c(Yws, Yw1, Yw2, Yw3) += Ycostdiff(YW_ta_c(Yws, Yw1, Yw2, Yw3), YW_ta_c(Yws, Yw1, Yw2, Yw3)); 
    13681          else if (strcmp(nmmod, "sa_c") == 0) 
    13682                                  YG_sa_c(Yws, Yw1, Yw2, Yw3) += Ycostdiff(YW_sa_c(Yws, Yw1, Yw2, Yw3), YW_sa_c(Yws, Yw1, Yw2, Yw3)); 
    13683          else if (strcmp(nmmod, "ua_c") == 0) 
    13684                                  YG_ua_c(Yws, Yw1, Yw2, Yw3) += Ycostdiff(YW_ua_c(Yws, Yw1, Yw2, Yw3), YW_ua_c(Yws, Yw1, Yw2, Yw3)); 
    13685          else if (strcmp(nmmod, "va_c") == 0) 
    13686                                  YG_va_c(Yws, Yw1, Yw2, Yw3) += Ycostdiff(YW_va_c(Yws, Yw1, Yw2, Yw3), YW_va_c(Yws, Yw1, Yw2, Yw3)); 
    1368713387         else if (strcmp(nmmod, "tb") == 0) 
    1368813388                                 YG_tb(Yws, Yw1, Yw2, Yw3, Ywt) += Ycostdiff(YW_tb(Yws, Yw1, Yw2, Yw3), YW_tb(Yws, Yw1, Yw2, Yw3)); 
     
    1369913399{ 
    1370013400         if(1==0); 
    13701          else if (strcmp(nmmod, "sshn_c") == 0) Youtoobs_sshn_c(yiokind, numout, pdt, arbpdt); 
    1370213401         else if (strcmp(nmmod, "ta_c") == 0) Youtoobs_ta_c(yiokind, numout, pdt, arbpdt); 
    13703          else if (strcmp(nmmod, "sa_c") == 0) Youtoobs_sa_c(yiokind, numout, pdt, arbpdt); 
    13704          else if (strcmp(nmmod, "ua_c") == 0) Youtoobs_ua_c(yiokind, numout, pdt, arbpdt); 
    13705          else if (strcmp(nmmod, "va_c") == 0) Youtoobs_va_c(yiokind, numout, pdt, arbpdt); 
    1370613402         else if (strcmp(nmmod, "tb") == 0) Youtoobs_tb(yiokind, numout, pdt, arbpdt); 
    1370713403         else if (strcmp(nmmod, "sb") == 0) Youtoobs_sb(yiokind, numout, pdt, arbpdt); 
     
    1371213408void Yadjust_all ()  
    1371313409{ 
    13714          Yadjust_sshn_c (); 
    1371513410         Yadjust_ta_c (); 
    13716          Yadjust_sa_c (); 
    13717          Yadjust_ua_c (); 
    13718          Yadjust_va_c (); 
    1371913411} 
    1372013412void Yrazgrad_all ()  
     
    1399713689void Ysetwish_mod (int imod, YREAL val)  
    1399813690{       if(1==0); 
    13999         else if (imod==0) Ysetwish_sshn_c(val); 
    1400013691        else if (imod==1) Ysetwish_ta_c(val); 
    14001         else if (imod==2) Ysetwish_sa_c(val); 
    14002         else if (imod==3) Ysetwish_ua_c(val); 
    14003         else if (imod==4) Ysetwish_va_c(val); 
    1400413692        else if (imod==38) Ysetwish_tb(val); 
    1400513693        else if (imod==39) Ysetwish_sb(val); 
     
    1410113789void YgradCTOtab_target (YREAL tab[])  
    1410213790{       //Y3windice = 0; 
    14103          YgradCTOtab_sshn_c (tab); 
    1410413791         YgradCTOtab_ta_c (tab); 
    14105          YgradCTOtab_sa_c (tab); 
    14106          YgradCTOtab_ua_c (tab); 
    14107          YgradCTOtab_va_c (tab); 
    1410813792} 
    1410913793void YtabTOgrad_target (YREAL tab[])  
    1411013794{       //Y3windice = 0; 
    14111          YtabTOgrad_sshn_c (tab); 
    1411213795         YtabTOgrad_ta_c (tab); 
    14113          YtabTOgrad_sa_c (tab); 
    14114          YtabTOgrad_ua_c (tab); 
    14115          YtabTOgrad_va_c (tab); 
    1411613796} 
    1411713797void Y3getstate_all (float x[])  
    1411813798{        Y3windice = 0; 
    14119          Y3getstate_sshn_c (x); 
    1412013799         Y3getstate_ta_c (x); 
    14121          Y3getstate_sa_c (x); 
    14122          Y3getstate_ua_c (x); 
    14123          Y3getstate_va_c (x); 
    1412413800} 
    1412513801void Y3valstate_all ()  
    1412613802{        Y3windice = 0; 
    14127          Y3valstate_sshn_c (); 
    1412813803         Y3valstate_ta_c (); 
    14129          Y3valstate_sa_c (); 
    14130          Y3valstate_ua_c (); 
    14131          Y3valstate_va_c (); 
    1413213804} 
    1413313805void Y3valgrad_all (float g[])  
    1413413806{        Y3windice = 0; 
    14135          Y3valgrad_sshn_c (g); 
    1413613807         Y3valgrad_ta_c (g); 
    14137          Y3valgrad_sa_c (g); 
    14138          Y3valgrad_ua_c (g); 
    14139          Y3valgrad_va_c (g); 
    1414013808} 
    1414113809void YdeltaEQPstate_traj(int itraj, char *norkmod, int frompdt, int topdt, double pfact)  
     
    1414413812        else if (itraj==Yid_Tcst) 
    1414513813        { 
    14146                 if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     13814                if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") ) 
    1414713815         YdeltaEQPstate_sshn_c (0, 1, pfact); 
    1414813816                if ( !strcmp(norkmod, "ta_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
    1414913817         YdeltaEQPstate_ta_c (0, 1, pfact); 
    14150                 if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     13818                if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") ) 
    1415113819         YdeltaEQPstate_sa_c (0, 1, pfact); 
    14152                 if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     13820                if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") ) 
    1415313821         YdeltaEQPstate_ua_c (0, 1, pfact); 
    14154                 if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     13822                if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") ) 
    1415513823         YdeltaEQPstate_va_c (0, 1, pfact); 
    1415613824        } 
     
    1432513993void YdeltaEQPstate_target(double pfact)  
    1432613994{ 
    14327          YdeltaEQPstate_sshn_c (0, 1, pfact); 
    1432813995         YdeltaEQPstate_ta_c (0, 1, pfact); 
    14329          YdeltaEQPstate_sa_c (0, 1, pfact); 
    14330          YdeltaEQPstate_ua_c (0, 1, pfact); 
    14331          YdeltaEQPstate_va_c (0, 1, pfact); 
    1433213996} 
    1433313997void YdeltaEQPgrad_target(double pfact)  
    1433413998{ 
    14335          YdeltaEQPgrad_sshn_c (0, 1, pfact); 
    1433613999         YdeltaEQPgrad_ta_c (0, 1, pfact); 
    14337          YdeltaEQPgrad_sa_c (0, 1, pfact); 
    14338          YdeltaEQPgrad_ua_c (0, 1, pfact); 
    14339          YdeltaEQPgrad_va_c (0, 1, pfact); 
    1434014000} 
    1434114001void YstateEQPdelta_traj(int itraj, char *norkmod, int frompdt, int topdt, double pfact)  
     
    1434414004        else if (itraj==Yid_Tcst) 
    1434514005        { 
    14346                 if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14006                if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") ) 
    1434714007         YstateEQPdelta_sshn_c (0, 1, pfact); 
    1434814008                if ( !strcmp(norkmod, "ta_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
    1434914009         YstateEQPdelta_ta_c (0, 1, pfact); 
    14350                 if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14010                if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") ) 
    1435114011         YstateEQPdelta_sa_c (0, 1, pfact); 
    14352                 if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14012                if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") ) 
    1435314013         YstateEQPdelta_ua_c (0, 1, pfact); 
    14354                 if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14014                if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") ) 
    1435514015         YstateEQPdelta_va_c (0, 1, pfact); 
    1435614016        } 
     
    1452514185void YstateEQPdelta_target(double pfact)  
    1452614186{ 
    14527          YstateEQPdelta_sshn_c (0, 1, pfact); 
    1452814187         YstateEQPdelta_ta_c (0, 1, pfact); 
    14529          YstateEQPdelta_sa_c (0, 1, pfact); 
    14530          YstateEQPdelta_ua_c (0, 1, pfact); 
    14531          YstateEQPdelta_va_c (0, 1, pfact); 
    1453214188} 
    1453314189void YstateEQPOdelta_target(double pfact, char *codop)  
    1453414190{ 
    14535          YstateEQPOdelta_sshn_c (0, 1, pfact, codop); 
    1453614191         YstateEQPOdelta_ta_c (0, 1, pfact, codop); 
    14537          YstateEQPOdelta_sa_c (0, 1, pfact, codop); 
    14538          YstateEQPOdelta_ua_c (0, 1, pfact, codop); 
    14539          YstateEQPOdelta_va_c (0, 1, pfact, codop); 
    1454014192} 
    1454114193void YstateEQAPTdelta_target(double pfact, YREAL tab[])  
    1454214194{ 
    14543          YstateEQAPTdelta_sshn_c (0, 1, pfact, tab); 
    1454414195         YstateEQAPTdelta_ta_c (0, 1, pfact, tab); 
    14545          YstateEQAPTdelta_sa_c (0, 1, pfact, tab); 
    14546          YstateEQAPTdelta_ua_c (0, 1, pfact, tab); 
    14547          YstateEQAPTdelta_va_c (0, 1, pfact, tab); 
    1454814196} 
    1454914197void YgradEQPstate_traj(int itraj, char *norkmod, int frompdt, int topdt, double pfact)  
     
    1455214200        else if (itraj==Yid_Tcst) 
    1455314201        { 
    14554                 if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14202                if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") ) 
    1455514203         YgradEQPstate_sshn_c(pfact); 
    1455614204                if ( !strcmp(norkmod, "ta_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
    1455714205         YgradEQPstate_ta_c(pfact); 
    14558                 if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14206                if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") ) 
    1455914207         YgradEQPstate_sa_c(pfact); 
    14560                 if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14208                if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") ) 
    1456114209         YgradEQPstate_ua_c(pfact); 
    14562                 if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14210                if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") ) 
    1456314211         YgradEQPstate_va_c(pfact); 
    1456414212        } 
     
    1473314381void YgradEQPstate_target(double pfact)  
    1473414382{ 
    14735          YgradEQPstate_sshn_c (pfact); 
    1473614383         YgradEQPstate_ta_c (pfact); 
    14737          YgradEQPstate_sa_c (pfact); 
    14738          YgradEQPstate_ua_c (pfact); 
    14739          YgradEQPstate_va_c (pfact); 
    1474014384} 
    1474114385void YgradEQPOstate_target(double pfact, char *codop)  
    1474214386{ 
    14743          YgradEQPOstate_sshn_c (pfact, codop); 
    1474414387         YgradEQPOstate_ta_c (pfact, codop); 
    14745          YgradEQPOstate_sa_c (pfact, codop); 
    14746          YgradEQPOstate_ua_c (pfact, codop); 
    14747          YgradEQPOstate_va_c (pfact, codop); 
    1474814388} 
    1474914389void YstateTOtab_traj (int itraj, char *norkmod, int frompdt, int topdt, YREAL tab[])  
     
    1475214392        else if (itraj==Yid_Tcst) 
    1475314393        { 
    14754                 if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14394                if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") ) 
    1475514395         YstateTOtab_sshn_c (tab); 
    1475614396                if ( !strcmp(norkmod, "ta_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
    1475714397         YstateTOtab_ta_c (tab); 
    14758                 if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14398                if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") ) 
    1475914399         YstateTOtab_sa_c (tab); 
    14760                 if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14400                if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") ) 
    1476114401         YstateTOtab_ua_c (tab); 
    14762                 if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14402                if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") ) 
    1476314403         YstateTOtab_va_c (tab); 
    1476414404        } 
     
    1493314573void YstateTOtab_target (YREAL tab[])  
    1493414574{       //Y3windice = 0; 
    14935          YstateTOtab_sshn_c (tab); 
    1493614575         YstateTOtab_ta_c (tab); 
    14937          YstateTOtab_sa_c (tab); 
    14938          YstateTOtab_ua_c (tab); 
    14939          YstateTOtab_va_c (tab); 
    1494014576} 
    1494114577void YgradTOtab_traj (int itraj, char *norkmod, int frompdt, int topdt, YREAL tab[])  
     
    1494414580        else if (itraj==Yid_Tcst) 
    1494514581        { 
    14946                 if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14582                if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") ) 
    1494714583         YgradTOtab_sshn_c (tab); 
    1494814584                if ( !strcmp(norkmod, "ta_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
    1494914585         YgradTOtab_ta_c (tab); 
    14950                 if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14586                if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") ) 
    1495114587         YgradTOtab_sa_c (tab); 
    14952                 if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14588                if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") ) 
    1495314589         YgradTOtab_ua_c (tab); 
    14954                 if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14590                if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") ) 
    1495514591         YgradTOtab_va_c (tab); 
    1495614592        } 
     
    1512514761void YgradTOtab_target (YREAL tab[])  
    1512614762{       //Y3windice = 0; 
    15127          YgradTOtab_sshn_c (tab); 
    1512814763         YgradTOtab_ta_c (tab); 
    15129          YgradTOtab_sa_c (tab); 
    15130          YgradTOtab_ua_c (tab); 
    15131          YgradTOtab_va_c (tab); 
    1513214764} 
    1513314765void YtabTOgrad_traj (int itraj, char *norkmod, int frompdt, int topdt, YREAL tab[])  
     
    1513614768        else if (itraj==Yid_Tcst) 
    1513714769        { 
    15138                 if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14770                if ( !strcmp(norkmod, "sshn_c") || !strcmp(norkmod, "Y#A") ) 
    1513914771                         YtabTOgrad_sshn_c (tab); 
    1514014772                if ( !strcmp(norkmod, "ta_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
    1514114773                         YtabTOgrad_ta_c (tab); 
    15142                 if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14774                if ( !strcmp(norkmod, "sa_c") || !strcmp(norkmod, "Y#A") ) 
    1514314775                         YtabTOgrad_sa_c (tab); 
    15144                 if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14776                if ( !strcmp(norkmod, "ua_c") || !strcmp(norkmod, "Y#A") ) 
    1514514777                         YtabTOgrad_ua_c (tab); 
    15146                 if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") || !strcmp(norkmod, "Y#T") ) 
     14778                if ( !strcmp(norkmod, "va_c") || !strcmp(norkmod, "Y#A") ) 
    1514714779                         YtabTOgrad_va_c (tab); 
    1514814780        } 
     
    1549515127         { 
    1549615128                         if (!strcmp(argv[0], "setepsi_all") || !strcmp(argv[0], "SETEPSI_ALL")){all=1; val=atof(argv[1]);} else val=atof(argv[2]); 
    15497                          if (!strcmp(argv[1], "sshn_c") || all) 
    15498                                          {Ysetepsi_sshn_c(val);codret=1;} 
    1549915129                         if (!strcmp(argv[1], "ta_c") || all) 
    1550015130                                         {Ysetepsi_ta_c(val);codret=1;} 
    15501                          if (!strcmp(argv[1], "sa_c") || all) 
    15502                                          {Ysetepsi_sa_c(val);codret=1;} 
    15503                          if (!strcmp(argv[1], "ua_c") || all) 
    15504                                          {Ysetepsi_ua_c(val);codret=1;} 
    15505                          if (!strcmp(argv[1], "va_c") || all) 
    15506                                          {Ysetepsi_va_c(val);codret=1;} 
    1550715131         } 
    1550815132         else codret=0; 
     
    2482424448         else if (strcmp(argv[0], "xchangesavemode") == 0) 
    2482524449                 xchangesavemode(argc, argv); 
     24450         else if (strcmp(argv[0], "xwriteout") == 0) 
     24451                 xwriteout(argc, argv); 
     24452         else if (strcmp(argv[0], "xinitnc") == 0) 
     24453                 xinitnc(argc, argv); 
    2482624454         else codret=0; 
    2482724455         return(codret); 
  • trunk/src/cost.dat

    r10 r14  
    33 0.0000000000000000e+00 
    44 2.9733593674719423e+03 
    5  2.9095139883673278e+03 
    6  2.4330312362758295e+03 
    7  2.0642529387596464e+03 
    8  1.9211236976402699e+03 
    9  1.7958968029352288e+03 
    10  1.6298045122109095e+03 
    11  1.5076021103427668e+03 
    12  1.5000076375290523e+03 
    13  1.4276397352270269e+03 
    14  1.3110968128873515e+03 
    15  1.2801012445744680e+03 
    16  1.3104813902608603e+03 
    17  1.2829552646049826e+03 
    18  1.2833299063134032e+03 
    19  1.2847663831547602e+03 
    20  1.2891132528206504e+03 
    21  1.2818428187933409e+03 
    22  1.2764982097924344e+03 
    23  1.2809727315336945e+03 
    24  1.2417113477527846e+03 
    25  1.6709113736713609e+03 
    26  1.2583333872621713e+03 
    27  1.2582520427303459e+03 
    28  1.2550104229729704e+03 
    29  1.2499876871051058e+03 
    30  1.2656188241658340e+03 
    31  1.2643832627133945e+03 
    32  1.2554231947828837e+03 
    33  1.2476636563166230e+03 
    34  1.2489695361098022e+03 
    35  1.2530459381768840e+03 
    36  1.2484393921698424e+03 
    37  1.2470596346544980e+03 
    38  1.2477431325355756e+03 
    39  1.2511259156307392e+03 
    40  1.2407190501617613e+03 
    41  1.2406815136035698e+03 
     5 2.9046564674634410e+03 
     6 2.8844078750994972e+03 
     7 2.1533662170138909e+03 
     8 3.7645353988317231e+02 
     9 2.1743622020262393e+02 
     10 1.3325376402313574e+02 
     11 1.0089472892137428e+02 
     12 9.3476389696007189e+01 
     13 8.8719928304913211e+01 
     14 9.0834543682672248e+01 
     15 8.8130698029267435e+01 
     16 9.0170152793152795e+01 
     17 8.8265477839190027e+01 
     18 8.8281377590830218e+01 
     19 8.8710953227195915e+01 
     20 8.9177210220475857e+01 
     21 9.0343293430849968e+01 
     22 9.0156125898119669e+01 
     23 8.7443014766499118e+01 
     24 8.7378898959154185e+01 
     25 9.0197838294519727e+01 
     26 9.0231123456027703e+01 
     27 9.0251747653212306e+01 
     28 9.0266310888836969e+01 
     29 8.7354177212549217e+01 
     30 8.7352312614036819e+01 
     31 9.0268596517281566e+01 
     32 9.0270225161585003e+01 
  • trunk/src/sinobad.d

    r9 r14  
    4545#modul   pca_ta                 space   S0d     noward                            output NPCA   target 
    4646 
    47 modul    sshn_c                 space   S3d inter YA1 YA2       noward            output 1      target 
     47modul    sshn_c                 space   S3d inter YA1 YA2       noward            output 1      |target 
    4848 
    4949modul    ta_c                   space   S3d                     noward            output 1      target 
     
    5151#modul   ta_c                   space   S3d     input array NPCA                  output 1       
    5252 
    53 modul    sa_c                   space   S3d                     noward            output 1      target 
    54 modul    ua_c                   space   S3d                     noward            output 1      target 
    55 modul    va_c                   space   S3d                     noward            output 1      target 
     53modul    sa_c                   space   S3d                     noward            output 1      |target 
     54modul    ua_c                   space   S3d                     noward            output 1      |target 
     55modul    va_c                   space   S3d                     noward            output 1      |target 
    5656 
    5757#------------- 
     
    792792insert_fct  arg xchangesavemode 
    793793 
     794insert_fct arg xwriteout 
     795insert_fct arg xinitnc 
    794796#insert_fct  arg load_shape_func 
    795797#insert_fct  arg load_stdev_pca 
  • trunk/src/sinobad.h

    r9 r14  
    856856} 
    857857 
     858//Gestion des fichiers netcdf 
    858859 
    859860void xrst_save(int argc, char *argv[]) { 
     861  //Sauvegarde un restart 
    860862  if (argc!=2) 
    861863    { 
     
    876878    } 
    877879} 
     880 
     881void xwriteout (int argc, char *argv[]) { 
     882  //xwriteout t suff ncfile  
     883  //Ecrit dans le fichier ncfile les variables u,v,t,s,ssh avec le suffixe suff au pas de temps t 
     884  if (argc!=4) 
     885   {  
     886     printf("\n not enough arguments in writeout\n"); 
     887     exit(1); 
     888   } 
     889 
     890  int t; 
     891  char suff[200]; 
     892  char ncfile[200]; 
     893  int ncfile_id; 
     894  t=atoi(argv[1]); 
     895  strcpy(suff,argv[2]); 
     896  strcpy(ncfile,argv[3]); 
     897  ncfile_id=Ouvre_nc_add(ncfile); 
     898  write_out_var(t,ncfile_id,suff); 
     899  nc_close(ncfile_id); 
     900 
     901} 
     902 
     903void xinitnc(int argc,char *argv[]) { 
     904  //xinit ncfile 
     905  //init le fichier netcdf pour sauvegarde 
     906  if (argc!=2) 
     907   {  
     908     printf("\ncf file for saving output not specified in command xinitnc\n"); 
     909     exit(1); 
     910   } 
     911  else 
     912    { 
     913      char ncfile[200]; 
     914      int nc_file_id; 
     915      int dimid[4]; 
     916      strcpy(ncfile,argv[1]); 
     917      nc_file_id=Ouvre_nc_write(ncfile); 
     918      define_dim(nc_file_id,dimid); 
     919      write_out_var_init(nc_file_id,dimid); 
     920      nc_close(nc_file_id); 
     921    } 
     922   
     923} 
Note: See TracChangeset for help on using the changeset viewer.