Index: LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90	(revision 5224)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90	(revision 5229)
@@ -1,8 +1,6 @@
-! $Id$
-
 SUBROUTINE iniacademic(vcov, ucov, teta, q, masse, ps, phis, time_0)
 
   USE lmdz_filtreg, ONLY: inifilr
-  USE lmdz_infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName, addPhase
+  USE lmdz_infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, isoName, addPhase
   USE control_mod, ONLY: day_step, planet_type
   USE exner_hyb_m, ONLY: exner_hyb
@@ -20,4 +18,5 @@
   USE lmdz_academic, ONLY: tetarappel, knewt_t, kfrict, knewt_g, clat4
   USE lmdz_comgeom
+  USE iso_params_mod   ! tnat_* and alpha_ideal_*
 
   !   Author:    Frederic Hourdin      original: 15/01/93
@@ -323,6 +322,13 @@
                     WRITE(lunout, *)'In '//TRIM(modname)//': !!!  Beware: alpha_ideal put to 1  !!!'
                  ELSE
-                    IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
-                    CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
+                    SELECT CASE(isoName(iName))
+                      CASE('H216O'); tnat = tnat_H216O; alpha_ideal = alpha_ideal_H216O
+                      CASE('H217O'); tnat = tnat_H217O; alpha_ideal = alpha_ideal_H217O
+                      CASE('H218O'); tnat = tnat_H218O; alpha_ideal = alpha_ideal_H218O
+                      CASE('HDO');   tnat = tnat_HDO;   alpha_ideal = alpha_ideal_HDO
+                      CASE('HTO');   tnat = tnat_HTO;   alpha_ideal = alpha_ideal_HTO
+                      CASE DEFAULT
+                         CALL abort_gcm(TRIM(modname),'unknown isotope "'//TRIM(isoName(iName))//'" ; check tracer.def file',1)
+                    END SELECT
                  END IF
                  q(:,:,iq) = q(:,:,iqParent)*tnat*(q(:,:,iqParent)/30.e-3)**(alpha_ideal-1.)
Index: LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90	(revision 5224)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90	(revision 5229)
@@ -9,5 +9,6 @@
     USE lmdz_strings, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str
     USE lmdz_infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &
-            ntiso, iH2O, nzone, tracers, isoName, itZonIso, getKey
+            ntiso, iH2O, nzone, tracers, isoName, itZonIso
+    USE iso_params_mod, ONLY: tnat_H216O, tnat_H217O, tnat_H218O, tnat_HDO, tnat_HTO
 
     USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
@@ -31,5 +32,6 @@
             ridicule = 1e-12
     INTEGER, SAVE :: iso_eau, iso_O17, iso_O18, iso_HDO, iso_HTO
-    LOGICAL, SAVE :: ltnat1, first = .TRUE.
+    LOGICAL :: ltnat1
+    LOGICAL, SAVE :: first = .TRUE.
 
     modname = 'check_isotopes'
@@ -40,14 +42,10 @@
       ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)
       ALLOCATE(tnat(niso))
-      iso_eau = strIdx(isoName, 'H216O')
-      iso_O17 = strIdx(isoName, 'H217O')
-      iso_O18 = strIdx(isoName, 'H218O')
-      iso_HDO = strIdx(isoName, 'HDO')
-      iso_HTO = strIdx(isoName, 'HTO')
-      IF(ltnat1) THEN
-        tnat(:) = 1.0
-      ELSE
-        IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1)
-      END IF
+      iso_eau = strIdx(isoName, 'H216O'); IF(iso_eau /= 0) tnat(iso_eau) = tnat_H216O
+      iso_O17 = strIdx(isoName, 'H217O'); IF(iso_O17 /= 0) tnat(iso_O17) = tnat_H217O
+      iso_O18 = strIdx(isoName, 'H218O'); IF(iso_O18 /= 0) tnat(iso_O18) = tnat_H218O
+      iso_HDO = strIdx(isoName, 'HDO');   IF(iso_HDO /= 0) tnat(iso_HDO) = tnat_HDO
+      iso_HTO = strIdx(isoName, 'HTO');   IF(iso_HTO /= 0) tnat(iso_HTO) = tnat_HTO
+      IF(ltnat1) tnat(:) = 1.
       first = .FALSE.
     END IF
@@ -61,5 +59,5 @@
         DO k = 1, llm
           DO i = 1, ip1jmp1
-            IF(ABS(q(i, k, iq)) <= borne) CYCLE
+            IF(ABS(q(i, k, iq)) < borne) CYCLE
             WRITE(msg1, '(s,"(",i0,",",i0,",",i0,") = ",ES12.4)')TRIM(isoName(ixt)), i, k, iq, q(i, k, iq)
             CALL msg(msg1, modname)
Index: LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_dynetat0.f90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_dynetat0.f90	(revision 5224)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_dynetat0.f90	(revision 5229)
@@ -12,5 +12,5 @@
     !-------------------------------------------------------------------------------
     USE lmdz_infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName, &
-            new2oldH2O, newHNO3, oldHNO3, getKey
+            new2oldH2O, newHNO3, oldHNO3
     USE lmdz_strings, ONLY: maxlen, msg, strStack, real2str, int2str
     USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_inq_varid, nf90_close, nf90_get_var, nf90_noerr
@@ -28,4 +28,5 @@
     USE lmdz_strings, ONLY: strIdx
     USE ioipsl, ONLY: getin
+    USE iso_params_mod   ! tnat_* and alpha_ideal_*
 
     USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
@@ -169,6 +170,12 @@
             CALL msg(' !!!  Beware: alpha_ideal put to 1  !!!', modname)
           ELSE
-            IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
-                    CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
+            SELECT CASE(isoName(iName))
+            CASE('H216O'); tnat = tnat_H216O; alpha_ideal = alpha_ideal_H216O
+            CASE('H217O'); tnat = tnat_H217O; alpha_ideal = alpha_ideal_H217O
+            CASE('H218O'); tnat = tnat_H218O; alpha_ideal = alpha_ideal_H218O
+            CASE('HDO');   tnat = tnat_HDO;   alpha_ideal = alpha_ideal_HDO
+            CASE('HTO');   tnat = tnat_HTO;   alpha_ideal = alpha_ideal_HTO
+            CASE DEFAULT; CALL abort_gcm(TRIM(modname), 'unknown isotope "' // TRIM(isoName(iName)) // '" ; check tracer.def file', 1)
+            END SELECT
           END IF
           CALL msg('Missing tracer <' // TRIM(var) // '> => initialized with a simplified Rayleigh distillation law.', modname)
