diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index eb980e38f0075e267513985fc8fd69a129bd9873..e6d8dfe973e47a779c08de5b8ecf156b491d205e 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -306,6 +306,7 @@
 !!      when LDUMMY(2)=T in PRE_IDEA1.nam 
 !!      USE MODDB_ADVFRC_n for grid-nesting               02*2012 (M. Tomasini)
 !!      LBOUSS in MODD_REF                                07/2013 (C.Lac)
+!!      Correction for ZS in PGD file                     04/2014 (G. TANGUY)
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -1706,15 +1707,6 @@ IF (CSURF =='EXTE') THEN
   !* definition of physiographic fields
   ! computed ...
   IF (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM) THEN
-    CALL FMOPEN_ll(CINIFILEPGD,'WRITE',CLUOUT,NNPRAR,NTYPE,NVERB,NNINAR,NRESP)     
-    CALL FMWRIT(CINIFILEPGD,'PROGRAM     ',CLUOUT,'--',CPROGRAM,0,1,' ',NRESP)
-    CALL FMWRIT(CINIFILEPGD,'SURF        ',CLUOUT,'--','EXTE',0,1,' ',NRESP)
-    CALL FMWRIT(CINIFILEPGD,'L1D         ',CLUOUT,'--',L1D,0,1,' ',NRESP)
-    CALL FMWRIT(CINIFILEPGD,'L2D         ',CLUOUT,'--',L2D,0,1,' ',NRESP)
-    CALL FMWRIT(CINIFILEPGD,'PACK        ',CLUOUT,'--',LPACK,0,1,' ',NRESP)
-    CSTORAGE_TYPE='PG'
-    CALL WRITE_HGRID(1,CINIFILEPGD,' ')
-    CSTORAGE_TYPE='TT'
     CPGDFILE = CINIFILE
     CALL PGD_GRID_SURF_ATM('MESONH',CINIFILE,'MESONH',.TRUE.)
     CALL SPLIT_GRID('MESONH')
@@ -1736,24 +1728,43 @@ IF (CSURF =='EXTE') THEN
   ! on ecrit un nouveau fichier PGD que s'il n'existe pas
   IF (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM) THEN
     !* writing of physiographic fields in the file
+    CSTORAGE_TYPE='PG'
     COUTFMFILE = CINIFILEPGD
+    CALL FMOPEN_ll(CINIFILEPGD,'WRITE',CLUOUT,NNPRAR,NTYPE,NVERB,NNINAR,NRESP)  
 #ifdef MNH_NCWRIT
     NC_FILE='sf1'
     NC_WRITE=LNETCDF
+    CALL FMWRIT(CINIFILEPGD,'PROGRAM     ',CLUOUT,'--',CPROGRAM,0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'SURF        ',CLUOUT,'--','EXTE',0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'L1D         ',CLUOUT,'--',L1D,0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'L2D         ',CLUOUT,'--',L2D,0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'PACK        ',CLUOUT,'--',LPACK,0,1,' ',NRESP)
+    CALL WRITE_HGRID(1,CINIFILEPGD,' ')
     CALL WRITE_PGD_SURF_ATM_n('MESONH')
-    CALL ZSMT_PGD(CINIFILEPGD,NZSFILTER,NSLEVE,XSMOOTH_ZS)
     IF ( LNETCDF ) THEN
        DEF_NC=.FALSE.
+       CALL FMWRIT(CINIFILEPGD,'PROGRAM     ',CLUOUT,'--',CPROGRAM,0,1,' ',NRESP)
+       CALL FMWRIT(CINIFILEPGD,'SURF        ',CLUOUT,'--','EXTE',0,1,' ',NRESP)
+       CALL FMWRIT(CINIFILEPGD,'L1D         ',CLUOUT,'--',L1D,0,1,' ',NRESP)
+       CALL FMWRIT(CINIFILEPGD,'L2D         ',CLUOUT,'--',L2D,0,1,' ',NRESP)
+       CALL FMWRIT(CINIFILEPGD,'PACK        ',CLUOUT,'--',LPACK,0,1,' ',NRESP)
+       CALL WRITE_HGRID(1,CINIFILEPGD,' ')
        CALL WRITE_PGD_SURF_ATM_n('MESONH')
-       CALL ZSMT_PGD(CINIFILEPGD,NZSFILTER,NSLEVE,XSMOOTH_ZS)
        DEF_NC=.TRUE.
        NC_WRITE = .FALSE.
     END IF
 #else
+    CALL FMWRIT(CINIFILEPGD,'PROGRAM     ',CLUOUT,'--',CPROGRAM,0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'SURF        ',CLUOUT,'--','EXTE',0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'L1D         ',CLUOUT,'--',L1D,0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'L2D         ',CLUOUT,'--',L2D,0,1,' ',NRESP)
+    CALL FMWRIT(CINIFILEPGD,'PACK        ',CLUOUT,'--',LPACK,0,1,' ',NRESP)
+    CALL WRITE_HGRID(1,CINIFILEPGD,' ')
     CALL WRITE_PGD_SURF_ATM_n('MESONH')
-    CALL ZSMT_PGD(CINIFILEPGD,NZSFILTER,NSLEVE,XSMOOTH_ZS)
 #endif
-  ENDIF  
+  CSTORAGE_TYPE='TT'
+  ENDIF
+  
   !
   !* deallocation of physiographic fields
   CALL DEALLOC_SURF_ATM_n