Changeset 75


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

new option for xchangmode

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/data_out/plot_results.m

    r38 r75  
    1 f=netcdf('exp_T.nc'); 
     1f=netcdf('exp_T_3D_all_ebxhz.nc'); 
    22 
    33addpath('../scripts/matlab_toolbox'); 
     
    1111suff=cell(0,2); 
    1212suff(end+1,:)={'a_c_init','first guess (FG)'}; 
    13 suff(end+1,:)={'b_forw0_48','forward du FG'}; 
     13suff(end+1,:)={'b_forw0_49','forward du FG'}; 
    1414suff(end+1,:)={'a_c_fin','param control final (AP)'}; 
    15 suff(end+1,:)={'b_forwfin_48','forward du PA'}; 
     15suff(end+1,:)={'b_forwfin_99','forward du PA'}; 
    1616suff(end+1,:)={'a_c_true','parametre vrai (TP)'}; 
    17 suff(end+1,:)={'b_obs_48','forward du TP'}; 
     17suff(end+1,:)={'b_obs_99','forward du TP'}; 
    1818 
    1919suff2=cell(0,2); 
    2020suff2(end+1,:)={'n_c_init','first guess (FG)'}; 
    21 suff2(end+1,:)={'b_forw0_48','forward du FG'}; 
     21suff2(end+1,:)={'b_forw0_49','forward du FG'}; 
    2222suff2(end+1,:)={'n_c_fin','param control final (AP)'}; 
    23 suff2(end+1,:)={'b_forwfin_48','forward du PA'}; 
     23suff2(end+1,:)={'b_forwfin_99','forward du PA'}; 
    2424suff2(end+1,:)={'n_c_true','parametre vrai (TP)'}; 
    25 suff2(end+1,:)={'b_obs_48','forward du TP'}; 
     25suff2(end+1,:)={'b_obs_99','forward du TP'}; 
    2626 
    2727 
     
    133133        n2=max(paramy{delta{k}(1)}(:,2)); 
    134134        n3=max(paramy{delta{k}(1)}(:,3)); 
     135        
     136       
     137      for iz=1:length(unique(paramy{delta{k}(1)}(:,3))) 
    135138        iok=find(paramy{delta{k}(1)}(:,1)>1 & paramy{delta{k}(1)}(:,1)<n1 & paramy{delta{k}(1)}(:,2)>1 & ... 
     139                 paramy{delta{k}(1)}(:,2)<n2 & paramy{delta{k}(1)}(:,3)==iz); 
     140         
     141 [Nz(j,k,iz),RPDz(j,k,iz),URPDz(j,k,iz),MADz(j,k,iz),RMSz(j,k,iz),slopez(j,k,iz),interceptz(j,k,iz),r2z(j,k,iz) ]=make_stats(paramy{delta{k,1}(1)}(iok,end),paramy{delta{k,1}(2)} (iok,end)); 
     142      end  
     143       iok=find(paramy{delta{k}(1)}(:,1)>1 & paramy{delta{k}(1)}(:,1)<n1 & paramy{delta{k}(1)}(:,2)>1 & ... 
    136144                 paramy{delta{k}(1)}(:,2)<n2 & paramy{delta{k}(1)}(:,3)<n3); 
    137145      end 
  • trunk/scripts/sinobad_0D.i

    r72 r75  
    1414init_kt 800 
    1515true_target_in_tab ta_c 
    16 xinitnc ../data_out/exp_T_qs.nc 
     16xinitnc ../data_out/exp_T_ebx0.nc 
    1717 
    18 xwriteout 0 true ../data_out/exp_T_qs.nc 
     18xwriteout 0 true ../data_out/exp_T_ebx0.nc 
    1919 
    2020print_time ON 
     
    2626 
    2727##OBSERVATION 
    28 xwriteout 100 obs_99 ../data_out/exp_T_qs.nc 
     28xwriteout 120 obs_99 ../data_out/exp_T_ebx0.nc 
    2929 
    3030xrst_save ../data_in/file_rest/GYRE_799_restart_yao_true.nc 
     
    3939 
    4040 
    41 savestate tb  1   ijk   10%    A       3       ../data_out/tb_0D_obs_100.dat    
    42    
    43 loadobs tb  1   ijk   0    A       1     ../data_out/tb_0D_obs_100.dat D    
     41#savestate tb  1   ijk   10%    A       3       ../data_out/tb_0D_obs_100.dat    
     42savestate tb  1   ijk   120    A       3       ../data_out/tb_0D_obs_120.dat    
     43 
     44loadobs tb  1   ijk   0    A       1     ../data_out/tb_0D_obs_120.dat D    
    4445 
    4546 
     
    5455print_time OFF 
    5556 
    56 xwriteout 0 init ../data_out/exp_T_qs.nc 
    57 xwriteout 100 forw0_49 ../data_out/exp_T_qs.nc 
     57xwriteout 0 init ../data_out/exp_T_ebx0.nc 
     58xwriteout 120 forw0_49 ../data_out/exp_T_ebx0.nc 
    5859savestate tb 1 ijk 0 A 3 ../data_out/Tb_fg_0D.dat 
     60 
     61#EBAUCHE 
     62outoebx ta_c 1 0 
     63set_bcoef ta_c 0.1 
     64 
    5965 
    6066#goto FINRUN 
     
    7480setm_nsim    100 
    7581setm_dxmin   1.0e-4 
    76 setm_epsg    1.0e-10 
     82setm_epsg    1.0e-8 
    7783setm_ddf1    1 
    78 set_qs_parts 4 
     84set_qs_parts 1 
    7985 
    80 runm 
     86runm  
     87 
     88#Pour faire sur un nombre limité de pas de temps 
     89#runm 10 
     90#10 : temps absolu 
     91 
    8192##SAUVEGARDE 
    82 xwriteout 0 fin ../data_out/exp_T_qs.nc 
    83 xwriteout 100 forwfin_99 ../data_out/exp_T_qs.nc 
    84 savestate tb 1 ijk 0 A 3 ../data_out/Tb_analyse_0D_qs.dat 
    85 xrst_save ../data_in/file_rest/GYRE_799_restart_yao_qs.nc 
     93xwriteout 0 fin ../data_out/exp_T_ebx0.nc 
     94xwriteout 120 forwfin_99 ../data_out/exp_T_ebx0.nc 
     95savestate tb 1 ijk 0 A 3 ../data_out/Tb_analyse_0D_ebx0.dat 
     96xrst_save ../data_in/file_rest/GYRE_799_restart_yao_ebx0.nc 
    8697init_kt 800 
    8798set_modeltime 0 
    88 xrst_save ../data_in/file_rest/GYRE_800_restart_yao_qs.nc 
     99xrst_save ../data_in/file_rest/GYRE_800_restart_yao_ebx0.nc 
    89100 
    90101 
  • 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//_____________________________________________________________________________ 
  • trunk/src/ta_c.h

    r70 r75  
    2020  //// 
    2121  //  printf("norm_fac= %24.16e\n",norm_fac); 
    22   if(fabs(norm_fil*x1)>5)  
    23       printf("increm(%d,%d,%d) = %24.16e (%24.16e) \n",Yi+1,Yj+1,Yk+1,norm_fil*x1,YS1); 
     22  // if(fabs(norm_fil*x1)>5)  
     23    //printf("increm(%d,%d,%d) = %24.16e (%24.16e) \n",Yi+1,Yj+1,Yk+1,norm_fil*x1,YS1); 
    2424} 
    2525//=========================================================================== 
Note: See TracChangeset for help on using the changeset viewer.