source: LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.F90 @ 5087

Last change on this file since 5087 was 5007, checked in by evignon, 12 months ago

ajout de la nouvelle paramétrisation du partitonnement de phase
dans les nuages de phase mixte de Lea Raillard
La parametrisation s'active avec iflag_icefrac=1 et est fondé
sur la theorie de creation et maintien de sursaturation en atmosphere
turbulente avec ou sans presence de cristaux de glace

File size: 19.3 KB
Line 
1MODULE lmdz_lscp_ini
2
3IMPLICIT NONE
4
5  ! PARAMETERS for lscp:
6  !--------------------
7 
8  REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG, RV, RPI
9  !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG, RV, RPI)
10 
11  REAL, SAVE, PROTECTED :: seuil_neb=0.001      ! cloud fraction threshold: a cloud can precipitate when exceeded
12  !$OMP THREADPRIVATE(seuil_neb)
13
14  REAL, SAVE, PROTECTED :: min_neb_th=1e-10      ! a cloud produced by bi-gaussian really exists when exceeded
15  !$OMP THREADPRIVATE(min_neb_th)
16
17  REAL, SAVE, PROTECTED :: min_frac_thermals=1.e-10   ! minimum thermals fraction for use of bigaussian distribution
18  !$OMP THREADPRIVATE(min_frac_thermals)
19
20  INTEGER, SAVE :: lunout, prt_level            ! Logical unit number and level for standard output
21  !$OMP THREADPRIVATE(lunout,prt_level)
22
23  INTEGER, SAVE, PROTECTED :: niter_lscp=5      ! number of iterations to calculate autoconversion to precipitation
24  !$OMP THREADPRIVATE(niter_lscp)
25
26  INTEGER, SAVE, PROTECTED :: iflag_evap_prec=1 ! precipitation evaporation flag. 0: nothing, 1: "old way",
27                                                ! 2: Max cloud fraction above to calculate the max of reevaporation
28                                                ! >=4: LTP'method i.e. evaporation in the clear-sky fraction of the mesh only
29                                                ! pay attention that iflag_evap_prec=4 may lead to unrealistic and overestimated
30                                                ! evaporation. Use 5 instead
31  !$OMP THREADPRIVATE(iflag_evap_prec)
32
33  REAL, SAVE, PROTECTED :: t_coup=234.0         ! temperature threshold which determines the phase
34                                                ! for which the saturation vapor pressure is calculated
35  !$OMP THREADPRIVATE(t_coup)
36  REAL, SAVE, PROTECTED :: DDT0=0.01            ! iteration parameter
37  !$OMP THREADPRIVATE(DDT0)
38
39  REAL, SAVE, PROTECTED :: ztfondue=278.15      ! parameter to calculate melting fraction of precipitation
40  !$OMP THREADPRIVATE(ztfondue)
41
42  REAL, SAVE, PROTECTED :: temp_nowater=233.15  ! temperature below which liquid water no longer exists
43  !$OMP THREADPRIVATE(temp_nowater)
44
45  REAL, SAVE, PROTECTED :: a_tr_sca(4)          ! Variables for tracers temporary: alpha parameter for scavenging, 4 possible scavenging processes
46  !$OMP THREADPRIVATE(a_tr_sca)
47 
48  REAL, SAVE, PROTECTED ::  min_frac_th_cld=1.e-10   ! minimum thermal fraction to compute a thermal cloud fraction
49  !$OMP THREADPRIVATE(min_frac_th_cld)
50
51  LOGICAL, SAVE, PROTECTED :: ok_radocond_snow=.false. ! take into account the mass of ice precip in the cloud ice content seen by radiation
52  !$OMP THREADPRIVATE(ok_radocond_snow)
53
54  REAL, SAVE, PROTECTED :: t_glace_min=258.0    ! lower-bound temperature parameter for cloud phase determination
55  !$OMP THREADPRIVATE(t_glace_min)
56
57  REAL, SAVE, PROTECTED :: t_glace_max=273.15   ! upper-bound temperature parameter for cloud phase determination
58  !$OMP THREADPRIVATE(t_glace_max)
59
60  REAL, SAVE, PROTECTED :: exposant_glace=1.0   ! parameter for cloud phase determination
61  !$OMP THREADPRIVATE(exposant_glace)
62
63  INTEGER, SAVE, PROTECTED :: iflag_vice=0      ! which expression for ice crystall fall velocity
64  !$OMP THREADPRIVATE(iflag_vice)
65
66  INTEGER, SAVE, PROTECTED :: iflag_t_glace=0   ! which expression for cloud phase partitioning
67  !$OMP THREADPRIVATE(iflag_t_glace)
68
69  INTEGER, SAVE, PROTECTED :: iflag_cloudth_vert=0          ! option for determining cloud fraction and content in convective boundary layers
70  !$OMP THREADPRIVATE(iflag_cloudth_vert)
71
72  INTEGER, SAVE, PROTECTED :: iflag_gammasat=0              ! which threshold for homogeneous nucleation below -40oC
73  !$OMP THREADPRIVATE(iflag_gammasat)
74
75  INTEGER, SAVE, PROTECTED :: iflag_rain_incloud_vol=0      ! use of volume cloud fraction for rain autoconversion
76  !$OMP THREADPRIVATE(iflag_rain_incloud_vol)
77
78  INTEGER, SAVE, PROTECTED :: iflag_bergeron=0              ! bergeron effect for liquid precipitation treatment 
79  !$OMP THREADPRIVATE(iflag_bergeron)
80
81  INTEGER, SAVE, PROTECTED :: iflag_fisrtilp_qsat=0         ! qsat adjustment (iterative) during autoconversion
82  !$OMP THREADPRIVATE(iflag_fisrtilp_qsat)
83
84  INTEGER, SAVE, PROTECTED :: iflag_pdf=0                   ! type of subgrid scale qtot pdf
85  !$OMP THREADPRIVATE(iflag_pdf)
86
87  INTEGER, SAVE, PROTECTED :: iflag_icefrac=0               ! which phase partitioning function to use
88  !$OMP THREADPRIVATE(iflag_icefrac)
89
90  INTEGER, SAVE, PROTECTED :: iflag_autoconversion=0        ! autoconversion option
91  !$OMP THREADPRIVATE(iflag_autoconversion)
92
93
94  LOGICAL, SAVE, PROTECTED :: reevap_ice=.false.            ! no liquid precip for T< threshold
95  !$OMP THREADPRIVATE(reevap_ice)
96
97  REAL, SAVE, PROTECTED :: cld_lc_lsc=2.6e-4                ! liquid autoconversion coefficient, stratiform rain
98  !$OMP THREADPRIVATE(cld_lc_lsc)
99
100  REAL, SAVE, PROTECTED :: cld_lc_con=2.6e-4                ! liquid autoconversion coefficient, convective rain
101  !$OMP THREADPRIVATE(cld_lc_con)
102
103  REAL, SAVE, PROTECTED :: cld_tau_lsc=3600.                ! liquid autoconversion timescale, stratiform rain
104  !$OMP THREADPRIVATE(cld_tau_lsc)
105
106  REAL, SAVE, PROTECTED :: cld_tau_con=3600.                ! liquid autoconversion timescale, convective rain
107  !$OMP THREADPRIVATE(cld_tau_con)
108
109  REAL, SAVE, PROTECTED :: cld_expo_lsc=2.                  ! liquid autoconversion threshold exponent, stratiform rain
110  !$OMP THREADPRIVATE(cld_expo_lsc)
111
112  REAL, SAVE, PROTECTED :: cld_expo_con=2.                  ! liquid autoconversion threshold exponent, convective rain
113  !$OMP THREADPRIVATE(cld_expo_con)
114
115  REAL, SAVE, PROTECTED :: ffallv_lsc=1.                    ! tuning coefficient crystal fall velocity, stratiform
116  !$OMP THREADPRIVATE(ffallv_lsc)
117
118  REAL, SAVE, PROTECTED :: ffallv_con=1.                    ! tuning coefficient crystal fall velocity, convective
119  !$OMP THREADPRIVATE(ffallv_con)
120
121  REAL, SAVE, PROTECTED :: coef_eva=2e-5                    ! tuning coefficient liquid precip evaporation
122  !$OMP THREADPRIVATE(coef_eva)
123
124  REAL, SAVE, PROTECTED :: coef_sub                         ! tuning coefficient ice precip sublimation
125  !$OMP THREADPRIVATE(coef_sub)
126
127  REAL, SAVE, PROTECTED :: expo_eva=0.5                     ! tuning coefficient liquid precip evaporation
128  !$OMP THREADPRIVATE(expo_eva)
129
130  REAL, SAVE, PROTECTED :: expo_sub                         ! tuning coefficient ice precip sublimation
131  !$OMP THREADPRIVATE(expo_sub)
132
133  REAL, SAVE, PROTECTED :: cice_velo=1.645                  ! factor in the ice fall velocity formulation
134  !$OMP THREADPRIVATE(cice_velo)
135
136  REAL, SAVE, PROTECTED ::  dice_velo=0.16                  ! exponent in the ice fall velocity formulation
137  !$OMP THREADPRIVATE(dice_velo)
138
139  REAL, SAVE, PROTECTED :: dist_liq=300.                    ! typical deph of cloud-top liquid layer in mpcs
140  !$OMP THREADPRIVATE(dist_liq)
141
142  REAL, SAVE, PROTECTED    :: tresh_cl=0.0                  ! cloud fraction threshold for cloud top search
143  !$OMP THREADPRIVATE(tresh_cl)
144
145  !--Parameters for poprecip
146  LOGICAL, SAVE, PROTECTED :: ok_poprecip=.FALSE.           ! use the processes-oriented formulation of precipitations
147  !$OMP THREADPRIVATE(ok_poprecip)
148
149  LOGICAL, SAVE, PROTECTED :: ok_corr_vap_evasub=.FALSE.    ! use the corrected version of clear-sky water vapor for the evap / subl processes
150  !$OMP THREADPRIVATE(ok_corr_vap_evasub)
151
152  REAL, SAVE, PROTECTED :: cld_lc_lsc_snow=2.e-5            ! snow autoconversion coefficient, stratiform. default from  Chaboureau and PInty 2006
153  !$OMP THREADPRIVATE(cld_lc_lsc_snow)
154
155  REAL, SAVE, PROTECTED :: cld_lc_con_snow=2.e-5            ! snow autoconversion coefficient, convective
156  !$OMP THREADPRIVATE(cld_lc_con_snow)
157
158  REAL, SAVE, PROTECTED :: rain_int_min=1.e-5               ! Minimum local rain intensity [mm/s] before the decrease in associated precipitation fraction
159  !$OMP THREADPRIVATE(rain_int_min)
160
161  REAL, SAVE, PROTECTED :: thresh_precip_frac=1.E-6         ! precipitation fraction threshold TODO [-]
162  !$OMP THREADPRIVATE(thresh_precip_frac)
163
164  REAL, SAVE, PROTECTED :: tau_mixenv=100000                ! Homogeneization time of mixed phase clouds [s]
165  !$OMP THREADPRIVATE(tau_mixenv)
166
167    REAL, SAVE, PROTECTED :: capa_crystal=1.                ! Sursaturation of ice part in mixed phase clouds [-]
168  !$OMP THREADPRIVATE(capa_crystal)
169
170  REAL, SAVE, PROTECTED :: lmix_mpc=1000                    ! Length of turbulent zones in Mixed Phase Clouds [m]
171  !$OMP THREADPRIVATE(lmix_mpc)
172
173  REAL, SAVE, PROTECTED :: naero5=0.5                       ! Number concentration of aerosol larger than 0.5 microns [scm-3]
174  !$OMP THREADPRIVATE(naero5)
175
176  REAL, SAVE, PROTECTED :: gamma_snwretro = 0.              ! Proportion of snow taken into account in ice retroaction in icefrac_turb [-]
177  !$OMP THREADPRIVATE(gamma_snwretro)
178
179  REAL, SAVE, PROTECTED :: gamma_taud = 1.                  ! Tuning coeff for tau_dissipturb [-]
180  !$OMP THREADPRIVATE(gamma_taud)
181
182  REAL, SAVE, PROTECTED :: gamma_col=1.                     ! A COMMENTER TODO [-]
183  !$OMP THREADPRIVATE(gamma_col)
184
185  REAL, SAVE, PROTECTED :: gamma_agg=1.                     ! A COMMENTER TODO [-]
186  !$OMP THREADPRIVATE(gamma_agg)
187
188  REAL, SAVE, PROTECTED :: gamma_rim=1.                     ! A COMMENTER TODO [-]
189  !$OMP THREADPRIVATE(gamma_rim)
190
191  REAL, SAVE, PROTECTED :: rho_rain=1000.                   ! Rain density [kg/m3]
192  !$OMP THREADPRIVATE(rho_rain)
193
194  REAL, SAVE, PROTECTED :: rho_ice=920.                     ! Ice density  [kg/m3]
195  !$OMP THREADPRIVATE(rho_ice)
196
197  REAL, SAVE, PROTECTED :: r_rain=500.E-6                   ! Rain droplets radius for POPRECIP [m]
198  !$OMP THREADPRIVATE(r_rain)
199
200  REAL, SAVE, PROTECTED :: r_snow=1.E-3                     ! Ice crystals radius for POPRECIP [m]
201  !$OMP THREADPRIVATE(r_snow)
202
203  REAL, SAVE, PROTECTED :: tau_auto_snow_min=100.           ! A COMMENTER TODO [s]
204  !$OMP THREADPRIVATE(tau_auto_snow_min)
205
206  REAL, SAVE, PROTECTED :: tau_auto_snow_max=1000.          ! A COMMENTER TODO [s]
207  !$OMP THREADPRIVATE(tau_auto_snow_max)
208
209  REAL, SAVE, PROTECTED :: eps=1.E-10                       ! A COMMENTER TODO [-]
210  !$OMP THREADPRIVATE(eps)
211
212  REAL, SAVE, PROTECTED :: gamma_melt=1.                    ! A COMMENTER TODO [-]
213  !$OMP THREADPRIVATE(gamma_melt)
214
215  REAL, SAVE, PROTECTED :: alpha_freez=4.                   ! A COMMENTER TODO [-]
216  !$OMP THREADPRIVATE(alpha_freez)
217
218  REAL, SAVE, PROTECTED :: beta_freez=0.1                   ! A COMMENTER TODO [m-3.s-1]
219  !$OMP THREADPRIVATE(beta_freez)
220
221  REAL, SAVE, PROTECTED :: gamma_freez=1.                   ! A COMMENTER TODO [-]
222  !$OMP THREADPRIVATE(gamma_freez)
223
224  REAL, SAVE, PROTECTED :: rain_fallspeed=4.                ! A COMMENTER TODO [m/s]
225  !$OMP THREADPRIVATE(rain_fallspeed)
226
227  REAL, SAVE, PROTECTED :: rain_fallspeed_clr                ! A COMMENTER TODO [m/s]
228  !$OMP THREADPRIVATE(rain_fallspeed_clr)
229
230  REAL, SAVE, PROTECTED :: rain_fallspeed_cld               ! A COMMENTER TODO [m/s]
231  !$OMP THREADPRIVATE(rain_fallspeed_cld)
232
233  REAL, SAVE, PROTECTED :: snow_fallspeed=1.               ! A COMMENTER TODO [m/s]
234  !$OMP THREADPRIVATE(snow_fallspeed)
235
236  REAL, SAVE, PROTECTED :: snow_fallspeed_clr               ! A COMMENTER TODO [m/s]
237  !$OMP THREADPRIVATE(snow_fallspeed_clr)
238
239  REAL, SAVE, PROTECTED :: snow_fallspeed_cld               ! A COMMENTER TODO [m/s]
240  !$OMP THREADPRIVATE(snow_fallspeed_cld)
241  !--End of the parameters for poprecip
242
243! Two parameters used for lmdz_lscp_old only
244  INTEGER, SAVE, PROTECTED :: iflag_oldbug_fisrtilp=0, fl_cor_ebil
245  !$OMP THREADPRIVATE(iflag_oldbug_fisrtilp,fl_cor_ebil)
246
247CONTAINS
248
249SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_sursat, iflag_ratqs, fl_cor_ebil_in, RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, &
250                    RVTMP2_in, RTT_in,RD_in,RG_in,RV_in,RPI_in)
251
252
253   USE ioipsl_getin_p_mod, ONLY : getin_p
254   USE ice_sursat_mod, ONLY: ice_sursat_init
255   USE lmdz_cloudth_ini, ONLY : cloudth_ini
256
257   REAL, INTENT(IN)      :: dtime
258   INTEGER, INTENT(IN)   :: lunout_in,prt_level_in,iflag_ratqs,fl_cor_ebil_in
259   LOGICAL, INTENT(IN)   :: ok_ice_sursat
260
261   REAL, INTENT(IN)      :: RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in
262   REAL, INTENT(IN)      ::  RVTMP2_in, RTT_in, RD_in, RG_in, RV_in, RPI_in
263   character (len=20) :: modname='lscp_ini_mod'
264   character (len=80) :: abort_message
265
266
267    lunout=lunout_in
268    prt_level=prt_level_in
269    fl_cor_ebil=fl_cor_ebil_in
270
271    RG=RG_in
272    RD=RD_in
273    RCPD=RCPD_in
274    RLVTT=RLVTT_in
275    RLSTT=RLSTT_in
276    RLMLT=RLMLT_in
277    RTT=RTT_in
278    RV=RV_in
279    RVTMP2=RVTMP2_in
280    RPI=RPI_in
281
282
283
284    CALL getin_p('niter_lscp',niter_lscp)
285    CALL getin_p('iflag_evap_prec',iflag_evap_prec)
286    CALL getin_p('seuil_neb',seuil_neb)
287    CALL getin_p('ok_radocond_snow',ok_radocond_snow)
288    CALL getin_p('t_glace_max',t_glace_max)
289    CALL getin_p('t_glace_min',t_glace_min)
290    CALL getin_p('exposant_glace',exposant_glace)
291    CALL getin_p('iflag_vice',iflag_vice)
292    CALL getin_p('iflag_t_glace',iflag_t_glace)
293    CALL getin_p('iflag_cloudth_vert',iflag_cloudth_vert)
294    CALL getin_p('iflag_gammasat',iflag_gammasat)
295    CALL getin_p('iflag_rain_incloud_vol',iflag_rain_incloud_vol)
296    CALL getin_p('iflag_bergeron',iflag_bergeron)
297    CALL getin_p('iflag_fisrtilp_qsat',iflag_fisrtilp_qsat)
298    CALL getin_p('iflag_pdf',iflag_pdf)
299    CALL getin_p('iflag_icefrac',iflag_icefrac)
300    CALL getin_p('reevap_ice',reevap_ice)
301    CALL getin_p('cld_lc_lsc',cld_lc_lsc)
302    CALL getin_p('cld_lc_con',cld_lc_con)
303    CALL getin_p('cld_lc_lsc_snow',cld_lc_lsc_snow)
304    CALL getin_p('cld_lc_con_snow',cld_lc_con_snow)
305    CALL getin_p('cld_tau_lsc',cld_tau_lsc)
306    CALL getin_p('cld_tau_con',cld_tau_con)
307    CALL getin_p('cld_expo_lsc',cld_expo_lsc)
308    CALL getin_p('cld_expo_con',cld_expo_con)
309    CALL getin_p('ffallv_lsc',ffallv_lsc)
310    CALL getin_p('ffallv_lsc',ffallv_con)
311    CALL getin_p('coef_eva',coef_eva)
312    coef_sub=coef_eva
313    CALL getin_p('coef_eva_i',coef_sub)
314    CALL getin_p('coef_sub',coef_sub)
315    CALL getin_p('expo_eva',expo_eva)
316    expo_sub=expo_eva
317    CALL getin_p('expo_sub',expo_sub)
318    CALL getin_p('iflag_autoconversion',iflag_autoconversion)
319    CALL getin_p('dist_liq',dist_liq)
320    CALL getin_p('tresh_cl',tresh_cl)
321    CALL getin_p('tau_mixenv',tau_mixenv)
322    CALL getin_p('capa_crystal',capa_crystal)
323    CALL getin_p('lmix_mpc',lmix_mpc)
324    CALL getin_p('naero5',naero5)
325    CALL getin_p('gamma_snwretro',gamma_snwretro)
326    CALL getin_p('gamma_taud',gamma_taud)
327    CALL getin_p('iflag_oldbug_fisrtilp',iflag_oldbug_fisrtilp)
328    CALL getin_p('ok_poprecip',ok_poprecip)
329    CALL getin_p('ok_corr_vap_evasub',ok_corr_vap_evasub)
330    CALL getin_p('rain_int_min',rain_int_min)
331    CALL getin_p('gamma_agg',gamma_agg)
332    CALL getin_p('gamma_col',gamma_col)
333    CALL getin_p('gamma_rim',gamma_rim)
334    CALL getin_p('gamma_freez',gamma_freez)
335    CALL getin_p('gamma_melt',gamma_melt)
336    CALL getin_p('r_snow',r_snow)
337    CALL getin_p('rain_fallspeed',rain_fallspeed)
338    rain_fallspeed_clr=rain_fallspeed
339    rain_fallspeed_cld=rain_fallspeed
340    CALL getin_p('rain_fallspeed_clr',rain_fallspeed_clr)
341    CALL getin_p('rain_fallspeed_cld',rain_fallspeed_cld)
342    CALL getin_p('snow_fallspeed',snow_fallspeed)
343    snow_fallspeed_clr=snow_fallspeed
344    snow_fallspeed_cld=snow_fallspeed
345    CALL getin_p('snow_fallspeed_clr',snow_fallspeed_clr)
346    CALL getin_p('snow_fallspeed_cld',snow_fallspeed_cld)
347
348
349
350    WRITE(lunout,*) 'lscp_ini, niter_lscp:', niter_lscp
351    WRITE(lunout,*) 'lscp_ini, iflag_evap_prec:', iflag_evap_prec
352    WRITE(lunout,*) 'lscp_ini, seuil_neb:', seuil_neb
353    WRITE(lunout,*) 'lscp_ini, ok_radocond_snow:', ok_radocond_snow
354    WRITE(lunout,*) 'lscp_ini, t_glace_max:', t_glace_max
355    WRITE(lunout,*) 'lscp_ini, t_glace_min:', t_glace_min
356    WRITE(lunout,*) 'lscp_ini, exposant_glace:', exposant_glace
357    WRITE(lunout,*) 'lscp_ini, iflag_vice:', iflag_vice
358    WRITE(lunout,*) 'lscp_ini, iflag_t_glace:', iflag_t_glace
359    WRITE(lunout,*) 'lscp_ini, iflag_cloudth_vert:', iflag_cloudth_vert
360    WRITE(lunout,*) 'lscp_ini, iflag_gammasat:', iflag_gammasat
361    WRITE(lunout,*) 'lscp_ini, iflag_rain_incloud_vol:', iflag_rain_incloud_vol
362    WRITE(lunout,*) 'lscp_ini, iflag_bergeron:', iflag_bergeron
363    WRITE(lunout,*) 'lscp_ini, iflag_fisrtilp_qsat:', iflag_fisrtilp_qsat
364    WRITE(lunout,*) 'lscp_ini, iflag_pdf', iflag_pdf
365    WRITE(lunout,*) 'lscp_ini, iflag_icefrac', iflag_icefrac
366    WRITE(lunout,*) 'lscp_ini, reevap_ice', reevap_ice
367    WRITE(lunout,*) 'lscp_ini, cld_lc_lsc', cld_lc_lsc
368    WRITE(lunout,*) 'lscp_ini, cld_lc_con', cld_lc_con
369    WRITE(lunout,*) 'lscp_ini, cld_lc_lsc_snow', cld_lc_lsc_snow
370    WRITE(lunout,*) 'lscp_ini, cld_lc_con_snow', cld_lc_con_snow
371    WRITE(lunout,*) 'lscp_ini, cld_tau_lsc', cld_tau_lsc
372    WRITE(lunout,*) 'lscp_ini, cld_tau_con', cld_tau_con
373    WRITE(lunout,*) 'lscp_ini, cld_expo_lsc', cld_expo_lsc
374    WRITE(lunout,*) 'lscp_ini, cld_expo_con', cld_expo_con
375    WRITE(lunout,*) 'lscp_ini, ffallv_lsc', ffallv_lsc
376    WRITE(lunout,*) 'lscp_ini, ffallv_con', ffallv_con
377    WRITE(lunout,*) 'lscp_ini, coef_eva', coef_eva
378    WRITE(lunout,*) 'lscp_ini, coef_sub', coef_sub
379    WRITE(lunout,*) 'lscp_ini, expo_eva', expo_eva
380    WRITE(lunout,*) 'lscp_ini, expo_sub', expo_sub
381    WRITE(lunout,*) 'lscp_ini, iflag_autoconversion', iflag_autoconversion
382    WRITE(lunout,*) 'lscp_ini, dist_liq', dist_liq
383    WRITE(lunout,*) 'lscp_ini, tresh_cl', tresh_cl
384    WRITE(lunout,*) 'lscp_ini, tau_mixenv', tau_mixenv
385    WRITE(lunout,*) 'lscp_ini, capa_crystal', capa_crystal
386    WRITE(lunout,*) 'lscp_ini, lmix_mpc', lmix_mpc
387    WRITE(lunout,*) 'lscp_ini, naero5', naero5
388    WRITE(lunout,*) 'lscp_ini, gamma_snwretro', gamma_snwretro
389    WRITE(lunout,*) 'lscp_ini, gamma_taud', gamma_taud
390    WRITE(lunout,*) 'lscp_ini, iflag_oldbug_fisrtilp', iflag_oldbug_fisrtilp
391    WRITE(lunout,*) 'lscp_ini, fl_cor_ebil', fl_cor_ebil
392    WRITE(lunout,*) 'lscp_ini, ok_poprecip', ok_poprecip
393    WRITE(lunout,*) 'lscp_ini, ok_corr_vap_evasub', ok_corr_vap_evasub
394    WRITE(lunout,*) 'lscp_ini, rain_int_min:', rain_int_min
395    WRITE(lunout,*) 'lscp_ini, gamma_agg:', gamma_agg
396    WRITE(lunout,*) 'lscp_ini, gamma_col:', gamma_col
397    WRITE(lunout,*) 'lscp_ini, gamma_rim:', gamma_rim
398    WRITE(lunout,*) 'lscp_ini, gamma_freez:', gamma_freez
399    WRITE(lunout,*) 'lscp_ini, gamma_melt:', gamma_melt
400    WRITE(lunout,*) 'lscp_ini, r_snow:', r_snow
401    WRITE(lunout,*) 'lscp_ini, rain_fallspeed_clr:', rain_fallspeed_clr
402    WRITE(lunout,*) 'lscp_ini, rain_fallspeed_cld:', rain_fallspeed_cld
403    WRITE(lunout,*) 'lscp_ini, snow_fallspeed_clr:', snow_fallspeed_clr
404    WRITE(lunout,*) 'lscp_ini, snow_fallspeed_cld:', snow_fallspeed_cld
405
406
407
408
409
410    ! check for precipitation sub-time steps
411    IF (ABS(dtime/REAL(niter_lscp)-360.0).GT.0.001) THEN
412        WRITE(lunout,*) 'lscp: it is not expected, see Z.X.Li', dtime
413        WRITE(lunout,*) 'I would prefer a 6 min sub-timestep'
414    ENDIF
415
416    ! check consistency between numerical resolution of autoconversion
417    ! and other options
418   
419    IF (iflag_autoconversion .EQ. 2) THEN
420        IF ((iflag_vice .NE. 0) .OR. (niter_lscp .GT. 1)) THEN
421           abort_message = 'in lscp, iflag_autoconversion=2 requires iflag_vice=0 and niter_lscp=1'
422           CALL abort_physic (modname,abort_message,1)
423        ENDIF
424    ENDIF
425
426
427    !AA Temporary initialisation
428    a_tr_sca(1) = -0.5
429    a_tr_sca(2) = -0.5
430    a_tr_sca(3) = -0.5
431    a_tr_sca(4) = -0.5
432   
433    IF (ok_ice_sursat) CALL ice_sursat_init()
434
435    CALL cloudth_ini(iflag_cloudth_vert,iflag_ratqs)
436
437RETURN
438
439END SUBROUTINE lscp_ini
440
441END MODULE lmdz_lscp_ini
Note: See TracBrowser for help on using the repository browser.