1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
CBOP |
4 |
|
C !ROUTINE: EEPARAMS.h |
5 |
|
C !INTERFACE: |
6 |
|
C include "EEPARAMS.h" |
7 |
C |
C |
8 |
C /==========================================================\ |
C !DESCRIPTION: |
9 |
|
C *==========================================================* |
10 |
C | EEPARAMS.h | |
C | EEPARAMS.h | |
11 |
C |==========================================================| |
C *==========================================================* |
12 |
C | Parameters for "execution environemnt". These are used | |
C | Parameters for "execution environemnt". These are used | |
13 |
C | by both the particular numerical model and the "execution| |
C | by both the particular numerical model and the execution | |
14 |
C | environment" support routines. | |
C | environment support routines. | |
15 |
C \==========================================================/ |
C *==========================================================* |
16 |
|
CEOP |
17 |
C MAX_LEN_MBUF - Default message buffer max. size |
|
18 |
C MAX_LEN_FNAM - Default file name max. size |
C ======== EESIZE.h ======================================== |
19 |
C MAX_LEN_PREC - Default record length for reading "parameter" files |
|
20 |
|
C MAX_LEN_MBUF - Default message buffer max. size |
21 |
|
C MAX_LEN_FNAM - Default file name max. size |
22 |
|
C MAX_LEN_PREC - Default rec len for reading "parameter" files |
23 |
|
|
24 |
INTEGER MAX_LEN_MBUF |
INTEGER MAX_LEN_MBUF |
25 |
PARAMETER ( MAX_LEN_MBUF = 512 ) |
PARAMETER ( MAX_LEN_MBUF = 512 ) |
26 |
INTEGER MAX_LEN_FNAM |
INTEGER MAX_LEN_FNAM |
28 |
INTEGER MAX_LEN_PREC |
INTEGER MAX_LEN_PREC |
29 |
PARAMETER ( MAX_LEN_PREC = 200 ) |
PARAMETER ( MAX_LEN_PREC = 200 ) |
30 |
|
|
31 |
|
C MAX_NO_THREADS - Maximum number of threads allowed. |
32 |
|
C MAX_NO_PROCS - Maximum number of processes allowed. |
33 |
|
C MAX_NO_BARRIERS - Maximum number of distinct thread "barriers" |
34 |
|
INTEGER MAX_NO_THREADS |
35 |
|
PARAMETER ( MAX_NO_THREADS = 4 ) |
36 |
|
INTEGER MAX_NO_PROCS |
37 |
|
PARAMETER ( MAX_NO_PROCS = 2048 ) |
38 |
|
INTEGER MAX_NO_BARRIERS |
39 |
|
PARAMETER ( MAX_NO_BARRIERS = 1 ) |
40 |
|
|
41 |
|
C Particularly weird and obscure voodoo numbers |
42 |
|
C lShare - This wants to be the length in |
43 |
|
C [148]-byte words of the size of |
44 |
|
C the address "window" that is snooped |
45 |
|
C on an SMP bus. By separating elements in |
46 |
|
C the global sum buffer we can avoid generating |
47 |
|
C extraneous invalidate traffic between |
48 |
|
C processors. The length of this window is usually |
49 |
|
C a cache line i.e. small O(64 bytes). |
50 |
|
C The buffer arrays are usually short arrays |
51 |
|
C and are declared REAL ARRA(lShare[148],LBUFF). |
52 |
|
C Setting lShare[148] to 1 is like making these arrays |
53 |
|
C one dimensional. |
54 |
|
INTEGER cacheLineSize |
55 |
|
INTEGER lShare1 |
56 |
|
INTEGER lShare4 |
57 |
|
INTEGER lShare8 |
58 |
|
PARAMETER ( cacheLineSize = 256 ) |
59 |
|
PARAMETER ( lShare1 = cacheLineSize ) |
60 |
|
PARAMETER ( lShare4 = cacheLineSize/4 ) |
61 |
|
PARAMETER ( lShare8 = cacheLineSize/8 ) |
62 |
|
|
63 |
|
INTEGER MAX_VGS |
64 |
|
PARAMETER ( MAX_VGS = 8192 ) |
65 |
|
|
66 |
|
C ======== EESIZE.h ======================================== |
67 |
|
|
68 |
|
|
69 |
|
C Symbolic values |
70 |
|
C precXXXX :: precision used for I/O |
71 |
|
INTEGER precFloat32 |
72 |
|
PARAMETER ( precFloat32 = 32 ) |
73 |
|
INTEGER precFloat64 |
74 |
|
PARAMETER ( precFloat64 = 64 ) |
75 |
|
|
76 |
|
C UNSET_xxx :: Used to indicate variables that have not been given a value |
77 |
|
Real*8 UNSET_FLOAT8 |
78 |
|
PARAMETER ( UNSET_FLOAT8 = 1.234567D5 ) |
79 |
|
Real*4 UNSET_FLOAT4 |
80 |
|
PARAMETER ( UNSET_FLOAT4 = 1.234567E5 ) |
81 |
|
_RL UNSET_RL |
82 |
|
PARAMETER ( UNSET_RL = 1.234567D5 ) |
83 |
|
_RS UNSET_RS |
84 |
|
PARAMETER ( UNSET_RS = 1.234567D5 ) |
85 |
|
INTEGER UNSET_I |
86 |
|
PARAMETER ( UNSET_I = 123456789 ) |
87 |
|
|
88 |
|
C debLevX :: used to decide when to print debug messages |
89 |
|
INTEGER debLevZero |
90 |
|
PARAMETER ( debLevZero=0 ) |
91 |
|
INTEGER debLevA |
92 |
|
PARAMETER ( debLevA=1 ) |
93 |
|
INTEGER debLevB |
94 |
|
PARAMETER ( debLevB=2 ) |
95 |
|
|
96 |
C SQUEEZE_RIGHT - Flag indicating right blank space removal |
C SQUEEZE_RIGHT - Flag indicating right blank space removal |
97 |
C from text field. |
C from text field. |
98 |
C SQUEEZE_LEFT - Flag indicating left blank space removal |
C SQUEEZE_LEFT - Flag indicating left blank space removal |
102 |
C PRINT_MAP_XY - Flag indicating to plot map as XY slices |
C PRINT_MAP_XY - Flag indicating to plot map as XY slices |
103 |
C PRINT_MAP_XZ - Flag indicating to plot map as XZ slices |
C PRINT_MAP_XZ - Flag indicating to plot map as XZ slices |
104 |
C PRINT_MAP_YZ - Flag indicating to plot map as YZ slices |
C PRINT_MAP_YZ - Flag indicating to plot map as YZ slices |
105 |
C commentCharacter - Variable used in column 1 of parameter files to |
C commentCharacter - Variable used in column 1 of parameter |
106 |
C indicate comments. |
C files to indicate comments. |
107 |
C INDEX_I - Variable used to select an index label |
C INDEX_I - Variable used to select an index label |
108 |
C INDEX_J for formatted input parameters. |
C INDEX_J for formatted input parameters. |
109 |
C INDEX_K |
C INDEX_K |
124 |
PARAMETER ( commentCharacter = '#' ) |
PARAMETER ( commentCharacter = '#' ) |
125 |
INTEGER INDEX_I |
INTEGER INDEX_I |
126 |
INTEGER INDEX_J |
INTEGER INDEX_J |
127 |
INTEGER INDEX_K |
INTEGER INDEX_K |
128 |
INTEGER INDEX_NONE |
INTEGER INDEX_NONE |
129 |
PARAMETER ( INDEX_I = 1, |
PARAMETER ( INDEX_I = 1, |
130 |
& INDEX_J = 2, |
& INDEX_J = 2, |
131 |
& INDEX_K = 3, |
& INDEX_K = 3, |
132 |
& INDEX_NONE = 4 ) |
& INDEX_NONE = 4 ) |
133 |
|
|
|
|
|
134 |
C EXCH_IGNORE_CORNERS - Flag to select ignoring or |
C EXCH_IGNORE_CORNERS - Flag to select ignoring or |
135 |
C EXCH_UPDATE_CORNERS updating of corners during |
C EXCH_UPDATE_CORNERS updating of corners during |
136 |
C an edge exchange. |
C an edge exchange. |
141 |
|
|
142 |
C FORWARD_SIMULATION |
C FORWARD_SIMULATION |
143 |
C REVERSE_SIMULATION |
C REVERSE_SIMULATION |
144 |
|
C TANGENT_SIMULATION |
145 |
INTEGER FORWARD_SIMULATION |
INTEGER FORWARD_SIMULATION |
146 |
INTEGER REVERSE_SIMULATION |
INTEGER REVERSE_SIMULATION |
147 |
|
INTEGER TANGENT_SIMULATION |
148 |
PARAMETER ( FORWARD_SIMULATION = 0, |
PARAMETER ( FORWARD_SIMULATION = 0, |
149 |
& REVERSE_SIMULATION = 1 ) |
& REVERSE_SIMULATION = 1, |
150 |
|
& TANGENT_SIMULATION = 2 ) |
|
|
|
|
C Particularly weird and obscure voodoo numbers |
|
|
C lShare - This wants to be the length in |
|
|
C [148]-byte words of the size of |
|
|
C the address "window" that is snooped |
|
|
C on an SMP bus. By separating elements in |
|
|
C the global sum buffer we can avoid generating |
|
|
C extraneous invalidate traffic between |
|
|
C processors. The length of this window is usually |
|
|
C a cache line i.e. small O(64 bytes). |
|
|
C The buffer arrays are usually short arrays |
|
|
C and are declared REAL ARRA(lShare[148],LBUFF). |
|
|
C Setting lShare[148] to 1 is like making these arrays |
|
|
C one dimensional. |
|
|
INTEGER cacheLineSize |
|
|
INTEGER lShare1 |
|
|
INTEGER lShare4 |
|
|
INTEGER lShare8 |
|
|
PARAMETER ( cacheLineSize = 256 ) |
|
|
PARAMETER ( lShare1 = cacheLineSize ) |
|
|
PARAMETER ( lShare4 = cacheLineSize/4 ) |
|
|
PARAMETER ( lShare8 = cacheLineSize/8 ) |
|
|
|
|
|
C MAX_NO_THREADS - Maximum number of threads allowed. |
|
|
C MAX_NO_PROCS - Maximum number of processes allowed. |
|
|
C MAX_NO_BARRIERS - Maximum number of distinct thread "barriers" |
|
|
INTEGER MAX_NO_THREADS |
|
|
PARAMETER ( MAX_NO_THREADS = 32 ) |
|
|
INTEGER MAX_NO_PROCS |
|
|
PARAMETER ( MAX_NO_PROCS = 128 ) |
|
|
INTEGER MAX_NO_BARRIERS |
|
|
PARAMETER ( MAX_NO_BARRIERS = 1 ) |
|
151 |
|
|
152 |
C-- COMMON /EEPARAMS_L/ Execution environment public logical variables. |
C-- COMMON /EEPARAMS_L/ Execution environment public logical variables. |
153 |
C eeBootError - Flag indicating error during multi-processing |
C eeBootError - Flag indicating error during multi-processing |
154 |
C eeEndError initialisation/termination. |
C eeEndError initialisation/termination. |
155 |
C fatalError - Flag used to indicate that the model is ended with |
C fatalError - Flag used to indicate that the model is ended with an error |
156 |
C an error |
C printMapIncludesZeros :: Flag that controls whether character constant |
157 |
COMMON /EEPARAMS_L/ eeBootError, fatalError, eeEndError, |
C map code ignores exact zero values. |
158 |
& useCubedSphereExchange |
C useCoupler - use Coupler for a multi-components set-up |
159 |
|
COMMON /EEPARAMS_L/ |
160 |
|
& eeBootError, fatalError, eeEndError, |
161 |
|
& printMapIncludesZeros, |
162 |
|
& useCubedSphereExchange, useCoupler, useSETRLSTK, useSIGREG |
163 |
LOGICAL eeBootError |
LOGICAL eeBootError |
164 |
LOGICAL eeEndError |
LOGICAL eeEndError |
165 |
LOGICAL fatalError |
LOGICAL fatalError |
166 |
|
LOGICAL printMapIncludesZeros |
167 |
LOGICAL useCubedSphereExchange |
LOGICAL useCubedSphereExchange |
168 |
|
LOGICAL useCoupler |
169 |
|
LOGICAL useSETRLSTK |
170 |
|
LOGICAL useSIGREG |
171 |
|
|
172 |
|
|
173 |
C-- COMMON /EPARAMS_I/ Execution environment public integer variables. |
C-- COMMON /EPARAMS_I/ Execution environment public integer variables. |
174 |
C errorMessageUnit - Fortran IO unit for error messages |
C errorMessageUnit - Fortran IO unit for error messages |
175 |
C standardMessageUnit - Fortran IO unit for informational messages |
C standardMessageUnit - Fortran IO unit for informational messages |
176 |
|
C maxLengthPrt1D :: maximum length for printing (to Std-Msg-Unit) 1-D array |
177 |
C scrUnit1 - Scratch file 1 unit number |
C scrUnit1 - Scratch file 1 unit number |
178 |
C scrUnit2 - Scratch file 2 unit number |
C scrUnit2 - Scratch file 2 unit number |
179 |
C eeDataUnit - Unit number used for reading "execution environment" parameter file. |
C eeDataUnit - Unit # for reading "execution environment" parameter file. |
180 |
C modelDataUnit - Unit number for reading "model" parameter file. |
C modelDataUnit - Unit number for reading "model" parameter file. |
181 |
C numberOfProcs - Number of processes computing in parallel |
C numberOfProcs - Number of processes computing in parallel |
182 |
C pidIO - Id of process to use for I/O. |
C pidIO - Id of process to use for I/O. |
205 |
C but that makes it easier. |
C but that makes it easier. |
206 |
C ioErrorCount - IO Error Counter. Set to zero initially and increased |
C ioErrorCount - IO Error Counter. Set to zero initially and increased |
207 |
C by one every time an IO error occurs. |
C by one every time an IO error occurs. |
208 |
COMMON /EEPARAMS_I/ errorMessageUnit, standardMessageUnit, |
COMMON /EEPARAMS_I/ |
209 |
& scrUnit1, scrUnit2, eeDataUnit, modelDataUnit, |
& errorMessageUnit, standardMessageUnit, maxLengthPrt1D, |
210 |
& numberOfProcs, pidIO, myProcId, |
& scrUnit1, scrUnit2, eeDataUnit, modelDataUnit, |
211 |
& myPx, myPy, myXGlobalLo, myYGlobalLo, nThreads, |
& numberOfProcs, pidIO, myProcId, |
212 |
& myBxLo, myBxHi, myByLo, myByHi, |
& myPx, myPy, myXGlobalLo, myYGlobalLo, nThreads, |
213 |
& nTx, nTy, ioErrorCount |
& myBxLo, myBxHi, myByLo, myByHi, |
214 |
INTEGER eeDataUnit |
& nTx, nTy, ioErrorCount |
215 |
INTEGER errorMessageUnit |
INTEGER errorMessageUnit |
216 |
INTEGER ioErrorCount(MAX_NO_THREADS) |
INTEGER standardMessageUnit |
217 |
|
INTEGER maxLengthPrt1D |
218 |
|
INTEGER scrUnit1 |
219 |
|
INTEGER scrUnit2 |
220 |
|
INTEGER eeDataUnit |
221 |
INTEGER modelDataUnit |
INTEGER modelDataUnit |
222 |
|
INTEGER ioErrorCount(MAX_NO_THREADS) |
223 |
INTEGER myBxLo(MAX_NO_THREADS) |
INTEGER myBxLo(MAX_NO_THREADS) |
224 |
INTEGER myBxHi(MAX_NO_THREADS) |
INTEGER myBxHi(MAX_NO_THREADS) |
225 |
INTEGER myByLo(MAX_NO_THREADS) |
INTEGER myByLo(MAX_NO_THREADS) |
234 |
INTEGER nTy |
INTEGER nTy |
235 |
INTEGER numberOfProcs |
INTEGER numberOfProcs |
236 |
INTEGER pidIO |
INTEGER pidIO |
237 |
INTEGER scrUnit1 |
|
238 |
INTEGER scrUnit2 |
CEH3 ;;; Local Variables: *** |
239 |
INTEGER standardMessageUnit |
CEH3 ;;; mode:fortran *** |
240 |
|
CEH3 ;;; End: *** |