Changeset 70
- Timestamp:
- 08/30/11 16:51:09 (13 years ago)
- Location:
- trunk/src
- Files:
-
- 1 added
- 1 deleted
- 7 edited
- 9 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/.TERM_xterm
r64 r70 11 11 lun. juin 27 15:44:44 CEST 2011 ... ariane.locean-ipsl.upmc.fr 12 12 mer. juin 29 16:45:11 CEST 2011 ... ariane.locean-ipsl.upmc.fr 13 lun. août 1 16:18:44 CEST 2011 ... ariane13 mar. juil. 12 12:15:52 CEST 2011 ... antea -
trunk/src/Makefile
r66 r70 1 # GENOPT=-DOPTIMORDER -DSOLSORYAO -E1 # GENOPT=-DOPTIMORDER -DSOLSORYAO -E 2 2 #GENOPT= -E 3 3 GENOPT=-DOPTIMORDER -E -
trunk/src/cost.dat
r61 r70 1 1 0.0000000000000000e+00 2 0.0000000000000000e+00 3 0.0000000000000000e+00 -
trunk/src/gcx2.h
- Property svn:mergeinfo changed (with no actual effect on merging)
-
trunk/src/sinobad.d
- Property svn:mergeinfo changed
/branches/branche-mb/src/sinobad.d merged: 62-63,67-69
r64 r70 1 //#define FILTER 1 //defval K_NEU 2 //#define FZIMP 3 #define FILTER 4 #define FILZNOL 5 //#define FILLNOZ 2 6 //#define SOLSORYAO 3 7 //#define OPTIMORDER … … 18 22 defval TU 2 | start time step 19 23 #ifdef FILTER 20 defval OFTL 4021 defval OFTZ 4 022 defval OFT 8024 defval OFTL 0 25 defval OFTZ 4 26 defval OFT 4 23 27 #endif 24 28 #ifndef FILTER … … 26 30 #endif 27 31 //#exec disp_valdef 28 #ifdef FILTER 32 #ifdef FZIMP //Filtre Z implicit 33 defval K_FZIMP 34 #endif 35 #ifdef FILTER //Filtre 29 36 defval K_FILTER 37 #endif 38 #ifdef FILZNOL //uniquement Filtre Z 39 defval K_FILZNOL 40 #endif 41 #ifdef FILLNOZ //uniquement Filtre L 42 defval K_FILLNOZ 30 43 #endif 31 44 #ifdef SOLSORYAO … … 53 66 #ifdef FILTER 54 67 traj Tcstf M 0 1 68 #ifndef FILZNOL 55 69 traj Tlfil M 1 0 1 OFTL 70 #endif 71 #ifndef FILLNOZ 56 72 traj Tzfil M 1 OFTL 1 OFTZ 73 #endif 57 74 #endif 58 75 traj Tcst M 0 OFT 1 1 … … 62 79 #ifdef FILTER 63 80 space S3df M NX NY NZ Tcstf 81 #ifndef FILZNOL 64 82 space S3dtlf M NX NY NZ Tlfil 83 #endif 84 #ifndef FILLNOZ 65 85 space S3dtzf M NX NY NZ Tzfil 66 86 #endif 87 #endif 67 88 68 89 space S0d M 1 Tcst 69 //#space S3d M NX NY NZ Tcst70 90 space S3d M NX NY NZ Tcst 71 91 space S3dt M NX NY NZ Tsbd … … 96 116 #ifdef FILTER 97 117 modul nu space S3df noward output 1 target 98 modul dta_lfil space S3dtlf input 6 output 1 tempo 99 modul ztuv_lfil space S3dtlf input 3 output 2 tempo 100 modul dta_zfil space S3dtzf input 4 output 1 tempo 101 modul zwy_zfil space S3dtzf input 2 output 1 tempo 118 #ifndef FILZNOL 119 modul dta_lfexp space S3dtlf input 6 output 1 tempo 120 #endif 121 122 #ifndef FILLNOZ 123 #ifdef FZIMP 124 modul dta_zfimp_t space S3dtzf input 2 output 1 tempo 125 modul dta_zfimp space S3dtzf input 3 output 1 tempo 126 #endif 127 #ifndef FZIMP 128 modul dta_zfexp space S3dtzf input 4 output 1 tempo 129 #endif 130 131 #endif 132 102 133 modul ta_c space S3d input 1 output 1 103 134 #endif … … 285 316 286 317 #ifdef FILTER 287 //#---------->dta_lfil 288 ctin dta_lfil 1 from nu 1 i j k 289 ctin dta_lfil 2 from dta_lfil 1 i j k-1 t-1 290 ctin dta_lfil 3 from ztuv_lfil 1 i-1 j k t 291 ctin dta_lfil 4 from ztuv_lfil 1 i j k t 292 ctin dta_lfil 5 from ztuv_lfil 2 i j-1 k t 293 ctin dta_lfil 6 from ztuv_lfil 2 i j k t 294 295 //#---------->ztuv_lfil 296 ctin ztuv_lfil 1 from dta_lfil 1 i+1 j k t-1 297 ctin ztuv_lfil 2 from dta_lfil 1 i j k t-1 298 ctin ztuv_lfil 3 from dta_lfil 1 i j+1 k t-1 318 319 #ifndef FILZNOL 320 //#---------->dta_lfexp 321 ctin dta_lfexp 1 from nu 1 i j k 322 ctin dta_lfexp 2 from dta_lfexp 1 i j k t-1 323 ctin dta_lfexp 3 from dta_lfexp 1 i-1 j k t-1 324 ctin dta_lfexp 4 from dta_lfexp 1 i+1 j k t-1 325 ctin dta_lfexp 5 from dta_lfexp 1 i j-1 k t-1 326 ctin dta_lfexp 6 from dta_lfexp 1 i j+1 k t-1 327 #endif 299 328 300 329 //#---------->dta_zfil 301 ctin dta_zfil 1 from dta_lfil 1 i j k t 302 ctin dta_zfil 2 from dta_zfil 1 i j k t-1 303 ctin dta_zfil 3 from zwy_zfil 1 i j k+1 t 304 ctin dta_zfil 4 from zwy_zfil 1 i j k t 305 306 //#---------->zwy_zfil 307 ctin zwy_zfil 1 from dta_zfil 1 i j k-1 t-1 308 ctin zwy_zfil 2 from dta_zfil 1 i j k t-1 330 #ifndef FILLNOZ 331 332 #ifndef FILZNOL 333 #ifndef FZIMP 334 ctin dta_zfexp 1 from dta_lfexp 1 i j k t 335 #endif 336 #ifdef FZIMP 337 ctin dta_zfimp 1 from dta_lfexp 1 i j k t 338 #endif 339 #endif 340 341 #ifdef FILZNOL 342 #ifndef FZIMP 343 ctin dta_zfexp 1 from nu 1 i j k 344 #endif 345 #ifdef FZIMP 346 ctin dta_zfimp 1 from nu 1 i j k 347 #endif 348 #endif 349 350 #ifdef FZIMP 351 ctin dta_zfimp 2 from dta_zfimp 1 i j k+1 t 352 ctin dta_zfimp 3 from dta_zfimp_t 1 i j k t 353 354 ctin dta_zfimp_t 1 from dta_zfimp_t 1 i j k-1 t 355 ctin dta_zfimp_t 2 from dta_zfimp 1 i j k t-1 356 #endif 357 #ifndef FZIMP 358 ctin dta_zfexp 2 from dta_zfexp 1 i j k-1 t-1 359 ctin dta_zfexp 3 from dta_zfexp 1 i j k t-1 360 ctin dta_zfexp 4 from dta_zfexp 1 i j k+1 t-1 361 #endif 309 362 310 363 //#---------->ta_c 311 ctin ta_c 1 from dta_zfil 1 i j k-1 t 312 #endif 364 #ifdef FZIMP 365 ctin ta_c 1 from dta_zfimp 1 i j k t 366 #endif 367 #ifndef FZIMP 368 ctin ta_c 1 from dta_zfexp 1 i j k t 369 #endif 370 371 #endif 372 373 #ifdef FILLNOZ 374 ctin ta_c 1 from dta_lfexp 1 i j k t 375 #endif 376 377 378 #endif 379 313 380 //#ctin ta_c 1..NPCA from pca_ta 1..NPCA 1 314 381 315 // exec disp_ct_in316 exec disp_modul382 //#exec disp_ct_in 383 //exec disp_modul 317 384 318 385 … … 878 945 #ifdef FILTER 879 946 // calcul du filtre 880 947 #ifndef FILZNOL 881 948 order modinspace S3dtlf 882 order YA3 883 order YA2 YA1 884 ztuv_lfil 885 forder 886 order YA2 YA1 887 dta_lfil 888 forder 889 forder 890 forder 891 949 order YA3 YA2 YA1 950 dta_lfexp 951 forder 952 forder 953 #endif 954 #ifndef FILLNOZ 892 955 order modinspace S3dtzf 956 #ifdef FZIMP 957 order YA2 YA1 958 order YA3 959 dta_zfimp_t 960 forder 961 order YB3 962 dta_zfimp 963 forder 964 forder 965 #endif 966 #ifndef FZIMP 893 967 order YA3 YA2 YA1 894 zwy_zfil968 dta_zfexp 895 969 forder 896 order YA3 YA2 YA1 897 dta_zfil 898 forder 899 forder 970 #endif 971 forder 972 #endif 973 900 974 order modinspace S3d 901 975 order YA3 YA2 YA1 … … 1104 1178 #ifdef FILTER 1105 1179 1180 #ifndef FILZNOL 1106 1181 order spaceintraj Tlfil 1107 1182 S3dtlf 1108 1183 forder 1184 #endif 1185 #ifndef FILLNOZ 1109 1186 order spaceintraj Tzfil 1110 1187 S3dtzf 1111 1188 forder 1189 #endif 1190 1112 1191 order spaceintraj Tcst 1113 1192 S3d … … 1133 1212 #ifdef FILTER 1134 1213 insert_fct arg load_eb 1135 #endif 1136 1214 insert_fct arg init_nu 1215 insert_fct arg xset_fdt_fco 1216 #endif 1137 1217 insert_fct arg xwriteout 1138 1218 insert_fct arg xwritegrad - Property svn:mergeinfo changed
-
trunk/src/sinobad.h
r64 r70 13 13 #include"../include/meshmask.h" 14 14 15 #ifdef K_FILTER 16 #ifdef K_FZIMP 17 void luzimp_init(); // initialise tab_luzimp 18 #define tab_luzimp( i, j, k , t ) (tab_luzimp[(i)*(NY*NZ)+(j)*(NZ)+(k)][t]) // factorisation LU 19 double tab_luzimp[NZ*NY*NX][2]; // tableau factorisation LU 20 #endif 21 #define ta_eb( i, j, k ) (ta_eb[(i)*(NY*NZ)+(j)*(NZ)+(k)]) // ebauche 22 double ta_eb[NZ*NY*NX]; // ebauche 23 void load_eb (int argc, char *argv[]); // load "ebauche" from current variable ta_c 24 #endif 15 25 // For PPCA 16 26 /*double shfs_ta[NZ*NY*NX][NPCA]; … … 75 85 ndastp : = nyear*10000 + nmonth*100 + nday*/ 76 86 87 #ifdef K_FILTER 88 double pdth_fil=100.;//7200.; 89 double pdtz_fil=100.;//100.;//7200.; 90 double fsaht_fil= 5.e+02;//1000.; 91 double avt_fil=1.2e-05;//1.2e-5; 92 //double lscale= 212000.; // length-scale 93 double norm_fil; //coef de normalisation 94 void normfil();// calcul du coef de normalisation norm_fil 95 void xset_fdt_fco();// set fdt fcoef 96 #endif 97 77 98 void cal_ff(); 78 99 void xdisplay() ; … … 97 118 printf("//====================================================================//\n"); 98 119 printf("\n"); 120 #ifdef K_FILTER 121 printf("option FILTER enable\n"); 122 #else 123 printf("option FILTER disable\n"); 124 #endif 99 125 #ifdef K_SOLSORYAO 100 126 printf("option SOLSORYAO enable\n"); … … 129 155 cal_ff(); 130 156 xdom_init(); 157 #ifdef K_FILTER 158 #ifdef K_FZIMP 159 luzimp_init(); 160 #endif 161 normfil(); 162 #endif 131 163 xsolmat_init(); 132 164 xflt_rst(); … … 235 267 } 236 268 269 //_____________________________________________________________________________ 270 #ifdef K_FILTER 271 //_____________________________________________________________________________ 272 void normfil(){ 273 double norm_zfil=1.; 274 double norm_lfil=1.; 275 norm_lfil= 2.*sqrt(PI*fsaht_fil*pdth_fil*2.*(OFTL-1.));// schema explicite 276 norm_zfil= 2.*sqrt(PI*avt_fil*pdtz_fil*2.*(OFTZ-1.));// schema explicite 277 #ifdef K_FZIMP // schema implicite 278 double fact=1.; 279 int M=2*(OFTZ-1); 280 for(int i=1;i<M;i++) 281 fact = 4.*fact * (double) i / (double) (M+i-1); 282 norm_zfil=2.*fact*sqrt(avt_fil*pdtz_fil); 283 #endif 284 285 #if defined (K_FILZNOL) 286 norm_lfil=1.; 287 #endif 288 #if defined (K_FILLNOZ) 289 norm_zfil=1.; 290 #endif 291 292 norm_fil= norm_zfil*norm_lfil; 293 printf("norm_fil = %23.16e\n",norm_fil); 294 } 295 //_____________________________________________________________________________ 296 void xset_fdt_fco(int argc, char *argv[]){// set fdt fcoef 297 if (argc!=3){ 298 printf("\n inappropriate arguments choice in command xset_fdt_fco\n"); 299 exit(99); 300 } 301 if(!strcmp(argv[1],"th")){ 302 pdth_fil=atof(argv[2]); 303 } 304 else if(!strcmp(argv[1],"tz")){ 305 pdtz_fil=atof(argv[2]); 306 } 307 else if(!strcmp(argv[1],"kh")){ 308 fsaht_fil=atof(argv[2]); 309 } 310 else if(!strcmp(argv[1],"kz")){ 311 avt_fil=atof(argv[2]); 312 } 313 else{ 314 printf("\n inappropriate first argument choice in command xset_fdt_fco\n"); 315 exit(99); 316 } 317 } 318 //_____________________________________________________________________________ 319 void init_nu(int argc, char *argv[]){ 320 if (argc==1){ 321 for(int tt=0;tt<24;tt++) 322 for(int k=0;k<NZ;k++) 323 for(int j=0;j<NY;j++) 324 for(int i=0;i<NX;i++){ 325 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.)+ 326 (j+1.-(3.*NY)/4.)*(j+1.-(3.*NY)/4.))/4.) 327 *(1.-exp(-double(k+1.-NZ)/NZ))*(1.-exp(-double(tt)/24.)); 328 } 329 } 330 else if (argc==5){ 331 for(int k=0;k<NZ;k++) 332 for(int j=0;j<NY;j++) 333 for(int i=0;i<NX;i++){ 334 YS_nu(0,i,j,k)=0.; 335 } 336 337 float v=atof(argv[1]); 338 int ji=atoi(argv[2])-1; 339 int jj=atoi(argv[3])-1; 340 int jk=atoi(argv[4])-1; 341 YS_nu(0,ji,jj,jk)=v; 342 } 343 else{ 344 printf("\n inappropriate arguments choice in command init_nu\n"); 345 exit(99); 346 } 347 } 348 //_____________________________________________________________________________ 349 #ifdef K_FZIMP 350 //_____________________________________________________________________________ 351 void luzimp_init(){ 352 for(int j=0;j<NY;j++) 353 for(int i=0;i<NX;i++) 354 for(int k=0;k<NZ;k++){ // init a 0 355 tab_luzimp( i, j, k , 0 ) = 0.;// 0-->gam 356 tab_luzimp( i, j, k , 1 ) = 0.;// 1-->bet 357 } 358 double a0,a1; 359 double a2,b2,c2; 360 for(int j=1;j<NY-1;j++) 361 for(int i=1;i<NX-1;i++){ 362 a1=avt_fil*pdtz_fil/fse3w(i,j,1); 363 b2= 1.-a1/fse3t(i,j,0); 364 #ifndef K_NEUM 365 a0=avt_fil*pdtz_fil/fse3w(i,j,0); 366 b2 -= (a0/fse3t(i,j,0));// 1-->bet 367 #endif 368 tab_luzimp( i, j, 0 , 0 ) = 0.;// 0-->gam 369 tab_luzimp( i, j, 0 , 1 ) = b2;// 1-->bet 370 for(int k=1;k<NZ-2;k++){ 371 a0=avt_fil*pdtz_fil/fse3w(i,j,k); 372 a1=avt_fil*pdtz_fil/fse3w(i,j,k+1); 373 a2 = a0/fse3t(i,j,k); 374 b2 = 1.-a1/fse3t(i,j,k)-a0/fse3t(i,j,k); 375 c2 = a0/fse3t(i,j,k-1); 376 tab_luzimp( i, j, k , 0 ) = c2/tab_luzimp( i, j, k-1 , 1); 377 tab_luzimp( i, j, k , 1 ) = b2 - a2 * tab_luzimp( i, j, k , 0 ); 378 } 379 a0=avt_fil*pdtz_fil/fse3w(i,j,NZ-2); 380 a2 = a0/fse3t(i,j,NZ-2); 381 b2 = 1.-a0/fse3t(i,j,NZ-2); 382 #ifndef K_NEUM 383 a1=avt_fil*pdtz_fil/fse3w(i,j,NZ-1); 384 b2 -= a1/fse3t(i,j,NZ-2); 385 #endif 386 c2 = a0/fse3t(i,j,NZ-3); 387 388 tab_luzimp( i, j, NZ-2 , 0 ) = c2/tab_luzimp( i, j, NZ-3 , 1); 389 tab_luzimp( i, j, NZ-2 , 1 ) = b2 - a2 * tab_luzimp( i, j, NZ-2 , 0 ); 390 } 391 for(int k=0;k<NZ;k++){ // init a 0 392 printf("gam(%d)=%f \t",k+1,tab_luzimp( 23, 15, k , 0 )); 393 printf("bet(%d)=%f \n",k+1,tab_luzimp( 23, 15, k , 1 )); 394 } 395 } 396 #endif 397 #endif 237 398 //_____________________________________________________________________________ 238 399 #define hu( i, j ) (hu[(j)*(NX)+(i)]) … … 537 698 } 538 699 } 700 //______________________________________________________________________________ 701 #ifdef K_FILTER 702 void load_eb (int argc, char *argv[]){ // load "ebauche" 703 // on doit presiser la variable exple : load_eb ta_c 704 if (!strcmp(argv[1],"ta_c")){ 705 for(int i=0;i<NX;i++) 706 for(int j=0;j<NY;j++) 707 for(int k=0;k<NZ;k++){ 708 ta_eb( i, j, k )=0.0; 709 } 710 for(int i=0;i<NX;i++) 711 for(int j=0;j<NY;j++) 712 for(int k=0;k<NZ;k++){ 713 ta_eb( i, j, k )=YS_ta_c(0,i,j,k); 714 } 715 716 } 717 else{ 718 printf( "function load_eb:: argument incorrect\n"); 719 exit(99);// abort program 720 } 721 } 722 #endif 723 724 539 725 //_____________________________________________________________________________ 540 726 /*void load_shape_func (int argc, char *argv[]) // load PCA axes from file … … 631 817 632 818 //---------------------------------------------- 633 #if defined (YE_ta_c) || defined (YE_pca_ta) 819 #if defined (YE_ta_c) || defined (YE_pca_ta) || defined (YE_nu) 634 820 #define true_tac( i, j, k ) (true_tac[(k)*(NY*NX)+(j)*(NX)+(i)]) 635 821 double true_tac[NZ*NY*NX]; … … 654 840 int i,j,k; 655 841 if(!strcmp(argv[1],"ta_c")){ 656 #if defined (YE_ta_c) || defined (YE_pca_ta) 842 #if defined (YE_ta_c) || defined (YE_pca_ta) || defined (YE_nu) 657 843 for(i=0;i<NX;i++) 658 844 for(j=0;j<NY;j++) … … 696 882 int i,j,k; 697 883 698 #if defined (YE_ta_c) || defined (YE_pca_ta) 884 #if defined (YE_ta_c) || defined (YE_pca_ta) || defined (YE_nu) 699 885 sum=0.;sumn=0.; 700 886 for(i=0;i<NX;i++) -
trunk/src/ta_c.h
r1 r70 6 6 //=========================================================================== 7 7 // methode forward 8 forward () 9 { /* 1..NPCA from pca_ta 1..NPCA 1*/ 10 double sum=moy_ta(Yi,Yj,Yk); 11 for(int n=0;n<NPCA;n++) sum+=Yting[n]*stdev_ta[n]*shfs_ta(Yi,Yj,Yk,n); 12 YS1=sum; 13 // 8 forward (YREAL x1) 9 { 10 YS1 = ta_eb(Yi,Yj,Yk) +norm_fil*x1; 11 if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){ 12 YS1=0.; 13 } 14 15 16 ///* 1..NPCA from pca_ta 1..NPCA 1*/ 17 //double sum=moy_ta(Yi,Yj,Yk); 18 //for(int n=0;n<NPCA;n++) sum+=Yting[n]*stdev_ta[n]*shfs_ta(Yi,Yj,Yk,n); 19 //YS1=sum; 20 //// 21 // 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); 14 24 } 15 25 //=========================================================================== 16 26 // methode backward 17 27 18 backward ( )28 backward (YREAL x1) 19 29 { 20 for(int n=0;n<NPCA;n++) 21 Yjac[0][n] = stdev_ta[n]*shfs_ta(Yi,Yj,Yk,n); 22 // 30 YJ1I1=norm_fil; 31 if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){ 32 YJ1I1=0.; 33 } 34 35 //for(int n=0;n<NPCA;n++) 36 // Yjac[0][n] = stdev_ta[n]*shfs_ta(Yi,Yj,Yk,n); 37 //// 23 38 } 24 39
Note: See TracChangeset
for help on using the changeset viewer.