From 426dc2eed7bd58be609c9cf909d6af0320d86995 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 9 Feb 2017 17:22:13 +0100
Subject: [PATCH] Philippe 09/02/2017: added IDX_RxT indices to address moist
 variables more cleanly

---
 src/MNH/ini_modeln.f90 |  7 +++++++
 src/MNH/modd_confn.f90 | 22 ++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index deb55ee7d..207a48a88 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -638,30 +638,37 @@ NRRL=0
 NRRI=0
 IF (CGETRVT /= 'SKIP' ) THEN
   NRR = NRR+1
+  IDX_RVT = NRR
 END IF
 IF (CGETRCT /= 'SKIP' ) THEN
   NRR = NRR+1
   NRRL = NRRL+1
+  IDX_RCT = NRR
 END IF
 IF (CGETRRT /= 'SKIP' ) THEN
   NRR = NRR+1
   NRRL = NRRL+1
+  IDX_RRT = NRR
 END IF
 IF (CGETRIT /= 'SKIP' ) THEN
   NRR = NRR+1
   NRRI = NRRI+1
+  IDX_RIT = NRR
 END IF
 IF (CGETRST /= 'SKIP' ) THEN
   NRR = NRR+1
   NRRI = NRRI+1
+  IDX_RST = NRR
 END IF
 IF (CGETRGT /= 'SKIP' ) THEN
   NRR = NRR+1
   NRRI = NRRI+1
+  IDX_RGT = NRR
 END IF
 IF (CGETRHT /= 'SKIP' ) THEN
   NRR = NRR+1
   NRRI = NRRI+1
+  IDX_RHT = NRR
 END IF
 IF (NVERB >= 5) THEN
   WRITE (UNIT=ILUOUT,FMT='("THERE ARE ",I2," WATER VARIABLES")') NRR
diff --git a/src/MNH/modd_confn.f90 b/src/MNH/modd_confn.f90
index a7684f701..68f12007a 100644
--- a/src/MNH/modd_confn.f90
+++ b/src/MNH/modd_confn.f90
@@ -58,6 +58,14 @@ TYPE CONF_t
   INTEGER :: NRR     ! Total number of water variables
   INTEGER :: NRRL    ! Number of liquid water variables
   INTEGER :: NRRI    ! Number of solid water variables
+!
+  INTEGER :: IDX_RVT = -1 ! Position in array for rv
+  INTEGER :: IDX_RCT = -1 ! Position in array for rc
+  INTEGER :: IDX_RRT = -1 ! Position in array for rr
+  INTEGER :: IDX_RIT = -1 ! Position in array for ri
+  INTEGER :: IDX_RST = -1 ! Position in array for rs
+  INTEGER :: IDX_RGT = -1 ! Position in array for rg
+  INTEGER :: IDX_RHT = -1 ! Position in array for rh
 !
   CHARACTER (LEN=2) :: CSTORAGE_TYPE ! storage type for the informations 
                                  ! written in the FM files ( 'TT' if the MesoNH 
@@ -80,6 +88,13 @@ LOGICAL, POINTER :: LUSERH=>NULL()
 INTEGER, POINTER :: NRR=>NULL()
 INTEGER, POINTER :: NRRL=>NULL()
 INTEGER, POINTER :: NRRI=>NULL()
+INTEGER, POINTER :: IDX_RVT=>NULL()
+INTEGER, POINTER :: IDX_RCT=>NULL()
+INTEGER, POINTER :: IDX_RRT=>NULL()
+INTEGER, POINTER :: IDX_RIT=>NULL()
+INTEGER, POINTER :: IDX_RST=>NULL()
+INTEGER, POINTER :: IDX_RGT=>NULL()
+INTEGER, POINTER :: IDX_RHT=>NULL()
 LOGICAL, POINTER :: LUSECI=>NULL()
 CHARACTER (LEN=2),POINTER :: CSTORAGE_TYPE=>NULL()
 
@@ -101,6 +116,13 @@ LUSERH=>CONF_MODEL(KTO)%LUSERH
 NRR=>CONF_MODEL(KTO)%NRR
 NRRL=>CONF_MODEL(KTO)%NRRL
 NRRI=>CONF_MODEL(KTO)%NRRI
+IDX_RVT=>CONF_MODEL(KTO)%IDX_RVT
+IDX_RCT=>CONF_MODEL(KTO)%IDX_RCT
+IDX_RRT=>CONF_MODEL(KTO)%IDX_RRT
+IDX_RIT=>CONF_MODEL(KTO)%IDX_RIT
+IDX_RST=>CONF_MODEL(KTO)%IDX_RST
+IDX_RGT=>CONF_MODEL(KTO)%IDX_RGT
+IDX_RHT=>CONF_MODEL(KTO)%IDX_RHT
 LUSECI=>CONF_MODEL(KTO)%LUSECI
 CSTORAGE_TYPE=>CONF_MODEL(KTO)%CSTORAGE_TYPE
 
-- 
GitLab