Changeset 128 for altifloat/src


Ignore:
Timestamp:
08/01/14 16:13:55 (10 years ago)
Author:
kodalazian
Message:
 
Location:
altifloat/src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • altifloat/src/floater.d

    r123 r128  
    1 defval jtlag 6 nombre de pas de temps Delta t/ delta t 
     1defval jtlag 19 nombre de pas de temps Delta t/ delta t 
    22defval nlon 87 //nbre de points de grilles en longitude 
    33defval nlat 58 //nbre de points de grilles en latitude 
    4 defval nfloat 1 //nbre de flotteurs 
     4defval nfloat 2 //nbre de flotteurs 
    55 
    66hat_name "floater.h" 
  • altifloat/src/floater.h

    r126 r128  
    3333//YREAL c2,c3,c4,c5; 
    3434//YREAL dtfil=26042000; 
    35 YREAL dtfil=25000000; 
     35YREAL dtfil=2.604166666666667e+07; 
    3636 
    3737#endif 
    3838 
    3939//Options du run incr士ental 
    40 int nb_extiter=30; 
     40int nb_extiter=4; 
    4141short inc_save=0; 
    4242char dirsave[50]="../obs_float/"; 
     
    8383 read_obs(2,L); 
    8484 //Test de isactiv 
    85  printf("isactiv(0,0):%d\n",is_activ(0,0)); 
    86  printf("isactiv(1,0):%d\n",is_activ(1,0)); 
    87  printf("isactiv(0,3):%d\n",is_activ(0,3)); 
    88  printf("isactiv(1,3):%d\n",is_activ(1,3)); 
    89  printf("isactiv(0,6):%d\n",is_activ(0,6)); 
    90  printf("isactiv(1,6):%d\n",is_activ(1,6)); 
     85 //printf("isactiv(0,0):%d\n",is_activ(0,0)); 
     86 //printf("isactiv(1,0):%d\n",is_activ(1,0)); 
     87 //printf("isactiv(0,3):%d\n",is_activ(0,3)); 
     88 //printf("isactiv(1,3):%d\n",is_activ(1,3)); 
     89 //printf("isactiv(0,6):%d\n",is_activ(0,6)); 
     90 //printf("isactiv(1,6):%d\n",is_activ(1,6)); 
    9191 
    9292   
     
    314314short is_activ(int jpfl, int it) { 
    315315  /* return 1 if float jpfl is active after it (stricly) */ 
    316   it++; 
    317   while(it<jptfl && pmask[it][jpfl]==0) 
     316int jptend=it+jtlag+1;   
     317it++; 
     318         
     319  while(it<jptend && pmask[it][jpfl]==0) 
    318320    it++; 
    319  return(it<jptfl && pmask[it][jpfl]==1); 
     321 return(it<jptend && pmask[it][jpfl]==1); 
    320322} 
    321323 
     
    328330        YS1_u(j,k,it-iti)=ubck[j][k][it]; 
    329331        YS1_v(j,k,it-iti)=vbck[j][k][it]; 
     332        YS1_uc_d(j,k)=0; 
     333        YS1_vc_d(j,k)=0; 
     334          // Yobs_insert_data (char *nmmod, int sortie, int iaxe, int jaxe, int kaxe,int pdt, YREAL val) 
     335 
     336          Yobs_insert_data("uc_d",0,j,k,0,-1,0); 
     337          Yobs_insert_data("vc_d",0,j,k,0,-1,0); 
     338 
     339         
    330340      } 
    331341} 
     
    416426  int jfl; 
    417427  int Yifloat=0; 
     428int nfobs=0; 
     429int jptend=it+1+jtlag; 
    418430  for (jfl=0;jfl<jpnfl;jfl++) { 
     431    nfobs=0; 
    419432    if (pmask[it][jfl]==1 && is_activ(jfl,it)>0) { 
    420433      //Chargemente de l'init 
    421434      YS1_r_float(Yifloat,0)=pjobs[it][jfl]; 
    422435      YS2_r_float(Yifloat,0)=piobs[it][jfl]; 
    423          
    424436      //Chargement des obs 
    425       for (int itfl=it+1;itfl<jptfl;itfl++) { 
     437      for (int itfl=it+1;itfl<jptend;itfl++) { 
    426438        if (pmask[itfl][jfl]==1) { 
    427439          // Yobs_insert_data (char *nmmod, int sortie, int iaxe, int jaxe, int kaxe,int pdt, YREAL val) 
    428440          Yobs_insert_data("r_cout_d",0,Yifloat,0,0,itfl-it,pjobs[itfl][jfl]); 
    429441          Yobs_insert_data("r_cout_d",1,Yifloat,0,0,itfl-it,piobs[itfl][jfl]); 
     442        nfobs++; 
    430443        } //if pmask==1 
    431444        } //for itfl 
    432445      
    433       Yifloat++;   
     446      Yifloat++;  
     447      printf("--Float nr %d : %d obs loaded\n",Yifloat,nfobs);  
    434448    } //if pmask==1 
     449 
    435450    } //for jfl 
    436451   
  • altifloat/src/floater_delta.d

    r126 r128  
    11#define FILTER 
    22 
    3 defval jtlag 19//nombre de pas de temps Delta t/ delta t  
     3defval jtlag 36//nombre de pas de temps Delta t/ delta t  
    44//for the fake 
    55//defval jtlag 720 
    66 
    7 defval jptfl 20 //Nombre total de pas de temps 
    8 defval jpnfl 1 //nombre total de flotteurs 
     7defval jptfl 175 //Nombre total de pas de temps 
     8defval jpnfl 5 //nombre total de flotteurs 
    99 
    1010 
    1111defval nlon 87 //nbre de points de grilles en longitude 
    1212defval nlat 58 //nbre de points de grilles en latitude 
    13 defval nfloat 1 //nbre de flotteurs max par assim 
     13defval nfloat 5 //nbre de flotteurs max par assim 
    1414 
    1515#ifdef FILTER 
    1616defval K_FILTER //create a define K_FILTER in the source code 
    17 defval OFIL 4  //order of the filter 
     17defval OFIL 6  //order of the filter 
    1818#else 
    1919defval OFIL 0 //Offtime of the main trajectory (0 since there is no filter) 
  • altifloat/src/lapfilu.h

    r117 r128  
    2727  */ 
    2828   
     29  
     30 
    2931if (Yt==1) { //first step time 
    3032 // if (Yt<1000000) { //first step time   
  • altifloat/src/locate.h

    r109 r128  
    11forward(YREAL x, YREAL y) 
    22{ 
     3 
     4//printf("x=%f ; y=%f\n",x,y); 
    35        //Yj = longitude 
    46        //Yk = latitude 
     
    810        { 
    911        //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
    10           YS1_uinter(Yi,YTemps)=YS1_u(Yj,Yk,YTemps);//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
    11                 YS2_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk,YTemps); 
    12                 YS3_uinter(Yi,YTemps)=YS1_u(Yj,Yk+1,YTemps); 
    13                 YS4_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk+1,YTemps); 
    14                 YS5_uinter(Yi,YTemps)=YS1_v(Yj,Yk,YTemps); 
    15                 YS6_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk,YTemps); 
    16                 YS7_uinter(Yi,YTemps)=YS1_v(Yj,Yk+1,YTemps); 
    17                 YS8_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk+1,YTemps); 
     12          YS1_uinter(Yi,YTemps)=YS1_u(Yj,Yk,YTemps)*mask[Yj][Yk];//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
     13                YS2_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk,YTemps)*mask[Yj+1][Yk]; 
     14                YS3_uinter(Yi,YTemps)=YS1_u(Yj,Yk+1,YTemps)*mask[Yj][Yk+1]; 
     15                YS4_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk+1,YTemps)*mask[Yj+1][Yk+1]; 
     16                YS5_uinter(Yi,YTemps)=YS1_v(Yj,Yk,YTemps)*mask[Yj][Yk]; 
     17                YS6_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk,YTemps)*mask[Yj+1][Yk]; 
     18                YS7_uinter(Yi,YTemps)=YS1_v(Yj,Yk+1,YTemps)*mask[Yj][Yk+1]; 
     19                YS8_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk+1,YTemps)*mask[Yj+1][Yk+1]; 
    1820                YS1_xinter(Yi,YTemps)=(YREAL)Yj;                 
    1921                YS2_xinter(Yi,YTemps)=(YREAL)Yj+1;               
     
    3436        if (j_ll==Yj && k_ll==Yk) 
    3537        { 
    36                 YG1_u(Yj,Yk,YTemps)+=YG1_uinter(Yi,YTemps); 
    37                 YG1_u(Yj+1,Yk,YTemps)+=YG2_uinter(Yi,YTemps); 
    38                 YG1_u(Yj,Yk+1,YTemps)+=YG3_uinter(Yi,YTemps); 
    39                 YG1_u(Yj+1,Yk+1,YTemps)+=YG4_uinter(Yi,YTemps); 
    40                 YG1_v(Yj,Yk,YTemps)+=YG5_uinter(Yi,YTemps); 
    41                 YG1_v(Yj+1,Yk,YTemps)+=YG6_uinter(Yi,YTemps); 
    42                 YG1_v(Yj,Yk+1,YTemps)+=YG7_uinter(Yi,YTemps); 
    43                 YG1_v(Yj+1,Yk+1,YTemps)+=YG8_uinter(Yi,YTemps); 
     38                YG1_u(Yj,Yk,YTemps)+=YG1_uinter(Yi,YTemps)*mask[Yj][Yk]; 
     39                YG1_u(Yj+1,Yk,YTemps)+=YG2_uinter(Yi,YTemps)*mask[Yj+1][Yk]; 
     40                YG1_u(Yj,Yk+1,YTemps)+=YG3_uinter(Yi,YTemps)*mask[Yj][Yk+1]; 
     41                YG1_u(Yj+1,Yk+1,YTemps)+=YG4_uinter(Yi,YTemps)*mask[Yj+1][Yk+1]; 
     42                YG1_v(Yj,Yk,YTemps)+=YG5_uinter(Yi,YTemps)*mask[Yj][Yk]; 
     43                YG1_v(Yj+1,Yk,YTemps)+=YG6_uinter(Yi,YTemps)*mask[Yj+1][Yk]; 
     44                YG1_v(Yj,Yk+1,YTemps)+=YG7_uinter(Yi,YTemps)*mask[Yj][Yk+1]; 
     45                YG1_v(Yj+1,Yk+1,YTemps)+=YG8_uinter(Yi,YTemps)*mask[Yj+1][Yk+1]; 
    4446 
    4547        } 
  • altifloat/src/locate_d.h

    r108 r128  
    88        { 
    99                //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
    10                 YS1_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk);//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
    11                 YS2_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk); 
    12                 YS3_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk+1); 
    13                 YS4_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk+1); 
    14                 YS5_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk); 
    15                 YS6_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk); 
    16                 YS7_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk+1); 
    17                 YS8_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk+1); 
     10                YS1_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk)*mask[Yj][Yk];//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
     11                YS2_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk)*mask[Yj+1][Yk]; 
     12                YS3_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk+1)*mask[Yj][Yk+1]; 
     13                YS4_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk+1)*mask[Yj+1][Yk+1]; 
     14                YS5_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk)*mask[Yj][Yk]; 
     15                YS6_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk)*mask[Yj+1][Yk]; 
     16                YS7_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk+1)*mask[Yj][Yk+1]; 
     17                YS8_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk+1)*mask[Yj+1][Yk+1]; 
    1818                 
    1919                //printf("u_d=%f\n",YS1_u_d(Yj,Yk)); 
     
    3030        if (j_ll==Yj && k_ll==Yk) 
    3131        { 
    32                 YG1_u_d(Yj,Yk)+=YG1_uinter_d(Yi,YTemps); 
    33                 YG1_u_d(Yj+1,Yk)+=YG2_uinter_d(Yi,YTemps); 
    34                 YG1_u_d(Yj,Yk+1)+=YG3_uinter_d(Yi,YTemps); 
    35                 YG1_u_d(Yj+1,Yk+1)+=YG4_uinter_d(Yi,YTemps); 
    36                 YG1_v_d(Yj,Yk)+=YG5_uinter_d(Yi,YTemps); 
    37                 YG1_v_d(Yj+1,Yk)+=YG6_uinter_d(Yi,YTemps); 
    38                 YG1_v_d(Yj,Yk+1)+=YG7_uinter_d(Yi,YTemps); 
    39                 YG1_v_d(Yj+1,Yk+1)+=YG8_uinter_d(Yi,YTemps); 
     32                YG1_u_d(Yj,Yk)+=YG1_uinter_d(Yi,YTemps)*mask[Yj][Yk]; 
     33                YG1_u_d(Yj+1,Yk)+=YG2_uinter_d(Yi,YTemps)*mask[Yj+1][Yk]; 
     34                YG1_u_d(Yj,Yk+1)+=YG3_uinter_d(Yi,YTemps)*mask[Yj][Yk+1]; 
     35                YG1_u_d(Yj+1,Yk+1)+=YG4_uinter_d(Yi,YTemps)*mask[Yj+1][Yk+1]; 
     36                YG1_v_d(Yj,Yk)+=YG5_uinter_d(Yi,YTemps)*mask[Yj][Yk]; 
     37                YG1_v_d(Yj+1,Yk)+=YG6_uinter_d(Yi,YTemps)*mask[Yj+1][Yk]; 
     38                YG1_v_d(Yj,Yk+1)+=YG7_uinter_d(Yi,YTemps)*mask[Yj][Yk+1]; 
     39                YG1_v_d(Yj+1,Yk+1)+=YG8_uinter_d(Yi,YTemps)*mask[Yj+1][Yk+1]; 
    4040 
    4141        } 
  • altifloat/src/u_d.h

    r108 r128  
    22{ 
    33  //YS1=ud;              
    4   YS1=ud*u_norm; 
     4  YS1=ud*u_norm*mask[Yi][Yj]; 
    55} 
    66 
     
    1313//YJ1I1=1; 
    1414 //YJ1I2=0; 
    15   YJ1I1=u_norm; 
    16   YJ1I2=ud; 
     15  YJ1I1=u_norm*mask[Yi][Yj]; 
     16  YJ1I2=ud*mask[Yi][Yj]; 
    1717} 
    1818  
  • altifloat/src/ur.h

    r98 r128  
    77        vr_dx=(v2-v1)+(v1-v2-v3+v4)*(y-y1); 
    88        vr_dy=(v3-v1)+(v1-v2-v3+v4)*(x-x1); 
    9         //printf("u1=%f ; u2=%f\n",u1,u2); 
     9        //printf("YS1=%f ; YS2=%f\n",YS1,YS2); 
    1010} 
    1111 
  • altifloat/src/ur_d.h

    r108 r128  
    33        YS1=u1 + (u2-u1)*(x-x1)+(u3-u1)*(y-y1)+(u1-u2-u3+u4)*(x-x1)*(y-y1); 
    44        YS2=v1 + (v2-v1)*(x-x1)+(v3-v1)*(y-y1)+(v1-v2-v3+v4)*(x-x1)*(y-y1); 
    5          
     5        //printf("x1=%f ; y1=%f ; x=%f ; y=%f ; u1=%f ; v1=%f ; u2=%f ; v2=%f ; u3=%f ; v3=%f ; u4=%f ; v4=%f\n",x1,y1,x,y,u1,v1,u2,v2,u3,v3,u4,v4); 
    66        //printf("u1=%f ; u2=%f\n",u1,u2); 
    77        //printf("urd1=%f\n",YS1); 
Note: See TracChangeset for help on using the changeset viewer.