source: trunk/LMDZ.MARS/libf/phymars/yomaer_h.F90 @ 1112

Last change on this file since 1112 was 1047, checked in by emillour, 11 years ago

Mars GCM:

  • IMPORTANT CHANGE: Removed all reference/use of ngridmx (dimphys.h) in routines (necessary prerequisite to using parallel dynamics); in most cases this just means adding 'ngrid' as routine argument, and making local saved variables allocatable (and allocated at first call). In the process, had to convert many *.h files to equivalent modules: yomaer.h => yomaer_h.F90 , surfdat.h => surfdat_h.F90 , comsaison.h => comsaison_h.F90 , yomlw.h => yomlw_h.F90 , comdiurn.h => comdiurn_h.F90 , dimradmars.h => dimradmars_mod.F90 , comgeomfi.h => comgeomfi_h.F90, comsoil.h => comsoil_h.F90 , slope.h => slope_mod.F90
  • Also updated EOF routines, everything is now in eofdump_mod.F90
  • Removed unused routine lectfux.F (in dyn3d)

EM

File size: 2.4 KB
Line 
1module yomaer_h
2!     Radiative characteristics of the aerosols
3implicit none
4
5!   Shortwave
6!   ~~~~~~~~~
7!
8! tauvis: dust optical depth at reference wavelength  ("longrefvis" set
9! in dimradmars_mod : typically longrefvis = 0.67E-6 m, as measured by Viking )
10
11! For the "naerkind" kind of aerosol radiative properties :
12! QVISsQREF  :  Qext / Qext("longrefvis")   <--- For both solar bands
13! omegavis   :  sinle scattering albedo     <--- For both solar bands
14! gvis       :  assymetry factor            <--- For both solar bands
15!
16!   Longwave
17!   ~~~~~~~~
18!
19! For the "naerkind" kind of aerosol radiative properties :
20! QIRsQREF :  Qext / Qext("longrefvis")     <--- For the nir bandes IR
21! omegaIR  :  mean single scattering albedo <--- For the nir bandes IR
22! gIR      :  mean assymetry factor         <--- For the nir bandes IR
23!
24
25  real,save :: tauvis
26  real,save,allocatable :: QVISsQREF(:,:,:)
27  real,save,allocatable :: omegavis(:,:,:)
28  real,save,allocatable :: gvis(:,:,:)
29  real,save,allocatable :: QIRsQREF(:,:,:)
30  real,save,allocatable :: omegaIR(:,:,:)
31  real,save,allocatable :: gIR(:,:,:)
32 
33! Actual number of grain size classes in each domain for a
34!   given aerosol:
35  integer,save,allocatable :: nsize(:,:)
36
37! Particle size axis (depend on the kind of aerosol and the
38!   radiation domain)
39  real,save,allocatable :: radiustab(:,:,:)
40
41! Extinction coefficient at reference wavelengths;
42!   These wavelengths are defined in dimradmars_mod, and called
43!   longrefvis and longrefir.
44  real,save,allocatable :: QREFvis(:,:)
45  real,save,allocatable :: QREFir(:,:)
46  real,save,allocatable :: omegaREFvis(:,:)
47  real,save,allocatable :: omegaREFir(:,:)
48
49contains
50
51  subroutine ini_yomaer_h
52 
53  use dimradmars_mod, only: nsun, nir, nsizemax
54  implicit none
55! naerkind is set in scatterers.h (built when compiling with makegcm -s #)
56#include"scatterers.h"
57
58    allocate(QVISsQREF(nsun,naerkind,nsizemax))
59    allocate(omegavis(nsun,naerkind,nsizemax))
60    allocate(gvis(nsun,naerkind,nsizemax))
61    allocate(QIRsQREF(nir,naerkind,nsizemax))
62    allocate(omegaIR(nir,naerkind,nsizemax))
63    allocate(gIR(nir,naerkind,nsizemax))
64
65    allocate(nsize(naerkind,2))
66   
67    allocate(radiustab(naerkind,2,nsizemax))
68   
69    allocate(QREFvis(naerkind,nsizemax))
70    allocate(QREFir(naerkind,nsizemax))
71    allocate(omegaREFvis(naerkind,nsizemax))
72    allocate(omegaREFir(naerkind,nsizemax))
73 
74  end subroutine ini_yomaer_h
75
76end module yomaer_h
Note: See TracBrowser for help on using the repository browser.