From 4b618ae3eabcf7d6c5888f94836d88718843520a Mon Sep 17 00:00:00 2001 From: Antoine Hoffmann <antoine.hoffmann@epfl.ch> Date: Wed, 21 Sep 2022 12:01:12 +0200 Subject: [PATCH] flags for storing logical computations --- src/grid_mod.F90 | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/grid_mod.F90 b/src/grid_mod.F90 index 69a27e2b..9145c054 100644 --- a/src/grid_mod.F90 +++ b/src/grid_mod.F90 @@ -203,15 +203,11 @@ CONTAINS dsp_p_i(in+1) = istart-1 ENDDO - ! local grid computation - CONTAINS_ip0_e = .FALSE. - CONTAINS_ip1_e = .FALSE. - CONTAINS_ip2_e = .FALSE. - CONTAINS_ip0_i = .FALSE. - CONTAINS_ip1_i = .FALSE. - CONTAINS_ip2_i = .FALSE. - SOLVE_POISSON = .FALSE. - SOLVE_AMPERE = .FALSE. + !! local grid computations + ! Flag to avoid unnecessary logical operations + CONTAINS_ip0_e = .FALSE.; CONTAINS_ip1_e = .FALSE.; CONTAINS_ip2_e = .FALSE. + CONTAINS_ip0_i = .FALSE.; CONTAINS_ip1_i = .FALSE.; CONTAINS_ip2_i = .FALSE. + SOLVE_POISSON = .FALSE.; SOLVE_AMPERE = .FALSE. ALLOCATE(parray_e(ipgs_e:ipge_e)) ALLOCATE(parray_i(ipgs_i:ipge_i)) DO ip = ipgs_e,ipge_e @@ -220,12 +216,10 @@ CONTAINS IF(parray_e(ip) .EQ. 0) THEN ip0_e = ip CONTAINS_ip0_e = .TRUE. - SOLVE_POISSON = .TRUE. ENDIF IF(parray_e(ip) .EQ. 1) THEN ip1_e = ip CONTAINS_ip1_e = .TRUE. - SOLVE_AMPERE = .TRUE. ENDIF IF(parray_e(ip) .EQ. 2) THEN ip2_e = ip @@ -238,18 +232,18 @@ CONTAINS IF(parray_i(ip) .EQ. 0) THEN ip0_i = ip CONTAINS_ip0_i = .TRUE. - SOLVE_POISSON = .TRUE. ENDIF IF(parray_i(ip) .EQ. 1) THEN ip1_i = ip CONTAINS_ip1_i = .TRUE. - SOLVE_AMPERE = .TRUE. ENDIF IF(parray_i(ip) .EQ. 2) THEN ip2_i = ip CONTAINS_ip2_i = .TRUE. ENDIF END DO + IF(CONTAINS_ip0_e .AND. CONTAINS_ip0_i) SOLVE_POISSON = .TRUE. + IF(CONTAINS_ip1_e .AND. CONTAINS_ip1_i) SOLVE_AMPERE = .TRUE. !DGGK operator uses moments at index p=2 (ip=3) for the p=0 term so the ! process that contains ip=1 MUST contain ip=3 as well for both e and i. IF(((ips_e .EQ. ip0_e) .OR. (ips_i .EQ. ip0_e)) .AND. ((ipe_e .LT. ip2_e) .OR. (ipe_i .LT. ip2_i)))& -- GitLab