Index: LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90	(revision 5999)
+++ LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90	(revision 6000)
@@ -347,4 +347,31 @@
   ! parameters for subgrid variability (ratqs) routines
 
+  INTEGER, SAVE, PROTECTED :: nbsrf, is_ter, is_lic         ! number of subgrid tiles, and indices for land and landice tiles
+  !$OMP THREADPRIVATE(nbsrf, is_ter, is_lic)
+
+  REAL, SAVE, PROTECTED :: a_ratqs_cv = 1.                  ! a_ratqs_cv and a_ratqs_wake control the contibution of cold pools to
+                                                            ! water subgrid variability
+  !$OMP THREADPRIVATE(a_ratqs_cv)
+
+  REAL, SAVE, PROTECTED :: a_ratqs_wake = 3.
+  !$OMP THREADPRIVATE(a_ratqs_wake)
+
+  REAL, SAVE, PROTECTED :: tau_var = 700.0                  ! relaxation time for variability in thermals [s]
+  !$OMP THREADPRIVATE(tau_var)
+
+  REAL, SAVE, PROTECTED :: fac_tau = 2.                     
+  !$OMP THREADPRIVATE(fac_tau)
+
+  REAL, SAVE, PROTECTED :: tau_cumul = 1000.
+  !$OMP THREADPRIVATE(tau_cumul)
+
+  INTEGER, SAVE, PROTECTED :: dqimpl = 1
+  !$OMP THREADPRIVATE(dqimpl)
+
+  REAL, ALLOCATABLE, SAVE :: povariance(:,:)
+  !$OMP THREADPRIVATE(povariance)
+  
+  REAL, ALLOCATABLE, SAVE :: var_conv(:,:)
+  !$OMP THREADPRIVATE(var_conv)
 
 
@@ -356,6 +383,7 @@
 CONTAINS
 
-SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_supersat_in, iflag_ratqs_in, fl_cor_ebil_in, &
-                    RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, RVTMP2_in, &
+        SUBROUTINE lscp_ini(dtime, klon, klev, iflag_thermals, nbsrf_in, is_ter_in, is_lic_in, lunout_in,    &
+                    prt_level_in, ok_ice_supersat_in, iflag_ratqs_in, fl_cor_ebil_in,                        &
+                    RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, RVTMP2_in,                                        &
                     RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in)
 
@@ -364,15 +392,21 @@
 
    REAL, INTENT(IN)      :: dtime
+   INTEGER, INTENT(IN)   :: klon, klev, iflag_thermals
+   INTEGER, INTENT(IN)   :: nbsrf_in, is_ter_in, is_lic_in
    INTEGER, INTENT(IN)   :: lunout_in,prt_level_in,iflag_ratqs_in,fl_cor_ebil_in
    LOGICAL, INTENT(IN)   :: ok_ice_supersat_in
-
    REAL, INTENT(IN)      :: RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in
    REAL, INTENT(IN)      :: RVTMP2_in, RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in
-   character (len=20) :: modname='lscp_ini_mod'
-   character (len=80) :: abort_message
-
+
+   CHARACTER (len=20) :: modname='lscp_ini_mod'
+   CHARACTER (len=80) :: abort_message
+
+   INTEGER               :: i,k
 
     lunout=lunout_in
     prt_level=prt_level_in
+    nbsrf=nbsrf_in
+    is_ter=is_ter_in
+    is_lic=is_lic_in
     fl_cor_ebil=fl_cor_ebil_in
     iflag_ratqs=iflag_ratqs_in
@@ -392,4 +426,8 @@
     EPS_W=EPS_W_in
 
+
+    IF (iflag_thermals==15.OR.iflag_thermals==16) THEN
+        dqimpl=-1
+    ENDIF
 
 
@@ -420,4 +458,5 @@
     CALL getin_p('ffallv_lsc',ffallv_lsc)
     CALL getin_p('ffallv_lsc',ffallv_con)
+    
     ! for poprecip and cloud phase
     CALL getin_p('coef_eva',coef_eva)
@@ -464,4 +503,5 @@
     CALL getin_p('snow_fallspeed_clr',snow_fallspeed_clr)
     CALL getin_p('snow_fallspeed_cld',snow_fallspeed_cld)
+    
     ! for condensation and ice supersaturation
     CALL getin_p('ok_unadjusted_clouds',ok_unadjusted_clouds)
@@ -483,4 +523,5 @@
     CALL getin_p('coef_shear_lscp',coef_shear_lscp)
     CALL getin_p('chi_mixing_lscp',chi_mixing_lscp)
+    
     ! for cloudth routines
     CALL getin_p('ok_lscp_mergecond',ok_lscp_mergecond)
@@ -495,4 +536,12 @@
     CALL getin_p('cloudth_vert_alpha_th',vert_alpha_th)
     CALL getin_p('iflag_cloudth_vert_noratqs',iflag_cloudth_vert_noratqs)
+
+    ! for subgrid water variability (ratqs) routines
+    CALL getin_p('tau_var', tau_var)
+    CALL getin_p('fac_tau', fac_tau)
+    CALL getin_p('tau_cumul', tau_cumul)
+    CALL getin_p('a_ratqs_wake', a_ratqs_wake)
+    CALL getin_p('a_ratqs_cv', a_ratqs_cv)
+
 
     WRITE(lunout,*) 'lscp_ini, niter_lscp:', niter_lscp
@@ -589,4 +638,10 @@
     WRITE(lunout,*) 'lscp_ini, cloudth_vert_alpha_th:', vert_alpha_th
     WRITE(lunout,*) 'lscp_ini, iflag_cloudth_vert_noratqs:', iflag_cloudth_vert_noratqs
+    ! for subgrid water variability (ratqs) routines
+    WRITE(lunout,*) 'lscp_ini, tau_var:', tau_var
+    WRITE(lunout,*) 'lscp_ini, fac_tau:', fac_tau
+    WRITE(lunout,*) 'lscp_ini, tau_cumulu:', tau_cumul
+    WRITE(lunout,*) 'lscp_ini, a_ratqs_wake:', a_ratqs_wake
+    WRITE(lunout,*) 'lscp_ini, a_ratqs_cv:', a_ratqs_cv
 
 
@@ -626,5 +681,5 @@
 
 
-    !AA Temporary initialisation
+    ! Temporary initialisation
     a_tr_sca(1) = -0.5
     a_tr_sca(2) = -0.5
@@ -632,4 +687,21 @@
     a_tr_sca(4) = -0.5
     
+    ! Initialisation of variances of subgrid variability of water
+    ! for the prognostic parameterisation
+    ! Works only in 1D so far, but should become a state variable
+    ! of the model and an argument of the routines
+
+    IF (klon.EQ.1) THEN
+        DO k=1,klev
+            DO i=1,klon
+              povariance(i,k) = 0.00000000001
+              var_conv(i,k) = 0.00000000001
+            ENDDO
+        ENDDO
+    ELSE
+        PRINT*, 'variance of subgrid variability of water should be conserved in restart files'
+    ENDIF
+
+
 
 RETURN
Index: LMDZ6/trunk/libf/phylmd/lmdz_ratqs_ini.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_ratqs_ini.f90	(revision 5999)
+++ 	(revision )
@@ -1,94 +1,0 @@
-MODULE lmdz_ratqs_ini
-
-IMPLICIT NONE
-
-integer :: lunout
-
-INTEGER, SAVE, PROTECTED :: nbsrf,is_lic,is_ter
-REAL, SAVE, PROTECTED :: RG,RV,RD,RCPD,RLSTT,RLVTT,RTT
-REAL, SAVE, PROTECTED :: a_ratqs_cv
-REAL, SAVE, PROTECTED :: tau_var
-REAL, SAVE, PROTECTED :: fac_tau
-REAL, SAVE, PROTECTED :: tau_cumul
-REAL, SAVE, PROTECTED :: a_ratqs_wake
-INTEGER, SAVE, PROTECTED :: dqimpl
-
-real, allocatable, SAVE :: povariance(:,:)
-!$OMP THREADPRIVATE(povariance)
-real, allocatable, SAVE :: var_conv(:,:)
-!$OMP THREADPRIVATE(var_conv)
-
-!$OMP THREADPRIVATE(nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
-!$OMP THREADPRIVATE(a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake,dqimpl)
-
-
-CONTAINS
-SUBROUTINE ratqs_ini(klon,klev,iflag_thermals,lunout_in,nbsrf_in,is_lic_in,is_ter_in,RG_in,RV_in,RD_in,RCPD_in,RLSTT_in,RLVTT_in,RTT_in)
-
-   USE ioipsl_getin_p_mod, ONLY : getin_p
-
-integer, intent(in) :: klon,klev,iflag_thermals,lunout_in
-integer, intent(in) :: nbsrf_in,is_lic_in,is_ter_in
-real, intent(in) :: RG_in,RV_in,RD_in,RCPD_in,RLSTT_in,RLVTT_in,RTT_in
-
-integer :: i,k
-
-nbsrf   =nbsrf_in
-is_lic  =is_lic_in
-is_ter  =is_ter_in
-RG      =RG_in    
-RV      =RV_in
-RD      =RD_in
-RCPD    =RCPD_in
-RLSTT   =RLSTT_in
-RLVTT   =RLVTT_in
-RTT     =RTT_in
-
-print*,'ratqs_ini'
-if (iflag_thermals==15.or.iflag_thermals==16) then
-   dqimpl=-1
-else
-   dqimpl=1
-endif
-lunout=lunout_in
-
-allocate(povariance(klon,klev))
-allocate(var_conv(klon,klev))
-
-
-tau_var = 700. ! temps de relaxation de la variabilit?? pour les thermiques
-fac_tau = 2. 
-tau_cumul = 1000 
-a_ratqs_wake = 3.    ! param??tre pilotant l'importance du terme d??pendant des poches froides
-a_ratqs_cv = 1.
-CALL getin_p('tau_var', tau_var)
-CALL getin_p('fac_tau', fac_tau)
-CALL getin_p('tau_cumul', tau_cumul)
-CALL getin_p('a_ratqs_wake', a_ratqs_wake) 
-CALL getin_p('a_ratqs_cv', a_ratqs_cv)
-
-!--------------------------------------------------------
-! Initialisation des variances pour la param??trisation
-! pronostique des variances de Louis.
-! Ne marche pour le moment qu'en 1D en forcant une 
-! initialisation des variances ?? une valeur constante.
-! A terme la variance doit devenir une variable d'etat
-! passee en argument
-!--------------------------------------------------------
-
-if (klon.eq.1) then
-    do k=1,klev
-      do i=1,klon 
-          povariance(i,k) = 0.00000000001
-          var_conv(i,k) = 0.00000000001
-      enddo
-    enddo
-else
-    print*, 'conserver la variance dans les restarts'
-endif
-!--------------------------------------------------------
-
- RETURN
-
-END SUBROUTINE ratqs_ini
-END MODULE lmdz_ratqs_ini
Index: LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90	(revision 5999)
+++ LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90	(revision 6000)
@@ -24,7 +24,7 @@
            ratqs_inter_,sigma_qtherm)
 
-USE lmdz_ratqs_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
-USE lmdz_ratqs_ini, ONLY : RG
-USE lmdz_ratqs_ini, ONLY : povariance, var_conv
+USE lmdz_lscp_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
+USE lmdz_lscp_ini, ONLY : RG
+USE lmdz_lscp_ini, ONLY : povariance, var_conv
 USE lmdz_thermcell_dq,  ONLY : thermcell_dq
 
Index: LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 5999)
+++ LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 6000)
@@ -1892,7 +1892,7 @@
        CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, &
             &    RG,RD,RCPD,RKAPPA,RLVTT,RETV)
-       CALL ratqs_ini(klon,klev,iflag_thermals,lunout,nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
-       CALL lscp_ini(pdtphys,lunout,prt_level,ok_ice_supersat,iflag_ratqs,fl_cor_ebil, &
-            RCPD,RLSTT,RLVTT,RLMLT,RVTMP2,RTT,RD,RV,RG,RPI,EPS_W)
+       CALL lscp_ini(pdtphys,klon,klev,iflag_thermals,nbsrf,is_ter,is_lic,lunout,prt_level,       &
+                     ok_ice_supersat,iflag_ratqs,fl_cor_ebil,                                     &
+                     RCPD,RLSTT,RLVTT,RLMLT,RVTMP2,RTT,RD,RV,RG,RPI,EPS_W)
        CALL blowing_snow_ini(RCPD, RLSTT, RLVTT, RLMLT, &
             RVTMP2, RTT,RD,RG, RV, RPI)
Index: LMDZ6/trunk/libf/phylmdiso/lmdz_ratqs_ini.f90
===================================================================
--- LMDZ6/trunk/libf/phylmdiso/lmdz_ratqs_ini.f90	(revision 5999)
+++ 	(revision )
@@ -1,1 +1,0 @@
-link ../phylmd/lmdz_ratqs_ini.f90
Index: LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 5999)
+++ LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90	(revision 6000)
@@ -2035,6 +2035,6 @@
        CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, &
    &    RG,RD,RCPD,RKAPPA,RLVTT,RETV)
-       CALL ratqs_ini(klon,klev,iflag_thermals,lunout,nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
-       CALL lscp_ini(pdtphys,lunout,prt_level,ok_ice_supersat,iflag_ratqs,fl_cor_ebil, &
+       CALL lscp_ini(pdtphys,klon,klev,iflag_thermals,nbsrf,is_ter,is_lic,lunout,prt_level,       &
+                     ok_ice_supersat,iflag_ratqs,fl_cor_ebil,                                     &
                      RCPD,RLSTT,RLVTT,RLMLT,RVTMP2,RTT,RD,RV,RG,RPI,EPS_W)
        CALL blowing_snow_ini(RCPD, RLSTT, RLVTT, RLMLT, &
