Changeset 38


Ignore:
Timestamp:
04/22/11 18:07:23 (13 years ago)
Author:
jbrlod
Message:

test parallelism

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/data_out/plot_results.m

    r34 r38  
    1 f=netcdf('exp_T_2D.nc'); 
     1f=netcdf('exp_T.nc'); 
    22 
    33addpath('../scripts/matlab_toolbox'); 
  • trunk/src/Yworkdir/Y1sinobad.h

    r37 r38  
    2323#define         Y3_M    8 
    2424#define         YO_M1QN3 
    25 #define         YO_DBG_NANF 
    2625#define         YDOUBLE  
    2726#define         YTINY  1.e-15  
     
    15911590/*NBMOD     */ #define   YNB_solsor_dynspg_flt   704 
    15921591/*NBSMOD    */ #define   YNBS_solsor_dynspg_flt          1 
    1593 /*NBIMOD    */ #define   YNBI_solsor_dynspg_flt          18 
     1592/*NBIMOD    */ #define   YNBI_solsor_dynspg_flt          19 
    15941593/*M2_IRMOD  */ #define   Ysolsor_dynspg_flt(i, j)        Ysolsor_dynspg_flt[i][j] 
    15951594/*M2_NOWMOD */ #define   Ysolsor_dynspg_fltY             Ysolsor_dynspg_flt[Yi][Yj] 
    1596 /*M2_VALSG  */ #define   Ystate_solsor_dynspg_flt(v, i, j)               Ysolsor_dynspg_flt[i][j]->Ystate[v]  
    1597 /*M2_VALSG  */ #define   YS_solsor_dynspg_flt(v, i, j)           Ysolsor_dynspg_flt[i][j]->Ystate[v]  
    1598 /*M2_VALSGI */ #define   YS1_solsor_dynspg_flt(i, j)             Ysolsor_dynspg_flt[i][j]->Ystate[0]  
    1599 /*M2_HERESGI*/ #define   YS1Y_solsor_dynspg_flt                  Ysolsor_dynspg_flt[Yi][Yj]->Ystate[0]  
    1600 /*M2_VALSG  */ #define   Ygrad_solsor_dynspg_flt(v, i, j)                Ysolsor_dynspg_flt[i][j]->Ygrad[v]  
    1601 /*M2_VALSG  */ #define   YG_solsor_dynspg_flt(v, i, j)           Ysolsor_dynspg_flt[i][j]->Ygrad[v]  
    1602 /*M2_VALSGI */ #define   YG1_solsor_dynspg_flt(i, j)             Ysolsor_dynspg_flt[i][j]->Ygrad[0]  
    1603 /*M2_HERESGI*/ #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]  
    16041603solsor_dynspg_flt                *Ysolsor_dynspg_flt[YA1_S3dt][YA2_S3dt]; 
    16051604 
     
    33263325{ 
    33273326         public: 
    3328               double     Ystate[YNBS_solsor_dynspg_flt]; 
    3329               double     Ygrad[YNBS_solsor_dynspg_flt]; 
     3327              double     Ystate[YNBALLTIME_Tsbd][YNBS_solsor_dynspg_flt]; 
     3328              double     Ygrad[YNBALLTIME_Tsbd][YNBS_solsor_dynspg_flt]; 
    33303329 
    33313330//:=========> Constructor - Destructor ============ 
     
    38713870        {"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"}, 
    38723871        {"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, 18, 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"}, 
    38743873        {"gcx2", *Ygcx2, 2, 32, 22, 0, 1, 1, 52, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S3dt"}, 
    38753874        {"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"}, 
     
    49074906#define  backward void solsor_dynspg_flt::backward 
    49084907#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]  
    49124911#include "solsor_dynspg_flt.h"  
    49134912#undef   YS1Y   
  • trunk/src/Yworkdir/Y2sinobad.h

    r37 r38  
    28222822                 for (int Yw2=0; Yw2<YA2_S3dt; ++Yw2){ 
    28232823                         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  */  
     2825void 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*/  
    28322833void Yrazgrad_solsor_dynspg_flt() 
    28332834{ 
    28342835         for (int Yw1=0; Yw1<YA1_S3dt; ++Yw1){ 
    28352836                 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*/  
    28392841void Ysetstate_solsor_dynspg_flt(double val) 
    28402842{ 
    28412843         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*/  
    28462849void 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); 
    28482851}/*M2_CREU*/  
    28492852void Ycreate_solsor_dynspg_flt()   
     
    35453548        {} 
    35463549        if (itraj==Yid_Tsbd) 
    3547         {  Yrazgrad_solsor_dynspg_flt (); 
    3548          } 
     3550        {} 
    35493551} 
    35503552int Ysetstate_mod (char *nmmod, YREAL val)  
     
    39203922 
    39213923} 
    3922 #pragma omp parallel for  
     3924#pragma omp parallel for num_threads(16) 
    39233925for(YY=0; YY<YA3_S3dt; ++YY){ 
    39243926  Yk=YY; 
     
    39413943} 
    39423944} 
    3943 #pragma omp parallel for  
     3945#pragma omp parallel for num_threads(16) 
    39443946for(YY=0; YY<YA3_S3dt; ++YY){ 
    39453947  Yk=YY; 
     
    40134015} 
    40144016} 
    4015 #pragma omp parallel for  
     4017#pragma omp parallel for num_threads(16) 
    40164018for(YY=0; YY<YA2_S3dt; ++YY){ 
    40174019  Yj=YY; 
     
    40874089} 
    40884090} 
    4089 #pragma omp parallel for  
     4091#pragma omp parallel for num_threads(16) 
    40904092for(YY=0; YY<YA2_S3dt; ++YY){ 
    40914093  Yj=YY; 
     
    41004102} 
    41014103} 
    4102 #pragma omp parallel for  
     4104#pragma omp parallel for num_threads(16) 
    41034105for(YY=0; YY<YA3_S3dt; ++YY){ 
    41044106  Yk=YY; 
     
    41134115} 
    41144116} 
    4115 #pragma omp parallel for  
     4117#pragma omp parallel for num_threads(16) 
    41164118for(YY=0; YY<YA3_S3dt; ++YY){ 
    41174119  Yk=YY; 
     
    41824184} 
    41834185} 
    4184 #pragma omp parallel for  
     4186#pragma omp parallel for num_threads(16) 
    41854187for(YY=0; YY<YA3_S3dt; ++YY){ 
    41864188  Yk=YY; 
     
    42074209} 
    42084210} 
    4209 #pragma omp parallel for  
     4211#pragma omp parallel for num_threads(16) 
    42104212for(YY=0; YY<YA3_S3dt; ++YY){ 
    42114213  Yk=YY; 
     
    42324234} 
    42334235} 
    4234 #pragma omp parallel for  
     4236#pragma omp parallel for num_threads(16) 
    42354237for(YY=0; YY<YA3_S3dt; ++YY){ 
    42364238  Yk=YY; 
     
    42894291} 
    42904292} 
    4291 #pragma omp parallel for  
     4293#pragma omp parallel for num_threads(16) 
    42924294for(YY=0; YY<YA3_S3dt; ++YY){ 
    42934295  Yk=YY; 
     
    43814383 
    43824384} 
    4383 #pragma omp parallel for  
     4385#pragma omp parallel for num_threads(16) 
    43844386for(YY=0; YY<YA3_S3dt; ++YY){ 
    43854387  Yk=YY; 
     
    44024404} 
    44034405} 
    4404 #pragma omp parallel for  
     4406#pragma omp parallel for num_threads(16) 
    44054407for(YY=0; YY<YA3_S3dt; ++YY){ 
    44064408  Yk=YY; 
     
    44184420} 
    44194421} 
    4420 #pragma omp parallel for  
     4422#pragma omp parallel for num_threads(16) 
    44214423for(YY=0; YY<YA3_S3dt; ++YY){ 
    44224424  Yk=YY; 
     
    44794481} 
    44804482} 
    4481 #pragma omp parallel for  
     4483#pragma omp parallel for num_threads(16) 
    44824484for(YY=0; YY<YA3_S3dt; ++YY){ 
    44834485  Yk=YY; 
     
    45094511} 
    45104512} 
    4511 #pragma omp parallel for  
     4513#pragma omp parallel for num_threads(16) 
    45124514for(YY=0; YY<YA3_S3dt; ++YY){ 
    45134515  Yk=YY; 
     
    45344536} 
    45354537} 
    4536 #pragma omp parallel for  
     4538#pragma omp parallel for num_threads(16) 
    45374539for(YY=0; YY<YA3_S3dt; ++YY){ 
    45384540  Yk=YY; 
     
    46764678 
    46774679} 
    4678 #pragma omp parallel for  
     4680#pragma omp parallel for num_threads(16) 
    46794681for(YY=0; YY<YA3_S3dt; ++YY){ 
    46804682  Yk=YY; 
     
    47874789 
    47884790} 
    4789 #pragma omp parallel for  
     4791#pragma omp parallel for num_threads(16) 
    47904792for(YY=0; YY<YA3_S3dt; ++YY){ 
    47914793  Yk=YY; 
     
    48044806} 
    48054807} 
    4806 #pragma omp parallel for  
     4808#pragma omp parallel for num_threads(16) 
    48074809for(YY=0; YY<YA2_S3dt; ++YY){ 
    48084810  Yj=YY; 
     
    48234825} 
    48244826} 
    4825 #pragma omp parallel for  
     4827#pragma omp parallel for num_threads(16) 
    48264828for(YY=0; YY<YA3_S3dt; ++YY){ 
    48274829  Yk=YY; 
     
    48424844} 
    48434845} 
    4844 #pragma omp parallel for  
     4846#pragma omp parallel for num_threads(16) 
    48454847for(YY=0; YY<YA2_S3dt; ++YY){ 
    48464848  Yj=YY; 
     
    49164918} 
    49174919} 
    4918 #pragma omp parallel for  
     4920#pragma omp parallel for num_threads(16) 
    49194921for(YY=0; YY<YA2_S3dt; ++YY){ 
    49204922  Yj=YY; 
     
    49404942} 
    49414943} 
    4942  
    4943 for(YY=0; YY<YA1_S3dt; ++YY){ 
    4944   Yi=YY; 
     4944for(Yi=0; Yi<YA1_S3dt; ++Yi) 
    49454945for(Yj=0; Yj<YA2_S3dt; ++Yj) 
    49464946{ 
     
    50115011         else  
    50125012         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); 
    50135017         Ysolsor_dynspg_flt(Yi, Yj)->forward(); 
    50145018         Ydbg_nanf ("F: ", YNBI_solsor_dynspg_flt, "solsor_dynspg_flt"); 
    50155019 
    50165020} 
    5017 } 
    5018 #pragma omp parallel for  
     5021#pragma omp parallel for num_threads(16) 
    50195022for(YY=0; YY<YA2_S3dt; ++YY){ 
    50205023  Yj=YY; 
    50215024for(Yi=0; Yi<YA1_S3dt; ++Yi) 
    50225025{ 
    5023          Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj); 
     5026         Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj, YTemps); 
    50245027         Ygcx2(Yi, Yj)->forward(); 
    50255028         Ydbg_nanf ("F: ", YNBI_gcx2, "gcx2"); 
     
    50275030} 
    50285031} 
    5029 #pragma omp parallel for  
     5032#pragma omp parallel for num_threads(16) 
    50305033for(YY=0; YY<YA2_S3dt; ++YY){ 
    50315034  Yj=YY; 
     
    50465049} 
    50475050} 
    5048 #pragma omp parallel for  
     5051#pragma omp parallel for num_threads(16) 
    50495052for(YY=0; YY<YA3_S3dt; ++YY){ 
    50505053  Yk=YY; 
     
    50655068} 
    50665069} 
    5067 #pragma omp parallel for  
     5070#pragma omp parallel for num_threads(16) 
    50685071for(YY=0; YY<YA2_S3dt; ++YY){ 
    50695072  Yj=YY; 
     
    50855088} 
    50865089} 
    5087 #pragma omp parallel for  
     5090#pragma omp parallel for num_threads(16) 
    50885091for(YY=0; YY<YA3_S3dt; ++YY){ 
    50895092  Yk=YY; 
     
    51065109} 
    51075110} 
    5108 #pragma omp parallel for  
     5111#pragma omp parallel for num_threads(16) 
    51095112for(YY=0; YY<YA3_S3dt; ++YY){ 
    51105113  Yk=YY; 
     
    51795182 
    51805183} 
    5181 #pragma omp parallel for  
     5184#pragma omp parallel for num_threads(16) 
    51825185for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    51835186  Yk=YY; 
     
    52325235} 
    52335236} 
    5234 #pragma omp parallel for  
     5237#pragma omp parallel for num_threads(16) 
    52355238for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    52365239  Yk=YY; 
     
    52675270} 
    52685271} 
    5269 #pragma omp parallel for  
     5272#pragma omp parallel for num_threads(16) 
    52705273for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    52715274  Yj=YY; 
     
    53015304} 
    53025305} 
    5303 #pragma omp parallel for  
     5306#pragma omp parallel for num_threads(16) 
    53045307for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    53055308  Yk=YY; 
     
    53325335} 
    53335336} 
    5334 #pragma omp parallel for  
     5337#pragma omp parallel for num_threads(16) 
    53355338for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    53365339  Yj=YY; 
     
    53635366} 
    53645367} 
    5365 #pragma omp parallel for  
     5368#pragma omp parallel for num_threads(16) 
    53665369for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    53675370  Yj=YY; 
    53685371for(Yi=YA1_S3dt-1; Yi>=0; --Yi) 
    53695372{ 
    5370          Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj); 
     5373         Yting[0]=YS1_solsor_dynspg_flt( Yi, Yj, YTemps); 
    53715374         memset(Yjac, 0, 31*sizeof(double)); 
    53725375         Ygcx2(Yi, Yj)->backward(); 
    53735376         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]; 
    53755379         Ydbg_nanf ("B: ", YNBI_gcx2, "gcx2"); 
    53765380 
    53775381} 
    53785382} 
    5379 #pragma omp parallel for  
    5380 for(YY=YA1_S3dt-1; YY>=0; --YY){ 
    5381   Yi=YY; 
     5383for(Yi=YA1_S3dt-1; Yi>=0; --Yi) 
    53825384for(Yj=YA2_S3dt-1; Yj>=0; --Yj) 
    53835385{ 
     
    54485450         else  
    54495451         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); 
    54505456         memset(Yjac, 0, 31*sizeof(double)); 
    54515457         Ysolsor_dynspg_flt(Yi, Yj)->backward(); 
     
    54535459         if (1==0 || Yi-1<0 || Yj-1<0){}  
    54545460         else  
    5455          #pragma omp atomic 
    54565461         YG1_gcx_dynspg_flt( Yi-1, Yj-1, YTemps) += Ytbeta[0]; 
    54575462         if (1==0 || Yi-1<0){}  
    54585463         else  
    5459          #pragma omp atomic 
    54605464         YG1_gcx_dynspg_flt( Yi-1, Yj, YTemps) += Ytbeta[1]; 
    54615465         if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){}  
    54625466         else  
    5463          #pragma omp atomic 
    54645467         YG1_gcx_dynspg_flt( Yi-1, Yj+1, YTemps) += Ytbeta[2]; 
    54655468         if (1==0 || Yj-1<0){}  
    54665469         else  
    5467          #pragma omp atomic 
    54685470         YG1_gcx_dynspg_flt( Yi, Yj-1, YTemps) += Ytbeta[3]; 
    5469          #pragma omp atomic 
    54705471         YG1_gcx_dynspg_flt( Yi, Yj, YTemps) += Ytbeta[4]; 
    54715472         if (1==0 || Yj+1>YA2_S3dt-1){}  
    54725473         else  
    5473          #pragma omp atomic 
    54745474         YG1_gcx_dynspg_flt( Yi, Yj+1, YTemps) += Ytbeta[5]; 
    54755475         if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){}  
    54765476         else  
    5477          #pragma omp atomic 
    54785477         YG1_gcx_dynspg_flt( Yi+1, Yj-1, YTemps) += Ytbeta[6]; 
    54795478         if (1==0 || Yi+1>YA1_S3dt-1){}  
    54805479         else  
    5481          #pragma omp atomic 
    54825480         YG1_gcx_dynspg_flt( Yi+1, Yj, YTemps) += Ytbeta[7]; 
    54835481         if (1==0 || Yi+1>YA1_S3dt-1 || Yj+1>YA2_S3dt-1){}  
    54845482         else  
    5485          #pragma omp atomic 
    54865483         YG1_gcx_dynspg_flt( Yi+1, Yj+1, YTemps) += Ytbeta[8]; 
    54875484         if (1==0 || Yi-1<0 || Yj-1<0){}  
    54885485         else  
    5489          #pragma omp atomic 
    54905486         YG1_gcb_dynspg_flt( Yi-1, Yj-1, YTemps) += Ytbeta[9]; 
    54915487         if (1==0 || Yi-1<0){}  
    54925488         else  
    5493          #pragma omp atomic 
    54945489         YG1_gcb_dynspg_flt( Yi-1, Yj, YTemps) += Ytbeta[10]; 
    54955490         if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){}  
    54965491         else  
    5497          #pragma omp atomic 
    54985492         YG1_gcb_dynspg_flt( Yi-1, Yj+1, YTemps) += Ytbeta[11]; 
    54995493         if (1==0 || Yj-1<0){}  
    55005494         else  
    5501          #pragma omp atomic 
    55025495         YG1_gcb_dynspg_flt( Yi, Yj-1, YTemps) += Ytbeta[12]; 
    5503          #pragma omp atomic 
    55045496         YG1_gcb_dynspg_flt( Yi, Yj, YTemps) += Ytbeta[13]; 
    55055497         if (1==0 || Yj+1>YA2_S3dt-1){}  
    55065498         else  
    5507          #pragma omp atomic 
    55085499         YG1_gcb_dynspg_flt( Yi, Yj+1, YTemps) += Ytbeta[14]; 
    55095500         if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){}  
    55105501         else  
    5511          #pragma omp atomic 
    55125502         YG1_gcb_dynspg_flt( Yi+1, Yj-1, YTemps) += Ytbeta[15]; 
    55135503         if (1==0 || Yi+1>YA1_S3dt-1){}  
    55145504         else  
    5515          #pragma omp atomic 
    55165505         YG1_gcb_dynspg_flt( Yi+1, Yj, YTemps) += Ytbeta[16]; 
    55175506         if (1==0 || Yi+1>YA1_S3dt-1 || Yj+1>YA2_S3dt-1){}  
    55185507         else  
    5519          #pragma omp atomic 
    55205508         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]; 
    55215512         Ydbg_nanf ("B: ", YNBI_solsor_dynspg_flt, "solsor_dynspg_flt"); 
    55225513 
    55235514} 
    5524 } 
    5525 #pragma omp parallel for  
     5515#pragma omp parallel for num_threads(16) 
    55265516for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    55275517  Yj=YY; 
     
    55635553} 
    55645554} 
    5565 #pragma omp parallel for  
     5555#pragma omp parallel for num_threads(16) 
    55665556for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    55675557  Yj=YY; 
     
    57035693} 
    57045694} 
    5705 #pragma omp parallel for  
     5695//#pragma omp parallel for num_threads(16) 
    57065696for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    57075697  Yk=YY; 
     
    57325722} 
    57335723} 
    5734 #pragma omp parallel for  
     5724//#pragma omp parallel for num_threads(16) 
    57355725for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    57365726  Yj=YY; 
     
    57495739         Yspguv_now_dynspg(Yi, Yj)->backward( Yting[0], Yting[1], Yting[2] ); 
    57505740         Yvsmatt (YNBS_spguv_now_dynspg, YNBI_spguv_now_dynspg, YMAX_JAC_NBI, &YG1Y_spguv_now_dynspg, Yjac[0], Ytbeta); 
    5751          #pragma omp atomic 
     5741         //      #pragma omp atomic 
    57525742         YG1_sshn( Yi, Yj, YTemps-1) += Ytbeta[0]; 
    57535743         if (1==0 || Yj+1>YA2_S3dt-1){}  
    57545744         else  
    5755          #pragma omp atomic 
     5745           //    #pragma omp atomic 
    57565746         YG1_sshn( Yi, Yj+1, YTemps-1) += Ytbeta[1]; 
    57575747         if (1==0 || Yi+1>YA1_S3dt-1){}  
    57585748         else  
    5759          #pragma omp atomic 
     5749           //    #pragma omp atomic 
    57605750         YG1_sshn( Yi+1, Yj, YTemps-1) += Ytbeta[2]; 
    57615751         Ydbg_nanf ("B: ", YNBI_spguv_now_dynspg, "spguv_now_dynspg"); 
     
    57635753} 
    57645754} 
    5765 #pragma omp parallel for  
     5755//#pragma omp parallel for num_threads(16) 
    57665756for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    57675757  Yk=YY; 
     
    57745764         Yva_norm_dynzdf(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 
    57755765         Yvsmatt (YNBS_va_norm_dynzdf, YNBI_va_norm_dynzdf, YMAX_JAC_NBI, &YG1Y_va_norm_dynzdf, Yjac[0], Ytbeta); 
    5776          #pragma omp atomic 
     5766         //      #pragma omp atomic 
    57775767         YG1_va_dynzdf_imp( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    57785768         YG1_vb( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
     
    57835773         Yua_norm_dynzdf(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 
    57845774         Yvsmatt (YNBS_ua_norm_dynzdf, YNBI_ua_norm_dynzdf, YMAX_JAC_NBI, &YG1Y_ua_norm_dynzdf, Yjac[0], Ytbeta); 
    5785          #pragma omp atomic 
     5775         //      #pragma omp atomic 
    57865776         YG1_ua_dynzdf_imp( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    57875777         YG1_ub( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
     
    59245914 
    59255915} 
    5926 #pragma omp parallel for  
     5916//#pragma omp parallel for num_threads(16) 
    59275917for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    59285918  Yk=YY; 
     
    59585948         Yzwisd_va_dynzdf_imp(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 
    59595949         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 atomic 
     5950         //      #pragma omp atomic 
    59615951         YG3_zdf_avt_avmu_avmv( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    59625952         if (1==0 || Yk+1>YA3_S3dt-1){}  
    59635953         else  
    5964          #pragma omp atomic 
     5954           //    #pragma omp atomic 
    59655955         YG3_zdf_avt_avmu_avmv( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 
    59665956         Ydbg_nanf ("B: ", YNBI_zwisd_va_dynzdf_imp, "zwisd_va_dynzdf_imp"); 
     
    59735963         Yzwisd_ua_dynzdf_imp(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 
    59745964         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 atomic 
     5965         //      #pragma omp atomic 
    59765966         YG2_zdf_avt_avmu_avmv( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    59775967         if (1==0 || Yk+1>YA3_S3dt-1){}  
    59785968         else  
    5979          #pragma omp atomic 
     5969           //    #pragma omp atomic 
    59805970         YG2_zdf_avt_avmu_avmv( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 
    59815971         Ydbg_nanf ("B: ", YNBI_zwisd_ua_dynzdf_imp, "zwisd_ua_dynzdf_imp"); 
     
    60606050 
    60616051} 
    6062 #pragma omp parallel for  
     6052//#pragma omp parallel for num_threads(16) 
    60636053for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    60646054  Yk=YY; 
     
    62096199         Yzwxyz_vor_ene(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 
    62106200         Yvsmatt (YNBS_zwxyz_vor_ene, YNBI_zwxyz_vor_ene, YMAX_JAC_NBI, &YG1Y_zwxyz_vor_ene, Yjac[0], Ytbeta); 
    6211          #pragma omp atomic 
     6201         //      #pragma omp atomic 
    62126202         YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    62136203         if (1==0 || Yj+1>YA2_S3dt-1){}  
    62146204         else  
    6215          #pragma omp atomic 
     6205           //    #pragma omp atomic 
    62166206         YG1_ua( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[1]; 
    6217          #pragma omp atomic 
     6207         //      #pragma omp atomic 
    62186208         YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 
    62196209         if (1==0 || Yi+1>YA1_S3dt-1){}  
    62206210         else  
    6221          #pragma omp atomic 
     6211           //    #pragma omp atomic 
    62226212         YG1_va( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[3]; 
    62236213         Ydbg_nanf ("B: ", YNBI_zwxyz_vor_ene, "zwxyz_vor_ene"); 
     
    62276217} 
    62286218} 
    6229 #pragma omp parallel for  
     6219//#pragma omp parallel for num_threads(16) 
    62306220for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    62316221  Yk=YY; 
     
    62426232         Yva_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 
    62436233         Yvsmatt (YNBS_va_dynadv_cen2, YNBI_va_dynadv_cen2, YMAX_JAC_NBI, &YG1Y_va_dynadv_cen2, Yjac[0], Ytbeta); 
    6244          #pragma omp atomic 
     6234         //      #pragma omp atomic 
    62456235         YG2_zfuv_UW_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    62466236         if (1==0 || Yk+1>YA3_S3dt-1){}  
    62476237         else  
    6248          #pragma omp atomic 
     6238           //    #pragma omp atomic 
    62496239         YG2_zfuv_UW_dynadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 
    62506240         YG1_zva_dhmf_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[2]; 
     
    62596249         Yua_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 
    62606250         Yvsmatt (YNBS_ua_dynadv_cen2, YNBI_ua_dynadv_cen2, YMAX_JAC_NBI, &YG1Y_ua_dynadv_cen2, Yjac[0], Ytbeta); 
    6261          #pragma omp atomic 
     6251         //      #pragma omp atomic 
    62626252         YG1_zfuv_UW_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    62636253         if (1==0 || Yk+1>YA3_S3dt-1){}  
    62646254         else  
    6265          #pragma omp atomic 
     6255           //    #pragma omp atomic 
    62666256         YG1_zfuv_UW_dynadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 
    62676257         YG1_zua_dhmf_dynadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[2]; 
     
    62706260} 
    62716261} 
    6272 #pragma omp parallel for  
     6262//#pragma omp parallel for num_threads(16) 
    62736263for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    62746264  Yk=YY; 
     
    62986288         Yzfuv_UW_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5], Yting[6] ); 
    62996289         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 atomic 
     6290         //      #pragma omp atomic 
    63016291         YG1_wa( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    63026292         if (1==0 || Yi+1>YA1_S3dt-1){}  
    63036293         else  
    6304          #pragma omp atomic 
     6294           //    #pragma omp atomic 
    63056295         YG1_wa( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    63066296         if (1==0 || Yj+1>YA2_S3dt-1){}  
    63076297         else  
    6308          #pragma omp atomic 
     6298           //    #pragma omp atomic 
    63096299         YG1_wa( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 
    6310          #pragma omp atomic 
     6300         //      #pragma omp atomic 
    63116301         YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[3]; 
    63126302         if (1==0 || Yk-1<0){}  
    63136303         else  
    6314          #pragma omp atomic 
     6304           //    #pragma omp atomic 
    63156305         YG1_ua( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[4]; 
    6316          #pragma omp atomic 
     6306         //      #pragma omp atomic 
    63176307         YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[5]; 
    63186308         if (1==0 || Yk-1<0){}  
    63196309         else  
    6320          #pragma omp atomic 
     6310           //    #pragma omp atomic 
    63216311         YG1_va( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[6]; 
    63226312         Ydbg_nanf ("B: ", YNBI_zfuv_UW_dynadv_cen2, "zfuv_UW_dynadv_cen2"); 
     
    63246314} 
    63256315} 
    6326 #pragma omp parallel for  
     6316//#pragma omp parallel for num_threads(16) 
    63276317for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    63286318  Yk=YY; 
     
    64016391         Yhmf_TF_dynadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4], Yting[5] ); 
    64026392         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 atomic 
     6393         //      #pragma omp atomic 
    64046394         YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    64056395         if (1==0 || Yi+1>YA1_S3dt-1){}  
    64066396         else  
    6407          #pragma omp atomic 
     6397           //    #pragma omp atomic 
    64086398         YG1_ua( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    64096399         if (1==0 || Yj+1>YA2_S3dt-1){}  
    64106400         else  
    6411          #pragma omp atomic 
     6401           //    #pragma omp atomic 
    64126402         YG1_ua( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 
    6413          #pragma omp atomic 
     6403         //      #pragma omp atomic 
    64146404         YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[3]; 
    64156405         if (1==0 || Yi+1>YA1_S3dt-1){}  
    64166406         else  
    6417          #pragma omp atomic 
     6407           //    #pragma omp atomic 
    64186408         YG1_va( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[4]; 
    64196409         if (1==0 || Yj+1>YA2_S3dt-1){}  
    64206410         else  
    6421          #pragma omp atomic 
     6411           //    #pragma omp atomic 
    64226412         YG1_va( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[5]; 
    64236413         Ydbg_nanf ("B: ", YNBI_hmf_TF_dynadv_cen2, "hmf_TF_dynadv_cen2"); 
     
    64276417} 
    64286418} 
    6429 #pragma omp parallel for  
     6419//#pragma omp parallel for num_threads(16) 
    64306420for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    64316421  Yk=YY; 
     
    64376427         Yrhop(Yi, Yj, Yk)->backward( Yting[0] ); 
    64386428         Yvsmatt (YNBS_rhop, YNBI_rhop, YMAX_JAC_NBI, &YG1Y_rhop, Yjac[0], Ytbeta); 
    6439          #pragma omp atomic 
     6429         //      #pragma omp atomic 
    64406430         YG1_rhd( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    64416431         Ydbg_nanf ("B: ", YNBI_rhop, "rhop"); 
     
    64516441} 
    64526442} 
    6453 #pragma omp parallel for  
     6443//#pragma omp parallel for num_threads(16) 
    64546444for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    64556445  Yk=YY; 
     
    64646454         Ysb(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 
    64656455         Yvsmatt (YNBS_sb, YNBI_sb, YMAX_JAC_NBI, &YG1Y_sb, Yjac[0], Ytbeta); 
    6466          #pragma omp atomic 
     6456         //      #pragma omp atomic 
    64676457         YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    6468          #pragma omp atomic 
     6458         //      #pragma omp atomic 
    64696459         YG1_sa( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    6470          #pragma omp atomic 
     6460         //      #pragma omp atomic 
    64716461         YG1_sa( Yi, Yj, Yk, YTemps) += Ytbeta[2]; 
    64726462         YG1_sa_c( Yi, Yj, Yk) += Ytbeta[3]; 
     
    64796469         Ytb(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 
    64806470         Yvsmatt (YNBS_tb, YNBI_tb, YMAX_JAC_NBI, &YG1Y_tb, Yjac[0], Ytbeta); 
    6481          #pragma omp atomic 
     6471         //      #pragma omp atomic 
    64826472         YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    6483          #pragma omp atomic 
     6473         //      #pragma omp atomic 
    64846474         YG1_ta( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    6485          #pragma omp atomic 
     6475         //      #pragma omp atomic 
    64866476         YG1_ta( Yi, Yj, Yk, YTemps) += Ytbeta[2]; 
    64876477         YG1_ta_c( Yi, Yj, Yk) += Ytbeta[3]; 
     
    66066596 
    66076597} 
    6608 #pragma omp parallel for  
     6598//#pragma omp parallel for num_threads(16) 
    66096599for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    66106600  Yk=YY; 
     
    66186608         Yvsmatt (YNBS_zrhs_sa_trazdf_imp, YNBI_zrhs_sa_trazdf_imp, YMAX_JAC_NBI, &YG1Y_zrhs_sa_trazdf_imp, Yjac[0], Ytbeta); 
    66196609         YG1_sa_traldf_lap( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    6620          #pragma omp atomic 
     6610         //      #pragma omp atomic 
    66216611         YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    66226612         Ydbg_nanf ("B: ", YNBI_zrhs_sa_trazdf_imp, "zrhs_sa_trazdf_imp"); 
     
    66276617         Yvsmatt (YNBS_zrhs_trazdf_imp, YNBI_zrhs_trazdf_imp, YMAX_JAC_NBI, &YG1Y_zrhs_trazdf_imp, Yjac[0], Ytbeta); 
    66286618         YG1_ta_traldf_lap( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    6629          #pragma omp atomic 
     6619         //      #pragma omp atomic 
    66306620         YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    66316621         Ydbg_nanf ("B: ", YNBI_zrhs_trazdf_imp, "zrhs_trazdf_imp"); 
     
    66386628         Yzwisd_trazdf_imp(Yi, Yj, Yk)->backward( Yting[0], Yting[1] ); 
    66396629         Yvsmatt (YNBS_zwisd_trazdf_imp, YNBI_zwisd_trazdf_imp, YMAX_JAC_NBI, &YG1Y_zwisd_trazdf_imp, Yjac[0], Ytbeta); 
    6640          #pragma omp atomic 
     6630         //      #pragma omp atomic 
    66416631         YG1_zdf_avt_avmu_avmv( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    66426632         if (1==0 || Yk+1>YA3_S3dt-1){}  
    66436633         else  
    6644          #pragma omp atomic 
     6634           //    #pragma omp atomic 
    66456635         YG1_zdf_avt_avmu_avmv( Yi, Yj, Yk+1, YTemps) += Ytbeta[1]; 
    66466636         Ydbg_nanf ("B: ", YNBI_zwisd_trazdf_imp, "zwisd_trazdf_imp"); 
     
    66486638} 
    66496639} 
    6650 #pragma omp parallel for  
     6640//#pragma omp parallel for num_threads(16) 
    66516641for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    66526642  Yk=YY; 
     
    67146704         Yzsuv_traldf_lap(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 
    67156705         Yvsmatt (YNBS_zsuv_traldf_lap, YNBI_zsuv_traldf_lap, YMAX_JAC_NBI, &YG1Y_zsuv_traldf_lap, Yjac[0], Ytbeta); 
    6716          #pragma omp atomic 
     6706         //      #pragma omp atomic 
    67176707         YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    67186708         if (1==0 || Yi+1>YA1_S3dt-1){}  
    67196709         else  
    6720          #pragma omp atomic 
     6710           //    #pragma omp atomic 
    67216711         YG1_sb( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    67226712         if (1==0 || Yj+1>YA2_S3dt-1){}  
    67236713         else  
    6724          #pragma omp atomic 
     6714           //    #pragma omp atomic 
    67256715         YG1_sb( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 
    67266716         Ydbg_nanf ("B: ", YNBI_zsuv_traldf_lap, "zsuv_traldf_lap"); 
     
    67376727         Yztuv_traldf_lap(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 
    67386728         Yvsmatt (YNBS_ztuv_traldf_lap, YNBI_ztuv_traldf_lap, YMAX_JAC_NBI, &YG1Y_ztuv_traldf_lap, Yjac[0], Ytbeta); 
    6739          #pragma omp atomic 
     6729         //      #pragma omp atomic 
    67406730         YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    67416731         if (1==0 || Yi+1>YA1_S3dt-1){}  
    67426732         else  
    6743          #pragma omp atomic 
     6733           //    #pragma omp atomic 
    67446734         YG1_tb( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    67456735         if (1==0 || Yj+1>YA2_S3dt-1){}  
    67466736         else  
    6747          #pragma omp atomic 
     6737           //    #pragma omp atomic 
    67486738         YG1_tb( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[2]; 
    67496739         Ydbg_nanf ("B: ", YNBI_ztuv_traldf_lap, "ztuv_traldf_lap"); 
     
    67516741} 
    67526742} 
    6753 #pragma omp parallel for  
     6743//#pragma omp parallel for num_threads(16) 
    67546744for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    67556745  Yk=YY; 
     
    67676757         Yvsmatt (YNBS_sa_ver_traadv_cen2, YNBI_sa_ver_traadv_cen2, YMAX_JAC_NBI, &YG1Y_sa_ver_traadv_cen2, Yjac[0], Ytbeta); 
    67686758         YG1_sa_hor_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    6769          #pragma omp atomic 
     6759         //      #pragma omp atomic 
    67706760         YG1_zcens_ver_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[1]; 
    67716761         if (1==0 || Yk+1>YA3_S3dt-1){}  
    67726762         else  
    6773          #pragma omp atomic 
     6763           //    #pragma omp atomic 
    67746764         YG1_zcens_ver_traadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[2]; 
    67756765         Ydbg_nanf ("B: ", YNBI_sa_ver_traadv_cen2, "sa_ver_traadv_cen2"); 
     
    67846774         Yvsmatt (YNBS_ta_ver_traadv_cen2, YNBI_ta_ver_traadv_cen2, YMAX_JAC_NBI, &YG1Y_ta_ver_traadv_cen2, Yjac[0], Ytbeta); 
    67856775         YG1_ta_hor_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[0]; 
    6786          #pragma omp atomic 
     6776         //      #pragma omp atomic 
    67876777         YG1_zcent_ver_traadv_cen2( Yi, Yj, Yk, YTemps) += Ytbeta[1]; 
    67886778         if (1==0 || Yk+1>YA3_S3dt-1){}  
    67896779         else  
    6790          #pragma omp atomic 
     6780           //    #pragma omp atomic 
    67916781         YG1_zcent_ver_traadv_cen2( Yi, Yj, Yk+1, YTemps) += Ytbeta[2]; 
    67926782         Ydbg_nanf ("B: ", YNBI_ta_ver_traadv_cen2, "ta_ver_traadv_cen2"); 
     
    67946784} 
    67956785} 
    6796 #pragma omp parallel for  
     6786//#pragma omp parallel for num_threads(16) 
    67976787for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    67986788  Yk=YY; 
     
    68096799         Yzcens_ver_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 
    68106800         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 atomic 
     6801         //      #pragma omp atomic 
    68126802         YG1_wa( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    6813          #pragma omp atomic 
     6803         //      #pragma omp atomic 
    68146804         YG1_sa( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    68156805         if (1==0 || Yk-1<0){}  
    68166806         else  
    6817          #pragma omp atomic 
     6807           //    #pragma omp atomic 
    68186808         YG1_sa( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[2]; 
    68196809         Ydbg_nanf ("B: ", YNBI_zcens_ver_traadv_cen2, "zcens_ver_traadv_cen2"); 
     
    68276817         Yzcent_ver_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2] ); 
    68286818         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 atomic 
     6819         //      #pragma omp atomic 
    68306820         YG1_wa( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    6831          #pragma omp atomic 
     6821         //      #pragma omp atomic 
    68326822         YG1_ta( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    68336823         if (1==0 || Yk-1<0){}  
    68346824         else  
    6835          #pragma omp atomic 
     6825           //    #pragma omp atomic 
    68366826         YG1_ta( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[2]; 
    68376827         Ydbg_nanf ("B: ", YNBI_zcent_ver_traadv_cen2, "zcent_ver_traadv_cen2"); 
     
    68396829} 
    68406830} 
    6841 #pragma omp parallel for  
     6831//#pragma omp parallel for num_threads(16) 
    68426832for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    68436833  Yk=YY; 
     
    69136903         Yzcens_hor_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4] ); 
    69146904         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 atomic 
     6905         //      #pragma omp atomic 
    69166906         YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    6917          #pragma omp atomic 
     6907         //      #pragma omp atomic 
    69186908         YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    6919          #pragma omp atomic 
     6909         //      #pragma omp atomic 
    69206910         YG1_sa( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 
    69216911         if (1==0 || Yj+1>YA2_S3dt-1){}  
    69226912         else  
    6923          #pragma omp atomic 
     6913           //    #pragma omp atomic 
    69246914         YG1_sa( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[3]; 
    69256915         if (1==0 || Yi+1>YA1_S3dt-1){}  
    69266916         else  
    6927          #pragma omp atomic 
     6917           //    #pragma omp atomic 
    69286918         YG1_sa( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[4]; 
    69296919         Ydbg_nanf ("B: ", YNBI_zcens_hor_traadv_cen2, "zcens_hor_traadv_cen2"); 
     
    69426932         Yzcent_hor_traadv_cen2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3], Yting[4] ); 
    69436933         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 atomic 
     6934         //      #pragma omp atomic 
    69456935         YG1_ua( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    6946          #pragma omp atomic 
     6936         //      #pragma omp atomic 
    69476937         YG1_va( Yi, Yj, Yk, YTemps-1) += Ytbeta[1]; 
    6948          #pragma omp atomic 
     6938         //      #pragma omp atomic 
    69496939         YG1_ta( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 
    69506940         if (1==0 || Yj+1>YA2_S3dt-1){}  
    69516941         else  
    6952          #pragma omp atomic 
     6942           //    #pragma omp atomic 
    69536943         YG1_ta( Yi, Yj+1, Yk, YTemps-1) += Ytbeta[3]; 
    69546944         if (1==0 || Yi+1>YA1_S3dt-1){}  
    69556945         else  
    6956          #pragma omp atomic 
     6946           //    #pragma omp atomic 
    69576947         YG1_ta( Yi+1, Yj, Yk, YTemps-1) += Ytbeta[4]; 
    69586948         Ydbg_nanf ("B: ", YNBI_zcent_hor_traadv_cen2, "zcent_hor_traadv_cen2"); 
     
    69626952} 
    69636953} 
    6964 #pragma omp parallel for  
     6954#pragma omp parallel for num_threads(16) 
    69656955for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    69666956  Yk=YY; 
     
    69796969} 
    69806970} 
    6981 #pragma omp parallel for  
     6971#pragma omp parallel for num_threads(16) 
    69826972for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    69836973  Yj=YY; 
     
    69986988} 
    69996989} 
    7000 #pragma omp parallel for  
     6990#pragma omp parallel for num_threads(16) 
    70016991for(YY=YA2_S3dt-1; YY>=0; --YY){ 
    70026992  Yj=YY; 
     
    71387128} 
    71397129} 
    7140 #pragma omp parallel for  
     7130//#pragma omp parallel for num_threads(16) 
    71417131for(YY=YA3_S3dt-1; YY>=0; --YY){ 
    71427132  Yk=YY; 
     
    72177207         if (1==0 || Yi-1<0){}  
    72187208         else  
    7219          #pragma omp atomic 
     7209           //    #pragma omp atomic 
    72207210         YG1_ua( Yi-1, Yj, 29, YTemps-1) += Ytbeta[3]; 
    72217211         if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){}  
    72227212         else  
    7223          #pragma omp atomic 
     7213           //    #pragma omp atomic 
    72247214         YG1_ua( Yi-1, Yj+1, 29, YTemps-1) += Ytbeta[4]; 
    7225          #pragma omp atomic 
     7215         //      #pragma omp atomic 
    72267216         YG1_ua( Yi, Yj, 29, YTemps-1) += Ytbeta[5]; 
    72277217         if (1==0 || Yj+1>YA2_S3dt-1){}  
    72287218         else  
    7229          #pragma omp atomic 
     7219           //    #pragma omp atomic 
    72307220         YG1_ua( Yi, Yj+1, 29, YTemps-1) += Ytbeta[6]; 
    72317221         if (1==0 || Yi-1<0){}  
    72327222         else  
    7233          #pragma omp atomic 
     7223           //    #pragma omp atomic 
    72347224         YG1_ua( Yi-1, Yj, 1, YTemps-1) += Ytbeta[7]; 
    72357225         if (1==0 || Yi-1<0 || Yj+1>YA2_S3dt-1){}  
    72367226         else  
    7237          #pragma omp atomic 
     7227           //    #pragma omp atomic 
    72387228         YG1_ua( Yi-1, Yj+1, 1, YTemps-1) += Ytbeta[8]; 
    7239          #pragma omp atomic 
     7229         //      #pragma omp atomic 
    72407230         YG1_ua( Yi, Yj, 1, YTemps-1) += Ytbeta[9]; 
    72417231         if (1==0 || Yj+1>YA2_S3dt-1){}  
    72427232         else  
    7243          #pragma omp atomic 
     7233           //    #pragma omp atomic 
    72447234         YG1_ua( Yi, Yj+1, 1, YTemps-1) += Ytbeta[10]; 
    72457235         if (1==0 || Yj-1<0){}  
    72467236         else  
    7247          #pragma omp atomic 
     7237           //    #pragma omp atomic 
    72487238         YG1_va( Yi, Yj-1, 29, YTemps-1) += Ytbeta[11]; 
    7249          #pragma omp atomic 
     7239         //      #pragma omp atomic 
    72507240         YG1_va( Yi, Yj, 29, YTemps-1) += Ytbeta[12]; 
    72517241         if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){}  
    72527242         else  
    7253          #pragma omp atomic 
     7243           //    #pragma omp atomic 
    72547244         YG1_va( Yi+1, Yj-1, 29, YTemps-1) += Ytbeta[13]; 
    72557245         if (1==0 || Yi+1>YA1_S3dt-1){}  
    72567246         else  
    7257          #pragma omp atomic 
     7247           //    #pragma omp atomic 
    72587248         YG1_va( Yi+1, Yj, 29, YTemps-1) += Ytbeta[14]; 
    72597249         if (1==0 || Yj-1<0){}  
    72607250         else  
    7261          #pragma omp atomic 
     7251           //    #pragma omp atomic 
    72627252         YG1_va( Yi, Yj-1, 1, YTemps-1) += Ytbeta[15]; 
    7263          #pragma omp atomic 
     7253         //      #pragma omp atomic 
    72647254         YG1_va( Yi, Yj, 1, YTemps-1) += Ytbeta[16]; 
    72657255         if (1==0 || Yi+1>YA1_S3dt-1 || Yj-1<0){}  
    72667256         else  
    7267          #pragma omp atomic 
     7257           //    #pragma omp atomic 
    72687258         YG1_va( Yi+1, Yj-1, 1, YTemps-1) += Ytbeta[17]; 
    72697259         if (1==0 || Yi+1>YA1_S3dt-1){}  
    72707260         else  
    7271          #pragma omp atomic 
     7261           // #pragma omp atomic 
    72727262         YG1_va( Yi+1, Yj, 1, YTemps-1) += Ytbeta[18]; 
    72737263         Ydbg_nanf ("B: ", YNBI_zdf_avt_avmu_avmv, "zdf_avt_avmu_avmv"); 
     
    72757265} 
    72767266} 
    7277 #pragma omp parallel for  
    7278 for(YY=YA3_S3dt-1; YY>=0; --YY){ 
     7267//#pragma omp parallel for num_threads(16) 
     7268for(YY=YA3_S3dt-1; YY>=0; --YY){  
    72797269  Yk=YY; 
    72807270for(Yj=YA2_S3dt-1; Yj>=0; --Yj) 
     
    72947284         Ybn2_rn2(Yi, Yj, Yk)->backward( Yting[0], Yting[1], Yting[2], Yting[3] ); 
    72957285         Yvsmatt (YNBS_bn2_rn2, YNBI_bn2_rn2, YMAX_JAC_NBI, &YG1Y_bn2_rn2, Yjac[0], Ytbeta); 
    7296          #pragma omp atomic 
     7286         //      #pragma omp atomic 
    72977287         YG1_tb( Yi, Yj, Yk, YTemps-1) += Ytbeta[0]; 
    72987288         if (1==0 || Yk-1<0){}  
    72997289         else  
    7300          #pragma omp atomic 
     7290           //    #pragma omp atomic 
    73017291         YG1_tb( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[1]; 
    7302          #pragma omp atomic 
     7292         //      #pragma omp atomic 
    73037293         YG1_sb( Yi, Yj, Yk, YTemps-1) += Ytbeta[2]; 
    73047294         if (1==0 || Yk-1<0){}  
    73057295         else  
    7306          #pragma omp atomic 
     7296           //    #pragma omp atomic 
    73077297         YG1_sb( Yi, Yj, Yk-1, YTemps-1) += Ytbeta[3]; 
    73087298         Ydbg_nanf ("B: ", YNBI_bn2_rn2, "bn2_rn2"); 
  • trunk/src/sinobad.d

    r37 r38  
    2121#option O_VARINCR 
    2222#option    O_GRADTEST 
    23 option   O_DBG_NANF 
     23 #option   O_DBG_NANF 
    2424#option   O_DBG_TING 
    2525option  O_EXTOBJ "../object/ncutil.o" 
    2626option O_REAL double 
    27 option o_parallel 
     27option o_parallel 16 
    2828 
    2929#TRAJECTOIRES (DIM) -----------------------------------TRAJ 
     
    191191modul   gcb_dynspg_flt          space   S3dt inter YA1 YA2      input 4           output 1      tempo    
    192192modul   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 18    output 1       
     193modul   solsor_dynspg_flt       space   S3dt inter YA1 YA2      input array 19    output 1      tempo 
    194194modul   gcx2                    space   S3dt inter YA1 YA2      input array 1     output 1      tempo    
    195195modul   spguv_dynspg_flt        space   S3dt inter YA1 YA2      input 3           output 2      tempo    
     
    585585ctin     solsor_dynspg_flt      1..9    from    gcx_dynspg_flt          1 i%~1 j%~1       t 
    586586ctin     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  
     587ctin     solsor_dynspg_flt      19      from    solsor_dynspg_flt       1 i-1  j-1       t 
     588ctin     gcx2                   1       from    solsor_dynspg_flt       1 i    j          t 
    588589 
    589590#---------->dyn_nxt 
  • trunk/src/solsor_dynspg_flt.h

    r1 r38  
    1212    return; 
    1313  else{ 
    14     if(Yi==0){ 
     14    if(Yi==0 && Yj==0){ 
    1515      int t,jn,jj,ji, icount = 0,ncut=0,niter=0,ishift; 
    1616      niter=0;ncut=0; 
     
    132132      return; 
    133133    else{ 
    134       if(Yi==0){ 
     134      if(Yi==0 && Yj==0){ 
    135135        double G_ztmp; 
    136136        int t,jn,jj,ji, ishift,istart; 
Note: See TracChangeset for help on using the changeset viewer.