-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
158 lines (118 loc) · 5.93 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
UPGRADING TO v4.0x
With the update in the wet deposition alogirithm, the input files
for cloud and rain data have changed. The OTAG database used for
the test problem has an outdated cloud file that can not be used
with version 4.0x. Therefore, the test problem distributed with
version 4.0x has no clouds and no wet deposition.
Also, the Smolarkiewicz advection solver is no longer supported.
CAMx v4.0x uses the Bott advection solver in the test problem.
For these reasons the results of the test problem will differ from
previous versions of CAMx.
PLEASE SEE THE RELEASE NOTES FOR DETAILS ABOUT THESE AND OTHER
MODIFICATIONS AND ENHANCEMENTS.
-------------------------------------------------------------------
INTRODUCTION
This is the README file for the CAMx model version 4.02.
Topics covered are the license agreement, compiling CAMx,
the test case, and multi-processor support.
Further details are in the CAMx User's Guide, available
from http://www.camx.com, and the release notes.
Send questions or comments via email to: [email protected]
Please read the documentation first.
LICENSE AGREEMENT
Read the file LICENCE included with the source code and
read the web page where the CAMx source code is posted
for download (http://www.camx.com). You agree to the CAMx
license terms by downloading the source code and/or
using the CAMx model.
USING THE CAMx MAKEFILE
The syntax for building CAMx v4.02 is:
make platform DOMAIN=domain_name
The CAMx makefile has two arguments. The "platform" argument
is required and the "DOMAIN=domain_name" argument is optional.
"platform" specifies what type of workstation you have and must
be one of the following:
dec -- DEC alpha workstation with digital Unix
(uses big_endian representation for FORTRAN unformatted
files rather than the DEC default, which is little
endian)
sun -- Sun Ultra Sparcstation
sgi -- SGI workstation
sgiomp -- SGI workstation with compiler flags to enable OMP
ibm -- IBM workstation
hp -- HP/UX workstation
linux -- ix86 PC running Linux and using FORTRAN compiler from the
The Portland Group (pgf77)
(uses big_endian representation for FORTRAN unformatted
files rather than the DEC default, which is little
endian)
linuxomp -- Linux workstation with pgf77 compiler flags to enable OMP
"domain_name" is a string identifying which camx.prm include file
to use in the compilation. The camx.prm file, found in the Inc/
subdirectory, contains the domain definition parameters for your
simulation. (See the CAMx User's Guide for more details). This
makefile syntax is designed to allow you to keep several different
CAMx configurations (camx.prm files) and selectively build
executables for each application. The "DOMAIN=domain_name" argument
is optional, and if omitted the default camx.prm.otag configuration
will be used.
For example, to build CAMx on a DEC/Alpha workstation using the
include file Inc/camx.prm.otag, enter the make command:
make dec DOMAIN=otag
The executable will be named CAMx.otag.dec
If you need to rebuild CAMx using different makefile arguments
we recommend typing "make clean" between builds. Make clean will
delete all existing object files forcing a complete re-build.
If your workstation is not supported by the standard makefile, you will
need to modify the Makefile for use with your system. If so, please
mail the working Makefile along with a description of your computer
system to [email protected] so that we can share this information.
CAMx TEST CASE
A test case is provided to help new CAMx User's get started and
permit performance benchmarking. The test case is for the "OTAG"
July 7-8 1995 simulation of the Eastern US. Build a CAMx executable
for the OTAG domain using the makefile options discussed above.
The test case has 1 nested fine grid and requires about 175 MBytes
of memory.
The test case (2 days of simulation) including inputs and
outputs is available at the CAMx ftp site:
Hostname: ftp.environ.org
Username: camx
Password: pass4camx
See the README file on the ftp server to determine which files
you need to download. You can compare your results to the test
case benchmark by displaying the concentration outputs (using
PAVE, for example). You can perform a more rigorous check by
comparing the coarse grid average concentration outputs using
the "AVGDIF" program. This program is on the CAMx ftp site in
the processors area. We expect concentrations to agree
within the limits of single precision calculation, namely
relative errors of about 1 in 100,000.
MULTI-PROCESSOR SUPPORT
CAMx supports multiple processors by using OpenMP compiler
directives. This only works for shared memory systems.
For example, you can take advantage of a dual processor
Linux PC, but not a Linux cluster. The OMP option has
been tested for Linux and SGI workstations, and the makefile
has options "sgiomp" and "linuxomp". You must build a
CAMx executable with OMP enabled before you can use
multiple processors.
When running the mulitprocessor version (OMP) on a Linux
platform you must set some environment variables in the
job script to take advantage of multiprocessor capability:
NCPUS -- number of processors available to program
MPSTKZ -- per thread stack size
There have been problems with some parallel programs on
Linux systems when the per-thread stack size is set to the
default (2MB). If you have unexplained failures, try
setting this environment variable to a larger value, such as
8MB or even as large as 64MB for a large application.
You will probably also want to increase the stack size available
to the shell executing the model by using the limit command.
limit stacksize unlimited
For example, the first 4 lines of a job script to execute
a multi-processor version of CAMx should look like:
#!/bin/csh
setenv NCPUS 2
setenv MPSTKZ 32M
limit stacksize unlimited