diff --git a/Fast/FastC/FastC/HPC_LAYER/loop3dcart_begin.for b/Fast/FastC/FastC/HPC_LAYER/loop3dcart_begin.for new file mode 100644 index 00000000..a6fb83a3 --- /dev/null +++ b/Fast/FastC/FastC/HPC_LAYER/loop3dcart_begin.for @@ -0,0 +1,13 @@ +#ifndef E_SCALAR_COMPUTER +#include "FastS/Compute/loop3dcartGpu_begin.for" +#else + do k = ind_loop(5), ind_loop(6) + do j = ind_loop(3), ind_loop(4) + lij = inddm( ind_loop(1) , j, k) +#ifdef _OPENMP4 +!$OMP SIMD +#else +!DIR$ IVDEP +#endif + do l = lij, lij + ind_loop(2)- ind_loop(1) +#endif diff --git a/Fast/FastC/FastC/HPC_LAYER/loopGpu_begin.for b/Fast/FastC/FastC/HPC_LAYER/loopGpu_begin.for new file mode 100644 index 00000000..30bdb43d --- /dev/null +++ b/Fast/FastC/FastC/HPC_LAYER/loopGpu_begin.for @@ -0,0 +1,7 @@ + do k = ind_loop(5), ind_loop(6) + do j = ind_loop(3), ind_loop(4) + do i = ind_loop(1), ind_loop(2) + + l = inddm(i,j,k) + lt = indmtr(i,j,k) + lvo = lt diff --git a/Fast/FastC/FastC/HPC_LAYER/loopGpu_end.for b/Fast/FastC/FastC/HPC_LAYER/loopGpu_end.for new file mode 100644 index 00000000..c3e9a555 --- /dev/null +++ b/Fast/FastC/FastC/HPC_LAYER/loopGpu_end.for @@ -0,0 +1,3 @@ + enddo + enddo + enddo diff --git a/Fast/FastC/FastC/HPC_LAYER/loop_begin.for b/Fast/FastC/FastC/HPC_LAYER/loop_begin.for index d117d034..9bbcdb88 100644 --- a/Fast/FastC/FastC/HPC_LAYER/loop_begin.for +++ b/Fast/FastC/FastC/HPC_LAYER/loop_begin.for @@ -1,5 +1,5 @@ #ifndef E_SCALAR_COMPUTER -#include "FastS/Compute/loopGpu_begin.for" +#include "FastC/HPC/loopGpu_begin.for" #else do k = ind_loop(5), ind_loop(6) do j = ind_loop(3), ind_loop(4) diff --git a/Fast/FastS/FastS/Compute/SENSOR/sciacovelli.for b/Fast/FastS/FastS/Compute/SENSOR/sciacovelli.for index edd5ae45..85a6d2be 100755 --- a/Fast/FastS/FastS/Compute/SENSOR/sciacovelli.for +++ b/Fast/FastS/FastS/Compute/SENSOR/sciacovelli.for @@ -77,10 +77,8 @@ c Var loc IF(param_int(ITYPZONE).eq.0) THEN - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #include "FastS/Compute/SA/metric_3dfull.for" #include "FastS/Compute/SA/div_rot_3dfull.for" w_tg = wigi @@ -95,53 +93,46 @@ c Var loc tc_tg = tck inc_tg = inck #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - if(icorr.eq.1) then !flux manquant en I +#include "FastC/HPC_LAYER/loop_end.for" + + If(icorr.eq.1) then !flux manquant en I i = ind_loop(2) + 1 - l = inddm( i, j, k) -#include "FastS/Compute/SA/metric_3dfull.for" -#include "FastS/Compute/SA/div_rot_3dfull.for" - w_tg = wigi - tc_tg = tci - inc_tg = inci -#include "FastS/Compute/SENSOR/shock_sensor.for" - endif ! - ENDDO - !complement jmax - If(jcorr.eq.1) then +#include "FastC/HPC_LAYER/loopPlanI_begin.for" +#include "FastS/Compute/SA/metric_3dfull.for" +#include "FastS/Compute/SA/div_rot_3dfull.for" + w_tg = wigi + tc_tg = tci + inc_tg = inci +#include "FastS/Compute/SENSOR/shock_sensor.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ! + If(jcorr.eq.1) then !complement jmax j = ind_loop(4)+1 -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loopPlanJ_begin.for" #include "FastS/Compute/SA/metric_3dfull.for" #include "FastS/Compute/SA/div_rot_3dfull.for" w_tg = wigj tc_tg = tcj inc_tg = incj #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo +#include "FastC/HPC_LAYER/loopPlan_end.for" Endif - ENDDO - !complement kmax - If(kcorr.eq.1) then - k = ind_loop(6)+1 - do j = ind_loop(3),ind_loop(4) -#include "FastS/Compute/loopI_begin.for" + If(kcorr.eq.1) then !complement kmax + k = ind_loop(6)+1 +#include "FastC/HPC_LAYER/loopPlanK_begin.for" #include "FastS/Compute/SA/metric_3dfull.for" #include "FastS/Compute/SA/div_rot_3dfull.for" w_tg = wigk tc_tg = tck inc_tg = inck #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - enddo - Endif +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ELSEIF(param_int(ITYPZONE).eq.1) THEN - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) - -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #include "FastS/Compute/SA/metric_3dhomo.for" #include "FastS/Compute/SA/div_rot_3dhomo.for" w_tg = wigi @@ -156,46 +147,41 @@ c Var loc tc_tg = tck inc_tg = inck #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - if(icorr.eq.1) then !flux manquant en I +#include "FastC/HPC_LAYER/loop_end.for" + + If(icorr.eq.1) then !flux manquant en I i = ind_loop(2) + 1 - l = inddm( i, j, k) -#include "FastS/Compute/SA/metric_3dhomo.for" -#include "FastS/Compute/SA/div_rot_3dhomo.for" - w_tg = wigi - tc_tg = tci - inc_tg = inci -#include "FastS/Compute/SENSOR/shock_sensor.for" - endif ! - ENDDO - !complement jmax - If(jcorr.eq.1) then +#include "FastC/HPC_LAYER/loopPlanI_begin.for" +#include "FastS/Compute/SA/metric_3dhomo.for" +#include "FastS/Compute/SA/div_rot_3dhomo.for" + w_tg = wigi + tc_tg = tci + inc_tg = inci +#include "FastS/Compute/SENSOR/shock_sensor.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ! + If(jcorr.eq.1) then !complement jmax j = ind_loop(4)+1 -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loopPlanJ_begin.for" #include "FastS/Compute/SA/metric_3dhomo.for" #include "FastS/Compute/SA/div_rot_3dhomo.for" w_tg = wigj tc_tg = tcj inc_tg = incj #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo +#include "FastC/HPC_LAYER/loopPlan_end.for" Endif - ENDDO - !complement kmax - If(kcorr.eq.1) then - k = ind_loop(6)+1 - do j = ind_loop(3),ind_loop(4) -#include "FastS/Compute/loopI_begin.for" + If(kcorr.eq.1) then !complement kmax + k = ind_loop(6)+1 +#include "FastC/HPC_LAYER/loopPlanK_begin.for" #include "FastS/Compute/SA/metric_3dhomo.for" #include "FastS/Compute/SA/div_rot_3dhomo.for" w_tg = wigk tc_tg = tck inc_tg = inck #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - enddo - Endif - +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ELSEIF(param_int(ITYPZONE).eq.2) THEN !metric @@ -212,10 +198,7 @@ c Var loc dz = vol(lvo)/tck xvol = 0.5/vol(lvo) - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) - -#include "FastS/Compute/loopI3dcart_begin.for" +#include "FastC/HPC_LAYER/loop3dcart_begin.for" #include "FastS/Compute/SA/div_rot_3dcart.for" w_tg = wigi tc_tg = tci @@ -229,49 +212,42 @@ c Var loc tc_tg = tck inc_tg = inck #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - if(icorr.eq.1) then !flux manquant en I +#include "FastC/HPC_LAYER/loop_end.for" + + If(icorr.eq.1) then !flux manquant en I i = ind_loop(2) + 1 - l = inddm( i, j, k) -#include "FastS/Compute/SA/div_rot_3dcart.for" - w_tg = wigi - tc_tg = tci - inc_tg = inci -#include "FastS/Compute/SENSOR/shock_sensor.for" - endif ! - ENDDO - !complement jmax - If(jcorr.eq.1) then +#include "FastC/HPC_LAYER/loopPlanI3dcart_begin.for" +#include "FastS/Compute/SA/div_rot_3dcart.for" + w_tg = wigi + tc_tg = tci + inc_tg = inci +#include "FastS/Compute/SENSOR/shock_sensor.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ! + If(jcorr.eq.1) then !complement jmax j = ind_loop(4)+1 -#include "FastS/Compute/loopI3dcart_begin.for" +#include "FastC/HPC_LAYER/loopPlanJ3dcart_begin.for" #include "FastS/Compute/SA/div_rot_3dcart.for" w_tg = wigj tc_tg = tcj inc_tg = incj #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo +#include "FastC/HPC_LAYER/loopPlan_end.for" Endif - ENDDO - !complement kmax - If(kcorr.eq.1) then - k = ind_loop(6)+1 - do j = ind_loop(3),ind_loop(4) -#include "FastS/Compute/loopI3dcart_begin.for" + If(kcorr.eq.1) then !complement kmax + k = ind_loop(6)+1 +#include "FastC/HPC_LAYER/loopPlanK3dcart_begin.for" #include "FastS/Compute/SA/div_rot_3dcart.for" w_tg = wigk tc_tg = tck inc_tg = inck #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - enddo - Endif +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ELSE - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) - -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #include "FastS/Compute/SA/metric_2d.for" #include "FastS/Compute/SA/div_rot_2d.for" w_tg = wigi @@ -282,31 +258,30 @@ c Var loc tc_tg = tcj inc_tg = incj #include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - if(icorr.eq.1) then !flux manquant en I +#include "FastC/HPC_LAYER/loop_end.for" + + If(icorr.eq.1) then !flux manquant en I i = ind_loop(2) + 1 - l = inddm( i, j, k) -#include "FastS/Compute/SA/metric_2d.for" -#include "FastS/Compute/SA/div_rot_2d.for" - w_tg = wigi - tc_tg = tci - inc_tg = inci -#include "FastS/Compute/SENSOR/shock_sensor.for" - endif ! - ENDDO - !complement jmax - If(jcorr.eq.1) then - j = ind_loop(4)+1 -#include "FastS/Compute/loopI_begin.for" -#include "FastS/Compute/SA/metric_2d.for" -#include "FastS/Compute/SA/div_rot_2d.for" - w_tg = wigj - tc_tg = tcj - inc_tg = incj -#include "FastS/Compute/SENSOR/shock_sensor.for" - enddo - Endif - ENDDO +#include "FastC/HPC_LAYER/loopPlanI_begin.for" +#include "FastS/Compute/SA/metric_2d.for" +#include "FastS/Compute/SA/div_rot_2d.for" + w_tg = wigi + tc_tg = tci + inc_tg = inci +#include "FastS/Compute/SENSOR/shock_sensor.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ! + If(jcorr.eq.1) then !complement jmax + j = ind_loop(4)+1 +#include "FastC/HPC_LAYER/loopPlanJ_begin.for" +#include "FastS/Compute/SA/metric_2d.for" +#include "FastS/Compute/SA/div_rot_2d.for" + w_tg = wigj + tc_tg = tcj + inc_tg = incj +#include "FastS/Compute/SENSOR/shock_sensor.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" + Endif ENDIF end diff --git a/Fast/FastS/FastS/Compute/SENSOR/wiggle.for b/Fast/FastS/FastS/Compute/SENSOR/wiggle.for index 787cbfeb..b4ae79f1 100644 --- a/Fast/FastS/FastS/Compute/SENSOR/wiggle.for +++ b/Fast/FastS/FastS/Compute/SENSOR/wiggle.for @@ -1,16 +1,26 @@ !calcul wiggle qm1 = (rop(nm +v1)-rop(nm2 +v1))*(rop(l +v1)-rop(nm +v1)) qp1 = (rop(l +v1)-rop(nm +v1))*(rop(np +v1)-rop(l +v1)) + !if (abs(qm1*roref2_inv).le.cutoff) qm1 = 1 + !if (abs(qp1*roref2_inv).le.cutoff) qp1 = 1 f1 = sign(1.,qm1 )+sign(1.,qp1) qm2 = (rop(nm +v2)-rop(nm2 +v2))*(rop(l +v2)-rop(nm +v2)) qp2 = (rop(l +v2)-rop(nm +v2))*(rop(np +v2)-rop(l +v2)) + !if (abs(qm2*vref2_inv).le.cutoff) qm2 = 1 + !if (abs(qp2*vref2_inv).le.cutoff) qp2 = 1 f2 = sign(1.,qm2 )+sign(1.,qp2) qm3 = (rop(nm +v3)-rop(nm2 +v3))*(rop(l +v3)-rop(nm +v3)) qp3 = (rop(l +v3)-rop(nm +v3))*(rop(np +v3)-rop(l +v3)) + !if (abs(qm3*vref2_inv).le.cutoff) qm3 = 1 + !if (abs(qp3*vref2_inv).le.cutoff) qp3 = 1 f3 = sign(1.,qm3 )+sign(1.,qp3) qm4 = (rop(nm +v4)-rop(nm2 +v4))*(rop(l +v4)-rop(nm +v4)) qp4 = (rop(l +v4)-rop(nm +v4))*(rop(np +v4)-rop(l +v4)) + !if (abs(qm4*vref2_inv).le.cutoff) qm4 = 1 + !if (abs(qp4*vref2_inv).le.cutoff) qp4 = 1 f4 = sign(1.,qm4 )+sign(1.,qp4) qm5 = (rop(nm +v5)-rop(nm2 +v5))*(rop(l +v5)-rop(nm +v5)) qp5 = (rop(l +v5)-rop(nm +v5))*(rop(np +v5)-rop(l +v5)) + !if (abs(qm5*tref2_inv).le.cutoff) qm5 = 1 + !if (abs(qp5*tref2_inv).le.cutoff) qp5 = 1 f5 = sign(1.,qm5 )+sign(1.,qp5) diff --git a/Fast/FastS/FastS/Compute/SENSOR/wiggle2023.for b/Fast/FastS/FastS/Compute/SENSOR/wiggle2023.for index 37acdef6..ab365875 100755 --- a/Fast/FastS/FastS/Compute/SENSOR/wiggle2023.for +++ b/Fast/FastS/FastS/Compute/SENSOR/wiggle2023.for @@ -10,8 +10,9 @@ c c*********************************************************************** implicit none - real souszero + REAL_E souszero, cutoff parameter(souszero=-1e-12) + parameter(cutoff=1e-10) #include "FastS/param_solver.h" @@ -29,7 +30,7 @@ c Var loc & nm,nm2,np, v1,v2,v3,v4,v5,ind_loop(6),activ,ghost3 REAL_E qm1,qp1,qm2,qp2,qm3,qp3,qm4,qp4,qm5,qp5,f1,f2,f3,f4,f5,test - REAL_E f1m,f2m,f3m,f4m,f5m + REAL_E f1m,f2m,f3m,f4m,f5m,roref2_inv,vref2_inv,tref2_inv REAL_E f1p,f2p,f3p,f4p,f5p REAL_E f1n,f2n,f3n,f4n,f5n REAL_E f1i,f1im,f1ip @@ -50,6 +51,10 @@ c Var loc v4 = 3*param_int(NDIMDX) v5 = 4*param_int(NDIMDX) + roref2_inv = 1./(param_real(ROINF)*param_real(ROINF)) + vref2_inv = 1./(param_real(VINF)*param_real(VINF)) + tref2_inv = 1./(param_real(TINF)*param_real(TINF)) + IF(param_int(ITYPZONE).ne.3) THEN ! !wig_k @@ -62,42 +67,34 @@ c Var loc if(ind_sdm(5).eq.1) then k = ind_sdm(5) ind_loop(5)= 2 - DO j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - nm = l - inck - nm2 = l -2*inck - np = l + inck -#include "FastS/Compute/SENSOR/wiggle_k.for" - enddo - ENDDO +#include "FastC/HPC_LAYER/loopPlanK_begin.for" + nm = l - inck + nm2 = l -2*inck + np = l + inck +#include "FastS/Compute/SENSOR/wiggle_k.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" endif if(ind_sdm(6).eq.param_int(IJKV+2)) then k = ind_sdm(6)+1 - DO j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - nm = l - inck - nm2 = l -2*inck - np = l + inck -#include "FastS/Compute/SENSOR/wiggle_k.for" - enddo - ENDDO +#include "FastC/HPC_LAYER/loopPlanK_begin.for" + nm = l - inck + nm2 = l -2*inck + np = l + inck +#include "FastS/Compute/SENSOR/wiggle_k.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" endif Endif !gestion coeur domaine k if(ind_sdm(6).eq.param_int(IJKV+2).and.ghost3.eq.1) & ind_loop(6)=ind_sdm(6)+1 - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - nm = l - inck - nm3 = l -3*inck - nm2 = l -2*inck - np = l + inck - np2 = l +2*inck -#include "FastS/Compute/SENSOR/wiggle5_k.for" - enddo - ENDDO - ENDDO +#include "FastC/HPC_LAYER/loop_begin.for" + nm = l - inck + nm3 = l -3*inck + nm2 = l -2*inck + np = l + inck + np2 = l +2*inck +#include "FastS/Compute/SENSOR/wiggle5_k.for" +#include "FastC/HPC_LAYER/loop_end.for" Endif !zone 3d ! @@ -111,42 +108,34 @@ c Var loc if(ind_sdm(3).eq.1) then j = ind_sdm(3) ind_loop(3)= 2 - DO k = ind_loop(5), ind_loop(6) -#include "FastS/Compute/loopI_begin.for" - nm = l - incj - nm2 = l -2*incj - np = l + incj -#include "FastS/Compute/SENSOR/wiggle_j.for" - enddo - ENDDO +#include "FastC/HPC_LAYER/loopPlanJ_begin.for" + nm = l - incj + nm2 = l -2*incj + np = l + incj +#include "FastS/Compute/SENSOR/wiggle_j.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" endif if(ind_sdm(4).eq.param_int(IJKV+1)) then j = ind_sdm(4)+1 - DO k = ind_loop(5), ind_loop(6) -#include "FastS/Compute/loopI_begin.for" - nm = l - incj - nm2 = l -2*incj - np = l + incj -#include "FastS/Compute/SENSOR/wiggle_j.for" - enddo - ENDDO +#include "FastC/HPC_LAYER/loopPlanJ_begin.for" + nm = l - incj + nm2 = l -2*incj + np = l + incj +#include "FastS/Compute/SENSOR/wiggle_j.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" endif Endif !gestion coeur domaine j if(ind_sdm(4).eq.param_int(IJKV+1).and.ghost3.eq.1) - & ind_loop(4)=ind_sdm(4)+1 - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - nm = l - incj - nm3 = l -3*incj - nm2 = l -2*incj - np = l + incj - np2 = l +2*incj -#include "FastS/Compute/SENSOR/wiggle5_j.for" - enddo - ENDDO - ENDDO + & ind_loop(4)=ind_sdm(4)+1 +#include "FastC/HPC_LAYER/loop_begin.for" + nm = l - incj + nm3 = l -3*incj + nm2 = l -2*incj + np = l + incj + np2 = l +2*incj +#include "FastS/Compute/SENSOR/wiggle5_j.for" +#include "FastC/HPC_LAYER/loop_end.for" ! !wig_i ! @@ -158,43 +147,34 @@ c Var loc if(ind_sdm(1).eq.1) then i = ind_sdm(1) ind_loop(1)= 2 - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) - l = inddm(i,j,k) +#include "FastC/HPC_LAYER/loopPlanI_begin.for" nm = l - inci nm2 = l -2*inci np = l + inci -#include "FastS/Compute/SENSOR/wiggle_i.for" - ENDDO - ENDDO +#include "FastS/Compute/SENSOR/wiggle_i.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" endif if(ind_sdm(2).eq.param_int(IJKV)) then i = ind_sdm(2)+1 - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) - l = inddm(i,j,k) +#include "FastC/HPC_LAYER/loopPlanI_begin.for" nm = l - inci nm2 = l -2*inci np = l + inci -#include "FastS/Compute/SENSOR/wiggle_i.for" - ENDDO - ENDDO +#include "FastS/Compute/SENSOR/wiggle_i.for" +#include "FastC/HPC_LAYER/loopPlan_end.for" endif Endif !gestion coeur domaine i if(ind_sdm(2).eq.param_int(IJKV).and.ghost3.eq.1) & ind_loop(2)=ind_sdm(2)+1 - DO k = ind_loop(5), ind_loop(6) - DO j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" + +#include "FastC/HPC_LAYER/loop_begin.for" nm = l - inci nm3 = l -3*inci nm2 = l -2*inci np = l + inci np2 = l +2*inci #include "FastS/Compute/SENSOR/wiggle5_i.for" - enddo - ENDDO - ENDDO +#include "FastC/HPC_LAYER/loop_end.for" end diff --git a/Fast/FastS/FastS/Compute/core3_dtloc.for b/Fast/FastS/FastS/Compute/core3_dtloc.for index 2ec8651f..ba7af217 100644 --- a/Fast/FastS/FastS/Compute/core3_dtloc.for +++ b/Fast/FastS/FastS/Compute/core3_dtloc.for @@ -38,7 +38,7 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc - INTEGER_E incmax,l,i,j,k,lij,v1,v2,v3,v4,v5,v6,b,ind + INTEGER_E incmax,l,i,j,k,lij,v1,v2,v3,v4,v5,v6,b,ind,ltij,lt,lvo REAL_E coefW,ro_old,u_old,v_old,w_old,t_old,nu_old,r_1,cvinv, & roe_old, cv, cvinv2, tab1,tab2,tab3,tab4,tab5,tab6, & rho,rhou,rhov,rhoe,anulam,temp01,cmus1,coesut,t1 @@ -46,6 +46,7 @@ C Var loc INTEGER_E b1,b2,b3,b4,b5,b6,b7,shift #include "FastS/formule_param.h" +#include "FastS/formule_mtr_param.h" @@ -96,7 +97,7 @@ c--------------------------------------------------------------------- If (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) @@ -119,11 +120,9 @@ c rop_1(l +v2) = (ro_old*u_old + tab2)*r_1 - !if (k==2 .and. j==8 .and. l-lij == 112 .and. ndom==0) - & !then - ! print*, 'ro= ', rop_1(l +v1) - !end if - +c if (k.eq.35.and.j.eq.35.and.l-lij.eq.24.and.ndom.eq.0) then +c write(*,*)'ro= ',rop_1(l +v1), tab1, drodm(l +v1),ro_old, nitcfg,l +c end if rop_1(l +v3) = (ro_old*v_old + tab3)*r_1 rop_1(l +v4) = (ro_old*w_old + tab4)*r_1 @@ -149,14 +148,14 @@ c ! print*, rop_1(l+v4) !end if -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) @@ -218,7 +217,7 @@ c !end if -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Endif @@ -231,7 +230,7 @@ c If (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) tab1 = drodm(l +v1)*r_1 @@ -273,11 +272,11 @@ c t_old = min(t_old,anulam) rop_1(l +v6) = max(t_old,0.) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) tab1 = drodm(l +v1)*r_1 @@ -315,7 +314,7 @@ c !rop_1(l +v6) = t_old rop_1(l +v6) = max(t_old,0.) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Endif! typezone diff --git a/Fast/FastS/FastS/Compute/core3ark3.for b/Fast/FastS/FastS/Compute/core3ark3.for index 8baa38e8..dda411e2 100644 --- a/Fast/FastS/FastS/Compute/core3ark3.for +++ b/Fast/FastS/FastS/Compute/core3ark3.for @@ -35,13 +35,13 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc - INTEGER_E incmax,l,i,j,k,lij,v1,v2,v3,v4,v5,v6,b,ind + INTEGER_E incmax,l,i,j,k,lij,v1,v2,v3,v4,v5,v6,b,ind,ltij,lt,lvo REAL_E coefW,ro_old,u_old,v_old,w_old,t_old,nu_old,r_1,cvinv, & roe_old, cv, cvinv2, tab1,tab2,tab3,tab4,tab5,tab6, & rho,rhou,rhov,rhoe,anulam,temp01,cmus1,coesut,t1 #include "FastS/formule_param.h" - +#include "FastS/formule_mtr_param.h" cv = param_real( CVINF) ! Cv cvinv = 1./cv @@ -109,7 +109,7 @@ c--------------------------------------------------------------------- If (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) tab1 = drodm(l +v1)*r_1 @@ -126,6 +126,11 @@ c rop_1(l +v1) = rop(l +v1) + tab1 + +c if(ndom.eq.0.and.l.eq.25788) +c & write(*,*)'mjr',drodm(l +v1),r_1,rop_1(l +v1),rop(l +v1) + + r_1 = 1./rop_1(l +v1) rop_1(l +v2) = (ro_old*u_old + tab2)*r_1 @@ -146,11 +151,11 @@ c & - cvinv2*( rop_1(l +v2)*rop_1(l +v2) & +rop_1(l +v3)*rop_1(l +v3) & +rop_1(l +v4)*rop_1(l +v4)) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) tab1 = drodm(l +v1)*r_1 @@ -177,7 +182,7 @@ c rop_1(l +v5) = ( roe_old + tab5 )*r_1*cvinv & - cvinv2*( rop_1(l +v2)*rop_1(l +v2) & +rop_1(l +v3)*rop_1(l +v3)) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Endif ELSE @@ -188,7 +193,7 @@ c If (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) tab1 = drodm(l +v1)*r_1 @@ -229,10 +234,10 @@ c t_old = (ro_old*nu_old + tab6)*r_1 t_old = min(t_old,anulam) rop_1(l +v6) = max(t_old,0.) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" r_1 = coefW*coe(l +v1) tab1 = drodm(l +v1)*r_1 @@ -269,7 +274,7 @@ c t_old = min(t_old,anulam) !rop_1(l +v6) = t_old rop_1(l +v6) = max(t_old,0.) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" Endif! typezone ENDIF! neq diff --git a/Fast/FastS/FastS/Compute/core3as2.for b/Fast/FastS/FastS/Compute/core3as2.for index 56c589ac..5583e7d9 100644 --- a/Fast/FastS/FastS/Compute/core3as2.for +++ b/Fast/FastS/FastS/Compute/core3as2.for @@ -27,10 +27,11 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc - INTEGER_E incmax,l,i,j,k,lij + INTEGER_E incmax,l,i,j,k,lij,ltij,lt,lvo REAL_E c1,c2,c3,c4,roe,roe_n,roe_n1,cv #include "FastS/formule_param.h" +#include "FastS/formule_mtr_param.h" cv = param_real( CVINF ) @@ -54,18 +55,18 @@ C Var loc if (param_int(ITYPZONE).ne.3) then if(param_int(DTLOC).eq.1) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) drodm(l,2)= coe(l,1)*drodm(l,2) drodm(l,3)= coe(l,1)*drodm(l,3) drodm(l,4)= coe(l,1)*drodm(l,4) - drodm(l,5)= coe(l,1)*drodm(l,5) + drodm(l,5)= coe(l,1)*drodm(l,5) drodm(l,6)= coe(l,1)*drodm(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c4*rop (l,1) & + c3*rop_n1(l,1) @@ -96,24 +97,24 @@ C Var loc drodm(l,6)= coe(l,1)*drodm(l,6) & + c4*rop (l,6)*rop (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif ! optim bdf1 else !dom 2d if(param_int(DTLOC).eq.1) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) drodm(l,2)= coe(l,1)*drodm(l,2) drodm(l,3)= coe(l,1)*drodm(l,3) - drodm(l,5)= coe(l,1)*drodm(l,5) - drodm(l,6)= coe(l,1)*drodm(l,6)*1.e0 -#include "FastS/Compute/loop_end.for" + drodm(l,5)= coe(l,1)*drodm(l,5) + drodm(l,6)= coe(l,1)*drodm(l,6) +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c4*rop (l,1) & + c3*rop_n1(l,1) @@ -139,14 +140,14 @@ C Var loc drodm(l,6)= coe(l,1)*drodm(l,6) & + c4*rop (l,6)*rop (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif ! optim bdf1 endif!2d/3d Else !nitcfg > 1 if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) & + c2*rop_n (l,1) @@ -187,11 +188,11 @@ C Var loc & + c1*rop (l,6)*rop (l,1) & + c2*rop_n (l,6)*rop_n (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) & + c2*rop_n (l,1) @@ -224,7 +225,7 @@ C Var loc & + c1*rop (l,6)*rop (l,1) & + c2*rop_n (l,6)*rop_n (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !2d/3d Endif !nitcfg=1 ou >1 @@ -236,7 +237,7 @@ C Var loc c4= c1+c2 !car ro(P+1)=ro(n) a la 1ere ss_iter if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c4*rop (l,1) & + c3*rop_n1(l,1) @@ -263,10 +264,10 @@ C Var loc & +rop_n1(l,4)*rop_n1(l,4))) drodm(l,5)= coe(l,1)*drodm(l,5) + c4*roe + c3*roe_n1 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c4*rop (l,1) & + c3*rop_n1(l,1) @@ -289,14 +290,14 @@ C Var loc & +rop_n1(l,3)*rop_n1(l,3))) drodm(l,5)= coe(l,1)*drodm(l,5) + c4*roe + c3*roe_n1 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d ELSE!nitcfg > ou = 1 if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) & + c2*rop_n (l,1) @@ -333,10 +334,10 @@ C Var loc & +rop_n1(l,4)*rop_n1(l,4))) drodm(l,5)= coe(l,1)*drodm(l,5)+ c1*roe +c2*roe_n +c3*roe_n1 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) & + c2*rop_n (l,1) @@ -364,7 +365,7 @@ C Var loc & +rop_n1(l,3)*rop_n1(l,3))) drodm(l,5)= coe(l,1)*drodm(l,5)+ c1*roe +c2*roe_n +c3*roe_n1 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif ENDIF!nitcfg diff --git a/Fast/FastS/FastS/Compute/core3as2_chim.for b/Fast/FastS/FastS/Compute/core3as2_chim.for index 07b33956..78e511fe 100644 --- a/Fast/FastS/FastS/Compute/core3as2_chim.for +++ b/Fast/FastS/FastS/Compute/core3as2_chim.for @@ -29,10 +29,11 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc - INTEGER_E incmax,l,i,j,k,lij + INTEGER_E incmax,l,i,j,k,lij,ltij,lt,lvo REAL_E c1,c2,c3,c4,roe,roe_n,roe_n1,cv,amor #include "FastS/formule_param.h" +#include "FastS/formule_mtr_param.h" cv = param_real( CVINF ) @@ -56,18 +57,18 @@ C Var loc if (param_int(ITYPZONE).ne.3) then if(param_int(DTLOC).eq.1) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) drodm(l,2)= coe(l,1)*drodm(l,2) drodm(l,3)= coe(l,1)*drodm(l,3) drodm(l,4)= coe(l,1)*drodm(l,4) drodm(l,5)= coe(l,1)*drodm(l,5) drodm(l,6)= coe(l,1)*drodm(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -100,23 +101,23 @@ C Var loc drodm(l,6)= coe(l,1)*drodm(l,6) & + ( c4*rop (l,6)*rop (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !optim bdf1 else !dom 2d if(param_int(DTLOC).eq.1) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) drodm(l,2)= coe(l,1)*drodm(l,2) drodm(l,3)= coe(l,1)*drodm(l,3) drodm(l,5)= coe(l,1)*drodm(l,5) drodm(l,6)= coe(l,1)*drodm(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -144,7 +145,7 @@ C Var loc drodm(l,6)= coe(l,1)*drodm(l,6) & + ( c4*rop (l,6)*rop (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !optim bdf1 endif!2d/3d @@ -152,7 +153,7 @@ C Var loc Else !nitcfg > 1 if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -196,11 +197,11 @@ C Var loc & + ( c1*rop (l,6)*rop (l,1) & + c2*rop_n (l,6)*rop_n (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -236,7 +237,7 @@ C Var loc & +(c1*rop (l,6)*rop (l,1) & + c2*rop_n (l,6)*rop_n (l,1) & + c3*rop_n1(l,6)*rop_n1(l,1) )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !2d/3d Endif !nitcfg=1 ou >1 @@ -249,7 +250,7 @@ C Var loc if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -278,11 +279,11 @@ C Var loc & +rop_n1(l,4)*rop_n1(l,4))) drodm(l,5)= coe(l,1)*drodm(l,5) +(c4*roe + c3*roe_n1 )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) @@ -308,7 +309,7 @@ C Var loc & +rop_n1(l,3)*rop_n1(l,3))) drodm(l,5)= coe(l,1)*drodm(l,5) +(c4*roe + c3*roe_n1 )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d @@ -316,7 +317,7 @@ C Var loc if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -356,11 +357,11 @@ C Var loc drodm(l,5)= coe(l,1)*drodm(l,5) & +(c1*roe +c2*roe_n +c3*roe_n1 )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -391,7 +392,7 @@ C Var loc drodm(l,5)= coe(l,1)*drodm(l,5) & +(c1*roe +c2*roe_n +c3*roe_n1 )*amor -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif ENDIF!nitcfg diff --git a/Fast/FastS/FastS/Compute/core3as2_chim_kry.for b/Fast/FastS/FastS/Compute/core3as2_chim_kry.for index 475e1415..b04e94d6 100644 --- a/Fast/FastS/FastS/Compute/core3as2_chim_kry.for +++ b/Fast/FastS/FastS/Compute/core3as2_chim_kry.for @@ -31,10 +31,11 @@ c*********************************************************************** REAL_E param_real(0:*),norm_kry C Var loc - INTEGER_E incmax,l,i,j,k,lij + INTEGER_E incmax,l,i,j,k,lij,ltij,lt,lvo REAL_E c1,c2,c3,c4,roe,roe_n,roe_n1,cv,amor #include "FastS/formule_param.h" +#include "FastS/formule_mtr_param.h" cv = param_real( CVINF ) @@ -58,7 +59,7 @@ C Var loc if (param_int(ITYPZONE).ne.3) then if(param_int(DTLOC).eq.1) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) drodm(l,2)= coe(l,1)*drodm(l,2) drodm(l,3)= coe(l,1)*drodm(l,3) @@ -78,11 +79,11 @@ C Var loc norm_kry = norm_kry + kry(l,5)*kry(l,5) kry(l,6) = drodm(l,6) norm_kry = norm_kry + kry(l,6)*kry(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -128,13 +129,13 @@ C Var loc norm_kry = norm_kry + kry(l,5)*kry(l,5) kry(l,6) = drodm(l,6) norm_kry = norm_kry + kry(l,6)*kry(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !optim bdf1 else !dom 2d if(param_int(DTLOC).eq.1) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l,1)= coe(l,1)*drodm(l,1) drodm(l,2)= coe(l,1)*drodm(l,2) drodm(l,3)= coe(l,1)*drodm(l,3) @@ -152,11 +153,11 @@ C Var loc norm_kry = norm_kry + kry(l,5)*kry(l,5) kry(l,6) = drodm(l,6) norm_kry = norm_kry + kry(l,6)*kry(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -196,7 +197,7 @@ C Var loc norm_kry = norm_kry + kry(l,5)*kry(l,5) kry(l,6) = drodm(l,6) norm_kry = norm_kry + kry(l,6)*kry(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !optim bdf1 endif!2d/3d @@ -204,7 +205,7 @@ C Var loc Else !nitcfg > 1 if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -261,11 +262,11 @@ C Var loc norm_kry = norm_kry + kry(l,5)*kry(l,5) kry(l,6) = drodm(l,6) norm_kry = norm_kry + kry(l,6)*kry(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -313,7 +314,7 @@ C Var loc norm_kry = norm_kry + kry(l,5)*kry(l,5) kry(l,6) = drodm(l,6) norm_kry = norm_kry + kry(l,6)*kry(l,6) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !2d/3d Endif !nitcfg=1 ou >1 @@ -326,7 +327,7 @@ C Var loc if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -366,11 +367,11 @@ C Var loc norm_kry = norm_kry + kry(l,4)*kry(l,4) kry(l,5) = drodm(l,5) norm_kry = norm_kry + kry(l,5)*kry(l,5) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) @@ -406,7 +407,7 @@ C Var loc kry(l,4) = 0. kry(l,5) = drodm(l,5) norm_kry = norm_kry + kry(l,5)*kry(l,5) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d @@ -414,7 +415,7 @@ C Var loc if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -465,11 +466,11 @@ C Var loc norm_kry = norm_kry + kry(l,4)*kry(l,4) kry(l,5) = drodm(l,5) norm_kry = norm_kry + kry(l,5)*kry(l,5) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_core_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" amor = MIN(cellN(l),2.-cellN(l)) drodm(l,1)= coe(l,1)*drodm(l,1) @@ -510,7 +511,7 @@ C Var loc kry(l,4) = 0. kry(l,5) = drodm(l,5) norm_kry = norm_kry + kry(l,5)*kry(l,5) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif ENDIF!nitcfg diff --git a/Fast/FastS/FastS/Compute/core3as2_def.for b/Fast/FastS/FastS/Compute/core3as2_def.for index abb4feac..982a087f 100644 --- a/Fast/FastS/FastS/Compute/core3as2_def.for +++ b/Fast/FastS/FastS/Compute/core3as2_def.for @@ -51,7 +51,7 @@ C Var loc IF(param_int(NEQ).eq.6) THEN if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" volinv = 1./vol(lvo) drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) @@ -95,11 +95,11 @@ C Var loc & + c1*rop (l,6)*rop (l,1) & + c2*rop_n (l,6)*rop_n (l,1)*voln(lvo)*volinv & + c3*rop_n1(l,6)*rop_n1(l,1)*volm(lvo)*volinv -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" volinv = 1./vol(lvo) drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) @@ -133,14 +133,14 @@ C Var loc & + c1*rop (l,6)*rop (l,1) & + c2*rop_n (l,6)*rop_n (l,1)*voln(lvo)*volinv & + c3*rop_n1(l,6)*rop_n1(l,1)*volm(lvo)*volinv -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !2d/3d ELSE !neq=5 if (param_int(ITYPZONE).ne.3) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" volinv = 1./vol(lvo) drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) @@ -178,10 +178,10 @@ C Var loc & +rop_n1(l,4)*rop_n1(l,4))) drodm(l,5)= coe(l,1)*drodm(l,5)+ c1*roe +c2*roe_n +c3*roe_n1 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !dom 2d -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" volinv = 1./vol(lvo) drodm(l,1)= coe(l,1)*drodm(l,1) & + c1*rop (l,1) @@ -210,7 +210,7 @@ C Var loc & +rop_n1(l,3)*rop_n1(l,3))) drodm(l,5)= coe(l,1)*drodm(l,5)+ c1*roe +c2*roe_n +c3*roe_n1 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif ENDIF!neq diff --git a/Fast/FastS/FastS/Compute/cpcfl3.for b/Fast/FastS/FastS/Compute/cpcfl3.for index efb280c4..f7cdda14 100644 --- a/Fast/FastS/FastS/Compute/cpcfl3.for +++ b/Fast/FastS/FastS/Compute/cpcfl3.for @@ -40,13 +40,14 @@ c********************************************************************** REAL_E cfl(3), param_real(0:*) C var local INTEGER_E l,ll,i,j,k,inci,incj,inck,lt,lij,ltij, - & lvij,lv,v2ven,v3ven,inci_ven, lvo + & lvij,lv,v2ven,v3ven,inci_ven, lvo, lx,lxij REAL_E xinvkt, u,v,w,r,ue,ve,we, & ur,vr,wr,ur2,ci_mtr,cj_mtr,ck_mtr,ck_vent,c_ale,rgp,gam2, & sp,c, xinvspc, vis, conv,comp, cfloc, u2,gam1, & ddi,ddj,ddk,surf,dt +#include "FastS/formule_xyz_param.h" #include "FastS/formule_mtr_param.h" #include "FastS/formule_vent_param.h" #include "FastS/formule_param.h" @@ -86,7 +87,7 @@ c******* NS unsteady ***** if(param_int(ITYPZONE).eq.0) then -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) @@ -136,11 +137,11 @@ c******* NS unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) @@ -183,7 +184,7 @@ c******* NS unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then @@ -191,16 +192,9 @@ c******* NS unsteady ***** ddj = 2.*sqrt( tj(1,1)*tj(1,1) ) ddk = 2.*sqrt( tk(1,1)*tk(1,1) ) surf= 1./max(ddi,ddj,ddk) + lvo = 1 - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - lij = inddm( ind_loop(1) , j, k) - lvij = lij- indven( ind_loop(1) , j, k) - lt = 1 - do l = lij, lij + ind_loop(2) - ind_loop(1) - - lv = l - lvij - lvo = 1 +#include "FastC/HPC_LAYER/loop3dcart_ale_begin.for" u = rop(l,2) v = rop(l,3) @@ -230,12 +224,11 @@ c******* NS unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" + else -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) @@ -273,7 +266,7 @@ c******* NS unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif @@ -285,7 +278,7 @@ c******* NS steady ***** if(param_int(ITYPZONE).eq.0) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) & +ti(lt+inci,3)*ti(lt+inci,3) ) @@ -327,13 +320,13 @@ c******* NS steady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) @@ -371,7 +364,7 @@ c******* NS steady ***** cfl(2) = min(cfl(2),cfloc) !cfl(2) = min(cfl(2),vis/conv) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" ! print*, 'cfl(3)= ', cfl(3) elseif(param_int(ITYPZONE).eq.2) then @@ -380,13 +373,9 @@ c******* NS steady ***** ddj = 2.*sqrt( tj(1,1)*tj(1,1) ) ddk = 2.*sqrt( tk(1,1)*tk(1,1) ) surf= 1./max(ddi,ddj,ddk) + lvo = 1 - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - lij = inddm( ind_loop(1) , j, k) - lt = 1 - lvo = 1 - do l = lij, lij + ind_loop(2) - ind_loop(1) +#include "FastC/HPC_LAYER/loop3dcart_begin.for" u = rop(l,2) v = rop(l,3) @@ -415,7 +404,7 @@ c******* NS steady ***** else -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) ddi =ddi+ sqrt( ti(lt,1)*ti(lt,1)+ti(lt,2)*ti(lt,2) ) @@ -446,7 +435,7 @@ c******* NS steady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif @@ -469,7 +458,7 @@ c******* Euler unsteady ***** if(param_int(ITYPZONE).eq.0) then -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) @@ -516,12 +505,12 @@ c******* Euler unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) @@ -561,7 +550,7 @@ c******* Euler unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then @@ -569,12 +558,9 @@ c******* Euler unsteady ***** ddj = 2.*sqrt( tj(1,1)*tj(1,1) ) ddk = 2.*sqrt( tk(1,1)*tk(1,1) ) surf= 1./max(ddi,ddj,ddk) + lvo = 1 - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - lij = inddm( ind_loop(1) , j, k) - lt = 1 - do l = lij, lij + ind_loop(2) - ind_loop(1) +#include "FastC/HPC_LAYER/loop3dcart_ale_begin.for" u = rop(l,2) v = rop(l,3) @@ -601,12 +587,11 @@ c******* Euler unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" + else -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) ddi =ddi+ sqrt( ti(lt,1)*ti(lt,1)+ti(lt,2)*ti(lt,2) ) @@ -641,7 +626,7 @@ c******* Euler unsteady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif @@ -653,7 +638,7 @@ c******* Euler steady ***** if(param_int(ITYPZONE).eq.0) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) & +ti(lt+inci,3)*ti(lt+inci,3) ) @@ -692,10 +677,10 @@ c******* Euler steady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) @@ -728,7 +713,7 @@ c******* Euler steady ***** cfl(1) = max(cfl(1),cfloc) cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then @@ -736,13 +721,10 @@ c******* Euler steady ***** ddj = 2.*sqrt( tj(1,1)*tj(1,1) ) ddk = 2.*sqrt( tk(1,1)*tk(1,1) ) surf= 1./max(ddi,ddj,ddk) + lt = 1 + lvo = 1 - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - lij = inddm( ind_loop(1) , j, k) - lt = 1 - lvo = 1 - do l = lij, lij + ind_loop(2) - ind_loop(1) +#include "FastC/HPC_LAYER/loop3dcart_begin.for" u = rop(l,2) v = rop(l,3) @@ -763,13 +745,11 @@ c******* Euler steady ***** cfl(2) = min(cfl(2),cfloc) cfl(3) = cfl(3) + cfloc - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" else -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" ddi =sqrt( ti(lt+inci,1)*ti(lt+inci,1) & +ti(lt+inci,2)*ti(lt+inci,2) ) ddi =ddi+ sqrt( ti(lt,1)*ti(lt,1)+ti(lt,2)*ti(lt,2) ) @@ -802,7 +782,7 @@ c******* Euler steady ***** cfl(3) = cfl(3) + cfloc !print*, cfloc -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" !print*, cfl(1), cfl(2), cfl(3) diff --git a/Fast/FastS/FastS/Compute/ibcsource.for b/Fast/FastS/FastS/Compute/ibcsource.for index 739e76ff..65bf9da8 100644 --- a/Fast/FastS/FastS/Compute/ibcsource.for +++ b/Fast/FastS/FastS/Compute/ibcsource.for @@ -58,9 +58,7 @@ C Var loc IF(param_int(NEQ).eq.5) THEN - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" rho = rop(l + v1) vu = rop(l + v2) @@ -79,17 +77,11 @@ C Var loc drodm(l +v3) = drodm(l +v3)+ vv*ampli drodm(l +v4) = drodm(l +v4)+ vw*ampli drodm(l +v5) = drodm(l +v5)+ q*ampli - - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" ELSE - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - +#include "FastC/HPC_LAYER/loop_begin.for" rho = rop(l + v1) vu = rop(l + v2) vv = rop(l + v3) @@ -108,11 +100,7 @@ C Var loc drodm(l +v4) = drodm(l +v4)+ vw*ampli drodm(l +v5) = drodm(l +v5)+ q*ampli drodm(l +v6) = drodm(l +v6)+ rop(l + v6)*ampli - - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" ENDIF end diff --git a/Fast/FastS/FastS/Compute/init_rhs.for b/Fast/FastS/FastS/Compute/init_rhs.for index 96cda772..659d1dcd 100644 --- a/Fast/FastS/FastS/Compute/init_rhs.for +++ b/Fast/FastS/FastS/Compute/init_rhs.for @@ -85,65 +85,44 @@ c*********************************************************************** IF(param_int(ITYPCP).le.1.or.nitcfg.eq.1) THEN if(neq.eq.5) then - - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= 0. drodm(l +ndimdx )= 0. drodm(l +ndimdx*2)= 0. drodm(l +ndimdx*3)= 0. drodm(l +ndimdx*4)= 0. - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" else - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= 0. drodm(l +ndimdx )= 0. drodm(l +ndimdx*2)= 0. drodm(l +ndimdx*3)= 0. drodm(l +ndimdx*4)= 0. drodm(l +ndimdx*5)= 0. - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" endif ELSE if(neq.eq.5) then - - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= drodm(l )*coefH drodm(l +ndimdx )= drodm(l +ndimdx )*coefH drodm(l +ndimdx*2)= drodm(l +ndimdx*2)*coefH drodm(l +ndimdx*3)= drodm(l +ndimdx*3)*coefH drodm(l +ndimdx*4)= drodm(l +ndimdx*4)*coefH - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" else - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= drodm(l )*coefH drodm(l +ndimdx )= drodm(l +ndimdx )*coefH drodm(l +ndimdx*2)= drodm(l +ndimdx*2)*coefH drodm(l +ndimdx*3)= drodm(l +ndimdx*3)*coefH drodm(l +ndimdx*4)= drodm(l +ndimdx*4)*coefH drodm(l +ndimdx*5)= drodm(l +ndimdx*5)*coefH - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" endif diff --git a/Fast/FastS/FastS/Compute/init_rhs_dtloc.for b/Fast/FastS/FastS/Compute/init_rhs_dtloc.for index 1b3d8f0b..2c47c06b 100644 --- a/Fast/FastS/FastS/Compute/init_rhs_dtloc.for +++ b/Fast/FastS/FastS/Compute/init_rhs_dtloc.for @@ -78,89 +78,47 @@ c***************************************************************************** IF(param_int(ITYPCP).le.1.or.nitcfg.eq.1) THEN - if(neq.eq.5) then - - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= 0. drodm(l +ndimdx )= 0. drodm(l +ndimdx*2)= 0. drodm(l +ndimdx*3)= 0. drodm(l +ndimdx*4)= 0. - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" else - - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= 0. drodm(l +ndimdx )= 0. drodm(l +ndimdx*2)= 0. drodm(l +ndimdx*3)= 0. drodm(l +ndimdx*4)= 0. drodm(l +ndimdx*5)= 0. - enddo - enddo - enddo - - - +#include "FastC/HPC_LAYER/loop_end.for" endif - ELSE if(neq.eq.5) then - - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - - +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= drodm(l )*coefH drodm(l +ndimdx )= drodm(l +ndimdx )*coefH drodm(l +ndimdx*2)= drodm(l +ndimdx*2)*coefH drodm(l +ndimdx*3)= drodm(l +ndimdx*3)*coefH drodm(l +ndimdx*4)= drodm(l +ndimdx*4)*coefH - - !if (j==50 ) then - ! print*, drodm(l), ndom - !end if - - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" else - - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" drodm(l )= drodm(l )*coefH drodm(l +ndimdx )= drodm(l +ndimdx )*coefH drodm(l +ndimdx*2)= drodm(l +ndimdx*2)*coefH drodm(l +ndimdx*3)= drodm(l +ndimdx*3)*coefH drodm(l +ndimdx*4)= drodm(l +ndimdx*4)*coefH drodm(l +ndimdx*5)= drodm(l +ndimdx*5)*coefH - enddo - enddo - enddo - +#include "FastC/HPC_LAYER/loop_end.for" endif - ENDIF - - - - - - end diff --git a/Fast/FastS/FastS/Compute/invist.for b/Fast/FastS/FastS/Compute/invist.for index 0643d898..006daeda 100644 --- a/Fast/FastS/FastS/Compute/invist.for +++ b/Fast/FastS/FastS/Compute/invist.for @@ -54,26 +54,11 @@ c Var loc !write(*,*)'visc', param_real(VISCO+2), cmus1,temp01 -#ifndef E_SCALAR_COMPUTER -CDIR$ IVDEP -!CDIR NODEP -CVD$ NODEPCHK - do l=1,param_int(NDIMDX) -#else - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#endif +#include "FastC/HPC_LAYER/loop_begin.for" -#include "FastS/Compute/loopI_begin.for" t1 = rop(l + v5) xmut(l)= coesut * sqrt(t1)*t1/(t1+cmus1) -#ifndef E_SCALAR_COMPUTER - enddo -#else - enddo - enddo - enddo -#endif +#include "FastC/HPC_LAYER/loop_end.for" end diff --git a/Fast/FastS/FastS/Compute/tstb3_expli.for b/Fast/FastS/FastS/Compute/tstb3_expli.for index 772184d4..9598a245 100644 --- a/Fast/FastS/FastS/Compute/tstb3_expli.for +++ b/Fast/FastS/FastS/Compute/tstb3_expli.for @@ -40,12 +40,13 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc INTEGER_E inci_mtr,incj_mtr,inck_mtr,li,lj,lk,l,i,j,k,lij, - & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo + & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo, lx, lxij REAL_E tcxi,tcyi,tczi,tc2i,tcxj,tcyj,tczj,tc2j,tcxk,tcyk,tczk, & tc2k,vmu,volu,xmvis,r,u,v,w,c,qni,vmi,cni,qnj,cnj,vmj,qnk, & cnk,vmk,ue,ve,we,gam1,gam2,detj, gamma, prandt,Cut0x,rgp, & gam1_1,d, dt,dtvis,dtconv, sp,ck_vent +#include "FastS/formule_xyz_param.h" #include "FastS/formule_mtr_param.h" #include "FastS/formule_vent_param.h" #include "FastS/formule_param.h" @@ -74,7 +75,7 @@ C Var loc if(param_int(ITYPZONE).eq.0) then !domaine 3d general -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -114,13 +115,13 @@ C Var loc & + tk(lk,3)*tk(lk,3) ) ) #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -153,7 +154,7 @@ C Var loc #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -169,7 +170,7 @@ C Var loc tc2k = sqrt( tczk*tczk ) detj = max(vol(lvo),cut0x) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #ifndef E_SCALAR_COMPUTER r = max(rop(l ,1),cut0x) @@ -183,12 +184,12 @@ C Var loc #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !maillage fixe, 2d -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -217,7 +218,7 @@ C Var loc w = 0. #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !maillage fixe, 2d ou 3d ou 3d homogene @@ -236,7 +237,7 @@ C Var loc if(param_int(ITYPZONE).eq.0) then !domaine 3d general -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -281,11 +282,11 @@ C Var loc & + tk(lk,3)*tk(lk,3) ) ) #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -321,7 +322,7 @@ C Var loc tc2k = sqrt( tk(lt,1)*tk(lt,1)) #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -336,16 +337,7 @@ C Var loc tc2k = sqrt( tczk*tczk ) detj = max(vol(lvo),cut0x) - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - - lij = inddm(ind_loop(1) , j, k) - lvij = lij - indven(ind_loop(1) , j, k) - -CDIR$ IVDEP - do l = lij, lij + ind_loop(2) - ind_loop(1) - - lv = l-lvij +#include "FastC/HPC_LAYER/loop3dcart_ale_begin.for" !-Vitesse entrainement moyenne au centre de la cellule (maillage indeformable) ue=.5*(venti(lv )+venti(lv+inci_ven )) @@ -365,14 +357,12 @@ CDIR$ IVDEP #include "FastS/Compute/dtloc.for" - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" else !maillage mobile, 2d -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -404,7 +394,7 @@ CDIR$ IVDEP w = 0. #include "FastS/Compute/dtloc.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d/3d homogene diff --git a/Fast/FastS/FastS/Compute/tstb3_expli_chimer.for b/Fast/FastS/FastS/Compute/tstb3_expli_chimer.for index abfa04b8..104d8c8c 100644 --- a/Fast/FastS/FastS/Compute/tstb3_expli_chimer.for +++ b/Fast/FastS/FastS/Compute/tstb3_expli_chimer.for @@ -40,12 +40,13 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc INTEGER_E inci_mtr,incj_mtr,inck_mtr,li,lj,lk,l,i,j,k,lij, - & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo + & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo,lx,lxij REAL_E tcxi,tcyi,tczi,tc2i,tcxj,tcyj,tczj,tc2j,tcxk,tcyk,tczk, & tc2k,vmu,volu,xmvis,r,u,v,w,c,xid,qni,vmi,cni,qnj,cnj,vmj,qnk, & cnk,vmk,ue,ve,we,gam1,gam2,detj, gamma, prandt,Cut0x,rgp, & gam1_1,d, dt,dtvis,dtconv, sp,ck_vent +#include "FastS/formule_xyz_param.h" #include "FastS/formule_mtr_param.h" #include "FastS/formule_vent_param.h" #include "FastS/formule_param.h" @@ -72,7 +73,7 @@ C Var loc if(param_int(ITYPZONE).eq.0) then !domaine 3d general -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -112,12 +113,12 @@ C Var loc & + tk(lk,3)*tk(lk,3) ) ) #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -150,7 +151,7 @@ C Var loc #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -166,7 +167,7 @@ C Var loc tc2k = sqrt( tczk*tczk ) detj = max(vol(lvo),cut0x) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #ifndef E_SCALAR_COMPUTER r = max(rop(l ,1),cut0x) @@ -180,12 +181,12 @@ C Var loc #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !maillage fixe, 2d -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -214,7 +215,7 @@ C Var loc w = 0. #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !maillage fixe, 2d ou 3d ou 3d homogene @@ -232,7 +233,7 @@ C Var loc if(param_int(ITYPZONE).eq.0) then !domaine 3d general -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -277,11 +278,11 @@ C Var loc & + tk(lk,3)*tk(lk,3) ) ) #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -317,7 +318,7 @@ C Var loc tc2k = sqrt( tk(lt,1)*tk(lt,1)) #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -332,16 +333,8 @@ C Var loc tc2k = sqrt( tczk*tczk ) detj = max(vol(lvo),cut0x) - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) +#include "FastC/HPC_LAYER/loop3dcart_ale_begin.for" - lij = inddm(ind_loop(1) , j, k) - lvij = lij - indven(ind_loop(1) , j, k) - -CDIR$ IVDEP - do l = lij, lij + ind_loop(2) - ind_loop(1) - - lv = l-lvij !-Vitesse entrainement moyenne au centre de la cellule (maillage indeformable) ue=.5*(venti(lv )+venti(lv+inci_ven )) ve=.5*(venti(lv+v2ven)+venti(lv+inci_ven+v2ven)) @@ -359,13 +352,12 @@ CDIR$ IVDEP c=sqrt(gam2*rop(l,5)) #include "FastS/Compute/dtloc_chimera.for" - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" + else !maillage mobile, 2d -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -397,7 +389,7 @@ CDIR$ IVDEP w = 0. #include "FastS/Compute/dtloc_chimera.for" -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d/3d homogene diff --git a/Fast/FastS/FastS/Compute/tstb3_impli.for b/Fast/FastS/FastS/Compute/tstb3_impli.for index b8076d44..2911c7b9 100644 --- a/Fast/FastS/FastS/Compute/tstb3_impli.for +++ b/Fast/FastS/FastS/Compute/tstb3_impli.for @@ -40,13 +40,14 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc INTEGER_E inci_mtr,incj_mtr,inck_mtr,li,lj,lk,l,i,j,k,lij, - & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo + & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo, lx,lxij REAL_E tcxi,tcyi,tczi,tc2i,tcxj,tcyj,tczj,tc2j,tcxk,tcyk,tczk, & tc2k,vmu,volu,xmvis,r,u,v,w,c,xid,qni,vmi,cni,qnj,cnj,vmj,qnk, & cnk,vmk,ue,ve,we,gam1,gam2,detj, gamma, prandt,Cut0x,rgp, & gam1_1,d, dt,dtvis,dtconv, sp,ck_vent +#include "FastS/formule_xyz_param.h" #include "FastS/formule_mtr_param.h" #include "FastS/formule_vent_param.h" #include "FastS/formule_param.h" @@ -78,7 +79,7 @@ C Var loc !!coe(2-4) impli pas utiliser dans la suite du cache blocking !! CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -168,13 +169,13 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -249,7 +250,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -266,7 +267,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) detj = max(vol(lvo),cut0x) CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #ifndef E_SCALAR_COMPUTER r = max(rop(l ,1),cut0x) @@ -307,13 +308,13 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !maillage fixe, 2d CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -374,7 +375,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !maillage fixe, 2d ou 3d ou 3d homogene @@ -393,7 +394,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) if(param_int(ITYPZONE).eq.0) then !domaine 3d general CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -486,12 +487,12 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -571,7 +572,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -587,16 +588,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) detj = max(vol(lvo),cut0x) CDIR$ VECTOR NONTEMPORAL (coe) - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - - lij = inddm(ind_loop(1) , j, k) - lvij = lij - indven(ind_loop(1) , j, k) - -CDIR$ IVDEP - do l = lij, lij + ind_loop(2) - ind_loop(1) - - lv = l-lvij +#include "FastC/HPC_LAYER/loop_ale_begin.for" !-Vitesse entrainement moyenne au centre de la cellule (maillage indeformable) ue=.5*(venti(lv )+venti(lv+inci_ven )) @@ -643,15 +635,13 @@ CDIR$ IVDEP !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" else !maillage mobile, 2d CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -716,7 +706,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d/3d homogene diff --git a/Fast/FastS/FastS/Compute/tstb3_impli_chimer.for b/Fast/FastS/FastS/Compute/tstb3_impli_chimer.for index 49840687..a0380024 100644 --- a/Fast/FastS/FastS/Compute/tstb3_impli_chimer.for +++ b/Fast/FastS/FastS/Compute/tstb3_impli_chimer.for @@ -40,13 +40,14 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc INTEGER_E inci_mtr,incj_mtr,inck_mtr,li,lj,lk,l,i,j,k,lij, - & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo + & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo, lx, lxij REAL_E tcxi,tcyi,tczi,tc2i,tcxj,tcyj,tczj,tc2j,tcxk,tcyk,tczk, & tc2k,vmu,volu,xmvis,r,u,v,w,c,xid,qni,vmi,cni,qnj,cnj,vmj,qnk, & cnk,vmk,ue,ve,we,gam1,gam2,detj, gamma, prandt,Cut0x,rgp, & gam1_1,d, dt,dtvis,dtconv, sp,ck_vent +#include "FastS/formule_xyz_param.h" #include "FastS/formule_mtr_param.h" #include "FastS/formule_vent_param.h" #include "FastS/formule_param.h" @@ -76,7 +77,7 @@ C Var loc if(param_int(ITYPZONE).eq.0) then !domaine 3d general CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -166,13 +167,13 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -247,7 +248,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -264,7 +265,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) detj = max(vol(lvo),cut0x) CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" #ifndef E_SCALAR_COMPUTER r = max(rop(l ,1),cut0x) @@ -304,13 +305,13 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" else !maillage fixe, 2d CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -371,7 +372,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif !maillage fixe, 2d ou 3d ou 3d homogene @@ -390,7 +391,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) if(param_int(ITYPZONE).eq.0) then !domaine 3d general CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -483,12 +484,12 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -568,7 +569,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -584,16 +585,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) detj = max(vol(lvo),cut0x) CDIR$ VECTOR NONTEMPORAL (coe) - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - - lij = inddm(ind_loop(1) , j, k) - lvij = lij - indven(ind_loop(1) , j, k) - -CDIR$ IVDEP - do l = lij, lij + ind_loop(2) - ind_loop(1) - - lv = l-lvij +#include "FastC/HPC_LAYER/loop3dcart_ale_begin.for" !-Vitesse entrainement moyenne au centre de la cellule (maillage indeformable) ue=.5*(venti(lv )+venti(lv+inci_ven )) @@ -639,15 +631,13 @@ CDIR$ IVDEP !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" else !maillage mobile, 2d CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -712,7 +702,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid+ coe(l,1)*(coe(l,2)+coe(l,3))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif!2d/3d/3d homogene diff --git a/Fast/FastS/FastS/Compute/tstb3c.for b/Fast/FastS/FastS/Compute/tstb3c.for index ab0c0934..e7d55733 100644 --- a/Fast/FastS/FastS/Compute/tstb3c.for +++ b/Fast/FastS/FastS/Compute/tstb3c.for @@ -39,11 +39,12 @@ c*********************************************************************** REAL_E param_real(0:*) C Var loc INTEGER_E inci_mtr,incj_mtr,inck_mtr,li,lj,lk,l,i,j,k,lij, - & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo + & lt, ltij,lvij,lv,v2ven,v3ven,inci_ven, lvo, lx,lxij REAL_E tcxi,tcyi,tczi,tc2i,tcxj,tcyj,tczj,tc2j,tcxk,tcyk,tczk, & tc2k,vmu,volu,xmvis,r,u,v,w,c,xid,qni,vmi,cni,qnj,cnj,vmj,qnk, & cnk,vmk,ue,ve,we,gam1,gam2,detj, gamma, prandt,Cut0x,rgp,ck_vent +#include "FastS/formule_xyz_param.h" #include "FastS/formule_mtr_param.h" #include "FastS/formule_vent_param.h" #include "FastS/formule_param.h" @@ -76,7 +77,7 @@ C Var loc if(param_int(ITYPZONE).eq.0) then !domaine 3d general CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -169,17 +170,17 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -252,11 +253,11 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -271,22 +272,11 @@ CDIR$ VECTOR NONTEMPORAL (coe) tc2j = sqrt( tcyj*tcyj ) tc2k = sqrt( tczk*tczk ) - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - - lij = inddm(ind_loop(1) , j, k) - CDIR$ VECTOR NONTEMPORAL (coe) -CDIR$ IVDEP - do l = lij, lij + ind_loop(2) - ind_loop(1) +#include "FastC/HPC_LAYER/loop3dcart_begin.for" -#ifndef E_SCALAR_COMPUTER - r = max(rop(l ,1),cut0x) - detj= max(vol(lvo),cut0x) -#else r = rop(l ,1) detj= max(vol(lvo),cut0x) -#endif u=rop(l,2) v=rop(l,3) w=rop(l,4) @@ -320,22 +310,18 @@ CDIR$ IVDEP !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -c coe(l,5)= xid + coe(l,1)*( vmi + vmj + vmk -c & + 2.*xmvis*(tc2i*tc2i+tc2j*tc2j+tc2k*tc2k)) +#include "FastC/HPC_LAYER/loop_end.for" - enddo - enddo - enddo if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif else !maillage fixe, 2d CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -391,11 +377,11 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif endif !maillage fixe, 2d ou 3d ou 3d homogene @@ -415,7 +401,7 @@ CDIR$ VECTOR NONTEMPORAL (coe) if(param_int(ITYPZONE).eq.0) then !domaine 3d general CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -506,17 +492,17 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif elseif(param_int(ITYPZONE).eq.1) then !maillage 3d k homogene: CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr lk = lt + inck_mtr @@ -594,11 +580,11 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif elseif(param_int(ITYPZONE).eq.2) then !maillage 3d cartesien: @@ -613,16 +599,8 @@ CDIR$ VECTOR NONTEMPORAL (coe) tc2j = sqrt( tcyj*tcyj ) tc2k = sqrt( tczk*tczk ) - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) - - lij = inddm(ind_loop(1) , j, k) - lvij = lij - indven(ind_loop(1) , j, k) - -CDIR$ IVDEP - do l = lij, lij + ind_loop(2) - ind_loop(1) +#include "FastC/HPC_LAYER/loop3dcart_ale_begin.for" - lv = l-lvij !-Vitesse entrainement moyenne au centre de la cellule (maillage indeformable) ue=.5*(venti(lv )+venti(lv+inci_ven )) ve=.5*(venti(lv+v2ven)+venti(lv+inci_ven+v2ven)) @@ -667,21 +645,19 @@ CDIR$ IVDEP !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3)+coe(l,4))*0.5 +#include "FastC/HPC_LAYER/loop_end.for" - enddo - enddo - enddo if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif else !maillage mobile, 2d CDIR$ VECTOR NONTEMPORAL (coe) -#include "FastS/Compute/loop_ale_begin.for" +#include "FastC/HPC_LAYER/loop_ale_begin.for" li = lt + inci_mtr lj = lt + incj_mtr @@ -742,11 +718,11 @@ CDIR$ VECTOR NONTEMPORAL (coe) !Evaluation de la diagonale princi_mtrpale scalaire (5*5) pour la cellule l !Id+Partie convective precedente+Partie visqueuse coe(l,5)=xid + coe(l,1)*(coe(l,2)+coe(l,3))*0.5 -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" if(param_int(SRC).eq.2) then -#include "FastS/Compute/loop_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" coe(l,5)=coe(l,5) + ro_src(l,6)*param_real(NUDGING_EQ2) -#include "FastS/Compute/loop_end.for" +#include "FastC/HPC_LAYER/loop_end.for" endif endif!2d/3d/3d homogene diff --git a/Fast/FastS/FastS/Compute/update_src.for b/Fast/FastS/FastS/Compute/update_src.for index 39fbb9ef..7dea182b 100644 --- a/Fast/FastS/FastS/Compute/update_src.for +++ b/Fast/FastS/FastS/Compute/update_src.for @@ -60,9 +60,7 @@ C Var loc IF(param_int(SRC).eq.1) THEN If(param_int(NEQ).eq.6) Then - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" !vol_dt = 1./max(coe(l+v1),1.e-15) !vol_dt = vol(lvo) @@ -74,22 +72,15 @@ C Var loc drodm(l+v4)= drodm( l +v4) + ro_src( l +v4) *vol_dt drodm(l+v5)= drodm( l +v5) + ro_src( l +v5) *vol_dt drodm(l+v6)= drodm( l +v6) + ro_src( l +v6) *vol_dt - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" Else - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" - - drodm(l +v1)= drodm(l +v1) + ro_src(l +v1) - drodm(l +v2)= drodm(l +v2) + ro_src(l +v2) - drodm(l +v3)= drodm(l +v3) + ro_src(l +v3) - drodm(l +v4)= drodm(l +v4) + ro_src(l +v4) - drodm(l +v5)= drodm(l +v5) + ro_src(l +v5) - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_begin.for" + drodm(l +v1)= drodm(l +v1) + ro_src(l +v1) + drodm(l +v2)= drodm(l +v2) + ro_src(l +v2) + drodm(l +v3)= drodm(l +v3) + ro_src(l +v3) + drodm(l +v4)= drodm(l +v4) + ro_src(l +v4) + drodm(l +v5)= drodm(l +v5) + ro_src(l +v5) +#include "FastC/HPC_LAYER/loop_end.for" Endif ELSE @@ -100,9 +91,7 @@ C Var loc !ro_src( l +v2): VelocityX_target !ro_src( l +v5): Temperature_target !ro_src( l +v6): nutildeSA_target - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" vol_dt = 1./max(coe(l+v1),1.e-15) !vol_dt = vol(lvo) @@ -136,13 +125,9 @@ C Var loc & *(ro_src( l +v6)-rop(l+v6) ) & *param_real(NUDGING_EQ6) & *rop(l+v1) - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" Else - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" vol_dt = 1./max(coe(l+v1),1.e-15) !vol_dt = param_real(NUDGING_AMPLI)/max(coe(l+v1),1.e-15) @@ -173,9 +158,8 @@ C Var loc & *(ec_tg-ec) & *param_real(NUDGING_EQ5) & *rop(l+v1) - enddo - enddo - enddo +#include "FastC/HPC_LAYER/loop_end.for" + Endif!Neq ENDIF! source =1 ou 2 diff --git a/Fast/FastS/FastS/Compute/visco_sponge.for b/Fast/FastS/FastS/Compute/visco_sponge.for index 4b53e284..e4c58d94 100644 --- a/Fast/FastS/FastS/Compute/visco_sponge.for +++ b/Fast/FastS/FastS/Compute/visco_sponge.for @@ -46,24 +46,9 @@ c Var loc if(ind_loop(3).gt.ind_loop(4)) return if(ind_loop(5).gt.ind_loop(6)) return -#ifndef E_SCALAR_COMPUTER -CDIR$ IVDEP -!CDIR NODEP -CVD$ NODEPCHK - do l=1,param_int(NDIMDX) -#else - do k = ind_loop(5), ind_loop(6) - do j = ind_loop(3), ind_loop(4) -#endif -#include "FastS/Compute/loopI_begin.for" +#include "FastC/HPC_LAYER/loop_begin.for" xmut(l)= xmut(l) * corr_factor(l) -#ifndef E_SCALAR_COMPUTER - enddo -#else - enddo - enddo - enddo -#endif +#include "FastC/HPC_LAYER/loop_end.for" end