From a55642789484b19c1d08eb6df8569d80581e1af8 Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Mon, 4 Oct 2021 09:35:47 +0200 Subject: [PATCH] writing simplification --- src/advance_field.F90 | 64 +++++++++++++++-------------------------- src/initial_par_mod.F90 | 2 +- src/model_mod.F90 | 2 -- 3 files changed, 24 insertions(+), 44 deletions(-) diff --git a/src/advance_field.F90 b/src/advance_field.F90 index 77c8b760..9b7f7938 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 de90b696..30a161f9 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 7ea6600d..b89be50b 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 -- GitLab