Index: /trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90
===================================================================
--- /trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90	(revision 3508)
+++ /trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90	(revision 3509)
@@ -8,7 +8,7 @@
 #endif
   USE infotrac, ONLY: nqtot, tname, ttext
-  USE netcdf, ONLY: NF90_CREATE, NF90_DEF_DIM, NF90_INQ_VARID, NF90_GLOBAL,    &
+  USE netcdf, ONLY: NF90_CREATE, NF90_DEF_DIM, NF90_INQ_VARID, NF90_GLOBAL, &
                     NF90_CLOSE,  NF90_PUT_ATT, NF90_UNLIMITED, NF90_CLOBBER
-  USE dynredem_mod, ONLY: cre_var, put_var1, put_var2, err, modname, fil
+  USE dynredem_mod, ONLY: cre_var, put_var1, put_var2, put_char1, err, modname, fil
   use netcdf95, only: NF95_PUT_VAR
   use control_mod, only : planet_type
@@ -44,5 +44,35 @@
   INTEGER :: iq,l
   INTEGER, PARAMETER :: length=100
+  INTEGER, PARAMETER :: ldscrpt = 28, ndscrpt = 42
   REAL :: tab_cntrl(length) ! run parameters
+  character(ndscrpt), dimension(ldscrpt), parameter :: dscrpt_tab_cntrl = (/ &
+      "(1)  Number of nodes along longitude      ", &
+      "(2)  Number of nodes along latitude       ", &
+      "(3)  Number of atmospheric layers         ", &
+      "(4)  Initial day                          ", &
+      "(5)  Radius of the planet                 ", &
+      "(6)  Rotation of the planet (rad/s)       ", &
+      "(7)  Gravity (m/s2)                       ", &
+      "(8)  Specific heat Cp (J.kg-1.K-1)        ", &
+      "(9)  = r/Cp (=kappa)                      ", &
+      "(10) Lenght of a sol (s)                  ", &
+      "(11) Dynamical time step (s)              ", &
+      "(12) Total energy                         ", &
+      "(13) Total pressure                       ", &
+      "(14) Total enstrophy                      ", &
+      "(15) Total enthalpy                       ", &
+      "(16) Total angular momentum               ", &
+      "(17) Reference pressure (Pa)              ", &
+      "(18) Reference surface pressure (Pa)      ", &
+      "(19) Longitude of center of zoom          ", &
+      "(20) Latitude of center of zoom           ", &
+      "(21) Zooming factor, along longitude      ", &
+      "(22) Zooming factor, along latitude       ", &
+      "(23) -                                    ", &
+      "(24) Extention (in longitude) of zoom     ", &
+      "(25) Extention (in latitude) of zoom      ", &
+      "(26) -                                    ", &
+      "(27) Stiffness factor of zoom in longitude", &
+      "(28) Stiffness factor of zoom in latitude "/)
   INTEGER :: ierr
   CHARACTER(LEN=80) :: abort_message
@@ -50,5 +80,5 @@
 !   For NetCDF:
   CHARACTER(LEN=30) :: unites
-  INTEGER :: indexID
+  INTEGER :: indexID, descrptID, dscrpt_sID
   INTEGER :: rlonuID, rlonvID, rlatuID, rlatvID
   INTEGER :: sID, sigID, nID, vID, timID
@@ -166,4 +196,6 @@
     CALL err(NF90_DEF_DIM(nid,"sig",   llmp1,    sigID))
     CALL err(NF90_DEF_DIM(nid,"temps", NF90_UNLIMITED, timID))
+    CALL err(NF90_DEF_DIM(nid,"descriptor", ldscrpt, descrptID))
+    CALL err(NF90_DEF_DIM(nid,"description_size", ndscrpt, dscrpt_sID))
   else
     CALL err(NF90_DEF_DIM(nid,"index", length, indexID))
@@ -175,8 +207,11 @@
     CALL err(NF90_DEF_DIM(nid,"interlayer",   llmp1,    sigID))
     CALL err(NF90_DEF_DIM(nid,"Time", NF90_UNLIMITED, timID))
+    CALL err(NF90_DEF_DIM(nid,"descriptor", ldscrpt, descrptID))
+    CALL err(NF90_DEF_DIM(nid,"description_size", ndscrpt, dscrpt_sID))
   endif
 
 !--- Define and save invariant fields
-  CALL put_var1(nid,"controle","Parametres de controle" ,[indexID],tab_cntrl)
+  CALL put_var1(nid,"controle","Parametres de controle",[indexID],tab_cntrl)
+  CALL put_char1(nid,"controle_descriptor","Description of control parameters",[dscrpt_sID,descrptID],dscrpt_tab_cntrl)
   CALL put_var1(nid,"rlonu"   ,"Longitudes des points U",[rlonuID],rlonu)
   CALL put_var1(nid,"rlatu"   ,"Latitudes des points U" ,[rlatuID],rlatu)
Index: /trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem_mod.F90
===================================================================
--- /trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem_mod.F90	(revision 3508)
+++ /trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem_mod.F90	(revision 3509)
@@ -4,8 +4,8 @@
                     NF90_REDEF, NF90_ENDDEF, NF90_PUT_VAR, &
                     NF90_PUT_ATT, NF90_GET_VAR, NF90_INQ_VARID, &
-                    NF90_DEF_VAR
+                    NF90_DEF_VAR, NF90_CHAR
   PRIVATE
   PUBLIC :: dynredem_write_u, dynredem_write_v, dynredem_read_u, err
-  PUBLIC :: cre_var, get_var1, put_var1, put_var2, fil, modname, msg
+  PUBLIC :: cre_var, get_var1, put_var1, put_var2, put_char1, fil, modname, msg
   include "dimensions.h"
   include "paramet.h"
@@ -184,4 +184,30 @@
 !===============================================================================
 !
+SUBROUTINE put_char1(ncid,var,title,did,v,units)
+!
+!===============================================================================
+  IMPLICIT NONE
+!===============================================================================
+! Arguments:
+  INTEGER,                    INTENT(IN) :: ncid
+  CHARACTER(LEN=*),           INTENT(IN) :: var, title
+  INTEGER,                    INTENT(IN) :: did(2)
+  CHARACTER(*),               INTENT(IN) :: v(:)
+  CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: units
+!===============================================================================
+  CALL err(NF90_DEF_VAR(ncid,var,NF90_CHAR,did,nvarid),"inq",var)
+  IF(title/="")      CALL err(NF90_PUT_ATT(ncid,nvarid,"title",title),var)
+  IF(PRESENT(units)) CALL err(NF90_PUT_ATT(ncid,nvarid,"units",units),var)
+  CALL err(NF90_ENDDEF(ncid))
+  CALL err(NF90_PUT_VAR(ncid,nvarid,v),"put",var)
+  CALL err(NF90_REDEF(ncid))
+
+END SUBROUTINE put_char1
+!
+!===============================================================================
+
+
+!===============================================================================
+!
 FUNCTION msg(typ,nam)
 !
Index: /trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90
===================================================================
--- /trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90	(revision 3508)
+++ /trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90	(revision 3509)
@@ -10,5 +10,5 @@
   USE netcdf, ONLY: NF90_CREATE, NF90_DEF_DIM, NF90_INQ_VARID, NF90_GLOBAL,    &
                     NF90_CLOSE,  NF90_PUT_ATT, NF90_UNLIMITED, NF90_CLOBBER
-  USE dynredem_mod, ONLY: cre_var, put_var1, put_var2, err, modname, fil
+  USE dynredem_mod, ONLY: cre_var, put_var1, put_var2, put_char1, err, modname, fil
   use netcdf95, only: NF95_PUT_VAR
   use control_mod, only : planet_type
@@ -44,5 +44,35 @@
   INTEGER :: iq,l
   INTEGER, PARAMETER :: length=100
+  INTEGER, PARAMETER :: ldscrpt = 28, ndscrpt = 42
   REAL :: tab_cntrl(length) ! run parameters
+  character(ndscrpt), dimension(ldscrpt), parameter :: dscrpt_tab_cntrl = (/ &
+      "(1)  Number of nodes along longitude      ", &
+      "(2)  Number of nodes along latitude       ", &
+      "(3)  Number of atmospheric layers         ", &
+      "(4)  Initial day                          ", &
+      "(5)  Radius of the planet                 ", &
+      "(6)  Rotation of the planet (rad/s)       ", &
+      "(7)  Gravity (m/s2)                       ", &
+      "(8)  Specific heat Cp (J.kg-1.K-1)        ", &
+      "(9)  = r/Cp (=kappa)                      ", &
+      "(10) Lenght of a sol (s)                  ", &
+      "(11) Dynamical time step (s)              ", &
+      "(12) Total energy                         ", &
+      "(13) Total pressure                       ", &
+      "(14) Total enstrophy                      ", &
+      "(15) Total enthalpy                       ", &
+      "(16) Total angular momentum               ", &
+      "(17) Reference pressure (Pa)              ", &
+      "(18) Reference surface pressure (Pa)      ", &
+      "(19) Longitude of center of zoom          ", &
+      "(20) Latitude of center of zoom           ", &
+      "(21) Zooming factor, along longitude      ", &
+      "(22) Zooming factor, along latitude       ", &
+      "(23) -                                    ", &
+      "(24) Extention (in longitude) of zoom     ", &
+      "(25) Extention (in latitude) of zoom      ", &
+      "(26) -                                    ", &
+      "(27) Stiffness factor of zoom in longitude", &
+      "(28) Stiffness factor of zoom in latitude "/)
   INTEGER :: ierr
   CHARACTER(LEN=80) :: abort_message
@@ -50,5 +80,5 @@
 !   For NetCDF:
   CHARACTER(LEN=30) :: unites
-  INTEGER :: indexID
+  INTEGER :: indexID, descrptID, dscrpt_sID
   INTEGER :: rlonuID, rlonvID, rlatuID, rlatvID
   INTEGER :: sID, sigID, nID, vID, timID
@@ -167,4 +197,6 @@
     CALL err(NF90_DEF_DIM(nid,"sig",   llmp1,    sigID))
     CALL err(NF90_DEF_DIM(nid,"temps", NF90_UNLIMITED, timID))
+    CALL err(NF90_DEF_DIM(nid,"descriptor", ldscrpt, descrptID))
+    CALL err(NF90_DEF_DIM(nid,"description_size", ndscrpt, dscrpt_sID))
   else
     CALL err(NF90_DEF_DIM(nid,"index", length, indexID))
@@ -176,8 +208,11 @@
     CALL err(NF90_DEF_DIM(nid,"interlayer",   llmp1,    sigID))
     CALL err(NF90_DEF_DIM(nid,"Time", NF90_UNLIMITED, timID))
+    CALL err(NF90_DEF_DIM(nid,"descriptor", ldscrpt, descrptID))
+    CALL err(NF90_DEF_DIM(nid,"description_size", ndscrpt, dscrpt_sID))
   endif
 
 !--- Define and save invariant fields
   CALL put_var1(nid,"controle","Parametres de controle" ,[indexID],tab_cntrl)
+  CALL put_char1(nid,"controle_descriptor","Description of control parameters",[dscrpt_sID,descrptID],dscrpt_tab_cntrl)
   CALL put_var1(nid,"rlonu"   ,"Longitudes des points U",[rlonuID],rlonu)
   CALL put_var1(nid,"rlatu"   ,"Latitudes des points U" ,[rlatuID],rlatu)
Index: /trunk/LMDZ.MARS/changelog.txt
===================================================================
--- /trunk/LMDZ.MARS/changelog.txt	(revision 3508)
+++ /trunk/LMDZ.MARS/changelog.txt	(revision 3509)
@@ -4736,2 +4736,5 @@
 sub-grid-scale fields in start_archive.nc. This optional behavior is
 triggered at run time by specifying "start2archive.e --add-sso".
+
+== 08/11/2024 == JBC
+Addition of the description for the 'controle' array in the "start.nc" and "startfi.nc" files. It is given by the variable 'controle_descriptor' whose the element 'controle_descriptor(i)' explains 'controle(i)'.
Index: /trunk/LMDZ.MARS/libf/phymars/iostart.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/iostart.F90	(revision 3508)
+++ /trunk/LMDZ.MARS/libf/phymars/iostart.F90	(revision 3509)
@@ -8,20 +8,24 @@
     
     ! restartfi.nc file dimension identifiers: (see open_restartphy())
-    INTEGER,SAVE :: idim1 ! "index" dimension
-    INTEGER,SAVE :: idim2 ! "physical_points" dimension
-    INTEGER,SAVE :: idim3 ! "subsurface_layers" dimension
-    INTEGER,SAVE :: idim4 ! "nlayer_plus_1" dimension
-    INTEGER,SAVE :: idim5 ! "number_of_advected_fields" dimension
-    INTEGER,SAVE :: idim6 ! "nlayer" dimension
-    INTEGER,SAVE :: idim7 ! "Time" dimension
-    INTEGER,SAVE :: idim8 ! "nslope" dimension
-    INTEGER,SAVE :: idim9 ! "nslope_plus_1" dimension
+    INTEGER,SAVE :: idim1  ! "index" dimension
+    INTEGER,SAVE :: idim2  ! "physical_points" dimension
+    INTEGER,SAVE :: idim3  ! "subsurface_layers" dimension
+    INTEGER,SAVE :: idim4  ! "nlayer_plus_1" dimension
+    INTEGER,SAVE :: idim5  ! "number_of_advected_fields" dimension
+    INTEGER,SAVE :: idim6  ! "nlayer" dimension
+    INTEGER,SAVE :: idim7  ! "Time" dimension
+    INTEGER,SAVE :: idim8  ! "nslope" dimension
+    INTEGER,SAVE :: idim9  ! "nslope_plus_1" dimension
+    INTEGER,SAVE :: idim10 ! "descriptor" dimension
+    INTEGER,SAVE :: idim11 ! "description_size" dimension
     INTEGER,SAVE :: timeindex ! current time index (for time-dependent fields)
-    INTEGER,PARAMETER :: length=100 ! size of tab_cntrl array
-    
+    INTEGER,PARAMETER :: length = 100 ! size of tab_cntrl array
+    INTEGER,PARAMETER :: ldscrpt = 35 ! size of dscrpt_tab_cntrl array
+    INTEGER,PARAMETER :: ndscrpt = 50 ! size of characters in dscrpt_tab_cntrl array
+
     INTERFACE get_field
       MODULE PROCEDURE Get_field_r1,Get_field_r2,Get_field_r3
     END INTERFACE get_field
-    
+
     INTERFACE get_var
       MODULE PROCEDURE get_var_r0,Get_var_r1,Get_var_r2,Get_var_r3
@@ -33,13 +37,13 @@
 
     INTERFACE put_var
-      MODULE PROCEDURE put_var_r0,put_var_r1,put_var_r2,put_var_r3
+      MODULE PROCEDURE put_var_r0,put_var_r1,put_var_r2,put_var_r3, put_var_c1
     END INTERFACE put_var
 
-    PUBLIC nid_start, length
+    PUBLIC nid_start, length, ldscrpt, ndscrpt
     PUBLIC get_field,get_var,put_field,put_var
     PUBLIC inquire_dimension, inquire_dimension_length
     PUBLIC inquire_field, inquire_field_ndims
     PUBLIC open_startphy,close_startphy,open_restartphy,close_restartphy
-    
+
 CONTAINS
 
@@ -178,6 +182,4 @@
 
   END FUNCTION inquire_dimension_length
-
-
 
   SUBROUTINE Get_Field_r1(field_name,field,found,timeindex)
@@ -566,14 +568,28 @@
       ierr=NF90_DEF_DIM(nid_restart,"nslope",nslope,idim8)
       IF (ierr/=NF90_NOERR) THEN
-        write(*,*)'phyredem: problem defining nslope dimension'
-        write(*,*)trim(nf90_strerror(ierr))
-        CALL ABORT
+        write(*,*)'open_restartphy: problem defining nslope dimension'
+        write(*,*)trim(nf90_strerror(ierr))
+        CALL abort_physic("open_restartphy","Failed defining nslope",1)
       ENDIF
 
       ierr=NF90_DEF_DIM(nid_restart,"inter_slope",nslope+1,idim9)
       IF (ierr/=NF90_NOERR) THEN
-        write(*,*)'phyredem: problem defining inter slope dimension'
-        write(*,*)trim(nf90_strerror(ierr))
-        CALL ABORT
+        write(*,*)'open_restartphy: problem defining inter_slope dimension'
+        write(*,*)trim(nf90_strerror(ierr))
+        CALL abort_physic("open_restartphy","Failed defining inter_slope",1)
+      ENDIF
+      
+      ierr=NF90_DEF_DIM(nid_restart,"descriptor",ldscrpt,idim10)
+      IF (ierr/=NF90_NOERR) THEN
+        write(*,*)'open_restartphy: problem defining descriptor dimension '
+        write(*,*)trim(nf90_strerror(ierr))
+        CALL abort_physic("open_restartphy","Failed defining descriptor",1)
+      ENDIF
+      
+      ierr=NF90_DEF_DIM(nid_restart,"description_size",ndscrpt,idim11)
+      IF (ierr/=NF90_NOERR) THEN
+        write(*,*)'open_restartphy: problem defining description_size dimension '
+        write(*,*)trim(nf90_strerror(ierr))
+        CALL abort_physic("open_restartphy","Failed defining description_size",1)
       ENDIF
 
@@ -946,5 +962,4 @@
   END SUBROUTINE put_var_r0
 
-
   SUBROUTINE put_var_r1(var_name,title,var)
   ! Put a vector in file
@@ -967,5 +982,5 @@
      CALL put_var_rgen(var_name,title,var,size(var))
 
-  END SUBROUTINE put_var_r2     
+  END SUBROUTINE put_var_r2
   
   SUBROUTINE put_var_r3(var_name,title,var)
@@ -1029,5 +1044,5 @@
           write(*,*)'put_var_rgen: problem writing Time'
           write(*,*)trim(nf90_strerror(ierr))
-          CALL abort_physic("get_var_rgen","Failed to write Time",1)
+          CALL abort_physic("put_var_rgen","Failed to write Time",1)
         ENDIF
         return ! nothing left to do
@@ -1036,13 +1051,13 @@
         idim1d=idim1
       ELSEIF (var_size==nsoilmx) THEN
-        ! We know it is an  "mlayer" kind of 1D array
+        ! We know it is an "mlayer" kind of 1D array
         idim1d=idim3
       ELSEIF (var_size==nslope+1) THEN
-        ! We know it is an  "inter slope" kind of 1D array
+        ! We know it is an "inter slope" kind of 1D array
         idim1d=idim9
       ELSE 
         PRINT *, "put_var_rgen error : wrong dimension"
         write(*,*) "  var_size =",var_size
-        CALL abort_physic("get_var_rgen","Wrong variable dimension",1)
+        CALL abort_physic("put_var_rgen","Wrong variable dimension",1)
 
       ENDIF ! of IF (var_size==length) THEN
@@ -1070,5 +1085,60 @@
     ENDIF ! of IF (is_master)
     
-  END SUBROUTINE put_var_rgen     
+  END SUBROUTINE put_var_rgen
+
+  SUBROUTINE put_var_c1(var_name,title,var)
+  ! Put a vector of characters in file
+
+  USE netcdf, only: NF90_REDEF, NF90_DEF_VAR, NF90_ENDDEF, NF90_PUT_VAR, &
+                    NF90_CHAR, &
+                    NF90_PUT_ATT, NF90_NOERR, nf90_strerror, &
+                    nf90_inq_dimid, nf90_inquire_dimension, NF90_INQ_VARID
+  USE comsoil_h, only: nsoilmx
+  USE comslope_mod, only: nslope
+  USE mod_phys_lmdz_para, only: is_master
+
+   IMPLICIT NONE
+     CHARACTER(LEN=*),INTENT(IN) :: var_name
+     CHARACTER(LEN=*),INTENT(IN) :: title
+     CHARACTER(LEN=*),INTENT(IN) :: var(:)
+
+     INTEGER :: ierr
+     INTEGER :: nvarid
+     INTEGER :: idim1d_1, idim1d_2
+     INTEGER :: var_size
+     logical,save :: firsttime=.true.
+
+    IF (is_master) THEN
+
+      var_size = size(var)
+      IF (var_size==ldscrpt) THEN
+        ! We know it is a "controle descriptor" kind of 1D array
+        idim1d_1=idim11
+        idim1d_2=idim10
+      ELSE 
+        PRINT *, "put_var_cgen error : wrong dimension"
+        write(*,*) "  var_size =",var_size
+        CALL abort_physic("put_var_cgen","Wrong variable dimension",1)
+
+      ENDIF ! of IF (var_size==length) THEN
+
+      ! Swich to NetCDF define mode
+      ierr=NF90_REDEF (nid_restart)
+      ! Define the variable
+      ierr=NF90_DEF_VAR(nid_restart,var_name,NF90_CHAR,(/idim1d_1,idim1d_2/),nvarid)
+      ! Add a "title" attribute
+      IF (LEN_TRIM(title)>0) ierr=NF90_PUT_ATT(nid_restart,nvarid,"title",title)
+      ! Swich out of define mode
+      ierr=NF90_ENDDEF(nid_restart)
+      ! Write variable to file
+      ierr=NF90_PUT_VAR(nid_restart,nvarid,var)
+      IF (ierr/=NF90_NOERR) THEN
+        write(*,*)'put_var_cgen: problem writing '//trim(var_name)
+        write(*,*)trim(nf90_strerror(ierr))
+        CALL abort_physic("put_var_cgen","Failed writing variable",1)
+      ENDIF
+    ENDIF ! of IF (is_master)
+
+  END SUBROUTINE put_var_c1
 
 END MODULE iostart
Index: /trunk/LMDZ.MARS/libf/phymars/phyredem.F90
===================================================================
--- /trunk/LMDZ.MARS/libf/phymars/phyredem.F90	(revision 3508)
+++ /trunk/LMDZ.MARS/libf/phymars/phyredem.F90	(revision 3509)
@@ -21,5 +21,5 @@
   use dimradmars_mod, only: tauvis
   use iostart, only : open_restartphy, close_restartphy, & 
-                      put_var, put_field, length
+                      put_var, put_field, length, ldscrpt, ndscrpt
   use mod_grid_phy_lmdz, only : klon_glo
   use planete_h, only: aphelie, emin_turb, lmixmin, obliquit, &
@@ -48,11 +48,47 @@
   real, intent(in) :: subslope_dist(ngrid,nslope) !undermesh statistics
 
-  real :: tab_cntrl(length) ! nb "length=100" defined in iostart module
-  integer :: ig
-  real :: watercaptag_tmp(ngrid)
+  character(ndscrpt), dimension(ldscrpt), parameter :: dscrpt_tab_cntrl = (/ &
+      "(1)  Total number of nodes on physics grid        ", &
+      "(2)  Number of atmospheric layers                 ", &
+      "(3)  Initial day                                  ", &
+      "(4)  Initial time of day                          ", &
+      "(5)  Radius of Mars (m) ~3397200                  ", &
+      "(6)  Rotation rate (rad.s-1)                      ", &
+      "(7)  Gravity (m.s-2) ~3.72                        ", &
+      "(8)  Molar mass of the atmosphere (g.mol-1) ~43.49", &
+      "(9)  = r/Cp ~0.256793 (=kappa in the dynamics)    ", &
+      "(10) Length of a sol (s) ~88775                   ", &
+      "(11) Time step in the physics                     ", &
+      "(12) -                                            ", &
+      "(13) -                                            ", &
+      "(14) Length of year (sols) ~668.6                 ", &
+      "(15) Min. Sun-Mars distance (Mkm) ~206.66         ", &
+      "(16) Max. Sun-Mars distance (Mkm) ~249.22         ", &
+      "(17) Date of perihelion (sols since N. spring)    ", &
+      "(18) Obliquity of the planet (deg) ~23.98         ", &
+      "(19) Default surface roughness (m) ~0.01          ", &
+      "(20) Mixing length ~100                           ", &
+      "(21) Minimal energy ~1.e-8                        ", &
+      "(22) Albedo of northern cap ~0.5                  ", &
+      "(23) Albedo of southern cap ~0.5                  ", &
+      "(24) Emissivity of northern cap ~0.95             ", &
+      "(25) Emissivity of southern cap ~0.95             ", &
+      "(26) Emissivity of martian soil ~.95              ", &
+      "(27) Mean visible optical depth                   ", &
+      "(28) -                                            ", &
+      "(29) -                                            ", &
+      "(30) -                                            ", &
+      "(31) Mean scat radius of CO2 snow (north)         ", &
+      "(32) Mean scat radius of CO2 snow (south)         ", &
+      "(33) Time scale for snow metamorphism (north)     ", &
+      "(34) Time scale for snow metamorphism (south)     ", &
+      "(35) Soil volumetric heat capacity                "/)
+  real, dimension(length) :: tab_cntrl ! nb "length=100" defined in iostart module
+  integer                 :: ig
+  real, dimension(ngrid)  :: watercaptag_tmp
 
   ! Create physics start file
   call open_restartphy(filename)
-  
+
   ! Build tab_cntrl(:) array
   tab_cntrl(:)=0.0
@@ -61,32 +97,29 @@
   !cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
   ! Informations on the physics grid
-  tab_cntrl(1) = float(klon_glo)  ! total number of nodes on physics grid
-  tab_cntrl(2) = float(nlay) ! number of atmospheric layers
-  tab_cntrl(3) = day_ini + int(time)      ! initial day 
-  tab_cntrl(4) = time -int(time)          ! initial time of day
+  tab_cntrl(1) = float(klon_glo)     ! Total number of nodes on physics grid
+  tab_cntrl(2) = float(nlay)         ! Number of atmospheric layers
+  tab_cntrl(3) = day_ini + int(time) ! Initial day
+  tab_cntrl(4) = time -int(time)     ! Initial time of day
 
   ! Informations about Mars, used by dynamics and physics
-  tab_cntrl(5) = rad      ! radius of Mars (m) ~3397200
-  tab_cntrl(6) = omeg     ! rotation rate (rad.s-1)
-  tab_cntrl(7) = g        ! gravity (m.s-2) ~3.72
+  tab_cntrl(5) = rad      ! Radius of Mars (m) ~3397200
+  tab_cntrl(6) = omeg     ! Rotation rate (rad.s-1)
+  tab_cntrl(7) = g        ! Gravity (m.s-2) ~3.72
   tab_cntrl(8) = mugaz    ! Molar mass of the atmosphere (g.mol-1) ~43.49
-  tab_cntrl(9) = rcp      !  = r/cp  ~0.256793 (=kappa dans dynamique)
-  tab_cntrl(10) = daysec  ! length of a sol (s)  ~88775
-
-  tab_cntrl(11) = phystep  ! time step in the physics
-  tab_cntrl(12) = 0.
-  tab_cntrl(13) = 0.
+  tab_cntrl(9) = rcp      ! = r/cp  ~0.256793 (=kappa dans dynamique)
+  tab_cntrl(10) = daysec  ! Length of a sol (s) ~88775
+  tab_cntrl(11) = phystep ! Time step in the physics
 
   ! Informations about Mars, only for physics
-  tab_cntrl(14) = year_day  ! length of year (sols) ~668.6
-  tab_cntrl(15) = periheli  ! min. Sun-Mars distance (Mkm) ~206.66
-  tab_cntrl(16) = aphelie   ! max. SUn-Mars distance (Mkm) ~249.22
-  tab_cntrl(17) = peri_day  ! date of perihelion (sols since N. spring)
+  tab_cntrl(14) = year_day  ! Length of year (sols) ~668.6
+  tab_cntrl(15) = periheli  ! Min. Sun-Mars distance (Mkm) ~206.66
+  tab_cntrl(16) = aphelie   ! Max. SUn-Mars distance (Mkm) ~249.22
+  tab_cntrl(17) = peri_day  ! Date of perihelion (sols since N. spring)
   tab_cntrl(18) = obliquit  ! Obliquity of the planet (deg) ~23.98
 
   ! Boundary layer and turbulence
-  tab_cntrl(19) = z0_default   ! default surface roughness (m) ~0.01
-  tab_cntrl(20) = lmixmin   ! mixing length ~100
-  tab_cntrl(21) = emin_turb ! minimal energy ~1.e-8
+  tab_cntrl(19) = z0_default ! Default surface roughness (m) ~0.01
+  tab_cntrl(20) = lmixmin    ! Mixing length ~100
+  tab_cntrl(21) = emin_turb  ! Minimal energy ~1.e-8
 
   ! Optical properties of polar caps and ground emissivity
@@ -96,17 +129,20 @@
   tab_cntrl(25) = emisice(2)   ! Emissivity of southern cap ~0.95
   tab_cntrl(26) = emissiv      ! Emissivity of martian soil ~.95
-  tab_cntrl(31) = iceradius(1) ! mean scat radius of CO2 snow (north)
-  tab_cntrl(32) = iceradius(2) ! mean scat radius of CO2 snow (south)
-  tab_cntrl(33) = dtemisice(1) ! time scale for snow metamorphism (north)
-  tab_cntrl(34) = dtemisice(2) ! time scale for snow metamorphism (south)
+  tab_cntrl(31) = iceradius(1) ! Mean scat radius of CO2 snow (north)
+  tab_cntrl(32) = iceradius(2) ! Mean scat radius of CO2 snow (south)
+  tab_cntrl(33) = dtemisice(1) ! Time scale for snow metamorphism (north)
+  tab_cntrl(34) = dtemisice(2) ! Time scale for snow metamorphism (south)
 
   ! dust aerosol properties
-  tab_cntrl(27) = tauvis      ! mean visible optical depth
+  tab_cntrl(27) = tauvis ! Mean visible optical depth
 
   ! Soil properties:
-  tab_cntrl(35) = volcapa ! soil volumetric heat capacity
+  tab_cntrl(35) = volcapa ! Soil volumetric heat capacity
 
   ! Write the controle array
   call put_var("controle","Control parameters",tab_cntrl)
+
+  ! Write the controle array descriptor
+  call put_var("controle_descriptor","Description of control parameters",dscrpt_tab_cntrl)
   
   ! Write the mid-layer depths
