source: trunk/LMDZ.GENERIC/libf/phystd/iniaerosol.F @ 2176

Last change on this file since 2176 was 1677, checked in by sglmd, 8 years ago

Two aerosol kinds added for giant planets: one is a compact (NH3) cloud where the opacity, particle size and bottom pressure level are taken as inputs (a scale height of 0.2 is hard-coded to simulate a compact cloud). Corresponds to option aeronh3. The other one is not generic at all and corresponds to the auroral, stratospheric aerosols observed on Jupiter...(option aeroaurora=.false. by default)

File size: 2.2 KB
RevLine 
[726]1      SUBROUTINE iniaerosol()
2
3
4      use radinc_h, only: naerkind
5      use aerosol_mod
[1397]6      use callkeys_mod, only: aeroco2,aeroh2o,dusttau,aeroh2so4,
[1677]7     &          aeroback2lay,aeronh3, aeroaurora
[726]8
9      IMPLICIT NONE
10c=======================================================================
11c   subject:
12c   --------
13c   Initialization related to aerosols
14c   (CO2 aerosols, dust, water, chemical species, ice...)   
15c
[1026]16c   author: Laura Kerber, S. Guerlet
[726]17c   ------
18c       
19c=======================================================================
20
21      integer ia
22
23      ia=0
24      if (aeroco2) then
[741]25         ia=ia+1
26         iaero_co2=ia
[726]27      endif
[747]28      write(*,*) '--- CO2 aerosol = ', iaero_co2
[726]29 
30      if (aeroh2o) then
[741]31         ia=ia+1
32         iaero_h2o=ia
[726]33      endif
[747]34      write(*,*) '--- H2O aerosol = ', iaero_h2o
[726]35
36      if (dusttau.gt.0) then
[741]37         ia=ia+1
38         iaero_dust=ia
[726]39      endif
[747]40      write(*,*) '--- Dust aerosol = ', iaero_dust
[726]41
42      if (aeroh2so4) then
[741]43         ia=ia+1
44         iaero_h2so4=ia
[726]45      endif
[747]46      write(*,*) '--- H2SO4 aerosol = ', iaero_h2so4
[726]47     
[1026]48      if (aeroback2lay) then
49         ia=ia+1
50         iaero_back2lay=ia
51      endif
52      write(*,*) '--- Two-layer aerosol = ', iaero_back2lay
53
[1677]54      if (aeronh3) then
55         ia=ia+1
56         iaero_nh3=ia
57      endif
58      write(*,*) '--- NH3 Cloud = ', iaero_nh3
59
60      if (aeroaurora) then
61         ia=ia+1
62         iaero_aurora=ia
63      endif
64      write(*,*) '--- Auroral aerosols = ', iaero_aurora
65
[747]66      write(*,*) '=== Number of aerosols= ', ia
[726]67     
[741]68! For the zero aerosol case, we currently make a dummy co2 aerosol which is zero everywhere.
69! (See aeropacity.F90 for how this works). A better solution would be to turn off the
70! aerosol machinery in the no aerosol case, but this would be complicated. LK
71
72      if (ia.eq.0) then  !For the zero aerosol case.
73         ia = 1
74         noaero = .true.
75         iaero_co2=ia
[726]76      endif
77
78      if (ia.ne.naerkind) then
79          print*, 'Aerosols counted not equal to naerkind'
80          print*, 'Compile with tag -s',ia,'to run'
81          print*, 'or change options in callphys.def'
82          print*, 'Abort in iniaerosol.F'
[741]83          call abort
[726]84      endif
85
86      end
Note: See TracBrowser for help on using the repository browser.