diff --git a/src/advance_field.F90 b/src/advance_field.F90 index 77c8b76043c38fadc0f1913f2a1239cd20022906..9b7f7938abebb8a3b4a608793f50ed9749385e1b 100644 --- a/src/advance_field.F90 +++ b/src/advance_field.F90 @@ -24,35 +24,16 @@ CONTAINS use array, ONLY: moments_rhs_e, moments_rhs_i IMPLICIT NONE - INTEGER :: istage - ! Execution time start - CALL cpu_time(t0_adv_field) - SELECT CASE (updatetlevel) - CASE(1) - DO istage=1,ntimelevel - moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,1) = moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,1) & - + dt*b_E(istage)*moments_rhs_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,istage) - END DO - ! Advance ions - DO istage=1,ntimelevel - moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,1) = moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,1) & - + dt*b_E(istage)*moments_rhs_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,istage) - END DO - - CASE DEFAULT - ! Advance electrons - moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,updatetlevel) = moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,1); - DO istage=1,updatetlevel-1 - moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,updatetlevel) = moments_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,updatetlevel) & - + dt*A_E(updatetlevel,istage)*moments_rhs_e(ips_e:ipe_e,ijs_e:ije_e,:,:,:,istage) - END DO - ! Advance ions - moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,updatetlevel) = moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,1); - DO istage=1,updatetlevel-1 - moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,updatetlevel) = moments_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,updatetlevel) & - + dt*A_E(updatetlevel,istage)*moments_rhs_i(ips_i:ipe_i,ijs_i:ije_i,:,:,:,istage) - END DO - END SELECT + DO ip=ips_i,ipe_i + DO ij=ijs_i,ije_i + CALL advance_field(moments_i(ip,ij,:,:,:,:), moments_rhs_i(ip,ij,:,:,:,:)) + ENDDO + ENDDO + DO ip=ips_e,ipe_e + DO ij=ijs_e,ije_e + CALL advance_field(moments_e(ip,ij,:,:,:,:), moments_rhs_e(ip,ij,:,:,:,:)) + ENDDO + ENDDO ! Execution time end CALL cpu_time(t1_adv_field) tc_adv_field = tc_adv_field + (t1_adv_field - t0_adv_field) @@ -66,6 +47,7 @@ CONTAINS USE array USE grid use prec_const + use initial_par, ONLY: WIPE_ZF IMPLICIT NONE COMPLEX(dp), DIMENSION ( ikxs:ikxe, ikys:ikye, izs:ize, ntimelevel ) :: f @@ -75,25 +57,25 @@ CONTAINS SELECT CASE (updatetlevel) CASE(1) DO iky=ikys,ikye - DO ikx=ikxs,ikxe - DO iz=izs,ize - DO istage=1,ntimelevel - f(ikx,iky,iz,1) = f(ikx,iky,iz,1) + dt*b_E(istage)*f_rhs(ikx,iky,iz,istage) + DO ikx=ikxs,ikxe + DO iz=izs,ize + DO istage=1,ntimelevel + f(ikx,iky,iz,1) = f(ikx,iky,iz,1) + dt*b_E(istage)*f_rhs(ikx,iky,iz,istage) + END DO END DO END DO - END DO END DO CASE DEFAULT DO iky=ikys,ikye - DO ikx=ikxs,ikxe - DO iz=izs,ize - f(ikx,iky,iz,updatetlevel) = f(ikx,iky,iz,1); - DO istage=1,updatetlevel-1 - f(ikx,iky,iz,updatetlevel) = f(ikx,iky,iz,updatetlevel) + & - dt*A_E(updatetlevel,istage)*f_rhs(ikx,iky,iz,istage) + DO ikx=ikxs,ikxe + DO iz=izs,ize + f(ikx,iky,iz,updatetlevel) = f(ikx,iky,iz,1); + DO istage=1,updatetlevel-1 + f(ikx,iky,iz,updatetlevel) = f(ikx,iky,iz,updatetlevel) + & + dt*A_E(updatetlevel,istage)*f_rhs(ikx,iky,iz,istage) + END DO END DO END DO - END DO END DO END SELECT END SUBROUTINE advance_field diff --git a/src/initial_par_mod.F90 b/src/initial_par_mod.F90 index de90b696b7ad4bbd51dfc58b409195049060b78d..30a161f9bebd3472908f17668365f6461f6fb12d 100644 --- a/src/initial_par_mod.F90 +++ b/src/initial_par_mod.F90 @@ -10,7 +10,7 @@ MODULE initial_par ! Initialization through a zonal flow phi INTEGER, PUBLIC, PROTECTED :: INIT_ZF = 0 REAL(DP), PUBLIC, PROTECTED :: ZF_AMP = 1E+3_dp - ! Wipe zonal flow in the restart (=1) or at each step (=2) + ! Wipe zonal flow in the restart (=1) or at each step (=2), maintain (=-1) INTEGER, PUBLIC, PROTECTED :: WIPE_ZF = 0 ! Wipe turbulence in the restart (=1) or at each step (=2) INTEGER, PUBLIC, PROTECTED :: WIPE_TURB = 0 diff --git a/src/model_mod.F90 b/src/model_mod.F90 index 7ea6600d649955c35a3886e1075cc9a61381fe33..b89be50bc62e4b990bfae1ca82b4fbbbdf44e244 100644 --- a/src/model_mod.F90 +++ b/src/model_mod.F90 @@ -39,8 +39,6 @@ MODULE model REAL(dp), PUBLIC, PROTECTED :: nu_ee, nu_ie ! e-e, i-e coll. frequ. REAL(dp), PUBLIC, PROTECTED :: qe2_taue, qi2_taui ! factor of the gammaD sum - REAL(dp), PUBLIC, PROTECTED :: INV_LIN_SYS = 1._dp ! Invert the sign of the linear RHS (for measuring damped eigenvalues) - PUBLIC :: model_readinputs, model_outputinputs CONTAINS