Index: LMDZ6/trunk/libf/dyn3d/dynetat0.F90
===================================================================
--- LMDZ6/trunk/libf/dyn3d/dynetat0.F90	(revision 4270)
+++ LMDZ6/trunk/libf/dyn3d/dynetat0.F90	(revision 4301)
@@ -10,5 +10,5 @@
   USE netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQ_VARID, &
                          NF90_CLOSE, NF90_GET_VAR, NF90_NoErr
-  USE readTracFiles_mod, ONLY: new2oldName
+  USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3
   USE control_mod, ONLY: planet_type
   USE assert_eq_m, ONLY: assert_eq
@@ -42,5 +42,5 @@
   INTEGER :: iq, fID, vID, idecal, iqParent, iName, iZone, iPhase
   REAL    :: time, tab_cntrl(length)               !--- RUN PARAMS TABLE
-  LOGICAL :: lOldHNO3, ll
+  LOGICAL :: lSkip, ll
 !-------------------------------------------------------------------------------
   modname="dynetat0"
@@ -130,34 +130,24 @@
   ll=.FALSE.
 #ifdef REPROBUS
-  !--- .TRUE. for old convention: HNO3 = g+l and HNO3_g = g (new convention: HNO3tot = g+l and HNO3 = g)
-  ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr
+  ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr                                 !--- DETECT OLD REPRO start.nc FILE
 #endif
   DO iq=1,nqtot
     var = tracers(iq)%name
-    oldVar = new2oldName(var)
-    lOldHNO3 = ll .AND. (var == 'HNO3' .OR. var == 'HNO3_g')
-    !--------------------------------------------------------------------------------------------------------------------------
-    IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lOldHNO3) THEN             !=== REGULAR CASE
+    oldVar = new2oldH2O(var)
+    lSkip = ll .AND. var == 'HNO3'                                                       !--- FORCE "HNO3_g" READING FOR "HNO3"
+#ifdef REPROBUS
+    ix = strIdx(newHNO3, var); IF(ix /= 0) oldVar = oldHNO3(ix)                          !--- REPROBUS HNO3 exceptions
+#endif
+#ifdef INCA
+    IF(var == 'O3') oldVar = 'OX'                                                        !--- DEAL WITH INCA OZONE EXCEPTION
+#endif
+    !--------------------------------------------------------------------------------------------------------------------------
+    IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lSkip) THEN                !=== REGULAR CASE: AVAILABLE VARIABLE
       CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
     !--------------------------------------------------------------------------------------------------------------------------
-    ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN                         !=== OLD NAME
+    ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN                         !=== TRY WITH ALTERNATE NAME
       CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname)
       CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",oldVar)
     !--------------------------------------------------------------------------------------------------------------------------
-#ifdef REPROBUS
-    ELSE IF(NF90_INQ_VARID(fID, 'HNO3_g', vID) == NF90_NoErr .AND. lOldHNO3 .AND. var == 'HNO3'   ) THEN
-      CALL msg('Tracer <HNO3_g> is used for <HNO3> (old convention)', modname)           !=== REPROBUS: HNO3_g INSTEAD OF HNO3
-      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
-    ELSE IF(NF90_INQ_VARID(fID, 'HNO3',   vID) == NF90_NoErr .AND. lOldHNO3 .AND. var == 'HNO3tot') THEN
-      CALL msg('Tracer <HNO3> is used for <HNO3tot> (old convention)', modname)          !=== REPROBUS: HNO3 INSTEAD OF HNO3tot
-      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
-#endif
-    !--------------------------------------------------------------------------------------------------------------------------
-#ifdef INCA
-    ELSE IF(NF90_INQ_VARID(fID, 'OX',   vID) == NF90_NoErr .AND. var == 'O3') THEN       !=== INCA: OX INSTEAD OF O3
-      CALL msg('Tracer <O3> is missing => initialized to <OX>', modname)
-      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",'OX')
-    !--------------------------------------------------------------------------------------------------------------------------
-#endif
     ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN                          !=== WATER ISOTOPES
       iName    = tracers(iq)%iso_iName
