CoastalME (Coastal Modelling Environment)
Simulates the long-term behaviour of complex coastlines
Loading...
Searching...
No Matches
cme.h
Go to the documentation of this file.
1
101
102/*
103 NOTE Before releasing a new version, do a pre-release build to check for memory leaks with -fsanitize options enabled (see CMakeLists.txt) then run ./cme 2> sanitize.txt NOT UNDER DEBUG (i.e. not using gdb)
104
105 TODOLIST ***********************************************************************************************************
106 DOCUMENTATION
107 TODO 001 Add more Doxygen information about all classes
108 TODO 007 We now have setup and surge info from CShore (thanks to Manuel). But what shall we do with this info? "The variable VdWaveSetupSurge() represents the sea level rise due to wave effects (setup) and storm surge. CSHORE calculates them together and they can’t be separated. That’s what the VdWaveSetupSurge variable is. That’s why you saw my initial efforts to try to separate both variables from CSHORE commented out, which is impossible. What is possible is to get the RunUp from CSHORE, but since it uses an empirical formula for that, I finally decided to calculate it separately. To your question about whether you should remove VdStormSurge, the answer is yes. I left it because I still intend at some point to extract the cross-shore transport from CSHORE and balance it in CME with the longshore and cross-shore transports without needing the Dean profile. From my point of view, this would be even more realistic, though at first it will surely drive us crazy."
109
110 USER INPUT
111 TODO 000 Should user input be split in two main files: one for frequently-changed things, one for rarely-changed things? If so, what should go into each file ('testing only' OK, but what else?)
112 TODO 011 Should this constant be a user input? If so, TODO 071
113 TODO 036 Read in changed deep water wave values (need TODO 071)
114 TODO 030 Do we also need to be able to input landform sub-categories? (need TODO 071)
115 TODO 022 Get intervention update working (need TODO 071)
116 TODO 042 Should we have a smallest valid input for KLS in the CERC equation?
117 TODO 045 Method of getting depth of closure value needs to be a user input (need TODO 071)
118 TODO 049 Handle other command line parameters e.g. path to .ini file, path to datafile
119 TODO 035 Also handle other EPSG for vector spatial reference systems
120 TODO 054 Choose more files to omit from "usual" raster output
121 TODO 069 Enable ability to represent intervention structures which have their foundation embedded in consolidated sediment. In other words, with the elevation of the base of the intervention structure *below* the top of all consolidated sediment layers. Will need some sanity checking of elevations
122 TODO 071 If the user input file format is changed, write a Python script to convert from the old file format to the new
123 TODO 083 Get all three kinds of sediment input events working correctly
124
125 ERROR HANDLING
126 TODO 038 Do better error handling if insufficient memory
127 TODO 004 Improve error handling of situation where we have a valid shadow zone but cannot find a neighbouring cell which is 'under' the coastline
128 TODO 006 Check GDALGridCreate() with only start-of-coast or an end-of-coast profiles
129 TODO 009 Decide what to do when we have eroded down to basement
130 TODO 017 Extra safety check needed, make sure that each point is within valid grid
131 TODO 018 Improve situation where new landwards point on parallel profile is not within the raster grid
132 TODO 019 Improve situation where Dean profile has a near-zero elevation difference
133 TODO 020 Check calculation of elevation of coast point of Dean parallel profile
134 TODO 021 Improve situation where all layers have zero thickness
135 TODO 025 Improve situation where this point has only zero thickness layers
136 TODO 026 Check situation where cell in parallel profile is not in a polygon
137 TODO 028 Give a warning if raster input layer has several bands
138 TODO 053 Improve handling of situation where landward elevation of profile is -ve
139 TODO 055 Maybe add a safety check here?
140 TODO 080 Do we get -ve breaking wave heights here?
141 TODO 084 Improve handling of situation where consecutive profile points are same distance from shoreline
142
143 THEORY/EFFICIENCY
144 TODO 002 Do we really need D50 for drift landform class? What do we need for drift?
145 TODO 005 Maybe give every coast point a value for end-of-profile wave height and direction instead of for deep water wave height and direction
146 TODO 010 Do we also need to update the active zone cells?
147 TODO 012 Change finding of adjacent polygons, and calculation of the length of shared normals, when we make polygon seaward length determined by depth of closure
148 TODO 013 Change calculation (need user input?) of coastline smoothing convexity threshold
149 TODO 014 Profile spacing, could try gradually increasing the profile spacing with increasing concavity, and decreasing the profile spacing with increasing convexity
150 TODO 016 Check mass balance for recirculating unconsolidated sediment option
151 TODO 023 Only calculate shore platform erosion if cell is in a polygon
152 TODO 024 Should we calculate platform erosion on a profile that has hit dry land?
153 TODO 044 Implement estuaries. Before we can do this, we will need to deal with multiple coastlines. Will need to get working where profile hits another profile which belongs to a different coast object.
154 TODO 051 Implement other ways of calculating depth of closure, see TODO 045
155 TODO 056 Check this please Andres
156 TODO 059 Implement dune landform class
157 TODO 060 Remove 'magic numbers' from code here
158 TODO 061 Is this safety check to depth of breaking a reasonable thing to do?
159 TODO 066 Should this be for all layers? Check
160 TODO 067 Suspended fine sediment never decreases i.e. no suspended fine sediment ever leaves the grid. Is this OK?
161 TODO 070 Change CShore to use allocatable arrays (https://fortran-lang.org/en/learn/best_practices/allocatable_arrays/) so that the number of points in the CShore output profiles can either be a user input, or determined by e.g. the physical length of the profile. At present, max is NN = 1000 in cshore_wrapper.f03
162 TODO 075 What if bedrock sticks above Dean profile?
163 TODO 076 When doing parallel profiles, start from the profile which is closest to a right angle with the coast
164 TODO 077 As traverse between the bounding profiles creating parallel profiles, gradually change the parallel profile orientation based on distance weighting of two bounding profiles
165 TODO 078 At present, we don't allow cliff collapse onto interventions. Is this realistic? Should it be different for different types on intervention?
166 TODO 089 Why do we get patches of sediment in the sea?
167 TODO 086 Try these as a more efficient replacement for GDALGridCreate():
168 https://github.com/delfrrr/delaunator-cpp
169 https://www.cs.cmu.edu/~quake/triangle.html
170 https://github.com/greenm01/poly2tri
171 https://gts.sourceforge.net/index.html
172 TODO 088 In (almost) all whole-grid loops, immediately continue if cell is hinterland (but not when calculating cliff collapse)
173
174 OUTPUT
175 TODO 065 Get GPKG output working: GDAL 3.9.1 does not yet implement this correctly. Currently is OK for vector output (but is very slow), not yet working for raster output
176 TODO 063 Add NetCDF support, see https://trac.osgeo.org/gdal/wiki/NetCDF
177 TODO 064 Add support for grids that are not oriented N-S and W-E, but which are still rectangular. See https://gdal.org/en/stable/tutorials/geotransforms_tut.html
178 TODO 031 Get raster slice output working with multiple slices
179 TODO 032 Improve output scaling for DBL_NODATA situation
180 TODO 033 Also test and configure (e.g. by passing open() options) other vector output file formats
181 TODO 034 Also test and configure (e.g. by passing open() options) other raster output file formats
182 TODO 043 When outputting profiles, how do we deal with randomness of profile spacing (since profile location is determined by curvature)?
183 TODO 052 Improve saving of profiles and parallel profiles
184 TODO 062 Show end-of-iteration number of cells with sediment somewhere
185 TODO 068 Only show output in log file that is relevant to processes being simulated
186 TODO 074 Output history of what landforms are on a particular cell or cells. User inputs cell(s), how?
187 TODO 082 Also show m_dStartIterUnconsFineAllCells etc. in log file
188
189 089 is max
190
191 COMPLETED
192 TODO 003 Make coastline curvature moving window size a user input DONE in 1.1.22
193 TODO 046 Why is cliff collapse eroded during deposition (three size classes) no longer calculated? DONE IN 1.1.22
194 TODO 058 Dave to check this DONE in 1.1.22
195 TODO 039 Rewrite reading of multiple random number seeds DONE in 1.2.1, 8 Nov 2024
196 TODO 041 Read in SWL per-timestep
197 BUG 002 Useless output e.g. clay layers even if no clay input DONE in 1.1.21
198 BUG 003 Use mean SWL for elevations of Dean profiles DONE in 1.2.1, 27 Nov 2024
199 BUG 004 Don't smooth intervention coastline DONE 1.2.1, 27 Nov 2024
200 TODO 073 If output dir does not exist, then create it (ask user first) DONE 1.2.2, 28 Nov 2024
201 TODO 047 Where is the GDAL description for the deep water wave stations vector file? DONE 1.2.3, 2 Dec 2024
202 TODO 048 Where is the GDAL description for the flood input locations point or vector file? DONE 1.2.3, 2 Dec 2024
203 TODO 027 Sort out GDAL problem with raster reference units DONE 1.2.3, 2 Dec 2024
204 TODO 079 Do sanity checking on wave and tide input DONE 1.2.3, 2 Dec 2024
205 TODO 072 CShore crashes occasionally, is it because of -ve Z values here? DONE 1.2.3, 2 Dec 2024
206 TODO 050 Update for recent versions of Windows DONE 1.2.3, 2 Dec 2024
207 TODO 037 Need more info on nFindIndex() DONE 1.2.3, 2 Dec 2024
208 Improve coast normals DONE 1.2.3, 20 Dec 2024
209 TODO 057 Check this please Manuel DONE 1.2.4, 4 Jan 2025
210 TODO 087 Is there a problem if profile is not long enough for user-input depth of closure? DONE 1.3.0 2 Feb 2025
211
212*/
213
214#ifndef CME_H
215#define CME_H
216/*===============================================================================================================================
217
218This file is part of CoastalME, the Coastal Modelling Environment.
219
220CoastalME is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
221
222This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
223
224You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
225
226===============================================================================================================================*/
227#include <climits>
228
229#include <sstream>
230using std::ostream;
231using std::ostringstream;
232
233#include "simulation.h"
234
235//===================================================== platform-specific stuff =================================================
236#ifdef _WIN32
237#define access _access
238#define F_OK 0 // Test for file existence
239#endif
240
241#ifdef _MSC_VER
242// MS Visual C++, byte order is IEEE little-endian, 32-bit
243#ifdef _DEBUG
244#include <crtdbg.h> // useful
245#endif
246
247// clock_t is a signed long: see <time.h>
248long const CLOCK_T_MIN = LONG_MIN;
249double const CLOCK_T_RANGE = static_cast<double>(LONG_MAX) - static_cast<double>(CLOCK_T_MIN);
250#ifdef _M_ALPHA
251string const PLATFORM = "Alpha/MS Visual C++";
252#elif defined _M_IX86
253string const PLATFORM = "Intel x86/MS Visual C++";
254#elif defined _M_MPPC
255string const PLATFORM = "Power PC/MS Visual C++";
256#elif defined _M_MRX000
257string const PLATFORM = "MIPS/MS Visual C++";
258#else
259string const PLATFORM = "Other/MS Visual C++";
260#endif
261#endif
262
263#ifdef __GNUG__
264// GNU C++
265#ifndef CPU
266#error CPU not defined
267#else
268#ifdef x86
269// Intel x86, byte order is little-endian, 32-bit
270string const PLATFORM = "Intel x86/GNU C++";
271// clock_t is an unsigned long: see <time.h>
272unsigned long const CLOCK_T_MIN = 0;
273double const CLOCK_T_RANGE = static_cast<double>(ULONG_MAX);
274
275#elif defined rs6000
276// IBM RS-6000, byte order is big-endian, 32-bit
277string const PLATFORM = "IBM RS-6000/GNU C++";
278// clock_t is a signed long: see <time.h> NEED TO CHECK
279long const CLOCK_T_MIN = LONG_MIN;
280double const CLOCK_T_RANGE = static_cast<double>(LONG_MAX) - static_cast<double>(CLOCK_T_MIN);
281#elif defined ultrasparc
282// Sun UltraSparc, byte order is big-endian, 32-bit
283string const PLATFORM = "Sun UltraSPARC/GNU C++";
284// clock_t is a signed long: see <time.h>
285long const CLOCK_T_MIN = LONG_MIN;
286double const CLOCK_T_RANGE = static_cast<double>(LONG_MAX) - static_cast<double>(CLOCK_T_MIN);
287#else
288// Something else, assume 32-bit
289string const PLATFORM = "Other/GNU C++";
290// clock_t is a signed long: NEED TO CHECK <time.h>
291long const CLOCK_T_MIN = LONG_MIN;
292double const CLOCK_T_RANGE = static_cast<double>(LONG_MAX) - static_cast<double>(CLOCK_T_MIN);
293#endif
294#endif
295#endif
296
297#ifdef __MINGW32__
298// Minimalist GNU for Windows
299// #define __USE_MINGW_ANSI_STDIO 1 // Fix long doubles output problem, see http://stackoverflow.com/questions/7134547/gcc-printf-and-long-double-leads-to-wrong-output-c-type-conversion-messes-u
300
301#define WEXITSTATUS(x) ((x)&0xff)
302#endif
303
304#ifdef __HP_aCC
305// HP-UX aCC, byte order is big-endian, can be either 32-bit or 64-bit
306string const PLATFORM = "HP-UX aC++";
307// clock_t is an unsigned long: see <time.h>
308unsigned long const CLOCK_T_MIN = 0;
309#ifdef __ia64
310// However, clock_t is a 32-bit unsigned long and we are using 64-bit unsigned longs here
311double const CLOCK_T_RANGE = 4294967295UL; // crude, improve
312#else
313double const CLOCK_T_RANGE = static_cast<double>(ULONG_MAX);
314#endif
315#endif
316
317// TODO: Check
318// #if defined(WIN32)
319// #define STRCASECMP(a, b) (_stricmp(a, b))
320// #define STRNCASECMP(a, b, n) (_strnicmp(a, b, n))
321// #else
322// /** Alias for strcasecmp() */
323// #define STRCASECMP(a, b) (strcasecmp(a, b))
324// /** Alias for strncasecmp() */
325// #define STRNCASECMP(a, b, n) (strncasecmp(a, b, n))
326// //# endif
327// /** Alias for strncasecmp() == 0 */
328// #define EQUALN(a, b, n) (STRNCASECMP(a, b, n) == 0)
329// /** Alias for strcasecmp() == 0 */
330// #define EQUAL(a, b) (STRCASECMP(a, b) == 0)
331// #endif
332
333//===================================================== hard-wired constants ====================================================
334char const COLON = ':';
335char const COMMA = ',';
336char const DASH = '-';
337char const PATH_SEPARATOR = '/'; // Works for Windows too!
338char const QUOTE1 = ';';
339char const QUOTE2 = '#';
340char const SLASH = '/';
341char const SPACE = ' ';
342char const TILDE = '~';
343
344// TESTING options
345bool const ACCEPT_SHORT_PROFILES = true;
346bool const CREATE_SHADOW_ZONE_IF_HITS_GRID_EDGE = true; // If shadow line tracing hits grid edge, create shadow zone?
347bool const SAVE_CSHORE_OUTPUT = true; // #ifdef CSHORE_FILE_INOUT || CSHORE_BOTH, append all CShore output files to a whole-run master
348bool const USE_DEEP_WATER_FOR_SHADOW_LINE = true; // Use deep water wave orientation in determining shadow line orientation?
349
350// Not likely that user will need to change these
351int const BUF_SIZE = 2048; // Max length (inc. terminating NULL) of any C-type string
352int const CAPE_POINT_MIN_SPACING = 10; // In cells: for shadow zone stuff, cape points must not be closer than this
353int const CLOCK_CHECK_ITERATION = 5000; // If have done this many timesteps then reset the CPU time running total
354int const COAST_LENGTH_MAX = 10; // For safety check when tracing coast
355int const COAST_LENGTH_MIN_X_PROF_SPACE = 20; // Ignore very short coasts less than this x profile spacing
356
358int const CSHOREARRAYOUTSIZE = 1000;
359
360int const FLOOD_FILL_START_OFFSET = 2; // In cells: flood fill starts this distance inside polygon
361int const GRID_MARGIN = 10; // Ignore this many along-coast grid-edge points re. shadow zone calcs
362int const INT_NODATA = -9999; // CME's internal NODATA value for ints
363int const MAX_CLIFF_TALUS_LENGTH = 100; // In cells: maximum length of the Dean profile for cliff collapse talus
364int const MAX_LEN_SHADOW_LINE_TO_IGNORE = 200; // In cells: if can't find flood fill start point, continue if short shadow line
365int const MAX_NUM_PREV_ORIENTATION_VALUES = 10; // Max length of deque used in tracing shadow boundary
366int const MAX_NUM_SHADOW_ZONES = 10; // Consider at most this number of shadow zones
367int const MAX_SEAWARD_OFFSET_FOR_CLIFF_TALUS = 20; // In cells: maximum distance that the Dean profile for cliff collapse talus can be offset from the coast
368int const MIN_INLAND_OFFSET_FOR_BEACH_EROSION_ESTIMATION = 5; // Used in estimation of beach erosion
369int const MIN_PARALLEL_PROFILE_SIZE = 3; // In cells: min size for valid unconsolidated sediment parallel profile
370int const MIN_PROFILE_SIZE = 3; // In cells: min size for valid unconsolidated sediment profile
371int const MIN_PROFILE_SPACING = 15; // In cells: profile creation does not work well if profiles are too closely spaced
372int const SAVGOL_POLYNOMIAL_MAX_ORDER = 6; // Maximum order of Savitsky-Golay smoothing polynomial
373
374// Log file detail level
375int const NO_LOG_FILE = 0;
379int const LOG_FILE_ALL = 4;
380
381// Direction codes
382int const NO_DIRECTION = 0;
383int const NORTH = 1;
384int const NORTH_EAST = 2;
385int const EAST = 3;
386int const SOUTH_EAST = 4;
387int const SOUTH = 5;
388int const SOUTH_WEST = 6;
389int const WEST = 7;
390int const NORTH_WEST = 8;
391
392int const DIRECTION_DOWNCOAST = 0; // Down-coast, i.e. along the coast so that the index of coastline points INCREASES
393int const DIRECTION_UPCOAST = 1; // Up-coast, i.e. along the coast so that the index of coastline points DECREASES
394
395// Handedness codes, these show which side the sea is on when travelling down-coast (i.e. in the direction in which coastline point numbers INCREASE)
396int const NULL_HANDED = -1;
397int const RIGHT_HANDED = 0;
398int const LEFT_HANDED = 1;
399
400// Sediment texture codes
401int const TEXTURE_FINE = 0;
402int const TEXTURE_SAND = 1;
403int const TEXTURE_COARSE = 2;
404
405// Time unit codes
406int const TIME_UNKNOWN = -1;
407int const TIME_HOURS = 0;
408int const TIME_DAYS = 1;
409int const TIME_MONTHS = 2;
410int const TIME_YEARS = 3;
411
412// Intervention input and output codes
416
417// Default landform category and subcategory code
418int const LF_NONE = 0;
419
420// Landform category codes for cells (is easiest if each has a unique numeric value, irrepective of whether it is category or subcategory, 19 is max now)
421int const LF_CAT_HINTERLAND = 1;
422int const LF_CAT_SEA = 2;
423int const LF_CAT_ISLAND = 14;
427
428// Landform category codes for cells and coast landform objects
429int const LF_CAT_CLIFF = 3; // Raster output of LF_CAT_CLIFF shows LF_CAT_CLIFF subcategories, rather than just LF_CAT_CLIFF
430int const LF_CAT_DRIFT = 4; // Raster output of LF_CAT_DRIFT shows LF_CAT_DRIFT subcategories, rather than just LF_CAT_DRIFT
432
433// Landform sub-category codes for cells, LF_CAT_CLIFF
436
437// Landform sub-category codes for cells, for LF_CAT_DRIFT
441// TODO 059 Implement dune landform class
443
444// Landform sub-category codes for cells, for LF_CAT_INTERVENTION. See also "Intervention input and output codes"
447
448// Landform sub-category codes for sediment input events
451
452// GIS raster input codes
453int const FINE_CONS_RASTER = 1;
454int const SAND_CONS_RASTER = 2;
455int const COARSE_CONS_RASTER = 3;
456int const FINE_UNCONS_RASTER = 4;
457int const SAND_UNCONS_RASTER = 5;
459int const SUSP_SED_RASTER = 7;
460int const LANDFORM_RASTER = 8;
463
464// GIS vector data type codes
465int const VEC_FIELD_DATA_ANY = 0;
466int const VEC_FIELD_DATA_INT = 1;
470
471// GIS vector geometry codes
472int const VEC_GEOMETRY_POINT = 1;
473int const VEC_GEOMETRY_LINE = 2;
475int const VEC_GEOMETRY_OTHER = 4;
476
477// GIS vector input codes and constraints
486int const FLOOD_LOCATION_VEC = 3;
488
489// GIS raster output codes
508int const RASTER_PLOT_COAST = 19;
517int const RASTER_PLOT_LANDFORM = 28;
519int const RASTER_PLOT_NORMAL = 30;
521int const RASTER_PLOT_POLYGON = 32;
532int const RASTER_PLOT_SLICE = 43;
551
552// GIS vector output codes
556int const VECTOR_PLOT_COAST = 4;
562int const VECTOR_PLOT_NORMALS = 10;
570int const VECTOR_PLOT_RUN_UP = 18;
572// int const VECTOR_PLOT_FLOOD_SWL_SETUP_LINE = 19;
573// int const VECTOR_PLOT_FLOOD_SWL_SETUP_SURGE_LINE = 20;
574// int const VECTOR_PLOT_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE = 21;
575
576// Return codes
577int const RTN_OK = 0;
578int const RTN_HELP_ONLY = 1;
579int const RTN_CHECK_ONLY = 2;
580int const RTN_USER_ABORT = 3;
581int const RTN_ERR_BADPARAM = 4;
582int const RTN_ERR_INI = 5;
583int const RTN_ERR_CMEDIR = 6;
584int const RTN_ERR_RUNDATA = 7;
587int const RTN_ERR_LOGFILE = 10;
588int const RTN_ERR_OUTFILE = 11;
589int const RTN_ERR_TSFILE = 12;
590int const RTN_ERR_DEMFILE = 13;
593int const RTN_ERR_MEMALLOC = 16;
600int const RTN_ERR_LINETOGRID = 23;
608int const RTN_ERR_NOSEACELLS = 31;
609int const RTN_ERR_GRIDTOLINE = 32;
611int const RTN_ERR_NOCOAST = 34;
612int const RTN_ERR_PROFILEWRITE = 35;
613int const RTN_ERR_TIMEUNITS = 36;
614int const RTN_ERR_CLIFFNOTCH = 37;
615int const RTN_ERR_CLIFFDEPOSIT = 38;
616int const RTN_ERR_BAD_INDEX = 39;
617int const RTN_ERR_EDGE_OF_GRID = 40;
623int const RTN_ERR_NO_TOP_LAYER = 46;
634int const RTN_ERR_GRIDCREATE = 57;
636int const RTN_ERR_CSHORE_ERROR = 59;
640int const RTN_ERR_BOUNDING_BOX = 63;
647int const RTN_ERR_UNKNOWN = 70;
648
649// Elevation and 'slice' codes
650int const ELEV_IN_BASEMENT = -1;
653
654// Vector smoothing codes
655int const SMOOTH_NONE = 0;
658
659// Grid-edge boundary treatment for unconsolidated sediment movement
660int const GRID_EDGE_CLOSED = 0;
661int const GRID_EDGE_OPEN = 1;
663
664// Model for wave propagation
665int const WAVE_MODEL_COVE = 0;
666int const WAVE_MODEL_CSHORE = 1;
667
668// Equation for estimating erosion of unconsolidated sediment
671
672int const CLIFF_COLLAPSE_LENGTH_INCREMENT = 10; // Increment the planview length of the cliff talus Dean profile, if we have not been able to deposit enough
673
674int const PROFILE_CHECK_ALONG_COAST_MULTIPLIER = 500; // Used in checking shoreline-normal profiles for intersection
675int const PROFILE_CHECK_DIST_FROM_COAST = 3; // Ditto
676
677unsigned long const MASK = 0xfffffffful;
678unsigned long const SEDIMENT_INPUT_EVENT_ERROR = -1;
679
680double const PI = 3.141592653589793238462643;
681
682double const D50_FINE_DEFAULT = 0.0625; // In mm
683double const D50_SAND_DEFAULT = 0.42; // In mm
684double const D50_COARSE_DEFAULT = 19.0; // In mm
685
686double const BEACH_PROTECTION_HB_RATIO = 0.23; // The beach protection factor is this times breaking depth
687double const WALKDEN_HALL_PARAM_1 = 3.25; // First param in Equation 4 from Walkden & Hall, 2005
688double const WALKDEN_HALL_PARAM_2 = 1.50; // Second param in Equation 4 from Walkden & Hall, 2005
689
690double const DEPTH_OVER_DB_INCREMENT = 0.001; // Depth over DB increment for erosion potential look-up function
691double const INVERSE_DEPTH_OVER_DB_INCREMENT = 1000; // Inverse of the above
692double const DEAN_POWER = 2.0 / 3.0; // Dean profile exponent
693
694// TODO 011 Let the user define these CShore input parameters
695double const CSHORE_FRICTION_FACTOR = 0.015; // Friction factor for CShore model
696double const CSHORE_SURGE_LEVEL = 0.0; // TODO 007
697
698double const TOLERANCE = 1e-7; // For bFPIsEqual, if too small (e.g. 1e-10), get spurious "rounding" errors
699double const SEDIMENT_ELEV_TOLERANCE = 1e-10; // For bFPIsEqual, used to compare depth-equivalent sediment amounts
700double const MASS_BALANCE_TOLERANCE = 1e-5; // For bFPIsEqual, used to compare for mass balance checks
703double const MIN_LENGTH_OF_SHADOW_ZONE_LINE = 10; // Used in shadow line tracing
704double const MAX_LAND_LENGTH_OF_SHADOW_ZONE_LINE = 5; // Used in shadow line tracing
705double const CLIFF_COLLAPSE_HEIGHT_INCREMENT = 0.1; // Increment the fractional height of the cliff talus Dean profile, if we have not been able to deposit enough
706
707double const DBL_NODATA = -9999;
708
709string const PROGRAM_NAME = "Coastal Modelling Environment (CoastalME) version 1.3.4 (11 Mar 2025)";
710string const PROGRAM_NAME_SHORT = "CME";
711string const CME_INI = "cme.ini";
712
713string const COPYRIGHT = "(C) 2025 Andres Payo and David Favis-Mortlock";
714string const LINE = "-------------------------------------------------------------------------------";
715string const DISCLAIMER1 = "This program is distributed in the hope that it will be useful, but WITHOUT ANY";
716string const DISCLAIMER2 = "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A";
717string const DISCLAIMER3 = "PARTICULAR PURPOSE. See the GNU General Public License for more details. You";
718string const DISCLAIMER4 = "should have received a copy of the GNU General Public License along with this";
719string const DISCLAIMER5 = "program; if not, contact the Free Software Foundation, Inc., 675 Mass Ave,";
720string const DISCLAIMER6 = "Cambridge, MA 02139, USA.";
721
722string const ABOUT = "simulates the long-term behaviour of a coast. This initial version considers only simple soft cliff cross-shore effects";
723string const THANKS = "Many thanks to:\n\tTom Ashby\n\tManuel Cobos Budia\n\tWilf Chun\n\tMark Dickson\n\tJim W. Hall\n\tMartin D. Hurst\n\tMatthew Ives\n\tRobert J. Nicholls\n\tIan Townend\n\tMike J.A. Walkden";
724string const GDAL_DRIVERS = "GDAL drivers";
725
726string const USAGE = "Usage: cme [OPTION]...";
727string const USAGE1 = " --gdal List GDAL drivers";
728string const USAGE2 = " --about Information about this program";
729string const USAGE3 = " --help Display this text";
730string const USAGE4 = " --home=DIRECTORY Specify the location of the .ini file etc.";
731string const USAGE5 = " --datafile=FILE Specify the location and name of the main datafile";
732
733string const START_NOTICE = "- Started on ";
734string const INITIALIZING_NOTICE = "- Initializing";
735string const READING_FILE_LOCATIONS = " - Reading file locations: ";
736string const READING_RUN_DATA = " - Reading run data file: ";
737string const READING_BASEMENT = " - Reading basement DEM: ";
738string const READING_RASTER_FILES = " - Reading raster GIS files";
739string const READING_LANDFORM_FILE = " - Landform class: ";
740string const READING_INTERVENTION_CLASS_FILE = " - Intervention class: ";
741string const READING_INTERVENTION_HEIGHT_FILE = " - Intervention height: ";
742string const READING_SUSPENDED_SEDIMENT_FILE = " - Suspended sediment: ";
743string const READING_UNCONS_FINE_SEDIMENT_FILE = " - Unconsolidated fine sediment (layer ";
744string const READING_UNCONS_SAND_SEDIMENT_FILE = " - Unconsolidated sand sediment (layer ";
745string const READING_UNCONS_COARSE_SEDIMENT_FILE = " - Unconsolidated coarse sediment (layer ";
746string const READING_CONS_FINE_SEDIMENT_FILE = " - Consolidated fine sediment (layer ";
747string const READING_CONS_SAND_SEDIMENT_FILE = " - Consolidated sand sediment (layer ";
748string const READING_CONS_COARSE_SEDIMENT_FILE = " - Consolidated coarse sediment (layer ";
749string const READING_VECTOR_FILES = " - Reading vector GIS files";
750string const READING_DEEP_WATER_WAVE_FILE = " - Deep water wave values: ";
751string const READING_SED_INPUT_EVENT_FILE = " - Sediment input event values: ";
752string const READING_FLOOD_LOCATION = " - Characteristic locations for flood: ";
753string const READING_SCAPE_SHAPE_FUNCTION_FILE = " - Reading SCAPE shape function file";
754string const READING_TIDE_DATA_FILE = " - Reading tide data file: ";
755string const ALLOCATE_MEMORY = " - Allocating memory for raster grid";
756string const ADD_LAYERS = " - Adding sediment layers to raster grid";
757string const INITIALIZING = " - Initializing";
758string const RUN_NOTICE = "- Running simulation";
759string const SIMULATING = "\r - Simulating ";
760string const FINAL_OUTPUT = "- Writing final output";
761string const SEND_EMAIL = " - Sending email to ";
762string const RUN_END_NOTICE = "- Run ended at ";
763string const PRESS_KEY = "Press any key to continue...";
764
765string const ERROR_NOTICE = " with error code ";
766string const EMAIL_ERROR = "Could not send email";
767
768string const SCAPE_DIR = "scape/";
769string const SCAPE_SHAPE_FUNCTION_FILE = "ShapeFunction.dat";
770string const EROSION_POTENTIAL_LOOKUP_FILE = "ErosionPotential.csv";
771
772string const CSHORE_DIR = "cshore/";
773string const CSHORE_INFILE = "infile";
774
775string const ERR = "*** ERROR ";
776string const WARN = "WARNING ";
777string const NOTE = " Note ";
778
779string const MASS_BALANCE_ERROR = "MASS BALANCE ERROR";
780
781string const PER_ITER_HEAD1 =
782 "<-----ELAPSED----><-SEA-><----POTENTIAL---><----------ACTUAL-----------><----POTENTIAL----><------------ACTUAL------------><-----------ACTUAL-----------><-SEDIMENT-><--CLIFF COLLAPSE--><SUSP>";
783
784string const PER_ITER_HEAD2 =
785 " TIME DEPTH PLATFORM EROSION PLATFORM EROSION BEACH EROSION BEACH EROSION BEACH DEPOSITION INPUT EVENT EROSION DEPOSITION SED";
786
787string const PER_ITER_HEAD3 =
788 "Time Hours Years Avg % Sea All Erod % Sea All Erod <-sea avg-> % Sea All Erod % Sea All Erodng <-sea avg-> % Sea All Deposit <-sea-> <-coast avg><--sea->";
789string const PER_ITER_HEAD4 =
790 "Step Area Sea Area Area Sea Area F S C Area Sea Area Area Sea Area F S C Area Sea Area S C F S C F S C S C F";
791string const PER_ITER_HEAD5 =
792 " Avg Avg Avg Avg Avg Avg Avg Avg Avg";
793
794string const PER_ITER_HEAD =
795 "PER-ITERATION RESULTS =========================================================================================================================================================================";
796string const ENDHYDROLOGYHEAD =
797 "END OF SIMULATION: HYDROLOGY ==================================================================================================================================================================";
798string const ENDSEDIMENTHEAD =
799 "END OF SIMULATION: SEDIMENT MOVEMENT ==========================================================================================================================================================";
800string const PERFORMHEAD =
801 "END OF SIMULATION: PERFORMANCE ================================================================================================================================================================";
802
803string const OUTEXT = ".out";
804string const LOGEXT = ".log";
805string const CSVEXT = ".csv";
806
807string const DEEP_WATER_WAVE_STATION_ID = "id";
808// string const DEEP_WATER_WAVE_STATIONS_HEIGHT = "HEIGHT";
809// string const DEEP_WATER_WAVE_STATIONS_ANGLE = "ANGLE";
810// string const DEEP_WATER_WAVE_STATIONS_PERIOD = "PERIOD";
812string const FLOOD_LOCATION_ID = "id";
813
814// GIS raster output user codes
815string const RASTER_USUAL_OUTPUT_CODE = "usual";
816string const RASTER_ALL_OUTPUT_CODE = "all";
817string const RASTER_SEDIMENT_TOP_CODE = "sediment_top_elevation";
818string const RASTER_SEDIMENT_TOP_NAME = "sediment_top_elevation";
819string const RASTER_TOP_CODE = "top_elevation";
820string const RASTER_TOP_NAME = "top_elevation";
821string const RASTER_BASEMENT_ELEVATION_CODE = "basement_elevation";
822string const RASTER_BASEMENT_ELEVATION_NAME = "basement_elevation";
823string const RASTER_LOCAL_SLOPE_CODE = "local_cons_sediment_slope";
824string const RASTER_LOCAL_SLOPE_NAME = "local_cons_sediment_slope";
825string const RASTER_SEA_DEPTH_CODE = "sea_depth";
826string const RASTER_SEA_DEPTH_NAME = "sea_depth";
827string const RASTER_AVG_SEA_DEPTH_CODE = "avg_sea_depth";
828string const RASTER_AVG_SEA_DEPTH_NAME = "avg_sea_depth";
829string const RASTER_INUNDATION_MASK_CODE = "inundation_mask";
830string const RASTER_INUNDATION_MASK_NAME = "inundation_mask";
831string const RASTER_WAVE_HEIGHT_CODE = "wave_height";
832string const RASTER_WAVE_HEIGHT_NAME = "wave_height";
833string const RASTER_AVG_WAVE_HEIGHT_CODE = "avg_wave_height";
834string const RASTER_AVG_WAVE_HEIGHT_NAME = "avg_wave_height";
835string const RASTER_WAVE_ORIENTATION_CODE = "wave_orientation";
836string const RASTER_WAVE_ORIENTATION_NAME = "wave_orientation";
837string const RASTER_WAVE_PERIOD_CODE = "wave_period";
838string const RASTER_WAVE_PERIOD_NAME = "wave_period";
839string const RASTER_AVG_WAVE_ORIENTATION_CODE = "avg_wave_orientation";
840string const RASTER_AVG_WAVE_ORIENTATION_NAME = "avg_wave_orientation";
841string const RASTER_BEACH_MASK_CODE = "beach_mask";
842string const RASTER_BEACH_MASK_NAME = "beach_mask";
843string const RASTER_BEACH_PROTECTION_CODE = "beach_protection";
844string const RASTER_BEACH_PROTECTION_NAME = "beach_protection";
845string const RASTER_POTENTIAL_PLATFORM_EROSION_MASK_CODE = "potential_platform_erosion_mask";
846string const RASTER_POTENTIAL_PLATFORM_EROSION_MASK_NAME = "potential_platform_erosion_mask";
847string const RASTER_POTENTIAL_PLATFORM_EROSION_CODE = "potential_platform_erosion";
848string const RASTER_POTENTIAL_PLATFORM_EROSION_NAME = "potential_platform_erosion";
849string const RASTER_ACTUAL_PLATFORM_EROSION_CODE = "actual_platform_erosion";
850string const RASTER_ACTUAL_PLATFORM_EROSION_NAME = "actual_platform_erosion";
851string const RASTER_TOTAL_POTENTIAL_PLATFORM_EROSION_CODE = "total_potential_platform_erosion";
852string const RASTER_TOTAL_POTENTIAL_PLATFORM_EROSION_NAME = "total_potential_platform_erosion";
853string const RASTER_TOTAL_ACTUAL_PLATFORM_EROSION_CODE = "total_actual_platform_erosion";
854string const RASTER_TOTAL_ACTUAL_PLATFORM_EROSION_NAME = "total_actual_platform_erosion";
855string const RASTER_POTENTIAL_BEACH_EROSION_CODE = "potential_beach_erosion";
856string const RASTER_POTENTIAL_BEACH_EROSION_NAME = "potential_beach_erosion";
857string const RASTER_ACTUAL_BEACH_EROSION_CODE = "actual_beach_erosion";
858string const RASTER_ACTUAL_BEACH_EROSION_NAME = "actual_beach_erosion";
859string const RASTER_TOTAL_POTENTIAL_BEACH_EROSION_CODE = "total_potential_beach_erosion";
860string const RASTER_TOTAL_POTENTIAL_BEACH_EROSION_NAME = "total_potential_beach_erosion";
861string const RASTER_TOTAL_ACTUAL_BEACH_EROSION_CODE = "total_actual_beach_erosion";
862string const RASTER_TOTAL_ACTUAL_BEACH_EROSION_NAME = "total_actual_beach_erosion";
863string const RASTER_BEACH_DEPOSITION_CODE = "beach_deposition";
864string const RASTER_BEACH_DEPOSITION_NAME = "beach_deposition";
865string const RASTER_TOTAL_BEACH_DEPOSITION_CODE = "total_beach_deposition";
866string const RASTER_TOTAL_BEACH_DEPOSITION_NAME = "total_beach_deposition";
867string const RASTER_LANDFORM_CODE = "landform_class";
868string const RASTER_LANDFORM_NAME = "landform_class";
869string const RASTER_INTERVENTION_CLASS_CODE = "intervention_class";
870string const RASTER_INTERVENTION_CLASS_NAME = "intervention_class";
871string const RASTER_INTERVENTION_HEIGHT_CODE = "intervention_height";
872string const RASTER_INTERVENTION_HEIGHT_NAME = "intervention_height";
873string const RASTER_SUSP_SED_CODE = "susp_sed";
874string const RASTER_SUSP_SED_NAME = "susp_sed";
875string const RASTER_AVG_SUSP_SED_CODE = "avg_susp_sed";
876string const RASTER_AVG_SUSP_SED_NAME = "avg_susp_sed";
877string const RASTER_FINE_UNCONS_CODE = "uncons_sed_fine";
878string const RASTER_FINE_UNCONS_NAME = "uncons_sed_fine";
879string const RASTER_SAND_UNCONS_CODE = "uncons_sed_sand";
880string const RASTER_SAND_UNCONS_NAME = "uncons_sed_sand";
881string const RASTER_COARSE_UNCONS_CODE = "uncons_sed_coarse";
882string const RASTER_COARSE_UNCONS_NAME = "uncons_sed_coarse";
883string const RASTER_FINE_CONS_CODE = "cons_sed_fine";
884string const RASTER_FINE_CONS_NAME = "cons_sed_fine";
885string const RASTER_SAND_CONS_CODE = "cons_sed_sand";
886string const RASTER_SAND_CONS_NAME = "cons_sed_sand";
887string const RASTER_COARSE_CONS_CODE = "cons_sed_coarse";
888string const RASTER_COARSE_CONS_NAME = "cons_sed_coarse";
889string const RASTER_COAST_CODE = "rcoast";
890string const RASTER_COAST_NAME = "rcoast";
891string const RASTER_COAST_NORMAL_CODE = "rcoast_normal";
892string const RASTER_COAST_NORMAL_NAME = "rcoast_normal";
893string const RASTER_ACTIVE_ZONE_CODE = "active_zone";
894string const RASTER_ACTIVE_ZONE_NAME = "active_zone";
895string const RASTER_CLIFF_COLLAPSE_EROSION_FINE_CODE = "cliff_collapse_erosion_fine";
896string const RASTER_CLIFF_COLLAPSE_EROSION_FINE_NAME = "cliff_collapse_erosion_fine";
897string const RASTER_CLIFF_COLLAPSE_EROSION_SAND_CODE = "cliff_collapse_erosion_sand";
898string const RASTER_CLIFF_COLLAPSE_EROSION_SAND_NAME = "cliff_collapse_erosion_sand";
899string const RASTER_CLIFF_COLLAPSE_EROSION_COARSE_CODE = "cliff_collapse_erosion_coarse";
900string const RASTER_CLIFF_COLLAPSE_EROSION_COARSE_NAME = "cliff_collapse_erosion_coarse";
901string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_FINE_CODE = "total_cliff_collapse_erosion_fine";
902string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_FINE_NAME = "total_cliff_collapse_erosion_fine";
903string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_SAND_CODE = "total_cliff_collapse_erosion_sand";
904string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_SAND_NAME = "total_cliff_collapse_erosion_sand";
905string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE_CODE = "total_cliff_collapse_erosion_coarse";
906string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE_NAME = "total_cliff_collapse_erosion_coarse";
907string const RASTER_CLIFF_COLLAPSE_DEPOSITION_SAND_CODE = "cliff_collapse_talus_deposition_sand";
908string const RASTER_CLIFF_COLLAPSE_DEPOSITION_SAND_NAME = "cliff_collapse_talus_deposition_sand";
909string const RASTER_CLIFF_COLLAPSE_DEPOSITION_COARSE_CODE = "cliff_collapse_talus_deposition_coarse";
910string const RASTER_CLIFF_COLLAPSE_DEPOSITION_COARSE_NAME = "cliff_collapse_talus_deposition_coarse";
911string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_SAND_CODE = "total_cliff_collapse_talus_deposition_sand";
912string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_SAND_NAME = "total_cliff_collapse_talus_deposition_sand";
913string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_COARSE_CODE = "total_cliff_collapse_talus_deposition_coarse";
914string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_COARSE_NAME = "total_cliff_collapse_talus_deposition_coarse";
915string const RASTER_POLYGON_CODE = "polygon_raster";
916string const RASTER_POLYGON_NAME = "polygon_raster";
917string const RASTER_SLICE_CODE = "slice";
918string const RASTER_SLICE_NAME = "slice";
919string const RASTER_SHADOW_ZONE_CODE = "shadow_zones";
920string const RASTER_SHADOW_ZONE_NAME = "shadow_zones";
921string const RASTER_SHADOW_DOWNDRIFT_ZONE_CODE = "shadow_downdrift_zones";
922string const RASTER_SHADOW_DOWNDRIFT_ZONE_NAME = "shadow_downdrift_zones";
923string const RASTER_DEEP_WATER_WAVE_ORIENTATION_CODE = "deep_water_wave_orientation";
924string const RASTER_DEEP_WATER_WAVE_ORIENTATION_NAME = "deep_water_wave_orientation";
925string const RASTER_DEEP_WATER_WAVE_HEIGHT_CODE = "deep_water_wave_height";
926string const RASTER_DEEP_WATER_WAVE_HEIGHT_NAME = "deep_water_wave_height";
927string const RASTER_DEEP_WATER_WAVE_PERIOD_CODE = "deep_water_wave_period";
928string const RASTER_DEEP_WATER_WAVE_PERIOD_NAME = "deep_water_wave_period";
929string const RASTER_POLYGON_UPDRIFT_OR_DOWNDRIFT_CODE = "polygon_updrift_or_downdrift";
930string const RASTER_POLYGON_UPDRIFT_OR_DOWNDRIFT_NAME = "polygon_updrift_or_downdrift";
931string const RASTER_POLYGON_GAIN_OR_LOSS_CODE = "polygon_gain_or_loss";
932string const RASTER_POLYGON_GAIN_OR_LOSS_NAME = "polygon_gain_or_loss";
933string const RASTER_SEDIMENT_INPUT_EVENT_CODE = "sediment_input_total";
934string const RASTER_SEDIMENT_INPUT_EVENT_NAME = "sediment_input_total";
935string const RASTER_SETUP_SURGE_FLOOD_MASK_CODE = "flood_setup_surge_mask";
936string const RASTER_SETUP_SURGE_FLOOD_MASK_NAME = "flood_setup_surge_mask";
937string const RASTER_SETUP_SURGE_RUNUP_FLOOD_MASK_CODE = "flood_setup_surge_runup_mask";
938string const RASTER_SETUP_SURGE_RUNUP_FLOOD_MASK_NAME = "flood_setup_surge_runup_mask";
939string const RASTER_WAVE_FLOOD_LINE_CODE = "raster_wave_flood_line_code";
940string const RASTER_WAVE_FLOOD_LINE_NAME = "raster_wave_flood_line_code";
941
942// GIS raster output titles
943string const RASTER_PLOT_ACTIVE_ZONE_TITLE = "Active zone";
944string const RASTER_PLOT_ACTUAL_BEACH_EROSION_TITLE = "Actual (constrained) beach erosion depth";
945string const RASTER_PLOT_ACTUAL_PLATFORM_EROSION_TITLE = "Actual (constrained) shore platform erosion depth";
946string const RASTER_PLOT_AVG_SEA_DEPTH_TITLE = "Average sea depth";
947string const RASTER_PLOT_AVG_SUSPENDED_SEDIMENT_TITLE = "Average depth of suspended sediment";
948string const RASTER_PLOT_AVG_WAVE_HEIGHT_TITLE = "Average wave height";
949string const RASTER_PLOT_AVG_WAVE_ORIENTATION_TITLE = "Average wave orientation";
950string const RASTER_PLOT_BASEMENT_ELEVATION_TITLE = "Basement elevation";
951string const RASTER_PLOT_BEACH_DEPOSITION_TITLE = "Beach deposition depth";
952string const RASTER_PLOT_BEACH_MASK_TITLE = "Beach mask";
953string const RASTER_PLOT_BEACH_PROTECTION_TITLE = "Beach protection factor";
954string const RASTER_PLOT_CLIFF_COLLAPSE_DEPOSIT_SAND_TITLE = "Depth of sand talus from cliff collapse";
955string const RASTER_PLOT_CLIFF_COLLAPSE_DEPOSIT_COARSE_TITLE = "Depth of coarse talus from cliff collapse";
956string const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_FINE_TITLE = "Cliff collapse depth of erosion, fine sediment";
957string const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_SAND_TITLE = "Cliff collapse depth of erosion, sand sediment";
958string const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_COARSE_TITLE = "Cliff collapse depth of erosion, coarse sediment";
959string const RASTER_PLOT_COARSE_CONSOLIDATED_SEDIMENT_TITLE = "Consolidated coarse sediment depth";
960string const RASTER_PLOT_COARSE_UNCONSOLIDATED_SEDIMENT_TITLE = "Unconsolidated coarse sediment depth";
961string const RASTER_PLOT_COAST_TITLE = "Rasterized coastline";
962string const RASTER_PLOT_DEEP_WATER_WAVE_HEIGHT_TITLE = "Deep water wave height";
963string const RASTER_PLOT_DEEP_WATER_WAVE_ORIENTATION_TITLE = "Deep water wave orientation";
964string const RASTER_PLOT_DEEP_WATER_WAVE_PERIOD_TITLE = "Deep water wave period";
965string const RASTER_PLOT_FINE_CONSOLIDATED_SEDIMENT_TITLE = "Consolidated fine sediment depth";
966string const RASTER_PLOT_FINE_UNCONSOLIDATED_SEDIMENT_TITLE = "Unconsolidated fine sediment depth";
967string const RASTER_PLOT_INTERVENTION_CLASS_TITLE = "Intervention class";
968string const RASTER_PLOT_INTERVENTION_HEIGHT_TITLE = "Intervention height";
969string const RASTER_PLOT_INUNDATION_MASK_TITLE = "Inundated area mask";
970string const RASTER_PLOT_LANDFORM_TITLE = "Landform class";
971string const RASTER_PLOT_LOCAL_SLOPE_OF_CONSOLIDATED_SEDIMENT_TITLE = "Local slope of consolidated sediment";
972string const RASTER_PLOT_NORMAL_TITLE = "Rasterized normals to coastline";
973string const RASTER_PLOT_OVERALL_TOP_ELEVATION_TITLE = "Elevation of sediment top plus intervention, or sea surface";
974string const RASTER_PLOT_POLYGON_GAIN_OR_LOSS_TITLE = "Polygon gain or loss of unconsolidated sediment";
975string const RASTER_PLOT_POLYGON_TITLE = "Rasterized polygon boundaries";
976string const RASTER_PLOT_POLYGON_UPDRIFT_OR_DOWNDRIFT_TITLE = "Polygon updrift or downdrift movement of unconsolidated sediment";
977string const RASTER_PLOT_POTENTIAL_BEACH_EROSION_TITLE = "Potential (unconstrained) beach erosion depth";
978string const RASTER_PLOT_POTENTIAL_PLATFORM_EROSION_TITLE = "Potential (unconstrained) shore platform erosion depth";
979string const RASTER_PLOT_SAND_CONSOLIDATED_SEDIMENT_TITLE = "Consolidated sand sediment depth";
980string const RASTER_PLOT_SAND_UNCONSOLIDATED_SEDIMENT_TITLE = "Unconsolidated sand sediment depth";
981string const RASTER_PLOT_SEA_DEPTH_TITLE = "Sea depth";
982string const RASTER_PLOT_SEDIMENT_TOP_ELEVATION_ELEV_TITLE = "Elevation of sediment top";
983string const RASTER_PLOT_SHADOW_DOWNDRIFT_ZONE_TITLE = "Downdrift of wave shadow zones";
984string const RASTER_PLOT_SHADOW_ZONE_TITLE = "Wave shadow zones";
985string const RASTER_PLOT_SLICE_TITLE = "Slice though layers at elevation = ";
986string const RASTER_PLOT_SUSPENDED_SEDIMENT_TITLE = "Suspended sediment depth";
987string const RASTER_PLOT_TOTAL_ACTUAL_BEACH_EROSION_TITLE = "Total actual (constrained) beach erosion depth";
988string const RASTER_PLOT_TOTAL_ACTUAL_PLATFORM_EROSION_TITLE = "Total actual (constrained) shore platform erosion depth";
989string const RASTER_PLOT_TOTAL_BEACH_DEPOSITION_TITLE = "Total beach deposition depth";
990string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_DEPOSIT_SAND_TITLE = "Total depth of sand talus from cliff collapse";
991string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_DEPOSIT_COARSE_TITLE = "Total depth of coarse talus from cliff collapse";
992string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_FINE_TITLE = "Total of cliff collapse erosion depth, fine";
993string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_SAND_TITLE = "Total of cliff collapse erosion depth, sand";
994string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE_TITLE = "Total of cliff collapse erosion depth, coarse";
995string const RASTER_PLOT_TOTAL_POTENTIAL_BEACH_EROSION_TITLE = "Total potential (unconstrained) beach erosion depth";
996string const RASTER_PLOT_TOTAL_POTENTIAL_PLATFORM_EROSION_TITLE = "Total potential (unconstrained) shore platform erosion depth";
997string const RASTER_PLOT_WAVE_HEIGHT_TITLE = "Wave height";
998string const RASTER_PLOT_WAVE_ORIENTATION_TITLE = "Wave orientation";
999string const RASTER_PLOT_POTENTIAL_PLATFORM_EROSION_MASK_TITLE = "Potential (unconstrained) shore platform erosion binary mask";
1000string const RASTER_PLOT_SEDIMENT_INPUT_EVENT_TITLE = "Sediment input event(s) since last GIS save";
1001string const RASTER_PLOT_SETUP_SURGE_FLOOD_MASK_TITLE = "Mask of setup-surge flood";
1002string const RASTER_PLOT_SETUP_SURGE_RUNUP_FLOOD_MASK_TITLE = "Mask of setup-surge-runup flood";
1003string const RASTER_PLOT_WAVE_FLOOD_LINE_TITLE = "Wave flood line";
1004
1005// GIS vector output user codes
1006string const VECTOR_ALL_OUTPUT_CODE = "all";
1007string const VECTOR_USUAL_OUTPUT_CODE = "usual";
1009string const VECTOR_COAST_CODE = "coast";
1010string const VECTOR_COAST_NAME = "coast";
1011string const VECTOR_NORMALS_CODE = "normals";
1012string const VECTOR_NORMALS_NAME = "normals";
1013string const VECTOR_INVALID_NORMALS_CODE = "invalid_normals";
1014string const VECTOR_INVALID_NORMALS_NAME = "invalid_normals";
1015string const VECTOR_COAST_CURVATURE_CODE = "coast_curvature";
1016string const VECTOR_COAST_CURVATURE_NAME = "coast_curvature";
1017string const VECTOR_WAVE_ANGLE_AND_HEIGHT_CODE = "wave_angle";
1018string const VECTOR_WAVE_ANGLE_AND_HEIGHT_NAME = "wave_angle";
1019string const VECTOR_AVG_WAVE_ANGLE_AND_HEIGHT_NAME = "avg_wave_angle";
1020string const VECTOR_AVG_WAVE_ANGLE_AND_HEIGHT_CODE = "avg_wave_angle";
1021string const VECTOR_WAVE_ENERGY_SINCE_COLLAPSE_CODE = "wave_energy";
1022string const VECTOR_WAVE_ENERGY_SINCE_COLLAPSE_NAME = "wave_energy";
1023string const VECTOR_MEAN_WAVE_ENERGY_CODE = "mean_wave_energy";
1024string const VECTOR_MEAN_WAVE_ENERGY_NAME = "mean_wave_energy";
1025string const VECTOR_BREAKING_WAVE_HEIGHT_CODE = "breaking_wave_height";
1026string const VECTOR_BREAKING_WAVE_HEIGHT_NAME = "breaking_wave_height";
1027string const VECTOR_POLYGON_NODE_CODE = "polygon_node";
1028string const VECTOR_POLYGON_NODE_NAME = "polygon_node";
1029string const VECTOR_POLYGON_BOUNDARY_CODE = "polygon";
1030string const VECTOR_POLYGON_BOUNDARY_NAME = "polygon";
1031string const VECTOR_CLIFF_NOTCH_SIZE_CODE = "cliff_notch";
1032string const VECTOR_CLIFF_NOTCH_SIZE_NAME = "cliff_notch";
1033string const VECTOR_SHADOW_BOUNDARY_CODE = "shadow_boundary";
1034string const VECTOR_SHADOW_BOUNDARY_NAME = "shadow_boundary";
1035string const VECTOR_DOWNDRIFT_BOUNDARY_CODE = "downdrift_boundary";
1036string const VECTOR_DOWNDRIFT_BOUNDARY_NAME = "downdrift_boundary";
1037string const VECTOR_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT_CODE = "deep_water_wave_angle";
1038string const VECTOR_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT_NAME = "deep_water_wave_angle";
1039string const VECTOR_WAVE_SETUP_CODE = "wave_setup";
1040string const VECTOR_WAVE_SETUP_NAME = "wave_setup";
1041string const VECTOR_STORM_SURGE_CODE = "storm_surge";
1042string const VECTOR_STORM_SURGE_NAME = "storm_surge";
1043string const VECTOR_RUN_UP_CODE = "run_up";
1044string const VECTOR_RUN_UP_NAME = "run_up";
1045string const VECTOR_FLOOD_LINE_CODE = "flood_line";
1046string const VECTOR_FLOOD_LINE_NAME = "flood_line";
1049string const VECTOR_FLOOD_SWL_SETUP_SURGE_LINE_CODE = "setup_surge";
1050string const VECTOR_FLOOD_SWL_SETUP_SURGE_LINE_NAME = "setup_surge";
1051string const VECTOR_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE_CODE = "setup_surge_runup";
1052string const VECTOR_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE_NAME = "setup_surge_runup";
1053
1054// GIS vector output titles
1055string const VECTOR_PLOT_AVG_WAVE_ANGLE_AND_HEIGHT_TITLE = "Average wave orientation and height";
1056string const VECTOR_PLOT_BREAKING_WAVE_HEIGHT_TITLE = "Breaking wave height";
1057string const VECTOR_PLOT_CLIFF_NOTCH_SIZE_TITLE = "Cliff notch incision";
1058string const VECTOR_PLOT_COAST_CURVATURE_TITLE = "Coastline curvature";
1059string const VECTOR_PLOT_COAST_TITLE = "Coastline";
1060string const VECTOR_PLOT_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT_TITLE = "Deep water wave orientation and height";
1061string const VECTOR_PLOT_DOWNDRIFT_BOUNDARY_TITLE = "Downdrift zone boundary";
1062string const VECTOR_PLOT_INVALID_NORMALS_TITLE = "INVALID Coastline-normal profiles";
1063string const VECTOR_PLOT_MEAN_WAVE_ENERGY_TITLE = "Mean wave energy";
1064string const VECTOR_PLOT_NORMALS_TITLE = "Coastline-normal profiles";
1065string const VECTOR_PLOT_POLYGON_BOUNDARY_TITLE = "Polygons";
1066string const VECTOR_PLOT_POLYGON_NODES_TITLE = "Polygon nodes";
1067string const VECTOR_PLOT_SHADOW_BOUNDARY_TITLE = "Shadow zone boundary";
1068string const VECTOR_PLOT_WAVE_ANGLE_AND_HEIGHT_TITLE = "Wave orientation and height";
1069string const VECTOR_PLOT_WAVE_ENERGY_SINCE_COLLAPSE_TITLE = "Wave energy since collapse";
1070string const VECTOR_PLOT_WAVE_SETUP_TITLE = "Wave setup";
1071string const VECTOR_PLOT_STORM_SURGE_TITLE = "Storm surge";
1072string const VECTOR_PLOT_RUN_UP_TITLE = "Run up";
1073string const VECTOR_PLOT_FLOOD_LINE_TITLE = "Flood ";
1074string const VECTOR_PLOT_FLOOD_SWL_SETUP_LINE_TITLE = "SWL-Setup line";
1075string const VECTOR_PLOT_FLOOD_SWL_SETUP_SURGE_LINE_TITLE = "SWL-Setup-Surge line";
1076string const VECTOR_PLOT_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE_TITLE = "SWL-Setup-Surge-Runup line";
1077
1078// Time series codes
1079string const TIME_SERIES_SEA_AREA_NAME = "sea_area";
1080string const TIME_SERIES_SEA_AREA_CODE = "sea_area";
1081
1082string const TIME_SERIES_STILL_WATER_LEVEL_NAME = "still_water_level";
1083string const TIME_SERIES_STILL_WATER_LEVEL_CODE = "water_level";
1084
1085string const TIME_SERIES_PLATFORM_EROSION_NAME = "platform_erosion";
1086string const TIME_SERIES_PLATFORM_EROSION_CODE = "platform_erosion";
1087
1088string const TIME_SERIES_CLIFF_COLLAPSE_EROSION_NAME = "cliff_collapse_erosion";
1089string const TIME_SERIES_CLIFF_COLLAPSE_EROSION_CODE = "cliff_collapse_erosion";
1090
1091string const TIME_SERIES_CLIFF_COLLAPSE_DEPOSITION_NAME = "cliff_collapse_deposition";
1092string const TIME_SERIES_CLIFF_COLLAPSE_DEPOSITION_CODE = "cliff_collapse_deposition";
1093
1094string const TIME_SERIES_CLIFF_COLLAPSE_NET_NAME = "cliff_collapse_net";
1095string const TIME_SERIES_CLIFF_COLLAPSE_NET_CODE = "cliff_collapse_net";
1096
1097string const TIME_SERIES_BEACH_EROSION_NAME = "beach_erosion";
1098string const TIME_SERIES_BEACH_EROSION_CODE = "beach_erosion";
1099
1100string const TIME_SERIES_BEACH_DEPOSITION_NAME = "beach_deposition";
1101string const TIME_SERIES_BEACH_DEPOSITION_CODE = "beach_deposition";
1102
1103string const TIME_SERIES_BEACH_CHANGE_NET_NAME = "beach_change_net";
1104string const TIME_SERIES_BEACH_CHANGE_NET_CODE = "beach_change_net";
1105
1106string const TIME_SERIES_SUSPENDED_SEDIMENT_NAME = "suspended_sediment";
1107string const TIME_SERIES_SUSPENDED_SEDIMENT_CODE = "suspended";
1108
1109string const TIME_SERIES_FLOOD_SETUP_SURGE_NAME = "flood_setup_surge";
1110string const TIME_SERIES_FLOOD_SETUP_SURGE_CODE = "flood_setup_surge";
1111
1112string const TIME_SERIES_FLOOD_SETUP_SURGE_RUNUP_NAME = "flood_setup_surge_runup";
1113string const TIME_SERIES_FLOOD_SETUP_SURGE_RUNUP_CODE = "flood_setup_surge_runup";
1114
1115// CShore stuff
1116string const WAVE_ENERGY_FLUX = "wave_energy_flux";
1117string const WAVE_HEIGHT_X_FILENAME = "wave_height_x.csv";
1118string const WAVE_HEIGHT_Y_FILENAME = "wave_height_y.csv";
1119string const ACTIVE_ZONE_FILENAME = "activezone.csv";
1120
1121//================================================ Globally-available functions =================================================
1122template <class T>
1123T tMax(T a, T b)
1124{
1125 return ((a > b) ? a : b);
1126}
1127
1128template <class T>
1129T tMax(T a, T b, T c)
1130{
1131 T max = (a < b) ? b : a;
1132 return ((max < c) ? c : max);
1133}
1134
1135template <class T>
1136T tMin(T a, T b)
1137{
1138 return ((a < b) ? a : b);
1139}
1140
1141template <class T>
1142T tMin(T a, T b, T c)
1143{
1144 return (a < b ? (a < c ? a : c) : (b < c ? b : c));
1145}
1146
1147template <class T>
1148T tAbs(T a)
1149{
1150 // From a posting dated 18 Nov 93 by rmartin@rcmcon.com (Robert Martin), archived in cpp_tips
1151 return ((a < 0) ? -a : a);
1152}
1153
1154template <class T>
1155bool bIsBetween(T a, T b, T c)
1156{
1157 // Assumes b > c
1158 return ((a >= b) && (a <= c));
1159}
1160
1161template <typename T>
1162string strDblToStr(const T &t)
1163{
1164 // From http://stackoverflow.com/questions/2125880/convert-float-to-stdstring-in-c
1165 ostringstream os;
1166 os << t;
1167 return os.str();
1168}
1169
1170/*==============================================================================================================================
1171
1172For comparison of two floating-point numbers, with a specified accuracy
1173
1174==============================================================================================================================*/
1175template <class T>
1176bool bFPIsEqual(const T d1, const T d2, const T dEpsilon)
1177{
1178 // Since the accuracy of floating-point numbers varies with their magnitude, we must compare them by using an accuracy threshold which is relative to the magnitude of the two numbers being compared. This is a blend of an example from Knuth's 'The Art of Computer Programming. Volume 1. Fundamental Algorithms' and a posting dated 18 Nov 93 by rmartin@rcmcon.com (Robert Martin), archived in cpp_tips
1179
1180#pragma GCC diagnostic push
1181#pragma GCC diagnostic ignored "-Wfloat-equal"
1182 if ((0 == d1) && (tAbs(d2) < dEpsilon))
1183 return true;
1184
1185 else if ((0 == d2) && (tAbs(d1) < dEpsilon))
1186 return true;
1187
1188 else
1189 return ((tAbs(d1 - d2) < (dEpsilon * tAbs(d1))) ? true : false);
1190#pragma GCC diagnostic pop
1191}
1192
1193#ifndef DOXYGEN_SHOULD_SKIP_THIS
1194// Definitions are in utilsglobal.cpp
1195double dRound(double const);
1196int nRound(double const);
1197// bool bIsWhole(double const);
1198bool bIsStringValidDouble(string &);
1199bool bIsStringValidInt(string &);
1200
1201struct FillToWidth
1202{
1203 FillToWidth(char f, int w) : chFill(f), nWidth(w)
1204 {
1205 }
1206 char chFill;
1207 int nWidth;
1208};
1209ostream &operator<<(ostream&, const FillToWidth&);
1210
1211string strDbl(double const, int const);
1212string strDblRight(double const, int const, int const, bool const = true);
1213string strIntRight(int const, int const);
1214string strCentre(const char*, int const);
1215string strCentre(const string&, int const);
1216string strRight(const string&, int const);
1217string strRight(const char*, int const);
1218string strLeft(const string&, int const);
1219string strLeft(const char*, int const);
1220string strRightPerCent(double const, double const, int const, int const, bool const = true);
1221#endif
1222
1223//================================================= debugging stuff =============================================================
1224//#define CLOCKCHECK // Uncomment to check CPU clock rollover settings
1225
1226#endif // CME_H
int const LF_SUBCAT_DRIFT_BEACH
Definition cme.h:440
int const NO_NONZERO_THICKNESS_LAYERS
Definition cme.h:652
int const INT_NODATA
Definition cme.h:362
int const RASTER_PLOT_POLYGON
Definition cme.h:521
string const VECTOR_FLOOD_SWL_SETUP_SURGE_LINE_CODE
Definition cme.h:1049
string const TIME_SERIES_CLIFF_COLLAPSE_DEPOSITION_CODE
Definition cme.h:1092
string const READING_UNCONS_SAND_SEDIMENT_FILE
Definition cme.h:744
string const TIME_SERIES_SUSPENDED_SEDIMENT_CODE
Definition cme.h:1107
string const RASTER_PLOT_POLYGON_UPDRIFT_OR_DOWNDRIFT_TITLE
Definition cme.h:976
char const SLASH
Definition cme.h:340
string const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_COARSE_TITLE
Definition cme.h:958
string const VECTOR_PLOT_BREAKING_WAVE_HEIGHT_TITLE
Definition cme.h:1056
string const RASTER_POTENTIAL_PLATFORM_EROSION_MASK_CODE
Definition cme.h:845
int const MAX_LEN_SHADOW_LINE_TO_IGNORE
Definition cme.h:364
string const RASTER_SEA_DEPTH_NAME
Definition cme.h:826
int const SMOOTH_NONE
Definition cme.h:655
T tMin(T a, T b)
Definition cme.h:1136
string const USAGE3
Definition cme.h:729
int const WAVE_MODEL_COVE
Definition cme.h:665
int const RTN_ERR_READING_SEDIMENT_INPUT_EVENT
Definition cme.h:641
string const RASTER_PLOT_WAVE_FLOOD_LINE_TITLE
Definition cme.h:1003
int const RTN_ERR_CLIFFNOTCH
Definition cme.h:614
string const VECTOR_PLOT_INVALID_NORMALS_TITLE
Definition cme.h:1062
string const VECTOR_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE_NAME
Definition cme.h:1052
double const TOLERANCE
Definition cme.h:698
string const VECTOR_PLOT_NORMALS_TITLE
Definition cme.h:1064
string const RASTER_CLIFF_COLLAPSE_EROSION_FINE_CODE
Definition cme.h:895
bool const USE_DEEP_WATER_FOR_SHADOW_LINE
Definition cme.h:348
string const TIME_SERIES_PLATFORM_EROSION_CODE
Definition cme.h:1086
int const VECTOR_PLOT_STORM_SURGE
Definition cme.h:569
string const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_SAND_TITLE
Definition cme.h:957
int const RTN_ERR_NO_TOP_LAYER
Definition cme.h:623
string const DISCLAIMER4
Definition cme.h:718
string const RASTER_PLOT_COAST_TITLE
Definition cme.h:961
string const RASTER_SHADOW_DOWNDRIFT_ZONE_NAME
Definition cme.h:922
string const RASTER_POTENTIAL_BEACH_EROSION_NAME
Definition cme.h:856
string const RASTER_PLOT_POLYGON_TITLE
Definition cme.h:975
string const ACTIVE_ZONE_FILENAME
Definition cme.h:1119
string const RASTER_COARSE_CONS_CODE
Definition cme.h:887
string const RASTER_BEACH_MASK_NAME
Definition cme.h:842
string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_SAND_NAME
Definition cme.h:912
string const WAVE_HEIGHT_Y_FILENAME
Definition cme.h:1118
string const VECTOR_POLYGON_NODE_CODE
Definition cme.h:1027
string const RASTER_USUAL_OUTPUT_CODE
Definition cme.h:815
string const RASTER_DEEP_WATER_WAVE_ORIENTATION_CODE
Definition cme.h:923
int const VECTOR_PLOT_BREAKING_WAVE_HEIGHT
Definition cme.h:554
int const VECTOR_PLOT_POLYGON_NODES
Definition cme.h:564
int const SAVGOL_POLYNOMIAL_MAX_ORDER
Definition cme.h:372
int const RTN_ERR_GRIDTOLINE
Definition cme.h:609
string const RASTER_POLYGON_UPDRIFT_OR_DOWNDRIFT_NAME
Definition cme.h:930
string const RASTER_DEEP_WATER_WAVE_HEIGHT_CODE
Definition cme.h:925
int const RTN_ERR_TIMEUNITS
Definition cme.h:613
int const RASTER_PLOT_LOCAL_SLOPE_OF_CONSOLIDATED_SEDIMENT
Definition cme.h:518
string const COPYRIGHT
Definition cme.h:713
int const RASTER_PLOT_TOTAL_ACTUAL_BEACH_EROSION
Definition cme.h:534
string const USAGE1
Definition cme.h:727
int const RTN_ERR_NO_SEAWARD_END_OF_PROFILE_2
Definition cme.h:619
string const TIME_SERIES_FLOOD_SETUP_SURGE_RUNUP_CODE
Definition cme.h:1113
string const VECTOR_ALL_OUTPUT_CODE
Definition cme.h:1006
string const VECTOR_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE_CODE
Definition cme.h:1051
string const READING_VECTOR_FILES
Definition cme.h:749
string const RASTER_PLOT_BEACH_DEPOSITION_TITLE
Definition cme.h:951
int const RASTER_PLOT_BEACH_DEPOSITION
Definition cme.h:498
int const FLOOD_LOCATION_POINT_GEOMETRY
Definition cme.h:484
string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_SAND_CODE
Definition cme.h:911
int const RASTER_PLOT_SUSPENDED_SEDIMENT
Definition cme.h:533
int const LF_CAT_SEA
Definition cme.h:422
string const RASTER_FINE_CONS_NAME
Definition cme.h:884
int const VECTOR_PLOT_NORMALS
Definition cme.h:562
int const MIN_INLAND_OFFSET_FOR_BEACH_EROSION_ESTIMATION
Definition cme.h:368
int const LF_SUBCAT_CLIFF_ON_COASTLINE
Definition cme.h:434
string const VECTOR_WAVE_ANGLE_AND_HEIGHT_NAME
Definition cme.h:1018
string const RASTER_PLOT_DEEP_WATER_WAVE_ORIENTATION_TITLE
Definition cme.h:963
string const READING_CONS_FINE_SEDIMENT_FILE
Definition cme.h:746
string const VECTOR_PLOT_CLIFF_NOTCH_SIZE_TITLE
Definition cme.h:1057
string const CSHORE_DIR
Definition cme.h:772
string const RASTER_PLOT_FINE_CONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:965
string const RASTER_SLICE_NAME
Definition cme.h:918
int const RTN_ERR_NOCOAST
Definition cme.h:611
int const RTN_ERR_DEMFILE
Definition cme.h:590
string const READING_BASEMENT
Definition cme.h:737
int const RASTER_PLOT_FINE_UNCONSOLIDATED_SEDIMENT
Definition cme.h:513
int const ELEV_ABOVE_SEDIMENT_TOP
Definition cme.h:651
string const RASTER_TOP_NAME
Definition cme.h:820
string const VECTOR_PLOT_FLOOD_SWL_SETUP_SURGE_RUNUP_LINE_TITLE
Definition cme.h:1076
int const SEDIMENT_INPUT_EVENT_LOCATION_MAX_LAYER
Definition cme.h:482
string const RASTER_ACTIVE_ZONE_CODE
Definition cme.h:893
string const PERFORMHEAD
Definition cme.h:800
int const NO_LOG_FILE
Definition cme.h:375
int const RTN_HELP_ONLY
Definition cme.h:578
string const RASTER_CLIFF_COLLAPSE_EROSION_COARSE_CODE
Definition cme.h:899
string const RASTER_BEACH_DEPOSITION_NAME
Definition cme.h:864
int const RTN_ERR_COAST_CANT_FIND_EDGE_CELL
Definition cme.h:635
string const RASTER_PLOT_AVG_SEA_DEPTH_TITLE
Definition cme.h:946
string const VECTOR_POLYGON_BOUNDARY_NAME
Definition cme.h:1030
int const RTN_ERR_CSHORE_FILE_INPUT
Definition cme.h:631
int const LF_CAT_SEDIMENT_INPUT
Definition cme.h:424
string const VECTOR_PLOT_DOWNDRIFT_BOUNDARY_TITLE
Definition cme.h:1061
int const SAND_CONS_RASTER
Definition cme.h:454
string const RASTER_SAND_CONS_CODE
Definition cme.h:885
string const PER_ITER_HEAD
Definition cme.h:794
string const TIME_SERIES_FLOOD_SETUP_SURGE_CODE
Definition cme.h:1110
string const RASTER_BEACH_PROTECTION_NAME
Definition cme.h:844
bool bIsBetween(T a, T b, T c)
Definition cme.h:1155
int const RTN_ERR_MEMALLOC
Definition cme.h:593
string const DISCLAIMER5
Definition cme.h:719
int const SEDIMENT_INPUT_EVENT_LOCATION_VEC
Definition cme.h:481
string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_DEPOSIT_COARSE_TITLE
Definition cme.h:991
int const RTN_ERR_SCAPE_SHAPE_FUNCTION_FILE
Definition cme.h:585
int const RTN_CHECK_ONLY
Definition cme.h:579
int const UNCONS_SEDIMENT_EQUATION_KAMPHUIS
Definition cme.h:670
string const ERR
Definition cme.h:775
string const RASTER_PLOT_BEACH_MASK_TITLE
Definition cme.h:952
int const DIRECTION_DOWNCOAST
Definition cme.h:392
int const LF_SUBCAT_SEDIMENT_INPUT_CONSOLIDATED
Definition cme.h:450
int const RASTER_PLOT_INUNDATION_MASK
Definition cme.h:516
int const RTN_ERR_WAVESTATION_LOCATION
Definition cme.h:644
string const RASTER_PLOT_AVG_WAVE_ORIENTATION_TITLE
Definition cme.h:949
string const RASTER_PLOT_SETUP_SURGE_FLOOD_MASK_TITLE
Definition cme.h:1001
int const RASTER_PLOT_SEDIMENT_TOP_ELEVATION_ELEV
Definition cme.h:529
string const RASTER_SAND_UNCONS_NAME
Definition cme.h:880
string const RASTER_PLOT_ACTUAL_BEACH_EROSION_TITLE
Definition cme.h:944
string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_FINE_TITLE
Definition cme.h:992
int const LF_CAT_SEDIMENT_INPUT_SUBMERGED
Definition cme.h:425
int const RASTER_PLOT_ACTUAL_BEACH_EROSION
Definition cme.h:491
int const RTN_ERR_LOGFILE
Definition cme.h:587
string const RASTER_COAST_NORMAL_CODE
Definition cme.h:891
string const RASTER_PLOT_POLYGON_GAIN_OR_LOSS_TITLE
Definition cme.h:974
bool const CREATE_SHADOW_ZONE_IF_HITS_GRID_EDGE
Definition cme.h:346
string const VECTOR_PLOT_MEAN_WAVE_ENERGY_TITLE
Definition cme.h:1063
string const SCAPE_DIR
Definition cme.h:768
string const RASTER_INUNDATION_MASK_NAME
Definition cme.h:830
string const LOGEXT
Definition cme.h:804
string const PRESS_KEY
Definition cme.h:763
string const RASTER_PLOT_DEEP_WATER_WAVE_HEIGHT_TITLE
Definition cme.h:962
string const RASTER_AVG_SUSP_SED_CODE
Definition cme.h:875
string const RASTER_PLOT_WAVE_ORIENTATION_TITLE
Definition cme.h:998
string const RASTER_PLOT_BASEMENT_ELEVATION_TITLE
Definition cme.h:950
string const TIME_SERIES_STILL_WATER_LEVEL_NAME
Definition cme.h:1082
int const MAX_SEAWARD_OFFSET_FOR_CLIFF_TALUS
Definition cme.h:367
string const VECTOR_BREAKING_WAVE_HEIGHT_NAME
Definition cme.h:1026
string const RASTER_PLOT_INTERVENTION_CLASS_TITLE
Definition cme.h:967
string const RASTER_COAST_CODE
Definition cme.h:889
string const RASTER_PLOT_COARSE_UNCONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:960
int const RTN_ERR_SHADOW_ZONE_FLOOD_START_POINT
Definition cme.h:629
string const RASTER_SEDIMENT_INPUT_EVENT_CODE
Definition cme.h:933
string const VECTOR_WAVE_ENERGY_SINCE_COLLAPSE_CODE
Definition cme.h:1021
string const USAGE4
Definition cme.h:730
string const RASTER_WAVE_ORIENTATION_CODE
Definition cme.h:835
int const RTN_ERR_EDGE_OF_GRID
Definition cme.h:617
int const LOG_FILE_LOW_DETAIL
Definition cme.h:376
string const VECTOR_RUN_UP_CODE
Definition cme.h:1043
string const ABOUT
Definition cme.h:722
string const VECTOR_PLOT_POLYGON_NODES_TITLE
Definition cme.h:1066
string const VECTOR_PLOT_RUN_UP_TITLE
Definition cme.h:1072
string const RASTER_WAVE_PERIOD_NAME
Definition cme.h:838
string const READING_CONS_SAND_SEDIMENT_FILE
Definition cme.h:747
int const RASTER_PLOT_POTENTIAL_PLATFORM_EROSION_MASK
Definition cme.h:546
string const RASTER_PLOT_AVG_WAVE_HEIGHT_TITLE
Definition cme.h:948
string const RASTER_PLOT_TOTAL_POTENTIAL_PLATFORM_EROSION_TITLE
Definition cme.h:996
int const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_DEPOSIT_COARSE
Definition cme.h:541
int const RTN_ERR_GRIDCREATE
Definition cme.h:634
int const RTN_ERR_RASTER_GIS_OUT_FORMAT
Definition cme.h:594
double const CSHORE_FRICTION_FACTOR
Definition cme.h:695
string const TIME_SERIES_BEACH_EROSION_NAME
Definition cme.h:1097
int const RTN_ERR_LANDFORM_TO_GRID
Definition cme.h:622
string const RASTER_ALL_OUTPUT_CODE
Definition cme.h:816
string const RASTER_CLIFF_COLLAPSE_EROSION_SAND_CODE
Definition cme.h:897
int const RASTER_PLOT_SAND_CONSOLIDATED_SEDIMENT
Definition cme.h:526
string const VECTOR_PLOT_FLOOD_LINE_TITLE
Definition cme.h:1073
int const RASTER_PLOT_AVG_WAVE_HEIGHT
Definition cme.h:495
string const VECTOR_FLOOD_SWL_SETUP_LINE_NAME
Definition cme.h:1048
int const RTN_ERR_RASTER_FILE_WRITE
Definition cme.h:597
string const RASTER_CLIFF_COLLAPSE_EROSION_SAND_NAME
Definition cme.h:898
string const RASTER_POLYGON_UPDRIFT_OR_DOWNDRIFT_CODE
Definition cme.h:929
int const MAX_NUM_PREV_ORIENTATION_VALUES
Definition cme.h:365
string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_DEPOSIT_SAND_TITLE
Definition cme.h:990
string const PER_ITER_HEAD4
Definition cme.h:789
string const RASTER_SEDIMENT_TOP_NAME
Definition cme.h:818
string const RASTER_WAVE_FLOOD_LINE_CODE
Definition cme.h:939
string const RASTER_FINE_UNCONS_NAME
Definition cme.h:878
string const INITIALIZING_NOTICE
Definition cme.h:734
string const RASTER_COAST_NAME
Definition cme.h:890
int const LF_CAT_DRIFT
Definition cme.h:430
int const SOUTH_EAST
Definition cme.h:386
int const IO_INTERVENTION_STRUCT
Definition cme.h:414
double const DEPTH_OVER_DB_INCREMENT
Definition cme.h:690
int const WAVE_MODEL_CSHORE
Definition cme.h:666
string const RASTER_COARSE_UNCONS_CODE
Definition cme.h:881
int const RASTER_PLOT_FINE_CONSOLIDATED_SEDIMENT
Definition cme.h:512
int const RTN_ERR_BADPARAM
Definition cme.h:581
string const RASTER_CLIFF_COLLAPSE_EROSION_FINE_NAME
Definition cme.h:896
string const OUTEXT
Definition cme.h:803
string const READING_RASTER_FILES
Definition cme.h:738
int const TEXTURE_COARSE
Definition cme.h:403
string const USAGE2
Definition cme.h:728
char const PATH_SEPARATOR
Definition cme.h:337
int const RTN_ERR_SHADOW_ZONE_FLOOD_FILL_NOGRID
Definition cme.h:628
int const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_DEPOSIT_SAND
Definition cme.h:540
int const VECTOR_PLOT_DOWNDRIFT_BOUNDARY
Definition cme.h:559
string const VECTOR_INVALID_NORMALS_CODE
Definition cme.h:1013
string const RASTER_SEDIMENT_INPUT_EVENT_NAME
Definition cme.h:934
string const RASTER_BASEMENT_ELEVATION_CODE
Definition cme.h:821
string const RASTER_CLIFF_COLLAPSE_DEPOSITION_SAND_NAME
Definition cme.h:908
int const RASTER_PLOT_ACTIVE_ZONE
Definition cme.h:490
int const RTN_ERR_PROFILEWRITE
Definition cme.h:612
string const RASTER_WAVE_HEIGHT_CODE
Definition cme.h:831
string const RASTER_CLIFF_COLLAPSE_DEPOSITION_COARSE_CODE
Definition cme.h:909
string const RASTER_SHADOW_DOWNDRIFT_ZONE_CODE
Definition cme.h:921
string const PER_ITER_HEAD2
Definition cme.h:784
char const COMMA
Definition cme.h:335
string const RASTER_INTERVENTION_CLASS_CODE
Definition cme.h:869
int const VECTOR_PLOT_COAST_CURVATURE
Definition cme.h:557
int const CAPE_POINT_MIN_SPACING
Definition cme.h:352
string const RASTER_ACTIVE_ZONE_NAME
Definition cme.h:894
string const EMAIL_ERROR
Definition cme.h:766
string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_SAND_TITLE
Definition cme.h:993
int const LOG_FILE_MIDDLE_DETAIL
Definition cme.h:377
string const VECTOR_PLOT_WAVE_SETUP_TITLE
Definition cme.h:1070
string const TIME_SERIES_FLOOD_SETUP_SURGE_RUNUP_NAME
Definition cme.h:1112
string const RASTER_INTERVENTION_HEIGHT_NAME
Definition cme.h:872
string const RASTER_POTENTIAL_PLATFORM_EROSION_CODE
Definition cme.h:847
string const RASTER_PLOT_LANDFORM_TITLE
Definition cme.h:970
int const RTN_ERR_WAVE_INTERPOLATION_LOOKUP
Definition cme.h:633
int const IO_INTERVENTION_NONE
Definition cme.h:413
string const VECTOR_COAST_NAME
Definition cme.h:1010
string const RASTER_POTENTIAL_BEACH_EROSION_CODE
Definition cme.h:855
string const READING_CONS_COARSE_SEDIMENT_FILE
Definition cme.h:748
int const LF_SUBCAT_SEDIMENT_INPUT_UNCONSOLIDATED
Definition cme.h:449
string const VECTOR_SHADOW_BOUNDARY_NAME
Definition cme.h:1034
string const READING_TIDE_DATA_FILE
Definition cme.h:754
string const RASTER_SHADOW_ZONE_NAME
Definition cme.h:920
int const RASTER_PLOT_DEEP_WATER_WAVE_PERIOD
Definition cme.h:511
int const RTN_ERR_RASTER_FILE_READ
Definition cme.h:591
string const RASTER_COARSE_CONS_NAME
Definition cme.h:888
string const VECTOR_MEAN_WAVE_ENERGY_CODE
Definition cme.h:1023
string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_SAND_NAME
Definition cme.h:904
string const VECTOR_STORM_SURGE_CODE
Definition cme.h:1041
int const TIME_UNKNOWN
Definition cme.h:406
string const RASTER_PLOT_WAVE_HEIGHT_TITLE
Definition cme.h:997
double const D50_SAND_DEFAULT
Definition cme.h:683
int const RASTER_PLOT_CLIFF_COLLAPSE_DEPOSIT_SAND
Definition cme.h:504
double const PI
Definition cme.h:680
int const RASTER_PLOT_COAST
Definition cme.h:508
string const RASTER_ACTUAL_BEACH_EROSION_NAME
Definition cme.h:858
string const VECTOR_PLOT_AVG_WAVE_ANGLE_AND_HEIGHT_TITLE
Definition cme.h:1055
string const RASTER_PLOT_TOTAL_POTENTIAL_BEACH_EROSION_TITLE
Definition cme.h:995
string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE_CODE
Definition cme.h:905
string const READING_SCAPE_SHAPE_FUNCTION_FILE
Definition cme.h:753
int const RTN_ERR_CSHORE_ERROR
Definition cme.h:636
int const NULL_HANDED
Definition cme.h:396
string const RASTER_SETUP_SURGE_RUNUP_FLOOD_MASK_NAME
Definition cme.h:938
string const TIME_SERIES_BEACH_DEPOSITION_NAME
Definition cme.h:1100
string const READING_INTERVENTION_CLASS_FILE
Definition cme.h:740
string const VECTOR_PLOT_COAST_CURVATURE_TITLE
Definition cme.h:1058
string const RASTER_PLOT_POTENTIAL_BEACH_EROSION_TITLE
Definition cme.h:977
bool bFPIsEqual(const T d1, const T d2, const T dEpsilon)
Definition cme.h:1176
int const VECTOR_PLOT_RUN_UP
Definition cme.h:570
int const VEC_FIELD_DATA_INT
Definition cme.h:466
string const RASTER_AVG_WAVE_ORIENTATION_NAME
Definition cme.h:840
string const RASTER_TOTAL_BEACH_DEPOSITION_NAME
Definition cme.h:866
string const DISCLAIMER3
Definition cme.h:717
string const VECTOR_USUAL_OUTPUT_CODE
Definition cme.h:1007
int const RASTER_PLOT_POLYGON_UPDRIFT_OR_DOWNDRIFT
Definition cme.h:523
int const RTN_ERR_PROFILESPACING
Definition cme.h:601
string const READING_UNCONS_COARSE_SEDIMENT_FILE
Definition cme.h:745
int const VECTOR_PLOT_INVALID_NORMALS
Definition cme.h:560
double const WALKDEN_HALL_PARAM_2
Definition cme.h:688
int const MAX_NUM_SHADOW_ZONES
Definition cme.h:366
int const VEC_FIELD_DATA_ANY
Definition cme.h:465
char const QUOTE1
Definition cme.h:338
string const RASTER_DEEP_WATER_WAVE_PERIOD_NAME
Definition cme.h:928
string const RASTER_PLOT_SETUP_SURGE_RUNUP_FLOOD_MASK_TITLE
Definition cme.h:1002
string const ENDHYDROLOGYHEAD
Definition cme.h:796
string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_COARSE_NAME
Definition cme.h:914
int const RASTER_PLOT_POLYGON_GAIN_OR_LOSS
Definition cme.h:522
string const RASTER_PLOT_SAND_CONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:979
string const RASTER_WAVE_PERIOD_CODE
Definition cme.h:837
string const FLOOD_LOCATION_ID
Definition cme.h:812
double const STRAIGHT_COAST_MAX_DETAILED_CURVATURE
Definition cme.h:701
int const TIME_HOURS
Definition cme.h:407
string const VECTOR_STORM_SURGE_NAME
Definition cme.h:1042
int const RASTER_PLOT_DEEP_WATER_WAVE_ORIENTATION
Definition cme.h:510
string const READING_DEEP_WATER_WAVE_FILE
Definition cme.h:750
int const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE
Definition cme.h:539
string const CSVEXT
Definition cme.h:805
int const GRID_EDGE_CLOSED
Definition cme.h:660
int const RTN_ERR_BOUNDING_BOX
Definition cme.h:640
string const TIME_SERIES_CLIFF_COLLAPSE_NET_CODE
Definition cme.h:1095
int const GRID_EDGE_RECIRCULATE
Definition cme.h:662
int const RTN_ERR_OPEN_DEEP_WATER_WAVE_DATA
Definition cme.h:638
string const RASTER_PLOT_ACTUAL_PLATFORM_EROSION_TITLE
Definition cme.h:945
int const RASTER_PLOT_COARSE_UNCONSOLIDATED_SEDIMENT
Definition cme.h:507
int const FLOOD_LOCATION_VEC
Definition cme.h:486
int const DEEP_WATER_WAVE_STATIONS_VEC
Definition cme.h:478
int const RTN_ERR_RUNDATA
Definition cme.h:584
string const RASTER_PLOT_CLIFF_COLLAPSE_DEPOSIT_COARSE_TITLE
Definition cme.h:955
int const RASTER_PLOT_AVG_WAVE_ORIENTATION
Definition cme.h:496
string const RASTER_PLOT_TOTAL_BEACH_DEPOSITION_TITLE
Definition cme.h:989
int const RTN_ERR_SEDIMENT_INPUT_EVENT_LOCATION
Definition cme.h:643
string const RASTER_TOTAL_ACTUAL_BEACH_EROSION_CODE
Definition cme.h:861
string const INITIALIZING
Definition cme.h:757
string const VECTOR_NORMALS_CODE
Definition cme.h:1011
string const RASTER_SLICE_CODE
Definition cme.h:917
int const CLOCK_CHECK_ITERATION
Definition cme.h:353
string const RASTER_BEACH_DEPOSITION_CODE
Definition cme.h:863
string const FINAL_OUTPUT
Definition cme.h:760
string const RASTER_SHADOW_ZONE_CODE
Definition cme.h:919
int const RASTER_PLOT_WAVE_ORIENTATION
Definition cme.h:545
string const DEEP_WATER_WAVE_STATION_ID
Definition cme.h:807
string const RASTER_SUSP_SED_NAME
Definition cme.h:874
int const SOUTH_WEST
Definition cme.h:388
string const RASTER_TOTAL_BEACH_DEPOSITION_CODE
Definition cme.h:865
double const MASS_BALANCE_TOLERANCE
Definition cme.h:700
string const VECTOR_AVG_WAVE_ANGLE_AND_HEIGHT_NAME
Definition cme.h:1019
string const ENDSEDIMENTHEAD
Definition cme.h:798
string const RASTER_LOCAL_SLOPE_NAME
Definition cme.h:824
int const RASTER_PLOT_BEACH_MASK
Definition cme.h:499
string const USAGE
Definition cme.h:726
string const RASTER_AVG_SEA_DEPTH_NAME
Definition cme.h:828
int const RASTER_PLOT_WAVE_FLOOD_LINE
Definition cme.h:550
int const RTN_ERR_FLOOD_LOCATION
Definition cme.h:645
T tMax(T a, T b)
Definition cme.h:1123
int const RASTER_PLOT_SEDIMENT_INPUT
Definition cme.h:547
int const RASTER_PLOT_POTENTIAL_BEACH_EROSION
Definition cme.h:524
string const VECTOR_FLOOD_SWL_SETUP_SURGE_LINE_NAME
Definition cme.h:1050
double const CLIFF_COLLAPSE_HEIGHT_INCREMENT
Definition cme.h:705
string const VECTOR_RUN_UP_NAME
Definition cme.h:1044
int const RTN_ERR_NO_SEAWARD_END_OF_PROFILE_1
Definition cme.h:618
int const NORTH_WEST
Definition cme.h:390
string const SIMULATING
Definition cme.h:759
string const TIME_SERIES_BEACH_CHANGE_NET_NAME
Definition cme.h:1103
int const RTN_ERR_PROFILE_END_INSUFFICIENT_DEPTH
Definition cme.h:605
int const MAX_CLIFF_TALUS_LENGTH
Definition cme.h:363
int const RTN_ERR_NO_ADJACENT_POLYGON
Definition cme.h:624
string const RASTER_PLOT_SEDIMENT_TOP_ELEVATION_ELEV_TITLE
Definition cme.h:982
string const USAGE5
Definition cme.h:731
string const DISCLAIMER1
Definition cme.h:715
int const RASTER_PLOT_AVG_SUSPENDED_SEDIMENT
Definition cme.h:494
string const RASTER_AVG_WAVE_HEIGHT_NAME
Definition cme.h:834
int const LOG_FILE_HIGH_DETAIL
Definition cme.h:378
int const VECTOR_PLOT_COAST
Definition cme.h:556
int const VECTOR_PLOT_FLOOD_LINE
Definition cme.h:571
string const VECTOR_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT_CODE
Definition cme.h:1037
int const LF_SUBCAT_INTERVENTION_NON_STRUCT
Definition cme.h:446
double const D50_COARSE_DEFAULT
Definition cme.h:684
string const RASTER_PLOT_BEACH_PROTECTION_TITLE
Definition cme.h:953
int const RASTER_PLOT_TOTAL_POTENTIAL_PLATFORM_EROSION
Definition cme.h:543
int const RTN_ERR_TSFILE
Definition cme.h:589
string const RASTER_PLOT_POTENTIAL_PLATFORM_EROSION_MASK_TITLE
Definition cme.h:999
string const READING_LANDFORM_FILE
Definition cme.h:739
int const LF_SUBCAT_DRIFT_TALUS
Definition cme.h:439
string const VECTOR_FLOOD_LINE_NAME
Definition cme.h:1046
string const RASTER_WAVE_FLOOD_LINE_NAME
Definition cme.h:940
double const INVERSE_DEPTH_OVER_DB_INCREMENT
Definition cme.h:691
int const LF_SUBCAT_CLIFF_INLAND
Definition cme.h:435
int const RTN_ERR_READING_CSHORE_FILE_OUTPUT
Definition cme.h:632
string const RUN_NOTICE
Definition cme.h:758
string const RASTER_BEACH_PROTECTION_CODE
Definition cme.h:843
string const RASTER_TOTAL_POTENTIAL_PLATFORM_EROSION_CODE
Definition cme.h:851
string const RASTER_POTENTIAL_PLATFORM_EROSION_NAME
Definition cme.h:848
double const CSHORE_SURGE_LEVEL
Definition cme.h:696
int const INTERVENTION_CLASS_RASTER
Definition cme.h:461
string const RASTER_ACTUAL_PLATFORM_EROSION_NAME
Definition cme.h:850
string const VECTOR_CLIFF_NOTCH_SIZE_NAME
Definition cme.h:1032
int const RTN_ERR_CLIFF_NOT_IN_POLYGON
Definition cme.h:646
unsigned long const MASK
Definition cme.h:677
int const PROFILE_CHECK_DIST_FROM_COAST
Definition cme.h:675
int const TIME_MONTHS
Definition cme.h:409
string const VECTOR_PLOT_COAST_TITLE
Definition cme.h:1059
int const DEEP_WATER_WAVE_STATIONS_POINT_GEOMETRY
Definition cme.h:480
int const VEC_FIELD_DATA_OTHER
Definition cme.h:469
string const TIME_SERIES_CLIFF_COLLAPSE_EROSION_CODE
Definition cme.h:1089
int const VECTOR_PLOT_CLIFF_NOTCH_SIZE
Definition cme.h:555
string const RASTER_COARSE_UNCONS_NAME
Definition cme.h:882
string const PROGRAM_NAME
Definition cme.h:709
int const RASTER_PLOT_INTERVENTION_CLASS
Definition cme.h:514
int const RTN_ERR_VECTOR_FILE_READ
Definition cme.h:592
string const RASTER_BEACH_MASK_CODE
Definition cme.h:841
string const VECTOR_WAVE_ENERGY_SINCE_COLLAPSE_NAME
Definition cme.h:1022
int const RTN_ERR_NOSEACELLS
Definition cme.h:608
int const RTN_ERR_VECTOR_GIS_OUT_FORMAT
Definition cme.h:595
string const VECTOR_PLOT_FLOOD_SWL_SETUP_LINE_TITLE
Definition cme.h:1074
string const RASTER_AVG_WAVE_HEIGHT_CODE
Definition cme.h:833
double const MIN_LENGTH_OF_SHADOW_ZONE_LINE
Definition cme.h:703
int const VEC_GEOMETRY_POLYGON
Definition cme.h:474
int const VECTOR_PLOT_WAVE_ENERGY_SINCE_COLLAPSE
Definition cme.h:567
string const READING_INTERVENTION_HEIGHT_FILE
Definition cme.h:741
string const TIME_SERIES_FLOOD_SETUP_SURGE_NAME
Definition cme.h:1109
int const RTN_USER_ABORT
Definition cme.h:580
string const RASTER_SETUP_SURGE_FLOOD_MASK_CODE
Definition cme.h:935
string const TIME_SERIES_BEACH_EROSION_CODE
Definition cme.h:1098
string const WARN
Definition cme.h:776
int const RASTER_PLOT_BEACH_PROTECTION
Definition cme.h:500
int const TEXTURE_FINE
Definition cme.h:401
int const RASTER_PLOT_AVG_SEA_DEPTH
Definition cme.h:493
int const VECTOR_PLOT_WAVE_ANGLE_AND_HEIGHT
Definition cme.h:566
string const RASTER_PLOT_NORMAL_TITLE
Definition cme.h:972
string const RASTER_TOTAL_POTENTIAL_BEACH_EROSION_CODE
Definition cme.h:859
int const SMOOTH_SAVITZKY_GOLAY
Definition cme.h:657
double const STRAIGHT_COAST_MAX_SMOOTH_CURVATURE
Definition cme.h:702
int const COAST_LENGTH_MIN_X_PROF_SPACE
Definition cme.h:355
string const VECTOR_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT_NAME
Definition cme.h:1038
string const PER_ITER_HEAD3
Definition cme.h:787
int const RTN_ERR_CMEDIR
Definition cme.h:583
int const SEDIMENT_INPUT_EVENT_LOCATION_LINE_GEOMETRY
Definition cme.h:485
double const SEDIMENT_ELEV_TOLERANCE
Definition cme.h:699
int const RASTER_PLOT_CLIFF_COLLAPSE_DEPOSIT_COARSE
Definition cme.h:505
int const RASTER_PLOT_OVERALL_TOP_ELEVATION
Definition cme.h:520
string const RASTER_PLOT_SHADOW_ZONE_TITLE
Definition cme.h:984
string const RASTER_AVG_SEA_DEPTH_CODE
Definition cme.h:827
int const RASTER_PLOT_TOTAL_BEACH_DEPOSITION
Definition cme.h:536
string const RASTER_SETUP_SURGE_FLOOD_MASK_NAME
Definition cme.h:936
string const VECTOR_PLOT_SHADOW_BOUNDARY_TITLE
Definition cme.h:1067
int const GRID_MARGIN
Definition cme.h:361
int const RTN_ERR_NO_PROFILES_2
Definition cme.h:607
int const CLIFF_COLLAPSE_LENGTH_INCREMENT
Definition cme.h:672
string const RASTER_INTERVENTION_CLASS_NAME
Definition cme.h:870
int const FLOOD_FILL_START_OFFSET
Definition cme.h:360
int const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_FINE
Definition cme.h:537
int const PROFILE_CHECK_ALONG_COAST_MULTIPLIER
Definition cme.h:674
string const RASTER_WAVE_ORIENTATION_NAME
Definition cme.h:836
int const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_SAND
Definition cme.h:538
string const SEDIMENT_INPUT_EVENT_LOCATION_ID
Definition cme.h:811
int const SMOOTH_RUNNING_MEAN
Definition cme.h:656
int const RTN_ERR_PROFILE_ENDPOINT_IS_INLAND
Definition cme.h:603
string const RASTER_DEEP_WATER_WAVE_ORIENTATION_NAME
Definition cme.h:924
int const RTN_ERR_NO_SEAWARD_END_OF_PROFILE_4
Definition cme.h:621
string const RASTER_SAND_UNCONS_CODE
Definition cme.h:879
string const RUN_END_NOTICE
Definition cme.h:762
string const RASTER_POTENTIAL_PLATFORM_EROSION_MASK_NAME
Definition cme.h:846
int const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_FINE
Definition cme.h:501
int const SOUTH
Definition cme.h:387
string const TIME_SERIES_PLATFORM_EROSION_NAME
Definition cme.h:1085
int const NO_DIRECTION
Definition cme.h:382
int const RTN_ERR_INI
Definition cme.h:582
string const RASTER_PLOT_AVG_SUSPENDED_SEDIMENT_TITLE
Definition cme.h:947
int const RTN_ERR_BAD_MULTILINE
Definition cme.h:625
string const READING_SED_INPUT_EVENT_FILE
Definition cme.h:751
int const RASTER_PLOT_ACTUAL_PLATFORM_EROSION
Definition cme.h:492
string const READING_FILE_LOCATIONS
Definition cme.h:735
int const VECTOR_PLOT_POLYGON_BOUNDARY
Definition cme.h:563
int const VEC_GEOMETRY_LINE
Definition cme.h:473
string const RASTER_PLOT_INTERVENTION_HEIGHT_TITLE
Definition cme.h:968
int const VECTOR_PLOT_MEAN_WAVE_ENERGY
Definition cme.h:561
int const LOG_FILE_ALL
Definition cme.h:379
int const EAST
Definition cme.h:385
int const RTN_OK
Definition cme.h:577
string const RASTER_WAVE_HEIGHT_NAME
Definition cme.h:832
string const VECTOR_PLOT_POLYGON_BOUNDARY_TITLE
Definition cme.h:1065
int const RTN_ERR_TEXT_FILE_WRITE
Definition cme.h:596
string const VECTOR_CLIFF_NOTCH_SIZE_CODE
Definition cme.h:1031
bool const SAVE_CSHORE_OUTPUT
Definition cme.h:347
string const RASTER_SETUP_SURGE_RUNUP_FLOOD_MASK_CODE
Definition cme.h:937
bool const ACCEPT_SHORT_PROFILES
Definition cme.h:345
string const RASTER_PLOT_SEA_DEPTH_TITLE
Definition cme.h:981
string const RASTER_PLOT_TOTAL_ACTUAL_PLATFORM_EROSION_TITLE
Definition cme.h:988
string const RASTER_LANDFORM_CODE
Definition cme.h:867
int const RTN_ERR_VECTOR_FILE_WRITE
Definition cme.h:598
string const TIME_SERIES_CLIFF_COLLAPSE_NET_NAME
Definition cme.h:1094
string const RASTER_TOTAL_ACTUAL_PLATFORM_EROSION_CODE
Definition cme.h:853
string const DISCLAIMER6
Definition cme.h:720
string const RASTER_PLOT_SEDIMENT_INPUT_EVENT_TITLE
Definition cme.h:1000
int const RASTER_PLOT_INTERVENTION_HEIGHT
Definition cme.h:515
int const RTN_ERR_READING_DEEP_WATER_WAVE_DATA
Definition cme.h:639
string const RASTER_ACTUAL_PLATFORM_EROSION_CODE
Definition cme.h:849
int const SAND_UNCONS_RASTER
Definition cme.h:457
string const VECTOR_BREAKING_WAVE_HEIGHT_CODE
Definition cme.h:1025
int const RASTER_PLOT_TOTAL_POTENTIAL_BEACH_EROSION
Definition cme.h:542
string const TIME_SERIES_CLIFF_COLLAPSE_EROSION_NAME
Definition cme.h:1088
int const IO_INTERVENTION_NON_STRUCT
Definition cme.h:415
int const RTN_ERR_NO_PROFILES_1
Definition cme.h:606
int const NORTH_EAST
Definition cme.h:384
string const RASTER_TOTAL_POTENTIAL_BEACH_EROSION_NAME
Definition cme.h:860
unsigned long const SEDIMENT_INPUT_EVENT_ERROR
Definition cme.h:678
int const VEC_FIELD_DATA_REAL
Definition cme.h:467
int const TIME_YEARS
Definition cme.h:410
int const RTN_ERR_TIDEDATAFILE
Definition cme.h:586
int const RASTER_PLOT_SAND_UNCONSOLIDATED_SEDIMENT
Definition cme.h:527
string const RASTER_PLOT_FINE_UNCONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:966
string const RASTER_SAND_CONS_NAME
Definition cme.h:886
int const MIN_PROFILE_SIZE
Definition cme.h:370
string const RASTER_PLOT_DEEP_WATER_WAVE_PERIOD_TITLE
Definition cme.h:964
int const VEC_GEOMETRY_POINT
Definition cme.h:472
int const TIME_DAYS
Definition cme.h:408
string const THANKS
Definition cme.h:723
int const RASTER_PLOT_POTENTIAL_PLATFORM_EROSION
Definition cme.h:525
int const MIN_PARALLEL_PROFILE_SIZE
Definition cme.h:369
string const RASTER_BASEMENT_ELEVATION_NAME
Definition cme.h:822
int const FINE_UNCONS_RASTER
Definition cme.h:456
string const RASTER_PLOT_INUNDATION_MASK_TITLE
Definition cme.h:969
string const RASTER_SUSP_SED_CODE
Definition cme.h:873
int const RTN_ERR_CANNOT_INSERT_POINT
Definition cme.h:626
string const RASTER_PLOT_POTENTIAL_PLATFORM_EROSION_TITLE
Definition cme.h:978
int const DIRECTION_UPCOAST
Definition cme.h:393
string const VECTOR_SHADOW_BOUNDARY_CODE
Definition cme.h:1033
int const COARSE_UNCONS_RASTER
Definition cme.h:458
string const VECTOR_COAST_CURVATURE_CODE
Definition cme.h:1015
double const DBL_NODATA
Definition cme.h:707
int const LF_SUBCAT_DRIFT_MIXED
Definition cme.h:438
double const D50_FINE_DEFAULT
Definition cme.h:682
string const TIME_SERIES_SEA_AREA_NAME
Definition cme.h:1079
int const RASTER_PLOT_WAVE_HEIGHT
Definition cme.h:544
string const VECTOR_ALL_RIVER_FLOOD_OUTPUT_CODE
Definition cme.h:1008
string const VECTOR_COAST_CURVATURE_NAME
Definition cme.h:1016
int const RTN_ERR_CLIFFDEPOSIT
Definition cme.h:615
int const RTN_ERR_UNKNOWN
Definition cme.h:647
int const RASTER_PLOT_SHADOW_ZONE
Definition cme.h:531
double const MAX_LAND_LENGTH_OF_SHADOW_ZONE_LINE
Definition cme.h:704
int const VECTOR_PLOT_AVG_WAVE_ANGLE_AND_HEIGHT
Definition cme.h:553
string strDblToStr(const T &t)
Definition cme.h:1162
int const RASTER_PLOT_DEEP_WATER_WAVE_HEIGHT
Definition cme.h:509
double const DEAN_POWER
Definition cme.h:692
int const LF_CAT_SEDIMENT_INPUT_NOT_SUBMERGED
Definition cme.h:426
string const RASTER_COAST_NORMAL_NAME
Definition cme.h:892
string const CME_INI
Definition cme.h:711
string const PER_ITER_HEAD5
Definition cme.h:791
string const NOTE
Definition cme.h:777
string const READING_SUSPENDED_SEDIMENT_FILE
Definition cme.h:742
string const RASTER_CLIFF_COLLAPSE_DEPOSITION_SAND_CODE
Definition cme.h:907
int const LF_NONE
Definition cme.h:418
int const RTN_ERR_CANNOT_ASSIGN_COASTAL_LANDFORM
Definition cme.h:627
int const VECTOR_PLOT_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT
Definition cme.h:558
string const READING_FLOOD_LOCATION
Definition cme.h:752
string const RASTER_PLOT_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE_TITLE
Definition cme.h:994
string const RASTER_SEA_DEPTH_CODE
Definition cme.h:825
string const RASTER_PLOT_SHADOW_DOWNDRIFT_ZONE_TITLE
Definition cme.h:983
int const RTN_ERR_OUTFILE
Definition cme.h:588
string const VECTOR_INVALID_NORMALS_NAME
Definition cme.h:1014
string const ALLOCATE_MEMORY
Definition cme.h:755
string const RASTER_LOCAL_SLOPE_CODE
Definition cme.h:823
string const RASTER_CLIFF_COLLAPSE_EROSION_COARSE_NAME
Definition cme.h:900
string const READING_RUN_DATA
Definition cme.h:736
string const TIME_SERIES_SUSPENDED_SEDIMENT_NAME
Definition cme.h:1106
int const RASTER_PLOT_COARSE_CONSOLIDATED_SEDIMENT
Definition cme.h:506
int const RTN_ERR_NO_SOLUTION_FOR_ENDPOINT
Definition cme.h:604
int const ELEV_IN_BASEMENT
Definition cme.h:650
string const RASTER_LANDFORM_NAME
Definition cme.h:868
int const RASTER_PLOT_TOTAL_ACTUAL_PLATFORM_EROSION
Definition cme.h:535
string const TIME_SERIES_CLIFF_COLLAPSE_DEPOSITION_NAME
Definition cme.h:1091
string const RASTER_FINE_CONS_CODE
Definition cme.h:883
int const SUSP_SED_RASTER
Definition cme.h:459
int const SEDIMENT_INPUT_EVENT_LOCATION_POINT_GEOMETRY
Definition cme.h:483
char const QUOTE2
Definition cme.h:339
string const LINE
Definition cme.h:714
int const VECTOR_PLOT_WAVE_SETUP
Definition cme.h:568
string const PROGRAM_NAME_SHORT
Definition cme.h:710
string const VECTOR_POLYGON_BOUNDARY_CODE
Definition cme.h:1029
string const DISCLAIMER2
Definition cme.h:716
string const WAVE_ENERGY_FLUX
Definition cme.h:1116
string const RASTER_FINE_UNCONS_CODE
Definition cme.h:877
int const FINE_CONS_RASTER
Definition cme.h:453
int const COARSE_CONS_RASTER
Definition cme.h:455
string const TIME_SERIES_STILL_WATER_LEVEL_CODE
Definition cme.h:1083
int const LF_SUBCAT_DRIFT_DUNES
Definition cme.h:442
int const LF_CAT_CLIFF
Definition cme.h:429
int const RASTER_PLOT_SETUP_SURGE_RUNUP_FLOOD_MASK
Definition cme.h:549
int const COAST_LENGTH_MAX
Definition cme.h:354
int const RASTER_PLOT_BASEMENT_ELEVATION
Definition cme.h:497
double const BEACH_PROTECTION_HB_RATIO
Definition cme.h:686
int const CSHOREARRAYOUTSIZE
The size of the arrays output by CShore. If you change this, then you must also set the same value on...
Definition cme.h:358
string const VECTOR_PLOT_WAVE_ENERGY_SINCE_COLLAPSE_TITLE
Definition cme.h:1069
int const MIN_PROFILE_SPACING
Definition cme.h:371
string const RASTER_SEDIMENT_TOP_CODE
Definition cme.h:817
int const RASTER_PLOT_LANDFORM
Definition cme.h:517
int const GRID_EDGE_OPEN
Definition cme.h:661
string const EROSION_POTENTIAL_LOOKUP_FILE
Definition cme.h:770
int const BUF_SIZE
Definition cme.h:351
double const WALKDEN_HALL_PARAM_1
Definition cme.h:687
string const VECTOR_WAVE_ANGLE_AND_HEIGHT_CODE
Definition cme.h:1017
int const VEC_GEOMETRY_OTHER
Definition cme.h:475
string const RASTER_PLOT_SUSPENDED_SEDIMENT_TITLE
Definition cme.h:986
string const SEND_EMAIL
Definition cme.h:761
int const RIGHT_HANDED
Definition cme.h:397
string const VECTOR_PLOT_STORM_SURGE_TITLE
Definition cme.h:1071
string const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_FINE_TITLE
Definition cme.h:956
int const RTN_ERR_BAD_INDEX
Definition cme.h:616
string const RASTER_TOTAL_ACTUAL_PLATFORM_EROSION_NAME
Definition cme.h:854
int const UNCONS_SEDIMENT_EQUATION_CERC
Definition cme.h:669
string const RASTER_POLYGON_NAME
Definition cme.h:916
int const LF_CAT_ISLAND
Definition cme.h:423
string const RASTER_POLYGON_GAIN_OR_LOSS_CODE
Definition cme.h:931
int const RTN_ERR_PROFILE_ENDPOINT_AT_GRID_EDGE
Definition cme.h:602
int const RTN_ERR_TRACING_COAST
Definition cme.h:610
int const DEEP_WATER_WAVE_STATIONS_MAX_LAYER
Definition cme.h:479
int const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_COARSE
Definition cme.h:503
int const FLOOD_LOCATION_MAX_LAYER
Definition cme.h:487
char const TILDE
Definition cme.h:342
T tAbs(T a)
Definition cme.h:1148
string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_SAND_CODE
Definition cme.h:903
int const RTN_ERR_SEDIMENT_INPUT_EVENT
Definition cme.h:642
string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_FINE_NAME
Definition cme.h:902
int const RTN_ERR_CSHORE_EMPTY_PROFILE
Definition cme.h:630
string const VECTOR_POLYGON_NODE_NAME
Definition cme.h:1028
string const VECTOR_AVG_WAVE_ANGLE_AND_HEIGHT_CODE
Definition cme.h:1020
string const TIME_SERIES_BEACH_CHANGE_NET_CODE
Definition cme.h:1104
int const VEC_FIELD_DATA_STRING
Definition cme.h:468
string const RASTER_INTERVENTION_HEIGHT_CODE
Definition cme.h:871
string const WAVE_HEIGHT_X_FILENAME
Definition cme.h:1117
string const VECTOR_FLOOD_LINE_CODE
Definition cme.h:1045
string const TIME_SERIES_BEACH_DEPOSITION_CODE
Definition cme.h:1101
string const VECTOR_DOWNDRIFT_BOUNDARY_NAME
Definition cme.h:1036
string const READING_UNCONS_FINE_SEDIMENT_FILE
Definition cme.h:743
int const LANDFORM_RASTER
Definition cme.h:460
string const VECTOR_FLOOD_SWL_SETUP_LINE_CODE
Definition cme.h:1047
int const RASTER_PLOT_SHADOW_DOWNDRIFT_ZONE
Definition cme.h:530
string const PER_ITER_HEAD1
Definition cme.h:781
string const RASTER_PLOT_SAND_UNCONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:980
int const LF_CAT_HINTERLAND
Definition cme.h:421
string const VECTOR_NORMALS_NAME
Definition cme.h:1012
string const VECTOR_WAVE_SETUP_NAME
Definition cme.h:1040
int const TEXTURE_SAND
Definition cme.h:402
string const START_NOTICE
Definition cme.h:733
string const VECTOR_WAVE_SETUP_CODE
Definition cme.h:1039
string const ADD_LAYERS
Definition cme.h:756
string const RASTER_POLYGON_CODE
Definition cme.h:915
string const RASTER_ACTUAL_BEACH_EROSION_CODE
Definition cme.h:857
int const RASTER_PLOT_SLICE
Definition cme.h:532
string const RASTER_TOTAL_POTENTIAL_PLATFORM_EROSION_NAME
Definition cme.h:852
string const RASTER_AVG_SUSP_SED_NAME
Definition cme.h:876
string const RASTER_DEEP_WATER_WAVE_HEIGHT_NAME
Definition cme.h:926
string const RASTER_INUNDATION_MASK_CODE
Definition cme.h:829
string const RASTER_PLOT_OVERALL_TOP_ELEVATION_TITLE
Definition cme.h:973
int const RTN_ERR_NO_SEAWARD_END_OF_PROFILE_3
Definition cme.h:620
int const LF_SUBCAT_INTERVENTION_STRUCT
Definition cme.h:445
string const VECTOR_COAST_CODE
Definition cme.h:1009
char const COLON
Definition cme.h:334
string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_FINE_CODE
Definition cme.h:901
int const INTERVENTION_HEIGHT_RASTER
Definition cme.h:462
string const RASTER_PLOT_ACTIVE_ZONE_TITLE
Definition cme.h:943
int const VECTOR_PLOT_SHADOW_BOUNDARY
Definition cme.h:565
string const RASTER_PLOT_LOCAL_SLOPE_OF_CONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:971
string const VECTOR_PLOT_WAVE_ANGLE_AND_HEIGHT_TITLE
Definition cme.h:1068
string const VECTOR_PLOT_FLOOD_SWL_SETUP_SURGE_LINE_TITLE
Definition cme.h:1075
string const RASTER_AVG_WAVE_ORIENTATION_CODE
Definition cme.h:839
string const RASTER_TOTAL_CLIFF_COLLAPSE_EROSION_COARSE_NAME
Definition cme.h:906
string const RASTER_PLOT_CLIFF_COLLAPSE_DEPOSIT_SAND_TITLE
Definition cme.h:954
string const SCAPE_SHAPE_FUNCTION_FILE
Definition cme.h:769
string const TIME_SERIES_SEA_AREA_CODE
Definition cme.h:1080
string const RASTER_POLYGON_GAIN_OR_LOSS_NAME
Definition cme.h:932
string const RASTER_PLOT_TOTAL_ACTUAL_BEACH_EROSION_TITLE
Definition cme.h:987
int const RTN_ERR_LINETOGRID
Definition cme.h:600
string const RASTER_DEEP_WATER_WAVE_PERIOD_CODE
Definition cme.h:927
string const RASTER_TOTAL_ACTUAL_BEACH_EROSION_NAME
Definition cme.h:862
string const GDAL_DRIVERS
Definition cme.h:724
int const RASTER_PLOT_CLIFF_COLLAPSE_EROSION_SAND
Definition cme.h:502
char const DASH
Definition cme.h:336
string const RASTER_TOTAL_CLIFF_COLLAPSE_DEPOSITION_COARSE_CODE
Definition cme.h:913
string const RASTER_PLOT_SLICE_TITLE
Definition cme.h:985
int const RASTER_PLOT_SEA_DEPTH
Definition cme.h:528
string const ERROR_NOTICE
Definition cme.h:765
string const MASS_BALANCE_ERROR
Definition cme.h:779
int const NORTH
Definition cme.h:383
string const RASTER_CLIFF_COLLAPSE_DEPOSITION_COARSE_NAME
Definition cme.h:910
string const RASTER_PLOT_COARSE_CONSOLIDATED_SEDIMENT_TITLE
Definition cme.h:959
int const RTN_ERR_NO_CELL_UNDER_COASTLINE
Definition cme.h:637
int const LF_CAT_INTERVENTION
Definition cme.h:431
string const RASTER_TOP_CODE
Definition cme.h:819
string const CSHORE_INFILE
Definition cme.h:773
string const VECTOR_PLOT_DEEP_WATER_WAVE_ANGLE_AND_HEIGHT_TITLE
Definition cme.h:1060
string const VECTOR_MEAN_WAVE_ENERGY_NAME
Definition cme.h:1024
int const RASTER_PLOT_SETUP_SURGE_FLOOD_MASK
Definition cme.h:548
int const LEFT_HANDED
Definition cme.h:398
int const RASTER_PLOT_NORMAL
Definition cme.h:519
int const RTN_ERR_TIMESERIES_FILE_WRITE
Definition cme.h:599
int const WEST
Definition cme.h:389
char const SPACE
Definition cme.h:341
string const VECTOR_DOWNDRIFT_BOUNDARY_CODE
Definition cme.h:1035
Contains CSimulation definitions.
double dRound(double const d)
Correctly rounds doubles.
bool bIsStringValidInt(string &str)
Checks to see if a string can be read as a valid integer, from https://stackoverflow....
int nRound(double const d)
Version of the above that returns an int.
string strLeft(const string &strIn, int const nWidth)
Left-aligns string within a field of given width, pads with blank spaces to enforce alignment....
string strDblRight(double const dX, int const nDigits, int const nWidth, bool const bShowDash)
Converts double to string with specified number of decimal places, within a field of given width,...
string strRightPerCent(double const d1, double const d2, int const nWidth, int const nDigits, bool const bShowDash)
Calculates a percentage from two numbers then, if the result is non-zero, right-aligns the result as ...
string strDbl(double const dX, int const nDigits)
Converts double to string with specified number of places after the decimal. From https://stackoverfl...
string strCentre(const char *pchIn, int const nWidth)
Centre-aligns char array within a field of given width, pads with blank spaces to enforce alignment....
ostream & operator<<(ostream &ostr, const FillToWidth &args)
Operator that inserts a given fill character, to a given width, into an output stream....
string strRight(const string &strIn, int const nWidth)
Right-aligns string within a field of given width, pads with blank spaces to enforce alignment....
bool bIsStringValidDouble(string &str)
Checks to see if a string can be read as a valid double number. Does not find trailing (i....
string strIntRight(int const nX, int const nWidth)
Converts int to string within a field of given width, pads with blank spaces to enforce alignment....