Last change
on this file since 2613 was
2297,
checked in by jvatant, 5 years ago
|
Add a generic n-layer aerosol scheme to replace the former buggy 2-layer scheme as well as the hard-coded NH3 cloud.
It can be called using 'aeronlay=.true.' in callphys.def, and set the number of layers (up to 4) with 'nlayaero'.
Then, the following parameters are read as arrays of size nlayaero in callphys.def (separated by blank space)
*aeronlay_tauref (Optical depth of aerosol layer at ref wavelenght)
*aeronlay_lamref (Ref wavelenght (m))
*aeronlay_choice (Choice for vertical profile - 1:tau follows atm scale height btwn top and bottom - 2:tau follows it own scale height)
*aeronlay_pbot (Bottom pressure (Pa))
*aeronlay_ptop (Top pressure (Pa) - useful only if choice=1)
*aeronlay_sclhght (Ratio of aerosol layer scale height / atmospheric scale height - useful only if choice=2 )
*aeronlay_size (Particle size (m))
*optprop_aeronlay_vis File for VIS opt properties.
*optprop_aeronlay_ir File for IR opt properties.
+Extra info :
+ In addition of solving the bug from 2-layer it enables different optical properties.
+ The former scheme are left for retrocompatibility (for now) but you should use the new one.
+ See aeropacity.F90 for the calculations
+ Each layer can have different optical properties, size of particle ...
+ You have different choices for vertical profile of the aerosol layers :
- aeronlay_choice = 1 : Layer tau is spread between ptop and pbot following atm scale height.
- aeronlay_choice = 2 : Layer tau follows its own scale height above cloud deck (pbot).
In this case ptop is dummy and sclhght gives the ratio H_cl/H_atm.
+ The reference wavelenght for input optical depth is now read as input (aeronlay_lamref)
+ Following the last point some comment is added in suaer_corrk about the 'not-really-dummy'ness of IR lamref..
|
File size:
1.1 KB
|
Line | |
---|
1 | !================================================================== |
---|
2 | module aerosol_mod |
---|
3 | implicit none |
---|
4 | save |
---|
5 | !================================================================== |
---|
6 | |
---|
7 | ! aerosol indexes: these are initialized to be 0 if the |
---|
8 | ! corresponding aerosol was not activated in callphys.def |
---|
9 | ! -- otherwise a value is given in iniaerosol |
---|
10 | integer :: iaero_co2 = 0 |
---|
11 | integer :: iaero_h2o = 0 |
---|
12 | integer :: iaero_dust = 0 |
---|
13 | integer :: iaero_h2so4 = 0 |
---|
14 | logical :: noaero = .false. |
---|
15 | |
---|
16 | ! two-layer simple aerosol model |
---|
17 | integer :: iaero_back2lay = 0 |
---|
18 | ! NH3 cloud |
---|
19 | integer :: iaero_nh3 = 0 |
---|
20 | ! N-layer aerosol model (replaces the 2-layer and hard-coded clouds) |
---|
21 | integer,dimension(:),allocatable,save :: iaero_nlay |
---|
22 | ! Auroral aerosols |
---|
23 | integer :: iaero_aurora = 0 |
---|
24 | !$OMP THREADPRIVATE(iaero_co2,iaero_h2o,iaero_dust,iaero_h2so4,noaero,iaero_back2lay,iaero_nh3,iaero_nlay,iaero_aurora) |
---|
25 | |
---|
26 | !================================================================== |
---|
27 | end module aerosol_mod |
---|
28 | !================================================================== |
---|
Note: See
TracBrowser
for help on using the repository browser.