From 637b22b04dbe20667e16b09771c117729c6faf4c Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 8 Jul 2024 16:42:39 +0200
Subject: [PATCH] Philippe 08/07/2024: bugfix: CCPLFILE/TCPLFILE: initialize
 and allocate at the right places

---
 src/MNH/default_desfmn.f90 | 1 -
 src/MNH/ini_cpl.f90        | 2 ++
 src/MNH/ini_segn.f90       | 1 -
 src/MNH/modd_lunitn.f90    | 6 +++++-
 src/MNH/read_exsegn.f90    | 1 -
 src/MNH/spawn_model2.f90   | 1 -
 6 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index d7248e18c..31b7b67ad 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -313,7 +313,6 @@ TYPE(TFILEDATA)    TFILENAM    ! Empty file to satisfy interface of PHYEX_init r
 !
 ! CINIFILE='INIFILE'
 CINIFILEPGD='' !Necessary to keep this line to prevent problems with spawning
-CCPLFILE(:)=''
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90
index 4a294b736..2b9948e5c 100644
--- a/src/MNH/ini_cpl.f90
+++ b/src/MNH/ini_cpl.f90
@@ -343,6 +343,8 @@ ILUOUT = TLUOUT%NLU
 !*       2.    CHECK COUPLING FILES DATES
 !              --------------------------
 !
+IF ( .NOT.ASSOCIATED( TCPLFILE ) ) ALLOCATE( TCPLFILE(NCPL_NBR) )
+
 DO JCI=1,NCPL_NBR
   WRITE(YCI,'(I0)') JCI
   CALL IO_File_add2list(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB)
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index ab8d86ea0..1be7ab863 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -462,7 +462,6 @@ CALL READ_EXSEG_n(KMI,TZFILE_DES,YCONF,GFLAT,GUSERV,GUSERC,                 &
 IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='DIAG  ' .OR. CPROGRAM=='SPEC  '      &
      .OR. CPROGRAM=='REAL  ') THEN
   CINIFILE_n    = YINIFILE
-  CCPLFILE(:) = ''
   NMODEL=1
   LSTEADYLS=.TRUE.
 END IF
diff --git a/src/MNH/modd_lunitn.f90 b/src/MNH/modd_lunitn.f90
index 0b4fafb18..f10bfbf10 100644
--- a/src/MNH/modd_lunitn.f90
+++ b/src/MNH/modd_lunitn.f90
@@ -86,7 +86,9 @@ INTEGER, INTENT(IN) :: KFROM, KTO
 !JUAN
 IF (LUNIT_FIRST_CALL(KTO)) THEN
 ALLOCATE (LUNIT_MODEL(KTO)%CCPLFILE(NPCPLFILEMAX))
-ALLOCATE (LUNIT_MODEL(KTO)%TCPLFILE(NPCPLFILEMAX))
+LUNIT_MODEL(KTO)%CCPLFILE(:) = ''
+! TCPLFILE allocation is done in ini_cpl directly at the right size => commented here
+! ALLOCATE (LUNIT_MODEL(KTO)%TCPLFILE(NPCPLFILEMAX))
 LUNIT_FIRST_CALL(KTO) = .FALSE.
 ENDIF
 !JUAN
@@ -94,6 +96,8 @@ ENDIF
 TFILE_OUTPUTLISTING => LUNIT_MODEL(KTO)%TLUOUT
 !
 ! Save current state for allocated arrays
+LUNIT_MODEL(KFROM)%CCPLFILE => CCPLFILE
+LUNIT_MODEL(KFROM)%TCPLFILE => TCPLFILE
 !
 ! Current model is set to model KTO
 CINIFILE=>LUNIT_MODEL(KTO)%CINIFILE
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 6e6c12581..d1b6a37b8 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -495,7 +495,6 @@ ILUSEG = TPEXSEGFILE%NLU
 ILUOUT = TLUOUT%NLU
 !
 CALL INIT_NAM_LUNITN
-CCPLFILE(:)=''
 CALL INIT_NAM_CONFN
 CALL INIT_NAM_DYNN
 CALL INIT_NAM_ADVN
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index 39c8b4b70..ceddaa533 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -642,7 +642,6 @@ END IF
 !*       3.5   model 2 configuration in MODD_NESTING to be written
 !*                on the FM-file to allow nesting or coupling 
 !
-CCPLFILE(:) = ''
 LSTEADYLS=.TRUE.
 !
 NDXRATIO_ALL(:) = 0
-- 
GitLab