From f5e5aec663cd11f6e2a179c3eb9f6aa9dd30cb49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr>
Date: Thu, 22 Sep 2022 11:31:23 +0200
Subject: [PATCH] correct index of LIMA_COLD_NAMES for fields read & write

---
 src/MNH/ini_lb.f90                 |  8 ++++----
 src/MNH/read_field.f90             | 20 ++++++++++++++++----
 src/MNH/spawn_field2.f90           | 20 ++++++++++++++++----
 src/MNH/write_aircraft_balloon.f90 | 11 +++++++----
 src/MNH/write_lbn.f90              |  4 ++--
 src/MNH/write_profilern.f90        | 14 ++++++++++----
 6 files changed, 55 insertions(+), 22 deletions(-)

diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90
index 054d5f50f..b07d03d4c 100644
--- a/src/MNH/ini_lb.f90
+++ b/src/MNH/ini_lb.f90
@@ -764,9 +764,9 @@ IF (CCLOUD=='LIMA' ) THEN
                  .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) < 5 ) &
                  .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) == 5  &
                         .AND. TPINIFILE%NMNHVERSION(3) < 1 ) ) THEN
-              TZFIELD%CMNHNAME   = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE
+              TZFIELD%CMNHNAME   = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE
             ELSE
-              TZFIELD%CMNHNAME   = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE
+              TZFIELD%CMNHNAME   = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE
             END IF
             TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
             TZFIELD%CLBTYPE    = 'LBX'
@@ -790,9 +790,9 @@ IF (CCLOUD=='LIMA' ) THEN
                  .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) < 5 ) &
                  .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) == 5  &
                         .AND. TPINIFILE%NMNHVERSION(3) < 1 ) ) THEN
-              TZFIELD%CMNHNAME   = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE
+              TZFIELD%CMNHNAME   = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE
             ELSE
-              TZFIELD%CMNHNAME   = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE
+              TZFIELD%CMNHNAME   = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE
             END IF
             TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
             TZFIELD%CLBTYPE    = 'LBY'
diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index d83171513..e5a8ff123 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -933,24 +933,36 @@ DO JSV = NSV_LIMA_BEG,NSV_LIMA_END
     IF (JSV .EQ. NSV_LIMA_NI) THEN
       TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(1))//'T'
     END IF
+! Ns
+    IF (JSV .EQ. NSV_LIMA_NS) THEN
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(2))//'T'
+    END IF
+! Ng
+    IF (JSV .EQ. NSV_LIMA_NG) THEN
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(3))//'T'
+    END IF
+! Nh
+    IF (JSV .EQ. NSV_LIMA_NH) THEN
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(4))//'T'
+    END IF
 ! N IFN free
     IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
       WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
-      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(5))//INDICE//'T'
     END IF
 ! N IFN nucl
     IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
       WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
-      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(6))//INDICE//'T'
     END IF
 ! N IMM nucl
     IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
       WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(JSV - NSV_LIMA_IMM_NUCL + 1))
-      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(7))//INDICE//'T'
     END IF
 ! Hom. freez. of CCN
     IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN
-      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(5))//'T'
+      TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(8))//'T'
     END IF
 !
 ! Super saturation      
diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90
index 44aa7c3ce..881fd4e6b 100644
--- a/src/MNH/spawn_field2.f90
+++ b/src/MNH/spawn_field2.f90
@@ -916,24 +916,36 @@ IF (PRESENT(TPSONFILE)) THEN
       IF (JSV .EQ. NSV_LIMA_NI) THEN
         TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(1))//'T'
       END IF
+      ! Ns
+      IF (JSV .EQ. NSV_LIMA_NS) THEN
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(2))//'T'
+      END IF
+      ! Ng
+      IF (JSV .EQ. NSV_LIMA_NG) THEN
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(3))//'T'
+      END IF
+      ! Nh
+      IF (JSV .EQ. NSV_LIMA_NH) THEN
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(4))//'T'
+      END IF
       ! N IFN free
       IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
-        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(5))//INDICE//'T'
       END IF
       ! N IFN nucl
       IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
-        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(6))//INDICE//'T'
       END IF
       ! N IMM nucl
       IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
         WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(JSV - NSV_LIMA_IMM_NUCL + 1))
-        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(7))//INDICE//'T'
       END IF
       ! Hom. freez. of CCN
       IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN
-        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(5))//'T'
+        TZFIELD%CMNHNAME   = TRIM(CLIMA_COLD_NAMES(8))//'T'
       END IF
       ! Supersaturation    
       IF (JSV .EQ. NSV_LIMA_SPRO) THEN
diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90
index e132daa83..f9295b656 100644
--- a/src/MNH/write_aircraft_balloon.f90
+++ b/src/MNH/write_aircraft_balloon.f90
@@ -452,19 +452,22 @@ IF (SIZE(TPFLYER%SV,2)>=1) THEN
       YUNIT    (JPROC) = 'kg kg-1'
     ENDIF
     IF (JSV==NSV_LIMA_NI) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(1))//'T' 
+    IF (JSV==NSV_LIMA_NS) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(2))//'T' 
+    IF (JSV==NSV_LIMA_NG) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(3))//'T' 
+    IF (JSV==NSV_LIMA_NH) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(4))//'T' 
     IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
-        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(5))//INDICE//'T'
     ENDIF
     IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
-        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(6))//INDICE//'T'
     ENDIF
     IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
         WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(JSV - NSV_LIMA_IMM_NUCL + 1))
-        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(7))//INDICE//'T'
     ENDIF
-    IF (JSV .EQ. NSV_LIMA_HOM_HAZE) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(5))//'T'
+    IF (JSV .EQ. NSV_LIMA_HOM_HAZE) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(8))//'T'
     IF (JSV .EQ. NSV_LIMA_SPRO)     YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(5))//'T'
     ZWORK6 (1,1,1,:,1,JPROC) = TPFLYER%SV(:,JSV)
   END DO 
diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90
index b06f5bc8e..3e00b993e 100644
--- a/src/MNH/write_lbn.f90
+++ b/src/MNH/write_lbn.f90
@@ -400,7 +400,7 @@ IF (NSV >=1) THEN
     DO JSV = NSV_LIMA_IFN_FREE,NSV_LIMA_IFN_FREE+NMOD_IFN-1
       WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
       IF(NSIZELBXSV_ll /= 0) THEN
-        TZFIELD%CMNHNAME   = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE
+        TZFIELD%CMNHNAME   = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE
         TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
         TZFIELD%CLBTYPE    = 'LBX'
         WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
@@ -408,7 +408,7 @@ IF (NSV >=1) THEN
       END IF
       !
       IF(NSIZELBYSV_ll /= 0) THEN
-        TZFIELD%CMNHNAME   = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE
+        TZFIELD%CMNHNAME   = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE
         TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
         TZFIELD%CLBTYPE    = 'LBY'
         WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90
index fcef2068c..6b26649a2 100644
--- a/src/MNH/write_profilern.f90
+++ b/src/MNH/write_profilern.f90
@@ -231,17 +231,23 @@ if ( Size( tprofiler%sv, 4 ) > 0  ) then
       yunits = 'kg kg-1'
     else if ( jsv == nsv_lima_ni ) then
       yname = Trim( clima_cold_names(1) ) // 'T'
+    else if ( jsv == nsv_lima_ns ) then
+      yname = Trim( clima_cold_names(2) ) // 'T'
+    else if ( jsv == nsv_lima_ng ) then
+      yname = Trim( clima_cold_names(3) ) // 'T'
+    else if ( jsv == nsv_lima_nh ) then
+      yname = Trim( clima_cold_names(4) ) // 'T'
     else if ( jsv >= nsv_lima_ifn_free .and. jsv < nsv_lima_ifn_free + nmod_ifn ) then
       Write( yidx, '( i2.2 )' ) jsv - nsv_lima_ifn_free + 1
-      yname = Trim( clima_cold_names(2) ) // yidx // 'T'
+      yname = Trim( clima_cold_names(5) ) // yidx // 'T'
     else if ( jsv >= nsv_lima_ifn_nucl .and. jsv < nsv_lima_ifn_nucl + nmod_ifn ) then
       Write( yidx, '( i2.2 )' ) jsv - nsv_lima_ifn_nucl + 1
-      yname = Trim( clima_cold_names(3) ) // yidx // 'T'
+      yname = Trim( clima_cold_names(6) ) // yidx // 'T'
     else if ( jsv >= nsv_lima_imm_nucl .and. jsv < nsv_lima_imm_nucl + nmod_imm ) then
       write( yidx, '( i2.2 )' ) nindice_ccn_imm(jsv - nsv_lima_imm_nucl + 1)
-      yname = Trim( clima_cold_names(4) ) // yidx // 'T'
+      yname = Trim( clima_cold_names(7) ) // yidx // 'T'
     else if ( jsv == nsv_lima_hom_haze ) then
-      yname = Trim( clima_cold_names(5) ) // 'T'
+      yname = Trim( clima_cold_names(8) ) // 'T'
     else if ( jsv == nsv_lima_spro ) then
       yname = Trim( clima_warm_names(5) ) // 'T'
     end if
-- 
GitLab