Changeset 38
- Timestamp:
- 04/22/11 18:07:23 (13 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data_out/plot_results.m
r34 r38 1 f=netcdf('exp_T _2D.nc');1 f=netcdf('exp_T.nc'); 2 2 3 3 addpath('../scripts/matlab_toolbox'); -
trunk/src/Yworkdir/Y1sinobad.h
r37 r38 23 23 #define Y3_M 8 24 24 #define YO_M1QN3 25 #define YO_DBG_NANF26 25 #define YDOUBLE 27 26 #define YTINY 1.e-15 … … 1591 1590 /*NBMOD */ #define YNB_solsor_dynspg_flt 704 1592 1591 /*NBSMOD */ #define YNBS_solsor_dynspg_flt 1 1593 /*NBIMOD */ #define YNBI_solsor_dynspg_flt 1 81592 /*NBIMOD */ #define YNBI_solsor_dynspg_flt 19 1594 1593 /*M2_IRMOD */ #define Ysolsor_dynspg_flt(i, j) Ysolsor_dynspg_flt[i][j] 1595 1594 /*M2_NOWMOD */ #define Ysolsor_dynspg_fltY Ysolsor_dynspg_flt[Yi][Yj] 1596 /*M2_VALS G */ #define Ystate_solsor_dynspg_flt(v, i, j) Ysolsor_dynspg_flt[i][j]->Ystate[v]1597 /*M2_VALS G */ #define YS_solsor_dynspg_flt(v, i, j) Ysolsor_dynspg_flt[i][j]->Ystate[v]1598 /*M2_VALS GI */ #define YS1_solsor_dynspg_flt(i, j) Ysolsor_dynspg_flt[i][j]->Ystate[0]1599 /*M2_HERES GI*/ #define YS1Y_solsor_dynspg_flt Ysolsor_dynspg_flt[Yi][Yj]->Ystate[0]1600 /*M2_VALS G */ #define Ygrad_solsor_dynspg_flt(v, i, j) Ysolsor_dynspg_flt[i][j]->Ygrad[v]1601 /*M2_VALS G */ #define YG_solsor_dynspg_flt(v, i, j) Ysolsor_dynspg_flt[i][j]->Ygrad[v]1602 /*M2_VALS GI */ #define YG1_solsor_dynspg_flt(i, j) Ysolsor_dynspg_flt[i][j]->Ygrad[0]1603 /*M2_HERES GI*/ #define YG1Y_solsor_dynspg_flt Ysolsor_dynspg_flt[Yi][Yj]->Ygrad[0]1595 /*M2_VALST */ #define Ystate_solsor_dynspg_flt(v, i, j, t) Ysolsor_dynspg_flt[i][j]->Ystate[t][v] 1596 /*M2_VALST */ #define YS_solsor_dynspg_flt(v, i, j, t) Ysolsor_dynspg_flt[i][j]->Ystate[t][v] 1597 /*M2_VALSIT */ #define YS1_solsor_dynspg_flt(i, j, t) Ysolsor_dynspg_flt[i][j]->Ystate[t][0] 1598 /*M2_HERESIT*/ #define YS1Y_solsor_dynspg_flt Ysolsor_dynspg_flt[Yi][Yj]->Ystate[YTemps][0] 1599 /*M2_VALST */ #define Ygrad_solsor_dynspg_flt(v, i, j, t) Ysolsor_dynspg_flt[i][j]->Ygrad[t][v] 1600 /*M2_VALST */ #define YG_solsor_dynspg_flt(v, i, j, t) Ysolsor_dynspg_flt[i][j]->Ygrad[t][v] 1601 /*M2_VALSIT */ #define YG1_solsor_dynspg_flt(i, j, t) Ysolsor_dynspg_flt[i][j]->Ygrad[t][0] 1602 /*M2_HERESIT*/ #define YG1Y_solsor_dynspg_flt Ysolsor_dynspg_flt[Yi][Yj]->Ygrad[YTemps][0] 1604 1603 solsor_dynspg_flt *Ysolsor_dynspg_flt[YA1_S3dt][YA2_S3dt]; 1605 1604 … … 3326 3325 { 3327 3326 public: 3328 double Ystate[YNB S_solsor_dynspg_flt];3329 double Ygrad[YNB S_solsor_dynspg_flt];3327 double Ystate[YNBALLTIME_Tsbd][YNBS_solsor_dynspg_flt]; 3328 double Ygrad[YNBALLTIME_Tsbd][YNBS_solsor_dynspg_flt]; 3330 3329 3331 3330 //:=========> Constructor - Destructor ============ … … 3871 3870 {"gcb_dynspg_flt", *Ygcb_dynspg_flt, 2, 32, 22, 0, 4, 1, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 3872 3871 {"gcx_dynspg_flt", *Ygcx_dynspg_flt, 2, 32, 22, 0, 2, 1, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 3873 {"solsor_dynspg_flt", *Ysolsor_dynspg_flt, 2, 32, 22, 0, 1 8, 1, 0, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"},3872 {"solsor_dynspg_flt", *Ysolsor_dynspg_flt, 2, 32, 22, 0, 19, 1, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 3874 3873 {"gcx2", *Ygcx2, 2, 32, 22, 0, 1, 1, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 3875 3874 {"spguv_dynspg_flt", *Yspguv_dynspg_flt, 2, 32, 22, 0, 3, 2, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, … … 4907 4906 #define backward void solsor_dynspg_flt::backward 4908 4907 #define flinward void solsor_dynspg_flt::flinward 4909 #define YS1Y Ystate[ 0]4910 #define YS1 Ystate[ 0]4911 #define YG1 Ygrad[ 0]4908 #define YS1Y Ystate[YTemps][0] 4909 #define YS1 Ystate[YTemps][0] 4910 #define YG1 Ygrad[YTemps][0] 4912 4911 #include "solsor_dynspg_flt.h" 4913 4912 #undef YS1Y -
trunk/src/Yworkdir/Y2sinobad.h
r37 r38 2822 2822 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 2823 2823 if ((Ygcx_dynspg_flt(Yw1, Yw2)= new gcx_dynspg_flt ())==NULL) Ycreate_errnew();}} 2824 }/*M2_TBTOG */ 2825 void YtabTOgrad_solsor_dynspg_flt(YREAL tab[]) 2826 { 2827 for (int Yw1=0; Yw1<YA1_S3dt; ++Yw1){ 2828 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 2829 for (int Yws=0; Yws<YNBS_solsor_dynspg_flt; ++Yws){ 2830 YG_solsor_dynspg_flt(Yws, Yw1, Yw2) = tab[Y3windice]; ++Y3windice;}}} 2831 }/*M2_RGRAD*/ 2824 }/*M2_TBTOGT */ 2825 void YtabTOgrad_solsor_dynspg_flt(int frompdt, int topdt, YREAL tab[]) 2826 { 2827 for (int Yw1=0; Yw1<YA1_S3dt; ++Yw1){ 2828 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 2829 for (int Ywt=frompdt; Ywt<topdt; ++Ywt){ 2830 for (int Yws=0; Yws<YNBS_solsor_dynspg_flt; ++Yws){ 2831 YG_solsor_dynspg_flt(Yws, Yw1, Yw2, Ywt) = tab[Y3windice]; ++Y3windice;}}}} 2832 }/*M2_RGRADT*/ 2832 2833 void Yrazgrad_solsor_dynspg_flt() 2833 2834 { 2834 2835 for (int Yw1=0; Yw1<YA1_S3dt; ++Yw1){ 2835 2836 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 2836 for (int Yws=0; Yws<YNBS_solsor_dynspg_flt; ++Yws){ 2837 Ysolsor_dynspg_flt(Yw1, Yw2)->Ygrad[Yws] = 0.0;}}} 2838 }/*M2_SETA*/ 2837 for (int Ywt=0; Ywt<YNBALLTIME_Tsbd; ++Ywt){ 2838 for (int Yws=0; Yws<YNBS_solsor_dynspg_flt; ++Yws){ 2839 Ysolsor_dynspg_flt(Yw1, Yw2)->Ygrad[Ywt][Yws] = 0.0;}}}} 2840 }/*M2_SETAT*/ 2839 2841 void Ysetstate_solsor_dynspg_flt(double val) 2840 2842 { 2841 2843 for (int Yw1=0; Yw1<YA1_S3dt; ++Yw1){ 2842 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 2843 for (int Yws=0; Yws<YNBS_solsor_dynspg_flt; ++Yws){ 2844 Ysolsor_dynspg_flt(Yw1, Yw2)->Ystate[Yws] = val;}}} 2845 }/*M2_YIOTU*/ 2844 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 2845 for (int Ywt=0; Ywt<YNBALLTIME_Tsbd; ++Ywt){ 2846 for (int Yws=0; Yws<YNBS_solsor_dynspg_flt; ++Yws){ 2847 Ysolsor_dynspg_flt(Yw1, Yw2)->Ystate[Ywt][Yws] = val;}}}} 2848 }/*M2_YIOUT*/ 2846 2849 void Yio_solsor_dynspg_flt(int Yws, int Yw1, int Yw2, int Yw3, int Ywt, double val) 2847 { Yiorwf ("solsor_dynspg_flt", Yws, Yw1, Yw2, Yw3, Ywt, &YS_solsor_dynspg_flt(Yws, Yw1, Yw2 ), val);2850 { Yiorwf ("solsor_dynspg_flt", Yws, Yw1, Yw2, Yw3, Ywt, &YS_solsor_dynspg_flt(Yws, Yw1, Yw2, Ywt), val); 2848 2851 }/*M2_CREU*/ 2849 2852 void Ycreate_solsor_dynspg_flt() … … 3545 3548 {} 3546 3549 if (itraj==Yid_Tsbd) 3547 { Yrazgrad_solsor_dynspg_flt (); 3548 } 3550 {} 3549 3551 } 3550 3552 int Ysetstate_mod (char *nmmod, YREAL val) … … 3920 3922 3921 3923 } 3922 #pragma omp parallel for 3924 #pragma omp parallel for num_threads(16) 3923 3925 for(YY=0; YY<YA3_S3dt; ++YY){ 3924 3926 Yk=YY; … … 3941 3943 } 3942 3944 } 3943 #pragma omp parallel for 3945 #pragma omp parallel for num_threads(16) 3944 3946 for(YY=0; YY<YA3_S3dt; ++YY){ 3945 3947 Yk=YY; … … 4013 4015 } 4014 4016 } 4015 #pragma omp parallel for 4017 #pragma omp parallel for num_threads(16) 4016 4018 for(YY=0; YY<YA2_S3dt; ++YY){ 4017 4019 Yj=YY; … … 4087 4089 } 4088 4090 } 4089 #pragma omp parallel for 4091 #pragma omp parallel for num_threads(16) 4090 4092 for(YY=0; YY<YA2_S3dt; ++YY){ 4091 4093 Yj=YY; … … 4100 4102 } 4101 4103 } 4102 #pragma omp parallel for 4104 #pragma omp parallel for num_threads(16) 4103 4105 for(YY=0; YY<YA3_S3dt; ++YY){ 4104 4106 Yk=YY; … … 4113 4115 } 4114 4116 } 4115 #pragma omp parallel for 4117 #pragma omp parallel for num_threads(16) 4116 4118 for(YY=0; YY<YA3_S3dt; ++YY){ 4117 4119 Yk=YY; … … 4182 4184 } 4183 4185 } 4184 #pragma omp parallel for 4186 #pragma omp parallel for num_threads(16) 4185 4187 for(YY=0; YY<YA3_S3dt; ++YY){ 4186 4188 Yk=YY; … … 4207 4209 } 4208 4210 } 4209 #pragma omp parallel for 4211 #pragma omp parallel for num_threads(16) 4210 4212 for(YY=0; YY<YA3_S3dt; ++YY){ 4211 4213 Yk=YY; … … 4232 4234 } 4233 4235 } 4234 #pragma omp parallel for 4236 #pragma omp parallel for num_threads(16) 4235 4237 for(YY=0; YY<YA3_S3dt; ++YY){ 4236 4238 Yk=YY; … … 4289 4291 } 4290 4292 } 4291 #pragma omp parallel for 4293 #pragma omp parallel for num_threads(16) 4292 4294 for(YY=0; YY<YA3_S3dt; ++YY){ 4293 4295 Yk=YY; … … 4381 4383 4382 4384 } 4383 #pragma omp parallel for 4385 #pragma omp parallel for num_threads(16) 4384 4386 for(YY=0; YY<YA3_S3dt; ++YY){ 4385 4387 Yk=YY; … … 4402 4404 } 4403 4405 } 4404 #pragma omp parallel for 4406 #pragma omp parallel for num_threads(16) 4405 4407 for(YY=0; YY<YA3_S3dt; ++YY){ 4406 4408 Yk=YY; … … 4418 4420 } 4419 4421 } 4420 #pragma omp parallel for 4422 #pragma omp parallel for num_threads(16) 4421 4423 for(YY=0; YY<YA3_S3dt; ++YY){ 4422 4424 Yk=YY; … … 4479 4481 } 4480 4482 } 4481 #pragma omp parallel for 4483 #pragma omp parallel for num_threads(16) 4482 4484 for(YY=0; YY<YA3_S3dt; ++YY){ 4483 4485 Yk=YY; … … 4509 4511 } 4510 4512 } 4511 #pragma omp parallel for 4513 #pragma omp parallel for num_threads(16) 4512 4514 for(YY=0; YY<YA3_S3dt; ++YY){ 4513 4515 Yk=YY; … … 4534 4536 } 4535 4537 } 4536 #pragma omp parallel for 4538 #pragma omp parallel for num_threads(16) 4537 4539 for(YY=0; YY<YA3_S3dt; ++YY){ 4538 4540 Yk=YY; … … 4676 4678 4677 4679 } 4678 #pragma omp parallel for 4680 #pragma omp parallel for num_threads(16) 4679 4681 for(YY=0; YY<YA3_S3dt; ++YY){ 4680 4682 Yk=YY; … … 4787 4789 4788 4790 } 4789 #pragma omp parallel for 4791 #pragma omp parallel for num_threads(16) 4790 4792 for(YY=0; YY<YA3_S3dt; ++YY){ 4791 4793 Yk=YY; … … 4804 4806 } 4805 4807 } 4806 #pragma omp parallel for 4808 #pragma omp parallel for num_threads(16) 4807 4809 for(YY=0; YY<YA2_S3dt; ++YY){ 4808 4810 Yj=YY; … … 4823 4825 } 4824 4826 } 4825 #pragma omp parallel for 4827 #pragma omp parallel for num_threads(16) 4826 4828 for(YY=0; YY<YA3_S3dt; ++YY){ 4827 4829 Yk=YY; … … 4842 4844 } 4843 4845 } 4844 #pragma omp parallel for 4846 #pragma omp parallel for num_threads(16) 4845 4847 for(YY=0; YY<YA2_S3dt; ++YY){ 4846 4848 Yj=YY; … … 4916 4918 } 4917 4919 } 4918 #pragma omp parallel for 4920 #pragma omp parallel for num_threads(16) 4919 4921 for(YY=0; YY<YA2_S3dt; ++YY){ 4920 4922 Yj=YY; … … 4940 4942 } 4941 4943 } 4942 4943 for(YY=0; YY<YA1_S3dt; ++YY){ 4944 Yi=YY; 4944 for(Yi=0; Yi<YA1_S3dt; ++Yi) 4945 4945 for(Yj=0; Yj<YA2_S3dt; ++Yj) 4946 4946 { … … 5011 5011 else 5012 5012 Yting[17]=YS1_gcb_dynspg_flt( Yi+1, Yj+1, YTemps); 5013 if (1==0 || Yi-1<0 || Yj-1<0) 5014 Yting[18]=0; 5015 else 5016 Yting[18]=YS1_solsor_dynspg_flt( Yi-1, Yj-1, YTemps); 5013 5017 Ysolsor_dynspg_flt(Yi, Yj)->forward(); 5014 5018 Ydbg_nanf ("F: ", YNBI_solsor_dynspg_flt, "solsor_dynspg_flt"); 5015 5019 5016 5020 } 5017 } 5018 #pragma omp parallel for 5021 #pragma omp parallel for num_threads(16) 5019 5022 for(YY=0; YY<YA2_S3dt; ++YY){ 5020 5023 Yj=YY; 5021 5024 for(Yi=0; Yi<YA1_S3dt; ++Yi) 5022 5025 { 5023 Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj );5026 Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj, YTemps); 5024 5027 Ygcx2(Yi, Yj)->forward(); 5025 5028 Ydbg_nanf ("F: ", YNBI_gcx2, "gcx2"); … … 5027 5030 } 5028 5031 } 5029 #pragma omp parallel for 5032 #pragma omp parallel for num_threads(16) 5030 5033 for(YY=0; YY<YA2_S3dt; ++YY){ 5031 5034 Yj=YY; … … 5046 5049 } 5047 5050 } 5048 #pragma omp parallel for 5051 #pragma omp parallel for num_threads(16) 5049 5052 for(YY=0; YY<YA3_S3dt; ++YY){ 5050 5053 Yk=YY; … … 5065 5068 } 5066 5069 } 5067 #pragma omp parallel for 5070 #pragma omp parallel for num_threads(16) 5068 5071 for(YY=0; YY<YA2_S3dt; ++YY){ 5069 5072 Yj=YY; … … 5085 5088 } 5086 5089 } 5087 #pragma omp parallel for 5090 #pragma omp parallel for num_threads(16) 5088 5091 for(YY=0; YY<YA3_S3dt; ++YY){ 5089 5092 Yk=YY; … … 5106 5109 } 5107 5110 } 5108 #pragma omp parallel for 5111 #pragma omp parallel for num_threads(16) 5109 5112 for(YY=0; YY<YA3_S3dt; ++YY){ 5110 5113 Yk=YY; … … 5179 5182 5180 5183 } 5181 #pragma omp parallel for 5184 #pragma omp parallel for num_threads(16) 5182 5185 for(YY=YA3_S3dt-1; YY>=0; --YY){ 5183 5186 Yk=YY; … … 5232 5235 } 5233 5236 } 5234 #pragma omp parallel for 5237 #pragma omp parallel for num_threads(16) 5235 5238 for(YY=YA3_S3dt-1; YY>=0; --YY){ 5236 5239 Yk=YY; … … 5267 5270 } 5268 5271 } 5269 #pragma omp parallel for 5272 #pragma omp parallel for num_threads(16) 5270 5273 for(YY=YA2_S3dt-1; YY>=0; --YY){ 5271 5274 Yj=YY; … … 5301 5304 } 5302 5305 } 5303 #pragma omp parallel for 5306 #pragma omp parallel for num_threads(16) 5304 5307 for(YY=YA3_S3dt-1; YY>=0; --YY){ 5305 5308 Yk=YY; … … 5332 5335 } 5333 5336 } 5334 #pragma omp parallel for 5337 #pragma omp parallel for num_threads(16) 5335 5338 for(YY=YA2_S3dt-1; YY>=0; --YY){ 5336 5339 Yj=YY; … … 5363 5366 } 5364 5367 } 5365 #pragma omp parallel for 5368 #pragma omp parallel for num_threads(16) 5366 5369 for(YY=YA2_S3dt-1; YY>=0; --YY){ 5367 5370 Yj=YY; 5368 5371 for(Yi=YA1_S3dt-1; Yi>=0; --Yi) 5369 5372 { 5370 Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj );5373 Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj, YTemps); 5371 5374 memset(Yjac, 0, 31*sizeof(double)); 5372 5375 Ygcx2(Yi, Yj)->backward(); 5373 5376 Yvsmatt (YNBS_gcx2, YNBI_gcx2, YMAX_JAC_NBI, &YG1Y_gcx2, Yjac[0], Ytbeta); 5374 YG1_solsor_dynspg_flt( Yi, Yj) += Ytbeta[0]; 5377 #pragma omp atomic 5378 YG1_solsor_dynspg_flt( Yi, Yj, YTemps) += Ytbeta[0]; 5375 5379 Ydbg_nanf ("B: ", YNBI_gcx2, "gcx2"); 5376 5380 5377 5381 } 5378 5382 } 5379 #pragma omp parallel for 5380 for(YY=YA1_S3dt-1; YY>=0; --YY){ 5381 Yi=YY; 5383 for(Yi=YA1_S3dt-1; Yi>=0; --Yi) 5382 5384 for(Yj=YA2_S3dt-1; Yj>=0; --Yj) 5383 5385 { … … 5448 5450 else 5449 5451 Yting[17]=YS1_gcb_dynspg_flt( Yi+1, Yj+1, YTemps); 5452 if (1==0 || Yi-1<0 || Yj-1<0) 5453 Yting[18]=0; 5454 else 5455 Yting[18]=YS1_solsor_dynspg_flt( Yi-1, Yj-1, YTemps); 5450 5456 memset(Yjac, 0, 31*sizeof(double)); 5451 5457 Ysolsor_dynspg_flt(Yi, Yj)->backward(); … … 5453 5459 if (1==0 || Yi-1<0 || Yj-1<0){} 5454 5460 else 5455 #pragma omp atomic5456 5461 YG1_gcx_dynspg_flt( Yi-1, Yj-1, YTemps) += Ytbeta[0]; 5457 5462 if (1==0 || Yi-1<0){} 5458 5463 else 5459 #pragma omp atomic5460 5464 YG1_gcx_dynspg_flt( Yi-1, Yj, YTemps) += Ytbeta[1]; 5461 5465 if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){} 5462 5466 else 5463 #pragma omp atomic5464 5467 YG1_gcx_dynspg_flt( Yi-1, Yj+1, YTemps) += Ytbeta[2]; 5465 5468 if (1==0 || Yj-1<0){} 5466 5469 else 5467 #pragma omp atomic5468 5470 YG1_gcx_dynspg_flt( Yi, Yj-1, YTemps) += Ytbeta[3]; 5469 #pragma omp atomic5470 5471 YG1_gcx_dynspg_flt( Yi, Yj, YTemps) += Ytbeta[4]; 5471 5472 if (1==0 || Yj+1>YA2_S3dt-1){} 5472 5473 else 5473 #pragma omp atomic5474 5474 YG1_gcx_dynspg_flt( Yi, Yj+1, YTemps) += Ytbeta[5]; 5475 5475 if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){} 5476 5476 else 5477 #pragma omp atomic5478 5477 YG1_gcx_dynspg_flt( Yi+1, Yj-1, YTemps) += Ytbeta[6]; 5479 5478 if (1==0 || Yi+1>YA1_S3dt-1){} 5480 5479 else 5481 #pragma omp atomic5482 5480 YG1_gcx_dynspg_flt( Yi+1, Yj, YTemps) += Ytbeta[7]; 5483 5481 if (1==0 || Yi+1>YA1_S3dt-1 || Yj+1>YA2_S3dt-1){} 5484 5482 else 5485 #pragma omp atomic5486 5483 YG1_gcx_dynspg_flt( Yi+1, Yj+1, YTemps) += Ytbeta[8]; 5487 5484 if (1==0 || Yi-1<0 || Yj-1<0){} 5488 5485 else 5489 #pragma omp atomic5490 5486 YG1_gcb_dynspg_flt( Yi-1, Yj-1, YTemps) += Ytbeta[9]; 5491 5487 if (1==0 || Yi-1<0){} 5492 5488 else 5493 #pragma omp atomic5494 5489 YG1_gcb_dynspg_flt( Yi-1, Yj, YTemps) += Ytbeta[10]; 5495 5490 if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){} 5496 5491 else 5497 #pragma omp atomic5498 5492 YG1_gcb_dynspg_flt( Yi-1, Yj+1, YTemps) += Ytbeta[11]; 5499 5493 if (1==0 || Yj-1<0){} 5500 5494 else 5501 #pragma omp atomic5502 5495 YG1_gcb_dynspg_flt( Yi, Yj-1, YTemps) += Ytbeta[12]; 5503 #pragma omp atomic5504 5496 YG1_gcb_dynspg_flt( Yi, Yj, YTemps) += Ytbeta[13]; 5505 5497 if (1==0 || Yj+1>YA2_S3dt-1){} 5506 5498 else 5507 #pragma omp atomic5508 5499 YG1_gcb_dynspg_flt( Yi, Yj+1, YTemps) += Ytbeta[14]; 5509 5500 if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){} 5510 5501 else 5511 #pragma omp atomic5512 5502 YG1_gcb_dynspg_flt( Yi+1, Yj-1, YTemps) += Ytbeta[15]; 5513 5503 if (1==0 || Yi+1>YA1_S3dt-1){} 5514 5504 else 5515 #pragma omp atomic5516 5505 YG1_gcb_dynspg_flt( Yi+1, Yj, YTemps) += Ytbeta[16]; 5517 5506 if (1==0 || Yi+1>YA1_S3dt-1 || Yj+1>YA2_S3dt-1){} 5518 5507 else 5519 #pragma omp atomic5520 5508 YG1_gcb_dynspg_flt( Yi+1, Yj+1, YTemps) += Ytbeta[17]; 5509 if (1==0 || Yi-1<0 || Yj-1<0){} 5510 else 5511 YG1_solsor_dynspg_flt( Yi-1, Yj-1, YTemps) += Ytbeta[18]; 5521 5512 Ydbg_nanf ("B: ", YNBI_solsor_dynspg_flt, "solsor_dynspg_flt"); 5522 5513 5523 5514 } 5524 } 5525 #pragma omp parallel for 5515 #pragma omp parallel for num_threads(16) 5526 5516 for(YY=YA2_S3dt-1; YY>=0; --YY){ 5527 5517 Yj=YY; … … 5563 5553 } 5564 5554 } 5565 #pragma omp parallel for 5555 #pragma omp parallel for num_threads(16) 5566 5556 for(YY=YA2_S3dt-1; YY>=0; --YY){ 5567 5557 Yj=YY; … … 5703 5693 } 5704 5694 } 5705 #pragma omp parallel for 5695 //#pragma omp parallel for num_threads(16) 5706 5696 for(YY=YA3_S3dt-1; YY>=0; --YY){ 5707 5697 Yk=YY; … … 5732 5722 } 5733 5723 } 5734 #pragma omp parallel for 5724 //#pragma omp parallel for num_threads(16) 5735 5725 for(YY=YA2_S3dt-1; YY>=0; --YY){ 5736 5726 Yj=YY; … … 5749 5739 Yspguv_now_dynspg(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2] ); 5750 5740 Yvsmatt (YNBS_spguv_now_dynspg, YNBI_spguv_now_dynspg, YMAX_JAC_NBI, &YG1Y_spguv_now_dynspg, Yjac[0], Ytbeta); 5751 #pragma omp atomic5741 // #pragma omp atomic 5752 5742 YG1_sshn( Yi, Yj, YTemps-1) += Ytbeta[0]; 5753 5743 if (1==0 || Yj+1>YA2_S3dt-1){} 5754 5744 else 5755 #pragma omp atomic5745 // #pragma omp atomic 5756 5746 YG1_sshn( Yi, Yj+1, YTemps-1) += Ytbeta[1]; 5757 5747 if (1==0 || Yi+1>YA1_S3dt-1){} 5758 5748 else 5759 #pragma omp atomic5749 // #pragma omp atomic 5760 5750 YG1_sshn( Yi+1, Yj, YTemps-1) += Ytbeta[2]; 5761 5751 Ydbg_nanf ("B: ", YNBI_spguv_now_dynspg, "spguv_now_dynspg"); … … 5763 5753 } 5764 5754 } 5765 #pragma omp parallel for 5755 //#pragma omp parallel for num_threads(16) 5766 5756 for(YY=YA3_S3dt-1; YY>=0; --YY){ 5767 5757 Yk=YY; … … 5774 5764 Yva_norm_dynzdf(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 5775 5765 Yvsmatt (YNBS_va_norm_dynzdf, YNBI_va_norm_dynzdf, YMAX_JAC_NBI, &YG1Y_va_norm_dynzdf, Yjac[0], Ytbeta); 5776 #pragma omp atomic5766 // #pragma omp atomic 5777 5767 YG1_va_dynzdf_imp( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 5778 5768 YG1_vb( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; … … 5783 5773 Yua_norm_dynzdf(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 5784 5774 Yvsmatt (YNBS_ua_norm_dynzdf, YNBI_ua_norm_dynzdf, YMAX_JAC_NBI, &YG1Y_ua_norm_dynzdf, Yjac[0], Ytbeta); 5785 #pragma omp atomic5775 // #pragma omp atomic 5786 5776 YG1_ua_dynzdf_imp( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 5787 5777 YG1_ub( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; … … 5924 5914 5925 5915 } 5926 #pragma omp parallel for 5916 //#pragma omp parallel for num_threads(16) 5927 5917 for(YY=YA3_S3dt-1; YY>=0; --YY){ 5928 5918 Yk=YY; … … 5958 5948 Yzwisd_va_dynzdf_imp(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 5959 5949 Yvsmatt (YNBS_zwisd_va_dynzdf_imp, YNBI_zwisd_va_dynzdf_imp, YMAX_JAC_NBI, &YG1Y_zwisd_va_dynzdf_imp, Yjac[0], Ytbeta); 5960 #pragma omp atomic5950 // #pragma omp atomic 5961 5951 YG3_zdf_avt_avmu_avmv( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 5962 5952 if (1==0 || Yk+1>YA3_S3dt-1){} 5963 5953 else 5964 #pragma omp atomic5954 // #pragma omp atomic 5965 5955 YG3_zdf_avt_avmu_avmv( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 5966 5956 Ydbg_nanf ("B: ", YNBI_zwisd_va_dynzdf_imp, "zwisd_va_dynzdf_imp"); … … 5973 5963 Yzwisd_ua_dynzdf_imp(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 5974 5964 Yvsmatt (YNBS_zwisd_ua_dynzdf_imp, YNBI_zwisd_ua_dynzdf_imp, YMAX_JAC_NBI, &YG1Y_zwisd_ua_dynzdf_imp, Yjac[0], Ytbeta); 5975 #pragma omp atomic5965 // #pragma omp atomic 5976 5966 YG2_zdf_avt_avmu_avmv( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 5977 5967 if (1==0 || Yk+1>YA3_S3dt-1){} 5978 5968 else 5979 #pragma omp atomic5969 // #pragma omp atomic 5980 5970 YG2_zdf_avt_avmu_avmv( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 5981 5971 Ydbg_nanf ("B: ", YNBI_zwisd_ua_dynzdf_imp, "zwisd_ua_dynzdf_imp"); … … 6060 6050 6061 6051 } 6062 #pragma omp parallel for 6052 //#pragma omp parallel for num_threads(16) 6063 6053 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6064 6054 Yk=YY; … … 6209 6199 Yzwxyz_vor_ene(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 6210 6200 Yvsmatt (YNBS_zwxyz_vor_ene, YNBI_zwxyz_vor_ene, YMAX_JAC_NBI, &YG1Y_zwxyz_vor_ene, Yjac[0], Ytbeta); 6211 #pragma omp atomic6201 // #pragma omp atomic 6212 6202 YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6213 6203 if (1==0 || Yj+1>YA2_S3dt-1){} 6214 6204 else 6215 #pragma omp atomic6205 // #pragma omp atomic 6216 6206 YG1_ua( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[1]; 6217 #pragma omp atomic6207 // #pragma omp atomic 6218 6208 YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 6219 6209 if (1==0 || Yi+1>YA1_S3dt-1){} 6220 6210 else 6221 #pragma omp atomic6211 // #pragma omp atomic 6222 6212 YG1_va( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[3]; 6223 6213 Ydbg_nanf ("B: ", YNBI_zwxyz_vor_ene, "zwxyz_vor_ene"); … … 6227 6217 } 6228 6218 } 6229 #pragma omp parallel for 6219 //#pragma omp parallel for num_threads(16) 6230 6220 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6231 6221 Yk=YY; … … 6242 6232 Yva_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 6243 6233 Yvsmatt (YNBS_va_dynadv_cen2, YNBI_va_dynadv_cen2, YMAX_JAC_NBI, &YG1Y_va_dynadv_cen2, Yjac[0], Ytbeta); 6244 #pragma omp atomic6234 // #pragma omp atomic 6245 6235 YG2_zfuv_UW_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6246 6236 if (1==0 || Yk+1>YA3_S3dt-1){} 6247 6237 else 6248 #pragma omp atomic6238 // #pragma omp atomic 6249 6239 YG2_zfuv_UW_dynadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 6250 6240 YG1_zva_dhmf_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[2]; … … 6259 6249 Yua_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 6260 6250 Yvsmatt (YNBS_ua_dynadv_cen2, YNBI_ua_dynadv_cen2, YMAX_JAC_NBI, &YG1Y_ua_dynadv_cen2, Yjac[0], Ytbeta); 6261 #pragma omp atomic6251 // #pragma omp atomic 6262 6252 YG1_zfuv_UW_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6263 6253 if (1==0 || Yk+1>YA3_S3dt-1){} 6264 6254 else 6265 #pragma omp atomic6255 // #pragma omp atomic 6266 6256 YG1_zfuv_UW_dynadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 6267 6257 YG1_zua_dhmf_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[2]; … … 6270 6260 } 6271 6261 } 6272 #pragma omp parallel for 6262 //#pragma omp parallel for num_threads(16) 6273 6263 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6274 6264 Yk=YY; … … 6298 6288 Yzfuv_UW_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6] ); 6299 6289 Yvsmatt (YNBS_zfuv_UW_dynadv_cen2, YNBI_zfuv_UW_dynadv_cen2, YMAX_JAC_NBI, &YG1Y_zfuv_UW_dynadv_cen2, Yjac[0], Ytbeta); 6300 #pragma omp atomic6290 // #pragma omp atomic 6301 6291 YG1_wa( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6302 6292 if (1==0 || Yi+1>YA1_S3dt-1){} 6303 6293 else 6304 #pragma omp atomic6294 // #pragma omp atomic 6305 6295 YG1_wa( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 6306 6296 if (1==0 || Yj+1>YA2_S3dt-1){} 6307 6297 else 6308 #pragma omp atomic6298 // #pragma omp atomic 6309 6299 YG1_wa( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 6310 #pragma omp atomic6300 // #pragma omp atomic 6311 6301 YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[3]; 6312 6302 if (1==0 || Yk-1<0){} 6313 6303 else 6314 #pragma omp atomic6304 // #pragma omp atomic 6315 6305 YG1_ua( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[4]; 6316 #pragma omp atomic6306 // #pragma omp atomic 6317 6307 YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[5]; 6318 6308 if (1==0 || Yk-1<0){} 6319 6309 else 6320 #pragma omp atomic6310 // #pragma omp atomic 6321 6311 YG1_va( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[6]; 6322 6312 Ydbg_nanf ("B: ", YNBI_zfuv_UW_dynadv_cen2, "zfuv_UW_dynadv_cen2"); … … 6324 6314 } 6325 6315 } 6326 #pragma omp parallel for 6316 //#pragma omp parallel for num_threads(16) 6327 6317 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6328 6318 Yk=YY; … … 6401 6391 Yhmf_TF_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5] ); 6402 6392 Yvsmatt (YNBS_hmf_TF_dynadv_cen2, YNBI_hmf_TF_dynadv_cen2, YMAX_JAC_NBI, &YG1Y_hmf_TF_dynadv_cen2, Yjac[0], Ytbeta); 6403 #pragma omp atomic6393 // #pragma omp atomic 6404 6394 YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6405 6395 if (1==0 || Yi+1>YA1_S3dt-1){} 6406 6396 else 6407 #pragma omp atomic6397 // #pragma omp atomic 6408 6398 YG1_ua( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 6409 6399 if (1==0 || Yj+1>YA2_S3dt-1){} 6410 6400 else 6411 #pragma omp atomic6401 // #pragma omp atomic 6412 6402 YG1_ua( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 6413 #pragma omp atomic6403 // #pragma omp atomic 6414 6404 YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[3]; 6415 6405 if (1==0 || Yi+1>YA1_S3dt-1){} 6416 6406 else 6417 #pragma omp atomic6407 // #pragma omp atomic 6418 6408 YG1_va( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[4]; 6419 6409 if (1==0 || Yj+1>YA2_S3dt-1){} 6420 6410 else 6421 #pragma omp atomic6411 // #pragma omp atomic 6422 6412 YG1_va( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[5]; 6423 6413 Ydbg_nanf ("B: ", YNBI_hmf_TF_dynadv_cen2, "hmf_TF_dynadv_cen2"); … … 6427 6417 } 6428 6418 } 6429 #pragma omp parallel for 6419 //#pragma omp parallel for num_threads(16) 6430 6420 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6431 6421 Yk=YY; … … 6437 6427 Yrhop(Yi, Yj, Yk)->backward( Yting[0] ); 6438 6428 Yvsmatt (YNBS_rhop, YNBI_rhop, YMAX_JAC_NBI, &YG1Y_rhop, Yjac[0], Ytbeta); 6439 #pragma omp atomic6429 // #pragma omp atomic 6440 6430 YG1_rhd( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6441 6431 Ydbg_nanf ("B: ", YNBI_rhop, "rhop"); … … 6451 6441 } 6452 6442 } 6453 #pragma omp parallel for 6443 //#pragma omp parallel for num_threads(16) 6454 6444 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6455 6445 Yk=YY; … … 6464 6454 Ysb(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 6465 6455 Yvsmatt (YNBS_sb, YNBI_sb, YMAX_JAC_NBI, &YG1Y_sb, Yjac[0], Ytbeta); 6466 #pragma omp atomic6456 // #pragma omp atomic 6467 6457 YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6468 #pragma omp atomic6458 // #pragma omp atomic 6469 6459 YG1_sa( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6470 #pragma omp atomic6460 // #pragma omp atomic 6471 6461 YG1_sa( Yi, Yj, Yk, YTemps) += Ytbeta[2]; 6472 6462 YG1_sa_c( Yi, Yj, Yk) += Ytbeta[3]; … … 6479 6469 Ytb(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 6480 6470 Yvsmatt (YNBS_tb, YNBI_tb, YMAX_JAC_NBI, &YG1Y_tb, Yjac[0], Ytbeta); 6481 #pragma omp atomic6471 // #pragma omp atomic 6482 6472 YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6483 #pragma omp atomic6473 // #pragma omp atomic 6484 6474 YG1_ta( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6485 #pragma omp atomic6475 // #pragma omp atomic 6486 6476 YG1_ta( Yi, Yj, Yk, YTemps) += Ytbeta[2]; 6487 6477 YG1_ta_c( Yi, Yj, Yk) += Ytbeta[3]; … … 6606 6596 6607 6597 } 6608 #pragma omp parallel for 6598 //#pragma omp parallel for num_threads(16) 6609 6599 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6610 6600 Yk=YY; … … 6618 6608 Yvsmatt (YNBS_zrhs_sa_trazdf_imp, YNBI_zrhs_sa_trazdf_imp, YMAX_JAC_NBI, &YG1Y_zrhs_sa_trazdf_imp, Yjac[0], Ytbeta); 6619 6609 YG1_sa_traldf_lap( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6620 #pragma omp atomic6610 // #pragma omp atomic 6621 6611 YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6622 6612 Ydbg_nanf ("B: ", YNBI_zrhs_sa_trazdf_imp, "zrhs_sa_trazdf_imp"); … … 6627 6617 Yvsmatt (YNBS_zrhs_trazdf_imp, YNBI_zrhs_trazdf_imp, YMAX_JAC_NBI, &YG1Y_zrhs_trazdf_imp, Yjac[0], Ytbeta); 6628 6618 YG1_ta_traldf_lap( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6629 #pragma omp atomic6619 // #pragma omp atomic 6630 6620 YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6631 6621 Ydbg_nanf ("B: ", YNBI_zrhs_trazdf_imp, "zrhs_trazdf_imp"); … … 6638 6628 Yzwisd_trazdf_imp(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 6639 6629 Yvsmatt (YNBS_zwisd_trazdf_imp, YNBI_zwisd_trazdf_imp, YMAX_JAC_NBI, &YG1Y_zwisd_trazdf_imp, Yjac[0], Ytbeta); 6640 #pragma omp atomic6630 // #pragma omp atomic 6641 6631 YG1_zdf_avt_avmu_avmv( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6642 6632 if (1==0 || Yk+1>YA3_S3dt-1){} 6643 6633 else 6644 #pragma omp atomic6634 // #pragma omp atomic 6645 6635 YG1_zdf_avt_avmu_avmv( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 6646 6636 Ydbg_nanf ("B: ", YNBI_zwisd_trazdf_imp, "zwisd_trazdf_imp"); … … 6648 6638 } 6649 6639 } 6650 #pragma omp parallel for 6640 //#pragma omp parallel for num_threads(16) 6651 6641 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6652 6642 Yk=YY; … … 6714 6704 Yzsuv_traldf_lap(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 6715 6705 Yvsmatt (YNBS_zsuv_traldf_lap, YNBI_zsuv_traldf_lap, YMAX_JAC_NBI, &YG1Y_zsuv_traldf_lap, Yjac[0], Ytbeta); 6716 #pragma omp atomic6706 // #pragma omp atomic 6717 6707 YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6718 6708 if (1==0 || Yi+1>YA1_S3dt-1){} 6719 6709 else 6720 #pragma omp atomic6710 // #pragma omp atomic 6721 6711 YG1_sb( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 6722 6712 if (1==0 || Yj+1>YA2_S3dt-1){} 6723 6713 else 6724 #pragma omp atomic6714 // #pragma omp atomic 6725 6715 YG1_sb( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 6726 6716 Ydbg_nanf ("B: ", YNBI_zsuv_traldf_lap, "zsuv_traldf_lap"); … … 6737 6727 Yztuv_traldf_lap(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 6738 6728 Yvsmatt (YNBS_ztuv_traldf_lap, YNBI_ztuv_traldf_lap, YMAX_JAC_NBI, &YG1Y_ztuv_traldf_lap, Yjac[0], Ytbeta); 6739 #pragma omp atomic6729 // #pragma omp atomic 6740 6730 YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6741 6731 if (1==0 || Yi+1>YA1_S3dt-1){} 6742 6732 else 6743 #pragma omp atomic6733 // #pragma omp atomic 6744 6734 YG1_tb( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 6745 6735 if (1==0 || Yj+1>YA2_S3dt-1){} 6746 6736 else 6747 #pragma omp atomic6737 // #pragma omp atomic 6748 6738 YG1_tb( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 6749 6739 Ydbg_nanf ("B: ", YNBI_ztuv_traldf_lap, "ztuv_traldf_lap"); … … 6751 6741 } 6752 6742 } 6753 #pragma omp parallel for 6743 //#pragma omp parallel for num_threads(16) 6754 6744 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6755 6745 Yk=YY; … … 6767 6757 Yvsmatt (YNBS_sa_ver_traadv_cen2, YNBI_sa_ver_traadv_cen2, YMAX_JAC_NBI, &YG1Y_sa_ver_traadv_cen2, Yjac[0], Ytbeta); 6768 6758 YG1_sa_hor_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6769 #pragma omp atomic6759 // #pragma omp atomic 6770 6760 YG1_zcens_ver_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[1]; 6771 6761 if (1==0 || Yk+1>YA3_S3dt-1){} 6772 6762 else 6773 #pragma omp atomic6763 // #pragma omp atomic 6774 6764 YG1_zcens_ver_traadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[2]; 6775 6765 Ydbg_nanf ("B: ", YNBI_sa_ver_traadv_cen2, "sa_ver_traadv_cen2"); … … 6784 6774 Yvsmatt (YNBS_ta_ver_traadv_cen2, YNBI_ta_ver_traadv_cen2, YMAX_JAC_NBI, &YG1Y_ta_ver_traadv_cen2, Yjac[0], Ytbeta); 6785 6775 YG1_ta_hor_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 6786 #pragma omp atomic6776 // #pragma omp atomic 6787 6777 YG1_zcent_ver_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[1]; 6788 6778 if (1==0 || Yk+1>YA3_S3dt-1){} 6789 6779 else 6790 #pragma omp atomic6780 // #pragma omp atomic 6791 6781 YG1_zcent_ver_traadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[2]; 6792 6782 Ydbg_nanf ("B: ", YNBI_ta_ver_traadv_cen2, "ta_ver_traadv_cen2"); … … 6794 6784 } 6795 6785 } 6796 #pragma omp parallel for 6786 //#pragma omp parallel for num_threads(16) 6797 6787 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6798 6788 Yk=YY; … … 6809 6799 Yzcens_ver_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 6810 6800 Yvsmatt (YNBS_zcens_ver_traadv_cen2, YNBI_zcens_ver_traadv_cen2, YMAX_JAC_NBI, &YG1Y_zcens_ver_traadv_cen2, Yjac[0], Ytbeta); 6811 #pragma omp atomic6801 // #pragma omp atomic 6812 6802 YG1_wa( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6813 #pragma omp atomic6803 // #pragma omp atomic 6814 6804 YG1_sa( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6815 6805 if (1==0 || Yk-1<0){} 6816 6806 else 6817 #pragma omp atomic6807 // #pragma omp atomic 6818 6808 YG1_sa( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[2]; 6819 6809 Ydbg_nanf ("B: ", YNBI_zcens_ver_traadv_cen2, "zcens_ver_traadv_cen2"); … … 6827 6817 Yzcent_ver_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 6828 6818 Yvsmatt (YNBS_zcent_ver_traadv_cen2, YNBI_zcent_ver_traadv_cen2, YMAX_JAC_NBI, &YG1Y_zcent_ver_traadv_cen2, Yjac[0], Ytbeta); 6829 #pragma omp atomic6819 // #pragma omp atomic 6830 6820 YG1_wa( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6831 #pragma omp atomic6821 // #pragma omp atomic 6832 6822 YG1_ta( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6833 6823 if (1==0 || Yk-1<0){} 6834 6824 else 6835 #pragma omp atomic6825 // #pragma omp atomic 6836 6826 YG1_ta( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[2]; 6837 6827 Ydbg_nanf ("B: ", YNBI_zcent_ver_traadv_cen2, "zcent_ver_traadv_cen2"); … … 6839 6829 } 6840 6830 } 6841 #pragma omp parallel for 6831 //#pragma omp parallel for num_threads(16) 6842 6832 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6843 6833 Yk=YY; … … 6913 6903 Yzcens_hor_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4] ); 6914 6904 Yvsmatt (YNBS_zcens_hor_traadv_cen2, YNBI_zcens_hor_traadv_cen2, YMAX_JAC_NBI, &YG1Y_zcens_hor_traadv_cen2, Yjac[0], Ytbeta); 6915 #pragma omp atomic6905 // #pragma omp atomic 6916 6906 YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6917 #pragma omp atomic6907 // #pragma omp atomic 6918 6908 YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6919 #pragma omp atomic6909 // #pragma omp atomic 6920 6910 YG1_sa( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 6921 6911 if (1==0 || Yj+1>YA2_S3dt-1){} 6922 6912 else 6923 #pragma omp atomic6913 // #pragma omp atomic 6924 6914 YG1_sa( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[3]; 6925 6915 if (1==0 || Yi+1>YA1_S3dt-1){} 6926 6916 else 6927 #pragma omp atomic6917 // #pragma omp atomic 6928 6918 YG1_sa( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[4]; 6929 6919 Ydbg_nanf ("B: ", YNBI_zcens_hor_traadv_cen2, "zcens_hor_traadv_cen2"); … … 6942 6932 Yzcent_hor_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4] ); 6943 6933 Yvsmatt (YNBS_zcent_hor_traadv_cen2, YNBI_zcent_hor_traadv_cen2, YMAX_JAC_NBI, &YG1Y_zcent_hor_traadv_cen2, Yjac[0], Ytbeta); 6944 #pragma omp atomic6934 // #pragma omp atomic 6945 6935 YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 6946 #pragma omp atomic6936 // #pragma omp atomic 6947 6937 YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 6948 #pragma omp atomic6938 // #pragma omp atomic 6949 6939 YG1_ta( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 6950 6940 if (1==0 || Yj+1>YA2_S3dt-1){} 6951 6941 else 6952 #pragma omp atomic6942 // #pragma omp atomic 6953 6943 YG1_ta( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[3]; 6954 6944 if (1==0 || Yi+1>YA1_S3dt-1){} 6955 6945 else 6956 #pragma omp atomic6946 // #pragma omp atomic 6957 6947 YG1_ta( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[4]; 6958 6948 Ydbg_nanf ("B: ", YNBI_zcent_hor_traadv_cen2, "zcent_hor_traadv_cen2"); … … 6962 6952 } 6963 6953 } 6964 #pragma omp parallel for 6954 #pragma omp parallel for num_threads(16) 6965 6955 for(YY=YA3_S3dt-1; YY>=0; --YY){ 6966 6956 Yk=YY; … … 6979 6969 } 6980 6970 } 6981 #pragma omp parallel for 6971 #pragma omp parallel for num_threads(16) 6982 6972 for(YY=YA2_S3dt-1; YY>=0; --YY){ 6983 6973 Yj=YY; … … 6998 6988 } 6999 6989 } 7000 #pragma omp parallel for 6990 #pragma omp parallel for num_threads(16) 7001 6991 for(YY=YA2_S3dt-1; YY>=0; --YY){ 7002 6992 Yj=YY; … … 7138 7128 } 7139 7129 } 7140 #pragma omp parallel for 7130 //#pragma omp parallel for num_threads(16) 7141 7131 for(YY=YA3_S3dt-1; YY>=0; --YY){ 7142 7132 Yk=YY; … … 7217 7207 if (1==0 || Yi-1<0){} 7218 7208 else 7219 #pragma omp atomic7209 // #pragma omp atomic 7220 7210 YG1_ua( Yi-1, Yj, 29, YTemps-1) += Ytbeta[3]; 7221 7211 if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){} 7222 7212 else 7223 #pragma omp atomic7213 // #pragma omp atomic 7224 7214 YG1_ua( Yi-1, Yj+1, 29, YTemps-1) += Ytbeta[4]; 7225 #pragma omp atomic7215 // #pragma omp atomic 7226 7216 YG1_ua( Yi, Yj, 29, YTemps-1) += Ytbeta[5]; 7227 7217 if (1==0 || Yj+1>YA2_S3dt-1){} 7228 7218 else 7229 #pragma omp atomic7219 // #pragma omp atomic 7230 7220 YG1_ua( Yi, Yj+1, 29, YTemps-1) += Ytbeta[6]; 7231 7221 if (1==0 || Yi-1<0){} 7232 7222 else 7233 #pragma omp atomic7223 // #pragma omp atomic 7234 7224 YG1_ua( Yi-1, Yj, 1, YTemps-1) += Ytbeta[7]; 7235 7225 if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){} 7236 7226 else 7237 #pragma omp atomic7227 // #pragma omp atomic 7238 7228 YG1_ua( Yi-1, Yj+1, 1, YTemps-1) += Ytbeta[8]; 7239 #pragma omp atomic7229 // #pragma omp atomic 7240 7230 YG1_ua( Yi, Yj, 1, YTemps-1) += Ytbeta[9]; 7241 7231 if (1==0 || Yj+1>YA2_S3dt-1){} 7242 7232 else 7243 #pragma omp atomic7233 // #pragma omp atomic 7244 7234 YG1_ua( Yi, Yj+1, 1, YTemps-1) += Ytbeta[10]; 7245 7235 if (1==0 || Yj-1<0){} 7246 7236 else 7247 #pragma omp atomic7237 // #pragma omp atomic 7248 7238 YG1_va( Yi, Yj-1, 29, YTemps-1) += Ytbeta[11]; 7249 #pragma omp atomic7239 // #pragma omp atomic 7250 7240 YG1_va( Yi, Yj, 29, YTemps-1) += Ytbeta[12]; 7251 7241 if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){} 7252 7242 else 7253 #pragma omp atomic7243 // #pragma omp atomic 7254 7244 YG1_va( Yi+1, Yj-1, 29, YTemps-1) += Ytbeta[13]; 7255 7245 if (1==0 || Yi+1>YA1_S3dt-1){} 7256 7246 else 7257 #pragma omp atomic7247 // #pragma omp atomic 7258 7248 YG1_va( Yi+1, Yj, 29, YTemps-1) += Ytbeta[14]; 7259 7249 if (1==0 || Yj-1<0){} 7260 7250 else 7261 #pragma omp atomic7251 // #pragma omp atomic 7262 7252 YG1_va( Yi, Yj-1, 1, YTemps-1) += Ytbeta[15]; 7263 #pragma omp atomic7253 // #pragma omp atomic 7264 7254 YG1_va( Yi, Yj, 1, YTemps-1) += Ytbeta[16]; 7265 7255 if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){} 7266 7256 else 7267 #pragma omp atomic7257 // #pragma omp atomic 7268 7258 YG1_va( Yi+1, Yj-1, 1, YTemps-1) += Ytbeta[17]; 7269 7259 if (1==0 || Yi+1>YA1_S3dt-1){} 7270 7260 else 7271 #pragma omp atomic7261 // #pragma omp atomic 7272 7262 YG1_va( Yi+1, Yj, 1, YTemps-1) += Ytbeta[18]; 7273 7263 Ydbg_nanf ("B: ", YNBI_zdf_avt_avmu_avmv, "zdf_avt_avmu_avmv"); … … 7275 7265 } 7276 7266 } 7277 #pragma omp parallel for 7278 for(YY=YA3_S3dt-1; YY>=0; --YY){ 7267 //#pragma omp parallel for num_threads(16) 7268 for(YY=YA3_S3dt-1; YY>=0; --YY){ 7279 7269 Yk=YY; 7280 7270 for(Yj=YA2_S3dt-1; Yj>=0; --Yj) … … 7294 7284 Ybn2_rn2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 7295 7285 Yvsmatt (YNBS_bn2_rn2, YNBI_bn2_rn2, YMAX_JAC_NBI, &YG1Y_bn2_rn2, Yjac[0], Ytbeta); 7296 #pragma omp atomic7286 // #pragma omp atomic 7297 7287 YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 7298 7288 if (1==0 || Yk-1<0){} 7299 7289 else 7300 #pragma omp atomic7290 // #pragma omp atomic 7301 7291 YG1_tb( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[1]; 7302 #pragma omp atomic7292 // #pragma omp atomic 7303 7293 YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 7304 7294 if (1==0 || Yk-1<0){} 7305 7295 else 7306 #pragma omp atomic7296 // #pragma omp atomic 7307 7297 YG1_sb( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[3]; 7308 7298 Ydbg_nanf ("B: ", YNBI_bn2_rn2, "bn2_rn2"); -
trunk/src/sinobad.d
r37 r38 21 21 #option O_VARINCR 22 22 #option O_GRADTEST 23 option O_DBG_NANF23 #option O_DBG_NANF 24 24 #option O_DBG_TING 25 25 option O_EXTOBJ "../object/ncutil.o" 26 26 option O_REAL double 27 option o_parallel 27 option o_parallel 16 28 28 29 29 #TRAJECTOIRES (DIM) -----------------------------------TRAJ … … 191 191 modul gcb_dynspg_flt space S3dt inter YA1 YA2 input 4 output 1 tempo 192 192 modul gcx_dynspg_flt space S3dt inter YA1 YA2 input 2 output 1 tempo 193 modul solsor_dynspg_flt space S3dt inter YA1 YA2 input array 1 8 output 1193 modul solsor_dynspg_flt space S3dt inter YA1 YA2 input array 19 output 1 tempo 194 194 modul gcx2 space S3dt inter YA1 YA2 input array 1 output 1 tempo 195 195 modul spguv_dynspg_flt space S3dt inter YA1 YA2 input 3 output 2 tempo … … 585 585 ctin solsor_dynspg_flt 1..9 from gcx_dynspg_flt 1 i%~1 j%~1 t 586 586 ctin solsor_dynspg_flt 10..18 from gcb_dynspg_flt 1 i%~1 j%~1 t 587 ctin gcx2 1 from solsor_dynspg_flt 1 i j 587 ctin solsor_dynspg_flt 19 from solsor_dynspg_flt 1 i-1 j-1 t 588 ctin gcx2 1 from solsor_dynspg_flt 1 i j t 588 589 589 590 #---------->dyn_nxt -
trunk/src/solsor_dynspg_flt.h
r1 r38 12 12 return; 13 13 else{ 14 if(Yi==0 ){14 if(Yi==0 && Yj==0){ 15 15 int t,jn,jj,ji, icount = 0,ncut=0,niter=0,ishift; 16 16 niter=0;ncut=0; … … 132 132 return; 133 133 else{ 134 if(Yi==0 ){134 if(Yi==0 && Yj==0){ 135 135 double G_ztmp; 136 136 int t,jn,jj,ji, ishift,istart;
Note: See TracChangeset
for help on using the changeset viewer.