source: LMDZ6/trunk/libf/phylmd/lscp_ini_mod.F90 @ 4404

Last change on this file since 4404 was 4380, checked in by evignon, 21 months ago

premier commit d'un travail en cours sur l'externalisation de la routine lscp pour l'utilisation du replay
+ nettoyage

File size: 3.2 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_radliq_snow=.false.       ! take into account the mass of ice precip in the cloud ice content seen by radiation
38  !$OMP THREADPRIVATE(ok_radliq_snow)
39
40
41CONTAINS
42
43SUBROUTINE lscp_ini(dtime,ok_ice_sursat)
44
45
46   USE ioipsl_getin_p_mod, ONLY : getin_p
47   USE print_control_mod, ONLY: prt_level, lunout
48   USE ice_sursat_mod, ONLY: ice_sursat_init
49
50   REAL, INTENT(IN)      :: dtime
51   LOGICAL, INTENT(IN)   :: ok_ice_sursat 
52
53    CALL getin_p('ninter',ninter)
54    CALL getin_p('iflag_evap_prec',iflag_evap_prec)
55    CALL getin_p('seuil_neb',seuil_neb)
56    CALL getin_p('rain_int_min',rain_int_min)
57    CALL getin_p('iflag_mpc_bl',iflag_mpc_bl)
58    CALL getin_p('ok_radliq_snow',ok_radliq_snow)         
59    WRITE(lunout,*) 'lscp, ninter:', ninter
60    WRITE(lunout,*) 'lscp, iflag_evap_prec:', iflag_evap_prec
61    WRITE(lunout,*) 'lscp, seuil_neb:', seuil_neb
62    WRITE(lunout,*) 'lscp, rain_int_min:', rain_int_min
63    WRITE(lunout,*) 'lscp, iflag_mpc_bl:', iflag_mpc_bl
64    WRITE(lunout,*) 'lscp, ok_radliq_snow:', ok_radliq_snow
65   
66    ! check for precipitation sub-time steps
67    IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN
68        WRITE(lunout,*) 'lscp: it is not expected, see Z.X.Li', dtime
69        WRITE(lunout,*) 'I would prefer a 6 min sub-timestep'
70    ENDIF
71
72
73    !AA Temporary initialisation
74    a_tr_sca(1) = -0.5
75    a_tr_sca(2) = -0.5
76    a_tr_sca(3) = -0.5
77    a_tr_sca(4) = -0.5
78   
79    IF (ok_ice_sursat) CALL ice_sursat_init()
80
81
82
83end subroutine lscp_ini
84
85end module lscp_ini_mod
Note: See TracBrowser for help on using the repository browser.