1 | module dust_param_mod |
---|
2 | ! This module contains flags and saved variables for the dust cycle |
---|
3 | implicit none |
---|
4 | LOGICAL,SAVE :: active ! is dust radiatively active? |
---|
5 | LOGICAL,SAVE :: doubleq ! use 2-moment schmeme for dust? (dustbin must then be >=2) |
---|
6 | LOGICAL,SAVE :: submicron ! include a secondary dust distribution (submicron particules) |
---|
7 | LOGICAL,SAVE :: lifting ! flag to activate injection of dust from the surface |
---|
8 | LOGICAL,SAVE :: freedust ! if true: no rescaling (via tauscaling) of the dust mass and number |
---|
9 | LOGICAL,SAVE :: callddevil ! flag to activate dust devil (dust lifing/injection) parametrization |
---|
10 | LOGICAL,SAVE :: reff_driven_IRtoVIS_scenario ! use GCM dust size to convert IR scenarios to VIS |
---|
11 | |
---|
12 | !$OMP THREADPRIVATE(active, doubleq,submicron,lifting,freedust, & |
---|
13 | !$OMP callddevil) |
---|
14 | |
---|
15 | INTEGER,SAVE :: dustbin ! number of bins of dust tracers |
---|
16 | |
---|
17 | !$OMP THREADPRIVATE(dustbin) |
---|
18 | |
---|
19 | REAL,PARAMETER :: odpref = 610. ! Reference pressure (Pa) of |
---|
20 | ! DOD (Dust optical Depth) tau_pref_* |
---|
21 | |
---|
22 | REAL,SAVE,ALLOCATABLE :: tauscaling(:) ! Convertion factor for qdust and Ndust |
---|
23 | INTEGER,SAVE :: dustscaling_mode ! dust scaling modes |
---|
24 | ! =0, no rescaling (freedust) |
---|
25 | ! =1, prescribed scaling GCM5.3 style (using tauscaling) |
---|
26 | ! =2, only radiative scaling (using dust_rad_adjust) |
---|
27 | REAL,SAVE,ALLOCATABLE :: dust_rad_adjust(:) ! radiative scaling for dust |
---|
28 | REAL,PARAMETER :: t_scenario_sol=14/24. ! time of day (sol) at which |
---|
29 | ! tau_pref_scenario is deemed exact |
---|
30 | |
---|
31 | !$OMP THREADPRIVATE(tauscaling,dustscaling_mode,dust_rad_adjust) |
---|
32 | |
---|
33 | contains |
---|
34 | |
---|
35 | subroutine ini_dust_param_mod(ngrid) |
---|
36 | implicit none |
---|
37 | integer,intent(in) :: ngrid ! number of atmospheric columns |
---|
38 | |
---|
39 | allocate(tauscaling(ngrid)) |
---|
40 | allocate(dust_rad_adjust(ngrid)) |
---|
41 | |
---|
42 | end subroutine ini_dust_param_mod |
---|
43 | |
---|
44 | subroutine end_dust_param_mod |
---|
45 | implicit none |
---|
46 | |
---|
47 | if (allocated(tauscaling)) deallocate(tauscaling) |
---|
48 | if (allocated(dust_rad_adjust)) deallocate(dust_rad_adjust) |
---|
49 | |
---|
50 | end subroutine end_dust_param_mod |
---|
51 | end module dust_param_mod |
---|