source: flexpart.git/src/par_mod.f90 @ 3481cc1

10.4.1_peseiGFS_025bugfixes+enhancementsdevrelease-10release-10.4.1scaling-bug
Last change on this file since 3481cc1 was 3481cc1, checked in by Ignacio Pisso <ip@…>, 4 years ago

move license from headers to a different file

  • Property mode set to 100644
File size: 12.1 KB
Line 
1!*******************************************************************************
2!   Include file for calculation of particle trajectories (Program FLEXPART)   *
3!        This file contains the parameter statements used in FLEXPART          *
4!                                                                              *
5!        Author: A. Stohl                                                      *
6!                                                                              *
7!        1997                                                                  *
8!                                                                              *
9!        Update 15 August 2013 IP                                              *
10!                                                                              *
11!                                                                              *
12!*******************************************************************************
13
14module par_mod
15
16  implicit none
17
18  !****************************************************************
19  ! Parameters defining KIND parameter for double/single precision
20  !****************************************************************
21
22  integer,parameter :: dp=selected_real_kind(P=15)
23  integer,parameter :: sp=selected_real_kind(6)
24
25  !****************************************************************
26  ! dep_prec sets the precision for deposition calculations (sp or
27  ! dp). sp is default, dp can be used for increased precision.
28  !****************************************************************
29
30  integer,parameter :: dep_prec=sp
31
32  !****************************************************************
33  ! Set to F to disable use of kernel for concentrations/deposition
34  !****************************************************************
35
36  logical, parameter :: lusekerneloutput=.true.
37
38  !*********************************************************************
39  ! Set to T to change output units to number of particles per grid cell
40  !*********************************************************************
41  logical, parameter :: lparticlecountoutput=.false.
42
43  !***********************************************************
44  ! number of directories/files used for FLEXPART input/output
45  !***********************************************************
46
47  integer,parameter :: numpath=4
48
49  ! numpath                 Number of different pathnames for input/output files
50
51
52  !*****************************
53  ! Physical and other constants
54  !*****************************
55
56  real,parameter :: pi=3.14159265, r_earth=6.371e6, r_air=287.05, ga=9.81
57  real,parameter :: cpa=1004.6, kappa=0.286, pi180=pi/180., vonkarman=0.4
58  ! additional constants RLT Aug-2017
59  real,parameter :: rgas=8.31447
60  real,parameter :: r_water=461.495
61
62  ! pi                      number "pi"
63  ! pi180                   pi/180.
64  ! r_earth                 radius of earth [m]
65  ! r_air                   individual gas constant for dry air [J/kg/K]
66  ! ga                      gravity acceleration of earth [m/s**2]
67  ! cpa                     specific heat for dry air
68  ! kappa                   exponent of formula for potential temperature
69  ! vonkarman               von Karman constant
70  ! rgas                    universal gas constant [J/mol/K]
71  ! r_water                 specific gas constant for water vapor [J/kg/K]
72
73  real,parameter :: karman=0.40, href=15., convke=2.0
74  real,parameter :: hmixmin=100., hmixmax=4500. !, turbmesoscale=0.16
75  !real,parameter :: d_trop=50., d_strat=0.1
76  real :: d_trop=50., d_strat=0.1, turbmesoscale=0.16 ! turbulence factors can change for different runs
77  real,parameter :: rho_water=1000. !ZHG 2015 [kg/m3]
78  !ZHG MAR2016
79  real,parameter :: incloud_ratio=6.2
80
81  ! karman                  Karman's constant
82  ! href [m]                Reference height for dry deposition
83  ! konvke                  Relative share of kinetic energy used for parcel lifting
84  ! hmixmin,hmixmax         Minimum and maximum allowed PBL height
85  ! turbmesoscale           the factor by which standard deviations of winds at grid
86  !                    points surrounding the particle positions are scaled to
87  !                    yield the scales for the mesoscale wind velocity fluctuations
88  ! d_trop [m2/s]           Turbulent diffusivity for horizontal components in the troposphere
89  ! d_strat [m2/s]          Turbulent diffusivity for vertical component in the stratosphere
90
91  real,parameter :: xmwml=18.016/28.960
92
93  ! xmwml   ratio of molar weights of water vapor and dry air
94  !****************************************************
95  ! Constants related to the stratospheric ozone tracer
96  !****************************************************
97
98  real,parameter :: ozonescale=60., pvcrit=2.0
99
100  ! ozonescale              ppbv O3 per PV unit
101  ! pvcrit                  PV level of the tropopause
102
103
104
105  !********************
106  ! Some time constants
107  !********************
108
109  integer,parameter :: idiffnorm=10800, idiffmax=2*idiffnorm, minstep=1
110
111  ! idiffnorm [s]           normal time interval between two wind fields
112  ! idiffmax [s]            maximum time interval between two wind fields
113  ! minstep [s]             minimum time step to be used within FLEXPART
114
115
116  !*****************************************************************
117  ! Parameters for polar stereographic projection close to the poles
118  !*****************************************************************
119
120  real,parameter :: switchnorth=75., switchsouth=-75.
121
122  ! switchnorth    use polar stereographic grid north of switchnorth
123  ! switchsouth    use polar stereographic grid south of switchsouth
124
125
126  !*********************************************
127  ! Maximum dimensions of the input mother grids
128  !*********************************************
129 
130  ! ECMWF
131! integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=359 ! 1.0 degree 92 level
132!  integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=0 ! 1.0 degree 138 level
133!   integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359 ! 1.0 degree 138 level
134! integer,parameter :: nxmax=721,nymax=361,nuvzmax=138,nwzmax=138,nzmax=138,nxshift=359  ! 0.5 degree 138 level
135!  integer,parameter :: nxmax=181,nymax=91,nuvzmax=92,nwzmax=92,nzmax=92,nxshift=0  ! CERA 2.0 degree 92 level
136
137! GFS
138   integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138
139   integer :: nxshift=0 ! shift not fixed for the executable
140
141
142  !*********************************************
143  ! Maximum dimensions of the nested input grids
144  !*********************************************
145
146  integer,parameter :: maxnests=0,nxmaxn=0,nymaxn=0
147
148  ! nxmax,nymax        maximum dimension of wind fields in x and y
149  !                    direction, respectively
150  ! nuvzmax,nwzmax     maximum dimension of (u,v) and (w) wind fields in z
151  !                    direction (for fields on eta levels)
152  ! nzmax              maximum dimension of wind fields in z direction
153  !                    for the transformed Cartesian coordinates
154  ! nxshift            for global grids (in x), the grid can be shifted by
155  !                    nxshift grid points, in order to accomodate nested
156  !                    grids, and output grids overlapping the domain "boundary"
157  !                    nxshift must not be negative; "normal" setting would be 0
158
159 
160  integer,parameter :: nconvlevmax = nuvzmax-1
161  integer,parameter :: na = nconvlevmax+1
162
163  ! ntracermax         maximum number of tracer species in convection
164  ! nconvlevmax        maximum number of levels for convection
165  ! na                 parameter used in Emanuel's convect subroutine
166
167
168  !*********************************
169  ! Parmaters for GRIB file decoding
170  !*********************************
171
172  integer,parameter :: jpack=4*nxmax*nymax, jpunp=4*jpack
173
174  ! jpack,jpunp             maximum dimensions needed for GRIB file decoding
175
176
177  !**************************************
178  ! Maximum dimensions of the output grid
179  !**************************************
180
181  !integer,parameter :: maxageclass=1,maxzgrid=10,nclassunc=1
182  integer,parameter :: maxageclass=1,nclassunc=1
183
184  ! nclassunc               number of classes used to calculate the uncertainty
185  !                         of the output
186  ! maxageclass             maximum number of age classes used for output
187
188  ! Sabine Eckhardt, June, 2008
189  ! the dimensions of the OUTGRID are now set dynamically during runtime
190  ! maxxgrid,maxygrid,maxzgrid    maximum dimensions in x,y,z direction
191  ! maxxgridn,maxygridn           maximum dimension of the nested grid
192  !integer maxxgrid,maxygrid,maxzgrid,maxxgridn,maxygridn
193  !integer,parameter :: maxxgrid=361,maxygrid=181,maxxgridn=0,maxygridn=0)
194
195  integer,parameter :: maxreceptor=20
196
197  ! maxreceptor             maximum number of receptor points
198
199
200  !**************************************************
201  ! Maximum number of particles, species, and similar
202  !**************************************************
203
204  integer,parameter :: maxpart=100000
205  integer,parameter :: maxspec=1
206
207  real,parameter :: minmass=0.0001
208
209  ! maxpart                 Maximum number of particles
210  ! maxspec                 Maximum number of chemical species per release
211  ! minmass                 Terminate particles carrying less mass
212
213  ! maxpoint is also set dynamically during runtime
214  ! maxpoint                Maximum number of release locations
215
216  ! ---------
217  ! Sabine Eckhardt: change of landuse inventary numclass=13
218  ! ---------
219  integer,parameter :: maxwf=50000, maxtable=1000, numclass=13, ni=11
220  integer,parameter :: numwfmem=2 ! Serial version/MPI with 2 fields
221  !integer,parameter :: numwfmem=3 ! MPI with 3 fields
222
223  ! maxwf                   maximum number of wind fields to be used for simulation
224  ! maxtable                Maximum number of chemical species that can be
225  !                         tabulated for FLEXPART
226  ! numclass                Number of landuse classes available to FLEXPART
227  ! ni                      Number of diameter classes of particles
228  ! numwfmem                Number of windfields kept in memory. 2 for serial
229  !                         version, 2 or 3 for MPI version
230
231  !**************************************************************************
232  ! dimension of the OH field
233  !**************************************************************************
234  integer,parameter :: maxxOH=72, maxyOH=46, maxzOH=7
235
236  !**************************************************************************
237  ! Maximum number of particles to be released in a single atmospheric column
238  ! for the domain-filling trajectories option
239  !**************************************************************************
240
241  integer,parameter :: maxcolumn=3000
242
243
244  !*********************************
245  ! Dimension of random number field
246  !*********************************
247
248  integer,parameter :: maxrand=1000000
249
250  ! maxrand                 number of random numbers used
251 
252
253  !*****************************************************
254  ! Number of clusters to be used for plume trajectories
255  !*****************************************************
256
257  integer,parameter :: ncluster=5
258
259  !************************************
260  ! Unit numbers for input/output files
261  !************************************
262
263  integer,parameter :: unitpath=1, unitcommand=1, unitageclasses=1, unitgrid=1
264  integer,parameter :: unitavailab=1, unitreleases=88, unitpartout=93, unitpartout_average=105
265  integer,parameter :: unitpartin=93, unitflux=98, unitouttraj=96
266  integer,parameter :: unitvert=1, unitoro=1, unitpoin=1, unitreceptor=1
267  integer,parameter :: unitoutgrid=97, unitoutgridppt=99, unitoutinfo=1
268  integer,parameter :: unitspecies=1, unitoutrecept=91, unitoutreceptppt=92
269  integer,parameter :: unitlsm=1, unitsurfdata=1, unitland=1, unitwesely=1
270  integer,parameter :: unitOH=1
271  integer,parameter :: unitdates=94, unitheader=90,unitheader_txt=100, unitshortpart=95, unitprecip=101
272  integer,parameter :: unitboundcond=89
273  integer,parameter :: unittmp=101
274! RLT
275  integer,parameter :: unitoutfactor=102
276
277!******************************************************
278! integer code for missing values, used in wet scavenging (PS, 2012)
279!******************************************************
280
281  integer,parameter ::  icmv=-9999
282
283
284end module par_mod
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG