diff --git a/src/grid_mod.F90 b/src/grid_mod.F90 index 87bd26c0da636c0dd0745749898fcdc0ff0610dd..38d492977519317f1761855c9532de0fbbacefb4 100644 --- a/src/grid_mod.F90 +++ b/src/grid_mod.F90 @@ -45,6 +45,8 @@ MODULE grid ! local z weights for computing simpson rule INTEGER, DIMENSION(:), ALLOCATABLE, PUBLIC :: zweights_SR REAL(dp), PUBLIC, PROTECTED :: deltax, deltay, deltaz, inv_deltaz + REAL(dp), PUBLIC, PROTECTED :: diff_pe_coeff, diff_je_coeff + REAL(dp), PUBLIC, PROTECTED :: diff_pi_coeff, diff_ji_coeff REAL(dp), PUBLIC, PROTECTED :: diff_kx_coeff, diff_ky_coeff, diff_dz_coeff INTEGER, PUBLIC, PROTECTED :: ixs, ixe, iys, iye, izs, ize INTEGER, PUBLIC, PROTECTED :: izgs, izge ! ghosts @@ -241,8 +243,10 @@ CONTAINS IF(((ips_e .EQ. ip0_e) .OR. (ips_i .EQ. ip0_e)) .AND. ((ipe_e .LT. ip2_e) .OR. (ipe_i .LT. ip2_i)))& WRITE(*,*) "Warning : distribution along p may not work with DGGK" ! Precomputations - pmaxe_dp = real(pmaxe,dp) - pmaxi_dp = real(pmaxi,dp) + pmaxe_dp = real(pmaxe,dp) + pmaxi_dp = real(pmaxi,dp) + diff_pe_coeff = (1._dp/pmaxe_dp)**4 + diff_pi_coeff = (1._dp/pmaxi_dp)**4 ! Overwrite SOLVE_AMPERE flag if beta is zero IF(beta .EQ. 0._dp) THEN @@ -280,6 +284,9 @@ CONTAINS maxj = MAX(jmaxi, jmaxe) jmaxe_dp = real(jmaxe,dp) jmaxi_dp = real(jmaxi,dp) + diff_je_coeff = (1._dp/jmaxe_dp)**4 + diff_ji_coeff = (1._dp/jmaxi_dp)**4 + ! j=0 indices DO ij = ijs_e,ije_e; IF(jarray_e(ij) .EQ. 0) ij0_e = ij; END DO DO ij = ijs_i,ije_i; IF(jarray_i(ij) .EQ. 0) ij0_i = ij; END DO @@ -563,7 +570,7 @@ CONTAINS contains_zmin = .TRUE. IF(abs(zarray(ize,0) - zmax) .LT. EPSILON(zmax)) & contains_zmax = .TRUE. - ! Weitghs for Simpson rule + ! Weights for Simpson rule ALLOCATE(zweights_SR(izs:ize)) DO iz = izs,ize IF(MODULO(iz,2) .EQ. 1) THEN ! odd iz