From a28ca9d90c659662362739871bddfdd9914fdfd4 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Tue, 2 Feb 2021 11:19:57 +0100
Subject: [PATCH] Philippe 02/02/2021: budgets: correct VISC source terms in
 ini_budget

(cherry picked from commit 839d6087e7c4fb2471eba3f97337858970e2f376)
---
 src/MNH/ini_budget.f90 | 188 +++++++++++++++++++++++++++--------------
 1 file changed, 124 insertions(+), 64 deletions(-)

diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 345745dfe..917477278 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -525,6 +525,8 @@ IF (LBU_RU) THEN
   IPROC=IPROC+1
   YWORK2(1,IPROC) = 'MAFL_'
   IPROC=IPROC+1
+  YWORK2(1,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(1,IPROC) = 'ADV_'
   IPROC=IPROC+1
   YWORK2(1,IPROC) = 'PRES_'
@@ -596,7 +598,7 @@ IF (LBU_RV) THEN
   IPROC=IPROC+1 
   IF ( HSCONV == 'EDKF' ) IPROACTV(2,IPROC) = NMAFLV
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCV
+  IF ( LVISC ) IPROACTV(2,IPROC) = NVISCV
   IPROC=IPROC+1
   IPROACTV(2,IPROC) = NADVV 
   IPROC=IPROC+1
@@ -629,7 +631,9 @@ IF (LBU_RV) THEN
   YWORK2(2,IPROC) = 'HTURB_'
   IPROC=IPROC+1 
   YWORK2(2,IPROC) = 'MAFL_'
-  IPROC=IPROC+1 
+  IPROC=IPROC+1
+  YWORK2(2,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(2,IPROC) = 'ADV_'
   IPROC=IPROC+1 
   YWORK2(2,IPROC) = 'PRES_'
@@ -697,7 +701,7 @@ IF (LBU_RW) THEN
     END IF
   END IF 
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCW
+  IF ( LVISC ) IPROACTV(3,IPROC) = NVISCW
   IPROC=IPROC+1
   IPROACTV(3,IPROC) = NGRAVW
   IPROC=IPROC+1
@@ -729,6 +733,8 @@ IF (LBU_RW) THEN
   IPROC=IPROC+1
   YWORK2(3,IPROC) = 'HTURB_'
   IPROC=IPROC+1
+  YWORK2(3,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(3,IPROC) = 'GRAV_'
   IPROC=IPROC+1
   YWORK2(3,IPROC) = 'ADV_'
@@ -808,6 +814,8 @@ IF (LBU_RTH) THEN
   IPROC=IPROC+1
   IF ( HSCONV == 'EDKF' ) IPROACTV(4,IPROC) = NMAFLTH
   IPROC=IPROC+1
+  IF ( LVISC ) IPROACTV(4,IPROC) = NVISCTH
+  IPROC=IPROC+1
   IPROACTV(4,IPROC) = NADVTH
   IPROC=IPROC+1
   IF (      HCLOUD == 'KESS' .OR. HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2'   &
@@ -953,6 +961,8 @@ IF (LBU_RTH) THEN
   IPROC=IPROC+1
   YWORK2(4,IPROC) = 'MAFL_'
   IPROC=IPROC+1
+  YWORK2(4,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(4,IPROC) = 'ADV_'
   IPROC=IPROC+1
   YWORK2(4,IPROC) = 'NEADV_'
@@ -1190,7 +1200,7 @@ IF (LBU_RRV) THEN
   IPROC=IPROC+1 
   IF ( HSCONV == 'EDKF' ) IPROACTV(6,IPROC) = NMAFLRV
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRV
+  IF ( LVISC ) IPROACTV(6,IPROC) = NVISCRV
   IPROC=IPROC+1
   IPROACTV(6,IPROC) = NADVRV
   IPROC=IPROC+1   
@@ -1282,6 +1292,8 @@ END IF
   IPROC=IPROC+1
   YWORK2(6,IPROC) = 'MAFL_'
   IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(6,IPROC) = 'ADV_'
   IPROC=IPROC+1
   YWORK2(6,IPROC) = 'NEADV_'
@@ -1385,7 +1397,7 @@ IF (LBU_RRC) THEN
                                .OR. HCLOUD == 'ICE3' .OR. HCLOUD == 'ICE4' .OR. HCLOUD == 'LIMA' ) ) &
     IPROACTV(7,IPROC) = NNETURRC
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRC
+  IF ( LVISC ) IPROACTV(7,IPROC) = NVISCRC
   IPROC=IPROC+1
   IPROACTV(7,IPROC) = NADVRC
   IPROC=IPROC+1
@@ -1525,6 +1537,8 @@ END IF
   IPROC=IPROC+1
   YWORK2(7,IPROC) = 'NETUR_'
   IPROC=IPROC+1
+  YWORK2(7,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(7,IPROC) = 'ADV_'
   IPROC=IPROC+1
   YWORK2(7,IPROC) = 'NEADV_'
@@ -1660,7 +1674,7 @@ IF (LBU_RRR) THEN
   IF ( HTURB /= 'NONE' .AND. ( HCLOUD == 'KHKO' .OR. HCLOUD == 'C2R2' .OR. HCLOUD == 'LIMA' ) ) &
     IPROACTV(8,IPROC) = NNETURRR
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRR
+  IF ( LVISC ) IPROACTV(8,IPROC) = NVISCRR
   IPROC=IPROC+1
   IPROACTV(8,IPROC) = NADVRR
   IPROC=IPROC+1
@@ -1776,6 +1790,8 @@ IF (LBU_RRR) THEN
   IPROC=IPROC+1
   YWORK2(8,IPROC) = 'NETUR_'
   IPROC=IPROC+1
+  YWORK2(8,IPROC) = 'VISC_'
+  IPROC=IPROC+1
   YWORK2(8,IPROC) = 'ADV_'
   IPROC=IPROC+1
   YWORK2(8,IPROC) = 'NEADV_'
@@ -1917,7 +1933,7 @@ IF (LBU_RRI) THEN
   IF ( HTURB /= 'NONE' .AND. ( HCLOUD == 'ICE3' .OR. HCLOUD == 'ICE4' .OR. HCLOUD == 'LIMA' ) ) &
     IPROACTV(9,IPROC) = NNETURRI
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRI
+  IF ( LVISC ) IPROACTV(9,IPROC) = NVISCRI
   IPROC=IPROC+1
   IPROACTV(9,IPROC) = NADVRI
   IPROC=IPROC+1
@@ -2026,6 +2042,8 @@ IF (LBU_RRI) THEN
   YWORK2(9,IPROC) = 'HTURB_'
   IPROC=  IPROC+1
   YWORK2(9,IPROC) = 'NETUR_'
+  IPROC=IPROC+1
+  YWORK2(9,IPROC) = 'VISC_'
   IPROC=  IPROC+1
   YWORK2(9,IPROC) = 'ADV_'
   IPROC=IPROC+1
@@ -2146,7 +2164,7 @@ IF (LBU_RRS) THEN
 !        .OR. (HCLOUD == 'ICE3') .OR. (HCLOUD == 'ICE4') .OR. (HCLOUD == 'LIMA') )) &
 !           IPROACTV(10,IPROC) = NNETURRS
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRS
+  IF ( LVISC ) IPROACTV(10,IPROC) = NVISCRS
   IPROC=  IPROC+1
   IPROACTV(10,IPROC) = NADVRS
   IPROC=IPROC+1
@@ -2232,6 +2250,8 @@ END IF
   YWORK2(10,IPROC) = 'REL_'
 !   IPROC=IPROC+1
 !   YWORK2(10,IPROC) = 'NETUR_'
+  IPROC=IPROC+1
+  YWORK2(10,IPROC) = 'VISC_'
   IPROC=  IPROC+1
   YWORK2(10,IPROC) = 'ADV_'
   IPROC=IPROC+1
@@ -2336,7 +2356,7 @@ IF (LBU_RRG) THEN
 !        .OR. (HCLOUD == 'ICE3') .OR. (HCLOUD == 'ICE4') .OR. (HCLOUD == 'LIMA') )) &
 !           IPROACTV(11,IPROC) = NNETURRG
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRG
+  IF ( LVISC ) IPROACTV(11,IPROC) = NVISCRG
   IPROC=IPROC+1
   IPROACTV(11,IPROC) = NADVRG
   IPROC=IPROC+1
@@ -2427,6 +2447,8 @@ END IF
   YWORK2(11,IPROC) = 'REL_'
 !   IPROC=IPROC+1
 !   YWORK2(11,IPROC) = 'NETUR_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'VISC_'
   IPROC=IPROC+1
   YWORK2(11,IPROC) = 'ADV_'
   IPROC=IPROC+1
@@ -2549,7 +2571,7 @@ IF (LBU_RRH) THEN
 !        .OR. (HCLOUD == 'ICE3') .OR. (HCLOUD == 'ICE4') .OR. (HCLOUD == 'LIMA') )) &
 !           IPROACTV(12,IPROC) = NNETURRH
   IPROC=IPROC+1
-  IF ( LVISC ) IPROACTV(1,IPROC) = NVISCRH
+  IF ( LVISC ) IPROACTV(12,IPROC) = NVISCRH
   IPROC=IPROC+1
   IPROACTV(12,IPROC) = NADVRH
   IPROC=IPROC+1
@@ -2614,6 +2636,8 @@ IF (LBU_RRH) THEN
   YWORK2(12,IPROC) = 'REL_'
 !   IPROC=IPROC+1
 !   YWORK2(12,IPROC) = 'NETUR_'
+  IPROC=IPROC+1
+  YWORK2(12,IPROC) = 'VISC_'
   IPROC=IPROC+1
   YWORK2(12,IPROC) = 'ADV_'
   IPROC=IPROC+1
@@ -3004,9 +3028,11 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
     ILAST_PROC_NBR = ILAST_PROC_NBR + 1
     YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
     IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-    YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-    IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+    IF ( LVISC ) THEN
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+    END IF
     ILAST_PROC_NBR = ILAST_PROC_NBR + 1
     YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
     IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3037,9 +3063,11 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3067,9 +3095,11 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3113,9 +3143,11 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3157,9 +3189,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3274,9 +3308,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3378,9 +3414,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3420,9 +3458,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3446,9 +3486,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3475,9 +3517,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3582,9 +3626,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3619,9 +3665,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3646,9 +3694,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3675,9 +3725,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR) = NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3705,9 +3757,11 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN
    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
    YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
    IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+   IF ( LVISC ) THEN
+     ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+     YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+     IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+   END IF
    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
    YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
    IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3929,9 +3983,11 @@ ELSE IF (JSV >= NSV_CHEMBEG .AND. JSV <= NSV_CHEMEND) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3946,9 +4002,11 @@ ELSE IF (JSV >= NSV_AERBEG .AND. JSV <= NSV_AEREND) THEN
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
       IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
-      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      IF ( LVISC ) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+      END IF
       ILAST_PROC_NBR = ILAST_PROC_NBR + 1
       YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
       IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
@@ -3961,9 +4019,11 @@ ELSE IF (JSV >= NSV_AERBEG .AND. JSV <= NSV_AEREND) THEN
     ILAST_PROC_NBR = ILAST_PROC_NBR + 1
     YWORK2(12+JSV,ILAST_PROC_NBR)= 'MAFL_'
     IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,ILAST_PROC_NBR)= NMAFLSV
-    ILAST_PROC_NBR = ILAST_PROC_NBR + 1
-    YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
-    IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+    IF ( LVISC ) THEN
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'VISC_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = NVISCSV
+    END IF
     ILAST_PROC_NBR = ILAST_PROC_NBR + 1
     YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_'
     IPROACTV(12+JSV,ILAST_PROC_NBR) = NADVSV
-- 
GitLab