source: trunk/LMDZ.MARS/libf/phymars/dust_param_mod.F90 @ 2616

Last change on this file since 2616 was 2578, checked in by romain.vande, 3 years ago

First stage of implementing Open_MP in the physic.
So far it can initialyse physic and run with all routines at .FALSE.

File size: 2.0 KB
Line 
1module dust_param_mod
2! This module contains flags and saved variables for the dust cycle
3implicit 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
11!$OMP THREADPRIVATE(active, doubleq,submicron,lifting,freedust,     &
12!$OMP                callddevil)
13 
14  INTEGER,SAVE :: dustbin ! number of bins of dust tracers
15
16!$OMP THREADPRIVATE(dustbin)
17
18  REAL,PARAMETER :: odpref = 610. ! Reference pressure (Pa) of
19                     ! DOD (Dust optical Depth) tau_pref_*
20 
21  REAL,SAVE,ALLOCATABLE :: tauscaling(:)   ! Convertion factor for qdust and Ndust
22  INTEGER,SAVE :: dustscaling_mode ! dust scaling modes
23                  ! =0, no rescaling (freedust)
24                  ! =1, prescribed scaling GCM5.3 style (using tauscaling)
25                  ! =2, only radiative scaling (using dust_rad_adjust)
26  REAL,SAVE,ALLOCATABLE :: dust_rad_adjust(:) ! radiative scaling for dust
27  REAL,PARAMETER :: t_scenario_sol=14/24. ! time of day (sol) at which
28                    ! tau_pref_scenario is deemed exact
29
30!$OMP THREADPRIVATE(tauscaling, dustscaling_mode,dust_rad_adjust)
31
32contains
33
34  subroutine ini_dust_param_mod(ngrid)
35    implicit none
36    integer,intent(in) :: ngrid ! number of atmospheric columns
37 
38    allocate(tauscaling(ngrid))
39    allocate(dust_rad_adjust(ngrid))
40 
41  end subroutine ini_dust_param_mod
42
43  subroutine end_dust_param_mod
44    implicit none
45   
46    if (allocated(tauscaling))  deallocate(tauscaling)
47    if (allocated(dust_rad_adjust)) deallocate(dust_rad_adjust)
48
49  end subroutine end_dust_param_mod
50end module dust_param_mod
Note: See TracBrowser for help on using the repository browser.