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

Last change on this file since 3026 was 2643, checked in by abierjon, 3 years ago

Mars GCM:
Implementation of the IRabs-to-VISext dust scenario conversion, depending on the GCM effective radius :

  • new flag 'reff_driven_IRtoVIS_scenario', false by default, must be set to true to use this dynamic conversion (otherwise, the coefficient takes the constant value of 2.6, eqv to reff=1.5um, as before) A specific line is added in deftank/callphys.def.GCM6
  • this flag requires the 'dustiropacity' to be set to 'tes' to match the IR scenario's wavelength. 'mcs'-like dso diagnostics can only be produced by the use of the post-processing tool util/aeroptical.F90
  • the variable IRtoVIScoef is computed in aeropacity via the GCM CDOD ratio : tau_pref_gcm_VIS/tau_pref_gcm_IR (only at the first call to callradite during each physical timestep)
  • change read_dust_scenario into module read_dust_scenario_mod

AB

File size: 2.1 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
[2643]10  LOGICAL,SAVE :: reff_driven_IRtoVIS_scenario ! use GCM dust size to convert IR scenarios to VIS
[2578]11
12!$OMP THREADPRIVATE(active, doubleq,submicron,lifting,freedust,     &
13!$OMP                callddevil)
[2409]14 
15  INTEGER,SAVE :: dustbin ! number of bins of dust tracers
16
[2578]17!$OMP THREADPRIVATE(dustbin)
18
[2409]19  REAL,PARAMETER :: odpref = 610. ! Reference pressure (Pa) of
[2415]20                     ! DOD (Dust optical Depth) tau_pref_*
[2409]21 
22  REAL,SAVE,ALLOCATABLE :: tauscaling(:)   ! Convertion factor for qdust and Ndust
[2417]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
[2409]30
[2643]31!$OMP THREADPRIVATE(tauscaling,dustscaling_mode,dust_rad_adjust)
[2578]32
[2409]33contains
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))
[2417]40    allocate(dust_rad_adjust(ngrid))
[2409]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)
[2417]48    if (allocated(dust_rad_adjust)) deallocate(dust_rad_adjust)
[2409]49
50  end subroutine end_dust_param_mod
51end module dust_param_mod
Note: See TracBrowser for help on using the repository browser.