source: LMDZ6/branches/blowing_snow/libf/phylmd/lscp_ini_mod.F90

Last change on this file was 4420, checked in by evignon, 23 months ago

mise sous flag du bug d'autoconversion dans lscp

File size: 3.5 KB
Line 
1module lscp_ini_mod
2
3implicit none
4
5  ! PARAMETERS for lscp:
6  !--------------------
7 
8  REAL, SAVE :: seuil_neb=0.001                 ! cloud fraction threshold: a cloud really exists when exceeded
9  !$OMP THREADPRIVATE(seuil_neb)
10
11  INTEGER, SAVE :: ninter=5                     ! number of iterations to calculate autoconversion to precipitation
12  !$OMP THREADPRIVATE(ninter)
13
14  INTEGER,SAVE :: iflag_evap_prec=1             ! precipitation evaporation flag. 0: nothing, 1: "old way",
15                                                ! 2: Max cloud fraction above to calculate the max of reevaporation
16                                                ! 4: LTP'method i.e. evaporation in the clear-sky fraction of the mesh only
17  !$OMP THREADPRIVATE(iflag_evap_prec)
18
19  REAL t_coup                                   ! temperature threshold which determines the phase
20  PARAMETER (t_coup=234.0)                      ! for which the saturation vapor pressure is calculated
21
22  REAL DDT0                                     ! iteration parameter
23  PARAMETER (DDT0=.01)
24
25  REAL ztfondue                                 ! parameter to calculate melting fraction of precipitation
26  PARAMETER (ztfondue=278.15)
27
28  REAL, SAVE    :: rain_int_min=0.001           ! Minimum local rain intensity [mm/s] before the decrease in associated precipitation fraction
29  !$OMP THREADPRIVATE(rain_int_min)
30
31  REAL, SAVE :: a_tr_sca(4)                     ! Variables for tracers temporary: alpha parameter for scavenging, 4 possible scavenging processes
32  !$OMP THREADPRIVATE(a_tr_sca)
33 
34  INTEGER, SAVE ::  iflag_mpc_bl=0              ! flag to activate boundary layer mixed phase cloud param
35  !$OMP THREADPRIVATE(iflag_mpc_bl)
36 
37  LOGICAL, SAVE :: ok_radocond_snow=.false.       ! take into account the mass of ice precip in the cloud ice content seen by radiation
38  !$OMP THREADPRIVATE(ok_radocond_snow)
39
40  LOGICAL, SAVE :: ok_debug_autoconversion=.true.   ! removes a bug in the autoconversion process
41  !$OMP THREADPRIVATE(ok_debug_autoconversion)
42
43
44CONTAINS
45
46SUBROUTINE lscp_ini(dtime,ok_ice_sursat)
47
48
49   USE ioipsl_getin_p_mod, ONLY : getin_p
50   USE print_control_mod, ONLY: prt_level, lunout
51   USE ice_sursat_mod, ONLY: ice_sursat_init
52
53   REAL, INTENT(IN)      :: dtime
54   LOGICAL, INTENT(IN)   :: ok_ice_sursat 
55
56    CALL getin_p('ninter',ninter)
57    CALL getin_p('iflag_evap_prec',iflag_evap_prec)
58    CALL getin_p('seuil_neb',seuil_neb)
59    CALL getin_p('rain_int_min',rain_int_min)
60    CALL getin_p('iflag_mpc_bl',iflag_mpc_bl)
61    CALL getin_p('ok_radocond_snow',ok_radocond_snow)
62    CALL getin_p('ok_debug_autoconversion',ok_debug_autoconversion)   
63    WRITE(lunout,*) 'lscp, ninter:', ninter
64    WRITE(lunout,*) 'lscp, iflag_evap_prec:', iflag_evap_prec
65    WRITE(lunout,*) 'lscp, seuil_neb:', seuil_neb
66    WRITE(lunout,*) 'lscp, rain_int_min:', rain_int_min
67    WRITE(lunout,*) 'lscp, iflag_mpc_bl:', iflag_mpc_bl
68    WRITE(lunout,*) 'lscp, ok_radocond_snow:', ok_radocond_snow
69    WRITE(lunout,*) 'lscp, ok_debug_autoconversion:', ok_debug_autoconversion
70
71    ! check for precipitation sub-time steps
72    IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN
73        WRITE(lunout,*) 'lscp: it is not expected, see Z.X.Li', dtime
74        WRITE(lunout,*) 'I would prefer a 6 min sub-timestep'
75    ENDIF
76
77
78    !AA Temporary initialisation
79    a_tr_sca(1) = -0.5
80    a_tr_sca(2) = -0.5
81    a_tr_sca(3) = -0.5
82    a_tr_sca(4) = -0.5
83   
84    IF (ok_ice_sursat) CALL ice_sursat_init()
85
86
87
88end subroutine lscp_ini
89
90end module lscp_ini_mod
Note: See TracBrowser for help on using the repository browser.