Commit 42241406 authored by Ignacio Pisso's avatar Ignacio Pisso
Browse files

Add documentation: V8 manual, fluxdiagram, program list, memo vert. transform, release notes

parent 054cf84d
******************************************************************************
* FLEXPART model basic calling structure *
******************************************************************************
FLEXPART --> gasdev1 --> ran3
--> readpaths
--> readcommand --> juldate
--> skplin
--> readageclasses
--> readavailable --> juldate
--> gridcheck
--> gridcheck_nests
--> readoutgrid --> skplin
--> readoutgrid_nest --> skplin
--> readreceptors
--> readspecies
--> readlanduse
--> assignland
--> readreleases --> skplin
--> part0 --> erf
--> readdepo
--> coordtrafo
--> readpartpositions
--> writeheader
--> writeheader_nest
--> openreceptors
--> openouttraj
--> outgrid_ini
--> outgrid_ini_nest
--> timemanager --> wetdepo --> interpol_rain
--> interpol_rain_nests
--> wetdepokernel
--> wetdepokernel_nest
--> convmix --> sort2
--> calcmatrix --> convect --> tlift
--> redist
--> calcfluxes
--> getfields --> see %1
--> init_domainfill
--> boundcond_domainfill
--> releaseparticles --> caldate
--> ran1 (random.f)
--> convmix --> sort2
--> calcmatrix --> convect --> tlift
--> redist
--> calcfluxes
--> conccalc
--> partoutput_short
--> concoutput --> caldate
--> mean
--> concoutput_nest --> caldate
--> mean
--> plumetraj --> clustering --> distance2
--> centerofmass
--> mean
--> distance
--> fluxoutput --> caldate
--> partoutput --> caldate
--> conccalc
--> initialize --> same calls as advance
--> advance --> ran3
--> interpol_all
--> interpol_all_nests
--> interpol_misslev
--> interpol_misslev_nests
--> hanna or hanna1
--> hanna_short
--> interpol_vdep
--> interpol_vdep_nests
--> interpol_wind
--> interpol_wind_nests
--> windalign
--> cll2xy (various projection routines in cmapf1.0.f)
--> cxy2ll
--> interpol_wind_short
--> interpol_wind_short_nests
--> calcfluxes
--> drydepokernel
--> drydepokernel_nest
--> partoutput --> caldate
______________________________________________________________________________
%1
--> readwind --> pbopen
--> pbgrib
(--> swap32)
--> gribex
--> pbclose
--> shift_field_0
--> shift_field
--> pbl_profile --> psim
--> psih
--> readwind_nests --> pbopen
--> pbgrib
--> swap32
--> gribex
--> pbclose
--> pbl_profile --> psim
--> psih
--> calcpar --> scalev --> ew
--> obukhov
--> richardson --> qvsat
--> getvdep --> caldate
--> getrb
--> raerod --> psih
--> getrc
--> partdep
--> calcpv
--> calcpar_nests --> scalev --> ew
--> obukhov
--> richardson --> qvsat
--> getvdep --> caldate
--> getrb
--> raerod --> psih
--> getrc
--> partdep
--> calcpv_nests
--> verttransform --> cc2gll (cmapf1.0.f)
--> verttransform_nests --> cc2gll (cmapf1.0.f)
______________________________________________________________________________
SHORT DESCRIPTION OF THE SOURCE CODE FILES USED BY THE FLEXPART MODEL
_____________________________________________________________________
FLEXPART.f main program, manages reading of run specifications, etc.;
last call is to timemanager.f, which manages the actual model
integration
advance.f advection of the particles by grid-scale and turbulent winds;
solves the Langevin equations
assignland.f assigns the fractions of 8 landuse classes to each ECMWF grid
point
boundcond_domainfill.f creates particles at the inflowing/destroys particles
at the outflowing boundary, if domain-filling option is used
calcfluxes.f calculates the gross N-S, E-W and up-down mass fluxes
resulting from the motion of a single particle
calcmatrix.f interface to the convection scheme (convect.f) by K. Emanuel
calcpar.f calculates boundary layer parameters: friction velocity,
convective velocity scale, Obukhov length, PBL height, partly
by calling other routines
calcpar_nests.f same as calcpar.f, but for the nested grids
calcpv.f calculates potential vorticity for mother domain grid points
calcpv_nests.f same as calcpv.f, but for the nested grids
caldate.f computes calendar date from Julian date
centerofmass.f calculates the center of mass of n points on the Earth
clustering.f cluster analysis of particle position
cmapf1.0.f Program package for coordinate transformations between
latitude/longitude grid and polar stereographic projection
conccalc.f calculates concentrations or residence times and/or
mixing ratios on the output grid and at receptor locations
concoutput.f writes out concentrationsor residence times and/or
mixing ratios on the output grid and at receptor locations
(files grid_conc_date, grid_pptv_date, grid_time_date)
concoutput_nest.f same as concoutput.f, but for the nested output grid
convect.f convection scheme written by Kerry Emanuel (slightly modified)
convmix.f handles all the calculations related to convective mixing
coordtrafo.f transformation of release point coordinates from geografical
to grid coordinates
distance.f calculates distance (km) between 2 points on Earth's surface
given their positions in degrees
distance2.f calculates distance (km) between 2 points on Earth's surface
given their positions in radians
drydepokernel.f calculates gridded dry deposition field using a uniform kernel
drydepokernel_nest.f same as drydepokernel.f, but for the nested output grid
erf.f error function
ew.f calculation of saturation water vapor pressure for given
air temperature
fluxoutput.f writes out mass fluxes on the output grid (grid_flux_date)
getfields.f manages reading of new wind fields if required, and calls all
routines that do calculations on the input grids
getrb.f computes quasilaminar sublayer resistance to dry deposition
of gases
getrc.f calculates surface resistance to dry deposition of gases
getvdep.f calculates dry deposition velocities
gridcheck.f determines grid domain, resolution, etc., from GRIB file and
checks whether dimensions comply with settings in includepar
gridcheck_nests.f same as gridcheck.f, but for the nested grids
hanna.f parameterization of the turbulent velocity variance and
the respective timescales; Langevin equation for w'/sigw
hanna1.f alternative model to hanna.f: Langevin equation for w'
drift correction velocity after Wilson
hanna_short.f same as hanna.f, but only for the vertical wind
includecom include file containing important global variables
includeconv include file containing variables used in the convection scheme
includeinterpol include file containing variables used for interpolation in
routines called from advance.f
includehanna include file used for turbulence parameterization
includepar include file containing all globally used parameters
init_domainfill.f distributes particles homogeneously in the computation domain
initialize.f initializes the turbulence statistics for a particle
interpol_all.f interpolates all data needed in advance.f for two levels
within the PBL and for all surface data
interpol_all_nests.f same as interpol_all.f, but for the nested grids
interpol_misslev.f interpolates for a level in the PBL that was not provided
by interpol_all.f, because particle has moved out of the
two sandwiched layers
interpol_misslev_nests.f same as interpol_misslev.f, but for the nested grids
interpol_rain.f interpolates large-scale and convective precipitation,
and of total cloud cover
interpol_rain_nests.f same as interpol_rain.f, but for the nested grids
interpol_vdep.f interpolates the deposition velocity
interpol_vdep_nests.f same as interpol_vdep.f, but for the nested grids
interpol_wind.f interpolates winds above the PBL and calculates the wind's
standard deviation for grid points around particle location
interpol_wind_nests.f same as interpol_wind.f, but for the nested grids
interpol_wind_short.f interpolates winds above the PBL
interpol_wind_short_nests.f same as interpol_wind_short.f, but for nested grids
juldate.f compute julian date from calendar date
mean.f calculates the mean and standard deviation of a field
obukhov.f calculates Obukhov length from surface heat flux
openouttraj.f opens the output files for the plume trajectory output
openreceptors.f opens output files for receptor location output, and writes
out some basic information (location and names of receptors)
(files receptor_conc and receptor_pptv)
outgrid_init.f initializes the output grid and calculates volume and area
of output grid cells
outgrid_init_nest.f same as outgrid_init.f, but for the nested output grid
part0.f calculates time-independent factors for the dry deposition
of particles
partdep.f calculates dry deposition velocities for particles
partoutput.f writes out the particle positions to files partposit_date, or
partposit_end
partoutput_short.f dumps particle output in a compact format; particles are
uniquely numbered
pbl_profile.f calculates surface stress and sensible heat flux using
the profile method
plumetraj.f calculates a plume centroid trajectory and manages particle
clustering; writes output to file trajectories.txt
psih.f stability correction term for heat
psim.f stability correction term for momentum
qvsat.f saturation specif. humidity at given pressure and temperature
raerod.f calculation of the aerodynamic resistance ra to dry deposition
random.f subroutines needed for generation of normally distriubted
random numbers
readageclasses.f reads number and time intervals of age classes to be used
readavailable.f reads, which wind fields are available during the modelling
period
readcommand.f reads basic user commands, e.g. start and end of simulation,
frequency of output, etc.
readdepo.f reads parameters needed for dry deposition of gases
readlanduse.f reads landuse inventory and the respective roughness lengths
readoutgrid.f reads the definition of the output domain
readoutgrid_nest.f same as readoutgrid.f, but for the nested output grid
readpartpositions.f reads particle positions from a previous run's
partposit_end file, in order to initialize particle positions
for the new run
readpaths.f reads the path names of input/output files and wind fields
readreceptors.f reads names and coordinates of receptor points for which the
parabolic kernel shall be applied
readreleases.f reads release specifications (start and end of release,
coordinates, number of particles, masses released, etc.)
readspecies.f reads physical and chemical properties of gases and aerosols
readwind.f reads the ECMWF meteorological data fields; contains the
calls to GRIB decoding routines
readwind_nests.f same as readwind.f, but for the nested grids
redist.f redistributes particles according to convective fluxes
releaseparticles.f releases the particles during the simulation; called every
lsynctime seconds
richardson.f calculates convective velocity scale and PBL height using
critical Richardson number concept
scalev.f computes friction velocity from surface stress
shift_field.f shifts global fields by nxshift grid cells, and repeats
westernmost grid points at easternmost domain boundary
shift_field_0.f same as shift_field.f, but for some fields with 2 dimensions
only (e.g. topography)
skplin.f skips n lines of a given input file
sort2.f sorts particles according to their coordinates
timemanager.f time management of FLEXPART model simulation: determines when
particles are released and advected, when concentrations
calculations are done and concentrations written out, and
calls all the respective subroutines
verttransform.f transforms 3-d fields from eta coordinates to Cartesian
terrain-following coordinates
verttransform_nests.f same as verttransform.f, but for the nested grids
wetdepo.f calculates the wet deposition
wetdepokernel.f assigns the deposition from an individual particle to the
deposition fields using a uniform kernel of bandwidths dx, dy
wetdepokernel_nest.f same as wetdepokernel.f, but for the nested output grid
windalign.f transforms turbulent velocities from along- and cross-wind
components to Cartesian u and v components
writeheader.f creates the file header and writes important information about
the model run in it
writeheader_nest.f same as writeheader.f, but for the nested output grid
{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf510
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Cambria;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww16320\viewh13780\viewkind0
\deftab720
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\f0\fs28 \cf0 Release notes for FLEXPART 9.2 \
\
VERSION 9.0.2\
\
Starting point from ZAMG svn trunk early 2013\
\
VERSION 9.0.2.1 (from SEC)\
\
Version previously on the svn trunk plus minor changes (bugfixes)\
\
VERSION 9.1.0 \
\
HSO Changes\
Called flexpart91_hasod on svn branches \
(not the parallel version from Stephan Henne)\
Main addition: namelists for COMMAND input and output \
\
VERSION 9.1.1\
\
Merge HSO, SEC and svn trunk\
- add minor bug fixes to HSO 's version\
- changes to releases\
> ! num_min_discrete if less, release cannot be randomized and happens at *\
> ! time mid-point of release interval *\
\
> !!!! Modification to decrease scavenging and make it more realistic \
\
\
VERSION 9.1.2 (NIK\'92s changes) \
\
Main changes: \
- deposition scheme: variation of scavenging parameters\
- options: changes in SPECIES for parameter input \
\
VERSION 9.1.3 (PS's changes ) \
\
update to wetdepo.f90 and other routines \
Prepared by PS for version 8 (F77).\
Distributed in the tarball newcloudscheme.tgz\
\
VERSION 9.1.4 (minor changes - bug fixes - compatibility issues between NIK and PS schemes)\
\pard\pardeftab720\ri0
\cf0 \
readpartpositions.f90, line 79 (from version 9.0.2)\
issues: just a warning on numpointin not being equal to numpoint\
test backward compatibility with namelist COMMAND\
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\cf0 VERSION 9.1.5 (XF)\
\
Modification to gfs routines to read fnl winds \
\pard\pardeftab720\ri0
\cf0 Modifications to the parameters module \
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\cf0 VERSION 9.1.6 (RT)\
\
changes in input and output\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\fs24 \cf0 writeheader_surf
\fs28 \
\pard\pardeftab720\ri0
\cf0 \
\
VERSION 9.1.6.2\
Add header in text format\
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\cf0 VERSION 9.1.7 \
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\f1\fs24 \cf0 - makefile changes,\
\pard\pardeftab720\ri0
\cf0 \
\pard\pardeftab720\ri380\sa180
\b \cf0 - Ticket #11
\b0 - suppress check in read positions \
\b - Ticket #22
\b0 - dates on the fly\
\b - Ticket #13
\b0 - check path\
\pard\pardeftab720\ri0
\cf0 /home/vsinclai/FLEXPART/EXERCISES/HelloWorld/optionsCOMMAND\
\
- SYSTEM_CLOCK calls, verbosity\
print*, 'WARNING: path not ending in /' \
\pard\pardeftab720\ri0
\f0\fs28 \cf0 \
FLEXPART 9.1.8 \
\
(minor fixes - inclusion of additional tickets from the trac system) \
\
revise version numbers:\
correct for trim(flexversion) instead of V8.2 V9.0, FLEXPART V9.0\
on leader, etc.\
\
minor modifications to \
openouttraj.f90 \
writeheader_nest_surf.f90s\
\
messages depending on verbosity level\
\
Not included in 9.1.8:\
\
- Massimo's new PBL scheme\
\
- Paralelization (ES working on this)\
\
- NetCDF handling \
\
Submitted to developers for testing.\
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\ri0
\cf0 VERSION 9.1.9\
\
Retraction to Nina's scheme due to changes in naming variables incompatible between NIK and PS.\
\
VERSION 9.2 based on AST's FLEXPART_CLEAN\
\
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment