Index: LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90	(revision 1785)
+++ LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90	(revision 1797)
@@ -3,5 +3,4 @@
 !
       MODULE phys_local_var_mod
-
 ! Variables locales pour effectuer les appels en serie
 !======================================================================
@@ -187,4 +186,82 @@
 !$OMP THREADPRIVATE(topswcf_aerop, solswcf_aerop)
 
+
+!Ajout de celles nécessaires au phys_output_write_mod
+      REAL, SAVE, ALLOCATABLE :: slp(:)
+!$OMP THREADPRIVATE(slp)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: sens, flwp, fiwp 
+!$OMP THREADPRIVATE(sens, flwp, fiwp)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: ale_wake, alp_wake, bils
+!$OMP THREADPRIVATE(ale_wake, alp_wake, bils)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cdragm, cdragh
+!$OMP THREADPRIVATE(cdragm, cdragh)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldh, cldl, cldm, cldq, cldt, qsat2m, qsol
+!$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m, qsol)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: dthmin, evap, fder, plcl, plfc, prw
+!$OMP THREADPRIVATE(dthmin, evap, fder, plcl, plfc, prw)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zustar, zu10m, zv10m, rh2m
+!$OMP THREADPRIVATE(zustar, zu10m, zv10m, rh2m)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: s_lcl, s_pblh, s_pblt, s_therm
+!$OMP THREADPRIVATE(s_lcl, s_pblh, s_pblt, s_therm)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: slab_wfbils
+!$OMP THREADPRIVATE(slab_wfbils)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: tpot, tpote, ue, uq, ve, vq, zxffonte
+!$OMP THREADPRIVATE(tpot, tpote, ue, uq, ve, vq, zxffonte)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfqcalving
+!$OMP THREADPRIVATE(zxfqcalving)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxfluxlat, zxrugs, zxtsol, snow_lsc, zxfqfonte
+!$OMP THREADPRIVATE(zxfluxlat, zxrugs, zxtsol, snow_lsc, zxfqfonte)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: zxqsurf, rain_lsc
+!$OMP THREADPRIVATE(zxqsurf, rain_lsc)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: wake_h, wbeff, zmax_th, zq2m, zt2m
+!$OMP THREADPRIVATE(wake_h, wbeff, zmax_th, zq2m, zt2m)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: weak_inversion
+!$OMP THREADPRIVATE(weak_inversion)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: ale_bl_stat,alp_bl_conv,alp_bl_det
+!$OMP THREADPRIVATE(ale_bl_stat,alp_bl_conv,alp_bl_det)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_fluct_m,alp_bl_fluct_tke
+!$OMP THREADPRIVATE(alp_bl_fluct_m,alp_bl_fluct_tke)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: alp_bl_stat, n2, s2
+!$OMP THREADPRIVATE(alp_bl_stat, n2, s2)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig
+!$OMP THREADPRIVATE(proba_notrig, random_notrig)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
+!$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fevap, fluxlat, fsollw,evap_pot
+!$OMP THREADPRIVATE(t2m, fevap, fluxlat, fsollw,evap_pot)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: dnwd, dnwd0, upwd, omega
+!$OMP THREADPRIVATE(dnwd, dnwd0, upwd, omega)
+!      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: coefh, coefm, lambda_th
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: lambda_th
+!$OMP THREADPRIVATE(lambda_th)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: cldemi, cldfra, cldtau, fiwc, fl, re, flwc
+!$OMP THREADPRIVATE(cldemi, cldfra, cldtau, fiwc, fl, re, flwc)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: ref_liq, ref_ice, theta, zphi
+!$OMP THREADPRIVATE(ref_liq, ref_ice, theta, zphi)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wake_omg, zx_rh
+!$OMP THREADPRIVATE(wake_omg, zx_rh)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: frugs, agesno
+!$OMP THREADPRIVATE(frugs, agesno)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmflxr, pmflxs, prfl, psfl, fraca
+!$OMP THREADPRIVATE(pmflxr, pmflxs, prfl, psfl, fraca)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: Vprecip, zw2
+!$OMP THREADPRIVATE(Vprecip, zw2)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: pmfd, pmfu
+!$OMP THREADPRIVATE(pmfd, pmfu)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: fluxt, fluxu, fluxv
+!$OMP THREADPRIVATE(fluxt, fluxu, fluxv)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: uwriteSTD, vwriteSTD, wwriteSTD
+!$OMP THREADPRIVATE(uwriteSTD, vwriteSTD, wwriteSTD)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:,:) :: phiwriteSTD, qwriteSTD, twriteSTD
+!$OMP THREADPRIVATE(phiwriteSTD, qwriteSTD, twriteSTD)
+
+! ug et d'autres encore:
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wdtrainA, wdtrainM
+!$OMP THREADPRIVATE(wdtrainA, wdtrainM)
+      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: beta_prec
+!$OMP THREADPRIVATE(beta_prec)
+      REAL, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rneb
+!$OMP THREADPRIVATE(rneb)
+
 CONTAINS
 
@@ -195,4 +272,6 @@
 USE aero_mod
 USE indice_sol_mod
+USE phys_output_var_mod
+USE phys_state_var_mod
 
 IMPLICIT NONE
@@ -279,4 +358,59 @@
       ALLOCATE(topswcf_aerop(klon,naero_grp), solswcf_aerop(klon,naero_grp))
 
+! FH Ajout de celles nécessaires au phys_output_write_mod
+
+      ALLOCATE(slp(klon))
+      ALLOCATE(ale_wake(klon), alp_wake(klon), bils(klon))
+      ALLOCATE(cdragm(klon), cdragh(klon), cldh(klon), cldl(klon))
+      ALLOCATE(cldm(klon), cldq(klon), cldt(klon), qsat2m(klon), qsol(klon))
+      ALLOCATE(dthmin(klon), evap(klon), fder(klon), plcl(klon), plfc(klon))
+      ALLOCATE(prw(klon), zustar(klon), zu10m(klon), zv10m(klon), rh2m(klon))
+      ALLOCATE(s_lcl(klon))
+      ALLOCATE(s_pblh(klon), s_pblt(klon), s_therm(klon))
+      ALLOCATE(slab_wfbils(klon), tpot(klon), tpote(klon), ue(klon))
+      ALLOCATE(uq(klon), ve(klon), vq(klon), zxffonte(klon))
+      ALLOCATE(zxfqcalving(klon), zxfluxlat(klon), zxrugs(klon))
+      ALLOCATE(zxtsol(klon), snow_lsc(klon), zxfqfonte(klon), zxqsurf(klon))
+      ALLOCATE(rain_lsc(klon), wake_h(klon), wbeff(klon), zmax_th(klon))
+      ALLOCATE(zq2m(klon), zt2m(klon), weak_inversion(klon))
+      ALLOCATE(sens(klon), flwp(klon), fiwp(klon))
+      ALLOCATE(ale_bl_stat(klon), alp_bl_conv(klon), alp_bl_det(klon))
+      ALLOCATE(alp_bl_fluct_m(klon), alp_bl_fluct_tke(klon))
+      ALLOCATE(alp_bl_stat(klon), n2(klon), s2(klon))
+      ALLOCATE(proba_notrig(klon), random_notrig(klon))
+
+      ALLOCATE(dnwd(klon, klev), dnwd0(klon, klev))
+!      ALLOCATE(upwd(klon, klev), omega(klon, klev), coefh(klon, klev))
+      ALLOCATE(upwd(klon, klev), omega(klon, klev))
+!      ALLOCATE(coefm(klon, klev), lambda_th(klon, klev), cldemi(klon, klev))
+      ALLOCATE(lambda_th(klon, klev), cldemi(klon, klev))
+      ALLOCATE(cldfra(klon, klev), cldtau(klon, klev), fiwc(klon, klev))
+      ALLOCATE(fl(klon, klev), re(klon, klev), flwc(klon, klev))
+      ALLOCATE(ref_liq(klon, klev), ref_ice(klon, klev), theta(klon, klev))
+      ALLOCATE(zphi(klon, klev), wake_omg(klon, klev), zx_rh(klon, klev))
+      ALLOCATE(pmfd(klon, klev), pmfu(klon, klev))
+
+      ALLOCATE(t2m(klon, nbsrf), fevap(klon, nbsrf), fluxlat(klon, nbsrf))
+      ALLOCATE(frugs(klon, nbsrf), agesno(klon, nbsrf), fsollw(klon, nbsrf))
+      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
+      ALLOCATE(evap_pot(klon, nbsrf))
+
+      ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1), prfl(klon, klev+1))
+      ALLOCATE(psfl(klon, klev+1), fraca(klon, klev+1), Vprecip(klon, klev+1))
+      ALLOCATE(zw2(klon, klev+1))
+
+      ALLOCATE(fluxu(klon, klev, nbsrf), fluxv(klon, klev, nbsrf))
+      ALLOCATE(fluxt(klon, klev, nbsrf))
+
+      ALLOCATE(uwriteSTD(klon,nlevSTD,nfiles), vwriteSTD(klon,nlevSTD,nfiles))
+      ALLOCATE(wwriteSTD(klon,nlevSTD,nfiles), phiwriteSTD(klon,nlevSTD,nfiles))
+      ALLOCATE(qwriteSTD(klon,nlevSTD,nfiles), twriteSTD(klon,nlevSTD,nfiles))
+
+! ug et d'autres encore:
+      ALLOCATE(wdtrainA(klon,klev),wdtrainM(klon,klev))
+      ALLOCATE(beta_prec(klon,klev))
+      ALLOCATE(rneb(klon,klev))
+
+
 END SUBROUTINE phys_local_var_init
 
@@ -368,4 +502,56 @@
       deallocate(topswcf_aerop, solswcf_aerop)
 
+
+! FH Ajout de celles nécessaires au phys_output_write_mod
+      DEALLOCATE(slp)
+      DEALLOCATE(ale_wake, alp_wake, bils)
+      DEALLOCATE(cdragm, cdragh, cldh, cldl)
+      DEALLOCATE(cldm, cldq, cldt, qsat2m, qsol)
+      DEALLOCATE(dthmin, evap, fder, plcl, plfc)
+      DEALLOCATE(prw, zustar, zu10m, zv10m, rh2m, s_lcl)
+      DEALLOCATE(s_pblh, s_pblt, s_therm)
+      DEALLOCATE(slab_wfbils, tpot, tpote, ue)
+      DEALLOCATE(uq, ve, vq, zxffonte)
+      DEALLOCATE(zxfqcalving, zxfluxlat, zxrugs)
+      DEALLOCATE(zxtsol, snow_lsc, zxfqfonte, zxqsurf)
+      DEALLOCATE(rain_lsc, wake_h, wbeff, zmax_th)
+      DEALLOCATE(zq2m, zt2m, weak_inversion)
+      DEALLOCATE(sens, flwp, fiwp)
+      DEALLOCATE(ale_bl_stat,alp_bl_conv,alp_bl_det)
+      DEALLOCATE(alp_bl_fluct_m,alp_bl_fluct_tke)
+      DEALLOCATE(alp_bl_stat, n2, s2)
+      DEALLOCATE(proba_notrig, random_notrig)
+
+      DEALLOCATE(dnwd, dnwd0)
+!      DEALLOCATE(upwd, omega, coefh)
+      DEALLOCATE(upwd, omega)
+!      DEALLOCATE(coefm, lambda_th, cldemi)
+      DEALLOCATE(lambda_th, cldemi)
+      DEALLOCATE(cldfra, cldtau, fiwc)
+      DEALLOCATE(fl, re, flwc)
+      DEALLOCATE(ref_liq, ref_ice, theta)
+      DEALLOCATE(zphi, wake_omg, zx_rh)
+      DEALLOCATE(pmfd, pmfu)
+
+      DEALLOCATE(t2m, fevap, fluxlat)
+      DEALLOCATE(frugs, agesno, fsollw, evap_pot)
+      DEALLOCATE(fsolsw, wfbils, wfbilo)
+
+      DEALLOCATE(pmflxr, pmflxs, prfl)
+      DEALLOCATE(psfl, fraca, Vprecip)
+      DEALLOCATE(zw2)
+
+      DEALLOCATE(fluxu, fluxv)
+      DEALLOCATE(fluxt)
+
+      DEALLOCATE(uwriteSTD, vwriteSTD)
+      DEALLOCATE(wwriteSTD, phiwriteSTD)
+      DEALLOCATE(qwriteSTD, twriteSTD)
+
+! ug et d'autres encore:
+      DEALLOCATE(wdtrainA, wdtrainM)
+      DEALLOCATE(beta_prec)
+      DEALLOCATE(rneb)
+
 END SUBROUTINE phys_local_var_end
 
