Index: trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90	(revision 2604)
+++ 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 2604)
+++ 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)
 !
