Changeset 75 for trunk/src/sinobad.h


Ignore:
Timestamp:
03/02/12 09:38:08 (12 years ago)
Author:
jbrlod
Message:

new option for xchangmode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sinobad.h

    r72 r75  
    4646#define hdivn_at_TU( i, j, k) (hdivn_at_TU[(k)*(NY*NX)+(j)*(NX)+(i)])  
    4747#define gcx_at_TU( i, j) (gcx_at_TU[(j)*(NX)+(i)])  
     48#define masque_obs( i, j) (masque_obs[(j)*(NX)+(i)])  
     49 
     50 
    4851double  tb_neuler1[NZ*NY*NX]; // 
    4952double  sb_neuler1[NZ*NY*NX]; // 
     
    5457double  hdivn_at_TU[NZ*NY*NX]; // 
    5558double  gcx_at_TU[NY*NX]; // 
     59 
     60short masque_obs[NY*NX]; //  
    5661 
    5762void true_target_in_tab(int argc, char *argv[]); // charge YS_*a_c(0,i,j,k) dans true_*a_c(i,j,k) 
     
    107112void xistate_init(int argc, char *argv[]); 
    108113void xrst_save(int argc, char *argv[]); 
    109  
     114void xinit_masque_obs(); 
    110115////////////////////////////////////////////////////////////// 
    111116// Les fonctions OBLIGATOIRES 
     
    163168  normfil(); 
    164169#endif 
     170  xinit_masque_obs(); 
    165171  xsolmat_init(); 
    166172  xflt_rst(); 
     
    195201void after_it (int nit) 
    196202{ 
    197   xdisplay(); 
     203  // xdisplay(); 
    198204} 
    199205//_____________________________________________________________________________ 
     
    253259       return(0); 
    254260   } 
     261 
     262   if(indic==YIO_SAVESTATE && (!strcmp(nmmod,"tb") || !strcmp(nmmod,"sb")) && savemode==3) return(masque_obs(iaxe,jaxe)); 
    255263 
    256264     
     
    647655} 
    648656 
     657void xinit_masque_obs(){ 
     658  int i,j; 
     659  for (i=0;i<NX;i++) 
     660    for(j=0;j<NY;j++) 
     661    masque_obs(i,j)=0; 
     662} 
     663 
    649664void xchangesavemode(int argc, char *argv[]){ 
    650665  short newmode=atoi(argv[1]); 
     
    656671    printf("\n savemode : 1 point (Yi=%d,Yj=%d,Yk=%d)\n",isave,jsave,ksave); 
    657672  } 
    658  
    659 } 
     673  if (newmode==3) { //sauver N profil 
     674    int Np; // Nombre d'obs 
     675    int ix,iy,comp=0; //indices de boucles 
     676    float dx,dy; // pas dans le tableau masque  
     677    int nx,ny ; //nombre d'obs selon x et y 
     678    Np=atoi(argv[2]); 
     679    nx=(int)sqrt(Np); 
     680    ny=Np/nx; 
     681    dx=(float)NX/(nx+1); 
     682    dy=(float)NY/(ny+1); 
     683    for(ix=1;ix<=nx;ix++) 
     684      for(iy=1;iy<=ny;iy++) { 
     685        masque_obs((int)(ix*dx),(int)(iy*dy))=1; 
     686        comp++; 
     687      } 
     688    printf("\n savemode : %d profils observés(dx=%f,dy=%f)\n",comp,dx,dy); 
     689  }  
     690} 
     691 
    660692 
    661693//_____________________________________________________________________________ 
Note: See TracChangeset for help on using the changeset viewer.