From 8ecf0678ebd1274930fbd1ded57f6eb7ce5662bb Mon Sep 17 00:00:00 2001
From: Antoine Hoffmann <antoine.hoffmann@epfl.ch>
Date: Sat, 1 Apr 2023 13:43:30 +0200
Subject: [PATCH] cleaning and organizing

---
 src/memory.F90 | 68 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 41 insertions(+), 27 deletions(-)

diff --git a/src/memory.F90 b/src/memory.F90
index 0fccaf0f..d32069b6 100644
--- a/src/memory.F90
+++ b/src/memory.F90
@@ -10,53 +10,64 @@ SUBROUTINE memory
   USE prec_const
   USE model, ONLY: na
   IMPLICIT NONE
-
-  ! Electrostatic potential
-  CALL allocate_array(           phi, 1,local_nky, 1,local_nkx, 1,local_nz+ngz)
-  CALL allocate_array(           psi, 1,local_nky, 1,local_nkx, 1,local_nz+ngz)
-  CALL allocate_array(inv_poisson_op, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array( inv_ampere_op, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(   inv_pol_ion, 1,local_nky, 1,local_nkx, 1,local_nz)
-  ! CALL allocate_array(HF_phi_correction_operator, 1,local_nky, 1,local_nkx, 1,local_nz)
-
-  !Moments related arrays
-  CALL allocate_array(           dens, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(           upar, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(           uper, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(           Tpar, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(           Tper, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(           temp, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(         Kernel, 1,local_na,                 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz+ngz, 1,nzgrid)
+  !==================== Ghosted arrays ====================
+  ! 5D+ arrays
   CALL allocate_array(        moments, 1,local_na, 1,local_np+ngp, 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz+ngz, 1,ntimelevel )
-  CALL allocate_array(          napjz, 1,local_na, 1,local_np,     1,local_nj,                               1,local_nz)
-  CALL allocate_array(    moments_rhs, 1,local_na, 1,local_np,     1,local_nj,     1,local_nky, 1,local_nkx, 1,local_nz,     1,ntimelevel )
   CALL allocate_array( nadiab_moments, 1,local_na, 1,local_np+ngp, 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz+ngz)
   CALL allocate_array(       ddz_napj, 1,local_na, 1,local_np+ngp, 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz)
   CALL allocate_array(     ddzND_napj, 1,local_na, 1,local_np+ngp, 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz)
   CALL allocate_array(    interp_napj, 1,local_na, 1,local_np+ngp, 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(          Capj,  1,local_na, 1,local_np,     1,local_nj,     1,local_nky, 1,local_nkx, 1,local_nz)
-  CALL allocate_array(          Sapj,  1,local_na, 1,local_np,     1,local_nj,     1,local_nky, 1,local_nkx, 1,local_nz)
+  
+  ! 4D+ arrays
+  CALL allocate_array(     Kernel, 1,local_na, 1,local_nj+ngj, 1,local_nky, 1,local_nkx, 1,local_nz+ngz, 1,nzgrid)
+  
+  ! 3D arrays
+  CALL allocate_array( phi, 1,local_nky, 1,local_nkx, 1,local_nz+ngz)
+  CALL allocate_array( psi, 1,local_nky, 1,local_nkx, 1,local_nz+ngz)
+  
+  ! smaller arrays
+  
+  
+  !==================== Not ghosted arrays ====================
+  ! 5D+ arrays
+  CALL allocate_array(   moments_rhs, 1,local_na, 1,local_np,  1,local_nj, 1,local_nky, 1,local_nkx, 1,local_nz, 1,ntimelevel )
+  CALL allocate_array(          Capj, 1,local_na, 1,local_np,  1,local_nj, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(          Sapj, 1,local_na, 1,local_np,  1,local_nj, 1,local_nky, 1,local_nkx, 1,local_nz)
+  
+  ! 4D+ arrays
+  CALL allocate_array(         napjz, 1,local_na,  1,local_np,  1,local_nj, 1,local_nz)
+  CALL allocate_array(          dens, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(          upar, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(          uper, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(          Tpar, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(          Tper, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(          temp, 1,local_na, 1,local_nky, 1,local_nkx, 1,local_nz)
+  
+  ! 3D arrays
+  CALL allocate_array(inv_poisson_op, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array( inv_ampere_op, 1,local_nky, 1,local_nkx, 1,local_nz)
+  CALL allocate_array(   inv_pol_ion, 1,local_nky, 1,local_nkx, 1,local_nz)
+  
+  ! smaller arrays
   CALL allocate_array(     xnapj, 1,local_na, 1,local_np, 1,local_nj)
+
   CALL allocate_array(   xnapp2j, 1,local_na, 1,local_np)
   CALL allocate_array(   xnapp1j, 1,local_na, 1,local_np)
   CALL allocate_array(   xnapm1j, 1,local_na, 1,local_np)
   CALL allocate_array(   xnapm2j, 1,local_na, 1,local_np)
+
   CALL allocate_array(   xnapjp1, 1,local_na, 1,local_nj)
   CALL allocate_array(   xnapjm1, 1,local_na, 1,local_nj)
+
   CALL allocate_array(   ynapp1j, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array(   ynapm1j, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( ynapp1jm1, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( ynapm1jm1, 1,local_na, 1,local_np, 1,local_nj)
+
   CALL allocate_array(   znapm1j, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( znapm1jp1, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( znapm1jm1, 1,local_na, 1,local_np, 1,local_nj)
 
-  ! Non linear terms and dnjs table
-  CALL allocate_array( dnjs, 1,jmax+1, 1,jmax+1, 1,jmax+1)
-
-  ! Hermite fourth derivative coeff table 4*sqrt(p!/(p-4)!)
-  CALL allocate_array( dv4_Hp_coeff, -2, pmax)
-
   CALL allocate_array( xphij,   1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( xphijp1, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( xphijm1, 1,local_na, 1,local_np, 1,local_nj)
@@ -64,6 +75,9 @@ SUBROUTINE memory
   CALL allocate_array( xpsijp1, 1,local_na, 1,local_np, 1,local_nj)
   CALL allocate_array( xpsijm1, 1,local_na, 1,local_np, 1,local_nj)
   
+  CALL allocate_array( dnjs, 1,jmax+1, 1,jmax+1, 1,jmax+1)
+  CALL allocate_array( dv4_Hp_coeff, -2, pmax)
+  
   !___________________ 2x5D ARRAYS __________________________
   !! Collision matrices
   IF (GK_CO) THEN !GK collision matrices (one for each kperp)
-- 
GitLab