VERTIMEPROC
program computes
vertical-column / time-aggregated totals of values for
all the REAL
variables from the specified 3D GRIDDED
time stepped input file.
Note that this program is designed primarily for batch use: the control parameters are all specified via environment variables:
Defaults for these values are taken from the input file. The aggregation operation is defined as adding all the values starting at the indicated date&time and ending strictly before the next output time step. For example, if INPFILE starts at 2014123:000000, has a one-hour (10000) time step, and 85 time steps (so has three-and-a-half days of data, with last time step at 2014126:120000), then with the default 24-hour time step, the defaults would be
SDATE:
- Starting date
YYYYDDD
for the aggregation-run (and therefore for the output file).STIME:
- Starting time
HHMMSS
for the aggregation-runTSTEP:
- Aggregation-length
HHMMSS
for the aggregation; this must be a multiple of the input-file time step, and is also the output time step.EDATE:
- Last date
YYYYDDD
for the aggregation (and therefore the date of the last time step written to the output file).ETIME:
- Last time
HHMMSS
for the aggregation (and therefore the time of the last time step written to the output file).
SDATE:STIME=2014123:000000
and
EDATE:ETIME=2014125:000000
. There will be three output
time steps:
TSTEP
is set to twelve hours (120000), there will
be seven output time steps (and data for input-step 85 will not
go into the time-aggregation).
The program's "splash screen" gives the program-summary, preconditions, copyright statement, version, etc.; the program will only prompt you whether to continue (after it has displayed the splash screen:
Continue with program? (Y/N) [Y]
NOTE that this vertical/temporal aggregation only makes
sense for 3-D time stepped smkmerge-output emissions
files and not much else, due to the fact that the
emissions units are mass-per-grid-cell-per-unit-time, for which the aggregated
result will have units of ("pure") mass per grid cell.
For something like concentration files (where the units are
"interpolatable", e.g., are micrograms per cubic meter, or
are parts per million by volume), the result of this kind of aggregation
would be nonsense. See program
vertintegral for that case.
Requires Fortran-90 for compilation. Uses OpenMP shared memory
parallelism when supported by the compiler and processor architecture,
and is structured for efficiency on microprocessor based shared memory
systems (which is pretty much everything these days—even cell phones!)
Source code vertimeproc.f90
is available
under the GNU GPL License, Version
2, and can be downloaded here as
part of the I/O API distribution.
setenv OMP_NUM_THREADS <number of threads / processor cores> setenv <INPFILE> <path name for input EMIS_3D file> setenv <OUTFILE> <path name for output EMIS_2D_AGG file> setenv <SDATE> <starting date for the run (YYYYDDD)> setenv <STIME> <starting time for the run (HHMMSS)> setenv <EDATE> <ending date for the run (YYYYDDD)> setenv <ETIME> <ending time for the run (HHMMSS)> setenv <TSTEP> <Aggregation step for the run (HHMMSS)> vertimeproc [and respond to the "Continue with program?" prompt]
See Also:
To: Models-3/EDSS I/O API: The Help Pages