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