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

Last change on this file since 2551 was 2417, checked in by emillour, 5 years ago

Mars GCM:
Add a new scheme to handle the dust and its radiative impact. Triggered using
a new flag dustscaling_mode=2 (dustscaling_mod=0: no rescaling at all, and
dustscaling_mode=1: full rescaling using tauscaling, GCMv5.3 style). Rescaling
is then only done on the radiative impact (see dust_scaling_mod.F90) of dust.
Moreover the scaling factor "dust_rad_adjust" is evaluated using the target dust
scenario opacity for the next sol and left to evolve linearly until then to not
impose the diurnal evolution of dust.
In practice, main changes or additions in the code are:

  • renamed flag "tauscaling_mode" as "dustscaling_mode"
  • moved parameter "t_scenario_sol" to "dust_param_mod"
  • adapted "compute_dustscaling" routine in "dust_scaling_mod"
  • added module "dust_rad_adjust_mod"
  • 2D fields "dust_rad_adjust_prev" and "dust_rad_adjust_next" required to compute coefficient "dust_rad_adjust" need to be stored in (re)startfi files

EM

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