From d7224401a9c27ae033428cc1864a4ddd124caae9 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 5 Apr 2018 11:25:21 +0200
Subject: [PATCH] Philippe 05/04/2018: deallocate_model1: do not deallocate
 XXHAT, XYHAT and XZHAT because they are often needed later (and they do not
 consume a lot of memory)

---
 src/MNH/deallocate_model1.f90 |  8 +++++---
 src/MNH/read_prc_fmfile.f90   | 25 -------------------------
 2 files changed, 5 insertions(+), 28 deletions(-)

diff --git a/src/MNH/deallocate_model1.f90 b/src/MNH/deallocate_model1.f90
index ebae4a9b5..82791e2bd 100644
--- a/src/MNH/deallocate_model1.f90
+++ b/src/MNH/deallocate_model1.f90
@@ -219,14 +219,16 @@ IF ( ASSOCIATED(XLON) .AND. KCALL == 3 ) THEN
 END IF
 !
 IF ( KCALL == 3 ) THEN
-  DEALLOCATE(XXHAT)
+  !Philippe W.: do not deallocate XXHAT, XYHAT and XZHAT because they are needed later on
+  !As they are 1D, their memory footprint is negligible
+  ! DEALLOCATE(XXHAT)
   DEALLOCATE(XDXHAT)
-  DEALLOCATE(XYHAT)
+  ! DEALLOCATE(XYHAT)
   DEALLOCATE(XDYHAT)
   DEALLOCATE(XZS)
   DEALLOCATE(XZSMT)
   DEALLOCATE(XZZ)
-  DEALLOCATE(XZHAT)
+  ! DEALLOCATE(XZHAT)
 END IF
 !
 IF ( KCALL == 2 ) THEN
diff --git a/src/MNH/read_prc_fmfile.f90 b/src/MNH/read_prc_fmfile.f90
index 363d61fcb..50274d6a0 100644
--- a/src/MNH/read_prc_fmfile.f90
+++ b/src/MNH/read_prc_fmfile.f90
@@ -163,9 +163,6 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: ZINPRG_LS
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZACPRG_LS
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZINPRH_LS
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZACPRH_LS
-REAL, DIMENSION(:),     ALLOCATABLE :: ZXHAT
-REAL, DIMENSION(:),     ALLOCATABLE :: ZYHAT
-REAL, DIMENSION(:),     ALLOCATABLE :: ZZHAT
 INTEGER  :: IMI
 !
 !20131105 add vars related to ADD3DFIELD and UPDATE_HALO
@@ -290,18 +287,6 @@ END IF
 !
 !-------------------------------------------------------------------------------
 !
-!*       4.    SAVE FIELDS STORED IN MODEL1 MODULE already INITIALIZED in PREP_REAL_CASE
-!              -------------------------------------------------------------------------
-!
-ALLOCATE(ZXHAT(SIZE(XXHAT)))
-ALLOCATE(ZYHAT(SIZE(XYHAT)))
-ALLOCATE(ZZHAT(SIZE(XZHAT)))
-ZXHAT(:) = XXHAT(:)
-ZYHAT(:) = XYHAT(:)
-ZZHAT(:) = XZHAT(:)
-!
-!-------------------------------------------------------------------------------
-!
 !*       5.    DEALLOCATIONS OF FIELDS OF MODEL1
 !              ---------------------------------
 !
@@ -317,16 +302,6 @@ DEALLOCATE(XTHVREFZ)
 !*       6.    RECOVERS FIELDS STORED IN MODEL1 MODULE already INITIALIZED in PREP_REAL_CASE
 !              -----------------------------------------------------------------------------
 !
-ALLOCATE(XXHAT(SIZE(ZXHAT)))
-ALLOCATE(XYHAT(SIZE(ZYHAT)))
-ALLOCATE(XZHAT(SIZE(ZZHAT)))
-XXHAT(:) = ZXHAT(:)
-XYHAT(:) = ZYHAT(:)
-XZHAT(:) = ZZHAT(:)
-DEALLOCATE(ZXHAT)
-DEALLOCATE(ZYHAT)
-DEALLOCATE(ZZHAT)
-!
 IF (ALLOCATED(ZINPRC_LS)) THEN
   ALLOCATE(XINPRC(IIU,IJU))
   ALLOCATE(XACPRC(IIU,IJU))
-- 
GitLab