Index: LMDZ.3.3/trunk/libf/phylmd/read_pstoke.F
===================================================================
--- LMDZ.3.3/trunk/libf/phylmd/read_pstoke.F	(revision 254)
+++ LMDZ.3.3/trunk/libf/phylmd/read_pstoke.F	(revision 256)
@@ -199,5 +199,10 @@
 c niveaux de pression
 
+#ifdef NC_DOUBLE
+            status=NF_GET_VARA_DOUBLE(ncidp,varidpl,1,zklevo,pl)
+#else
             status=NF_GET_VARA_REAL(ncidp,varidpl,1,zklevo,pl)
+#endif
+
 
 c lecture de aire et phis
@@ -214,5 +219,9 @@
 
 c phis
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidps,start,count,phisfi2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidps,start,count,phisfi2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -222,5 +231,10 @@
 
 c aire
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidai,start,count,airefi2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidai,start,count,airefi2)
+#endif
+
 c      call correctbid(iim,jjp1*1,airefi2)
 c       call dump2d(iip1-1,jjp1,airefi2,'AIRENC')
@@ -249,5 +263,9 @@
 c frac_impa 
 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfi,start,count,frac_impa2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfi,start,count,frac_impa2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -258,5 +276,10 @@
 c frac_nucl 
 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfn,start,count,frac_nucl2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfn,start,count,frac_nucl2)
+#endif
+
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -266,9 +289,18 @@
 
 c abder t
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidt,start,count,t2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidt,start,count,t2)
+#endif
       call gr_ecrit_fi(klevo,klono,imo,jmo+1,t2,t)
 
 c mfu
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidmfu,start,count,mfu2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidmfu,start,count,mfu2)
+#endif
+
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -278,5 +310,9 @@
 
 c mfd
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidmfd,start,count,mfd2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidmfd,start,count,mfd2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -286,5 +322,9 @@
 
 c en_u 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidenu,start,count,en_u2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidenu,start,count,en_u2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -294,5 +334,10 @@
 
 c de_u 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,variddeu,start,count,de_u2)
+#else
       status=NF_GET_VARA_REAL(ncidp,variddeu,start,count,de_u2)
+#endif
+
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -302,5 +347,9 @@
 
 c en_d 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidend,start,count,en_d2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidend,start,count,en_d2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -310,5 +359,9 @@
 
 c de_d 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidded,start,count,de_d2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidded,start,count,de_d2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -318,5 +371,10 @@
 
 c coefh 
-      status=NF_GET_VARA_REAL(ncidp,varidch,start,count,coefh2)
+        print*,'LECTURE de coefh a irec =',irec
+#ifdef NC_DOUBLE
+       status=NF_GET_VARA_DOUBLE(ncidp,varidch,start,count,coefh2)
+#else
+       status=NF_GET_VARA_REAL(ncidp,varidch,start,count,coefh2)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -339,5 +397,9 @@
 
 c pyv1
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidyv1,start,count,pyv12)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidyv1,start,count,pyv12)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -347,5 +409,9 @@
 
 c ftsol1
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts1,start,count,ftsol12)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts1,start,count,ftsol12)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -355,5 +421,9 @@
 
 c ftsol2
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts2,start,count,ftsol22)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts2,start,count,ftsol22)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -363,5 +433,9 @@
 
 c ftsol3
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts3,start,count,ftsol32)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts3,start,count,ftsol32)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -371,5 +445,9 @@
 
 c ftsol4
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts4,start,count,ftsol42)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts4,start,count,ftsol42)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -379,5 +457,9 @@
 
 c psrf1 
-      status=NF_GET_VARA_REAL(ncidp,varidpsr1,start,count,psrf12)
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr2,start,count,psrf22)
+#else
+      status=NF_GET_VARA_REAL(ncidp,varidpsr2,start,count,psrf22)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -387,5 +469,9 @@
 
 c psrf2 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr2,start,count,psrf22)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr2,start,count,psrf22)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -395,5 +481,9 @@
 
 c psrf3 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr3,start,count,psrf32)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr3,start,count,psrf32)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
@@ -403,5 +493,9 @@
 
 c psrf4 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr4,start,count,psrf42)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr4,start,count,psrf42)
+#endif
 c      print*,'WARNING!!! Correction bidon pour palier a un '
 c      print*,'probleme dans la creation des fichiers nc'
Index: LMDZ.3.3/trunk/libf/phylmd/read_pstoke0.F
===================================================================
--- LMDZ.3.3/trunk/libf/phylmd/read_pstoke0.F	(revision 254)
+++ LMDZ.3.3/trunk/libf/phylmd/read_pstoke0.F	(revision 256)
@@ -1,5 +1,2 @@
-c
-c $Header$
-c
 	subroutine read_pstoke0(irec,
      .   zrec,zkon,zkev,airefi,phisfi,
@@ -199,5 +196,9 @@
 c niveaux de pression
 
+#ifdef NC_DOUBLE
+            status=NF_GET_VARA_DOUBLE(ncidp,varidpl,1,kev,pl)
+#else
             status=NF_GET_VARA_REAL(ncidp,varidpl,1,kev,pl)
+#endif
 
 c lecture de aire et phis
@@ -215,9 +216,20 @@
 c 
 c phis
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidps,start,count,phisfi2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidps,start,count,phisfi2)
+#endif
+
+
       call gr_ecrit_fi(1,kon,iim,jjm+1,phisfi2,phisfi)
 
 c aire
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidai,start,count,airefi2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidai,start,count,airefi2)
+#endif
+
       call gr_ecrit_fi(1,kon,iim,jjm+1,airefi2,airefi)
       else
@@ -244,43 +256,88 @@
 c frac_impa 
 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfi,start,count,frac_impa2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfi,start,count,frac_impa2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,frac_impa2,frac_impa)
 
 c frac_nucl 
 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfn,start,count,frac_nucl2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfn,start,count,frac_nucl2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,frac_nucl2,frac_nucl)
 
 c abder t
+
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidt,start,count,t2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidt,start,count,t2)
+#endif
+
       call gr_ecrit_fi(kev,kon,iim,jjm+1,t2,t)
 
 c mfu
+
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidmfu,start,count,mfu2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidmfu,start,count,mfu2)
+#endif
+
       call gr_ecrit_fi(kev,kon,iim,jjm+1,mfu2,mfu)
 
 c mfd
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidmfd,start,count,mfd2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidmfd,start,count,mfd2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,mfd2,mfd)
 
 c en_u 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidenu,start,count,en_u2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidenu,start,count,en_u2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,en_u2,en_u)
 
 c de_u 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,variddeu,start,count,de_u2)
+#else
       status=NF_GET_VARA_REAL(ncidp,variddeu,start,count,de_u2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,de_u2,de_u)
 
 c en_d 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidend,start,count,en_d2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidend,start,count,en_d2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,en_d2,en_d)
 
 c de_d 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidded,start,count,de_d2)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidded,start,count,de_d2)
+#endif
       call gr_ecrit_fi(kev,kon,iim,jjm+1,de_d2,de_d)
 
 c coefh 
 	print*,'LECTURE de coefh a irec =',irec
+#ifdef NC_DOUBLE
+       status=NF_GET_VARA_DOUBLE(ncidp,varidch,start,count,coefh2)
+#else
        status=NF_GET_VARA_REAL(ncidp,varidch,start,count,coefh2)
+#endif
+
        call gr_ecrit_fi(kev,kon,iim,jjm+1,coefh2,coefh)
 
@@ -292,47 +349,88 @@
 c pyu1
 	print*,'LECTURE de yu1 a irec =',irec
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidyu1,start,count,pyu12)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidyu1,start,count,pyu12)
+#endif
+
       call gr_ecrit_fi(1,kon,iim,jjm+1,pyu12,pyu1)
 
 c pyv1
         print*,'LECTURE de yv1 a irec =',irec
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidyv1,start,count,pyv12)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidyv1,start,count,pyv12)
+#endif
       call gr_ecrit_fi(1,kon,iim,jjm+1,pyv12,pyv1)
 
 c ftsol1
         print*,'LECTURE de ftsol1 a irec =',irec
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts1,start,count,ftsol12)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts1,start,count,ftsol12)
+#endif
        call gr_ecrit_fi(1,kon,iim,jjm+1,ftsol12,ftsol1)
 
 c ftsol2
         print*,'LECTURE de ftsol2 a irec =',irec
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts2,start,count,ftsol22)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts2,start,count,ftsol22)
+#endif
       call gr_ecrit_fi(1,kon,iim,jjm+1,ftsol22,ftsol2)
 
 c ftsol3
 	 print*,'LECTURE de ftsol3 a irec =',irec
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts3,start,count,ftsol32)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts3,start,count,ftsol32)
+#endif
       call gr_ecrit_fi(1,kon,iim,jjm+1,ftsol32,ftsol3)
 
 c ftsol4
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidfts4,start,count,ftsol42)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidfts4,start,count,ftsol42)
+#endif
       call gr_ecrit_fi(1,kon,iim,jjm+1,ftsol42,ftsol4)
 
 c psrf1 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr1,start,count,psrf12)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr1,start,count,psrf12)
+#endif
 c      call dump2d(iip1-1,jjm+1,psrf12,'PSRF1NC')
       call gr_ecrit_fi(1,kon,iim,jjm+1,psrf12,psrf1)
 
 c psrf2 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr2,start,count,psrf22)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr2,start,count,psrf22)
+#endif
 c      call dump2d(iip1-1,jjm+1,psrf22,'PSRF2NC')
       call gr_ecrit_fi(1,kon,iim,jjm+1,psrf22,psrf2)
 
 c psrf3 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr3,start,count,psrf32)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr3,start,count,psrf32)
+#endif
       call gr_ecrit_fi(1,kon,iim,jjm+1,psrf32,psrf3)
 
 c psrf4 
+#ifdef NC_DOUBLE
+      status=NF_GET_VARA_DOUBLE(ncidp,varidpsr4,start,count,psrf42)
+#else
       status=NF_GET_VARA_REAL(ncidp,varidpsr4,start,count,psrf42)
+#endif
       call gr_ecrit_fi(1,kon,iim,jjm+1,psrf42,psrf4)
 	
