source: trunk/LMDZ.MARS/libf/phymars/dimradmars_mod.F90 @ 1047

Last change on this file since 1047 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: 3.5 KB
Line 
1module dimradmars_mod
2!   Declaration and settings for radiative transfer calculations
3!   Initializations and allocations are done in inifis
4implicit none
5  ! nflev: number of vertical layer
6  ! ndlon,ndlo2: number of horizontal points
7  ! Splitting of horizontal grid
8  ! NDLO2 and ndomainsz for the splitting in the physics call
9  ! WARNING:  One must have  1 < ndomainsz =< ngridmx
10  integer,save :: NFLEV !=nlayermx   ! with splitting
11  integer,save :: ndomainsz !=(ngridmx-1)/20 + 1
12  integer,save :: NDLON !=ndomainsz  ! with splitting
13  integer,save :: NDLO2 !=NDLON
14
15
16! Number of kind of tracer radiative properties
17! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18! naerkind is set in scatterers.h (built when compiling with makegcm -s #)
19
20#include"scatterers.h"
21! NB: May have to change value of nsizemax below when changing scatterers
22
23! Reference wavelengths used to compute reference optical depth (m)
24! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25
26  real,save :: longrefir(naerkind),longrefvis(naerkind)
27 
28! Definition of spectral intervals at thermal infrared wavelengths (LW)
29! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30  integer,parameter :: nir=4 ! Total number of thermal IR bands
31  integer,parameter :: nuco2=2 ! number of bands in CO2 bands
32  real,parameter :: long1ir=5.E-6 , long2ir=200.E-6
33  real,parameter :: long1co2=1.E+0 / 865.E+2 , long2co2=1.E+0 / 500.E+2
34
35!  Warning : the "nir" thermal IR bands are not ordered by wavelength:
36!      iir=1 : central 15um CO2 bands     
37!      iir=2 : CO2 band wings    [long1co2-long2co2] MINUS central band
38!      iir=3 : 9 um band [long1ir - long1co2]
39!      iir=4 : Far IR    [long2co2 - long2ir]
40   
41!  Definition of spectral interval at solar wavelengths (SW)
42!  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43  integer,parameter :: NSUN=2   ! do not change that !
44!  Boundaries of spectral intervals (m) :
45  real,parameter :: long1vis=0.1E-6 , long2vis=0.5E-6 , long3vis=5.E-6
46!  Fraction of solar energy in solar band #1 [long1vis-long2vis] : 0.274490
47!  Fraction of solar energy in solar band #2 [long2vis-long3vis] : 0.725509
48  real,save :: sunfr(2) = (/ 0.274490 , 0.725509 /)
49
50! Maximum number of grain size classes
51! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52! This parameter has to be set to the maximum number of particle
53!   sizes contained in the optical parameter database; For example,
54!   if only one grain size is used to describe dust, and 30 are used
55!   to describe water-ice crystals in the visible and 15 in the IR,
56!   nsizemax has to be set to 30.
57! If only one grain size is considered for all the aerosols, set
58!   this parameter to 1 and convolution will be turned off during
59!   the radiative calculations.
60
61  integer, parameter :: nsizemax = 60
62! integer, parameter :: nsizemax = 1
63
64! Various initialisation for LW radiative code
65! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66! npademx : number of Pade coefficients
67! nabsmx : ?
68! nt_pademx : number of temperature intervals for Pade
69
70  integer,parameter :: npademx=4
71  integer,parameter :: nabsmx=2
72  integer,parameter :: nt_pademx=19
73
74contains
75 
76  subroutine ini_dimradmars_mod(ngrid,nlayer)
77 
78  implicit none
79 
80  integer,intent(in) :: ngrid ! number of atmospheric columns
81  integer,intent(in) :: nlayer ! number of atmospheric layers
82 
83   nflev=nlayer
84!  ndomainsz=ngrid
85   ndomainsz=(ngrid-1)/20 + 1
86!  ndomainsz=(ngrid-1)/5 + 1
87   ndlon=ndomainsz
88   ndlo2=ndlon
89
90  end subroutine ini_dimradmars_mod
91 
92end module dimradmars_mod
Note: See TracBrowser for help on using the repository browser.