Index: LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90	(revision 5223)
@@ -76,8 +76,8 @@
 
   REAL zdtvr, tnat, alpha_ideal
-  LOGICAL, PARAMETER :: tnat1 = .TRUE.
-
-  CHARACTER(LEN = *), parameter :: modname = "iniacademic"
-  CHARACTER(LEN = 80) :: abort_message
+  LOGICAL :: ltnat1
+  
+  character(len=*),parameter :: modname="iniacademic"
+  character(len=80) :: abort_message
 
   ! Sanity check: verify that options selected by user are not incompatible
@@ -305,5 +305,5 @@
       ! bulk initialization of tracers
       IF (planet_type=="earth") THEN
-        ! Earth: first two tracers will be water
+        ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)! Earth: first two tracers will be water
         DO iq = 1, nqtot
           q(:, :, iq) = 0.
@@ -311,33 +311,33 @@
           IF(tracers(iq)%name == addPhase('H2O', 'l')) q(:, :, iq) = 1.e-15
 
-          ! CRisi: init des isotopes
-          ! distill de Rayleigh très simplifiée
-          iName = tracers(iq)%iso_iName
-          IF (niso <= 0 .OR. iName <= 0) CYCLE
-          iPhase = tracers(iq)%iso_iPhase
-          iqParent = tracers(iq)%iqParent
-          IF(tracers(iq)%iso_iZone == 0) THEN
-            IF (tnat1) THEN
-              tnat = 1.0
-              alpha_ideal = 1.0
-              WRITE(*, *) 'Attention dans iniacademic: alpha_ideal=1'
-            else
-              IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
-                      CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
-            endif
-            q(:, :, iq) = q(:, :, iqParent) * tnat * (q(:, :, iqParent) / 30.e-3)**(alpha_ideal - 1.)
-          ELSE !IF(tracers(iq)%iso_iZone == 0) THEN
-            IF(tracers(iq)%iso_iZone == 1) THEN
-              ! correction le 14 mai 2024 pour que tous les traceurs soient de la couleur 1.
-              ! Sinon, on va avoir des porblèmes de conservation de masse de traceurs.
-              q(:, :, iq) = q(:, :, iqIsoPha(iName, iPhase))
-            else !IF(tracers(iq)%iso_iZone == 1) THEN
-              q(:, :, iq) = 0.
-            endif !IF(tracers(iq)%iso_iZone == 1) THEN
-          END IF !IF(tracers(iq)%iso_iZone == 0) THEN
-        enddo
-      else
-        q(:, :, :) = 0
-      endif ! of if (planet_type=="earth")
+              ! CRisi: init des isotopes
+              ! distill de Rayleigh très simplifiée
+              iName    = tracers(iq)%iso_iName
+              if (niso <= 0 .OR. iName <= 0) CYCLE
+              iPhase   = tracers(iq)%iso_iPhase
+              iqParent = tracers(iq)%iqParent
+              IF(tracers(iq)%iso_iZone == 0) THEN
+                 IF(ltnat1) THEN
+                    tnat = 1.0
+                    alpha_ideal = 1.0
+                    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)
+                 END IF
+                 q(:,:,iq) = q(:,:,iqParent)*tnat*(q(:,:,iqParent)/30.e-3)**(alpha_ideal-1.)
+              ELSE !IF(tracers(iq)%iso_iZone == 0) THEN
+                 IF(tracers(iq)%iso_iZone == 1) THEN
+                    ! correction le 14 mai 2024 pour que tous les traceurs soient de la couleur 1.
+                    ! Sinon, on va avoir des porblèmes de conservation de masse de traceurs.
+                    q(:,:,iq) = q(:,:,iqIsoPha(iName,iPhase))
+                 else !IF(tracers(iq)%iso_iZone == 1) THEN
+                    q(:,:,iq) = 0.
+                 endif !IF(tracers(iq)%iso_iZone == 1) THEN
+              END IF !IF(tracers(iq)%iso_iZone == 0) THEN
+           enddo
+        else
+           q(:,:,:)=0
+        endif ! of if (planet_type=="earth")
 
       CALL check_isotopes_seq(q, ip1jmp1, 'iniacademic_loc')
Index: LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_check_isotopes.f90	(revision 5223)
@@ -29,8 +29,6 @@
             deltaDmin = -999.0, &
             ridicule = 1e-12
-    INTEGER, SAVE :: iso_eau, iso_HDO, iso_O18, &
-            iso_O17, iso_HTO
-    LOGICAL, SAVE :: first = .TRUE.
-    LOGICAL, PARAMETER :: tnat1 = .TRUE.
+    INTEGER, SAVE :: iso_eau, iso_O17, iso_O18, iso_HDO, iso_HTO
+    LOGICAL, SAVE :: ltnat1, first = .TRUE.
 
     modname = 'check_isotopes'
@@ -39,14 +37,16 @@
     IF(niso == 0)        RETURN                   !--- No isotopes => finished
     IF(first) THEN
+      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_O18 = strIdx(isoName, 'H218O')
-      iso_O17 = strIdx(isoName, 'H217O')
       iso_HTO = strIdx(isoName, 'HTO')
-      IF (tnat1) THEN
+      IF(ltnat1) THEN
         tnat(:) = 1.0
-      else
+      ELSE
         IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1)
-      endif
+      END IF
       first = .FALSE.
     END IF
@@ -60,5 +60,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 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_dynetat0.f90	(revision 5223)
@@ -12,5 +12,5 @@
     !-------------------------------------------------------------------------------
     USE lmdz_infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName, &
-                         new2oldH2O, newHNO3, oldHNO3, getKey
+            new2oldH2O, newHNO3, oldHNO3, getKey
     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
@@ -49,6 +49,5 @@
     INTEGER :: iq, fID, vID, idecal, iqParent, iName, iZone, iPhase, ix
     REAL :: time, tnat, alpha_ideal, tab_cntrl(length)    !--- RUN PARAMS TABLE
-    LOGICAL :: lSkip, ll
-    LOGICAL, PARAMETER :: tnat1 = .TRUE.
+    LOGICAL :: lSkip, ll, ltnat1
     !-------------------------------------------------------------------------------
     modname = "dynetat0"
@@ -140,4 +139,5 @@
       ll = nf90_inq_varid(fID, 'HNO3tot', vID) /= nf90_noerr                                 !--- DETECT OLD REPRO start.nc FILE
     END IF
+    ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)
     DO iq = 1, nqtot
       var = tracers(iq)%name
@@ -163,12 +163,12 @@
         iqParent = tracers(iq)%iqParent
         IF(tracers(iq)%iso_iZone == 0) THEN
-          IF (tnat1) THEN
+          IF(ltnat1) THEN
             tnat = 1.0
             alpha_ideal = 1.0
-            WRITE(*, *) 'attention dans dynetat0: les alpha_ideal sont a 1'
-          else
+            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)
-          endif
+          END IF
           CALL msg('Missing tracer <' // TRIM(var) // '> => initialized with a simplified Rayleigh distillation law.', modname)
           q(:, :, :, iq) = q(:, :, :, iqParent) * tnat * (q(:, :, :, iqParent) / 30.e-3)**(alpha_ideal - 1.)
Index: LMDZ6/branches/Amaury_dev/libf/dyn3d_common/iso_verif_dyn.f90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3d_common/iso_verif_dyn.f90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3d_common/iso_verif_dyn.f90	(revision 5223)
@@ -1,104 +1,112 @@
-  function iso_verif_noNaN_nostop(x,err_msg)
-    IMPLICIT NONE
-    ! si x est NaN, on affiche message
-    ! d'erreur et return 1 si erreur
+function iso_verif_noNaN_nostop(x, err_msg)
+  IMPLICIT NONE
+  ! si x est NaN, on affiche message
+  ! d'erreur et return 1 si erreur
 
-    ! input:
-    REAL :: x
-    CHARACTER(LEN=*) :: err_msg ! message d''erreur à afficher
+  ! input:
+  REAL :: x
+  CHARACTER(LEN = *) :: err_msg ! message d''erreur à afficher
 
-    ! output
-    REAL :: borne
-    parameter (borne=1e19)
-    INTEGER :: iso_verif_noNaN_nostop
+  ! output
+  REAL :: borne
+  parameter (borne = 1e19)
+  INTEGER :: iso_verif_noNaN_nostop
 
-    IF ((x>-borne).AND.(x<borne)) THEN
-            iso_verif_noNAN_nostop=0
-    else
-        WRITE(*,*) 'erreur detectee par iso_verif_nonNaN:'
-        WRITE(*,*) err_msg
-        WRITE(*,*) 'x=',x
-        iso_verif_noNaN_nostop=1
-    endif
+  IF ((x>-borne).AND.(x<borne)) THEN
+    iso_verif_noNAN_nostop = 0
+  else
+    WRITE(*, *) 'erreur detectee par iso_verif_nonNaN:'
+    WRITE(*, *) err_msg
+    WRITE(*, *) 'x=', x
+    iso_verif_noNaN_nostop = 1
+  endif
 
-    RETURN
+  RETURN
 END FUNCTION iso_verif_nonan_nostop
 
-  function iso_verif_egalite_nostop &
-          (a,b,err_msg)
-    IMPLICIT NONE
-    ! compare a et b. Si pas egal, on affiche message
-    ! d'erreur et stoppe
-    ! pour egalite, on verifie erreur absolue et arreur relative
+function iso_verif_egalite_nostop &
+        (a, b, err_msg)
+  IMPLICIT NONE
+  ! compare a et b. Si pas egal, on affiche message
+  ! d'erreur et stoppe
+  ! pour egalite, on verifie erreur absolue et arreur relative
 
-    ! input:
-    REAL :: a, b
-    CHARACTER(LEN=*) :: err_msg ! message d''erreur à afficher
+  ! input:
+  REAL :: a, b
+  CHARACTER(LEN = *) :: err_msg ! message d''erreur à afficher
 
-    ! locals
-    REAL :: errmax ! erreur maximale en absolu.
-    REAL :: errmaxrel ! erreur maximale en relatif autorisée
-    parameter (errmax=1e-8)
-    parameter (errmaxrel=1e-3)
+  ! locals
+  REAL :: errmax ! erreur maximale en absolu.
+  REAL :: errmaxrel ! erreur maximale en relatif autorisée
+  parameter (errmax = 1e-8)
+  parameter (errmaxrel = 1e-3)
 
-    ! output
-    INTEGER :: iso_verif_egalite_nostop
+  ! output
+  INTEGER :: iso_verif_egalite_nostop
 
-    iso_verif_egalite_nostop=0
+  iso_verif_egalite_nostop = 0
 
-    IF (abs(a-b)>errmax) THEN
-      IF (abs((a-b)/max(max(abs(b),abs(a)),1e-18)) &
+  IF (abs(a - b)>errmax) THEN
+    IF (abs((a - b) / max(max(abs(b), abs(a)), 1e-18)) &
             >errmaxrel) THEN
-        WRITE(*,*) 'erreur detectee par iso_verif_egalite:'
-        WRITE(*,*) err_msg
-        WRITE(*,*) 'a=',a
-        WRITE(*,*) 'b=',b
-        iso_verif_egalite_nostop=1
-      endif
+      WRITE(*, *) 'erreur detectee par iso_verif_egalite:'
+      WRITE(*, *) err_msg
+      WRITE(*, *) 'a=', a
+      WRITE(*, *) 'b=', b
+      iso_verif_egalite_nostop = 1
     endif
+  endif
 
-    RETURN
+  RETURN
 END FUNCTION iso_verif_egalite_nostop
 
 
-  function iso_verif_aberrant_nostop &
-          (x,iso,q,err_msg)
-    USE lmdz_infotrac, ONLY: isoName, getKey
-    IMPLICIT NONE
+function iso_verif_aberrant_nostop &
+        (x, iso, q, err_msg)
+  USE lmdz_infotrac, ONLY: isoName, getKey
+  IMPLICIT NONE
 
-    ! input:
-    REAL :: x,q
-    INTEGER :: iso ! 2=HDO, 1=O18
-    CHARACTER(LEN=*) :: err_msg ! message d''erreur à afficher
+  ! input:
+  REAL :: x, q
+  INTEGER :: iso ! 2=HDO, 1=O18
+  CHARACTER(LEN = *) :: err_msg ! message d''erreur à afficher
 
-    ! locals
-    REAL :: qmin,deltaD
-    REAL :: deltaDmax,deltaDmin,tnat
-    parameter (qmin=1e-11)
-    parameter (deltaDmax=200.0,deltaDmin=-999.9)
+  ! locals
+  REAL :: qmin, deltaD
+  REAL :: deltaDmax, deltaDmin, tnat
+  parameter (qmin = 1e-11)
+  parameter (deltaDmax = 200.0, deltaDmin = -999.9)
+  LOGICAL, SAVE :: ltnat1
+  LOGICAL, SAVE :: lFirst = .TRUE.
 
-    ! output
-    INTEGER :: iso_verif_aberrant_nostop
+  ! output
+  INTEGER :: iso_verif_aberrant_nostop
 
-    iso_verif_aberrant_nostop=0
+  IF(lFirst) THEN
+    ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)
+    lFirst = .FALSE.
+  END IF
+  iso_verif_aberrant_nostop = 0
 
-    ! verifier que HDO est raisonable
-     IF (q>qmin) THEN
-         IF(getKey('tnat', tnat, isoName(iso))) THEN
-              err_msg = 'Missing isotopic parameter "tnat"'
-              iso_verif_aberrant_nostop=1
-              RETURN
-         END IF
-         deltaD=(x/q/tnat-1)*1000
-         IF ((deltaD>deltaDmax).OR.(deltaD<deltaDmin)) THEN
-              WRITE(*,*) 'erreur detectee par iso_verif_aberrant:'
-              WRITE(*,*) err_msg
-              WRITE(*,*) 'q=',q
-              WRITE(*,*) 'deltaD=',deltaD
-              WRITE(*,*) 'iso=',iso
-              iso_verif_aberrant_nostop=1
-         endif !if ((deltaD.gt.deltaDmax).OR.(deltaD.lt.deltaDmin)) THEN
-      endif !if (q(i,k,iq).gt.qmin) THEN
-    RETURN
+  ! verifier que HDO est raisonable
+  IF (q>qmin) THEN
+    IF(ltnat1) THEN
+      tnat = 1.0
+    ELSE IF(getKey('tnat', tnat, isoName(iso))) THEN
+      err_msg = 'Missing isotopic parameter "tnat"'
+      iso_verif_aberrant_nostop = 1
+      RETURN
+    END IF
+    deltaD = (x / q / tnat - 1) * 1000
+    IF ((deltaD>deltaDmax).OR.(deltaD<deltaDmin)) THEN
+      WRITE(*, *) 'erreur detectee par iso_verif_aberrant:'
+      WRITE(*, *) err_msg
+      WRITE(*, *) 'q=', q
+      WRITE(*, *) 'deltaD=', deltaD
+      WRITE(*, *) 'iso=', iso
+      iso_verif_aberrant_nostop = 1
+    endif !if ((deltaD.gt.deltaDmax).OR.(deltaD.lt.deltaDmin)) THEN
+  endif !if (q(i,k,iq).gt.qmin) THEN
+  RETURN
 END FUNCTION iso_verif_aberrant_nostop
 
Index: LMDZ6/branches/Amaury_dev/libf/dyn3dmem/check_isotopes_loc.F90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3dmem/check_isotopes_loc.F90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3dmem/check_isotopes_loc.F90	(revision 5223)
@@ -24,8 +24,8 @@
                       deltaDmin =-999.0, &
                       ridicule  = 1e-12
-   INTEGER, SAVE :: iso_eau, iso_HDO, iso_O18, & !--- OpenMP shared variables
-                             iso_O17, iso_HTO
+   INTEGER, SAVE :: iso_eau, iso_HDO, iso_O18, iso_O17, iso_HTO
+!$OMP THREADPRIVATE(iso_eau, iso_HDO, iso_O18, iso_O17, iso_HTO)
+   LOGICAL       :: ltnat1
    LOGICAL, SAVE :: first=.TRUE.
-   LOGICAL, PARAMETER :: tnat1=.TRUE.
 !$OMP THREADPRIVATE(first)
 
@@ -36,14 +36,16 @@
    IF(first) THEN
 !$OMP MASTER
+      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_O18 = strIdx(isoName,'H218O')
-      iso_O17 = strIdx(isoName,'H217O')
       iso_HTO = strIdx(isoName,'HTO')
-      IF (tnat1) THEN
-              tnat(:)=1.0
-      else
+      IF(ltnat1) THEN
+         tnat(:)=1.0
+      ELSE
          IF(getKey('tnat', tnat)) CALL abort_gcm(modname, 'missing isotopic parameter', 1)
-      endif
+      END IF
 !$OMP END MASTER
 !$OMP BARRIER
@@ -60,5 +62,5 @@
          DO k = 1, llm
             DO i = ijb, ije
-               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/dyn3dmem/dynetat0_loc.f90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynetat0_loc.f90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynetat0_loc.f90	(revision 5223)
@@ -8,5 +8,5 @@
   USE parallel_lmdz
   USE lmdz_infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName, &
-                         new2oldH2O, newHNO3, oldHNO3, getKey
+          new2oldH2O, newHNO3, oldHNO3, getKey
   USE lmdz_strings, ONLY: maxlen, msg, strStack, real2str, int2str, strIdx
   USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_inquire_dimension, nf90_inq_varid, &
@@ -49,6 +49,5 @@
   REAL, ALLOCATABLE :: ucov_glo(:, :), q_glo(:, :), phis_glo(:)
   REAL, ALLOCATABLE :: teta_glo(:, :)
-  LOGICAL :: lSkip, ll
-  LOGICAL, PARAMETER :: tnat1 = .TRUE.
+  LOGICAL :: lSkip, ll, ltnat1
   !-------------------------------------------------------------------------------
   modname = "dynetat0_loc"
@@ -160,4 +159,5 @@
     ll = nf90_inq_varid(fID, 'HNO3tot', vID) /= nf90_noerr                                 !--- DETECT OLD REPRO start.nc FILE
   END IF
+  ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)
   DO iq = 1, nqtot
     var = tracers(iq)%name
@@ -175,5 +175,5 @@
       !--------------------------------------------------------------------------------------------------------------------------
     ELSE IF(nf90_inq_varid(fID, oldVar, vID) == nf90_noerr) THEN                         !=== TRY WITH ALTERNATE NAME
-      CALL msg('Missing tracer <'//TRIM(var)//'> => initialized to <' // TRIM(oldVar) // '>', modname)
+      CALL msg('Missing tracer <' // TRIM(var) // '> => initialized to <' // TRIM(oldVar) // '>', modname)
       CALL get_var2(oldVar, q_glo); q(ijb_u:ije_u, :, iq) = q_glo(ijb_u:ije_u, :)
       !--------------------------------------------------------------------------------------------------------------------------
@@ -183,18 +183,18 @@
       iqParent = tracers(iq)%iqParent
       IF(tracers(iq)%iso_iZone == 0) THEN
-        IF (tnat1) THEN
+        IF(ltnat1) THEN
           tnat = 1.0
           alpha_ideal = 1.0
-          WRITE(*, *) 'attention dans dynetat0: les alpha_ideal sont a 1'
-        else
+          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)
-        endif
-        CALL msg('Missing tracer <'//TRIM(var)//'> => initialized with a simplified Rayleigh distillation law.', modname)
+        END IF
+        CALL msg('Missing tracer <' // TRIM(var) // '> => initialized with a simplified Rayleigh distillation law.', modname)
         q(ijb_u:ije_u, :, iq) = q(ijb_u:ije_u, :, iqParent) * tnat * (q(ijb_u:ije_u, :, iqParent) / 30.e-3)**(alpha_ideal - 1.)
         ! Camille 9 mars 2023: point de vigilence: initialisation incohérente
         ! avec celle de xt_ancien dans la physiq.
       ELSE
-        CALL msg('Missing tracer <'//TRIM(var)//'> => initialized to its parent isotope concentration.', modname)
+        CALL msg('Missing tracer <' // TRIM(var) // '> => initialized to its parent isotope concentration.', modname)
         ! Camille 9 mars 2023: attention!! seuls les tags qui correspondent à
         ! izone=izone_init (définie dans isotrac_mod) sont initialisés comme
@@ -210,5 +210,5 @@
       !--------------------------------------------------------------------------------------------------------------------------
     ELSE                                                                                 !=== MISSING: SET TO 0
-      CALL msg('Missing tracer <'//TRIM(var)//'> => initialized to zero', modname)
+      CALL msg('Missing tracer <' // TRIM(var) // '> => initialized to zero', modname)
       q(ijb_u:ije_u, :, iq) = 0.
       !--------------------------------------------------------------------------------------------------------------------------
Index: LMDZ6/branches/Amaury_dev/libf/dyn3dmem/iniacademic_loc.F90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3dmem/iniacademic_loc.F90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3dmem/iniacademic_loc.F90	(revision 5223)
@@ -78,8 +78,8 @@
 
   REAL zdtvr, tnat, alpha_ideal
-  LOGICAL, PARAMETER :: tnat1 = .TRUE.
-
-  CHARACTER(LEN = *), parameter :: modname = "iniacademic"
-  CHARACTER(LEN = 80) :: abort_message
+  LOGICAL :: ltnat1
+  
+  CHARACTER(LEN=*),parameter :: modname="iniacademic"
+  CHARACTER(LEN=80) :: abort_message
 
   ! Sanity check: verify that options selected by user are not incompatible
@@ -304,5 +304,5 @@
       ! bulk initialization of tracers
       IF (planet_type=="earth") THEN
-        ! Earth: first two tracers will be water
+        ltnat1 = .TRUE.; CALL getin('tnateq1', ltnat1)! Earth: first two tracers will be water
         DO iq = 1, nqtot
           q(ijb_u:ije_u, :, iq) = 0.
@@ -310,33 +310,33 @@
           IF(tracers(iq)%name == addPhase('H2O', 'l')) q(ijb_u:ije_u, :, iq) = 1.e-15
 
-          ! CRisi: init des isotopes
-          ! distill de Rayleigh très simplifiée
-          iName = tracers(iq)%iso_iName
-          IF (niso <= 0 .OR. iName <= 0) CYCLE
-          iPhase = tracers(iq)%iso_iPhase
-          iqParent = tracers(iq)%iqParent
-          IF(tracers(iq)%iso_iZone == 0) THEN
-            IF (tnat1) THEN
-              tnat = 1.0
-              alpha_ideal = 1.0
-              WRITE(*, *) 'Attention dans iniacademic: alpha_ideal=1'
-            else
-              IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) &
-                      CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1)
-            endif
-            q(ijb_u:ije_u, :, iq) = q(ijb_u:ije_u, :, iqParent) * tnat * (q(ijb_u:ije_u, :, iqParent) / 30.e-3)**(alpha_ideal - 1.)
-          ELSE !IF(tracers(iq)%iso_iZone == 0) THEN
-            IF(tracers(iq)%iso_iZone == 1) THEN ! a verifier.
-              ! correction le 14 mai 2024 pour que tous les traceurs soient de la couleur 1.
-              ! Sinon, on va avoir des porblèmes de conservation de masse de traceurs.
-              q(ijb_u:ije_u, :, iq) = q(ijb_u:ije_u, :, iqIsoPha(iName, iPhase))
-            else !IF(tracers(iq)%iso_iZone == 1) THEN
-              q(ijb_u:ije_u, :, iq) = 0.0
-            endif !IF(tracers(iq)%iso_iZone == 1) THEN
-          END IF !IF(tracers(iq)%iso_iZone == 0) THEN
-        enddo
-      else
-        q(ijb_u:ije_u, :, :) = 0
-      endif ! of if (planet_type=="earth")
+              ! CRisi: init des isotopes
+              ! distill de Rayleigh très simplifiée
+              iName    = tracers(iq)%iso_iName
+              if (niso <= 0 .OR. iName <= 0) CYCLE
+              iPhase   = tracers(iq)%iso_iPhase
+              iqParent = tracers(iq)%iqParent
+              IF(tracers(iq)%iso_iZone == 0) THEN
+                 IF(ltnat1) THEN
+                    tnat = 1.0
+                    alpha_ideal = 1.0
+                    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)
+                 END IF
+                 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal-1.)
+              ELSE !IF(tracers(iq)%iso_iZone == 0) THEN
+                 IF(tracers(iq)%iso_iZone == 1) THEN ! a verifier.
+                    ! correction le 14 mai 2024 pour que tous les traceurs soient de la couleur 1.
+                    ! Sinon, on va avoir des porblèmes de conservation de masse de traceurs.
+                    q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqIsoPha(iName,iPhase))
+                 else !IF(tracers(iq)%iso_iZone == 1) THEN
+                    q(ijb_u:ije_u,:,iq) = 0.0
+                 endif !IF(tracers(iq)%iso_iZone == 1) THEN
+              END IF !IF(tracers(iq)%iso_iZone == 0) THEN
+           enddo
+        else
+           q(ijb_u:ije_u,:,:)=0
+        endif ! of if (planet_type=="earth")
 
       CALL check_isotopes(q, ijb_u, ije_u, 'iniacademic_loc')
Index: LMDZ6/branches/Amaury_dev/libf/dyn3dmem/qminimum_loc.f90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/dyn3dmem/qminimum_loc.f90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/dyn3dmem/qminimum_loc.f90	(revision 5223)
@@ -7,5 +7,4 @@
   USE lmdz_strings, ONLY: strIdx
   USE lmdz_iniprint, ONLY: lunout, prt_level
-
 
   USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
Index: LMDZ6/branches/Amaury_dev/libf/phylmd/infotrac_phy.F90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/phylmd/infotrac_phy.F90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/phylmd/infotrac_phy.F90	(revision 5223)
@@ -316,5 +316,5 @@
     !--- Transfert the number of tracers to Reprobus
     IF (CPPKEY_REPROBUS) THEN
-      CALL Init_chem_rep_trac(nbtr, nqo, tracers(:)%name)
+      CALL Init_chem_rep_trac(nbtr, nqo, tracers(:)%name)                         !--- Transfert the number of tracers to Reprobus
     END IF
 
Index: LMDZ6/branches/Amaury_dev/libf/phylmdiso/isotopes_mod.F90
===================================================================
--- LMDZ6/branches/Amaury_dev/libf/phylmdiso/isotopes_mod.F90	(revision 5222)
+++ LMDZ6/branches/Amaury_dev/libf/phylmdiso/isotopes_mod.F90	(revision 5223)
@@ -160,5 +160,6 @@
    !=== Local variables:
    INTEGER :: ixt
-
+   LOGICAL :: ltnat1
+   CHARACTER(LEN=maxlen) :: modname, sxt
  
    !--- For H2[17]O
@@ -169,10 +170,7 @@
    LOGICAL, PARAMETER ::   ok_nocinsat = .FALSE. ! if T: no sursaturation effect for ice
    LOGICAL, PARAMETER :: Rdefault_smow = .FALSE. ! if T: Rdefault=smow; if F: nul
-   LOGICAL, PARAMETER :: tnat1 = .TRUE. ! If T: all tnats are 1.
 
    !--- For [3]H
    INTEGER :: iessai
-
-   CHARACTER(LEN=maxlen) :: modname, sxt
 
    modname = 'iso_init'
@@ -264,4 +262,5 @@
    IF(ANY(isoName == 'HTO')) &
    CALL get_in('ok_prod_nucl_tritium', ok_prod_nucl_tritium, .FALSE., .FALSE.)
+   CALL get_in('tnateq1', ltnat1, .TRUE.)
 
    ! Ocean composition
@@ -294,9 +293,5 @@
        tkcin1(ixt) = 0.0005016
        tkcin2(ixt) = 0.0014432
-       IF (tnat1) THEN
-               tnat(ixt)=1 
-       else 
-               tnat(ixt)=0.
-       endif
+       tnat(ixt) = 0.0; IF(ltnat1) tnat(ixt)=1
        toce(ixt)=4.0E-19 ! rapport T/H = 0.2 TU Dreisigacker and Roether 1978
        tcorr(ixt)=1.
@@ -317,9 +312,6 @@
        tkcin1(ixt) = tkcin1_O18*fac_kcin
        tkcin2(ixt) = tkcin2_O18*fac_kcin
-       IF (tnat1) THEN
-               tnat(ixt)=1 
-       else 
-               tnat(ixt)=0.004/100. ! O17 représente 0.004% de l'oxygène
-       endif
+       tnat(ixt)=0.004/100. ! O17 représente 0.004% de l'oxygène
+       IF(ltnat1) tnat(ixt)=1
        toce(ixt)=tnat(ixt)*(1.0+deltaO18_oce/1000.0)**pente_MWL
        tcorr(ixt)=1.0+fac_enrichoce18*pente_MWL ! donné par Amaelle            
@@ -337,9 +329,5 @@
        tkcin1(ixt) = tkcin1_O18
        tkcin2(ixt) = tkcin2_O18
-       IF (tnat1) THEN
-               tnat(ixt)=1 
-       else 
-               tnat(ixt)=2005.2E-6
-       endif
+       tnat(ixt)=2005.2E-6; IF(ltnat1) tnat(ixt)=1
        toce(ixt)=tnat(ixt)*(1.0+deltaO18_oce/1000.0)
        tcorr(ixt)=1.0+fac_enrichoce18
@@ -361,9 +349,5 @@
        tkcin1(ixt) = tkcin1_O18*fac_kcin
        tkcin2(ixt) = tkcin2_O18*fac_kcin
-       IF (tnat1) THEN
-               tnat(ixt)=1
-       else
-               tnat(ixt)=155.76E-6
-       endif
+       tnat(ixt)=155.76E-6; IF(ltnat1) tnat(ixt)=1
        toce(ixt)=tnat(ixt)*(1.0+pente_MWL*deltaO18_oce/1000.0)
        tcorr(ixt)=1.0+fac_enrichoce18*pente_MWL          
