Changeset 62
- Timestamp:
- 07/29/11 16:44:58 (13 years ago)
- Location:
- branches/branche-mb
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/branche-mb/data_out/plot_results.m
r38 r62 1 f=netcdf('exp_T .nc');1 f=netcdf('exp_T_2D.nc'); 2 2 3 3 addpath('../scripts/matlab_toolbox'); -
branches/branche-mb/scripts/sinobad.i
r59 r62 17 17 18 18 xwriteout 0 true ../data_out/exp_T.nc 19 19 #setstate nu 1 20 #init_nu 20 21 print_time OFF 21 22 set_modeltime 0 … … 35 36 savestate ub 1 ijk 50 A 1 ../data_out/ub_obs_48.dat 36 37 savestate vb 1 ijk 50 A 1 ../data_out/vb_obs_48.dat 38 #GOTO TESTAD 37 39 38 40 loadobs sshb 1 ij 50 A 1 ../data_out/sshb_obs_48.dat D … … 42 44 loadobs vb 1 ijk 50 A 1 ../data_out/vb_obs_48.dat D 43 45 44 46 GOTO FINTEST 47 #TEST DE L'ADJOINT' 48 TESTAD 49 testad 1.e-01 50 stop 51 #----------------- 52 #TEST DE LA PROGRAMMATION DES DERIVEES 53 TESTDF 54 testdf 3 3 1 4 f 1.e-10 0.001 10 55 stop 56 #----------------- 57 # TEST DE LINEAIRE TANGENT 58 TESTLT 59 testlt 1.e+00 0.5e-01 2. 15 60 stop 61 FINTEST 45 62 #goto FINRUN 46 63 … … 50 67 setstate nu 0 51 68 outoebx nu 1 0 69 set_bcoef nu 1.e-16 52 70 set_modeltime 0 53 71 print_time OFF … … 63 81 FINTEST 64 82 ##DEBUT DE L'ASSIMILATION' 65 83 print_cost ON 66 84 set_modeltime 0 67 85 !echo "RUN OPTIMIZATION WITH M1QN3 ......." -
branches/branche-mb/scripts/sinobad_2D.i
r34 r62 12 12 ##INITIALISATION 13 13 xistate_init 1 ../data_in/file_rest/GYRE_00000424_restart.nc 14 load_eb ta_c // pour tenir en compte ta_c sinon sera 0 cause filtre 14 15 true_target_in_tab ta_c 15 16 xinitnc ../data_out/exp_T_2D.nc … … 36 37 ##INITIALISATION DE L'ASSIMILATION' 37 38 xistate_init 1 ../data_in/file_rest/GYRE_00000400_restart.nc 39 load_eb ta_c // charger l'ebauche ' 40 setstate nu 0 41 outoebx nu 1 0 42 set_bcoef nu 1.e-05 38 43 set_modeltime 0 39 44 print_time OFF … … 49 54 FINTEST 50 55 ##DEBUT DE L'ASSIMILATION' 51 56 print_cost ON 52 57 set_modeltime 0 53 58 !echo "RUN OPTIMIZATION WITH M1QN3 ......." … … 61 66 setm_ddf1 1 62 67 runm 68 69 goto nomulti 70 load_eb ta_c // charger l'ebauche ' 71 set_bcoef nu 1.e-06 72 runm 73 74 load_eb ta_c // charger l'ebauche ' 75 set_bcoef nu 1.e-07 76 runm 77 nomulti 78 63 79 ##SAUVEGARDE 64 80 xwriteout 0 fin ../data_out/exp_T_2D.nc -
branches/branche-mb/src/Makefile
r55 r62 1 # GENOPT=-DOPTIMORDER -DSOLSORYAO -E1 # GENOPT=-DOPTIMORDER -DSOLSORYAO -E 2 2 #GENOPT= -E 3 3 GENOPT=-DOPTIMORDER -E -
branches/branche-mb/src/cost.dat
r59 r62 2 2 0.0000000000000000e+00 3 3 0.0000000000000000e+00 4 2.1474823164582097e+02 5 1.2975758308681927e+01 6 2.4264061059597573e+01 7 9.5294911320411000e+00 8 6.1849686337309064e+00 9 4.0738038971828123e+00 10 2.3898782803950009e+00 11 2.0888660877807852e+00 12 1.6129218002581345e+00 13 1.4602912585844716e+00 14 1.5154815138350144e+00 15 1.4661975187573568e+00 16 1.4668321473655250e+00 17 1.4708862822664150e+00 18 1.4854466172307939e+00 19 1.4205507107251405e+00 20 1.7030517837610164e+00 21 1.4345968631501795e+00 22 1.4351405506167443e+00 23 1.4397453657339783e+00 24 1.4537877548984335e+00 25 1.4674691588039481e+00 26 1.4760376865940141e+00 27 1.4825757968508098e+00 28 1.4094545811622352e+00 29 1.4080263806488316e+00 30 1.4835348660561365e+00 31 1.4064118013093134e+00 32 1.4062029823934583e+00 33 1.4836757396029698e+00 34 1.4837748681619887e+00 35 1.4838440857485093e+00 36 1.4838925284218420e+00 37 1.4839264406875585e+00 38 1.4061456937219163e+00 -
branches/branche-mb/src/dta_lfil.h
r59 r62 18 18 19 19 if(Yt==1){ 20 YS1=x1; 20 double zdep; 21 if (Yk==0) 22 zdep=fsdept( Yi , Yj , 1 ) - fsdept( Yi , Yj , 0 ); 23 else 24 zdep=fsdept( Yi , Yj , Yk ) - fsdept( Yi , Yj , Yk-1 ); 25 double wm12=1./(106000*sqrt(zdep)); //1/sqrt(ds1*ds2*ds3) 26 YS1=wm12*x1; 21 27 } 22 28 else{ … … 30 36 } 31 37 // 38 if(Yt==1 && Yk==0 && Yi<26 && Yi>22 && Yj<17 && Yj>13) 39 printf("nul1(%d,%d) = %24.16e \n",Yi+1,Yj+1,YS1); 40 if(Yt==40 && Yk==0 && Yi<26 && Yi>22 && Yj<17 && Yj>13) 41 printf("nul40(%d,%d) = %24.16e \n",Yi+1,Yj+1,YS1); 32 42 } 33 43 … … 41 51 42 52 if(Yt==1){ 43 YJ1I1=1.; 53 double zdep; 54 if (Yk==0) 55 zdep=fsdept( Yi , Yj , 1 ) - fsdept( Yi , Yj , 0 ); 56 else 57 zdep=fsdept( Yi , Yj , Yk ) - fsdept( Yi , Yj , Yk-1 ); 58 double wm12=1./(106000*sqrt(zdep)); //1/sqrt(ds1*ds2*ds3) 59 YJ1I1=wm12; 44 60 } 45 61 else{ … … 54 70 } 55 71 // 72 if(Ycurward==BACKWARD){ 73 if(Yt==10 && Yk==0 && Yi<26 && Yi>22 && Yj<17 && Yj>13) 74 printf("YG_1L(%d,%d) = %24.16e \n",Yi+1,Yj+1,YG1); 75 } 56 76 } -
branches/branche-mb/src/dta_zfil.h
r59 r62 15 15 //printf("dta_zfil : %d\n",Yt); 16 16 if(Yt==1){ 17 YS1=x1; 17 double wm12=1./sqrt(fse3t(Yi,Yj,Yk)); //1/sqrt(dz) 18 YS1=wm12*x1; 18 19 } 19 20 else{ … … 26 27 } 27 28 } 29 /* if(Yt==1 && Yk==0 && Yi<26 && Yi>22 && Yj<17 && Yj>13) 30 printf("nuz1(%d,%d) = %24.16e \n",Yi+1,Yj+1,YS1); 31 if(Yt==40 && Yk==0 && Yi<26 && Yi>22 && Yj<17 && Yj>13) 32 printf("nuz40(%d,%d) = %24.16e \n",Yi+1,Yj+1,YS1);*/ 28 33 // 29 34 } … … 36 41 YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; 37 42 if(Yt==1){ 38 YJ1I1=1.; 43 double wm12=1./sqrt(fse3t(Yi,Yj,Yk)); //1/sqrt(dz) 44 YJ1I1=wm12; 39 45 } 40 46 else{ … … 49 55 // 50 56 57 /* if(Ycurward==BACKWARD){ 58 if(Yt==1 && Yk==0 && Yi<26 && Yi>22 && Yj<17 && Yj>13) 59 printf("YG_1(%d,%d) = %24.16e \n",Yi+1,Yj+1,YG1); 60 }*/ 51 61 } -
branches/branche-mb/src/sinobad.d
r60 r62 1 //#define FILTER 1 #define FILTER 2 #define FILZNOL 3 //#define FILNOZL 2 4 //#define SOLSORYAO 3 5 //#define OPTIMORDER … … 18 20 defval TU 2 | start time step 19 21 #ifdef FILTER 20 defval OFTL 4021 defval OFTZ 4022 defval OFT 8022 defval OFTL 0 23 defval OFTZ 25 24 defval OFT 25 23 25 #endif 24 26 #ifndef FILTER … … 28 30 #ifdef FILTER 29 31 defval K_FILTER 32 #endif 33 #ifdef FILZNOL 34 defval K_FILZNOL 35 #endif 36 #ifdef FILNOZL 37 defval K_FILNOZL 30 38 #endif 31 39 #ifdef SOLSORYAO … … 53 61 #ifdef FILTER 54 62 traj Tcstf M 0 1 63 #ifndef FILNOZL 64 #ifndef FILZNOL 55 65 traj Tlfil M 1 0 1 OFTL 66 #endif 56 67 traj Tzfil M 1 OFTL 1 OFTZ 68 #endif 57 69 #endif 58 70 traj Tcst M 0 OFT 1 1 … … 62 74 #ifdef FILTER 63 75 space S3df M NX NY NZ Tcstf 76 #ifndef FILNOZL 77 #ifndef FILZNOL 64 78 space S3dtlf M NX NY NZ Tlfil 79 #endif 65 80 space S3dtzf M NX NY NZ Tzfil 66 81 #endif 82 #endif 67 83 68 84 space S0d M 1 Tcst 69 //#space S3d M NX NY NZ Tcst70 85 space S3d M NX NY NZ Tcst 71 86 space S3dt M NX NY NZ Tsbd … … 96 111 #ifdef FILTER 97 112 modul nu space S3df noward output 1 target 113 #ifndef FILNOZL 114 #ifndef FILZNOL 98 115 modul dta_lfil space S3dtlf input 6 output 1 tempo 99 116 modul ztuv_lfil space S3dtlf input 3 output 2 tempo 117 #endif 100 118 modul dta_zfil space S3dtzf input 4 output 1 tempo 101 119 modul zwy_zfil space S3dtzf input 2 output 1 tempo 120 #endif 102 121 modul ta_c space S3d input 1 output 1 103 122 #endif … … 285 304 286 305 #ifdef FILTER 306 #ifndef FILNOZL 307 #ifndef FILZNOL 287 308 //#---------->dta_lfil 288 309 ctin dta_lfil 1 from nu 1 i j k … … 297 318 ctin ztuv_lfil 2 from dta_lfil 1 i j k t-1 298 319 ctin ztuv_lfil 3 from dta_lfil 1 i j+1 k t-1 320 #endif 299 321 300 322 //#---------->dta_zfil 323 #ifdef FILZNOL 324 ctin dta_zfil 1 from nu 1 i j k 325 #endif 326 #ifndef FILZNOL 301 327 ctin dta_zfil 1 from dta_lfil 1 i j k t 328 #endif 302 329 ctin dta_zfil 2 from dta_zfil 1 i j k t-1 303 330 ctin dta_zfil 3 from zwy_zfil 1 i j k+1 t … … 309 336 310 337 //#---------->ta_c 311 ctin ta_c 1 from dta_zfil 1 i j k-1 t 338 ctin ta_c 1 from dta_zfil 1 i j k t 339 #endif 340 #ifdef FILNOZL 341 ctin ta_c 1 from nu 1 i j k 342 #endif 312 343 #endif 313 344 //#ctin ta_c 1..NPCA from pca_ta 1..NPCA 1 314 345 315 // exec disp_ct_in346 //#exec disp_ct_in 316 347 exec disp_modul 317 348 … … 878 909 #ifdef FILTER 879 910 // calcul du filtre 880 911 #ifndef FILNOZL 912 #ifndef FILZNOL 881 913 order modinspace S3dtlf 882 914 order YA3 … … 889 921 forder 890 922 forder 891 923 #endif 892 924 order modinspace S3dtzf 893 925 order YA3 YA2 YA1 … … 898 930 forder 899 931 forder 932 #endif 900 933 order modinspace S3d 901 934 order YA3 YA2 YA1 … … 1104 1137 #ifdef FILTER 1105 1138 1139 #ifndef FILNOZL 1140 #ifndef FILZNOL 1106 1141 order spaceintraj Tlfil 1107 1142 S3dtlf 1108 1143 forder 1144 #endif 1109 1145 order spaceintraj Tzfil 1110 1146 S3dtzf 1111 1147 forder 1148 #endif 1112 1149 order spaceintraj Tcst 1113 1150 S3d … … 1131 1168 insert_fct arg xchangesavemode 1132 1169 1170 #ifdef FILTER 1133 1171 insert_fct arg load_eb 1134 1172 insert_fct init_nu 1173 #endif 1135 1174 insert_fct arg xwriteout 1136 1175 insert_fct arg xwritegrad -
branches/branche-mb/src/sinobad.h
r59 r62 13 13 #include"../include/meshmask.h" 14 14 15 #ifdef K_FILTER 15 16 #define ta_eb( i, j, k ) (ta_eb[(i)*(NY*NZ)+(j)*(NZ)+(k)]) // ebauche 16 17 double ta_eb[NZ*NY*NX]; // ebauche 17 18 void load_eb (int argc, char *argv[]); // load "ebauche" from current variable ta_c 19 #endif 18 20 // For PPCA 19 21 /*double shfs_ta[NZ*NY*NX][NPCA]; … … 78 80 79 81 #ifdef K_FILTER 80 double pdth_fil= 7200.;81 double pdtz_fil= 7200.;82 double pdth_fil=100.;//7200.; 83 double pdtz_fil=100.;//7200.; 82 84 double fsaht_fil= 1.2e+2;//1000.; 83 double avt_fil=1.2e-1; 85 double avt_fil=1.2e-5; 86 double lscale= 212000.; // length-scale 84 87 #endif 85 88 … … 106 109 printf("//====================================================================//\n"); 107 110 printf("\n"); 111 #ifdef K_FILTER 112 printf("option FILTER enable\n"); 113 #else 114 printf("option FILTER disable\n"); 115 #endif 108 116 #ifdef K_SOLSORYAO 109 117 printf("option SOLSORYAO enable\n"); … … 236 244 normsup_alla_c(); 237 245 } 238 246 #ifdef K_FILTER 247 void init_nu(){ 248 249 for(int tt=0;tt<24;tt++) 250 for(int k=0;k<NZ;k++) 251 for(int j=0;j<NY;j++) 252 for(int i=0;i<NX;i++){ 253 YS_nu(0,i,j,k)=YS_nu(0,i,j,k)+1.*exp(-((i+1.-(3.*NX)/4.)*(i+1.-(3.*NX)/4.)+ 254 (j+1.-(3.*NY)/4.)*(j+1.-(3.*NY)/4.))/4.) 255 *(1.-exp(-double(k+1.-NZ)/NZ))*(1.-exp(-double(tt)/24.)); 256 } 257 } 258 #endif 239 259 //_____________________________________________________________________________ 240 260 #define hu( i, j ) (hu[(j)*(NX)+(i)]) … … 540 560 } 541 561 //______________________________________________________________________________ 562 #ifdef K_FILTER 542 563 void load_eb (int argc, char *argv[]){ // load "ebauche" 543 564 // on doit presiser la variable exple : load_eb ta_c … … 560 581 } 561 582 } 583 #endif 562 584 563 585 -
branches/branche-mb/src/ta_c.h
r59 r62 8 8 forward (YREAL x1) 9 9 { 10 YS1 = ta_eb(Yi,Yj,Yk) +x1; 10 11 //if(Yk==0 && Yi<14 && Yi>10 && Yj<14 && Yj>10) printf("nu(%d,%d) = %24.16e \n",Yi+1,Yj+1,x1); 12 13 double norm_fac; 14 #ifdef K_FILZNOL 15 norm_fac= 2.*sqrt(PI*avt_fil*pdtz_fil*2.*OFTZ);///1.e-01;//1./sqrt(2.*PI)/lscale; 16 #elif defined (K_FILNOZL) 17 norm_fac= 1.e+00; 18 #else 19 norm_fac= 1.e+00; 20 #endif 21 YS1 = ta_eb(Yi,Yj,Yk) +norm_fac*x1; 22 if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){ 23 YS1=0.; 24 } 11 25 12 26 … … 16 30 //YS1=sum; 17 31 //// 32 /* if(fabs(x1)>0.1) 33 printf("increm(%d,%d,%d) = %24.16e (%24.16e) \n",Yi+1,Yj+1,Yk+1,x1,YS1);*/ 18 34 } 19 35 //=========================================================================== … … 22 38 backward (YREAL x1) 23 39 { 24 YJ1I1=1.; 25 40 double norm_fac; 41 #ifdef K_FILZNOL 42 norm_fac= 2.*sqrt(PI*avt_fil*pdtz_fil*2.*OFTZ);///1.e-01;//1./sqrt(2.*PI)/lscale; 43 #elif defined (K_FILNOZL) 44 norm_fac= 1.e+00; 45 #else 46 norm_fac= 1.e+00; 47 #endif 48 YJ1I1=norm_fac; 49 if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){ 50 YJ1I1=0.; 51 } 52 26 53 //for(int n=0;n<NPCA;n++) 27 54 // Yjac[0][n] = stdev_ta[n]*shfs_ta(Yi,Yj,Yk,n);
Note: See TracChangeset
for help on using the changeset viewer.