Index: /LMDZ5/trunk/libf/phylmd/calcul_STDlev.h
===================================================================
--- /LMDZ5/trunk/libf/phylmd/calcul_STDlev.h	(revision 1693)
+++ /LMDZ5/trunk/libf/phylmd/calcul_STDlev.h	(revision 1694)
@@ -2,6 +2,13 @@
 c $Header$
 c
-c
 cIM on initialise les variables 
+c
+        missing_val=nf90_fill_real
+c
+cIM freq_moyNMC = frequences auxquelles on moyenne les champs accumules 
+cIM               sur les niveaux de pression standard du NMC
+      DO n=1, nout
+       freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n)
+      ENDDO
 c
         CALL ini_undefSTD(itap,freq_outNMC)
@@ -157,2 +164,80 @@
      $     lwup,LWup200)
 c
+      twriteSTD(:,:,1)=tsumSTD(:,:,1)
+      qwriteSTD(:,:,1)=qsumSTD(:,:,1)
+      rhwriteSTD(:,:,1)=rhsumSTD(:,:,1)
+      phiwriteSTD(:,:,1)=phisumSTD(:,:,1)
+      uwriteSTD(:,:,1)=usumSTD(:,:,1)
+      vwriteSTD(:,:,1)=vsumSTD(:,:,1)
+      wwriteSTD(:,:,1)=wsumSTD(:,:,1)
+
+      twriteSTD(:,:,2)=tsumSTD(:,:,2)
+      qwriteSTD(:,:,2)=qsumSTD(:,:,2)
+      rhwriteSTD(:,:,2)=rhsumSTD(:,:,2)
+      phiwriteSTD(:,:,2)=phisumSTD(:,:,2)
+      uwriteSTD(:,:,2)=usumSTD(:,:,2)
+      vwriteSTD(:,:,2)=vsumSTD(:,:,2)
+      wwriteSTD(:,:,2)=wsumSTD(:,:,2)
+
+      twriteSTD(:,:,3)=tlevSTD(:,:)
+      qwriteSTD(:,:,3)=qlevSTD(:,:)
+      rhwriteSTD(:,:,3)=rhlevSTD(:,:)
+      phiwriteSTD(:,:,3)=philevSTD(:,:)
+      uwriteSTD(:,:,3)=ulevSTD(:,:)
+      vwriteSTD(:,:,3)=vlevSTD(:,:)
+      wwriteSTD(:,:,3)=wlevSTD(:,:)
+
+      twriteSTD(:,:,4)=tlevSTD(:,:)
+      qwriteSTD(:,:,4)=qlevSTD(:,:)
+      rhwriteSTD(:,:,4)=rhlevSTD(:,:)
+      phiwriteSTD(:,:,4)=philevSTD(:,:)
+      uwriteSTD(:,:,4)=ulevSTD(:,:)
+      vwriteSTD(:,:,4)=vlevSTD(:,:)
+      wwriteSTD(:,:,4)=wlevSTD(:,:)
+c
+cIM initialisation 5eme fichier de sortie 
+      twriteSTD(:,:,5)=tlevSTD(:,:)
+      qwriteSTD(:,:,5)=qlevSTD(:,:)
+      rhwriteSTD(:,:,5)=rhlevSTD(:,:)
+      phiwriteSTD(:,:,5)=philevSTD(:,:)
+      uwriteSTD(:,:,5)=ulevSTD(:,:)
+      vwriteSTD(:,:,5)=vlevSTD(:,:)
+      wwriteSTD(:,:,5)=wlevSTD(:,:)
+c
+cIM initialisation 6eme fichier de sortie 
+      twriteSTD(:,:,6)=tlevSTD(:,:)
+      qwriteSTD(:,:,6)=qlevSTD(:,:)
+      rhwriteSTD(:,:,6)=rhlevSTD(:,:)
+      phiwriteSTD(:,:,6)=philevSTD(:,:)
+      uwriteSTD(:,:,6)=ulevSTD(:,:)
+      vwriteSTD(:,:,6)=vlevSTD(:,:)
+      wwriteSTD(:,:,6)=wlevSTD(:,:)
+cIM for NMC files
+      DO n=1, nlevSTD3
+       DO k=1, nlevSTD
+        if(rlevSTD3(n).EQ.rlevSTD(k)) THEN
+         twriteSTD3(:,n)=tlevSTD(:,k)
+         qwriteSTD3(:,n)=qlevSTD(:,k)
+         rhwriteSTD3(:,n)=rhlevSTD(:,k)
+         phiwriteSTD3(:,n)=philevSTD(:,k)
+         uwriteSTD3(:,n)=ulevSTD(:,k)
+         vwriteSTD3(:,n)=vlevSTD(:,k)
+         wwriteSTD3(:,n)=wlevSTD(:,k)
+        endif !rlevSTD3(n).EQ.rlevSTD(k)
+       ENDDO 
+      ENDDO 
+c
+      DO n=1, nlevSTD8
+       DO k=1, nlevSTD
+        if(rlevSTD8(n).EQ.rlevSTD(k)) THEN
+         tnondefSTD8(:,n)=tnondef(:,k,2)
+         twriteSTD8(:,n)=tsumSTD(:,k,2)
+         qwriteSTD8(:,n)=qsumSTD(:,k,2)
+         rhwriteSTD8(:,n)=rhsumSTD(:,k,2)
+         phiwriteSTD8(:,n)=phisumSTD(:,k,2)
+         uwriteSTD8(:,n)=usumSTD(:,k,2)
+         vwriteSTD8(:,n)=vsumSTD(:,k,2)
+         wwriteSTD8(:,n)=wsumSTD(:,k,2)
+        endif !rlevSTD8(n).EQ.rlevSTD(k)
+       ENDDO 
+      ENDDO 
Index: /LMDZ5/trunk/libf/phylmd/declare_STDlev.h
===================================================================
--- /LMDZ5/trunk/libf/phylmd/declare_STDlev.h	(revision 1694)
+++ /LMDZ5/trunk/libf/phylmd/declare_STDlev.h	(revision 1694)
@@ -0,0 +1,61 @@
+cIM for NMC files
+      real twriteSTD(klon,nlevSTD,nfiles)
+      real qwriteSTD(klon,nlevSTD,nfiles)
+      real rhwriteSTD(klon,nlevSTD,nfiles)
+      real phiwriteSTD(klon,nlevSTD,nfiles)
+      real uwriteSTD(klon,nlevSTD,nfiles)
+      real vwriteSTD(klon,nlevSTD,nfiles)
+      real wwriteSTD(klon,nlevSTD,nfiles)
+
+      real twriteSTD3(klon,nlevSTD3)
+      real qwriteSTD3(klon,nlevSTD3)
+      real rhwriteSTD3(klon,nlevSTD3)
+      real phiwriteSTD3(klon,nlevSTD3)
+      real uwriteSTD3(klon,nlevSTD3)
+      real vwriteSTD3(klon,nlevSTD3)
+      real wwriteSTD3(klon,nlevSTD3)
+
+      real tnondefSTD8(klon,nlevSTD8)
+      real twriteSTD8(klon,nlevSTD8)
+      real qwriteSTD8(klon,nlevSTD8)
+      real rhwriteSTD8(klon,nlevSTD8)
+      real phiwriteSTD8(klon,nlevSTD8)
+      real uwriteSTD8(klon,nlevSTD8)
+      real vwriteSTD8(klon,nlevSTD8)
+      real wwriteSTD8(klon,nlevSTD8)
+
+      real, save :: rlevSTD(nlevSTD)
+      DATA rlevSTD/100000., 92500., 85000., 70000.,
+     .60000., 50000., 40000., 30000., 25000., 20000.,
+     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
+c$OMP THREADPRIVATE(rlevstd)
+
+      CHARACTER*4, SAVE :: clevSTD(nlevSTD)
+      DATA clevSTD/'1000','925 ','850 ','700 ','600 ',
+     .'500 ','400 ','300 ','250 ','200 ','150 ','100 ',
+     .'70  ','50  ','30  ','20  ','10  '/
+c$OMP THREADPRIVATE(clevSTD)
+
+      real, save :: rlevSTD3(nlevSTD3)
+      DATA rlevSTD3/85000., 50000., 25000./
+c$OMP THREADPRIVATE(rlevSTD3)
+
+      real, save :: rlevSTD8(nlevSTD8)
+      DATA rlevSTD8/100000., 85000., 70000., 50000., 25000., 10000.,
+     $     5000., 1000./
+c$OMP THREADPRIVATE(rlevSTD8) 
+c
+      REAL geo500(klon)
+
+c nout : niveau de output des variables a une pression donnee
+      logical oknondef(klon,nlevSTD,nout)
+c
+c les produits uvSTD, vqSTD, .., T2STD sont calcules
+c a partir des valeurs instantannees toutes les 6 h
+c qui sont moyennees sur le mois
+
+      REAL zx_tmp_fiNC(klon,nlevSTD)
+
+      REAL missing_val
+      REAL, SAVE :: freq_moyNMC(nout)
+c$OMP THREADPRIVATE(freq_moyNMC)
Index: /LMDZ5/trunk/libf/phylmd/physiq.F
===================================================================
--- /LMDZ5/trunk/libf/phylmd/physiq.F	(revision 1693)
+++ /LMDZ5/trunk/libf/phylmd/physiq.F	(revision 1694)
@@ -257,63 +257,8 @@
 c variables a une pression donnee
 c
-      real rlevSTD(nlevSTD)
-      DATA rlevSTD/100000., 92500., 85000., 70000.,
-     .60000., 50000., 40000., 30000., 25000., 20000.,
-     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
-      SAVE rlevstd
-c$OMP THREADPRIVATE(rlevstd)
-      CHARACTER*4 clevSTD(nlevSTD)
-      DATA clevSTD/'1000','925 ','850 ','700 ','600 ',
-     .'500 ','400 ','300 ','250 ','200 ','150 ','100 ',
-     .'70  ','50  ','30  ','20  ','10  '/
-      SAVE clevSTD
-c$OMP THREADPRIVATE(clevSTD)
+#include "declare_STDlev.h"
 c
       CHARACTER*4 bb2
       CHARACTER*2 bb3
-
-      real twriteSTD(klon,nlevSTD,nfiles)
-      real qwriteSTD(klon,nlevSTD,nfiles)
-      real rhwriteSTD(klon,nlevSTD,nfiles)
-      real phiwriteSTD(klon,nlevSTD,nfiles)
-      real uwriteSTD(klon,nlevSTD,nfiles)
-      real vwriteSTD(klon,nlevSTD,nfiles)
-      real wwriteSTD(klon,nlevSTD,nfiles)
-cIM for NMC files
-      REAL geo500(klon)
-      real :: rlevSTD3(nlevSTD3)
-      DATA rlevSTD3/85000., 50000., 25000./
-      SAVE rlevSTD3
-c$OMP THREADPRIVATE(rlevSTD3)
-      real :: rlevSTD8(nlevSTD8)
-      DATA rlevSTD8/100000., 85000., 70000., 50000., 25000., 10000.,
-     $     5000., 1000./
-      SAVE rlevSTD8
-c$OMP THREADPRIVATE(rlevSTD8) 
-      real twriteSTD3(klon,nlevSTD3)
-      real qwriteSTD3(klon,nlevSTD3)
-      real rhwriteSTD3(klon,nlevSTD3)
-      real phiwriteSTD3(klon,nlevSTD3)
-      real uwriteSTD3(klon,nlevSTD3)
-      real vwriteSTD3(klon,nlevSTD3)
-      real wwriteSTD3(klon,nlevSTD3)
-c
-      real tnondefSTD8(klon,nlevSTD8)
-      real twriteSTD8(klon,nlevSTD8)
-      real qwriteSTD8(klon,nlevSTD8)
-      real rhwriteSTD8(klon,nlevSTD8)
-      real phiwriteSTD8(klon,nlevSTD8)
-      real uwriteSTD8(klon,nlevSTD8)
-      real vwriteSTD8(klon,nlevSTD8)
-      real wwriteSTD8(klon,nlevSTD8)
-c
-c plevSTD3 END
-c
-c nout : niveau de output des variables a une pression donnee
-      logical oknondef(klon,nlevSTD,nout)
-c
-c les produits uvSTD, vqSTD, .., T2STD sont calcules
-c a partir des valeurs instantannees toutes les 6 h
-c qui sont moyennees sur le mois
 c
 #include "radopt.h"
@@ -1050,16 +995,7 @@
       REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 
       REAL zx_tmp_fi3d1(klon,klev+1) !variable temporaire pour champs 3D (kelvp1)
-c#ifdef histNMC
-cym   A voir plus tard !!!!
-cym      REAL zx_tmp_NC(iim,jjmp1,nlevSTD)
-      REAL zx_tmp_fiNC(klon,nlevSTD) 
-c#endif
       REAL(KIND=8) zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D 
       REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev)
       REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1)
-cIM for NMC files
-      REAL missing_val
-      REAL, SAVE :: freq_moyNMC(nout)
-c$OMP THREADPRIVATE(freq_moyNMC)
 c
       INTEGER nid_day, nid_mth, nid_ins, nid_mthnmc, nid_daynmc
@@ -1255,6 +1191,4 @@
       integer iostat
 
-cIM for NMC files
-      missing_val=nf90_fill_real
 c======================================================================
 ! Gestion calendrier : mise a jour du module phys_cal_mod
@@ -1326,12 +1260,5 @@
       call phys_output_var_init
       print*, '================================================='
-cIM for NMC files
-cIM freq_moyNMC = frequences auxquelles on moyenne les champs accumules 
-cIM               sur les niveaux de pression standard du NMC
-      DO n=1, nout
-       freq_moyNMC(n)=freq_outNMC(n)/freq_calNMC(n)
-      ENDDO
-c
-cIM beg
+c
           dnwd0=0.0
           ftd=0.0
@@ -3788,82 +3715,4 @@
 c
 #include "calcul_STDlev.h"
-      twriteSTD(:,:,1)=tsumSTD(:,:,1)
-      qwriteSTD(:,:,1)=qsumSTD(:,:,1)
-      rhwriteSTD(:,:,1)=rhsumSTD(:,:,1)
-      phiwriteSTD(:,:,1)=phisumSTD(:,:,1)
-      uwriteSTD(:,:,1)=usumSTD(:,:,1)
-      vwriteSTD(:,:,1)=vsumSTD(:,:,1)
-      wwriteSTD(:,:,1)=wsumSTD(:,:,1)
-
-      twriteSTD(:,:,2)=tsumSTD(:,:,2)
-      qwriteSTD(:,:,2)=qsumSTD(:,:,2)
-      rhwriteSTD(:,:,2)=rhsumSTD(:,:,2)
-      phiwriteSTD(:,:,2)=phisumSTD(:,:,2)
-      uwriteSTD(:,:,2)=usumSTD(:,:,2)
-      vwriteSTD(:,:,2)=vsumSTD(:,:,2)
-      wwriteSTD(:,:,2)=wsumSTD(:,:,2)
-
-      twriteSTD(:,:,3)=tlevSTD(:,:)
-      qwriteSTD(:,:,3)=qlevSTD(:,:)
-      rhwriteSTD(:,:,3)=rhlevSTD(:,:)
-      phiwriteSTD(:,:,3)=philevSTD(:,:)
-      uwriteSTD(:,:,3)=ulevSTD(:,:)
-      vwriteSTD(:,:,3)=vlevSTD(:,:)
-      wwriteSTD(:,:,3)=wlevSTD(:,:)
-
-      twriteSTD(:,:,4)=tlevSTD(:,:)
-      qwriteSTD(:,:,4)=qlevSTD(:,:)
-      rhwriteSTD(:,:,4)=rhlevSTD(:,:)
-      phiwriteSTD(:,:,4)=philevSTD(:,:)
-      uwriteSTD(:,:,4)=ulevSTD(:,:)
-      vwriteSTD(:,:,4)=vlevSTD(:,:)
-      wwriteSTD(:,:,4)=wlevSTD(:,:)
-c
-cIM initialisation 5eme fichier de sortie 
-      twriteSTD(:,:,5)=tlevSTD(:,:)
-      qwriteSTD(:,:,5)=qlevSTD(:,:)
-      rhwriteSTD(:,:,5)=rhlevSTD(:,:)
-      phiwriteSTD(:,:,5)=philevSTD(:,:)
-      uwriteSTD(:,:,5)=ulevSTD(:,:)
-      vwriteSTD(:,:,5)=vlevSTD(:,:)
-      wwriteSTD(:,:,5)=wlevSTD(:,:)
-c
-cIM initialisation 6eme fichier de sortie 
-      twriteSTD(:,:,6)=tlevSTD(:,:)
-      qwriteSTD(:,:,6)=qlevSTD(:,:)
-      rhwriteSTD(:,:,6)=rhlevSTD(:,:)
-      phiwriteSTD(:,:,6)=philevSTD(:,:)
-      uwriteSTD(:,:,6)=ulevSTD(:,:)
-      vwriteSTD(:,:,6)=vlevSTD(:,:)
-      wwriteSTD(:,:,6)=wlevSTD(:,:)
-cIM for NMC files
-      DO n=1, nlevSTD3
-       DO k=1, nlevSTD
-        if(rlevSTD3(n).EQ.rlevSTD(k)) THEN
-         twriteSTD3(:,n)=tlevSTD(:,k)
-         qwriteSTD3(:,n)=qlevSTD(:,k)
-         rhwriteSTD3(:,n)=rhlevSTD(:,k)
-         phiwriteSTD3(:,n)=philevSTD(:,k)
-         uwriteSTD3(:,n)=ulevSTD(:,k)
-         vwriteSTD3(:,n)=vlevSTD(:,k)
-         wwriteSTD3(:,n)=wlevSTD(:,k)
-        endif !rlevSTD3(n).EQ.rlevSTD(k)
-       ENDDO 
-      ENDDO 
-c
-      DO n=1, nlevSTD8
-       DO k=1, nlevSTD
-        if(rlevSTD8(n).EQ.rlevSTD(k)) THEN
-         tnondefSTD8(:,n)=tnondef(:,k,2)
-         twriteSTD8(:,n)=tsumSTD(:,k,2)
-         qwriteSTD8(:,n)=qsumSTD(:,k,2)
-         rhwriteSTD8(:,n)=rhsumSTD(:,k,2)
-         phiwriteSTD8(:,n)=phisumSTD(:,k,2)
-         uwriteSTD8(:,n)=usumSTD(:,k,2)
-         vwriteSTD8(:,n)=vsumSTD(:,k,2)
-         wwriteSTD8(:,n)=wsumSTD(:,k,2)
-        endif !rlevSTD8(n).EQ.rlevSTD(k)
-       ENDDO 
-      ENDDO 
 c
 c slp sea level pressure
