Changeset 68
- Timestamp:
- 08/30/11 16:13:04 (13 years ago)
- Location:
- branches/branche-mb
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/branche-mb/scripts/sinobad.i
r62 r68 18 18 xwriteout 0 true ../data_out/exp_T.nc 19 19 #setstate nu 1 20 #init_nu 20 init_nu 21 xset_fdt_fco th 100. 22 xset_fdt_fco tz 100. 23 xset_fdt_fco kh 5.e+02 24 xset_fdt_fco kz 1.2e-05 25 21 26 print_time OFF 22 27 set_modeltime 0 … … 36 41 savestate ub 1 ijk 50 A 1 ../data_out/ub_obs_48.dat 37 42 savestate vb 1 ijk 50 A 1 ../data_out/vb_obs_48.dat 38 #GOTO TESTAD43 GOTO TESTAD 39 44 40 45 loadobs sshb 1 ij 50 A 1 ../data_out/sshb_obs_48.dat D -
branches/branche-mb/scripts/sinobad_2D.i
r62 r68 2 2 # fichier de D'INSTRUCTIONS de référence 3 3 #Julien Brajard 4 # modified by mohamed Berrada (filtre August 2011) 4 5 #============================================================================== 5 6 #script faisant l'assimilation de référence … … 14 15 load_eb ta_c // pour tenir en compte ta_c sinon sera 0 cause filtre 15 16 true_target_in_tab ta_c 17 18 xset_fdt_fco th 1000. 19 xset_fdt_fco tz 10. 20 xset_fdt_fco kh 5.e+05 21 xset_fdt_fco kz 1.2e-03 22 16 23 xinitnc ../data_out/exp_T_2D.nc 17 24 … … 40 47 setstate nu 0 41 48 outoebx nu 1 0 42 set_bcoef nu 1.e- 0549 set_bcoef nu 1.e-8 43 50 set_modeltime 0 44 51 print_time OFF … … 69 76 goto nomulti 70 77 load_eb ta_c // charger l'ebauche ' 71 set_bcoef nu 1.e-0678 set_bcoef nu 5.e-05 72 79 runm 73 80 74 81 load_eb ta_c // charger l'ebauche ' 75 set_bcoef nu 1.e-0 782 set_bcoef nu 1.e-04 76 83 runm 84 85 ##SAUVEGARDE 86 xwriteout 0 fin ../data_out/exp_T_2D.nc 87 xwriteout 50 forwfin_48 ../data_out/exp_T_2D.nc 88 89 xrst_save ../data_in/file_rest/GYRE_00000400_restart_CONTROL_T_2D.nc 90 91 77 92 nomulti 78 93 -
branches/branche-mb/src/cost.dat
r67 r68 2 2 0.0000000000000000e+00 3 3 0.0000000000000000e+00 4 2.1474823164582097e+02 5 1.2274234090104164e+01 6 2.3881198434552111e+01 7 8.8771059162513382e+00 8 5.5557975737505458e+00 9 3.4803779742760317e+00 10 1.7128978455386892e+00 11 1.1973455752757605e+00 12 9.8335187344394392e-01 13 7.6117334075192200e-01 14 5.9846985043808543e-01 15 6.7366624706570466e-01 16 5.5874401856066103e-01 17 7.3595639204467600e-01 18 5.0953722678532765e-01 19 1.1965283691171660e+00 20 6.5986339544255534e-01 21 6.6013045954860117e-01 22 6.5392286280927792e-01 23 5.6394373996837344e-01 24 5.7610237016601717e-01 25 5.8032116526810040e-01 26 5.8309360765246787e-01 27 5.8519910883568982e-01 28 5.8664512715255190e-01 29 5.8761359807265934e-01 30 5.8831541023256795e-01 31 5.8880781610867361e-01 32 5.8915693207370023e-01 33 5.0893021741293576e-01 34 5.0885469878063883e-01 35 5.8920763747258753e-01 36 5.0875296736771736e-01 37 5.0874187732734499e-01 38 5.8921509431560293e-01 39 5.8922030000369108e-01 40 5.8922395197080846e-01 41 5.8922651344473387e-01 -
branches/branche-mb/src/dta_lfexp.h
r67 r68 37 37 tim1= 0.; 38 38 #ifdef K_NEU 39 tim1= -bim1 * x2;39 tim1= bim1 * x2; 40 40 #endif 41 41 } 42 42 else{ 43 tim1= -bim1 * x3;43 tim1= bim1 * x3; 44 44 } 45 45 if (Yi==NX-2){ 46 46 tip1= 0.; 47 47 #ifdef K_NEU 48 tip1= -bi * x2;48 tip1= bi * x2; 49 49 #endif 50 50 } 51 51 else{ 52 tip1= -bi * x4;52 tip1= bi * x4; 53 53 } 54 54 //cdt au bord j … … 56 56 tjm1= 0.; 57 57 #ifdef K_NEU 58 tjm1= -bjm1 * x2;58 tjm1= bjm1 * x2; 59 59 #endif 60 60 } 61 61 else{ 62 tjm1= -bjm1 * x5;62 tjm1= bjm1 * x5; 63 63 } 64 64 if (Yj==NY-2){ 65 65 tjp1= 0.; 66 66 #ifdef K_NEU 67 tjp1= -bj * x2;67 tjp1= bj * x2; 68 68 #endif 69 69 } 70 70 else{ 71 tjp1= -bj * x6;71 tjp1= bj * x6; 72 72 } 73 73 74 tij= (1./zbtr +bi+bim1+bj+bjm1) * x2;74 tij= (1./zbtr-bi-bim1-bj-bjm1) * x2; 75 75 YS1 = zbtr*(tip1 + tim1 + tjp1 + tjm1 + tij); 76 76 } … … 105 105 dtim1_x2= 0.; 106 106 #ifdef K_NEU 107 dtim1_x2= -bim1;107 dtim1_x2= bim1; 108 108 #endif 109 109 } 110 110 else{ 111 dtim1_x3= -bim1;111 dtim1_x3= bim1; 112 112 } 113 113 if (Yi==NX-2){ 114 114 dtip1_x2= 0.; 115 115 #ifdef K_NEU 116 dtip1_x2= -bi;116 dtip1_x2= bi; 117 117 #endif 118 118 } 119 119 else{ 120 dtip1_x4= -bi;120 dtip1_x4= bi; 121 121 } 122 122 //cdt au bord j … … 124 124 dtjm1_x2= 0.; 125 125 #ifdef K_NEU 126 dtjm1_x2= -bjm1;126 dtjm1_x2= bjm1; 127 127 #endif 128 128 } 129 129 else{ 130 dtjm1_x5= -bjm1;130 dtjm1_x5= bjm1; 131 131 } 132 132 if (Yj==NY-2){ 133 133 dtjp1_x2= 0.; 134 134 #ifdef K_NEU 135 dtjp1_x2= -bj;135 dtjp1_x2= bj; 136 136 #endif 137 137 } 138 138 else{ 139 dtjp1_x6= -bj;139 dtjp1_x6= bj; 140 140 } 141 dtij_x2= (1./zbtr +bi+bim1+bj+bjm1);141 dtij_x2= (1./zbtr-bi-bim1-bj-bjm1); 142 142 143 143 YJ1I1 = 0.; -
branches/branche-mb/src/sinobad.d
r67 r68 1 defval K_NEU1 //defval K_NEU 2 2 #define FZIMP 3 3 #define FILTER 4 //#define FILZNOL5 #define FILLNOZ4 #define FILZNOL 5 //#define FILLNOZ 6 6 //#define SOLSORYAO 7 7 //#define OPTIMORDER … … 22 22 defval TU 2 | start time step 23 23 #ifdef FILTER 24 defval OFTL 1025 defval OFTZ 026 defval OFT 1024 defval OFTL 0 25 defval OFTZ 4 26 defval OFT 4 27 27 #endif 28 28 #ifndef FILTER … … 329 329 //#---------->dta_zfil 330 330 #ifndef FILLNOZ 331 331 332 #ifndef FILZNOL 332 333 #ifndef FZIMP … … 367 368 ctin ta_c 1 from dta_zfexp 1 i j k t 368 369 #endif 369 #endif 370 371 #endif 372 370 373 #ifdef FILLNOZ 371 374 ctin ta_c 1 from dta_lfexp 1 i j k t … … 1209 1212 #ifdef FILTER 1210 1213 insert_fct arg load_eb 1211 insert_fct init_nu 1214 insert_fct arg init_nu 1215 insert_fct arg xset_fdt_fco 1212 1216 #endif 1213 1217 insert_fct arg xwriteout -
branches/branche-mb/src/sinobad.h
r67 r68 87 87 double pdth_fil=100.;//7200.; 88 88 double pdtz_fil=100.;//100.;//7200.; 89 double fsaht_fil= 5.e+ 2;//1000.;89 double fsaht_fil= 5.e+02;//1000.; 90 90 double avt_fil=1.2e-05;//1.2e-5; 91 91 //double lscale= 212000.; // length-scale 92 92 double norm_fil; //coef de normalisation 93 93 void normfil();// calcul du coef de normalisation norm_fil 94 void xset_fdt_fco();// set fdt fcoef 94 95 #endif 95 96 … … 259 260 //_____________________________________________________________________________ 260 261 #ifdef K_FILTER 262 //_____________________________________________________________________________ 261 263 void normfil(){ 262 264 double norm_zfil=1.; 263 265 double norm_lfil=1.; 264 #if defined (K_FILZNOL) /* && !defined (K_FILLNOZ)*/ 265 norm_zfil= 2.*sqrt(PI*avt_fil*pdtz_fil*2.* OFTZ);266 #ifdef K_FZIMP 266 norm_lfil= 2.*sqrt(PI*fsaht_fil*pdth_fil*2.*(OFTL-1.));// schema explicite 267 norm_zfil= 2.*sqrt(PI*avt_fil*pdtz_fil*2.*(OFTZ-1.));// schema explicite 268 #ifdef K_FZIMP // schema implicite 267 269 double fact=1.; 268 270 int M=2*(OFTZ-1); … … 271 273 norm_zfil=2.*fact*sqrt(avt_fil*pdtz_fil); 272 274 #endif 273 #elif defined (K_FILLNOZ) /*&& !defined (K_FILZNOL)*/ 274 norm_lfil= 2.*sqrt(PI*fsaht_fil*pdth_fil*2.*OFTL); 275 #endif 275 276 #if defined (K_FILZNOL) 277 norm_lfil=1.; 278 #endif 279 #if defined (K_FILLNOZ) 280 norm_zfil=1.; 281 #endif 282 276 283 norm_fil= norm_zfil*norm_lfil; 277 284 printf("norm_fil = %23.16e\n",norm_fil); 278 285 } 279 286 //_____________________________________________________________________________ 280 void init_nu(){ 281 282 for(int tt=0;tt<24;tt++) 287 void xset_fdt_fco(int argc, char *argv[]){// set fdt fcoef 288 if (argc!=3){ 289 printf("\n inappropriate arguments choice in command xset_fdt_fco\n"); 290 exit(99); 291 } 292 if(!strcmp(argv[1],"th")){ 293 pdth_fil=atof(argv[2]); 294 } 295 else if(!strcmp(argv[1],"tz")){ 296 pdtz_fil=atof(argv[2]); 297 } 298 else if(!strcmp(argv[1],"kh")){ 299 fsaht_fil=atof(argv[2]); 300 } 301 else if(!strcmp(argv[1],"kz")){ 302 avt_fil=atof(argv[2]); 303 } 304 else{ 305 printf("\n inappropriate first argument choice in command xset_fdt_fco\n"); 306 exit(99); 307 } 308 } 309 //_____________________________________________________________________________ 310 void init_nu(int argc, char *argv[]){ 311 if (argc==1){ 312 for(int tt=0;tt<24;tt++) 313 for(int k=0;k<NZ;k++) 314 for(int j=0;j<NY;j++) 315 for(int i=0;i<NX;i++){ 316 YS_nu(0,i,j,k)=YS_nu(0,i,j,k)+0.1*exp(-((i+1.-(3.*NX)/4.)*(i+1.-(3.*NX)/4.)+ 317 (j+1.-(3.*NY)/4.)*(j+1.-(3.*NY)/4.))/4.) 318 *(1.-exp(-double(k+1.-NZ)/NZ))*(1.-exp(-double(tt)/24.)); 319 } 320 } 321 else if (argc==5){ 283 322 for(int k=0;k<NZ;k++) 284 323 for(int j=0;j<NY;j++) 285 324 for(int i=0;i<NX;i++){ 286 YS_nu(0,i,j,k)=YS_nu(0,i,j,k)+0.1*exp(-((i+1.-(3.*NX)/4.)*(i+1.-(3.*NX)/4.)+ 287 (j+1.-(3.*NY)/4.)*(j+1.-(3.*NY)/4.))/4.) 288 *(1.-exp(-double(k+1.-NZ)/NZ))*(1.-exp(-double(tt)/24.)); 289 } 325 YS_nu(0,i,j,k)=0.; 326 } 327 328 float v=atof(argv[1]); 329 int ji=atoi(argv[2])-1; 330 int jj=atoi(argv[3])-1; 331 int jk=atoi(argv[4])-1; 332 YS_nu(0,ji,jj,jk)=v; 333 } 334 else{ 335 printf("\n inappropriate arguments choice in command init_nu\n"); 336 exit(99); 337 } 290 338 } 291 339 //_____________________________________________________________________________ … … 300 348 } 301 349 double a0,a1; 350 double a2,b2,c2; 302 351 for(int j=1;j<NY-1;j++) 303 352 for(int i=1;i<NX-1;i++){ 304 353 a1=avt_fil*pdtz_fil/fse3w(i,j,1); 305 tab_luzimp( i, j, 0 , 0 ) = 0.;// 0-->gam 306 tab_luzimp( i, j, 0 , 1 ) = fse3t(i,j,0)+a1;// 1-->bet 354 b2= 1.-a1/fse3t(i,j,0); 307 355 #ifndef K_NEUM 308 356 a0=avt_fil*pdtz_fil/fse3w(i,j,0); 309 tab_luzimp( i, j, 0 , 1 ) += a0;// 1-->bet 310 #endif 357 b2 -= (a0/fse3t(i,j,0));// 1-->bet 358 #endif 359 tab_luzimp( i, j, 0 , 0 ) = 0.;// 0-->gam 360 tab_luzimp( i, j, 0 , 1 ) = b2;// 1-->bet 311 361 for(int k=1;k<NZ-2;k++){ 312 362 a0=avt_fil*pdtz_fil/fse3w(i,j,k); 313 363 a1=avt_fil*pdtz_fil/fse3w(i,j,k+1); 314 tab_luzimp( i, j, k , 0 ) = -a0/tab_luzimp( i, j, k-1 , 1); 315 tab_luzimp( i, j, k , 1 ) = fse3t(i,j,k)+a1+a0 + a0 * tab_luzimp( i, j, k , 0 ); 364 a2 = a0/fse3t(i,j,k); 365 b2 = 1.-a1/fse3t(i,j,k)-a0/fse3t(i,j,k); 366 c2 = a0/fse3t(i,j,k-1); 367 tab_luzimp( i, j, k , 0 ) = c2/tab_luzimp( i, j, k-1 , 1); 368 tab_luzimp( i, j, k , 1 ) = b2 - a2 * tab_luzimp( i, j, k , 0 ); 316 369 } 317 370 a0=avt_fil*pdtz_fil/fse3w(i,j,NZ-2); 318 tab_luzimp( i, j, NZ-2 , 0 ) = -a0/tab_luzimp( i, j, NZ-3 , 1);319 tab_luzimp( i, j, NZ-2 , 1 ) = fse3t(i,j,NZ-2)+a0 + a0 * tab_luzimp( i, j, NZ-2 , 0);371 a2 = a0/fse3t(i,j,NZ-2); 372 b2 = 1.-a0/fse3t(i,j,NZ-2); 320 373 #ifndef K_NEUM 321 374 a1=avt_fil*pdtz_fil/fse3w(i,j,NZ-1); 322 tab_luzimp( i, j, NZ-2 , 1 ) += a1; 323 #endif 324 } 325 /* for(int k=0;k<NZ;k++){ // init a 0 326 printf("gam(%d)=%f \t",k+1,tab_luzimp( 5, 5, k , 0 )); 327 printf("bet(%d)=%f \n",k+1,tab_luzimp( 5, 5, k , 1 )); 328 }*/ 375 b2 -= a1/fse3t(i,j,NZ-2); 376 #endif 377 c2 = a0/fse3t(i,j,NZ-3); 378 379 tab_luzimp( i, j, NZ-2 , 0 ) = c2/tab_luzimp( i, j, NZ-3 , 1); 380 tab_luzimp( i, j, NZ-2 , 1 ) = b2 - a2 * tab_luzimp( i, j, NZ-2 , 0 ); 381 } 382 for(int k=0;k<NZ;k++){ // init a 0 383 printf("gam(%d)=%f \t",k+1,tab_luzimp( 23, 15, k , 0 )); 384 printf("bet(%d)=%f \n",k+1,tab_luzimp( 23, 15, k , 1 )); 385 } 329 386 } 330 387 #endif -
branches/branche-mb/src/ta_c.h
r67 r68 20 20 //// 21 21 // printf("norm_fac= %24.16e\n",norm_fac); 22 if(fabs(norm_fil*x1)>5 .)22 if(fabs(norm_fil*x1)>5) 23 23 printf("increm(%d,%d,%d) = %24.16e (%24.16e) \n",Yi+1,Yj+1,Yk+1,norm_fil*x1,YS1); 24 24 }
Note: See TracChangeset
for help on using the changeset viewer.