From 978ecfec76cb39942248204a21b377fd34339c7b Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Wed, 5 Mar 2025 19:07:34 +0100 Subject: [PATCH 1/6] Replaced WorkerThread::start() by WorkerThread::doAsync() --- src/Afterburner.cc | 62 +++++++++++++++++---------------------------- src/workerthread.cc | 29 +++------------------ src/workerthread.h | 5 +--- 3 files changed, 28 insertions(+), 68 deletions(-) diff --git a/src/Afterburner.cc b/src/Afterburner.cc index 8e4951155..5d7e60f67 100644 --- a/src/Afterburner.cc +++ b/src/Afterburner.cc @@ -42,9 +42,11 @@ void scan_darray(char *namelist, const char *name, double *values, int maxValues char zaxistypename[CDI_MAX_NAME]; -struct RARG +struct ReadArgs { - int lana, numFields; + int lana; + int numFields; + int numFieldsNext; struct Variable *vars; AfterControl *globs; }; @@ -364,19 +366,16 @@ after_setNextDate(AfterControl *globs) return numFields; } -static int num_recs = 0; - -static void * -after_readTimestep(void *arg) +static void +after_readTimestep(ReadArgs &readArgs) { int varID, gridID, zaxisID, levelID, timeType; size_t numMissVals; - auto rarg = (RARG *) arg; - auto numFields = rarg->numFields; - auto analysisData = rarg->lana; - auto vars = rarg->vars; - auto globs = rarg->globs; + auto numFields = readArgs.numFields; + auto analysisData = readArgs.lana; + auto vars = readArgs.vars; + auto globs = readArgs.globs; for (int code = 0; code < MaxCodes; ++code) vars[code].numMissVals0 = 0; @@ -443,9 +442,7 @@ after_readTimestep(void *arg) // printf("%3d date = %d time = %04d\n", TsID, vdate, vtime); - num_recs = after_setNextDate(globs); - - return (void *) &num_recs; + readArgs.numFieldsNext = after_setNextDate(globs); } static void @@ -558,7 +555,7 @@ static void after_control(AfterControl &globs, struct Variable *vars) { int numFields = 0; - RARG rarg; + ReadArgs readArgs; if (afterReadAsync) afterReadTask = new WorkerThread; @@ -605,41 +602,31 @@ after_control(AfterControl &globs, struct Variable *vars) while (numFields > 0) { - rarg.numFields = numFields; - rarg.lana = globs.AnalysisData; - rarg.vars = vars; - rarg.globs = &globs; - - int status = -1; + readArgs.numFields = numFields; + readArgs.lana = globs.AnalysisData; + readArgs.vars = vars; + readArgs.globs = &globs; + std::function<void()> readTimestep_func = std::bind(after_readTimestep, std::ref(readArgs)); if (tsFirst || !afterReadAsync) { - if (afterReadAsync) { afterReadTask->start(after_readTimestep, &rarg); } - else { status = *(int *) after_readTimestep(&rarg); } + afterReadAsync ? afterReadTask->doAsync(readTimestep_func) : readTimestep_func(); if (tsFirst && globs.Type > 0) after_legini_setup(globs, vars); - if (afterReadAsync) - { - status = *(int *) afterReadTask->wait(); - if (status < 0) cdo_abort("after_readTimestep error! (status = %d)", status); - } + if (afterReadAsync) { afterReadTask->wait(); } tsFirst = false; } - else - { - status = *(int *) afterReadTask->wait(); - if (status < 0) cdo_abort("after_readTimestep error! (status = %d)", status); - } + else { afterReadTask->wait(); } - numFields = status; + numFields = readArgs.numFieldsNext; globs.MeanCount0 = globs.MeanCount; globs.NewDate = globs.NextDate; after_moveTimestep(vars); - if (numFields && afterReadAsync) { afterReadTask->start(after_readTimestep, &rarg); } + if (numFields && afterReadAsync) { afterReadTask->doAsync(readTimestep_func); } after_setEndOfInterval(globs, numFields); @@ -653,10 +640,7 @@ after_control(AfterControl &globs, struct Variable *vars) after_defineNextTimestep(globs); } - if (globs.AnalysisData) - after_processPL(globs, vars); - else - after_processML(globs, vars); + globs.AnalysisData ? after_processPL(globs, vars) : after_processML(globs, vars); after_PostProcess(globs); diff --git a/src/workerthread.cc b/src/workerthread.cc index 48871943d..2b12b4316 100644 --- a/src/workerthread.cc +++ b/src/workerthread.cc @@ -38,10 +38,7 @@ WorkerThread::task(WorkerThread *taskInfo) // do blocking task // printf("<worker> JOB start\n"); - if (taskInfo->useFunction) - taskInfo->function(); - else - taskInfo->result = taskInfo->routine(taskInfo->arg); + taskInfo->function(); // printf("<worker> JOB end\n"); // ensure boss is waiting taskInfo->bossMutex.lock(); @@ -60,26 +57,12 @@ WorkerThread::doAsync(const std::function<void()> &_function) std::lock_guard<std::mutex> _(workMutex); // set job information & state this->function = _function; - this->useFunction = true; this->state = State::JOB; // wake-up signal workCond.notify_one(); } void -WorkerThread::start(void *(*taskRoutine)(void *), void *taskArg) -{ - // ensure worker is waiting - std::lock_guard<std::mutex> _(workMutex); - // set job information & state - this->routine = taskRoutine; - this->arg = taskArg; - this->state = State::JOB; - // wake-up signal - workCond.notify_one(); -} - -void * WorkerThread::wait() { while (1) @@ -87,8 +70,6 @@ WorkerThread::wait() if (State::IDLE == this->state) break; bossCond.wait(bossMutex); } - - return this->result; } WorkerThread::WorkerThread() @@ -115,7 +96,7 @@ WorkerThread::~WorkerThread() #ifdef TEST_WORKERTHREAD // g++ -g -Wall -O2 -DTEST_WORKERTHREAD workerthread.cc -void * +void myfunc(void *arg) { printf("run myfunc\n"); @@ -128,10 +109,9 @@ mytask1(void) WorkerThread task; void *myarg = nullptr; - void *myresult; task.start(myfunc, myarg); - myresult = task.wait(); + task.wait(); } void @@ -141,14 +121,13 @@ mytask2(void) auto task = useTask ? std::make_unique<WorkerThread>() : nullptr; void *myarg = nullptr; - void *myresult; if (useTask) task->start(myfunc, myarg); else myfunc(myarg); - if (useTask) myresult = task->wait(); + if (useTask) task->wait(); } int diff --git a/src/workerthread.h b/src/workerthread.h index cf82f4df2..22589af88 100644 --- a/src/workerthread.h +++ b/src/workerthread.h @@ -25,11 +25,9 @@ private: }; std::function<void()> function; - bool useFunction{ false }; void *(*routine)(void *) = nullptr; void *arg = nullptr; - void *result = nullptr; State state{ State::SETUP }; std::thread thread; @@ -43,8 +41,7 @@ public: WorkerThread(); ~WorkerThread(); void doAsync(const std::function<void()> &_function); - void start(void *(*task_routine)(void *), void *task_arg); - void *wait(); + void wait(); }; #endif /* WORKERTHREAD_H */ -- GitLab From 1b838fb12fa198fb7ebd7ee46144dd866d01fd8e Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Thu, 6 Mar 2025 09:14:17 +0100 Subject: [PATCH 2/6] workerthread.cc: cleanup --- src/workerthread.cc | 39 +++++++++++++++++++++------------------ src/workerthread.h | 4 +--- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/workerthread.cc b/src/workerthread.cc index 2b12b4316..d97d109c5 100644 --- a/src/workerthread.cc +++ b/src/workerthread.cc @@ -97,44 +97,47 @@ WorkerThread::~WorkerThread() // g++ -g -Wall -O2 -DTEST_WORKERTHREAD workerthread.cc void -myfunc(void *arg) +func(int &intArg) { + intArg = -1; printf("run myfunc\n"); - return nullptr; } void -mytask1(void) +worker1(void) { - WorkerThread task; + WorkerThread workerThread; - void *myarg = nullptr; + int ivalue = 0; + std::function<void()> my_task = std::bind(func, std::ref(ivalue)); - task.start(myfunc, myarg); - task.wait(); + workerThread.doAsync(my_task); + workerThread.wait(); + + printf("worker1: %d\n", ivalue); } void -mytask2(void) +worker2(void) { - bool useTask = true; - auto task = useTask ? std::make_unique<WorkerThread>() : nullptr; + bool useWorkerThread = true; + auto workerThread = useWorkerThread ? std::make_unique<WorkerThread>() : nullptr; + + int ivalue = 0; + std::function<void()> my_task = std::bind(func, std::ref(ivalue)); - void *myarg = nullptr; + useWorkerThread ? workerThread->doAsync(my_task) : my_task(); - if (useTask) - task->start(myfunc, myarg); - else - myfunc(myarg); + if (useWorkerThread) workerThread->wait(); - if (useTask) task->wait(); + printf("worker2: %d\n", ivalue); } int main(int argc, char **argv) { - mytask1(); - mytask2(); + worker1(); + worker2(); return 0; } diff --git a/src/workerthread.h b/src/workerthread.h index 22589af88..97dedbc23 100644 --- a/src/workerthread.h +++ b/src/workerthread.h @@ -26,9 +26,6 @@ private: std::function<void()> function; - void *(*routine)(void *) = nullptr; - void *arg = nullptr; - State state{ State::SETUP }; std::thread thread; std::mutex workMutex; @@ -40,6 +37,7 @@ private: public: WorkerThread(); ~WorkerThread(); + void doAsync(const std::function<void()> &_function); void wait(); }; -- GitLab From efe6c7e629b0be6ba6f3b3843830984af583a108 Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Thu, 6 Mar 2025 10:48:23 +0100 Subject: [PATCH 3/6] cinfo: set min and max for gridsize=1 (bug fix) --- src/Info.cc | 52 +++++++++++++++++++++++++++--------------------- src/Vertintgh.cc | 6 +++--- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/Info.cc b/src/Info.cc index 01954583d..8c948733e 100644 --- a/src/Info.cc +++ b/src/Info.cc @@ -310,13 +310,15 @@ compute_stat_real(const Field &field, InfoStat &infoStat, size_t &imiss, size_t { if (infoStat.numMissVals) { - auto nvals = field_min_max_sum_mv(field, infoStat.min, infoStat.max, infoStat.sum); - imiss = gridsize - nvals; - infoStat.numVals += nvals; + auto numVals = field_min_max_sum_mv(field, infoStat.min, infoStat.max, infoStat.sum); + imiss = gridsize - numVals; + infoStat.numVals += numVals; } else if (gridsize == 1) { infoStat.sum = (infoStat.numVals == 0) ? field[0] : infoStat.sum + field[0]; + infoStat.min = (infoStat.numVals == 0) ? field[0] : std::min(infoStat.min, field[0]); + infoStat.max = (infoStat.numVals == 0) ? field[0] : std::max(infoStat.max, field[0]); infoStat.numVals += 1; } else @@ -380,13 +382,13 @@ print_xinfo(int numSteps, CdoVar const &var, InfoStat const &infoStat) } static void -print_info(int indg, int levelID, CdiDateTime const &vDateTime, CdoVar const &var, int operfunc, bool lvinfo, +print_info(int setNum, int levelID, CdiDateTime const &vDateTime, CdoVar const &var, int operfunc, bool lvinfo, InfoStat const &infoStat) { char paramstr[32]; cdiParamToString(var.param, paramstr, sizeof(paramstr)); - fprintf(stdout, "%6d :", indg); + fprintf(stdout, "%6d :", setNum); auto vdateString = date_to_string(vDateTime.date); auto vtimeString = time_to_string(vDateTime.time); @@ -427,10 +429,10 @@ print_info(int indg, int levelID, CdiDateTime const &vDateTime, CdoVar const &va } static void -info(Field &field, int indg, int indf, int levelID, CdiDateTime vDateTime, CdoVar &var, int operfunc, bool printMap, bool lvinfo, - bool lcinfo, InfoStat &infoStat) +info(Field &field, int setNum, int streamIndex, int levelID, CdiDateTime vDateTime, CdoVar &var, int operfunc, bool printMap, + bool lvinfo, bool lcinfo, InfoStat &infoStat) { - if (printMap) print_header(-(indf + 1), lvinfo, operfunc); + if (printMap) print_header(-(streamIndex + 1), lvinfo, operfunc); auto numMissVals = field.numMissVals; auto loutput = (not lvinfo and not lcinfo); @@ -455,7 +457,7 @@ info(Field &field, int indg, int indf, int levelID, CdiDateTime vDateTime, CdoVa else compute_stat_comp(field, infoStat, imiss, var.gridsize); // clang-format on - if (loutput) print_info(indg, levelID, vDateTime, var, operfunc, lvinfo, infoStat); + if (loutput) print_info(setNum, levelID, vDateTime, var, operfunc, lvinfo, infoStat); if (imiss != numMissVals && numMissVals) cdo_warning("Found %zu of %zu missing values (%s)!", imiss, numMissVals, var.name); @@ -530,9 +532,9 @@ public: int numSets = 0; auto numStreams = cdo_stream_cnt(); - for (int indf = 0; indf < numStreams; indf++) + for (int streamIndex = 0; streamIndex < numStreams; streamIndex++) { - auto streamID = cdo_open_read(indf); + auto streamID = cdo_open_read(streamIndex); auto vlistID = cdo_stream_inq_vlist(streamID); auto taxisID = vlistInqTaxis(vlistID); @@ -541,19 +543,19 @@ public: if (numVars == 0) continue; auto runAsync = (Options::CDO_Async_Read > 0); - auto task = runAsync ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = runAsync ? std::make_unique<WorkerThread>() : nullptr; auto numTasks = runAsync ? 2 : 1; - FieldVector fieldVector(numTasks); + Field fieldVector[2]; std::vector<InfoStat> infoStatList(numVars); if (lcinfo) - print_xheader(-(indf + 1)); - else if (not printMap) - print_header(-(indf + 1), lvinfo, operfunc); + for (auto &infoStat : infoStatList) infostat_init(infoStat); if (lcinfo) - for (auto &infoStat : infoStatList) infostat_init(infoStat); + print_xheader(-(streamIndex + 1)); + else if (not printMap) + print_header(-(streamIndex + 1), lvinfo, operfunc); numSets = 0; int tsID = 0; @@ -565,7 +567,10 @@ public: auto vDateTime = taxisInqVdatetime(taxisID); if (not lcinfo) - for (auto &infoStat : infoStatList) infostat_init(infoStat); + { + if (numFields == 1 && runAsync && numSets > 0) { workerThread->wait(); } + for (auto &infoStat : infoStatList) infostat_init(infoStat); + } for (int fieldID = 0; fieldID < numFields; ++fieldID) { @@ -576,20 +581,21 @@ public: field.init(var); cdo_read_field(streamID, field); - if (runAsync && numSets > 0) { task->wait(); } + if (runAsync && numSets > 0) { workerThread->wait(); } numSets = lvinfo ? varID + 1 : numSets + 1; - std::function<void()> info_func = std::bind(info, std::ref(field), numSets, indf, levelID, vDateTime, std::ref(var), - operfunc, printMap, lvinfo, lcinfo, std::ref(infoStatList[varID])); + std::function<void()> info_task + = std::bind(info, std::ref(field), numSets, streamIndex, levelID, vDateTime, std::ref(var), operfunc, printMap, + lvinfo, lcinfo, std::ref(infoStatList[varID])); - runAsync ? task->doAsync(info_func) : info_func(); + runAsync ? workerThread->doAsync(info_task) : info_task(); } tsID++; } - if (runAsync) task->wait(); + if (runAsync) workerThread->wait(); cdo_stream_close(streamID); diff --git a/src/Vertintgh.cc b/src/Vertintgh.cc index 30f4522e8..d04ed1f5b 100644 --- a/src/Vertintgh.cc +++ b/src/Vertintgh.cc @@ -193,9 +193,9 @@ public: for (int index = 0; index < numZaxes; ++index) { auto zaxisID = vlistZaxis(vlistID1, index); - auto nlevels = zaxisInqSize(zaxisID); + auto numLevels = zaxisInqSize(zaxisID); if (zaxisID == zaxisID_FL || zaxisID == zaxisID_HL - || (is_height_axis(zaxisID) && (nlevels == numHalfLevels || nlevels == numFullLevels))) + || (is_height_axis(zaxisID) && (numLevels == numHalfLevels || numLevels == numFullLevels))) vlistChangeZaxis(vlistID2, zaxisID, zaxisID2); } @@ -345,7 +345,7 @@ public: { cdo_def_field(streamID2, varID, levelID); cdo_write_field(streamID2, interpVars[varID] ? vardata2[varID] : vardata1[varID], levelID, - varnumMissVals[varID][levelID]); + varnumMissVals[varID][levelID]); } } } -- GitLab From a3fa2eb42657b3a7946cc69afe8c0e6590ac7729 Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Thu, 6 Mar 2025 11:24:03 +0100 Subject: [PATCH 4/6] Info: changed if(not lcinfo) to if(lvinfo) --- src/Info.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Info.cc b/src/Info.cc index 8c948733e..dab5261bb 100644 --- a/src/Info.cc +++ b/src/Info.cc @@ -566,7 +566,7 @@ public: auto vDateTime = taxisInqVdatetime(taxisID); - if (not lcinfo) + if (lvinfo) { if (numFields == 1 && runAsync && numSets > 0) { workerThread->wait(); } for (auto &infoStat : infoStatList) infostat_init(infoStat); -- GitLab From dbcb6605993bec71bf298c59488cbc6bd428f343 Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Thu, 6 Mar 2025 13:07:16 +0100 Subject: [PATCH 5/6] Renamed task to workerThread --- src/Afterburner.cc | 12 ++++++------ src/Detrend.cc | 16 ++++++++-------- src/Diff.cc | 10 +++++----- src/Ensstat.cc | 10 +++++----- src/Longinfo.cc | 10 +++++----- src/Timstat.cc | 10 +++++----- src/Trend.cc | 12 ++++++------ src/afterburner.h | 4 ++-- 8 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/Afterburner.cc b/src/Afterburner.cc index 5d7e60f67..816ba4a8d 100644 --- a/src/Afterburner.cc +++ b/src/Afterburner.cc @@ -557,7 +557,7 @@ after_control(AfterControl &globs, struct Variable *vars) int numFields = 0; ReadArgs readArgs; - if (afterReadAsync) afterReadTask = new WorkerThread; + if (afterReadAsync) afterWorkerThread = new WorkerThread; for (int code = 0; code < MaxCodes; ++code) vars[code].needed0 = vars[code].needed; @@ -610,14 +610,14 @@ after_control(AfterControl &globs, struct Variable *vars) if (tsFirst || !afterReadAsync) { - afterReadAsync ? afterReadTask->doAsync(readTimestep_func) : readTimestep_func(); + afterReadAsync ? afterWorkerThread->doAsync(readTimestep_func) : readTimestep_func(); if (tsFirst && globs.Type > 0) after_legini_setup(globs, vars); - if (afterReadAsync) { afterReadTask->wait(); } + if (afterReadAsync) { afterWorkerThread->wait(); } tsFirst = false; } - else { afterReadTask->wait(); } + else { afterWorkerThread->wait(); } numFields = readArgs.numFieldsNext; @@ -626,7 +626,7 @@ after_control(AfterControl &globs, struct Variable *vars) after_moveTimestep(vars); - if (numFields && afterReadAsync) { afterReadTask->doAsync(readTimestep_func); } + if (numFields && afterReadAsync) { afterWorkerThread->doAsync(readTimestep_func); } after_setEndOfInterval(globs, numFields); @@ -655,7 +655,7 @@ after_control(AfterControl &globs, struct Variable *vars) globs.OldDate = globs.NewDate; } - if (afterReadTask) delete afterReadTask; + if (afterWorkerThread) delete afterWorkerThread; } static void diff --git a/src/Detrend.cc b/src/Detrend.cc index 6e38316f4..eccdcbc15 100644 --- a/src/Detrend.cc +++ b/src/Detrend.cc @@ -182,7 +182,7 @@ public: run() override { auto runAsync = (Options::CDO_Async_Read > 0); - auto task = runAsync ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = runAsync ? std::make_unique<WorkerThread>() : nullptr; auto calendar = taxisInqCalendar(taxisID1); CheckTimeIncr checkTimeIncr; @@ -221,17 +221,17 @@ public: cdo_read_field(streamID1, field); } - if (runAsync && tsID > 0) task->wait(); + if (runAsync && tsID > 0) workerThread->wait(); - std::function<void()> vars_trend_sum_func + std::function<void()> vars_trend_sum_task = std::bind(vars_trend_sum, std::ref(work), std::cref(varsData[tsID]), std::cref(varList1), zj); - runAsync ? task->doAsync(vars_trend_sum_func) : vars_trend_sum_func(); + runAsync ? workerThread->doAsync(vars_trend_sum_task) : vars_trend_sum_task(); tsID++; } - if (runAsync) task->wait(); + if (runAsync) workerThread->wait(); numSteps = tsID; @@ -244,14 +244,14 @@ public: auto zj = tstepIsEqual ? (double) step : delta_time_step_0(step, calendar, vDateTime, julianDate0, deltat1); std::function<void()> vars_sub_trend_func = std::bind(vars_sub_trend, std::ref(work), std::ref(varsData[step]), std::ref(varList1), zj); - task->doAsync(vars_sub_trend_func); + workerThread->doAsync(vars_sub_trend_func); } for (tsID = 0; tsID < numSteps; ++tsID) { progress.update((tsID + 1.0) / numSteps, 0.5, 0.5); - if (runAsync) task->wait(); + if (runAsync) workerThread->wait(); auto step = runAsync ? tsID + 1 : tsID; if (step < numSteps) @@ -262,7 +262,7 @@ public: std::function<void()> vars_sub_trend_func = std::bind(vars_sub_trend, std::ref(work), std::ref(varsData[step]), std::cref(varList1), zj); - runAsync ? task->doAsync(vars_sub_trend_func) : vars_sub_trend_func(); + runAsync ? workerThread->doAsync(vars_sub_trend_func) : vars_sub_trend_func(); } dtlist.taxis_def_timestep(taxisID2, tsID); diff --git a/src/Diff.cc b/src/Diff.cc index 770329f46..1c35fb813 100644 --- a/src/Diff.cc +++ b/src/Diff.cc @@ -396,7 +396,7 @@ public: run() override { auto runAsync = (Options::CDO_Async_Read > 0); - auto task = runAsync ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = runAsync ? std::make_unique<WorkerThread>() : nullptr; auto numTasks = runAsync ? 2 : 1; FieldVector fieldVector1(numTasks); @@ -467,16 +467,16 @@ public: if (runAsync && numSets > 0) { - task->wait(); + workerThread->wait(); // clang-format off if (params.numDiffFields >= params.maxDiffFields) { stopRead = true; break; } // clang-format on } - std::function<void()> compare_fields_func + std::function<void()> compare_fields_task = std::bind(compare_fields, std::ref(field1), std::ref(field2), numSets + 1, std::ref(var1), levelID, operfunc, vDateTime, std::ref(params), operfunc2, std::ref(progress)); - runAsync ? task->doAsync(compare_fields_func) : compare_fields_func(); + runAsync ? workerThread->doAsync(compare_fields_task) : compare_fields_task(); if (not runAsync) { @@ -493,7 +493,7 @@ public: tsID++; } - if (runAsync) task->wait(); + if (runAsync) workerThread->wait(); if (params.numDiffFields > 0) { diff --git a/src/Ensstat.cc b/src/Ensstat.cc index 837c12f75..dfe644e82 100644 --- a/src/Ensstat.cc +++ b/src/Ensstat.cc @@ -235,7 +235,7 @@ public: void run() override { - auto task = Options::CDO_task ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = Options::CDO_task ? std::make_unique<WorkerThread>() : nullptr; auto numTasks = Options::CDO_task ? 2 : 1; FieldVector workFields(Threading::ompNumMaxThreads); @@ -298,17 +298,17 @@ public: #endif for (int fileID = 0; fileID < numFiles; ++fileID) { cdo_read_field(ef[fileID].streamID, fields[fileID]); } - if (Options::CDO_task) task->wait(); + if (Options::CDO_task) workerThread->wait(); - std::function<void()> ensstat_func = std::bind(ensstat, std::cref(ef), std::ref(fields), streamID2, varID, levelID, + std::function<void()> ensstat_task = std::bind(ensstat, std::cref(ef), std::ref(fields), streamID2, varID, levelID, std::ref(workFields), std::ref(array2), std::ref(count2), operfunc, pn); - Options::CDO_task ? task->doAsync(ensstat_func) : ensstat_func(); + Options::CDO_task ? workerThread->doAsync(ensstat_task) : ensstat_task(); fieldNum++; } - if (Options::CDO_task) task->wait(); + if (Options::CDO_task) workerThread->wait(); tsID++; } diff --git a/src/Longinfo.cc b/src/Longinfo.cc index 99cbf4ed4..5d792a028 100644 --- a/src/Longinfo.cc +++ b/src/Longinfo.cc @@ -191,7 +191,7 @@ public: run() override { auto runAsync = (Options::CDO_Async_Read > 0); - auto task = runAsync ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = runAsync ? std::make_unique<WorkerThread>() : nullptr; auto numTasks = runAsync ? 2 : 1; FieldVector fieldVector(numTasks); @@ -213,12 +213,12 @@ public: field.init(var); cdo_read_field(streamID, field); - if (runAsync && numSets > 0) { task->wait(); } + if (runAsync && numSets > 0) { workerThread->wait(); } - std::function<void()> long_info_func = std::bind(long_info, std::ref(field), tsID, vDateTime, numFields, fieldID, varID, + std::function<void()> long_info_task = std::bind(long_info, std::ref(field), tsID, vDateTime, numFields, fieldID, varID, levelID, vlistID, std::ref(var)); - runAsync ? task->doAsync(long_info_func) : long_info_func(); + runAsync ? workerThread->doAsync(long_info_task) : long_info_task(); numSets++; } @@ -228,7 +228,7 @@ public: tsID++; } - if (runAsync) task->wait(); + if (runAsync) workerThread->wait(); for (auto const &var : varList.vars) { diff --git a/src/Timstat.cc b/src/Timstat.cc index 1ff05a8de..ad8c90886 100644 --- a/src/Timstat.cc +++ b/src/Timstat.cc @@ -422,7 +422,7 @@ public: field2D_init(fields3D[1], varList1, FIELD_VEC | FIELD_NAT); auto useTask = true; - auto task = useTask ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = useTask ? std::make_unique<WorkerThread>() : nullptr; int tsID = 0; int otsID = 0; @@ -455,13 +455,13 @@ public: cdo_read_field(streamID1, fields3D[numSets % 2][varID][levelID]); } - if (useTask && numSets > 0) task->wait(); + if (useTask && numSets > 0) workerThread->wait(); - std::function<void()> add_fields2D_func + std::function<void()> add_fields2D_task = std::bind(add_fields2D, std::cref(fields3D[numSets % 2]), std::cref(fieldInfoList), std::cref(varList1), std::ref(stepStat), numSets); - useTask ? task->doAsync(add_fields2D_func) : add_fields2D_func(); + useTask ? workerThread->doAsync(add_fields2D_task) : add_fields2D_task(); vDateTimeN = vDateTime; numSets++; @@ -470,7 +470,7 @@ public: if (numFields == 0 && numSets == 0) break; - if (useTask) task->wait(); + if (useTask) workerThread->wait(); if (compareDate == CMP_DAY || compareDate == CMP_MONTH || compareDate == CMP_YEAR) { diff --git a/src/Trend.cc b/src/Trend.cc index 9fabd21e9..e7fee8791 100644 --- a/src/Trend.cc +++ b/src/Trend.cc @@ -227,7 +227,7 @@ public: field2D_init(fields3D[1], varList1, FIELD_VEC | FIELD_NAT); bool useTask = true; - auto task = useTask ? std::make_unique<WorkerThread>() : nullptr; + auto workerThread = useTask ? std::make_unique<WorkerThread>() : nullptr; int tsID = 0; while (true) @@ -250,18 +250,18 @@ public: cdo_read_field(streamID1, fields3D[tsID % 2][varID][levelID]); } - if (useTask && tsID > 0) task->wait(); + if (useTask && tsID > 0) workerThread->wait(); - std::function<void()> fields_calc_trend_sum_func + std::function<void()> fields_calc_trend_sum_task = std::bind(fields_calc_trend_sum, std::ref(work), std::ref(fields3D[tsID % 2]), std::cref(fieldInfoList), zj); - if (useTask) { task->doAsync(fields_calc_trend_sum_func); } - else { fields_calc_trend_sum_func(); } + if (useTask) { workerThread->doAsync(fields_calc_trend_sum_task); } + else { fields_calc_trend_sum_task(); } tsID++; } - if (useTask) task->wait(); + if (useTask) workerThread->wait(); taxisDefVdatetime(taxisID2, vDateTime); write_output(work); diff --git a/src/afterburner.h b/src/afterburner.h index 51cac9f37..a35bc3711 100644 --- a/src/afterburner.h +++ b/src/afterburner.h @@ -220,14 +220,14 @@ void after_EchamDependencies(struct Variable *vars, int ncodes, int type, int so void after_legini_setup(AfterControl &globs, struct Variable *vars); -static WorkerThread *afterReadTask = nullptr; +static WorkerThread *afterWorkerThread = nullptr; static bool afterReadAsync = true; template <typename... Args> void afterAbort(const std::string &format, Args const &...args) { - if (afterReadAsync && afterReadTask) afterReadTask->wait(); + if (afterReadAsync && afterWorkerThread) afterWorkerThread->wait(); cdo_abort(format, args...); } -- GitLab From 98190670add9989d47258549995b36adbd7575cb Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Fri, 7 Mar 2025 10:39:30 +0100 Subject: [PATCH 6/6] Changed 'const T &' to 'T const &' --- src/Adisit.cc | 20 ++-- src/Afterburner.cc | 2 +- src/Arithdays.cc | 2 +- src/Arithlat.cc | 2 +- src/Bitrounding.cc | 38 +++--- src/CDIwrite.cc | 8 +- src/CMOR.cc | 124 +++++++++---------- src/CMOR_lite.cc | 18 +-- src/CMOR_table.cc | 22 ++-- src/Cat.cc | 2 +- src/Change.cc | 14 +-- src/Change_e5slm.cc | 2 +- src/Cloudlayer.cc | 12 +- src/Collgrid.cc | 14 +-- src/Command.cc | 42 +++---- src/Comp.cc | 6 +- src/Compc.cc | 2 +- src/Complextorect.cc | 2 +- src/Cond.cc | 8 +- src/Cond2.cc | 4 +- src/Condc.cc | 2 +- src/Consecstat.cc | 8 +- src/Copy.cc | 4 +- src/DCW_util.cc | 4 +- src/Deltat.cc | 8 +- src/Depth.cc | 2 +- src/Derivepar.cc | 6 +- src/Detrend.cc | 14 +-- src/Diff.cc | 22 ++-- src/Distgrid.cc | 24 ++-- src/Duplicate.cc | 4 +- src/EOFs.cc | 12 +- src/EcaEtccdi.cc | 6 +- src/EcaIndices.cc | 22 ++-- src/Echam5ini.cc | 6 +- src/Enlarge.cc | 2 +- src/Ensstat3.cc | 4 +- src/Exprf.cc | 26 ++-- src/FC.cc | 2 +- src/Filedes.cc | 4 +- src/Fillmiss.cc | 2 +- src/Filter.cc | 4 +- src/Fldrms.cc | 4 +- src/Fldstat.cc | 22 ++-- src/Fldstat2.cc | 16 +-- src/Fourier.cc | 2 +- src/Getgridcell.cc | 8 +- src/Gradsdes.cc | 4 +- src/Gridboxstat.cc | 2 +- src/Gridcell.cc | 8 +- src/Gridsearch.cc | 6 +- src/Harmonic.cc | 12 +- src/Healpix.cc | 18 +-- src/Hi.cc | 2 +- src/Importamsr.cc | 2 +- src/Importobs.cc | 4 +- src/Info.cc | 24 ++-- src/Intgrid.cc | 8 +- src/Intlevel.cc | 42 +++---- src/Intlevel3d.cc | 18 +-- src/Intntime.cc | 6 +- src/Inttime.cc | 8 +- src/Intyear.cc | 2 +- src/Invertlev.cc | 4 +- src/Longinfo.cc | 10 +- src/Maggraph.cc | 10 +- src/Magplot.cc | 8 +- src/Magvector.cc | 10 +- src/MapReduce.cc | 8 +- src/Maskbox.cc | 18 +-- src/Mastrfu.cc | 2 +- src/Math.cc | 2 +- src/Merge.cc | 8 +- src/Mergetime.cc | 16 +-- src/Merstat.cc | 2 +- src/Mrotuv.cc | 4 +- src/Mrotuvb.cc | 4 +- src/NCL_wind.cc | 18 +-- src/Ninfo.cc | 4 +- src/Nmldump.cc | 10 +- src/Output.cc | 20 ++-- src/Outputgmt.cc | 12 +- src/Pack.cc | 28 ++--- src/Pinfo.cc | 2 +- src/Regres.cc | 10 +- src/Remapeta.cc | 22 ++-- src/Remapgrid.cc | 20 ++-- src/Remapstat.cc | 24 ++-- src/Remapweights.cc | 18 +-- src/Replace.cc | 8 +- src/Replacevalues.cc | 2 +- src/Rhopot.cc | 12 +- src/Rotuv.cc | 4 +- src/Samplegrid.cc | 2 +- src/Samplegridicon.cc | 18 +-- src/Seascount.cc | 2 +- src/Seasmonstat.cc | 6 +- src/Seaspctl.cc | 8 +- src/Selbox.cc | 76 ++++++------ src/Select.cc | 18 +-- src/Selgridcell.cc | 6 +- src/Selmulti.cc | 4 +- src/Selregion.cc | 16 +-- src/Selsurface.cc | 14 +-- src/Seltime.cc | 16 +-- src/Selvar.cc | 10 +- src/Selyearidx.cc | 6 +- src/Setattribute.cc | 22 ++-- src/Setbox.cc | 12 +- src/Setchunkspec.cc | 20 ++-- src/Setfilter.cc | 26 ++-- src/Setgrid.cc | 12 +- src/Setgridcell.cc | 14 +-- src/Sethalo.cc | 20 ++-- src/Setmiss.cc | 4 +- src/Setpartab.cc | 16 +-- src/Setrcaname.cc | 2 +- src/Settime.cc | 4 +- src/Setzaxis.cc | 4 +- src/Shiftxy.cc | 2 +- src/Showattribute.cc | 6 +- src/Showinfo.cc | 18 +-- src/Sinfo.cc | 4 +- src/Smooth.cc | 20 ++-- src/Sort.cc | 14 +-- src/Sorttimestamp.cc | 4 +- src/Spectral.cc | 4 +- src/Spectrum.cc | 6 +- src/Split.cc | 40 +++---- src/Splitdate.cc | 6 +- src/Splitsel.cc | 8 +- src/Splittime.cc | 6 +- src/Splityear.cc | 6 +- src/Timfillmiss.cc | 12 +- src/Timpctl.cc | 6 +- src/Timselpctl.cc | 6 +- src/Timsort.cc | 4 +- src/Timstat.cc | 12 +- src/Timstat2.cc | 16 +-- src/Transpose.cc | 2 +- src/Trend.cc | 12 +- src/Trendarith.cc | 18 +-- src/Tstepcount.cc | 4 +- src/Vargen.cc | 8 +- src/Varrms.cc | 2 +- src/Varsstat.cc | 4 +- src/Verifygrid.cc | 12 +- src/Verifyweights.cc | 20 ++-- src/Vertcum.cc | 8 +- src/Vertfillmiss.cc | 10 +- src/Vertintap.cc | 16 +-- src/Vertintgh.cc | 16 +-- src/Vertintml.cc | 32 ++--- src/Vertintzs.cc | 6 +- src/Vertstat.cc | 10 +- src/Vertwind.cc | 2 +- src/Wind.cc | 16 +-- src/WindTrans.cc | 10 +- src/Ydaypctl.cc | 8 +- src/Ydaystat.cc | 10 +- src/Ydrunpctl.cc | 18 +-- src/Ydrunstat.cc | 12 +- src/Yearmonstat.cc | 6 +- src/Ymoncomp.cc | 6 +- src/Ymonpctl.cc | 8 +- src/Yseaspctl.cc | 8 +- src/Zonstat.cc | 6 +- src/after_fctrans.cc | 2 +- src/afterburner.h | 2 +- src/afterburnerlib.cc | 2 +- src/cdo.cc | 38 +++--- src/cdo_cdi_wrapper.cc | 6 +- src/cdo_cdi_wrapper.h | 6 +- src/cdo_data.cc | 6 +- src/cdo_data.h | 6 +- src/cdo_def_options.cc | 62 +++++----- src/cdo_exception.h | 2 +- src/cdo_features.cc | 10 +- src/cdo_features.h | 2 +- src/cdo_fftw3.cc | 8 +- src/cdo_fftw3.h | 4 +- src/cdo_fill.cc | 4 +- src/cdo_getopt.cc | 22 ++-- src/cdo_getopt.h | 20 ++-- src/cdo_module.cc | 8 +- src/cdo_module.h | 10 +- src/cdo_node_attach_exception.h | 8 +- src/cdo_output.cc | 8 +- src/cdo_output.h | 14 +-- src/cdo_query.cc | 10 +- src/cdo_query.h | 2 +- src/cdo_read.cc | 6 +- src/cdo_settings.cc | 14 +-- src/cdo_settings.h | 14 +-- src/cdo_stepstat.h | 28 ++--- src/cdo_syntax_error.cc | 4 +- src/cdo_syntax_error.h | 4 +- src/cdo_timer.h | 2 +- src/cdo_varlist.cc | 22 ++-- src/cdo_vlist.cc | 2 +- src/cdo_vlist.h | 2 +- src/cdo_zaxis.cc | 26 ++-- src/cdo_zaxis.h | 8 +- src/cellsearch_reg2d.cc | 8 +- src/cellsearch_reg2d.h | 6 +- src/cellsearch_spherepart.h | 6 +- src/convert_units.cc | 2 +- src/convert_units.h | 2 +- src/custom_modules.cc | 4 +- src/datetime.cc | 22 ++-- src/datetime.h | 18 +-- src/dcw_reader.cc | 8 +- src/ecacore.cc | 22 ++-- src/ecacore.h | 4 +- src/ecautil.cc | 32 ++--- src/ecautil.h | 22 ++-- src/expr.cc | 52 ++++---- src/expr.h | 2 +- src/expr_fun.cc | 18 +-- src/factory.cc | 26 ++-- src/factory.h | 26 ++-- src/field.cc | 114 +++++++++--------- src/field.h | 10 +- src/field2.cc | 96 +++++++-------- src/field2_complex.cc | 18 +-- src/field_functions.h | 146 +++++++++++----------- src/field_memory.cc | 6 +- src/field_meridional.cc | 62 +++++----- src/field_trend.cc | 20 ++-- src/field_trend.h | 4 +- src/field_vinterp.cc | 2 +- src/field_vinterp.h | 2 +- src/field_zonal.cc | 46 +++---- src/fileStream.cc | 2 +- src/fileStream.h | 2 +- src/fill_1d.cc | 10 +- src/fill_1d.h | 6 +- src/grid_cellsearch.cc | 4 +- src/grid_from_name.cc | 28 ++--- src/grid_icosphere.cc | 4 +- src/grid_pointsearch.cc | 14 +-- src/grid_pointsearch.h | 12 +- src/grid_read.cc | 12 +- src/griddes.cc | 8 +- src/griddes.h | 6 +- src/hetaeta.cc | 30 ++--- src/hetaeta.h | 6 +- src/institution.cc | 4 +- src/institution.h | 2 +- src/interpol.cc | 18 +-- src/interpol.h | 8 +- src/knndata.cc | 4 +- src/knndata.h | 8 +- src/module_info.cc | 24 ++-- src/module_info.h | 8 +- src/mpmo.cc | 2 +- src/mpmo.h | 16 +-- src/node.cc | 4 +- src/node.h | 4 +- src/oper_args.cc | 10 +- src/oper_args.h | 6 +- src/param_conversion.cc | 50 ++++---- src/param_conversion.h | 32 ++--- src/parse_literals.cc | 6 +- src/parse_literals.h | 6 +- src/parser.cc | 8 +- src/parser.h | 6 +- src/percentiles.cc | 2 +- src/percentiles.h | 2 +- src/percentiles_hist.cc | 14 +-- src/percentiles_hist.h | 6 +- src/pmlist.cc | 28 ++--- src/pmlist.h | 10 +- src/pointsearch_full.h | 8 +- src/pointsearch_healpix.h | 6 +- src/pointsearch_kdtree.h | 8 +- src/pointsearch_nanoflann.h | 8 +- src/pointsearch_reg2d.h | 8 +- src/pointsearch_spherepart.h | 8 +- src/pointsearch_unstruct.h | 8 +- src/printinfo.cc | 6 +- src/process.cc | 24 ++-- src/process.h | 22 ++-- src/processManager.cc | 6 +- src/processManager.h | 2 +- src/process_int.cc | 2 +- src/process_int.h | 2 +- src/region.cc | 4 +- src/region.h | 2 +- src/remap.h | 36 +++--- src/remap_bicubic.cc | 14 +-- src/remap_bilinear.cc | 22 ++-- src/remap_conserv.cc | 36 +++--- src/remap_gradients.cc | 10 +- src/remap_knn.cc | 16 +-- src/remap_point_search.cc | 18 +-- src/remap_scrip_io.cc | 4 +- src/remap_search_reg2d.cc | 2 +- src/remap_stat.cc | 4 +- src/remap_store_link.cc | 8 +- src/remap_utils.cc | 6 +- src/remap_utils.h | 6 +- src/remap_vars.cc | 64 +++++----- src/remap_vars.h | 8 +- src/remaplib.cc | 16 +-- src/sellist.cc | 32 ++--- src/sellist.h | 8 +- src/specspace.cc | 30 ++--- src/specspace.h | 20 ++-- src/stdnametable.cc | 2 +- src/stdnametable.h | 2 +- src/table.cc | 4 +- src/table.h | 2 +- src/util_date.h | 2 +- src/util_files.cc | 8 +- src/util_files.h | 6 +- src/util_string.cc | 12 +- src/util_string.h | 20 ++-- src/util_wildcards.cc | 2 +- src/util_wildcards.h | 2 +- src/varray.cc | 206 ++++++++++++++++---------------- src/varray.h | 64 +++++----- src/vector3d.h | 12 +- src/vertical_interp.cc | 6 +- src/vertical_interp.h | 2 +- 325 files changed, 2193 insertions(+), 2193 deletions(-) diff --git a/src/Adisit.cc b/src/Adisit.cc index 67a948169..fa52369fa 100644 --- a/src/Adisit.cc +++ b/src/Adisit.cc @@ -76,7 +76,7 @@ adipot_kernel(double t, double s, double p) } static void -calc_adisit(size_t gridsize, size_t nlevel, const Varray<double> &pressure, const FieldVector &tho, const FieldVector &sao, +calc_adisit(size_t gridsize, size_t nlevel, Varray<double> const &pressure, FieldVector const &tho, FieldVector const &sao, FieldVector &tis) { // pressure units: hPa @@ -85,8 +85,8 @@ calc_adisit(size_t gridsize, size_t nlevel, const Varray<double> &pressure, cons for (size_t levelID = 0; levelID < nlevel; ++levelID) { - const auto &thovec = tho[levelID].vec_d; - const auto &saovec = sao[levelID].vec_d; + auto const &thovec = tho[levelID].vec_d; + auto const &saovec = sao[levelID].vec_d; auto &tisvec = tis[levelID].vec_d; auto thoMissval = tho[levelID].missval; auto saoMissval = sao[levelID].missval; @@ -100,7 +100,7 @@ calc_adisit(size_t gridsize, size_t nlevel, const Varray<double> &pressure, cons } static void -calc_adipot(size_t gridsize, size_t nlevel, const Varray<double> &pressure, const FieldVector &t, const FieldVector &s, +calc_adipot(size_t gridsize, size_t nlevel, Varray<double> const &pressure, FieldVector const &t, FieldVector const &s, FieldVector &tpot) { // pressure units: hPa @@ -109,8 +109,8 @@ calc_adipot(size_t gridsize, size_t nlevel, const Varray<double> &pressure, cons for (size_t levelID = 0; levelID < nlevel; ++levelID) { - const auto &tvec = t[levelID].vec_d; - const auto &svec = s[levelID].vec_d; + auto const &tvec = t[levelID].vec_d; + auto const &svec = s[levelID].vec_d; auto &tpotvec = tpot[levelID].vec_d; auto tMissval = t[levelID].missval; auto sMissval = s[levelID].missval; @@ -124,7 +124,7 @@ calc_adipot(size_t gridsize, size_t nlevel, const Varray<double> &pressure, cons } int -get_code(const CdoVar &var, const std::string &cname) +get_code(const CdoVar &var, std::string const &cname) { auto code = var.code; if (code <= 0) @@ -159,7 +159,7 @@ configureOutput(const std::function<void(int, int)> &outputSettingFunc, const Va { double pin = (cdo_operator_argc() == 1) ? parameter_to_double(cdo_operator_argv(0)) : -1.0; - const auto &vars = varList.vars; + auto const &vars = varList.vars; auto units = vars[thoID].units; if (units.empty()) units = "Celcius"; @@ -287,7 +287,7 @@ public: std::string cname_ADIPOT{ "sea_water_temperature" }; std::string cname = (operatorID == ADISIT) ? cname_ADISIT : cname_ADIPOT; - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) { auto code = get_code(var, cname); @@ -315,7 +315,7 @@ public: auto outputSettingFunc = (operatorID == ADISIT) ? outputSetting_ADISIT : outputSetting_ADIPOT; - const auto &configResults = configureOutput(outputSettingFunc, varList1, vlistID1, thoID, saoID, tho, sao, tis, pressure); + auto const &configResults = configureOutput(outputSettingFunc, varList1, vlistID1, thoID, saoID, tho, sao, tis, pressure); streamID2 = configResults.streamID2; vlistID2 = configResults.vlistID2; diff --git a/src/Afterburner.cc b/src/Afterburner.cc index 816ba4a8d..98f62f400 100644 --- a/src/Afterburner.cc +++ b/src/Afterburner.cc @@ -286,7 +286,7 @@ after_getDateTime(const struct Date &datetime) } static void -after_setDateTime(struct Date *datetime, const CdiDateTime &cdiDateTime) +after_setDateTime(struct Date *datetime, CdiDateTime const &cdiDateTime) { int sec, ms; cdiDate_decode(cdiDateTime.date, &datetime->yr, &datetime->mo, &datetime->dy); diff --git a/src/Arithdays.cc b/src/Arithdays.cc index 6af23fbd1..ebe668705 100644 --- a/src/Arithdays.cc +++ b/src/Arithdays.cc @@ -24,7 +24,7 @@ #include "field_functions.h" static double -dayofyear(int calendar, const CdiDateTime &vDateTime) +dayofyear(int calendar, CdiDateTime const &vDateTime) { constexpr int month_360[12] = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 }; constexpr int month_365[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; diff --git a/src/Arithlat.cc b/src/Arithlat.cc index f9e8084b2..8c71eec52 100644 --- a/src/Arithlat.cc +++ b/src/Arithlat.cc @@ -111,7 +111,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field.init(var1); cdo_read_field(streamID1, field); diff --git a/src/Bitrounding.cc b/src/Bitrounding.cc index ec99399f7..6dcd7d68f 100644 --- a/src/Bitrounding.cc +++ b/src/Bitrounding.cc @@ -133,13 +133,13 @@ bitround(int nsb, size_t len, Varray<float> &v, float missval) } static void -check_range(double value, double minVal, double maxVal, const std::string &key) +check_range(double value, double minVal, double maxVal, std::string const &key) { if (value < minVal || value > maxVal) cdo_abort("Parameter %s=%g out of range (min=%g/max=%g)!", key, value, minVal, maxVal); } static void -check_range(int value, int minVal, int maxVal, const std::string &key) +check_range(int value, int minVal, int maxVal, std::string const &key) { if (value < minVal || value > maxVal) cdo_abort("Parameter %s=%d out of range (min=%d/max=%d)!", key, value, minVal, maxVal); } @@ -152,19 +152,19 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "inflevel") check_range(params.infLevel = parameter_to_double(value), 0.0, 1.0, key); @@ -244,7 +244,7 @@ set_global_attributes(int vlistID, const BitroundParams ¶ms, int numVarsHave } static std::vector<int> -get_vars_numbits(const VarList &varList, const std::string &filename) +get_vars_numbits(const VarList &varList, std::string const &filename) { auto numVars = varList.numVars(); std::vector<int> varsNumbits(numVars, -1); @@ -259,17 +259,17 @@ get_vars_numbits(const VarList &varList, const std::string &filename) std::fclose(fp); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { if (key == var.name) { - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; auto numBits = parameter_to_int(value); check_range(numBits, 1, 23, key); varsNumbits[var.ID] = numBits; @@ -346,7 +346,7 @@ public: set_global_attributes(vlistID2, params, numVarsHaveNumbits); auto numVars = varList1.numVars(); - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) { if (var.memType == MemType::Float) { @@ -393,7 +393,7 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); cdo_def_field(streamID2, varID, levelID); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); @@ -442,9 +442,9 @@ public: if (Options::cdoVerbose && params.numBits == -1) { fprintf(stderr, "NSB: step=%d:", tsID + 1); - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { - const auto &varStat = varsStat[var1.ID]; + auto const &varStat = varsStat[var1.ID]; if (varStat.nsbMin >= 1 && varStat.nsbMin <= 23) { fprintf(stderr, " %s=%d", var1.name.c_str(), varStat.nsbMin); @@ -468,9 +468,9 @@ public: if (params.printBits) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { - const auto &varStatGlob = varsStatGlob[var1.ID]; + auto const &varStatGlob = varsStatGlob[var1.ID]; if (varStatGlob.nsbMin >= 1 && varStatGlob.nsbMin <= 23) fprintf(stdout, "%s=%d\n", var1.name.c_str(), varStatGlob.nsbMax); } @@ -478,9 +478,9 @@ public: else if (Options::cdoVerbose && params.numBits == -1) { fprintf(stderr, "NSB: step=all:"); - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { - const auto &varStatGlob = varsStatGlob[var1.ID]; + auto const &varStatGlob = varsStatGlob[var1.ID]; if (varStatGlob.nsbMin >= 1 && varStatGlob.nsbMin <= 23) { fprintf(stderr, " %s=%d", var1.name.c_str(), varStatGlob.nsbMin); diff --git a/src/CDIwrite.cc b/src/CDIwrite.cc index c25bd1afe..8a391c001 100644 --- a/src/CDIwrite.cc +++ b/src/CDIwrite.cc @@ -88,7 +88,7 @@ get_parameter(void) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; // kvlist.name = cdo_module_name(); @@ -96,12 +96,12 @@ get_parameter(void) if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "nruns") params.nruns = parameter_to_int(value); diff --git a/src/CMOR.cc b/src/CMOR.cc index 7cb07b4a2..c36ac8ad3 100644 --- a/src/CMOR.cc +++ b/src/CMOR.cc @@ -52,7 +52,7 @@ get_stringcode(int vlistID, int varID, std::string &varcodestring) } static int -get_ifilevalue_code(int vlistID, const std::string &value, int nvars) +get_ifilevalue_code(int vlistID, std::string const &value, int nvars) { int code = std::stoi(value); if (code > 0 && code < 1000) @@ -75,7 +75,7 @@ get_ifilevalue_code(int vlistID, const std::string &value, int nvars) } static int -get_ifilevalue_name(int vlistID, const std::string &value, int nvars) +get_ifilevalue_name(int vlistID, std::string const &value, int nvars) { char ifilevalue[CDI_MAX_NAME]; for (int varID = 0; varID < nvars; ++varID) @@ -87,7 +87,7 @@ get_ifilevalue_name(int vlistID, const std::string &value, int nvars) } static int -getVarIDToMap(int vlistID, int nvars, const std::string &key, const std::string &value) +getVarIDToMap(int vlistID, int nvars, std::string const &key, std::string const &value) { if (key.compare("code") == 0) return get_ifilevalue_code(vlistID, value, nvars); @@ -123,13 +123,13 @@ sigfunc(int sig) } static std::string -kv_get_a_val(KVList *kvl, const std::string &key, const std::string &replacer) +kv_get_a_val(KVList *kvl, std::string const &key, std::string const &replacer) { return kvl->get_first_value(key, replacer); } KVList -maptab_search_miptab(PMList pmlist, const std::string &cmorname, const std::string &miptab, const std::string &key) +maptab_search_miptab(PMList pmlist, std::string const &cmorname, std::string const &miptab, std::string const &key) { KVList listlatest; if (pmlist.size() && !cmorname.empty() && !miptab.empty()) @@ -150,7 +150,7 @@ maptab_search_miptab(PMList pmlist, const std::string &cmorname, const std::stri } static void -handleError(std::string filename, int errnum, const std::string &argument) +handleError(std::string filename, int errnum, std::string const &argument) { if (filename.empty()) cdo_abort("ERROR (infile: '%s')! In parsing the command line:\n More than 150 values for a key are not supported.", @@ -241,7 +241,7 @@ copy_value(std::string const &value, std::vector<std::string> &values) } static char * -to_cmor(const std::string &convert) +to_cmor(std::string const &convert) { if (convert.empty()) return nullptr; return ((char *) convert.c_str()); @@ -257,7 +257,7 @@ quote_replace(std::vector<std::string> &values, int nvalues, int i) } static std::vector<std::string> -parse_string_to_values(const std::string &workfile, const std::string &pppline, int *nvalues, const std::string &keyword) +parse_string_to_values(std::string const &workfile, std::string const &pppline, int *nvalues, std::string const &keyword) { const char *pline = pppline.c_str(); std::vector<std::string> values; @@ -337,7 +337,7 @@ parse_string_to_values(const std::string &workfile, const std::string &pppline, } static void -kv_insert_vals(KVList *kvl, const std::string &key, const std::string &stringValue, bool lreplace, bool lparse) +kv_insert_vals(KVList *kvl, std::string const &key, std::string const &stringValue, bool lreplace, bool lparse) { /* For internal model and institution check if string is not null */ if (!stringValue.empty()) @@ -361,7 +361,7 @@ kv_insert_vals(KVList *kvl, const std::string &key, const std::string &stringVal } static std::vector<std::string> -kv_get_vals(KVList *kvl, const std::string &key, int *numvals) +kv_get_vals(KVList *kvl, std::string const &key, int *numvals) { std::vector<std::string> result; const KeyValues *kv = kvl->search(key); @@ -375,7 +375,7 @@ kv_get_vals(KVList *kvl, const std::string &key, int *numvals) } PMList -cdo_parse_cmor_file(const std::string &filename, bool lismap) +cdo_parse_cmor_file(std::string const &filename, bool lismap) { PMList pml; @@ -412,7 +412,7 @@ cdo_parse_cmor_file(const std::string &filename, bool lismap) } static const std::string -check_short_key(const std::string &key, bool l_short) +check_short_key(std::string const &key, bool l_short) { std::vector<std::string> short_keys = { "cn", "n", "c", "u", "cm", "vc", "p", "i", "ca", "za", "gi", "rtu", "mt", "om", "ms", "dr", @@ -458,9 +458,9 @@ check_short_key(const std::string &key, bool l_short) } static void -map_it(KVList *kvl, int vlistID, int varID, const std::string &var2map) +map_it(KVList *kvl, int vlistID, int varID, std::string const &var2map) { - for (const auto &kv : *kvl) + for (auto const &kv : *kvl) { const std::string longkey = !check_short_key(kv.key, false).empty() ? check_short_key(kv.key, false) : ""; if (longkey.empty()) @@ -487,7 +487,7 @@ map_it(KVList *kvl, int vlistID, int varID, const std::string &var2map) } static int -change_name_via_name(int vlistID, const std::string &map_name, const std::string &cmor_name) +change_name_via_name(int vlistID, std::string const &map_name, std::string const &cmor_name) { char name[CDI_MAX_NAME]; for (int varID = 0; varID < vlistNvars(vlistID); ++varID) @@ -503,7 +503,7 @@ change_name_via_name(int vlistID, const std::string &map_name, const std::string } static int -change_name_via_code(int vlistID, const std::string &map_code, const std::string &cmor_name) +change_name_via_code(int vlistID, std::string const &map_code, std::string const &cmor_name) { int codeproof = std::stol(map_code); if (!codeproof || codeproof > 1000) @@ -593,7 +593,7 @@ count_axis_ids(int *axis_ids) } static const KVList * -check_for_charvars(KVList *cmorVarLine, const std::string &key) +check_for_charvars(KVList *cmorVarLine, std::string const &key) { /***/ /* If a infile variable selector (name or code) has more than one value, it must be a character coordinate*/ @@ -632,7 +632,7 @@ check_for_charvars(KVList *cmorVarLine, const std::string &key) } static void -addcharvar(const KeyValues *charvars, int vlistID, const std::string &key, struct mapping vars[]) +addcharvar(const KeyValues *charvars, int vlistID, std::string const &key, struct mapping vars[]) { MergeVarsOnAxis withnewcharaxis; withnewcharaxis.inputNames = *charvars; @@ -720,8 +720,8 @@ addcharvar(const KeyValues *charvars, int vlistID, const std::string &key, struc } static int -maptab_via_key(const std::string &tablename, PMList pml, int vlistID, int varID, const std::string &key, - const std::string &miptabfreq) +maptab_via_key(std::string const &tablename, PMList pml, int vlistID, int varID, std::string const &key, + std::string const &miptabfreq) { char ifilevalue[CDI_MAX_NAME]; std::string cppifile; @@ -762,7 +762,7 @@ maptab_via_key(const std::string &tablename, PMList pml, int vlistID, int varID, } static int -maptab_via_cn_and_key(KVList *kvl_oname, int vlistID, int nvars, const std::string &key) +maptab_via_cn_and_key(KVList *kvl_oname, int vlistID, int nvars, std::string const &key) { const KeyValues *kv = kvl_oname->search(key); const KeyValues *kvcn = kvl_oname->search("cmor_name"); @@ -798,8 +798,8 @@ maptab_via_cn_and_key(KVList *kvl_oname, int vlistID, int nvars, const std::stri } static void -maptab_via_cmd(std::string tablename, PMList pml, const std::string &origValue, int vlistID, const std::string &key, - std::string cmorName, const std::string &miptabfreq, int filetype, const std::string &maptab) +maptab_via_cmd(std::string tablename, PMList pml, std::string const &origValue, int vlistID, std::string const &key, + std::string cmorName, std::string const &miptabfreq, int filetype, std::string const &maptab) { KVList cmorVarLine; @@ -847,8 +847,8 @@ maptab_via_cmd(std::string tablename, PMList pml, const std::string &origValue, } static void -maptab_via_cn(const std::string &tablename, PMList pml, std::vector<std::string> request, int vlistID, int numvals, - const std::string &miptabfreq, int filetype, struct mapping vars[], bool isWarn) +maptab_via_cn(std::string const &tablename, PMList pml, std::vector<std::string> request, int vlistID, int numvals, + std::string const &miptabfreq, int filetype, struct mapping vars[], bool isWarn) { for (int j = 0; j < numvals; ++j) { @@ -912,7 +912,7 @@ maptab_via_cn(const std::string &tablename, PMList pml, std::vector<std::string> } static bool -file_exist(const std::string &tfilename, bool force, const std::string &fileart, bool print) +file_exist(std::string const &tfilename, bool force, std::string const &fileart, bool print) { assert(!tfilename.empty()); size_t filesize = FileUtils::size(tfilename.c_str()); @@ -938,7 +938,7 @@ file_exist(const std::string &tfilename, bool force, const std::string &fileart, } static int -parse_kv_file(KVList *kvl, const std::string &filename) +parse_kv_file(KVList *kvl, std::string const &filename) { PMList pmkv = cdo_parse_cmor_file(filename, false); if (!pmkv.size()) return 0; @@ -959,7 +959,7 @@ parse_kv_file(KVList *kvl, const std::string &filename) } static void -check_compare_set(std::string &finalset, std::string &attribute, const std::string &attname, const std::string &defaultstr) +check_compare_set(std::string &finalset, std::string &attribute, std::string const &attname, std::string const &defaultstr) { if (finalset.empty()) { @@ -1043,7 +1043,7 @@ get_infile_attname(int vlistID, int varID, int natt, int *type, int *len) } static std::string -get_txtatt(int vlistID, int varID, const std::string &key) +get_txtatt(int vlistID, int varID, std::string const &key) { int natts; std::string returnvalue = ""; @@ -1196,7 +1196,7 @@ attErr(const std::vector<std::string> &reqAtt, int errnum) } static void -check_attr(KVList *kvl, const std::string &project_id, int vlistID) +check_attr(KVList *kvl, std::string const &project_id, int vlistID) { /* Project id moved to main void fct */ std::vector<std::string> reqAtt = { "institution", "source", "experiment_id", "rtu" }; @@ -1305,7 +1305,7 @@ check_attr(KVList *kvl, const std::string &project_id, int vlistID) } static void -check_mem(KVList *kvl, const std::string &project_id) +check_mem(KVList *kvl, std::string const &project_id) { /*Check if both is registered */ std::vector<std::string> ensindexCMIP5 = { "realization", "initialization_method", "physics_version" }; @@ -1329,7 +1329,7 @@ check_mem(KVList *kvl, const std::string &project_id) long int indexvalues[3] = { 0 }; int indexint = 0; - for (const auto &index : ensindexCMIP5) + for (auto const &index : ensindexCMIP5) { std::string indexstring = kv_get_a_val(kvl, index, ""); if (!indexstring.empty()) @@ -1366,7 +1366,7 @@ check_mem(KVList *kvl, const std::string &project_id) "Make sure it has the format 'rINTiINTpINT'", cdo_get_stream_name(0)); indexint = 0; - for (const auto &index : ensindexCMIP5) + for (auto const &index : ensindexCMIP5) { std::string index2string = std::to_string(indexvalues[indexint]); kv_insert_vals(kvl, index, index2string, true, false); @@ -1411,7 +1411,7 @@ check_mem(KVList *kvl, const std::string &project_id) long int indexvalues[4] = { 0 }; int indexint = 0; - for (const auto &index : ensindexCMIP6) + for (auto const &index : ensindexCMIP6) { std::string indexstring = kv_get_a_val(kvl, index, ""); if (!indexstring.empty()) @@ -1448,7 +1448,7 @@ check_mem(KVList *kvl, const std::string &project_id) "Make sure it has the format 'rINTiINTpINTfINT'", cdo_get_stream_name(0)); indexint = 0; - for (const auto &index : ensindexCMIP6) + for (auto const &index : ensindexCMIP6) { std::string index2string = std::to_string(indexvalues[indexint]); kv_insert_vals(kvl, index, index2string, true, false); @@ -1536,7 +1536,7 @@ read_config_files(KVList *kvl) } static int -in_list(const std::vector<std::string> &list, const std::string &needle, int num) +in_list(const std::vector<std::string> &list, std::string const &needle, int num) { for (int i = 0; i < num; ++i) if (list[i] == needle) return 1; @@ -1544,7 +1544,7 @@ in_list(const std::vector<std::string> &list, const std::string &needle, int num } static int -get_netcdf_file_action(KVList *kvl, const std::string &proj) +get_netcdf_file_action(KVList *kvl, std::string const &proj) { (void) proj; std::string chunk = kv_get_a_val(kvl, "om", "a"); @@ -1623,7 +1623,7 @@ get_calendar_ptr(int calendar) } static int -get_calendar_int(const std::string &calendar) +get_calendar_int(std::string const &calendar) { if (calendar.empty()) return -1; @@ -1670,7 +1670,7 @@ get_time_units(int taxisID) } static int -get_time_step_int(const std::string &time_step) +get_time_step_int(std::string const &time_step) { if (time_step == "seconds") return TUNIT_SECOND; @@ -1693,7 +1693,7 @@ get_time_step_int(const std::string &time_step) } static int -check_time_units(const std::string &time_units) +check_time_units(std::string const &time_units) { /* Required attribute in check_att */ int attyear, attmonth, attday, atthour, attminute, attsecond; @@ -1713,7 +1713,7 @@ check_time_units(const std::string &time_units) } static void -get_time_method(KVList *kvl, int vlistID, int varID, std::string &cmor_time_name, const std::string &project_id, int miptab_freq, +get_time_method(KVList *kvl, int vlistID, int varID, std::string &cmor_time_name, std::string const &project_id, int miptab_freq, int *time_axis) { if ((project_id == "CMIP5" || project_id == "CMIP6") && miptab_freq) switch (miptab_freq) @@ -1795,7 +1795,7 @@ get_time_method(KVList *kvl, int vlistID, int varID, std::string &cmor_time_name } static CdiDateTime -get_taxis(const std::string &required_time_units, int *timeunit) +get_taxis(std::string const &required_time_units, int *timeunit) { int attyear, attmonth, attday, atthour, attminute, attsecond; char atttimeunit[CMOR_MAX_STRING]; @@ -1811,7 +1811,7 @@ get_taxis(const std::string &required_time_units, int *timeunit) } static double * -get_branch_times(KVList *kvl, int calendar, const std::string &time_units, const std::string &project_id) +get_branch_times(KVList *kvl, int calendar, std::string const &time_units, std::string const &project_id) { if (Options::cdoVerbose) cdo_print("6.1.2. Start to compute attribute 'branch_time'."); std::string btip = kv_get_a_val(kvl, "branch_time_in_parent", ""); @@ -1969,7 +1969,7 @@ copyCV(std::string directory) #endif static void -setup_dataset(KVList *kvl, CdoStreamID streamID, int *calendar, const std::string &project_id) +setup_dataset(KVList *kvl, CdoStreamID streamID, int *calendar, std::string const &project_id) { if (Options::cdoVerbose) cdo_print("6. Start to process cmor_setup and cmor_dataset."); int netcdf_file_action = get_netcdf_file_action(kvl, project_id); @@ -2449,7 +2449,7 @@ get_strmaxlen(const std::vector<std::string> &array, size_t len) } static void -get_charvals_and_bnds(KVList *kvl, const std::string &chardim, std::vector<std::string> &fvalss, std::vector<std::string> &fbndss, +get_charvals_and_bnds(KVList *kvl, std::string const &chardim, std::vector<std::string> &fvalss, std::vector<std::string> &fbndss, std::string &funits, int *nofvals, int *nofbnds, std::string cmor_name) { bool fivedim = true; @@ -2522,7 +2522,7 @@ register_char_axis(int numchar, const std::vector<std::string> &charvals, int *a } static void -register_fourth_axis(KVList *kvl, int vlistID, int varID, const std::string &varname, int *axis_ids, const std::string &project_id, +register_fourth_axis(KVList *kvl, int vlistID, int varID, std::string const &varname, int *axis_ids, std::string const &project_id, int miptab_freq, int *mergeIDs) { (void) project_id; @@ -2670,8 +2670,8 @@ registerPsid(struct mapping vars[], int psindex, int vlistID) } static void -register_z_axis(KVList *kvl, int vlistID, int varID, int zaxisID, const std::string &varname, std::string &zaxis, int *axis_ids, - int *zfactor_id, const std::string &project_id, int miptab_freq, int *mergeIDs, struct mapping vars[], +register_z_axis(KVList *kvl, int vlistID, int varID, int zaxisID, std::string const &varname, std::string &zaxis, int *axis_ids, + int *zfactor_id, std::string const &project_id, int miptab_freq, int *mergeIDs, struct mapping vars[], CdoStreamID streamID) { char zaxisunits[CDI_MAX_NAME]; @@ -3148,7 +3148,7 @@ dimension.\n"); } */ static void -change_zaxis(KVList *kvl, int vlistID, int zaxisID, int zaxisID2, const std::string &grid_file) +change_zaxis(KVList *kvl, int vlistID, int zaxisID, int zaxisID2, std::string const &grid_file) { int a, b; a = zaxisInqSize(zaxisID); @@ -3285,7 +3285,7 @@ inquire_vals_and_bounds(int gridID, int *xnbounds, int *ynbounds, double *xcoord } static void -get_cmor_table(KVList *kvl, const std::string &project_id) +get_cmor_table(KVList *kvl, std::string const &project_id) { int gridtable_id; int cmf = 0; @@ -3753,8 +3753,8 @@ register_projection(int *grid_ids, int projID, double *ycoord_vals, double *xcoo } static void -register_grid(KVList *kvl, int vlistID, int varID, int *axis_ids, int *grid_ids, const std::string &project_id, - const std::string &cmor_name) +register_grid(KVList *kvl, int vlistID, int varID, int *axis_ids, int *grid_ids, std::string const &project_id, + std::string const &cmor_name) { int cmf = 0; int gridID = vlistInqVarGrid(vlistID, varID); @@ -4140,7 +4140,7 @@ switch_grid_info(KVList *kvl, CdoStreamID streamID, std::string grid_file, int v } static void -register_all_dimensions(KVList *kvl, CdoStreamID streamID, struct mapping vars[], int table_id, const std::string &project_id, +register_all_dimensions(KVList *kvl, CdoStreamID streamID, struct mapping vars[], int table_id, std::string const &project_id, int miptab_freq, int *time_axis, int *mergeIDs) { int cmf = 0; @@ -4508,7 +4508,7 @@ get_tunitsec(int tunit) } static JulianDate -get_cmor_time_val(KVList *kvl, int taxisID, JulianDate ref_date, int /*tunitsec*/, int calendar, const std::string &frequency, +get_cmor_time_val(KVList *kvl, int taxisID, JulianDate ref_date, int /*tunitsec*/, int calendar, std::string const &frequency, int ts_id, int time_axis) { auto vDateTime = taxisInqVdatetime(taxisID); @@ -5920,7 +5920,7 @@ static int find_cmorvar(list_t *tester, std::string cn, std::string miptabfreq) } */ static void -read_maptab(KVList *kvl, CdoStreamID streamID, const std::string &miptabfreq, struct mapping vars[]) +read_maptab(KVList *kvl, CdoStreamID streamID, std::string const &miptabfreq, struct mapping vars[]) { /***/ /* Build mapping table from a combination of two attributes if mt does not begin with / and a directory path is given @@ -6047,7 +6047,7 @@ read_maptab(KVList *kvl, CdoStreamID streamID, const std::string &miptabfreq, st } static void -replace_key(KVList *kvl, const KeyValues &kv, const std::string &newkey) +replace_key(KVList *kvl, const KeyValues &kv, std::string const &newkey) { std::vector<std::string> values(kv.nvalues); int k = 0; @@ -6063,7 +6063,7 @@ parse_cmdline(KVList *kvl, std::vector<std::string> ¶ms) if (kvl->parse_arguments(params) != 0) cdo_abort("ERROR (infile: '%s')! Could not parse command line.", cdo_get_stream_name(0)); std::vector<KeyValues> keystorm, keystosubs; - for (const auto &kv : *kvl) + for (auto const &kv : *kvl) { const std::string short_key = check_short_key(kv.key, true); if (!short_key.empty()) @@ -6081,7 +6081,7 @@ parse_cmdline(KVList *kvl, std::vector<std::string> ¶ms) } static std::string -get_mip_table(const std::string ¶ms, KVList *kvl, const std::string &project_id, bool print) +get_mip_table(std::string const ¶ms, KVList *kvl, std::string const &project_id, bool print) { std::string miptab; if (print && Options::cdoVerbose) cdo_print("2.2. Start to find a MIP table file."); @@ -6148,7 +6148,7 @@ get_mip_table(const std::string ¶ms, KVList *kvl, const std::string &project } static std::string -freq_from_path(const std::string &mip_table) +freq_from_path(std::string const &mip_table) { std::string freq; @@ -6164,7 +6164,7 @@ freq_from_path(const std::string &mip_table) } static int -get_miptab_freq(const std::string &mip_table, const std::string &project_id) +get_miptab_freq(std::string const &mip_table, std::string const &project_id) { int miptab_freq = 0; std::string freq = freq_from_path(mip_table); @@ -6226,7 +6226,7 @@ check_cmdline_mapping(KVList *kvl) } static std::string -get_project_id(KVList *kvl, const std::string ¶ms) +get_project_id(KVList *kvl, std::string const ¶ms) { if (Options::cdoVerbose) cdo_print("2.1. Start to check whether 'project_id' or 'mip_era' is denoted."); std::string project_id = "", dummy, dummy2; @@ -6306,7 +6306,7 @@ get_project_id(KVList *kvl, const std::string ¶ms) } static int -cmor_load_and_set_table(KVList *kvl, const std::string ¶m0, const std::string &project_id, std::string &mip_table) +cmor_load_and_set_table(KVList *kvl, std::string const ¶m0, std::string const &project_id, std::string &mip_table) { int table_id = 0, cmf = 0; #if (CMOR_VERSION_MAJOR == 3) diff --git a/src/CMOR_lite.cc b/src/CMOR_lite.cc index 7ab3aa680..f9b542851 100644 --- a/src/CMOR_lite.cc +++ b/src/CMOR_lite.cc @@ -22,7 +22,7 @@ #include "cdi_lockedIO.h" void -cdo_define_var_units(CmorVar &cmorVar, int vlistID2, int varID, const std::string &units) +cdo_define_var_units(CmorVar &cmorVar, int vlistID2, int varID, std::string const &units) { auto unitsOld = cdo::inq_var_units(vlistID2, varID); if (units != unitsOld) @@ -60,7 +60,7 @@ cmor_check_eval(int vlistID, const std::vector<CmorVar> &cmorVars) int numVars = cmorVars.size(); for (int varID = 0; varID < numVars; ++varID) { - const auto &cmorVar = cmorVars[varID]; + auto const &cmorVar = cmorVars[varID]; if (cmorVar.checkValid || cmorVar.check_min_mean_abs || cmorVar.check_max_mean_abs) { auto amean = cmorVar.amean; @@ -152,10 +152,10 @@ search_global_missval(PMList &pmlist, int vlistID2, bool &hasMissvals, double &m auto kvlist = pmlist.getKVListVentry(hentry); if (kvlist) { - for (const auto &kv : *kvlist) + for (auto const &kv : *kvlist) { - const auto &key = kv.key; - const auto &value = kv.values[0]; + auto const &key = kv.key; + auto const &value = kv.values[0]; if (kv.nvalues != 1 || value.empty()) continue; if (key == "missing_value") @@ -203,10 +203,10 @@ apply_cmor_list(PMList &pmlist, int vlistID2, std::vector<CmorVar> &cmorVars) { auto hasValidMin = false, hasValidMax = false; - for (const auto &kv : *kvlist) + for (auto const &kv : *kvlist) { - const auto &key = kv.key; - const auto &value = kv.values[0]; + auto const &key = kv.key; + auto const &value = kv.values[0]; if (kv.nvalues != 1 || value.empty()) continue; auto value_cstr = value.c_str(); @@ -458,7 +458,7 @@ public: size_t numMissVals; cdo_read_field(streamID1, array.data(), &numMissVals); - const auto &var2 = varList2.vars[varID2]; + auto const &var2 = varList2.vars[varID2]; auto missval = var2.missval; auto gridsize = var2.gridsize; if (var2.nwpv != CDI_REAL) gridsize *= 2; diff --git a/src/CMOR_table.cc b/src/CMOR_table.cc index 6709136eb..094d10a28 100644 --- a/src/CMOR_table.cc +++ b/src/CMOR_table.cc @@ -19,11 +19,11 @@ dump_cmor_table(const PMList &pmlist) { printf("# Number of lists: %zu\n", pmlist.size()); int i = 0; - for (const auto &kvlist : pmlist) + for (auto const &kvlist : pmlist) { printf("# list ID: %d; Number of elements: %zu\n", i, kvlist.size()); printf("&%s\n", kvlist.name.c_str()); - for (const auto &kv : kvlist) { printf(" %s = %s\n", kv.key.c_str(), kv.values[0].c_str()); } + for (auto const &kv : kvlist) { printf(" %s = %s\n", kv.key.c_str(), kv.values[0].c_str()); } printf("/\n"); ++i; } @@ -39,16 +39,16 @@ conv_cmor_table(const PMList &pmlist) bool hasmissval = false; double missval = 0; - for (const auto &kvlist : pmlist) + for (auto const &kvlist : pmlist) { - const auto &listname = kvlist.name; + auto const &listname = kvlist.name; if (listname.starts_with(hname)) { - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; - const auto &value = kv.values[0]; + auto const &key = kv.key; + auto const &value = kv.values[0]; if (key == "missing_value") { missval = std::stof(value); @@ -59,10 +59,10 @@ conv_cmor_table(const PMList &pmlist) else if (listname.starts_with(vname)) { printf("&%s\n", "parameter"); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; - const auto &value = kv.values[0]; + auto const &key = kv.key; + auto const &value = kv.values[0]; int vlen = value.size(); int start = 0; @@ -125,7 +125,7 @@ public: auto operatorID = cdo_operator_id(); if (cdo_operator_argc() != 1) cdo_abort("Too few arguments!"); - const auto &filename = cdo_operator_argv(0); + auto const &filename = cdo_operator_argv(0); if (Options::cdoVerbose) cdo_print("Parse file: %s", filename); diff --git a/src/Cat.cc b/src/Cat.cc index 81b992f24..6fa6ad56d 100644 --- a/src/Cat.cc +++ b/src/Cat.cc @@ -138,7 +138,7 @@ public: { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (hasConstVars && tsID2 > 0 && tsID1 == 0 && var1.isConstant) continue; cdo_def_field(streamID2, varID, levelID); diff --git a/src/Change.cc b/src/Change.cc index d74f48a5a..a48468f1d 100644 --- a/src/Change.cc +++ b/src/Change.cc @@ -27,7 +27,7 @@ static void change_code(const VarList &varList1, int vlistID2, int nch, const std::vector<int> &chints) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { for (int i = 0; i < nch; i += 2) if (var1.code == chints[i]) vlistDefVarCode(vlistID2, var1.ID, chints[i + 1]); @@ -37,7 +37,7 @@ change_code(const VarList &varList1, int vlistID2, int nch, const std::vector<in static void change_tabnum(const VarList &varList1, int vlistID2, int nch, const std::vector<int> &chints) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { auto tabnum = tableInqNum(vlistInqVarTable(vlistID2, var1.ID)); for (int i = 0; i < nch; i += 2) @@ -52,7 +52,7 @@ change_tabnum(const VarList &varList1, int vlistID2, int nch, const std::vector< static void change_param(const VarList &varList1, int vlistID2, int nch, const std::vector<const char *> &chnames) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { if (Options::cdoVerbose) { @@ -74,7 +74,7 @@ change_name(const VarList &varList1, int vlistID2, int nch, const std::vector<co for (int i = 0; i < npairs; ++i) vpairs[i].second = chnames[i * 2 + 1]; std::vector<bool> namefound(npairs, false); - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { for (int i = 0; i < npairs; ++i) if (var1.name == vpairs[i].first) @@ -172,7 +172,7 @@ change_name(const VarList &varList1, int vlistID2, int nch, const std::vector<co static void change_unit(const VarList &varList1, int vlistID2, int nch, const std::vector<const char *> &chnames) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { for (int i = 0; i < nch; i += 2) if (var1.units == chnames[i]) cdiDefKeyString(vlistID2, var1.ID, CDI_KEY_UNITS, chnames[i + 1]); @@ -243,7 +243,7 @@ change_varLevel(int varID, int vlistID2, const std::vector<double> &chlevels) static void change_levelByCode(int chcode, const VarList &varList1, int vlistID2, const std::vector<double> &chlevels) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { if (var1.code == chcode) { @@ -258,7 +258,7 @@ change_levelByCode(int chcode, const VarList &varList1, int vlistID2, const std: static void change_levelByName(const char *chname, const VarList &varList1, int vlistID2, const std::vector<double> &chlevels) { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { if (var1.name == chname) { diff --git a/src/Change_e5slm.cc b/src/Change_e5slm.cc index 8699f9085..2f31aa3f5 100644 --- a/src/Change_e5slm.cc +++ b/src/Change_e5slm.cc @@ -105,7 +105,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (gridsize != var.gridsize) cdo_abort("gridsize differ!"); auto code = var.code; diff --git a/src/Cloudlayer.cc b/src/Cloudlayer.cc index 2bc9db566..c5c4bfaa2 100644 --- a/src/Cloudlayer.cc +++ b/src/Cloudlayer.cc @@ -18,7 +18,7 @@ /* ================================================= */ static void -layer_cloud(const Varray<double> &cc, Varray<double> &ll, long maxLevIndex, long minLevIndex, long dimgp) +layer_cloud(Varray<double> const &cc, Varray<double> &ll, long maxLevIndex, long minLevIndex, long dimgp) { constexpr double ZEPSEC = 1.0 - 1.0e-12; @@ -38,14 +38,14 @@ layer_cloud(const Varray<double> &cc, Varray<double> &ll, long maxLevIndex, long } static void -vct2plev(const Varray<double> &vct, Varray<double> &plevs, long nlevels) +vct2plev(Varray<double> const &vct, Varray<double> &plevs, long nlevels) { constexpr double SCALESLP = 101325.0; for (long k = 0; k < nlevels; ++k) plevs[k] = vct[k] + vct[k + nlevels] * SCALESLP; } static void -hl_index(long &maxLevIndex, long &minLevIndex, double pmax, double pmin, long nlevels, const Varray<double> &levels) +hl_index(long &maxLevIndex, long &minLevIndex, double pmax, double pmin, long nlevels, Varray<double> const &levels) { maxLevIndex = -1; minLevIndex = -1; @@ -66,7 +66,7 @@ hl_index(long &maxLevIndex, long &minLevIndex, double pmax, double pmin, long nl } static void -pl_index(long &maxLevIndex, long &minLevIndex, double pmax, double pmin, long nlevels, const Varray<double> &levels) +pl_index(long &maxLevIndex, long &minLevIndex, double pmax, double pmin, long nlevels, Varray<double> const &levels) { maxLevIndex = -1; minLevIndex = -1; @@ -146,7 +146,7 @@ public: auto aclcac_code = 223; - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { zaxisID = var1.zaxisID; auto code = var1.code; @@ -175,7 +175,7 @@ public: cdo_abort("Cloud cover (parameter 223) not found!"); } - const auto &aclcacVar = varList1.vars[aclcacID]; + auto const &aclcacVar = varList1.vars[aclcacID]; missval = aclcacVar.missval; gridID = aclcacVar.gridID; zaxisID = aclcacVar.zaxisID; diff --git a/src/Collgrid.cc b/src/Collgrid.cc index 8646f59fe..05372d6cf 100644 --- a/src/Collgrid.cc +++ b/src/Collgrid.cc @@ -266,7 +266,7 @@ gen_coll_grid(int numGrids, int numFiles, std::vector<CollgridInfo> &collgridInf } /* static void -coll_cells_reg2d(const Field &field1, Field &field2, const CollgridInfo &collgridInfo, size_t nlon) +coll_cells_reg2d(Field const &field1, Field &field2, const CollgridInfo &collgridInfo, size_t nlon) { auto nx = collgridInfo.nx; auto ny = collgridInfo.ny; @@ -276,7 +276,7 @@ coll_cells_reg2d(const Field &field1, Field &field2, const CollgridInfo &collgri auto offset1 = j * nx; auto offset2 = collgridInfo.offset + j * nlon; - auto func = [&](const auto &v1, auto &v2, auto n) { + auto func = [&](auto const &v1, auto &v2, auto n) { for (size_t i = 0; i < nx; ++i) { v2[offset2 + i] = v1[offset1 + i]; } }; field_operation2(func, field1, field2); @@ -284,9 +284,9 @@ coll_cells_reg2d(const Field &field1, Field &field2, const CollgridInfo &collgri } */ static void -collect_cells(const Field &field1, Field &field2, const std::vector<long> &cellIndex) +collect_cells(Field const &field1, Field &field2, const std::vector<long> &cellIndex) { - auto func = [&](const auto &v1, auto &v2, auto n) { + auto func = [&](auto const &v1, auto &v2, auto n) { for (size_t i = 0; i < n; ++i) { v2[cellIndex[i]] = v1[i]; } }; field_operation2(func, field1, field2, field1.size); @@ -299,7 +299,7 @@ get_var_gridindex(int vlistID, const VarList &varList) auto numGrids = vlistNumGrids(vlistID); std::vector<int> varGridIndex(numVars, 0); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { for (int index = 0; index < numGrids; ++index) { @@ -332,7 +332,7 @@ get_gridinfo(int vlistID, const VarList &varList, const std::vector<int> &varGri int globalEdgeIndicesID = -1; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; // clang-format off if (var.name == "global_cell_indices") globalCellIndicesID = varID; else if (var.name == "global_vert_indices") globalVertIndicesID = varID; @@ -474,7 +474,7 @@ public: collgridInfo[fileID].varList = VarList(vlistID); } - const auto &varList1 = collgridInfo[0].varList; + auto const &varList1 = collgridInfo[0].varList; vlistID1 = collgridInfo[0].vlistID; vlistClearFlag(vlistID1); diff --git a/src/Command.cc b/src/Command.cc index 50efa273b..6d4b78603 100644 --- a/src/Command.cc +++ b/src/Command.cc @@ -38,16 +38,16 @@ static Varray<double> gl_data; static int Done = 0; -static int com_help(const std::string &); -static int com_list(const std::string &); -static int com_quit(const std::string &); -static int com_stat(const std::string &); -static int com_set(const std::string &); -static int com_vars(const std::string &); +static int com_help(std::string const &); +static int com_list(std::string const &); +static int com_quit(std::string const &); +static int com_stat(std::string const &); +static int com_set(std::string const &); +static int com_vars(std::string const &); struct command_t { - int (*func)(const std::string &); // Function to call to do the job. + int (*func)(std::string const &); // Function to call to do the job. const std::string name; // User printable name of the function. const std::string doc; // Documentation for this function. }; @@ -76,7 +76,7 @@ valid_argument(char *caller, char *arg) */ // Print out help for ARG, or for all of the commands if ARG is not present. static int -com_help(const std::string &arg) +com_help(std::string const &arg) { int printed = 0; @@ -111,7 +111,7 @@ com_help(const std::string &arg) // List the file(s) named in arg static int -com_list(const std::string &arg) +com_list(std::string const &arg) { (void) (arg); @@ -120,7 +120,7 @@ com_list(const std::string &arg) // The user wishes to quit using this program. Just set DONE non-zero. static int -com_quit(const std::string &arg) +com_quit(std::string const &arg) { (void) (arg); @@ -130,11 +130,11 @@ com_quit(const std::string &arg) } static int -com_stat(const std::string &arg) +com_stat(std::string const &arg) { (void) (arg); // unused - const auto &var = varList.vars[gl_varID]; + auto const &var = varList.vars[gl_varID]; auto name = var.name.c_str(); auto tsID2 = gl_tsID2; @@ -181,7 +181,7 @@ paramWarning(const char *name, const char *cstring, const char *endptr) } int -param2int(const std::string &str) +param2int(std::string const &str) { char *endptr = nullptr; int ival = (int) strtol(str.c_str(), &endptr, 10); @@ -329,7 +329,7 @@ set_var(const std::vector<std::string> &argv) } static int -com_set(const std::string &arg) +com_set(std::string const &arg) { printf("com_set: >%s<\n", arg.c_str()); if (arg.empty()) @@ -353,7 +353,7 @@ com_set(const std::string &arg) } static int -com_vars(const std::string &arg) +com_vars(std::string const &arg) { char paramstr[32]; @@ -361,7 +361,7 @@ com_vars(const std::string &arg) for (int varID = 0; varID < gl_numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; cdiParamToString(var.param, paramstr, sizeof(paramstr)); fprintf(stdout, "varID=%3d, param=%s, name=%s, longname=\"%s\", units=\"%s\"\n", varID + 1, paramstr, var.name.c_str(), @@ -375,7 +375,7 @@ com_vars(const std::string &arg) * name. */ static const command_t * -find_command(const std::string &name) +find_command(std::string const &name) { for (int i = 0; i < ncommands; ++i) if (name == commands[i].name) return &commands[i]; @@ -385,7 +385,7 @@ find_command(const std::string &name) // Execute a command line. static int -execute_line(const std::string &line) +execute_line(std::string const &line) { if (line.empty()) return 0; @@ -415,7 +415,7 @@ execute_line(const std::string &line) } std::string -trim(const std::string &str, const std::string &chars = "\t\n\v\f\r ") +trim(std::string const &str, std::string const &chars = "\t\n\v\f\r ") { auto first = str.find_first_not_of(chars); if (std::string::npos == first) return str; @@ -448,7 +448,7 @@ peakRSS_string() } static void -read_line(const std::string &p_prompt, std::string &line) +read_line(std::string const &p_prompt, std::string &line) { fputs(p_prompt.c_str(), stdout); if (Options::cdoVerbose) @@ -490,7 +490,7 @@ run_demo() gl_tsID2 = -1; for (int varID = 0; varID < gl_numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; auto nlevels = var.nlevels; for (int levelID = 0; levelID < nlevels; ++levelID) { diff --git a/src/Comp.cc b/src/Comp.cc index 57d43c4f3..9cc4922ff 100644 --- a/src/Comp.cc +++ b/src/Comp.cc @@ -27,7 +27,7 @@ #include "field_functions.h" static auto func_comp - = [](auto hasMissvals, auto n, auto mv1, auto mv2, const auto &vIn1, const auto &vIn2, auto &vOut, auto binary_operator) { + = [](auto hasMissvals, auto n, auto mv1, auto mv2, auto const &vIn1, auto const &vIn2, auto &vOut, auto binary_operator) { if (hasMissvals) { if (std::isnan(mv1) || std::isnan(mv2)) @@ -224,13 +224,13 @@ public: array_copy(gridsize, &vardata[varID][offset], arrayx2); } - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto datatype1 = var1.dataType; auto gridsize1 = var1.gridsize; auto missval1 = var1.missval; auto xvarID = (fillType == FillType::REC) ? 0 : varID; - const auto &var2 = varList2.vars[xvarID]; + auto const &var2 = varList2.vars[xvarID]; auto datatype2 = var2.dataType; auto gridsize2 = var2.gridsize; auto missval2 = var2.missval; diff --git a/src/Compc.cc b/src/Compc.cc index 295b81952..dbe73bb7a 100644 --- a/src/Compc.cc +++ b/src/Compc.cc @@ -138,7 +138,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); diff --git a/src/Complextorect.cc b/src/Complextorect.cc index db0c1939b..ea4dd9f53 100644 --- a/src/Complextorect.cc +++ b/src/Complextorect.cc @@ -106,7 +106,7 @@ public: cdo_def_field(streamID2, varID, levelID); cdo_def_field(streamID3, varID, levelID); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto gridsize = var1.gridsize; size_t numMissVals; diff --git a/src/Cond.cc b/src/Cond.cc index cd47c678c..7f96bae1b 100644 --- a/src/Cond.cc +++ b/src/Cond.cc @@ -20,7 +20,7 @@ #include "cdo_fill.h" static void -operator_IFTHEN(size_t n, double mv1, double mv2, const Varray<double> &vIn1, const Varray<double> &vIn2, Varray<double> &vOut) +operator_IFTHEN(size_t n, double mv1, double mv2, Varray<double> const &vIn1, Varray<double> const &vIn2, Varray<double> &vOut) { if (std::isnan(mv1)) for (size_t i = 0; i < n; ++i) vOut[i] = (fp_is_not_equal(vIn1[i], mv1) && fp_is_not_equal(vIn1[i], 0.0)) ? vIn2[i] : mv2; @@ -29,7 +29,7 @@ operator_IFTHEN(size_t n, double mv1, double mv2, const Varray<double> &vIn1, co } static void -operator_IFNOTTHEN(size_t n, double mv1, double mv2, const Varray<double> &vIn1, const Varray<double> &vIn2, Varray<double> &vOut) +operator_IFNOTTHEN(size_t n, double mv1, double mv2, Varray<double> const &vIn1, Varray<double> const &vIn2, Varray<double> &vOut) { if (std::isnan(mv1)) for (size_t i = 0; i < n; ++i) vOut[i] = (fp_is_not_equal(vIn1[i], mv1) && fp_is_equal(vIn1[i], 0.0)) ? vIn2[i] : mv2; @@ -189,8 +189,8 @@ public: numMissVals1 = varnumMissVals1[varID][levelID]; } - const auto &var1 = varList1.vars[varID]; - const auto &var2 = varList2.vars[varID]; + auto const &var1 = varList1.vars[varID]; + auto const &var2 = varList2.vars[varID]; auto ngp = var2.gridsize; auto missval2 = var2.missval; if (fieldID == 0 || filltype != FILL_REC) missval1 = var1.missval; diff --git a/src/Cond2.cc b/src/Cond2.cc index 69cb064d0..948367b51 100644 --- a/src/Cond2.cc +++ b/src/Cond2.cc @@ -177,8 +177,8 @@ public: numMissVals1 = varnumMissVals1[varID][levelID]; } - const auto &var1 = varList1.vars[varID]; - const auto &var2 = varList2.vars[varID]; + auto const &var1 = varList1.vars[varID]; + auto const &var2 = varList2.vars[varID]; auto gridsize = var2.gridsize; auto missval2 = var2.missval; if (fieldID == 0 || filltype != FILL_REC) missval1 = var1.missval; diff --git a/src/Condc.cc b/src/Condc.cc index 998311dbf..e42f15bd1 100644 --- a/src/Condc.cc +++ b/src/Condc.cc @@ -116,7 +116,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); diff --git a/src/Consecstat.cc b/src/Consecstat.cc index f3276b72d..9736ec1ea 100644 --- a/src/Consecstat.cc +++ b/src/Consecstat.cc @@ -30,14 +30,14 @@ #define SWITCHWARN "Hit default case! This should never happen (%s).\n" static void -selEndOfPeriod(Field &periods, const Field &history, const Field ¤t, int isLastTimestep) +selEndOfPeriod(Field &periods, Field const &history, Field const ¤t, int isLastTimestep) { auto pmissval = periods.missval; auto &parray = periods.vec_d; auto hmissval = history.missval; - const auto &harray = history.vec_d; + auto const &harray = history.vec_d; auto cmissval = current.missval; - const auto &carray = current.vec_d; + auto const &carray = current.vec_d; auto len = gridInqSize(periods.grid); if (len != gridInqSize(current.grid) || (gridInqSize(current.grid) != gridInqSize(history.grid))) @@ -205,7 +205,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(istreamID); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field.init(var1); cdo_read_field(istreamID, field); diff --git a/src/Copy.cc b/src/Copy.cc index c390cafc5..fd43fca75 100644 --- a/src/Copy.cc +++ b/src/Copy.cc @@ -19,7 +19,7 @@ #include "cdo_options.h" bool -is_fdb_stream(const std::string &filename) +is_fdb_stream(std::string const &filename) { return (filename.size() >= 4 && filename.starts_with("fdb:")); } @@ -157,7 +157,7 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (hasConstantFields && tsID2 > 0 && tsID1 == 0 && var1.isConstant) continue; cdo_def_field(streamID2, varID, levelID); diff --git a/src/DCW_util.cc b/src/DCW_util.cc index 1818fe69c..bce1add29 100644 --- a/src/DCW_util.cc +++ b/src/DCW_util.cc @@ -10,7 +10,7 @@ #include "dcw_reader.h" static void -print_polygons(DCW_Lists &dcw_lists, const std::string &codeNames) +print_polygons(DCW_Lists &dcw_lists, std::string const &codeNames) { auto codeList = split_string(codeNames, "\\+"); @@ -18,7 +18,7 @@ print_polygons(DCW_Lists &dcw_lists, const std::string &codeNames) printf("# Digital Chart of the World\n"); printf("# Region for country:"); - for (const auto &code : codeList) printf(" %s", code.c_str()); + for (auto const &code : codeList) printf(" %s", code.c_str()); printf("\n"); codeList = dcw_expand_code_list(dcw_lists, codeList); diff --git a/src/Deltat.cc b/src/Deltat.cc index ae70b914a..b8a24a2dc 100644 --- a/src/Deltat.cc +++ b/src/Deltat.cc @@ -18,7 +18,7 @@ template <typename T> static void -varray_deltat(size_t len, const Varray<T> &v0, const Varray<T> &v1, Varray<T> &v2, double factor, double mv) +varray_deltat(size_t len, Varray<T> const &v0, Varray<T> const &v1, Varray<T> &v2, double factor, double mv) { assert(len > 0); assert(v0.size() > 0); @@ -39,7 +39,7 @@ varray_deltat(size_t len, const Varray<T> &v0, const Varray<T> &v1, Varray<T> &v template <typename T> static void -varray_deltat(size_t len, const Varray<T> &v0, const Varray<T> &v1, Varray<T> &v2, double factor) +varray_deltat(size_t len, Varray<T> const &v0, Varray<T> const &v1, Varray<T> &v2, double factor) { assert(len > 0); @@ -47,7 +47,7 @@ varray_deltat(size_t len, const Varray<T> &v0, const Varray<T> &v1, Varray<T> &v } void -field_deltat(const Field &field0, const Field &field1, Field &field2, double factor) +field_deltat(Field const &field0, Field const &field1, Field &field2, double factor) { if (field1.memType != field2.memType) cdo_abort("Interal error, memType of field1 and field2 differ!"); @@ -154,7 +154,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field1.init(var1); cdo_read_field(streamID1, field1); diff --git a/src/Depth.cc b/src/Depth.cc index c3cdfebc4..7e96b461a 100644 --- a/src/Depth.cc +++ b/src/Depth.cc @@ -14,7 +14,7 @@ template <typename T> static void -calc_full_depth(size_t gridsize, size_t nlevels, const Varray<T> &thick_c, const Varray<T> &stretch_c, const Varray<T> &zos, +calc_full_depth(size_t gridsize, size_t nlevels, Varray<T> const &thick_c, Varray<T> const &stretch_c, Varray<T> const &zos, Varray<T> &fullDepth) { ranges::fill_n(fullDepth.begin(), gridsize, 0.0); diff --git a/src/Derivepar.cc b/src/Derivepar.cc index 557376147..598de03c3 100644 --- a/src/Derivepar.cc +++ b/src/Derivepar.cc @@ -29,7 +29,7 @@ void geopot_height_half(double *gheight, const double *ta_fl, const double *hus_ void geopot_height_full(double *gheight, const double *ta_fl, const double *hus_fl, const double *p_hl, long ngp, long nlev); static void -check_range_var2d(int stepNum, const Varray<double> &var2d, double rMin, double rMax, const char *varname) +check_range_var2d(int stepNum, Varray<double> const &var2d, double rMin, double rMax, const char *varname) { auto mm = varray_min_max(var2d); if (mm.min < rMin || mm.max > rMax) @@ -37,7 +37,7 @@ check_range_var2d(int stepNum, const Varray<double> &var2d, double rMin, double } static void -check_range_var3d(int stepNum, int nlevels, size_t gridsize, const Varray<double> &var3d, double rMin, double rMax, +check_range_var3d(int stepNum, int nlevels, size_t gridsize, Varray<double> const &var3d, double rMin, double rMax, const char *varname) { static auto printWarning = true; @@ -194,7 +194,7 @@ public: { if (operatorID == SEALEVELPRESSURE) varIDs.husID = -1; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.gridType == GRID_SPECTRAL && var.zaxisType == ZAXIS_HYBRID) cdo_abort("Spectral data on model level unsupported!"); if (var.gridType == GRID_SPECTRAL) cdo_abort("Spectral data unsupported!"); } diff --git a/src/Detrend.cc b/src/Detrend.cc index eccdcbc15..c6043e01a 100644 --- a/src/Detrend.cc +++ b/src/Detrend.cc @@ -32,19 +32,19 @@ get_parameter(bool &tstepIsEqual) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "equal") tstepIsEqual = parameter_to_bool(value); @@ -113,7 +113,7 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { auto gridsize = var.gridsize; @@ -169,7 +169,7 @@ public: auto numVars = varList.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; if (var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { @@ -271,7 +271,7 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID && var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { diff --git a/src/Diff.cc b/src/Diff.cc index 1c35fb813..6d2968980 100644 --- a/src/Diff.cc +++ b/src/Diff.cc @@ -77,20 +77,20 @@ diff_kernel_mv(double v1, double v2, double missval1, double missval2, DiffResul } static DiffResult -diff(size_t n, const Field &field1, const Field &field2) +diff(size_t n, Field const &field1, Field const &field2) { DiffResult diffParam; auto hasMissvals = (field1.numMissVals || field2.numMissVals); if (hasMissvals) { - auto func = [&](const auto &v1, const auto &v2, double mv1, double mv2) { + auto func = [&](auto const &v1, auto const &v2, double mv1, double mv2) { for (size_t i = 0; i < n; ++i) { diff_kernel_mv(v1[i], v2[i], mv1, mv2, diffParam); } }; field_operation2(func, field1, field2, field1.missval, field2.missval); } else { - auto func = [&](const auto &v1, const auto &v2) { + auto func = [&](auto const &v1, auto const &v2) { for (size_t i = 0; i < n; ++i) { diff_kernel(v1[i], v2[i], diffParam); } }; field_operation2(func, field1, field2); @@ -120,7 +120,7 @@ diff_kernel2(double v1, double v2, DiffResult &result) } static DiffResult -diff2(size_t n, const Field &field1, const Field &field2) +diff2(size_t n, Field const &field1, Field const &field2) { DiffResult diffParam; auto hasMissvals = (field1.numMissVals || field2.numMissVals); @@ -135,7 +135,7 @@ diff2(size_t n, const Field &field1, const Field &field2) } else { - auto func = [&](const auto &v1, const auto &v2) { + auto func = [&](auto const &v1, auto const &v2) { for (size_t i = 0; i < n; ++i) { diff_kernel2(v1[i], v2[i], diffParam); } }; field_operation2(func, field1, field2); @@ -176,19 +176,19 @@ get_parameter(void) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "abslim") params.absLimit = parameter_to_double(value); @@ -243,7 +243,7 @@ print_header2(int operfunc, DiffParam ¶ms) } void -print_diff(const Field &field1, const Field &field2, int fieldNumber, CdoVar const &var1, int levelID, int operfunc, +print_diff(Field const &field1, Field const &field2, int fieldNumber, CdoVar const &var1, int levelID, int operfunc, CdiDateTime const &vDateTime, DiffParam ¶ms, int operfunc2, const DiffResult &dr) { if (params.printHeader) (operfunc2 == 0) ? print_header(operfunc, params) : print_header2(operfunc, params); @@ -385,7 +385,7 @@ public: if (params.mapFlag == MapFlag::Undefined) { varList_compare(varList1, varList2); - for (const auto &var : varList1.vars) mapOfVarIDs[var.ID] = var.ID; + for (auto const &var : varList1.vars) mapOfVarIDs[var.ID] = var.ID; } else { varList_map(varList1, varList2, params.mapFlag, mapOfVarIDs); } diff --git a/src/Distgrid.cc b/src/Distgrid.cc index 974cbd109..8cc95c52a 100644 --- a/src/Distgrid.cc +++ b/src/Distgrid.cc @@ -38,8 +38,8 @@ struct DistgridInfo }; static void -calc_boundbox(size_t gridsize2, size_t nv, bool withBounds, const Varray<double> &xvals2, const Varray<double> &yvals2, - const Varray<double> &xbounds2, const Varray<double> &ybounds2, double *lonBounds, double *latBounds) +calc_boundbox(size_t gridsize2, size_t nv, bool withBounds, Varray<double> const &xvals2, Varray<double> const &yvals2, + Varray<double> const &xbounds2, Varray<double> const &ybounds2, double *lonBounds, double *latBounds) { constexpr double Pi = M_PI; constexpr double Pi2 = 2.0 * M_PI; @@ -301,7 +301,7 @@ gen_dist_grids(const GridInfo1 &gridInfo1, std::vector<DistgridInfo> &distgridIn } static void -dist_cells_reg2d(const Field &field1, Field &field2, const DistgridInfo &distgridInfo, size_t nlon) +dist_cells_reg2d(Field const &field1, Field &field2, const DistgridInfo &distgridInfo, size_t nlon) { auto nx = distgridInfo.nx; auto ny = distgridInfo.ny; @@ -311,7 +311,7 @@ dist_cells_reg2d(const Field &field1, Field &field2, const DistgridInfo &distgri auto offset1 = distgridInfo.offset + j * nlon; auto offset2 = j * nx; - auto func = [&](const auto &v1, auto &v2) { + auto func = [&](auto const &v1, auto &v2) { for (size_t i = 0; i < nx; ++i) { v2[offset2 + i] = v1[offset1 + i]; } }; field_operation2(func, field1, field2); @@ -319,12 +319,12 @@ dist_cells_reg2d(const Field &field1, Field &field2, const DistgridInfo &distgri } static void -dist_cells(const Field &field1, Field &field2, const DistgridInfo &distgridInfo) +dist_cells(Field const &field1, Field &field2, const DistgridInfo &distgridInfo) { auto gridsize = distgridInfo.gridsize; - const auto &cellIndex = distgridInfo.cellindex; + auto const &cellIndex = distgridInfo.cellindex; - auto func = [&](const auto &v1, auto &v2) { + auto func = [&](auto const &v1, auto &v2) { for (size_t i = 0; i < gridsize; ++i) { v2[i] = v1[cellIndex[i]]; } }; field_operation2(func, field1, field2); @@ -484,8 +484,8 @@ public: { auto gridsize2 = distgridInfo[0][index].gridsize; auto offset = distgridInfo[0][index].offset; - const auto &lons = distgridInfo[0][index].lonBounds; - const auto &lats = distgridInfo[0][index].latBounds; + auto const &lons = distgridInfo[0][index].lonBounds; + auto const &lats = distgridInfo[0][index].latBounds; printf("--- # %zu\n", index + 1); printf("filename=%s\n", fileName.c_str()); printf("numcells=%zu\n", gridsize2); @@ -504,7 +504,7 @@ public: auto numFields = cdo_stream_inq_timestep(streamID1, tsID); if (numFields == 0) break; - for (const auto &streamID : streamIDs) cdo_def_timestep(streamID, tsID); + for (auto const &streamID : streamIDs) cdo_def_timestep(streamID, tsID); for (int fieldID = 0; fieldID < numFields; ++fieldID) { @@ -545,8 +545,8 @@ public: { cdo_stream_close(streamID1); - for (const auto &streamID : streamIDs) cdo_stream_close(streamID); - for (const auto &vlistID : vlistIDs) vlistDestroy(vlistID); + for (auto const &streamID : streamIDs) cdo_stream_close(streamID); + for (auto const &vlistID : vlistIDs) vlistDestroy(vlistID); for (int i = 0; i < numGrids; ++i) for (size_t index = 0; index < nsplit; ++index) gridDestroy(distgridInfo[i][index].gridID); diff --git a/src/Duplicate.cc b/src/Duplicate.cc index 7bd2a6ba8..755390b60 100644 --- a/src/Duplicate.cc +++ b/src/Duplicate.cc @@ -120,11 +120,11 @@ public: for (int varID = 0; varID < nvars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; fieldOut.init(var1); for (int levelID = 0; levelID < var1.nlevels; ++levelID) { - const auto &field = varsData[tsID][varID][levelID]; + auto const &field = varsData[tsID][varID][levelID]; if (field.hasData()) { field_copy(field, fieldOut); diff --git a/src/EOFs.cc b/src/EOFs.cc index d750e1a2a..38d766c7a 100644 --- a/src/EOFs.cc +++ b/src/EOFs.cc @@ -35,7 +35,7 @@ // No missing value support added so far! static void -scale_eigvec_grid(Varray<double> &out, int tsID, size_t npack, const std::vector<size_t> &pack, const Varray<double> &weight, +scale_eigvec_grid(Varray<double> &out, int tsID, size_t npack, const std::vector<size_t> &pack, Varray<double> const &weight, const Varray2D<double> &covar, double sumWeights) { for (size_t i = 0; i < npack; ++i) out[pack[i]] = covar[tsID][i] / std::sqrt(weight[pack[i]] / sumWeights); @@ -43,7 +43,7 @@ scale_eigvec_grid(Varray<double> &out, int tsID, size_t npack, const std::vector static void scale_eigvec_time(Varray<double> &out, int tsID, int numSteps, size_t npack, const std::vector<size_t> &pack, - const Varray<double> &weight, const Varray2D<double> &covar, const Varray2D<double> &data, double missval, + Varray<double> const &weight, const Varray2D<double> &covar, const Varray2D<double> &data, double missval, double sumWeights) { #ifdef _OPENMP @@ -434,12 +434,12 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; for (int levelID = 0; levelID < var1.nlevels; ++levelID) { auto &eofData = eofData2D[varID][levelID]; - const auto &data = eofData.data; + auto const &data = eofData.data; auto &covar = eofData.covar; if (eofData.first_call) @@ -484,10 +484,10 @@ public: #endif for (int j1 = 0; j1 < numSteps; ++j1) { - const auto &df1p = data[j1]; + auto const &df1p = data[j1]; for (int j2 = j1; j2 < numSteps; ++j2) { - const auto &df2p = data[j2]; + auto const &df2p = data[j2]; double sum = 0.0; for (size_t i = 0; i < npack; ++i) sum += weights[pack[i]] * df1p[i] * df2p[i]; covar[j2][j1] = covar[j1][j2] = sum / sum_w / numSteps; diff --git a/src/EcaEtccdi.cc b/src/EcaEtccdi.cc index a76bf5615..5aba77fdc 100644 --- a/src/EcaEtccdi.cc +++ b/src/EcaEtccdi.cc @@ -358,7 +358,7 @@ etccdi_op(ETCCDI_REQUEST &request) field2D_init(varsPtemp[dayOfYear], varList2, FIELD_VEC); hsets[dayOfYear].create(numVars); - for (const auto &var : varList1.vars) hsets[dayOfYear].createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hsets[dayOfYear].createVarLevels(var.ID, var.nlevels, var.gridsize); } for (int fieldID = 0; fieldID < numFields; ++fieldID) @@ -459,7 +459,7 @@ etccdi_op(ETCCDI_REQUEST &request) for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (var1.isConstant) continue; for (int levelID = 0; levelID < var1.nlevels; ++levelID) { @@ -509,7 +509,7 @@ etccdi_op(ETCCDI_REQUEST &request) { for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (var1.isConstant) continue; for (int levelID = 0; levelID < var1.nlevels; ++levelID) { diff --git a/src/EcaIndices.cc b/src/EcaIndices.cc index 3552c32e2..f4ac93d42 100644 --- a/src/EcaIndices.cc +++ b/src/EcaIndices.cc @@ -346,7 +346,7 @@ class EcaIndices : public Process { protected: - EcaIndices(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module, + EcaIndices(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module, std::function<void(Request p_request)> p_eca_func) : Process(p_ID, p_operatorName, p_arguments, p_module), eca_func(p_eca_func) { @@ -372,7 +372,7 @@ public: class EcaIndices1 : public EcaIndices<ECA_REQUEST_1> { public: - EcaIndices1(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) + EcaIndices1(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) : EcaIndices<ECA_REQUEST_1>(p_ID, p_operatorName, p_arguments, p_module, eca1) { } @@ -381,7 +381,7 @@ public: class EcaIndices2 : public EcaIndices<ECA_REQUEST_2> { public: - EcaIndices2(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) + EcaIndices2(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) : EcaIndices<ECA_REQUEST_2>(p_ID, p_operatorName, p_arguments, p_module, eca2) { } @@ -390,7 +390,7 @@ public: class EcaIndices3 : public EcaIndices<ECA_REQUEST_3> { public: - EcaIndices3(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) + EcaIndices3(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) : EcaIndices<ECA_REQUEST_3>(p_ID, p_operatorName, p_arguments, p_module, eca3) { } @@ -399,7 +399,7 @@ public: class EcaIndices4 : public EcaIndices<ECA_REQUEST_4> { public: - EcaIndices4(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) + EcaIndices4(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) : EcaIndices<ECA_REQUEST_4>(p_ID, p_operatorName, p_arguments, p_module, eca4) { } @@ -696,7 +696,7 @@ public: if (cdo_operator_argc() > 0) { - const auto ¶ms = cdo_get_oper_argv(); + auto const ¶ms = cdo_get_oper_argv(); set_compare_type_from_params(request.compare_type, params); } else {} @@ -968,7 +968,7 @@ public: if (cdo_operator_argc() > 0) { - const auto ¶ms = cdo_get_oper_argv(); + auto const ¶ms = cdo_get_oper_argv(); set_compare_type_from_params(request.compare_type, params); } else {} @@ -1935,7 +1935,7 @@ public: if (cdo_operator_argc() > 0) { - const auto ¶ms = cdo_get_oper_argv(); + auto const ¶ms = cdo_get_oper_argv(); set_compare_type_from_params(request.compare_type, params); } @@ -2191,7 +2191,7 @@ public: if (cdo_operator_argc() > 0) { - const auto ¶ms = cdo_get_oper_argv(); + auto const ¶ms = cdo_get_oper_argv(); set_compare_type_from_params(request.compare_type, params); } @@ -2235,7 +2235,7 @@ public: if (cdo_operator_argc() > 0) { - const auto ¶ms = cdo_get_oper_argv(); + auto const ¶ms = cdo_get_oper_argv(); set_compare_type_from_params(request.compare_type, params); } @@ -2279,7 +2279,7 @@ public: if (cdo_operator_argc() > 0) { - const auto ¶ms = cdo_get_oper_argv(); + auto const ¶ms = cdo_get_oper_argv(); set_compare_type_from_params(request.compare_type, params); } diff --git a/src/Echam5ini.cc b/src/Echam5ini.cc index 312b0e77e..214a8ecd6 100644 --- a/src/Echam5ini.cc +++ b/src/Echam5ini.cc @@ -70,8 +70,8 @@ iniatts(ATTS *atts) } static void -inivar(VAR &var, int gridtype, int zaxistype, int code, const std::string &name, const std::string &longname, - const std::string &units) +inivar(VAR &var, int gridtype, int zaxistype, int code, std::string const &name, std::string const &longname, + std::string const &units) { var.gridtype = gridtype; var.zaxistype = zaxistype; @@ -626,7 +626,7 @@ public: int ntr = 0; for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto code = var1.code; auto name = var1.name; auto longname = var1.longname; diff --git a/src/Enlarge.cc b/src/Enlarge.cc index fe489fe3e..fec531860 100644 --- a/src/Enlarge.cc +++ b/src/Enlarge.cc @@ -102,7 +102,7 @@ public: size_t numMissVals; cdo_read_field(streamID1, array1.data(), &numMissVals); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto gridID1 = var.gridID; auto gridsize1 = var.gridsize; diff --git a/src/Ensstat3.cc b/src/Ensstat3.cc index 607da3d15..a72aa2426 100644 --- a/src/Ensstat3.cc +++ b/src/Ensstat3.cc @@ -179,7 +179,7 @@ public: for (int fileID = 1; fileID < numFiles; ++fileID) varList_compare(ef[0].varList, ef[fileID].varList); auto vlistID1 = ef[0].vlistID; - const auto &varList1 = ef[0].varList; + auto const &varList1 = ef[0].varList; auto vlistID2 = vlistCreate(); vlistDefNtsteps(vlistID2, varList1.numSteps()); @@ -278,7 +278,7 @@ public: void run() override { - const auto &varList1 = ef[0].varList; + auto const &varList1 = ef[0].varList; int varID = 0, levelID; int numFields0; diff --git a/src/Exprf.cc b/src/Exprf.cc index de398b934..738905a94 100644 --- a/src/Exprf.cc +++ b/src/Exprf.cc @@ -75,7 +75,7 @@ exprs_from_file(const std::vector<std::string> &exprArgv) constexpr int MaxParams = 4096; static std::size_t -replace_all(std::string &inout, const std::string &what, const std::string &with) +replace_all(std::string &inout, std::string const &what, std::string const &with) { std::size_t count{}; for (std::string::size_type pos{}; inout.npos != (pos = inout.find(what.data(), pos, what.length())); @@ -87,7 +87,7 @@ replace_all(std::string &inout, const std::string &what, const std::string &with } static std::string -exprs_expand(const std::string &exprString, const VarList &varList) +exprs_expand(std::string const &exprString, const VarList &varList) { auto replaceTemplate = false; std::string templateName = "_ALL_"; @@ -95,7 +95,7 @@ exprs_expand(const std::string &exprString, const VarList &varList) if (exprString.find(templateName) != std::string::npos) { replaceTemplate = true; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { if (templateName == var.name) { @@ -109,12 +109,12 @@ exprs_expand(const std::string &exprString, const VarList &varList) { std::string exprStringNew{}; auto exprStringArgv = split_string(exprString, ";"); - for (const auto &string : exprStringArgv) + for (auto const &string : exprStringArgv) { if (string.find(templateName) == std::string::npos) { exprStringNew += string + ";"; } else { - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { auto tmpString = string; replace_all(tmpString, templateName, var.name); @@ -132,7 +132,7 @@ exprs_expand(const std::string &exprString, const VarList &varList) static void params_init(std::vector<ParamEntry> ¶ms, const VarList &varList) { - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { auto ¶m = params[var.ID]; @@ -157,14 +157,14 @@ params_init(std::vector<ParamEntry> ¶ms, const VarList &varList) static void params_delete(const std::vector<ParamEntry> ¶ms) { - for (const auto ¶m : params) + for (auto const ¶m : params) { if (param.data) delete[] param.data; } } static void -params_add_coord(ParseParamType &parseArg, int coord, int cdiID, size_t size, const std::string &units, const std::string &longname) +params_add_coord(ParseParamType &parseArg, int coord, int cdiID, size_t size, std::string const &units, std::string const &longname) { auto ncoords = parseArg.numCoords; if (ncoords >= parseArg.maxCoords) cdo_abort("Too many coordinates (limit=%d)", parseArg.maxCoords); @@ -277,7 +277,7 @@ genZonalID(int vlistID) } static void -set_date_and_time(ParamEntry &varts, int calendar, int tsID, const CdiDateTime &vDateTime0, const CdiDateTime &vDateTime) +set_date_and_time(ParamEntry &varts, int calendar, int tsID, CdiDateTime const &vDateTime0, CdiDateTime const &vDateTime) { double jdelta = 0.0; @@ -479,7 +479,7 @@ private: auto coordID = params_get_coord_ID(parseArg, coord, params[varID].gridID); auto gridID = parseArg.coords[coordID].cdiID; auto ngp = parseArg.coords[coordID].size; - const auto &cdata = parseArg.coords[coordID].data; + auto const &cdata = parseArg.coords[coordID].data; assert(gridID == params[varID].gridID); assert(!cdata.empty()); @@ -490,7 +490,7 @@ private: auto coordID = params_get_coord_ID(parseArg, coord, params[varID].zaxisID); auto zaxisID = parseArg.coords[coordID].cdiID; auto nlev = parseArg.coords[coordID].size; - const auto &cdata = parseArg.coords[coordID].data; + auto const &cdata = parseArg.coords[coordID].data; assert(zaxisID == params[varID].zaxisID); assert(!cdata.empty()); @@ -523,7 +523,7 @@ private: // printf("parseArg.nparams %d\n", parseArg.nparams); for (int pidx = 0, n = parseArg.numParams; pidx < n; pidx++) { - const auto ¶m = params[pidx]; + auto const ¶m = params[pidx]; if (pidx < numVars1 && !param.select) continue; if (pidx >= numVars1) { @@ -563,7 +563,7 @@ public: operator_input_arg(cdo_operator_enter(operatorID)); - const auto &exprArgv = cdo_get_oper_argv(); + auto const &exprArgv = cdo_get_oper_argv(); exprString = readsCommandLine ? exprs_from_argument(exprArgv) : exprs_from_file(exprArgv); diff --git a/src/FC.cc b/src/FC.cc index 3fbdeab9a..118514c40 100644 --- a/src/FC.cc +++ b/src/FC.cc @@ -278,7 +278,7 @@ public: auto numVars = varList1.numVars(); vars = std::vector<bool>(numVars); - for (const auto &var : varList1.vars) vars[var.ID] = (gridID1 == var.gridID); + for (auto const &var : varList1.vars) vars[var.ID] = (gridID1 == var.gridID); if (gridID1 != -1) vlistChangeGrid(vlistID2, gridID1, gridID2); if (operatorID == GRID2FOURIER) diff --git a/src/Filedes.cc b/src/Filedes.cc index 3d8d5dfb9..512835cb7 100644 --- a/src/Filedes.cc +++ b/src/Filedes.cc @@ -84,7 +84,7 @@ printCodeTable(const VarList &varList) int nvars = varList.numVars(); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; fprintf(stdout, "%4d %-12s", var.code, var.name.c_str()); if (var.longname.size()) { @@ -148,7 +148,7 @@ partab(FILE *fp, int vlistID, const VarList &varList, int option) for (varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; fprintf(fp, "¶meter"); if (linebreak) fprintf(fp, "\n"); diff --git a/src/Fillmiss.cc b/src/Fillmiss.cc index 2996ba59c..24102db28 100644 --- a/src/Fillmiss.cc +++ b/src/Fillmiss.cc @@ -462,7 +462,7 @@ public: while (numFields--) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field1.init(var1); cdo_read_field(streamID1, field1); diff --git a/src/Filter.cc b/src/Filter.cc index e2727d3c0..5bb4f60df 100644 --- a/src/Filter.cc +++ b/src/Filter.cc @@ -333,7 +333,7 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { if (useFFTW) @@ -422,7 +422,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { auto &field = varsData[tsID][varID][levelID]; diff --git a/src/Fldrms.cc b/src/Fldrms.cc index 616d436b4..b67c8c0e8 100644 --- a/src/Fldrms.cc +++ b/src/Fldrms.cc @@ -126,8 +126,8 @@ public: auto [varID, levelID] = cdo_inq_field(streamID2); cdo_read_field(streamID2, field2); - const auto &var1 = varList1.vars[varID]; - const auto &var2 = varList2.vars[varID]; + auto const &var1 = varList1.vars[varID]; + auto const &var2 = varList2.vars[varID]; field1.grid = var1.gridID; field2.grid = var2.gridID; diff --git a/src/Fldstat.cc b/src/Fldstat.cc index 95e204429..1086303ee 100644 --- a/src/Fldstat.cc +++ b/src/Fldstat.cc @@ -37,7 +37,7 @@ void gridcell_areas(int gridID, Varray<double> &array); template <typename T> static void -print_location_LL(int operfunc, const CdoVar &var, int levelID, double sglval, const Varray<T> &v, CdiDateTime vDateTime) +print_location_LL(int operfunc, const CdoVar &var, int levelID, double sglval, Varray<T> const &v, CdiDateTime vDateTime) { static auto printHeader = true; const char *funcName = (operfunc == FieldFunc_Min) ? "Minval" : "Maxval"; @@ -72,15 +72,15 @@ print_location_LL(int operfunc, const CdoVar &var, int levelID, double sglval, c } static void -print_location_LL(int operfunc, const CdoVar &var, int levelID, double sglval, const Field &field, CdiDateTime vDateTime) +print_location_LL(int operfunc, const CdoVar &var, int levelID, double sglval, Field const &field, CdiDateTime vDateTime) { - auto func = [&](const auto &v) { print_location_LL(operfunc, var, levelID, sglval, v, vDateTime); }; + auto func = [&](auto const &v) { print_location_LL(operfunc, var, levelID, sglval, v, vDateTime); }; field_operation(func, field); } template <typename T> static void -field_mul_weights(Varray<T> &v1, const Varray<double> &v2, size_t numMissVals, double mv) +field_mul_weights(Varray<T> &v1, Varray<double> const &v2, size_t numMissVals, double mv) { T missval = mv; assert(v1.size() > 0); @@ -101,7 +101,7 @@ field_mul_weights(Varray<T> &v1, const Varray<double> &v2, size_t numMissVals, d static void field_mul_weights(Field &field) { - auto func = [&](auto &v, const auto &w, auto numMissVals, double missval) { field_mul_weights(v, w, numMissVals, missval); }; + auto func = [&](auto &v, auto const &w, auto numMissVals, double missval) { field_mul_weights(v, w, numMissVals, missval); }; field_operation(func, field, field.weightv, field.numMissVals, field.missval); } @@ -146,7 +146,7 @@ gen_target_gridpoint(int gridID1) } static void -print_weights_warning(int numGrids, const std::string &varname) +print_weights_warning(int numGrids, std::string const &varname) { if (numGrids == 1) cdo_warning("Grid cell bounds not available, using constant grid cell area weights!"); @@ -160,19 +160,19 @@ get_parameter(bool &useWeights) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; if (key == "weights") useWeights = parameter_to_bool(value); @@ -183,7 +183,7 @@ get_parameter(bool &useWeights) } static int -get_gridcell_weights(Field &field, bool useWeights, bool doPrintWarning, int numGrids, const std::string &varName) +get_gridcell_weights(Field &field, bool useWeights, bool doPrintWarning, int numGrids, std::string const &varName) { auto gridSize = field.size; field.weightv.resize(gridSize); diff --git a/src/Fldstat2.cc b/src/Fldstat2.cc index 84593d6bb..a972092e7 100644 --- a/src/Fldstat2.cc +++ b/src/Fldstat2.cc @@ -37,7 +37,7 @@ auto correlation_kernel = [](auto v1, auto mv1, auto v2, auto mv2, auto w, auto template <typename T1, typename T2> static double correlation(const Varray<T1> &v1, const Varray<T2> &v2, double missval1, double missval2, size_t gridsize, - const Varray<double> &weight) + Varray<double> const &weight) { double sum0 = 0.0, sum1 = 0.0, sum00 = 0.0, sum01 = 0.0, sum11 = 0.0, wsum0 = 0.0; @@ -61,9 +61,9 @@ correlation(const Varray<T1> &v1, const Varray<T2> &v2, double missval1, double } static double -correlation(const Field &field1, const Field &field2, const Varray<double> &weight) +correlation(Field const &field1, Field const &field2, Varray<double> const &weight) { - auto func = [&](const auto &v1, const auto &v2, double mv1, double mv2, size_t size) { + auto func = [&](auto const &v1, auto const &v2, double mv1, double mv2, size_t size) { return correlation(v1, v2, mv1, mv2, size, weight); }; return field_operation2(func, field1, field2, field1.missval, field2.missval, field1.size); @@ -84,7 +84,7 @@ auto covariance_kernel template <typename T1, typename T2> static double covariance(const Varray<T1> &v1, const Varray<T2> &v2, double missval1, double missval2, size_t gridsize, - const Varray<double> &weight) + Varray<double> const &weight) { double sum0 = 0.0, sum1 = 0.0, sum01 = 0.0, wsum0 = 0.0; @@ -105,9 +105,9 @@ covariance(const Varray<T1> &v1, const Varray<T2> &v2, double missval1, double m } static double -covariance(const Field &field1, const Field &field2, const Varray<double> &weight) +covariance(Field const &field1, Field const &field2, Varray<double> const &weight) { - auto func = [&](const auto &v1, const auto &v2, double mv1, double mv2, size_t size) { + auto func = [&](auto const &v1, auto const &v2, double mv1, double mv2, size_t size) { return covariance(v1, v2, mv1, mv2, size, weight); }; return field_operation2(func, field1, field2, field1.missval, field2.missval, field1.size); @@ -207,8 +207,8 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; - const auto &var2 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; + auto const &var2 = varList1.vars[varID]; field1.init(var1); (void) cdo_inq_field(streamID2); field2.init(var2); diff --git a/src/Fourier.cc b/src/Fourier.cc index 02070436f..6a8b61991 100644 --- a/src/Fourier.cc +++ b/src/Fourier.cc @@ -263,7 +263,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { if (use_fftw) diff --git a/src/Getgridcell.cc b/src/Getgridcell.cc index 5707f2bbc..c3b7c76a3 100644 --- a/src/Getgridcell.cc +++ b/src/Getgridcell.cc @@ -69,19 +69,19 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "lon") gridPoint.lon = parameter_to_double(value); diff --git a/src/Gradsdes.cc b/src/Gradsdes.cc index e0537c3d4..063ea2abb 100644 --- a/src/Gradsdes.cc +++ b/src/Gradsdes.cc @@ -668,7 +668,7 @@ ctl_vars(FILE *gdp, int filetype, int vlistID, const VarList &varList, int nvars { if (vars[varID] == true) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; int zaxisID = var.zaxisID; int ltype = 0; cdiInqKeyInt(zaxisID, CDI_GLOBAL, CDI_KEY_TYPEOFFIRSTFIXEDSURFACE, <ype); @@ -1177,7 +1177,7 @@ public: recoffset = std::vector<int>(numVars); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; if (var.gridID == gridID) { if (filetype == CDI_FILETYPE_SRV || filetype == CDI_FILETYPE_EXT || filetype == CDI_FILETYPE_IEG) diff --git a/src/Gridboxstat.cc b/src/Gridboxstat.cc index ea19603f1..43f1613e0 100644 --- a/src/Gridboxstat.cc +++ b/src/Gridboxstat.cc @@ -226,7 +226,7 @@ gen_boxgrid(int gridID1, size_t xinc, size_t yinc) } static void -gridbox_stat(const Field &field1, Field &field2, size_t xinc, size_t yinc, int statfunc) +gridbox_stat(Field const &field1, Field &field2, size_t xinc, size_t yinc, int statfunc) { auto useWeight = !field1.weightv.empty(); diff --git a/src/Gridcell.cc b/src/Gridcell.cc index bf3a079f9..a58213049 100644 --- a/src/Gridcell.cc +++ b/src/Gridcell.cc @@ -200,19 +200,19 @@ get_parameter(double &radiusInMeter) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "radius") radiusInMeter = radius_str_to_meter(value); diff --git a/src/Gridsearch.cc b/src/Gridsearch.cc index ca12a83ee..180047355 100644 --- a/src/Gridsearch.cc +++ b/src/Gridsearch.cc @@ -77,7 +77,7 @@ grid_delete(grid_type *grid) } static void -boundbox_from_corners1r(long ic, long nc, const Varray<double> &cornerLon, const Varray<double> &cornerLat, float *bound_box) +boundbox_from_corners1r(long ic, long nc, Varray<double> const &cornerLon, Varray<double> const &cornerLat, float *bound_box) { auto inc = ic * nc; @@ -110,7 +110,7 @@ boundbox_from_corners1r(long ic, long nc, const Varray<double> &cornerLon, const } static void -boundbox_from_corners(long size, long nc, const Varray<double> &cornerLon, const Varray<double> &cornerLat, +boundbox_from_corners(long size, long nc, Varray<double> const &cornerLon, Varray<double> const &cornerLat, Varray<float> &bound_box) { for (long i = 0; i < size; ++i) @@ -162,7 +162,7 @@ search_cells(cellsearch_type *cellsearch, long tgtCellIndex, long *srchIndices) { const grid_type *srcGrid = cellsearch->srcGrid; const grid_type *tgtGrid = cellsearch->tgtGrid; - const auto &src_cell_bound_box = cellsearch->src_cell_bound_box; + auto const &src_cell_bound_box = cellsearch->src_cell_bound_box; float tgt_cell_bound_box[4]; boundbox_from_corners1r(tgtCellIndex, tgtGrid->numCorners, tgtGrid->cell_corner_lon, tgtGrid->cell_corner_lat, diff --git a/src/Harmonic.cc b/src/Harmonic.cc index 6e0393d3d..77fb9e740 100644 --- a/src/Harmonic.cc +++ b/src/Harmonic.cc @@ -115,7 +115,7 @@ public: work[j].resize(numVars); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; work[j][varID].resize(var.gridsize * var.nlevels, 0); } } @@ -165,7 +165,7 @@ public: { for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; for (int levelID = 0; levelID < var2.nlevels; ++levelID) { auto offset = var2.gridsize * levelID; @@ -183,7 +183,7 @@ public: { for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; for (int levelID = 0; levelID < var2.nlevels; ++levelID) { auto offset = var2.gridsize * levelID; @@ -203,7 +203,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; for (int levelID = 0; levelID < var2.nlevels; ++levelID) { auto offset = var2.gridsize * levelID; @@ -217,7 +217,7 @@ public: { for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; for (int levelID = 0; levelID < var2.nlevels; ++levelID) { auto offset = var2.gridsize * levelID; @@ -244,7 +244,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; for (int levelID = 0; levelID < var2.nlevels; ++levelID) { auto offset = var2.gridsize * levelID; diff --git a/src/Healpix.cc b/src/Healpix.cc index 6efb23764..e87a94dbd 100644 --- a/src/Healpix.cc +++ b/src/Healpix.cc @@ -107,10 +107,10 @@ degrade(const Varray<T1> &v1, size_t gridsize2, Varray<T2> &v2, bool hasMissvals } static void -hp_degrade(const Field &field1, Field &field2, const HealpixParams ¶ms) +hp_degrade(Field const &field1, Field &field2, const HealpixParams ¶ms) { auto hasMissvals = (field1.numMissVals > 0); - auto func = [&](const auto &v1, auto &v2, auto size, double mv) { degrade(v1, size, v2, hasMissvals, mv, params); }; + auto func = [&](auto const &v1, auto &v2, auto size, double mv) { degrade(v1, size, v2, hasMissvals, mv, params); }; field_operation2(func, field1, field2, field2.gridsize, field1.missval); if (hasMissvals) field_num_mv(field2); } @@ -135,10 +135,10 @@ upgrade(size_t gridsize1, const Varray<T1> &v1, Varray<T2> &v2, bool hasMissvals } static void -hp_upgrade(const Field &field1, Field &field2, const HealpixParams ¶ms) +hp_upgrade(Field const &field1, Field &field2, const HealpixParams ¶ms) { auto hasMissvals = (field1.numMissVals > 0); - auto func = [&](const auto &v1, auto &v2, auto size, double mv) { upgrade(size, v1, v2, hasMissvals, mv, params); }; + auto func = [&](auto const &v1, auto &v2, auto size, double mv) { upgrade(size, v1, v2, hasMissvals, mv, params); }; field_operation2(func, field1, field2, field1.gridsize, field1.missval); if (hasMissvals) field_num_mv(field2); } @@ -174,7 +174,7 @@ nested_to_ring(Field &field, int nside) } static Stat -set_stat(const std::string &statString) +set_stat(std::string const &statString) { if (statString == "mean") return Stat::Mean; @@ -194,19 +194,19 @@ get_parameter(void) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "nside") params.nsideOut = parameter_to_int(value); diff --git a/src/Hi.cc b/src/Hi.cc index 1c2a9522f..9029b9ac8 100644 --- a/src/Hi.cc +++ b/src/Hi.cc @@ -34,7 +34,7 @@ humidityIndex(double t, double e, double r, double missval) } static void -farexpr(Field &field1, const Field &field2, const Field &field3, double (*expression)(double, double, double, double)) +farexpr(Field &field1, Field const &field2, Field const &field3, double (*expression)(double, double, double, double)) { auto grid1 = field1.grid; auto grid2 = field2.grid; diff --git a/src/Importamsr.cc b/src/Importamsr.cc index dadd762f9..cd25273b2 100644 --- a/src/Importamsr.cc +++ b/src/Importamsr.cc @@ -99,7 +99,7 @@ read_amsr(FILE *fp, const VarList &varList, Varray2D<double> &data, size_t *numM { std::vector<unsigned char> amsr_data; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { amsr_data.resize(var.gridsize); size_t size = fread(amsr_data.data(), 1, var.gridsize, fp); diff --git a/src/Importobs.cc b/src/Importobs.cc index 9c9383f3c..04d669ce5 100644 --- a/src/Importobs.cc +++ b/src/Importobs.cc @@ -35,7 +35,7 @@ init_vars(int vlistID, int gridID, int zaxisID, int nvars) static void init_data(const VarList &varList, Varray2D<double> &data) { - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { for (size_t i = 0; i < var.gridsize; ++i) data[var.ID][i] = var.missval; } @@ -44,7 +44,7 @@ init_data(const VarList &varList, Varray2D<double> &data) static void write_data(CdoStreamID streamID, const VarList &varList, Varray2D<double> &data) { - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { auto numMissVals = varray_num_mv(var.gridsize, data[var.ID], var.missval); cdo_def_field(streamID, var.ID, 0); diff --git a/src/Info.cc b/src/Info.cc index dab5261bb..7b4de96ef 100644 --- a/src/Info.cc +++ b/src/Info.cc @@ -37,10 +37,10 @@ struct InfoStat }; static void -field_min_max_sum(const Field &field, double &min, double &max, double &sum) +field_min_max_sum(Field const &field, double &min, double &max, double &sum) { auto mms = MinMaxSum(min, max, sum); - auto func = [&](const auto &v, auto n) { return varray_min_max_sum(v, n, mms); }; + auto func = [&](auto const &v, auto n) { return varray_min_max_sum(v, n, mms); }; mms = field_operation(func, field, field.size); min = mms.min; @@ -49,10 +49,10 @@ field_min_max_sum(const Field &field, double &min, double &max, double &sum) } static size_t -field_min_max_sum_mv(const Field &field, double &min, double &max, double &sum) +field_min_max_sum_mv(Field const &field, double &min, double &max, double &sum) { auto mms = MinMaxSum(min, max, sum); - auto func = [&](const auto &v, auto n, double mv) { return varray_min_max_sum_mv(v, n, mms, mv); }; + auto func = [&](auto const &v, auto n, double mv) { return varray_min_max_sum_mv(v, n, mms, mv); }; mms = field_operation(func, field, field.size, field.missval); min = mms.min; @@ -182,7 +182,7 @@ char_to_mode_and_color(unsigned char c, int &blinkMin, int &blinkMax) template <typename T> static void -print_map(int nlon, int nlat, const Varray<T> &varray, double mv, double min, double max) +print_map(int nlon, int nlat, Varray<T> const &varray, double mv, double min, double max) { auto missval = static_cast<T>(mv); // source code from PINGO @@ -235,15 +235,15 @@ print_map(int nlon, int nlat, const Varray<T> &varray, double mv, double min, do } static void -print_map(int nlon, int nlat, const Field &field, double min, double max) +print_map(int nlon, int nlat, Field const &field, double min, double max) { - auto func = [&](const auto &v, double mv) { print_map(nlon, nlat, v, mv, min, max); }; + auto func = [&](auto const &v, double mv) { print_map(nlon, nlat, v, mv, min, max); }; field_operation(func, field, field.missval); } template <typename T> static size_t -complex_sum(const Varray<T> &v, double mv, size_t gridsize, double &sumr, double &sumi) +complex_sum(Varray<T> const &v, double mv, size_t gridsize, double &sumr, double &sumi) { T missval = static_cast<T>(mv); size_t n = 0; @@ -261,9 +261,9 @@ complex_sum(const Varray<T> &v, double mv, size_t gridsize, double &sumr, double } static size_t -field_complex_sum(const Field &field, double &sumr, double &sumi) +field_complex_sum(Field const &field, double &sumr, double &sumi) { - auto func = [&](const auto &v, double mv, size_t gridsize) { return complex_sum(v, mv, gridsize, sumr, sumi); }; + auto func = [&](auto const &v, double mv, size_t gridsize) { return complex_sum(v, mv, gridsize, sumr, sumi); }; return field_operation(func, field, field.missval, field.gridsize); } @@ -306,7 +306,7 @@ print_xheader(int fileIndex) } static void -compute_stat_real(const Field &field, InfoStat &infoStat, size_t &imiss, size_t gridsize) +compute_stat_real(Field const &field, InfoStat &infoStat, size_t &imiss, size_t gridsize) { if (infoStat.numMissVals) { @@ -329,7 +329,7 @@ compute_stat_real(const Field &field, InfoStat &infoStat, size_t &imiss, size_t } static void -compute_stat_comp(const Field &field, InfoStat &infoStat, size_t &imiss, size_t gridsize) +compute_stat_comp(Field const &field, InfoStat &infoStat, size_t &imiss, size_t gridsize) { auto numVals = field_complex_sum(field, infoStat.sum, infoStat.sumi); imiss = gridsize - numVals; diff --git a/src/Intgrid.cc b/src/Intgrid.cc index d01208b4b..c7e3e472c 100644 --- a/src/Intgrid.cc +++ b/src/Intgrid.cc @@ -48,9 +48,9 @@ thinout(const Varray<T1> &varray1, Varray<T2> &varray2, int gridID1, int gridID2 } static void -thinout(const Field &field1, Field &field2, size_t xinc, size_t yinc) +thinout(Field const &field1, Field &field2, size_t xinc, size_t yinc) { - auto func = [&](const auto &v1, auto &v2, auto grid1, auto grid2) { thinout(v1, v2, grid1, grid2, xinc, yinc); }; + auto func = [&](auto const &v1, auto &v2, auto grid1, auto grid2) { thinout(v1, v2, grid1, grid2, xinc, yinc); }; field_operation2(func, field1, field2, field1.grid, field2.grid); field_num_mv(field2); } @@ -227,9 +227,9 @@ boxavg(const Varray<T1> &varray1, Varray<T2> &varray2, int gridID1, int gridID2, } static void -boxavg(const Field &field1, Field &field2, size_t xinc, size_t yinc) +boxavg(Field const &field1, Field &field2, size_t xinc, size_t yinc) { - auto func = [&](const auto &v1, auto &v2, auto grid1, auto grid2) { boxavg(v1, v2, grid1, grid2, xinc, yinc); }; + auto func = [&](auto const &v1, auto &v2, auto grid1, auto grid2) { boxavg(v1, v2, grid1, grid2, xinc, yinc); }; field_operation2(func, field1, field2, field1.grid, field2.grid); field_num_mv(field2); } diff --git a/src/Intlevel.cc b/src/Intlevel.cc index 619d5542f..26c4caaf6 100644 --- a/src/Intlevel.cc +++ b/src/Intlevel.cc @@ -69,7 +69,7 @@ restore_index_and_weights(int nlev1, int idx, float wgt, int &idx1, int &idx2, f template <typename T1, typename T2> static void vert_interp_lev(size_t gridsize, int nlev1, double mv, const Varray<T1> &vardata1, Varray<T2> &vardata2, int nlev2, - const Varray<int> &lev_idx, const Varray<float> &lev_wgt) + const Varray<int> &lev_idx, Varray<float> const &lev_wgt) { T1 missval = mv; @@ -96,7 +96,7 @@ vert_interp_lev(size_t gridsize, int nlev1, double mv, const Varray<T1> &vardata static void vert_interp_lev(size_t gridsize, int nlev1, double missval, const Field3D &field1, Field3D &field2, int nlev2, - const Varray<int> &lev_idx, const Varray<float> &lev_wgt) + const Varray<int> &lev_idx, Varray<float> const &lev_wgt) { auto func = [&](auto &v1, auto &v2) { vert_interp_lev(gridsize, nlev1, missval, v1, v2, nlev2, lev_idx, lev_wgt); }; field_operation2(func, field1, field2); @@ -106,7 +106,7 @@ vert_interp_lev(size_t gridsize, int nlev1, double missval, const Field3D &field template <typename T1, typename T2> void vert_interp_lev3d(size_t gridsize, int nlev1, double mv, const Varray<T1> &vardata1, Varray<T2> &vardata2, int nlev2, - const Varray<int> &lev_idx, const Varray<float> &lev_wgt) + const Varray<int> &lev_idx, Varray<float> const &lev_wgt) { T1 missval = mv; @@ -137,14 +137,14 @@ vert_interp_lev3d(size_t gridsize, int nlev1, double mv, const Varray<T1> &varda void vert_interp_lev3d(size_t gridsize, int nlev1, double missval, const Field3D &field1, Field3D &field2, int nlev2, - const Varray<int> &lev_idx, const Varray<float> &lev_wgt) + const Varray<int> &lev_idx, Varray<float> const &lev_wgt) { auto func = [&](auto &v1, auto &v2) { vert_interp_lev3d(gridsize, nlev1, missval, v1, v2, nlev2, lev_idx, lev_wgt); }; field_operation2(func, field1, field2); } void -vert_gen_weights(int extrapolate, int nlev1, const Varray<double> &lev1, int nlev2, const Varray<double> &lev2, +vert_gen_weights(int extrapolate, int nlev1, Varray<double> const &lev1, int nlev2, Varray<double> const &lev2, Varray<int> &lev_idx, Varray<float> &lev_wgt) { for (int i2 = 0; i2 < nlev2; ++i2) @@ -208,7 +208,7 @@ levelDirDown(int nlev, const double *const lev) template <typename T> static void -vert_gen_weights3d1d(bool extrapolate, size_t gridsize, int nlev1, const Varray<T> &xlev1, int nlev2, +vert_gen_weights3d1d(bool extrapolate, size_t gridsize, int nlev1, Varray<T> const &xlev1, int nlev2, const std::vector<double> &lev2, Varray<int> &xlev_idx, Varray<float> &xlev_wgt) { auto nthreads = Threading::ompNumMaxThreads; @@ -300,20 +300,20 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; // if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &values = kv.values; - const auto &value = kv.values[0]; + auto const &values = kv.values; + auto const &value = kv.values[0]; int nvalues = kv.nvalues; if (nvalues == 1 && value.empty()) nvalues = 0; @@ -345,11 +345,11 @@ get_parameter() } static void -handle_zvar(size_t &zvarGridsize, size_t &wisize, const std::string &zvarname, const VarList &varList1, int &zvarID, - bool &zvarIsVarying, const std::vector<double> &lev2, int &nlev1, const int &nlev2, const int &vlistID1, int &zaxisID2, +handle_zvar(size_t &zvarGridsize, size_t &wisize, std::string const &zvarname, const VarList &varList1, int &zvarID, + bool &zvarIsVarying, const std::vector<double> &lev2, int &nlev1, int const &nlev2, int const &vlistID1, int &zaxisID2, int &zaxisID1) { - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) { if (zvarname == var.name) { @@ -358,7 +358,7 @@ handle_zvar(size_t &zvarGridsize, size_t &wisize, const std::string &zvarname, c } } - const auto &zvar = varList1.vars[zvarID]; + auto const &zvar = varList1.vars[zvarID]; if (zvarID == CDI_UNDEFID) cdo_abort("Variable %s not found!", zvarname); zvarIsVarying = (zvar.timeType == TIME_VARYING); zvarGridsize = zvar.gridsize; @@ -384,8 +384,8 @@ handle_zvar(size_t &zvarGridsize, size_t &wisize, const std::string &zvarname, c } static void -handle_empty_zvar(size_t &wisize, std::vector<double> &lev1, const std::vector<double> &lev2, int &nlev1, const int &nlev2, - const int &vlistID1, int &zaxisID2, int &zaxisID1) +handle_empty_zvar(size_t &wisize, std::vector<double> &lev1, const std::vector<double> &lev2, int &nlev1, int const &nlev2, + int const &vlistID1, int &zaxisID2, int &zaxisID1) { int numLevels = 0; int i; @@ -481,7 +481,7 @@ public: operator_input_arg("level|zdescription[, zvarname, extrapolate]"); zaxisID2 = CDI_UNDEFID; - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); if (std::isdigit((int) pargv[0][0])) { params.levels = cdo_argv_to_fltarr(pargv); } else @@ -559,7 +559,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; vardata1[varID].init(var1); @@ -609,7 +609,7 @@ public: { if (processVars[varID] && interpVars[varID]) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto missval = var1.missval; auto gridsize = var1.gridsize; @@ -623,7 +623,7 @@ public: { auto offset = gridsize * levelID; auto func - = [&](const auto &v) { varnumMissVals[varID][levelID] = array_num_mv(gridsize, &v[offset], missval); }; + = [&](auto const &v) { varnumMissVals[varID][levelID] = array_num_mv(gridsize, &v[offset], missval); }; field_operation(func, vardata2[varID]); } } diff --git a/src/Intlevel3d.cc b/src/Intlevel3d.cc index ad25f1a88..8b8ed8427 100644 --- a/src/Intlevel3d.cc +++ b/src/Intlevel3d.cc @@ -21,8 +21,8 @@ #include "cdi_lockedIO.h" void vert_interp_lev3d(size_t gridsize, int nlev1, double missval, const Field3D &field1, Field3D &field2, int nlev2, - const Varray<int> &lev_idx, const Varray<float> &lev_wgt); -void vert_gen_weights(int expol, int nlev1, const Varray<double> &lev1, int nlev2, const Varray<double> &lev2, Varray<int> &lev_idx, + const Varray<int> &lev_idx, Varray<float> const &lev_wgt); +void vert_gen_weights(int expol, int nlev1, Varray<double> const &lev1, int nlev2, Varray<double> const &lev2, Varray<int> &lev_idx, Varray<float> &lev_wgt); bool levelDirUp(int nlev, const double *const lev); bool levelDirDown(int nlev, const double *const lev); @@ -36,7 +36,7 @@ bool levelDirDown(int nlev, const double *const lev); * 3d version of vert_gen_weights() (src/Intlevel.cc) */ static void -vert_gen_weights3d(bool expol, size_t gridsize, int nlev1, const Varray<float> &xlev1, int nlev2, const Varray<float> &xlev2, +vert_gen_weights3d(bool expol, size_t gridsize, int nlev1, Varray<float> const &xlev1, int nlev2, Varray<float> const &xlev2, Varray<int> &xlev_idx, Varray<float> &xlev_wgt) { auto nthreads = Threading::ompNumMaxThreads; @@ -90,7 +90,7 @@ read_source_coordinate(int streamNumber, Varray<float> &zlevelsIn) if (varList.numVars() != 1) cdo_abort("infile2: Only one single variable is allowed!"); - const auto &var0 = varList.vars[0]; + auto const &var0 = varList.vars[0]; zlevelsIn.resize(var0.gridsize * var0.nlevels); @@ -112,7 +112,7 @@ read_source_coordinate(int streamNumber, Varray<float> &zlevelsIn) } static CdoVar -read_target_coordinate(const std::string &fileName, Varray<float> &zlevelsOut) +read_target_coordinate(std::string const &fileName, Varray<float> &zlevelsOut) { auto streamID0 = stream_open_read_locked(fileName.c_str()); // 3d vertical target coordinate auto vlistID0 = streamInqVlist(streamID0); @@ -121,7 +121,7 @@ read_target_coordinate(const std::string &fileName, Varray<float> &zlevelsOut) if (varList.numVars() != 1) cdo_abort("tgtcoordinate: Only one single variable is allowed!"); - const auto &var0 = varList.vars[0]; + auto const &var0 = varList.vars[0]; zlevelsOut.resize(var0.gridsize * var0.nlevels); @@ -300,7 +300,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto zaxisID = var1.zaxisID; auto gridsize = var1.gridsize; auto nlevel = var1.nlevels; @@ -358,7 +358,7 @@ public: // Perform the interpolation on all valid data variables for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (processVars[varID] && interpVars[varID]) { auto gridsize = var1.gridsize; @@ -370,7 +370,7 @@ public: { auto offset = gridsize * levelID; auto func - = [&](const auto &v) { varnumMissVals[varID][levelID] = array_num_mv(gridsize, &v[offset], missval); }; + = [&](auto const &v) { varnumMissVals[varID][levelID] = array_num_mv(gridsize, &v[offset], missval); }; field_operation(func, vardata2[varID]); } } diff --git a/src/Intntime.cc b/src/Intntime.cc index 95fdbfbc4..55c26915b 100644 --- a/src/Intntime.cc +++ b/src/Intntime.cc @@ -20,7 +20,7 @@ #include "printinfo.h" #include "field_functions.h" -void interp_time(double fac1, double fac2, const Field &field1, const Field &field2, Field &field3, bool withMissval); +void interp_time(double fac1, double fac2, Field const &field1, Field const &field2, Field &field3, bool withMissval); class Intntime : public Process { @@ -140,8 +140,8 @@ public: { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &field1 = varsData[curFirst][varID][levelID]; - const auto &field2 = varsData[curSecond][varID][levelID]; + auto const &field1 = varsData[curFirst][varID][levelID]; + auto const &field2 = varsData[curSecond][varID][levelID]; field3.init(varList1.vars[varID]); diff --git a/src/Inttime.cc b/src/Inttime.cc index 67e482001..c2e734925 100644 --- a/src/Inttime.cc +++ b/src/Inttime.cc @@ -24,7 +24,7 @@ template <typename T> size_t -interp_time(double fac1, double fac2, size_t gridsize, const Varray<T> &v1, const Varray<T> &v2, Varray<T> &v3, bool withMissval, +interp_time(double fac1, double fac2, size_t gridsize, Varray<T> const &v1, Varray<T> const &v2, Varray<T> &v3, bool withMissval, T missval) { size_t numMissVals3 = 0; @@ -60,7 +60,7 @@ interp_time(double fac1, double fac2, size_t gridsize, const Varray<T> &v1, cons } void -interp_time(double fac1, double fac2, const Field &field1, const Field &field2, Field &field3, bool withMissval) +interp_time(double fac1, double fac2, Field const &field1, Field const &field2, Field &field3, bool withMissval) { if (field3.memType == MemType::Float) field3.numMissVals @@ -255,8 +255,8 @@ public: { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &field1 = varsData[curFirst][varID][levelID]; - const auto &field2 = varsData[curSecond][varID][levelID]; + auto const &field1 = varsData[curFirst][varID][levelID]; + auto const &field2 = varsData[curSecond][varID][levelID]; field3.init(varList1.vars[varID]); diff --git a/src/Intyear.cc b/src/Intyear.cc index fe32e2b32..5a09ab64d 100644 --- a/src/Intyear.cc +++ b/src/Intyear.cc @@ -20,7 +20,7 @@ #include "util_string.h" static size_t -intlin_year(double fac1, double fac2, size_t gridsize, const Varray<double> &array1, const Varray<double> &array2, +intlin_year(double fac1, double fac2, size_t gridsize, Varray<double> const &array1, Varray<double> const &array2, Varray<double> &array3, bool withMissval, double missval1, double missval2) { size_t numMissVals3 = 0; diff --git a/src/Invertlev.cc b/src/Invertlev.cc index f11cbc12a..321419815 100644 --- a/src/Invertlev.cc +++ b/src/Invertlev.cc @@ -128,7 +128,7 @@ public: auto has3dVar = false; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.nlevels > 1) { has3dVar = true; @@ -181,7 +181,7 @@ public: { if (vardata[varID].size()) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { cdo_def_field(streamID2, varID, levelID); diff --git a/src/Longinfo.cc b/src/Longinfo.cc index 5d792a028..674ee1174 100644 --- a/src/Longinfo.cc +++ b/src/Longinfo.cc @@ -33,10 +33,10 @@ struct LonginfoStat }; static void -field_min_max_sum(const Field &field, double &min, double &max, double &sum) +field_min_max_sum(Field const &field, double &min, double &max, double &sum) { auto mms = MinMaxSum(min, max, sum); - auto func = [&](const auto &v, auto n) { return varray_min_max_sum(v, n, mms); }; + auto func = [&](auto const &v, auto n) { return varray_min_max_sum(v, n, mms); }; mms = field_operation(func, field, field.size); min = mms.min; @@ -45,10 +45,10 @@ field_min_max_sum(const Field &field, double &min, double &max, double &sum) } static size_t -field_min_max_sum_mv(const Field &field, double &min, double &max, double &sum) +field_min_max_sum_mv(Field const &field, double &min, double &max, double &sum) { auto mms = MinMaxSum(min, max, sum); - auto func = [&](const auto &v, auto n, double mv) { return varray_min_max_sum_mv(v, n, mms, mv); }; + auto func = [&](auto const &v, auto n, double mv) { return varray_min_max_sum_mv(v, n, mms, mv); }; mms = field_operation(func, field, field.size, field.missval); min = mms.min; @@ -58,7 +58,7 @@ field_min_max_sum_mv(const Field &field, double &min, double &max, double &sum) } static size_t -compute_stat_real(const Field &field, LonginfoStat &infostat, size_t gridsize) +compute_stat_real(Field const &field, LonginfoStat &infostat, size_t gridsize) { size_t imiss = 0; diff --git a/src/Maggraph.cc b/src/Maggraph.cc index 91bfc1b91..582a76567 100644 --- a/src/Maggraph.cc +++ b/src/Maggraph.cc @@ -128,7 +128,7 @@ compareTime(CdiTime time1, CdiTime time2) } static void -maggraph(const char *plotfile, const std::string &varname, const std::string &varunits, long nfiles, std::vector<long> nts, +maggraph(const char *plotfile, std::string const &varname, std::string const &varunits, long nfiles, std::vector<long> nts, const std::vector<std::vector<CdiDateTime>> &vDateTimes, std::vector<std::vector<double>> datatab, int nparam, std::vector<std::string> ¶ms) { @@ -157,8 +157,8 @@ maggraph(const char *plotfile, const std::string &varname, const std::string &va for (i = 0; i < nparam; ++i) { auto splitStrings = split_string(params[i], "="); - const auto &key = splitStrings[0]; - const auto &value = splitStrings[1]; + auto const &key = splitStrings[0]; + auto const &value = splitStrings[1]; if (key == "obsv") { @@ -664,8 +664,8 @@ verifyGraphParameters(int num_param, std::vector<std::string> ¶m_names) if (splitStrings.size() > 1) { - const auto &key = splitStrings[0]; - const auto &value = splitStrings[1]; + auto const &key = splitStrings[0]; + auto const &value = splitStrings[1]; for (j = 0; j < graph_param_count; ++j) { diff --git a/src/Magplot.cc b/src/Magplot.cc index a5978d6cf..ac9510bb4 100644 --- a/src/Magplot.cc +++ b/src/Magplot.cc @@ -464,7 +464,7 @@ public: if (splitStrings.size() > 1) { - const auto &key = splitStrings[0]; + auto const &key = splitStrings[0]; auto value = strdup(splitStrings[1].c_str()); if (opID == CONTOUR) @@ -656,9 +656,9 @@ public: #ifdef HAVE_LIBMAGICS void - magplot(const char *plotfile, int p_operatorID, const std::string &varname, const std::string &units, long p_nlon, long p_nlat, + magplot(const char *plotfile, int p_operatorID, std::string const &varname, std::string const &units, long p_nlon, long p_nlat, Varray<double> &p_grid_center_lon, Varray<double> &p_grid_center_lat, Varray<double> &p_array, size_t numMissVals, - double missval, int p_nparam, const std::vector<std::string> ¶ms, const std::string &datetimeStr, bool p_lregular) + double missval, int p_nparam, const std::vector<std::string> ¶ms, std::string const &datetimeStr, bool p_lregular) { double dlon = 0, dlat = 0; @@ -676,7 +676,7 @@ public: for (int i = 0; i < p_nparam; ++i) { const auto splitStrings = split_string(params[i], "="); - const auto &key = splitStrings[0]; + auto const &key = splitStrings[0]; if (key == "min") fprintf(stderr, "Min Val %g\n", YMIN); if (key == "max") fprintf(stderr, "Max Val %g\n", YMAX); diff --git a/src/Magvector.cc b/src/Magvector.cc index c1d8b63ec..7467574f2 100644 --- a/src/Magvector.cc +++ b/src/Magvector.cc @@ -61,7 +61,7 @@ quit_MAGICS() void magvector(const char *plotfile, long nlon, long nlat, Varray<double> &grid_center_lon, Varray<double> &grid_center_lat, Varray<double> &uarray, Varray<double> &varray, int nparam, std::vector<std::string> ¶ms, - const std::string &datetimeStr) + std::string const &datetimeStr) { long i; @@ -92,8 +92,8 @@ magvector(const char *plotfile, long nlon, long nlat, Varray<double> &grid_cente for (i = 0; i < nparam; ++i) { auto splitStrings = split_string(params[i], "="); - const auto &key = splitStrings[0]; - const auto &value = splitStrings[1]; + auto const &key = splitStrings[0]; + auto const &value = splitStrings[1]; if (key == "thin_fac") { @@ -212,8 +212,8 @@ verify_vector_parameters(int num_param, std::vector<std::string> ¶m_names, b if (splitStrings.size() > 1) { - const auto &key = splitStrings[0]; - const auto &value = splitStrings[1]; + auto const &key = splitStrings[0]; + auto const &value = splitStrings[1]; if (vectorMode) { param_count = vector_param_count; diff --git a/src/MapReduce.cc b/src/MapReduce.cc index 805bdbad5..3ce66387e 100644 --- a/src/MapReduce.cc +++ b/src/MapReduce.cc @@ -14,7 +14,7 @@ // read only the first data variable from input filename into a given double pointer static void -read_first_field(const std::string &filename, double *field) +read_first_field(std::string const &filename, double *field) { size_t numMissVals; int varID, levelID; @@ -76,7 +76,7 @@ public: if (cdo_operator_argc() < 1) cdo_abort("Too few arguments!"); // check input grid type and size - this will be used for selecting relevant variables from the input file - const auto &maskfilename = cdo_operator_argv(0); + auto const &maskfilename = cdo_operator_argv(0); auto inputGridID = cdo_define_grid(maskfilename); auto inputGridSize = gridInqSize(inputGridID); auto inputGridType = gridInqType(inputGridID); @@ -106,7 +106,7 @@ public: bool nobounds = false, nocoords = false; if (2 <= cdo_operator_argc()) { - const auto &coordinatesLimitation = cdo_operator_argv(1); + auto const &coordinatesLimitation = cdo_operator_argv(1); if (coordinatesLimitation == "nobounds") nobounds = true; if (coordinatesLimitation == "nocoords") nocoords = true; } @@ -128,7 +128,7 @@ public: vlistClearFlag(vlistID1); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (inputGridType == var.gridType && inputGridSize == var.gridsize) { vars[varID] = true; diff --git a/src/Maskbox.cc b/src/Maskbox.cc index 205145827..87696b47a 100644 --- a/src/Maskbox.cc +++ b/src/Maskbox.cc @@ -26,12 +26,12 @@ static void maskbox(Vmask &mask, int gridID, const SelboxInfo &selboxInfo) { - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; long nlon = gridInqXsize(gridID); long nlat = gridInqYsize(gridID); @@ -123,7 +123,7 @@ point_is_inside(double xval, double yval, double xmin, double xmax, const double } static void -mask_region_regular(Vmask &mask, size_t nlon, size_t nlat, const Varray<double> &xvals, const Varray<double> &yvals, +mask_region_regular(Vmask &mask, size_t nlon, size_t nlat, Varray<double> const &xvals, Varray<double> const &yvals, const double *xcoords, const double *ycoords, size_t segmentSize) { auto xmm = varray_min_max(segmentSize, xcoords); @@ -145,7 +145,7 @@ mask_region_regular(Vmask &mask, size_t nlon, size_t nlat, const Varray<double> } static void -mask_region_cell(Vmask &mask, size_t gridsize, const Varray<double> &xvals, const Varray<double> &yvals, const double *xcoords, +mask_region_cell(Vmask &mask, size_t gridsize, Varray<double> const &xvals, Varray<double> const &yvals, const double *xcoords, const double *ycoords, size_t segmentSize) { auto xmm = varray_min_max(segmentSize, xcoords); @@ -382,7 +382,7 @@ public: if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); diff --git a/src/Mastrfu.cc b/src/Mastrfu.cc index 3822049cc..586cfcc88 100644 --- a/src/Mastrfu.cc +++ b/src/Mastrfu.cc @@ -117,7 +117,7 @@ public: auto numVars = varList1.numVars(); if (numVars != 1) cdo_abort("This operator works only with one variable!"); - const auto &var0 = varList1.vars[0]; + auto const &var0 = varList1.vars[0]; if (var0.code > 0 && var0.code != 132) cdo_warning("Unexpected code %d!", var0.code); missval = var0.missval; diff --git a/src/Math.cc b/src/Math.cc index ac360ff0e..721a1c186 100644 --- a/src/Math.cc +++ b/src/Math.cc @@ -387,7 +387,7 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (var1.dataType == CDI_DATATYPE_CPX32) vlistDefVarDatatype(vlistID2, varID, CDI_DATATYPE_FLT32); if (var1.dataType == CDI_DATATYPE_CPX64) vlistDefVarDatatype(vlistID2, varID, CDI_DATATYPE_FLT64); } diff --git a/src/Merge.cc b/src/Merge.cc index 7e6b5c9a1..0728fed89 100644 --- a/src/Merge.cc +++ b/src/Merge.cc @@ -22,14 +22,14 @@ #include "cdo_default_values.h" static void -check_dup_entry(int vlistID1, int vlistID2, const std::string &filename) +check_dup_entry(int vlistID1, int vlistID2, std::string const &filename) { Varray<double> lev1, lev2; VarList varList1(vlistID1); VarList varList2(vlistID2); - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { auto gtype1 = var1.gridType; auto gsize1 = var1.gridsize; @@ -38,7 +38,7 @@ check_dup_entry(int vlistID1, int vlistID2, const std::string &filename) if (nlev1 > lev1.size()) lev1.resize(nlev1); cdo_zaxis_inq_levels(var1.zaxisID, lev1.data()); - for (const auto &var2 : varList2.vars) + for (auto const &var2 : varList2.vars) { auto gtype2 = var2.gridType; auto gsize2 = var2.gridsize; @@ -308,7 +308,7 @@ public: void close() override { - for (const auto &streamID : streamIDs) cdo_stream_close(streamID); + for (auto const &streamID : streamIDs) cdo_stream_close(streamID); cdo_stream_close(streamID2); diff --git a/src/Mergetime.cc b/src/Mergetime.cc index 75f331744..a3574f37b 100644 --- a/src/Mergetime.cc +++ b/src/Mergetime.cc @@ -94,19 +94,19 @@ get_parameter(bool &skipSameTime, MapFlag &mapFlag) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "skip_same_time") skipSameTime = parameter_to_bool(value); @@ -179,7 +179,7 @@ public: { auto &si = streamInfoList[fileID]; varList_compare(streamInfoList[0].varList, si.varList); - for (const auto &var : si.varList.vars) si.mapOfVarIDs[var.ID] = var.ID; + for (auto const &var : si.varList.vars) si.mapOfVarIDs[var.ID] = var.ID; } } else @@ -193,7 +193,7 @@ public: if (numVars > streamInfoList[vlistFileIDmax].varList.numVars()) vlistFileIDmax = fileID; } - const auto &varList2 = streamInfoList[(mapFlag == MapFlag::Intersect) ? vlistFileIDmin : vlistFileIDmax].varList; + auto const &varList2 = streamInfoList[(mapFlag == MapFlag::Intersect) ? vlistFileIDmin : vlistFileIDmax].varList; for (int fileID = 0; fileID < numFiles; ++fileID) { auto &si = streamInfoList[fileID]; @@ -224,7 +224,7 @@ public: { if (missingIDs[varID] != 1) { - const auto &var1 = si1.varList.vars[varID]; + auto const &var1 = si1.varList.vars[varID]; field.init(var1); field_fill(field, var1.missval); field.numMissVals = field.gridsize; @@ -303,7 +303,7 @@ public: { auto [varID, levelID] = cdo_inq_field(si.streamID); - const auto &var = si.varList.vars[varID]; + auto const &var = si.varList.vars[varID]; if (tsID2 > 0 && si.tsID == 0 && var.isConstant) continue; auto varID2 = varID; diff --git a/src/Merstat.cc b/src/Merstat.cc index d302802c6..d5b45f99c 100644 --- a/src/Merstat.cc +++ b/src/Merstat.cc @@ -145,7 +145,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID1, field1); diff --git a/src/Mrotuv.cc b/src/Mrotuv.cc index 62a85f688..b6b3fa59e 100644 --- a/src/Mrotuv.cc +++ b/src/Mrotuv.cc @@ -252,8 +252,8 @@ public: cdo_abort("U and V not found in %s", cdo_get_stream_name(0)); } - const auto &varU = varList1.vars[uid]; - const auto &varV = varList1.vars[vid]; + auto const &varU = varList1.vars[uid]; + auto const &varV = varList1.vars[vid]; if (varU.nlevels != varV.nlevels) cdo_abort("U and V have different number of levels!"); auto gridID1 = varU.gridID; diff --git a/src/Mrotuvb.cc b/src/Mrotuvb.cc index 71cd66e85..f72681c4c 100644 --- a/src/Mrotuvb.cc +++ b/src/Mrotuvb.cc @@ -279,8 +279,8 @@ public: VarList varList1(vlistID1); VarList varList2(vlistID2); - const auto &varU = varList1.vars[0]; - const auto &varV = varList2.vars[0]; + auto const &varU = varList1.vars[0]; + auto const &varV = varList2.vars[0]; if (varList1.numVars() > 1) cdo_abort("More than one variable found in %s", cdo_get_stream_name(0)); if (varList2.numVars() > 1) cdo_abort("More than one variable found in %s", cdo_get_stream_name(1)); diff --git a/src/NCL_wind.cc b/src/NCL_wind.cc index f04399eed..2d6bbce6b 100644 --- a/src/NCL_wind.cc +++ b/src/NCL_wind.cc @@ -77,7 +77,7 @@ uv2vr_cfd_W(double missval, double *u, double *v, double *lon, double *lat, size } static int -find_name(const VarList &varList, const std::string &name) +find_name(const VarList &varList, std::string const &name) { auto numVars = varList.numVars(); for (int varID = 0; varID < numVars; ++varID) @@ -119,19 +119,19 @@ set_parameter(void) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = "PARAMETER"; if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "u") uName = value; @@ -225,8 +225,8 @@ public: if (varIDu == CDI_UNDEFID) cdo_abort("%s not found!", uName); if (varIDv == CDI_UNDEFID) cdo_abort("%s not found!", vName); - const auto &varU = varList1.vars[varIDu]; - const auto &varV = varList1.vars[varIDv]; + auto const &varU = varList1.vars[varIDu]; + auto const &varV = varList1.vars[varIDv]; auto gridIDu = varU.gridID; auto gridIDv = varV.gridID; @@ -288,8 +288,8 @@ public: Varray<double> arrayv(nlev * gridsizeuv); Varray<double> arrayo(nlev * gridsizeuv); - const auto &varU = varList1.vars[varIDu]; - const auto &varV = varList1.vars[varIDv]; + auto const &varU = varList1.vars[varIDu]; + auto const &varV = varList1.vars[varIDv]; int tsID = 0; while (true) { diff --git a/src/Ninfo.cc b/src/Ninfo.cc index 051503112..b1fad9e24 100644 --- a/src/Ninfo.cc +++ b/src/Ninfo.cc @@ -169,10 +169,10 @@ public: } case NPAR: fprintf(stdout, "%d\n", numVars); break; case NLEVEL: - for (const auto &var : varList.vars) { fprintf(stdout, "%d\n", var.nlevels); } + for (auto const &var : varList.vars) { fprintf(stdout, "%d\n", var.nlevels); } break; case NGRIDPOINTS: - for (const auto &var : varList.vars) { fprintf(stdout, "%zu\n", var.gridsize); } + for (auto const &var : varList.vars) { fprintf(stdout, "%zu\n", var.gridsize); } break; case NGRIDS: fprintf(stdout, "%d\n", numGrids); break; default: cdo_abort("operator not implemented!"); break; diff --git a/src/Nmldump.cc b/src/Nmldump.cc index 6ccd1d136..dc449bf44 100644 --- a/src/Nmldump.cc +++ b/src/Nmldump.cc @@ -27,7 +27,7 @@ print_values(int numValues, const std::vector<std::string> &values) auto dataType = literals_find_datatype(numValues, values); for (int i = 0; i < numValues; ++i) { - const auto &value = values[i]; + auto const &value = values[i]; if (i) printf(", "); switch (dataType) { @@ -49,13 +49,13 @@ print_values(int numValues, const std::vector<std::string> &values) void kvldump(const PMList &pmlist) { - for (const auto &kvlist : pmlist) + for (auto const &kvlist : pmlist) { - const auto &listname = kvlist.name; + auto const &listname = kvlist.name; if (!listname.empty()) printf("&%s\n", listname.c_str()); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (!listname.empty()) printf(" "); printf("%s = ", key.c_str()); print_values(kv.nvalues, kv.values); diff --git a/src/Output.cc b/src/Output.cc index 46080b684..099860fba 100644 --- a/src/Output.cc +++ b/src/Output.cc @@ -26,13 +26,13 @@ #include "cdo_zaxis.h" static void -outputarr(int dig, size_t gridsize, const Varray<double> &array) +outputarr(int dig, size_t gridsize, Varray<double> const &array) { for (size_t i = 0; i < gridsize; ++i) { fprintf(stdout, " arr[%zu] = %.*g;\n", i, dig, array[i]); } } static void -outputsp(size_t gridsize, const Varray<double> &array, long ntr) +outputsp(size_t gridsize, Varray<double> const &array, long ntr) { auto mm = varray_min_max(gridsize, array); if (/* T11 */ mm.min >= -1 && mm.max <= 12) @@ -51,7 +51,7 @@ outputsp(size_t gridsize, const Varray<double> &array, long ntr) } static void -output(size_t gridsize, const Varray<double> &array) +output(size_t gridsize, Varray<double> const &array) { int nout = 0; for (size_t i = 0; i < gridsize; ++i) @@ -74,8 +74,8 @@ print_xyz(FILE *fp, double x, double y, double z) } static void -outputxyz(size_t gridsize, const Varray<double> &array, double missval, size_t nlon, size_t nlat, const Varray<double> &lon, - const Varray<double> &lat) +outputxyz(size_t gridsize, Varray<double> const &array, double missval, size_t nlon, size_t nlat, Varray<double> const &lon, + Varray<double> const &lat) { double fmin = 0.0; for (size_t i = 0; i < gridsize; ++i) @@ -175,7 +175,7 @@ read_lonlat_coordinates(int gridID0, Varray<double> &grid_center_lon, Varray<dou } static void -outputint(size_t gridsize, const Varray<double> &array) +outputint(size_t gridsize, Varray<double> const &array) { int nout = 0; for (size_t i = 0; i < gridsize; ++i) @@ -192,7 +192,7 @@ outputint(size_t gridsize, const Varray<double> &array) } static void -outputf(int nelem, const std::string &format, size_t gridsize, const Varray<double> &array) +outputf(int nelem, std::string const &format, size_t gridsize, Varray<double> const &array) { int nout = 0; for (size_t i = 0; i < gridsize; ++i) @@ -333,7 +333,7 @@ public: operator_input_arg("keys to print"); auto npar = cdo_operator_argc(); - const auto &parnames = cdo_get_oper_argv(); + auto const &parnames = cdo_get_oper_argv(); if (Options::cdoVerbose) for (int i = 0; i < npar; ++i) cdo_print("key%d=%s", i + 1, parnames[i]); @@ -347,7 +347,7 @@ public: size_t k; for (k = 0; k < keyMap.size(); ++k) { - const auto &key = keyMap[k].key; + auto const &key = keyMap[k].key; if (key == currentName) { if (keyMap[k].idx == knohead) @@ -427,7 +427,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID); - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; auto code = var.code; auto gridID = var.gridID; diff --git a/src/Outputgmt.cc b/src/Outputgmt.cc index 0aedd6ed4..fef5717ed 100644 --- a/src/Outputgmt.cc +++ b/src/Outputgmt.cc @@ -125,7 +125,7 @@ get_rgb(double value, double missval, const CPT &cpt) } static void -output_vrml(long nlon, long nlat, long ngp, const Varray<double> &array, double missval, const CPT &cpt) +output_vrml(long nlon, long nlat, long ngp, Varray<double> const &array, double missval, const CPT &cpt) { auto mm = varray_min_max_mv(ngp, array, missval); auto dx = 10.0 / nlon; @@ -219,7 +219,7 @@ output_vrml(long nlon, long nlat, long ngp, const Varray<double> &array, double } static void -output_kml(size_t ngp, const Varray<double> &array, int ncorner, const Varray<double> &grid_corner_lat, +output_kml(size_t ngp, Varray<double> const &array, int ncorner, Varray<double> const &grid_corner_lat, Varray<double> &grid_corner_lon, const std::vector<int> &grid_mask, double missval, const CPT &cpt) { fprintf(stdout, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"); @@ -330,8 +330,8 @@ output_kml(size_t ngp, const Varray<double> &array, int ncorner, const Varray<do } static void -output_vector(long nlon, long nlat, int ninc, const Varray<double> &lon, const Varray<double> &lat, const Varray<double> &uf, - const Varray<double> &vf) +output_vector(long nlon, long nlat, int ninc, Varray<double> const &lon, Varray<double> const &lat, Varray<double> const &uf, + Varray<double> const &vf) { for (long j = 0; j < nlat; j += ninc) for (long i = 0; i < nlon; i += ninc) @@ -469,7 +469,7 @@ public: varList = VarList(vlistID); - const auto &var0 = varList.vars[0]; + auto const &var0 = varList.vars[0]; gridID = var0.gridID; auto zaxisID = var0.zaxisID; missval = var0.missval; @@ -620,7 +620,7 @@ public: if (tsID == 0 && printHeader) { - const auto &var0 = varList.vars[0]; + auto const &var0 = varList.vars[0]; if (operatorID == OUTPUTVRML) printf("#VRML V2.0 utf8\n\n"); #ifdef VERSION fprintf(stdout, "# Generated by CDO version %s\n", VERSION); diff --git a/src/Pack.cc b/src/Pack.cc index 8a80cf565..93d7bb18f 100644 --- a/src/Pack.cc +++ b/src/Pack.cc @@ -40,7 +40,7 @@ struct PackEntry }; static std::vector<PackEntry> -read_params_from_file(const std::string &filename) +read_params_from_file(std::string const &filename) { std::vector<PackEntry> packList; @@ -59,12 +59,12 @@ read_params_from_file(const std::string &filename) if (Options::cdoVerbose) kvlist.print(); PackEntry packEntry; - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "name") packEntry.name = parameter_to_word(value); @@ -154,7 +154,7 @@ print_parameter(const PackParams ¶ms) } static void -print_pack_params(const std::string &name, double addOffset, double scaleFactor) +print_pack_params(std::string const &name, double addOffset, double scaleFactor) { fprintf(stdout, "name=%s add_offset=%.9g scale_factor=%.9g\n", name.c_str(), addOffset, scaleFactor); } @@ -167,19 +167,19 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "add_offset") params.add_offset = parameter_to_double(value); @@ -261,7 +261,7 @@ private: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; double fmin = undefValue, fmax = -undefValue; size_t numMissValspv = 0; @@ -272,7 +272,7 @@ private: { if (t > 0 && var.isConstant) continue; - const auto &field = varsData[t][varID][levelID]; + auto const &field = varsData[t][varID][levelID]; auto numMissVals = field.numMissVals; if (numMissVals) numMissValspv += numMissVals; @@ -336,7 +336,7 @@ private: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID > 0 && var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { @@ -359,9 +359,9 @@ private: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; - for (const auto &packEntry : packList) + for (auto const &packEntry : packList) { if (var.name == packEntry.name) { diff --git a/src/Pinfo.cc b/src/Pinfo.cc index b380e3caa..31db26939 100644 --- a/src/Pinfo.cc +++ b/src/Pinfo.cc @@ -107,7 +107,7 @@ public: size_t numMissVals; cdo_read_field(streamID1, array1.data(), &numMissVals); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; indg += 1; auto gridsize = var.gridsize; diff --git a/src/Regres.cc b/src/Regres.cc index f7bf397ab..a58316376 100644 --- a/src/Regres.cc +++ b/src/Regres.cc @@ -32,19 +32,19 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "equal") tstepIsEqual = parameter_to_bool(value); @@ -158,7 +158,7 @@ public: { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList2.vars[varID]; + auto const &var = varList2.vars[varID]; field2.init(var); field3.init(var); diff --git a/src/Remapeta.cc b/src/Remapeta.cc index ea5205ecf..32a5c7acd 100644 --- a/src/Remapeta.cc +++ b/src/Remapeta.cc @@ -26,7 +26,7 @@ #include "cdi_lockedIO.h" static void -set_missval(const Vmask &imiss, double missval, auto &sarray) +set_missval(Vmask const &imiss, double missval, auto &sarray) { auto n = imiss.size(); if (n > 0) @@ -90,7 +90,7 @@ ncctop(double cptop, long nlev, long nlevp1, const double *vct_a, const double * } static Varray<double> -vct_from_file(const std::string &filename) +vct_from_file(std::string const &filename) { constexpr int maxvct = 8192; Varray<double> vct; @@ -137,7 +137,7 @@ vct_from_file(const std::string &filename) template <typename T> static void -vertSum(Varray<double> &sum, const Varray<T> &var3d, size_t gridsize, size_t nlevels) +vertSum(Varray<double> &sum, Varray<T> const &var3d, size_t gridsize, size_t nlevels) { for (size_t i = 0; i < gridsize; ++i) sum[i] = 0; @@ -147,7 +147,7 @@ vertSum(Varray<double> &sum, const Varray<T> &var3d, size_t gridsize, size_t nle template <typename T> static void -vertSumw(Varray<double> &sum, const Varray<T> &var3d, size_t gridsize, size_t nlevels, const Varray<double> &deltap) +vertSumw(Varray<double> &sum, Varray<T> const &var3d, size_t gridsize, size_t nlevels, Varray<double> const &deltap) { for (size_t i = 0; i < gridsize; ++i) sum[i] = 0; @@ -157,9 +157,9 @@ vertSumw(Varray<double> &sum, const Varray<T> &var3d, size_t gridsize, size_t nl template <typename T> void -field_copy_array(size_t len, const Field &field, T *array) +field_copy_array(size_t len, Field const &field, T *array) { - auto func = [&](const auto &v) { + auto func = [&](auto const &v) { for (size_t i = 0; i < len; ++i) array[i] = v[i]; }; field_operation(func, field); @@ -351,7 +351,7 @@ public: } void - read_fis(const std::string &fileName) + read_fis(std::string const &fileName) { auto streamID = stream_open_read_locked(fileName.c_str()); auto vlistID = streamInqVlist(streamID); @@ -360,7 +360,7 @@ public: int varID, levelID; streamInqField(streamID, &varID, &levelID); - const auto &var = varList.vars[0]; + auto const &var = varList.vars[0]; nfis2gp = var.gridsize; fis2.resize(nfis2gp); @@ -500,7 +500,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.gridType == GRID_SPECTRAL && var.zaxisType == ZAXIS_HYBRID) cdo_abort("Spectral data on model level unsupported!"); @@ -624,7 +624,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); @@ -698,7 +698,7 @@ public: if (ltq) { int varID = varIDs.taID; - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; for (int levelID = 0; levelID < var1.nlevels; ++levelID) { auto offset = gridsize * levelID; diff --git a/src/Remapgrid.cc b/src/Remapgrid.cc index 684b13488..ca4b51d55 100644 --- a/src/Remapgrid.cc +++ b/src/Remapgrid.cc @@ -34,7 +34,7 @@ #include "remapknn.h" int -get_remapIndex(int numRemaps, std::vector<RemapType> &remaps, int gridID, size_t numMissVals, bool useMask, const Vmask &imask) +get_remapIndex(int numRemaps, std::vector<RemapType> &remaps, int gridID, size_t numMissVals, bool useMask, Vmask const &imask) { int remapIndex = -1; for (remapIndex = numRemaps - 1; remapIndex >= 0; remapIndex--) @@ -87,12 +87,12 @@ maptype_to_operfunc(const RemapSwitches &remapSwitches) } static void -scale_gridbox_area(const Field &field1, Field &field2, const Varray<double> &grid2_area) +scale_gridbox_area(Field const &field1, Field &field2, Varray<double> const &grid2_area) { auto gridsize1 = field1.size; auto gridsize2 = field2.size; double v1sum; - auto func = [&](const auto &v1, auto &v2) { + auto func = [&](auto const &v1, auto &v2) { v1sum = varray_sum(gridsize1, v1); auto v2sum = varray_sum(gridsize2, grid2_area); for (size_t i = 0; i < gridsize2; ++i) v2[i] = grid2_area[i] / v2sum * v1sum; @@ -202,7 +202,7 @@ remap_set_fracmin(double fracMin, Field &field, const RemapGrid *tgtGrid) } static void -remap_field(RemapMethod mapType, const KnnParams &knnParams, RemapType &remap, const Field &field1, Field &field2) +remap_field(RemapMethod mapType, KnnParams const &knnParams, RemapType &remap, Field const &field1, Field &field2) { // clang-format off if (mapType == RemapMethod::BILINEAR) remap_bilinear(remap.search, field1, field2); @@ -213,7 +213,7 @@ remap_field(RemapMethod mapType, const KnnParams &knnParams, RemapType &remap, c } static RemapSwitches -remap_read_weights(const std::string &remapWeightsFile, int gridID1, int gridID2, RemapType &remap0, bool extrapolateIsSet, +remap_read_weights(std::string const &remapWeightsFile, int gridID1, int gridID2, RemapType &remap0, bool extrapolateIsSet, bool &remapExtrapolate, KnnParams &knnParams) { auto remapSwitches @@ -272,7 +272,7 @@ remap_read_weights(const std::string &remapWeightsFile, int gridID1, int gridID2 double get_planet_radius_in_meter(int gridID); static void -print_node_info(int gridID2, const RemapVars &rv, const RemapGrid &srcGrid) +print_node_info(int gridID2, RemapVars const &rv, const RemapGrid &srcGrid) { static auto printNodeInfo = true; if (printNodeInfo == false) return; @@ -309,19 +309,19 @@ remapknn_get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "k") knnParams.k = parameter_to_int(value); diff --git a/src/Remapstat.cc b/src/Remapstat.cc index 1925c61be..b345416fa 100644 --- a/src/Remapstat.cc +++ b/src/Remapstat.cc @@ -190,7 +190,7 @@ is_zonal_grid(int gridID, const std::vector<double> &xbounds2d, const std::vecto } static double -calc_maxdist(size_t i, size_t nv, const PointLonLat &pointLL, const Varray<double> &xbounds, const Varray<double> &ybounds) +calc_maxdist(size_t i, size_t nv, PointLonLat const &pointLL, Varray<double> const &xbounds, Varray<double> const &ybounds) { double p1[3], p2[3]; gcLLtoXYZ(pointLL.get_lon(), pointLL.get_lat(), p1); @@ -209,7 +209,7 @@ calc_maxdist(size_t i, size_t nv, const PointLonLat &pointLL, const Varray<doubl } static double -calc_maxdist_rec2d(size_t i, size_t nlon, const PointLonLat &pointLL, const std::vector<double> &xbounds, +calc_maxdist_rec2d(size_t i, size_t nlon, PointLonLat const &pointLL, const std::vector<double> &xbounds, const std::vector<double> &ybounds) { double p1[3], p2[3]; @@ -242,8 +242,8 @@ calc_maxdist_rec2d(size_t i, size_t nlon, const PointLonLat &pointLL, const std: #ifdef USE_YAC static size_t find_points_yac(Vmask &vmask, size_t cell_no, size_t ncorner, size_t numIndices, Varray<size_t> &indices, - const Varray<double> &xvals1, const Varray<double> &yvals1, const Varray<double> &xbounds, - const Varray<double> &ybounds) + Varray<double> const &xvals1, Varray<double> const &yvals1, Varray<double> const &xbounds, + Varray<double> const &ybounds) { #ifndef TESTIMPL cdo_abort("Internal error: find_points() not implemented!"); @@ -297,8 +297,8 @@ find_points_yac(Vmask &vmask, size_t cell_no, size_t ncorner, size_t numIndices, #endif static size_t -find_points(Vmask &vmask, size_t cell_no, size_t ncorner, size_t numIndices, Varray<size_t> &indices, const Varray<double> &xvals1, - const Varray<double> &yvals1, const Varray<double> &xbounds, const Varray<double> &ybounds) +find_points(Vmask &vmask, size_t cell_no, size_t ncorner, size_t numIndices, Varray<size_t> &indices, Varray<double> const &xvals1, + Varray<double> const &yvals1, Varray<double> const &xbounds, Varray<double> const &ybounds) { #ifndef TESTIMPL cdo_abort("Internal error: find_points() not implemented!"); @@ -369,8 +369,8 @@ find_points(Vmask &vmask, size_t cell_no, size_t ncorner, size_t numIndices, Var } static size_t -find_points_rec2d(Vmask &vmask, size_t i, size_t nlon2, size_t numIndices, Varray<size_t> &indices, const Varray<double> &xvals1, - const Varray<double> &yvals1, const std::vector<double> &xbounds2d, const std::vector<double> &ybounds2d) +find_points_rec2d(Vmask &vmask, size_t i, size_t nlon2, size_t numIndices, Varray<size_t> &indices, Varray<double> const &xvals1, + Varray<double> const &yvals1, const std::vector<double> &xbounds2d, const std::vector<double> &ybounds2d) { auto iy = i / nlon2; auto ix = i - iy * nlon2; @@ -425,7 +425,7 @@ get_bin_num(double lon1, double lat1, size_t numBins, const std::vector<double> } static void -check_vmask(const Vmask &vmask) +check_vmask(Vmask const &vmask) { constexpr int maxVals = 128; size_t vm[maxVals] = { 0 }; @@ -576,7 +576,7 @@ gen_mapdata(int gridID1, int gridID2) template <typename T> static T remap_kernel(int operfunc, const Varray<size_t> &indices, size_t &numMissVals2, Field &field, Varray<T> &fieldvec, - const Varray<T> &vec1, double mv) + Varray<T> const &vec1, double mv) { T missval = mv; T value; @@ -606,7 +606,7 @@ remap_kernel(int operfunc, const Varray<size_t> &indices, size_t &numMissVals2, } static void -remap_field(const Varray2D<size_t> &mapdata, const Field &field1, Field &field2, int operfunc) +remap_field(const Varray2D<size_t> &mapdata, Field const &field1, Field &field2, int operfunc) { std::vector<Field> fields(Threading::ompNumMaxThreads); @@ -619,7 +619,7 @@ remap_field(const Varray2D<size_t> &mapdata, const Field &field1, Field &field2, #endif for (size_t i = 0; i < gridsize2; ++i) { - const auto &indices = mapdata[i]; + auto const &indices = mapdata[i]; auto nvalues = indices.size(); auto missval = field1.missval; diff --git a/src/Remapweights.cc b/src/Remapweights.cc index f082d39b9..fbdff010c 100644 --- a/src/Remapweights.cc +++ b/src/Remapweights.cc @@ -32,7 +32,7 @@ #include "pmlist.h" int get_remapIndex(int numRemaps, std::vector<RemapType> &remapList, int gridID, size_t numMissVals, bool useMask, - const Vmask &imask); + Vmask const &imask); void pack_gme_vgpm(const Varray<int> &vgpm, Vmask &imask); struct RemapweightsParams @@ -49,19 +49,19 @@ get_parameter_knn() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "k") params.knnParams.k = parameter_to_int(value); @@ -106,12 +106,12 @@ get_parameter_map3d(int offset, int &neighbors, bool &map3D, std::string &grid) if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "grid") grid = parameter_to_word(value); @@ -124,7 +124,7 @@ get_parameter_map3d(int offset, int &neighbors, bool &map3D, std::string &grid) } static void -remap_write_weights(const std::string &remapWeightsFile, const KnnParams &knnParams, const RemapSwitches &remapSwitches, +remap_write_weights(std::string const &remapWeightsFile, KnnParams const &knnParams, const RemapSwitches &remapSwitches, RemapType &remap) { remap_write_data_scrip(remapWeightsFile, knnParams, remapSwitches, remap.srcGrid, remap.tgtGrid, remap.vars); diff --git a/src/Replace.cc b/src/Replace.cc index ef9664146..80e25d1cd 100644 --- a/src/Replace.cc +++ b/src/Replace.cc @@ -80,7 +80,7 @@ public: for (int varID2 = 0; varID2 < numVars2; ++varID2) { - const auto &var2 = varList2.vars[varID2]; + auto const &var2 = varList2.vars[varID2]; int varID1; for (varID1 = 0; varID1 < numVars1; ++varID1) { @@ -89,7 +89,7 @@ public: if (varID1 < numVars1) { - const auto &var1 = varList1.vars[varID1]; + auto const &var1 = varList1.vars[varID1]; if (var1.gridsize != var2.gridsize) cdo_abort("Variables have different gridsize!"); if (var1.nlevels < var2.nlevels) cdo_abort("Variables have different number of levels!"); @@ -111,8 +111,8 @@ public: varlevel.resize(nchvars); for (idx = 0; idx < nchvars; idx++) { - const auto &var1 = varList1.vars[vars1[idx]]; - const auto &var2 = varList2.vars[vars2[idx]]; + auto const &var1 = varList1.vars[vars1[idx]]; + auto const &var2 = varList2.vars[vars2[idx]]; vardata2[idx].resize(var2.nlevels * var2.gridsize); varnumMissVals2[idx].resize(var2.nlevels); diff --git a/src/Replacevalues.cc b/src/Replacevalues.cc index 8249accb0..9a1abd678 100644 --- a/src/Replacevalues.cc +++ b/src/Replacevalues.cc @@ -121,7 +121,7 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); size_t numMissVals; cdo_read_field(streamID1, array.data(), &numMissVals); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto gridsize = var.gridsize; auto missval = var.missval; diff --git a/src/Rhopot.cc b/src/Rhopot.cc index 2a9d7fbe9..e6934aebb 100644 --- a/src/Rhopot.cc +++ b/src/Rhopot.cc @@ -116,7 +116,7 @@ r[i]-x[i]); */ static void -calc_rhopot(size_t gridsize, size_t nlevel, const Varray<double> &pressure, const FieldVector &to, const FieldVector &sao, +calc_rhopot(size_t gridsize, size_t nlevel, Varray<double> const &pressure, FieldVector const &to, FieldVector const &sao, FieldVector &rho) { // pressure units: hPa @@ -125,8 +125,8 @@ calc_rhopot(size_t gridsize, size_t nlevel, const Varray<double> &pressure, cons for (size_t levelID = 0; levelID < nlevel; ++levelID) { - const auto &tovec = to[levelID].vec_d; - const auto &saovec = sao[levelID].vec_d; + auto const &tovec = to[levelID].vec_d; + auto const &saovec = sao[levelID].vec_d; auto &rhovec = rho[levelID].vec_d; auto to_missval = to[levelID].missval; auto sao_missval = sao[levelID].missval; @@ -188,7 +188,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto code = var.code; if (code <= 0) { @@ -224,8 +224,8 @@ public: auto gridID = vlistGrid(vlistID1, 0); gridsize = vlist_check_gridsize(vlistID1); - const auto &varSAO = varList1.vars[saoID]; - const auto &varTO = varList1.vars[toID]; + auto const &varSAO = varList1.vars[saoID]; + auto const &varTO = varList1.vars[toID]; zaxisID = varSAO.zaxisID; if (varSAO.nlevels != varTO.nlevels) cdo_abort("temperature and salinity have different number of levels!"); diff --git a/src/Rotuv.cc b/src/Rotuv.cc index 412ed0d1c..01e0401f8 100644 --- a/src/Rotuv.cc +++ b/src/Rotuv.cc @@ -231,8 +231,8 @@ public: if (varID == numVars) cdo_abort("v-wind not found!"); auto vsvarID = varID; - const auto &usVar = varList1.vars[usvarID]; - const auto &vsVar = varList1.vars[vsvarID]; + auto const &usVar = varList1.vars[usvarID]; + auto const &vsVar = varList1.vars[vsvarID]; if (Options::cdoVerbose) { diff --git a/src/Samplegrid.cc b/src/Samplegrid.cc index f14d691fc..924c8cfb0 100644 --- a/src/Samplegrid.cc +++ b/src/Samplegrid.cc @@ -174,7 +174,7 @@ public: vlistChangeGridIndex(vlistID2, index, gridIDsampled); - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) if (gridSrcID == var.gridID) vars[var.ID] = true; } diff --git a/src/Samplegridicon.cc b/src/Samplegridicon.cc index 7b8818cab..31d3c9b91 100644 --- a/src/Samplegridicon.cc +++ b/src/Samplegridicon.cc @@ -31,13 +31,13 @@ struct CellIndex }; static void -copy_data_to_index(long ncells, const Varray<double> &data, long *cellindex) +copy_data_to_index(long ncells, Varray<double> const &data, long *cellindex) { for (long i = 0; i < ncells; ++i) cellindex[i] = std::lround(data[i]); } static void -read_cellindex(const std::string &filename, CellIndex &cellindex) +read_cellindex(std::string const &filename, CellIndex &cellindex) { auto streamID = stream_open_read_locked(filename.c_str()); auto vlistID = streamInqVlist(streamID); @@ -120,7 +120,7 @@ read_cellindex(const std::string &filename, CellIndex &cellindex) } static int -read_grid(const std::string &filename) +read_grid(std::string const &filename) { auto streamID = stream_open_read_locked(filename.c_str()); auto vlistID = streamInqVlist(streamID); @@ -236,7 +236,7 @@ compute_child_from_parent(CellIndex &cellindex1, CellIndex &cellindex2) } static void -read_coordinates(const std::string &filename, long n, Varray<double> &lon, Varray<double> &lat) +read_coordinates(std::string const &filename, long n, Varray<double> &lon, Varray<double> &lat) { auto streamID = streamOpenRead(filename.c_str()); auto vlistID = streamInqVlist(streamID); @@ -261,7 +261,7 @@ read_coordinates(const std::string &filename, long n, Varray<double> &lon, Varra } static void -read_coordinates(const std::string &filename, long n, Varray<double> &lon, Varray<double> &lat, int nv, Varray<double> &lon_bnds, +read_coordinates(std::string const &filename, long n, Varray<double> &lon, Varray<double> &lat, int nv, Varray<double> &lon_bnds, Varray<double> &lat_bnds) { auto streamID = streamOpenRead(filename.c_str()); @@ -298,7 +298,7 @@ read_coordinates(const std::string &filename, long n, Varray<double> &lon, Varra static void compute_child_from_bounds(CellIndex &cellindex2, Varray<double> &grid_center_lon2, Varray<double> &grid_center_lat2, Varray<double> &grid_corner_lon2, Varray<double> &grid_corner_lat2, - const Varray<double> &grid_center_lon1, const Varray<double> &grid_center_lat1) + Varray<double> const &grid_center_lon1, Varray<double> const &grid_center_lat1) { if (Options::cdoVerbose) cdo_print("%s", __func__); @@ -394,7 +394,7 @@ compute_child(CellIndex &cellindex1, CellIndex &cellindex2) { bool lparent = true; auto ncells1 = cellindex1.ncells; - const auto &parent1 = cellindex1.parent; + auto const &parent1 = cellindex1.parent; long i; for (i = 0; i < ncells1; ++i) @@ -410,7 +410,7 @@ compute_child(CellIndex &cellindex1, CellIndex &cellindex2) } static void -compute_sum(long i, long &n, double &sum, double &sumq, long kci, Varray<CellIndex> &cellindex, const Varray<double> &array) +compute_sum(long i, long &n, double &sum, double &sumq, long kci, Varray<CellIndex> &cellindex, Varray<double> const &array) { // printf("compute: i, kci %d %d\n", i, kci); auto ncells2 = cellindex[kci].ncells; @@ -432,7 +432,7 @@ compute_sum(long i, long &n, double &sum, double &sumq, long kci, Varray<CellInd } static void -samplegrid(double missval, long nci, Varray<CellIndex> &cellindex, const Varray<double> &array1, Varray<double> &array2, +samplegrid(double missval, long nci, Varray<CellIndex> &cellindex, Varray<double> const &array1, Varray<double> &array2, Varray<double> &array3) { static bool lstat = true; diff --git a/src/Seascount.cc b/src/Seascount.cc index 13ab4ca47..aabd4bd2f 100644 --- a/src/Seascount.cc +++ b/src/Seascount.cc @@ -119,7 +119,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); diff --git a/src/Seasmonstat.cc b/src/Seasmonstat.cc index c0d48fdc0..db051a72b 100644 --- a/src/Seasmonstat.cc +++ b/src/Seasmonstat.cc @@ -158,7 +158,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -208,11 +208,11 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { - const auto &rsamp1 = samp1[varID][levelID]; + auto const &rsamp1 = samp1[varID][levelID]; auto &rvars1 = varsData1[varID][levelID]; if (!rsamp1.empty()) field2_div(rvars1, rsamp1); diff --git a/src/Seaspctl.cc b/src/Seaspctl.cc index e71d90b7e..ccc178ab0 100644 --- a/src/Seaspctl.cc +++ b/src/Seaspctl.cc @@ -103,7 +103,7 @@ public: hset = HistogramSet(numVars, numSteps); - for (const auto &var : varList1.vars) hset.createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hset.createVarLevels(var.ID, var.nlevels, var.gridsize); } void @@ -135,7 +135,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID2); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID2, field1); @@ -178,7 +178,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -208,7 +208,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (otsID && var.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Selbox.cc b/src/Selbox.cc index 6273b97ae..a82863890 100644 --- a/src/Selbox.cc +++ b/src/Selbox.cc @@ -74,12 +74,12 @@ gengridxyvals(int gridtype, int gridID1, int gridID2, long nlon, long nlat, long if (lxvals) gridInqXvals(gridID1, xvals1.data()); if (lyvals) gridInqYvals(gridID1, yvals1.data()); - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; if (gridtype == GRID_CURVILINEAR) { @@ -127,12 +127,12 @@ gengridXboundsCurvi(int gridID1, long nlon, long nlat, long nlon2, long nlat2, c gridInqXbounds(gridID1, xbounds1.data()); - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; for (long ilat = lat1; ilat <= lat2; ilat++) { for (long ilon = 4 * lon21; ilon < 4 * (lon22 + 1); ilon++) *pxbounds2++ = xbounds1[4 * ilat * nlon + ilon]; @@ -151,12 +151,12 @@ gengridYboundsCurvi(int gridID1, long nlon, long nlat, long nlon2, long nlat2, c gridInqYbounds(gridID1, ybounds1.data()); - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; for (long ilat = lat1; ilat <= lat2; ilat++) { for (long ilon = 4 * lon21; ilon < 4 * (lon22 + 1); ilon++) *pybounds2++ = ybounds1[4 * ilat * nlon + ilon]; @@ -175,10 +175,10 @@ gengridXboundsRect2D(int gridID1, long nlon, long nlon2, const SelboxInfo &selbo gridInqXbounds(gridID1, xbounds1.data()); - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; for (long i = 2 * lon21; i < 2 * (lon22 + 1); ++i) *pxbounds2++ = xbounds1[i]; for (long i = 2 * lon11; i < 2 * (lon12 + 1); ++i) *pxbounds2++ = xbounds1[i]; @@ -206,8 +206,8 @@ gengridYboundsRect2D(int gridID1, long nlat, long nlat2, const SelboxInfo &selbo gridInqYbounds(gridID1, ybounds1.data()); - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; for (long i = 2 * lat1; i < 2 * (lat2 + 1); ++i) *pybounds2++ = ybounds1[i]; } @@ -255,12 +255,12 @@ gengridYbounds(int gridID1, int gridID2, long nlon, long nlat, long nlon2, long static int gengrid(int gridID1, const SelboxInfo &selboxInfo) { - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; long nlon = gridInqXsize(gridID1); long nlat = gridInqYsize(gridID1); @@ -908,9 +908,9 @@ window_box(int nwpv, const T1 *array1, int gridID, T2 *array2, long lat1, long l } static void -window_box(const Field &field1, Field &field2, long lat1, long lat2, long lon11, long lon12, long lon21, long lon22) +window_box(Field const &field1, Field &field2, long lat1, long lat2, long lon11, long lon12, long lon21, long lon22) { - auto func = [&](const auto &v1, auto &v2) { + auto func = [&](auto const &v1, auto &v2) { window_box(field1.nwpv, v1.data(), field1.grid, v2.data(), lat1, lat2, lon11, lon12, lon21, lon22); }; field_operation2(func, field1, field2); @@ -938,7 +938,7 @@ window_cell(int nwpv, const Varray<T1> &v1, Varray<T2> &v2, long n, const std::v } void -window_cell(const Field &field1, Field &field2, const std::vector<long> &cellidx) +window_cell(Field const &field1, Field &field2, const std::vector<long> &cellidx) { auto func = [&](auto &v1, auto &v2) { window_cell(field1.nwpv, v1, v2, field2.gridsize, cellidx); }; field_operation2(func, field1, field2); @@ -982,7 +982,7 @@ get_selboxInfoList(int vlistID1, int vlistID2, bool operIndexBox) if (Options::cdoVerbose) { - for (const auto &sb : selboxInfoList) + for (auto const &sb : selboxInfoList) if (sb.gridtype != GRID_UNSTRUCTURED && !is_healpix_grid(sb.gridID1)) { cdo_print("box1 - idx1,idx2,idy1,idy2: %ld,%ld,%ld,%ld", sb.lon21 + 1, sb.lon22 + 1, sb.lat1 + 1, sb.lat2 + 1); @@ -1001,7 +1001,7 @@ get_processVars(const VarList &varList, const std::vector<SelboxInfo> &selboxInf std::vector<bool> processVars(numVars, false); int varID; - for (const auto &sb : selboxInfoList) + for (auto const &sb : selboxInfoList) { for (varID = 0; varID < numVars; ++varID) if (sb.gridID1 == varList.vars[varID].gridID) processVars[varID] = true; @@ -1018,7 +1018,7 @@ get_processVars(const VarList &varList, const std::vector<SelboxInfo> &selboxInf static const SelboxInfo & select_selboxInfo(int gridID, const std::vector<SelboxInfo> &selboxInfoList) { - for (const auto &selboxInfo : selboxInfoList) + for (auto const &selboxInfo : selboxInfoList) if (gridID == selboxInfo.gridID1) return selboxInfo; cdo_abort("Internal problem, grid not found!"); @@ -1105,7 +1105,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field1.init(var1); cdo_read_field(streamID1, field1); @@ -1115,7 +1115,7 @@ public: { field2.init(varList2.vars[varID]); - const auto &sb = select_selboxInfo(var1.gridID, selboxInfoList); + auto const &sb = select_selboxInfo(var1.gridID, selboxInfoList); if (operatorID == SELLONLATBOX && (sb.gridtype == GRID_UNSTRUCTURED || is_healpix_grid(sb.gridID1))) window_cell(field1, field2, sb.cellidx); diff --git a/src/Select.cc b/src/Select.cc index 87c3c91e6..c097dbbde 100644 --- a/src/Select.cc +++ b/src/Select.cc @@ -162,7 +162,7 @@ public: operator_input_arg(cdo_operator_enter(operatorID)); auto argc = cdo_operator_argc(); - const auto &argnames = cdo_get_oper_argv(); + auto const &argnames = cdo_get_oper_argv(); if (argc == 0) cdo_abort("Parameter missing!"); @@ -274,7 +274,7 @@ public: xresult = false; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) vlistDefFlag(vlistID1, varID, levelID, true); } } @@ -292,7 +292,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; code = var.code; @@ -366,7 +366,7 @@ public: { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (zaxisInqType(var.zaxisID) == ZAXIS_HYBRID) { auto psvarid = varList_get_psvarid(varList1, var.zaxisID); @@ -379,7 +379,7 @@ public: { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { levidx = levelID + 1; @@ -436,7 +436,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { processVars[varID] = true; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) vlistDefFlag(vlistID1, varID, levelID, true); } } @@ -448,7 +448,7 @@ public: vlistID0 = vlistDuplicate(vlistID1); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) vlistDefFlag(vlistID0, varID, levelID, vlistInqFlag(vlistID1, varID, levelID)); } @@ -643,7 +643,7 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); if (vlistInqFlag(vlistID0, varID, levelID) == true) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (hasConstVars && tsID2 > 0 && tsID1 == 0) if (var.isConstant) continue; @@ -675,7 +675,7 @@ public: if (vlistInqFlag(vlistID0, varID, levelID) == true) { auto varID2 = vlistFindVar(vlistID2, varID); - const auto &var = varList2.vars[varID2]; + auto const &var = varList2.vars[varID2]; if (var.isConstant) { auto levelID2 = vlistFindLevel(vlistID2, varID, levelID); diff --git a/src/Selgridcell.cc b/src/Selgridcell.cc index 6c44059cb..b770436f3 100644 --- a/src/Selgridcell.cc +++ b/src/Selgridcell.cc @@ -75,9 +75,9 @@ genindexgrid(int gridID1, size_t gridsize2, const std::vector<long> &cellidx) } static void -select_index(const Field &field1, Field &field2, long nind, const std::vector<long> &cellIndex) +select_index(Field const &field1, Field &field2, long nind, const std::vector<long> &cellIndex) { - auto func = [&](const auto &v1, auto &v2) { + auto func = [&](auto const &v1, auto &v2) { for (long i = 0; i < nind; ++i) v2[i] = v1[cellIndex[i]]; }; field_operation2(func, field1, field2); @@ -140,7 +140,7 @@ public: if (cdo_operator_argc() == 1) { bool maskfile = true, indexfile = false; - const auto &filename = cdo_operator_argv(0); + auto const &filename = cdo_operator_argv(0); const auto *filenameCstr = filename.c_str(); if (filename.starts_with("index=")) { diff --git a/src/Selmulti.cc b/src/Selmulti.cc index 291138cca..4180e42cc 100644 --- a/src/Selmulti.cc +++ b/src/Selmulti.cc @@ -237,7 +237,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto ltype = zaxis_to_ltype(var.zaxisID); for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -402,7 +402,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (vlistInqFlag(vlistID1, varID, levelID) == true) { diff --git a/src/Selregion.cc b/src/Selregion.cc index 6d8552d78..5bb47fba0 100644 --- a/src/Selregion.cc +++ b/src/Selregion.cc @@ -15,7 +15,7 @@ #include "region.h" int gengridcell(int gridID1, size_t gridsize2, const std::vector<long> &cellidx); -void window_cell(const Field &field1, Field &field2, const std::vector<long> &cellidx); +void window_cell(Field const &field1, Field &field2, const std::vector<long> &cellidx); double radiusDegToKm(double radiusInDeg); struct CirclePoint @@ -72,7 +72,7 @@ point_is_inside(double xval, double yval, double xmin, double xmax, const double } static void -sel_region_cell(Vmask &mask, size_t gridsize, const Varray<double> &xvals, const Varray<double> &yvals, const double *xcoords, +sel_region_cell(Vmask &mask, size_t gridsize, Varray<double> const &xvals, Varray<double> const &yvals, const double *xcoords, const double *ycoords, size_t segmentSize, std::vector<long> &cellidx) { auto xmm = varray_min_max(segmentSize, xcoords); @@ -199,19 +199,19 @@ selcircle_get_parameter(CirclePoint &cpoint) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "maxpoints") cpoint.maxpoints = parameter_to_size_t(value); @@ -332,7 +332,7 @@ public: vlistChangeGridIndex(vlistID2, index, gridID2); - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) if (gridID1 == var.gridID) varIDs[var.ID] = true; } } @@ -362,7 +362,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID1, field1); diff --git a/src/Selsurface.cc b/src/Selsurface.cc index 7153dfd3e..c81dba13b 100644 --- a/src/Selsurface.cc +++ b/src/Selsurface.cc @@ -16,7 +16,7 @@ template <typename T> static void -isosurface_kernel(double isoval, size_t numMissVals, const Varray<double> &levels, int nlevels, size_t gridsize, double mv, +isosurface_kernel(double isoval, size_t numMissVals, Varray<double> const &levels, int nlevels, size_t gridsize, double mv, const Varray<const T *> &data3D, Varray<T> &data2D) { T missval = mv; @@ -52,7 +52,7 @@ isosurface_kernel(double isoval, size_t numMissVals, const Varray<double> &level } static void -isosurface(double isoval, int nlevels, const Varray<double> &levels, const FieldVector &field3D, Field &field2D) +isosurface(double isoval, int nlevels, Varray<double> const &levels, FieldVector const &field3D, Field &field2D) { auto gridsize = gridInqSize(field3D[0].grid); auto missval = field3D[0].missval; @@ -101,7 +101,7 @@ layer_value_min_kernel(int nlevels, size_t gridsize, double mv, const Varray<con } static void -layer_value_min(int nlevels, const FieldVector &field3D, Field &field2D) +layer_value_min(int nlevels, FieldVector const &field3D, Field &field2D) { auto gridsize = gridInqSize(field3D[0].grid); auto missval = field3D[0].missval; @@ -147,7 +147,7 @@ layer_value_max_kernel(int nlevels, size_t gridsize, double mv, const Varray<con } static void -layer_value_max(int nlevels, const FieldVector &field3D, Field &field2D) +layer_value_max(int nlevels, FieldVector const &field3D, Field &field2D) { auto gridsize = gridInqSize(field3D[0].grid); auto missval = field3D[0].missval; @@ -279,7 +279,7 @@ public: for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; isVar3D[varID] = (var.zaxisID == zaxisID1); } } @@ -305,7 +305,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto &field1 = varsData1[varID][levelID]; field1.init(var); cdo_read_field(streamID1, field1); @@ -316,7 +316,7 @@ public: { if (foundVar[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (isVar3D[varID]) { field2.init(var); diff --git a/src/Seltime.cc b/src/Seltime.cc index 90d23ad1f..52bffa954 100644 --- a/src/Seltime.cc +++ b/src/Seltime.cc @@ -112,7 +112,7 @@ get_argv_string(const std::vector<std::string> &argVec) static bool argv_has_negativ_values(const std::vector<std::string> &argVec) { - for (const auto &argument : argVec) + for (auto const &argument : argVec) { int first, last, inc; split_intstring(argument, first, last, inc); @@ -127,7 +127,7 @@ cdo_argv_to_int_timestep(const std::vector<std::string> &argVec, int ntimesteps) { std::vector<int> v; - for (const auto &argument : argVec) + for (auto const &argument : argVec) { int first, last, inc; split_intstring(argument, first, last, inc); @@ -408,7 +408,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (lnts1 || var.isConstant) { for (int levelID = 0; levelID < var.nlevels; ++levelID) varsData[tsID][varID][levelID].resize(var.gridsize); @@ -541,7 +541,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant && tsID2 > 1) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { @@ -571,7 +571,7 @@ public: nts = nts1 - 1; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -592,7 +592,7 @@ public: if (dataIsUnchanged) { cdo_copy_field(streamID2, streamID1); } else { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); cdo_write_field(streamID2, field); @@ -618,7 +618,7 @@ public: vDateTimes[it] = vDateTimes[it + 1]; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { @@ -636,7 +636,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (lnts1 || var.isConstant) { auto single = varsData[nts][varID][levelID].vec_d.data(); diff --git a/src/Selvar.cc b/src/Selvar.cc index 10cba5bd2..c114d40f8 100644 --- a/src/Selvar.cc +++ b/src/Selvar.cc @@ -115,7 +115,7 @@ public: auto argsAreNumeric = (cdo_operator_argc() > 0 && std::isdigit(cdo_operator_argv(0)[0])); - const auto &argnames = cdo_get_oper_argv(); + auto const &argnames = cdo_get_oper_argv(); if (TAKES_STRINGS(operatorID) && !(TAKES_INTEGERS(operatorID) && argsAreNumeric)) { nsel = cdo_operator_argc(); @@ -163,7 +163,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.name == gridvarname) { gridnum = 1 + vlistGridIndex(vlistID1, var.gridID); @@ -181,7 +181,7 @@ public: { vars[varID] = doDelete; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto tabnum = tableInqNum(vlistInqVarTable(vlistID1, varID)); auto grididx = vlistGridIndex(vlistID1, var.gridID); auto zaxisidx = vlistZaxisIndex(vlistID1, var.zaxisID); @@ -240,7 +240,7 @@ public: { if (vars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (zaxisInqType(var.zaxisID) == ZAXIS_HYBRID) { auto psvarid = varList_get_psvarid(varList1, var.zaxisID); @@ -335,7 +335,7 @@ public: if (dataIsUnchanged) { cdo_copy_field(streamID2, streamID1); } else { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); cdo_write_field(streamID2, field); diff --git a/src/Selyearidx.cc b/src/Selyearidx.cc index 182321410..e8face792 100644 --- a/src/Selyearidx.cc +++ b/src/Selyearidx.cc @@ -91,7 +91,7 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto missval = varList2.vars[varID].missval; for (int levelID = 0; levelID < var.nlevels; ++levelID) { @@ -131,11 +131,11 @@ public: for (int fieldID = 0; fieldID < numFields2; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID2); - const auto &var = varList2.vars[varID]; + auto const &var = varList2.vars[varID]; field.init(var); cdo_read_field(streamID2, field); - const auto &field1 = varsData1[varID][levelID]; + auto const &field1 = varsData1[varID][levelID]; auto &field2 = varsData2[varID][levelID]; for (size_t i = 0; i < var.gridsize; ++i) if (numSets == (int) std::lround(field1.vec_d[i])) diff --git a/src/Setattribute.cc b/src/Setattribute.cc index d545bfb3c..e566a013e 100644 --- a/src/Setattribute.cc +++ b/src/Setattribute.cc @@ -45,7 +45,7 @@ get_datatype(char *buffer) } static std::pair<std::string, std::string> -split_var_attr(const std::string &key, int delimiter) +split_var_attr(std::string const &key, int delimiter) { std::string varName, attName; @@ -62,7 +62,7 @@ split_var_attr(const std::string &key, int delimiter) } static std::vector<int> -find_variables(const std::string &varName, int vlistID, std::vector<std::string> &wnames, int &cdiID) +find_variables(std::string const &varName, int vlistID, std::vector<std::string> &wnames, int &cdiID) { std::vector<int> varIDs; @@ -138,7 +138,7 @@ find_variables(const std::string &varName, int vlistID, std::vector<std::string> } static std::vector<std::string> -find_attribute(int cdiID, int varID, const std::string &attrName, int &dtype) +find_attribute(int cdiID, int varID, std::string const &attrName, int &dtype) { std::vector<std::string> attrValues; @@ -180,7 +180,7 @@ find_attribute(int cdiID, int varID, const std::string &attrName, int &dtype) if (varID != CDI_GLOBAL && attrValues.empty()) { VarList varList(cdiID); - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; auto stdname = cdo::inq_key_string(cdiID, varID, CDI_KEY_STDNAME); auto table = vlistInqVarTable(cdiID, varID); @@ -205,7 +205,7 @@ find_attribute(int cdiID, int varID, const std::string &attrName, int &dtype) } static std::vector<std::string> -get_attribute(int vlistID, const std::string &varAttr, int &dtype) +get_attribute(int vlistID, std::string const &varAttr, int &dtype) { auto [varName, attName] = split_var_attr(varAttr, Delimiter); if (attName.empty()) cdo_abort("Attribute name missing in >%s<!", varAttr); @@ -240,7 +240,7 @@ get_attribute(int vlistID, const std::string &varAttr, int &dtype) } static void -delete_attribute(int cdiID, int varID, const std::string &attName, const std::string &varAtt) +delete_attribute(int cdiID, int varID, std::string const &attName, std::string const &varAtt) { auto status = cdiDelAtt(cdiID, varID, attName.c_str()); if (status != CDI_NOERR) // check CDI keys @@ -273,7 +273,7 @@ delete_attribute(int cdiID, int varID, const std::string &attName, const std::st } static void -set_attribute(int cdiID, int varID, const std::string &attName, int dtype, const std::vector<std::string> &values) +set_attribute(int cdiID, int varID, std::string const &attName, int dtype, const std::vector<std::string> &values) { int nvalues = values.size(); @@ -292,7 +292,7 @@ set_attribute(int cdiID, int varID, const std::string &attName, int dtype, const else { if (nvalues > 1) cdo_abort("Multidimensional string attributes not supported! %s=\"%s\"", attName, values[1]); - const auto &value = values[0]; + auto const &value = values[0]; auto len = (int) value.size(); int outlen = 0; std::vector<char> outvalue(len); @@ -316,7 +316,7 @@ set_attributes(const KVList &kvlist, int vlistID) std::vector<std::string> wnames(kvn); char buffer[CDI_MAX_NAME]; - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { std::strcpy(buffer, kv.key.c_str()); auto dtype = get_datatype(buffer); @@ -340,7 +340,7 @@ set_attributes(const KVList &kvlist, int vlistID) auto useAttrValues = false; if (kv.nvalues == 1) { - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; if (value.size() > 2 && value[0] == '{' && value[value.size() - 1] == '}') { attrValues = get_attribute(vlistID, value.substr(1, value.size() - 2), dtype); @@ -348,7 +348,7 @@ set_attributes(const KVList &kvlist, int vlistID) } } - const auto &values = useAttrValues ? attrValues : kv.values; + auto const &values = useAttrValues ? attrValues : kv.values; if (dtype == -1) dtype = literals_find_datatype(values.size(), values); diff --git a/src/Setbox.cc b/src/Setbox.cc index b9365fb48..5e5344525 100644 --- a/src/Setbox.cc +++ b/src/Setbox.cc @@ -22,12 +22,12 @@ static void setcbox(double constant, double *array, int gridID, const SelboxInfo &selboxInfo) { - const auto &lat1 = selboxInfo.lat1; - const auto &lat2 = selboxInfo.lat2; - const auto &lon11 = selboxInfo.lon11; - const auto &lon12 = selboxInfo.lon12; - const auto &lon21 = selboxInfo.lon21; - const auto &lon22 = selboxInfo.lon22; + auto const &lat1 = selboxInfo.lat1; + auto const &lat2 = selboxInfo.lat2; + auto const &lon11 = selboxInfo.lon11; + auto const &lon12 = selboxInfo.lon12; + auto const &lon21 = selboxInfo.lon21; + auto const &lon22 = selboxInfo.lon22; long nlon = gridInqXsize(gridID); long nlat = gridInqYsize(gridID); diff --git a/src/Setchunkspec.cc b/src/Setchunkspec.cc index 65a82c8ce..ebc86c132 100644 --- a/src/Setchunkspec.cc +++ b/src/Setchunkspec.cc @@ -29,19 +29,19 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "filename") params.filename = parameter_to_word(value); @@ -54,7 +54,7 @@ get_parameter() } static std::vector<std::string> -get_vars_chunkspec(const VarList &varList, const std::string &filename) +get_vars_chunkspec(const VarList &varList, std::string const &filename) { auto numVars = varList.numVars(); std::vector<std::string> varsChunkSpec(numVars); @@ -69,17 +69,17 @@ get_vars_chunkspec(const VarList &varList, const std::string &filename) std::fclose(fp); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { if (key == var.name) { - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; auto chunkSpec = parameter_to_word(value); varsChunkSpec[var.ID] = chunkSpec; } @@ -212,7 +212,7 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); cdo_def_field(streamID2, varID, levelID); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); cdo_write_field(streamID2, field); diff --git a/src/Setfilter.cc b/src/Setfilter.cc index dd4c0c9a9..0fefdf1b1 100644 --- a/src/Setfilter.cc +++ b/src/Setfilter.cc @@ -17,7 +17,7 @@ #include <utility> static void -string_replace_name(std::string &str, const std::string &name, const std::string &replace) +string_replace_name(std::string &str, std::string const &name, std::string const &replace) { auto pos = str.find(name); if (pos != std::string::npos) { str.replace(pos, name.size(), replace); } @@ -44,7 +44,7 @@ expand_filter_names(std::string &filterSpec) }; // clang-format on - for (const auto &[key, value] : filterList) string_replace_name(filterSpec, key, value); + for (auto const &[key, value] : filterList) string_replace_name(filterSpec, key, value); } struct SetfilterParams @@ -60,19 +60,19 @@ get_parameter() auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "filename") params.filename = parameter_to_word(value); @@ -85,7 +85,7 @@ get_parameter() } static std::vector<std::string> -get_vars_filter(const VarList &varList, const std::string &filename) +get_vars_filter(const VarList &varList, std::string const &filename) { auto numVars = varList.numVars(); std::vector<std::string> varsFilter(numVars); @@ -100,17 +100,17 @@ get_vars_filter(const VarList &varList, const std::string &filename) std::fclose(fp); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { if (key == var.name) { - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; auto filter = parameter_to_word(value); varsFilter[var.ID] = filter; } @@ -122,7 +122,7 @@ get_vars_filter(const VarList &varList, const std::string &filename) } static void -set_key_filterspec(int vlistID, int varID, const std::string &filterSpec) +set_key_filterspec(int vlistID, int varID, std::string const &filterSpec) { cdiDefKeyString(vlistID, varID, CDI_KEY_FILTERSPEC, filterSpec.c_str()); } @@ -210,7 +210,7 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); cdo_def_field(streamID2, varID, levelID); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); cdo_write_field(streamID2, field); diff --git a/src/Setgrid.cc b/src/Setgrid.cc index a2557080c..7bcaab874 100644 --- a/src/Setgrid.cc +++ b/src/Setgrid.cc @@ -43,7 +43,7 @@ change_grid(int vlistID1, int vlistID2, int gridID2) } static void -grid_set_type(int vlistID1, int vlistID2, int gridtype, const std::string &gridname, bool lregular, bool lregularnn, +grid_set_type(int vlistID1, int vlistID2, int gridtype, std::string const &gridname, bool lregular, bool lregularnn, bool ldereference, bool withBounds, std::vector<int> &grid2_vgpm) { auto needCorners = withBounds ? NeedCorners::Yes : NeedCorners::No; @@ -158,7 +158,7 @@ grid_set_cellarea(int vlistID1, int vlistID2, Varray<double> &gridcellArea) } static void -grid_set_mask(int vlistID1, int vlistID2, const Varray<double> &gridmask) +grid_set_mask(int vlistID1, int vlistID2, Varray<double> const &gridmask) { auto masksize = gridmask.size(); auto numGrids = vlistNumGrids(vlistID1); @@ -194,7 +194,7 @@ grid_unset_mask(int vlistID1, int vlistID2) } static void -grid_set_proj_params(int vlistID1, int vlistID2, const std::string &projparams) +grid_set_proj_params(int vlistID1, int vlistID2, std::string const &projparams) { auto numGrids = vlistNumGrids(vlistID1); for (int index = 0; index < numGrids; ++index) @@ -210,7 +210,7 @@ grid_set_proj_params(int vlistID1, int vlistID2, const std::string &projparams) } static void -grid_read_cellarea(const std::string &areafile, Varray<double> &gridcellArea) +grid_read_cellarea(std::string const &areafile, Varray<double> &gridcellArea) { auto searchName = false; std::string filename = areafile; @@ -500,8 +500,8 @@ public: auto [varID, levelID] = cdo_inq_field(streamID1); cdo_def_field(streamID2, varID, levelID); - const auto &var1 = varList1.vars[varID]; - const auto &var2 = varList2.vars[varID]; + auto const &var1 = varList1.vars[varID]; + auto const &var2 = varList2.vars[varID]; field.init((lregular || lregularnn) ? var2 : var1); cdo_read_field(streamID1, field); auto numMissVals = field.numMissVals; diff --git a/src/Setgridcell.cc b/src/Setgridcell.cc index fcc02a825..9e936d901 100644 --- a/src/Setgridcell.cc +++ b/src/Setgridcell.cc @@ -56,7 +56,7 @@ set_value(Field &field, double value, const Varray<size_t> &cells) } static void -read_index_from_maskfile(const std::string &maskfile, Varray<size_t> &cells) +read_index_from_maskfile(std::string const &maskfile, Varray<size_t> &cells) { size_t cdo_read_mask(const char *maskfile, std::vector<bool> &imask); std::vector<bool> mask; @@ -80,19 +80,19 @@ setgridcell_get_parameter(double &constant, Varray<size_t> &cells, std::vector<s auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &values = kv.values; - const auto &value = kv.values[0]; + auto const &values = kv.values; + auto const &value = kv.values[0]; int nvalues = kv.nvalues; // clang-format off @@ -196,7 +196,7 @@ public: selectVars = Varray<bool>(numVars, !varnames.size()); if (varnames.size()) { - for (const auto &varname : varnames) + for (auto const &varname : varnames) { auto varFound = false; for (int varID = 0; varID < numVars; ++varID) diff --git a/src/Sethalo.cc b/src/Sethalo.cc index 712cd67fc..4d1d41d69 100644 --- a/src/Sethalo.cc +++ b/src/Sethalo.cc @@ -364,12 +364,12 @@ get_parameter(void) if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "east") haloParam.east = parameter_to_long(value); @@ -429,7 +429,7 @@ gen_index_grid(int gridID1, HaloParam &haloParam) } static bool -regular_halo(const Varray<double> &array1, int gridID1, Varray<double> &array2, const HaloParam &haloParam, double missval) +regular_halo(Varray<double> const &array1, int gridID1, Varray<double> &array2, const HaloParam &haloParam, double missval) { auto recalcNumMiss = false; @@ -484,7 +484,7 @@ regular_halo(const Varray<double> &array1, int gridID1, Varray<double> &array2, } static void -tripolar_halo(const Varray<double> &array1, int gridID1, Varray<double> &array2) +tripolar_halo(Varray<double> const &array1, int gridID1, Varray<double> &array2) { auto nlon = gridInqXsize(gridID1); auto nlat = gridInqYsize(gridID1); @@ -528,7 +528,7 @@ get_haloInfoList(int vlistID1, int vlistID2, HaloParam &haloParam, bool operSetH if (Options::cdoVerbose) { - /* for (const auto &sb : haloInfoList) + /* for (auto const &sb : haloInfoList) if (sb.gridtype != GRID_UNSTRUCTURED && !is_healpix_grid(sb.gridID1)) { cdo_print("box1 - idx1,idx2,idy1,idy2: %ld,%ld,%ld,%ld", sb.lon21 + 1, sb.lon22 + 1, sb.lat1 + 1, sb.lat2 + 1); @@ -548,7 +548,7 @@ get_processVars(const VarList &varList, const std::vector<HaloInfo> &haloInfoLis std::vector<bool> processVars(numVars, false); int varID; - for (const auto &haloInfo : haloInfoList) + for (auto const &haloInfo : haloInfoList) { for (varID = 0; varID < numVars; ++varID) if (haloInfo.gridID1 == varList.vars[varID].gridID) processVars[varID] = true; @@ -565,7 +565,7 @@ get_processVars(const VarList &varList, const std::vector<HaloInfo> &haloInfoLis static const HaloInfo & select_haloInfo(int gridID, const std::vector<HaloInfo> &haloInfoList) { - for (const auto &haloInfo : haloInfoList) + for (auto const &haloInfo : haloInfoList) if (gridID == haloInfo.gridID1) return haloInfo; cdo_abort("Internal problem, grid not found!"); @@ -652,7 +652,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field1.init(var1); cdo_read_field(streamID1, field1); @@ -665,7 +665,7 @@ public: field2.init(varList2.vars[varID]); - const auto &haloInfo = select_haloInfo(var1.gridID, haloInfoList); + auto const &haloInfo = select_haloInfo(var1.gridID, haloInfoList); if (operatorID == SETHALO) recalcNumMiss = regular_halo(field1.vec_d, haloInfo.gridID1, field2.vec_d, haloParam, missval); diff --git a/src/Setmiss.cc b/src/Setmiss.cc index 23998227e..7db4df414 100644 --- a/src/Setmiss.cc +++ b/src/Setmiss.cc @@ -242,7 +242,7 @@ public: auto nvars = vlistNvars(vlistID2); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (fp_is_equal(rconst, var.missval)) { cdo_warning("Missing value and constant have the same value!"); @@ -284,7 +284,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); diff --git a/src/Setpartab.cc b/src/Setpartab.cc index 3d0f195f2..05832ab14 100644 --- a/src/Setpartab.cc +++ b/src/Setpartab.cc @@ -33,14 +33,14 @@ enum pt_mode_t STANDARD_NAME }; -void cdo_define_var_units(CmorVar &cmorVar, int vlistID2, int varID, const std::string &units); +void cdo_define_var_units(CmorVar &cmorVar, int vlistID2, int varID, std::string const &units); void mapvar(int vlistID, int varID, const KeyValues &kv, CmorVar &cmorVar, bool &hasValidMin, bool &hasValidMax, int ptab, bool isnPtmodeName) { const auto key = string_to_lower(kv.key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; auto lv1 = (kv.nvalues == 1); // printf("key=%s value=>%s<\n", key.c_str(), value.c_str()); @@ -175,8 +175,8 @@ mapvar(int vlistID, int varID, const KeyValues &kv, CmorVar &cmorVar, bool &hasV else if (lv1 && key == "dimensions") {} else { - const auto &values = kv.values; - const auto &rvalue = kv.values[0]; + auto const &values = kv.values; + auto const &rvalue = kv.values[0]; auto nvalues = kv.nvalues; if (nvalues == 1 && rvalue.empty()) nvalues = 0; @@ -237,7 +237,7 @@ apply_parameterList(pt_mode_t ptmode, PMList &pmlist, int vlistID2, std::vector< auto &cmorVar = cmorVars[varID]; cmorVar.name = cdo::inq_var_name(vlistID2, varID); - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; if (hasMissvals) { if (fp_is_not_equal(missval, var2.missval)) @@ -298,7 +298,7 @@ apply_parameterList(pt_mode_t ptmode, PMList &pmlist, int vlistID2, std::vector< auto hasValidMin = false; auto hasValidMax = false; - for (const auto &kv : *kvlist) + for (auto const &kv : *kvlist) { mapvar(vlistID2, varID, kv, cmorVar, hasValidMin, hasValidMax, ptab, (ptmode != VARIABLE_NAME)); } @@ -424,7 +424,7 @@ public: if (ptmode == CODE_NUMBER) { - const auto &partab = cdo_operator_argv(0); + auto const &partab = cdo_operator_argv(0); FILE *fp = FileUtils::file_exists(partab) ? std::fopen(partab.c_str(), "r") : nullptr; if (fp != nullptr) { @@ -577,7 +577,7 @@ public: size_t numMissVals; cdo_read_field(streamID1, array.data(), &numMissVals); - const auto &var2 = varList2.vars[varID2]; + auto const &var2 = varList2.vars[varID2]; auto missval = var2.missval; auto gridsize = var2.nwpv * var2.gridsize; diff --git a/src/Setrcaname.cc b/src/Setrcaname.cc index 081100c18..7a9598e3e 100644 --- a/src/Setrcaname.cc +++ b/src/Setrcaname.cc @@ -43,7 +43,7 @@ public: Field field; void - read_rca(const std::string &filename, int p_nvars, int p_vlistID2) + read_rca(std::string const &filename, int p_nvars, int p_vlistID2) { std::ifstream file(filename); if (!file.is_open()) cdo_abort("Open failed on: %s\n", filename); diff --git a/src/Settime.cc b/src/Settime.cc index 5d493bbba..31b92a744 100644 --- a/src/Settime.cc +++ b/src/Settime.cc @@ -56,7 +56,7 @@ shift_time(int calendar, int tunit, int64_t ijulinc, CdiDateTime &vDateTime) } static void -time_gen_bounds(int calendar, int tunit, int incrPeriod, const CdiDateTime &vDateTime, CdiDateTime *vDateTimeBounds) +time_gen_bounds(int calendar, int tunit, int incrPeriod, CdiDateTime const &vDateTime, CdiDateTime *vDateTimeBounds) { cdiDateTime_init(&vDateTimeBounds[0]); cdiDateTime_init(&vDateTimeBounds[1]); @@ -116,7 +116,7 @@ time_gen_bounds(int calendar, int tunit, int incrPeriod, const CdiDateTime &vDat } int -evaluate_calendar_string(int operatorID, const std::string &calendarName) +evaluate_calendar_string(int operatorID, std::string const &calendarName) { int calendar = CALENDAR_STANDARD; auto calendarString = string_to_lower(calendarName); diff --git a/src/Setzaxis.cc b/src/Setzaxis.cc index 1e8ba6db8..b41dfa469 100644 --- a/src/Setzaxis.cc +++ b/src/Setzaxis.cc @@ -19,7 +19,7 @@ #include "cdo_zaxis.h" int -getkeyval_dp(const std::string &keyval, const std::string &key, double *val) +getkeyval_dp(std::string const &keyval, std::string const &key, double *val) { int status = 0; @@ -81,7 +81,7 @@ public: else if (operatorID == GENLEVELBOUNDS) { auto npar = cdo_operator_argc(); - const auto &parNames = cdo_get_oper_argv(); + auto const &parNames = cdo_get_oper_argv(); for (int i = 0; i < npar; ++i) { if (Options::cdoVerbose) cdo_print("keyval[%d]: %s", i + 1, parNames[i]); diff --git a/src/Shiftxy.cc b/src/Shiftxy.cc index f508e1773..da7906895 100644 --- a/src/Shiftxy.cc +++ b/src/Shiftxy.cc @@ -235,7 +235,7 @@ public: vlistChangeGridIndex(vlistID2, index, gridID2); } - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) if (gridID1 == var.gridID) vars[var.ID] = true; } else if (gridtype == GRID_GENERIC && gridInqXsize(gridID1) <= 1 && gridInqYsize(gridID1) <= 1) {} diff --git a/src/Showattribute.cc b/src/Showattribute.cc index e0c6dff68..52f631cc8 100644 --- a/src/Showattribute.cc +++ b/src/Showattribute.cc @@ -130,7 +130,7 @@ print_attr_special_global(int vlistID, const char *argument) static void print_attr_special(const char *varName, const CdoVars &cdoVars, int vlistID, int varOrGlobal, const char *argument) { - const auto &var = cdoVars[varOrGlobal]; + auto const &var = cdoVars[varOrGlobal]; auto stdname = cdo::inq_key_string(vlistID, varOrGlobal, CDI_KEY_STDNAME); double addoffset = 0.0, scalefactor = 1.0; @@ -194,7 +194,7 @@ check_varname_and_print(const VarList &varList, int vlistID, char *checkvarname, auto numVars = varList.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; if (!checkvarname || (wildcardmatch(checkvarname, var.name) == 0)) { lfound = true; @@ -267,7 +267,7 @@ public: { for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; // fprintf(stdout, "%s:\n", var.name.c_str()); fprintf(stdout, "\n"); diff --git a/src/Showinfo.cc b/src/Showinfo.cc index 557e1749d..b0d59ec4f 100644 --- a/src/Showinfo.cc +++ b/src/Showinfo.cc @@ -205,7 +205,7 @@ show_code(const VarList &varList) for (int varID = 0; varID < numVars; ++varID) { nout++; - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; fprintf(stdout, " %d", var.code); print_newline(nout, maxOut); } @@ -217,7 +217,7 @@ show_grid(const VarList &varList) { fprintf(stdout, "# param nr | grid nr | z-axis nr: /* Use in combination with operatores: griddes and zaxisdes */\n"); auto vlistID = varList.vlistID; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { fprintf(stdout, " %3d %3d %3d\n", var.code, vlistGridIndex(vlistID, var.gridID) + 1, vlistZaxisIndex(vlistID, var.zaxisID) + 1); @@ -230,7 +230,7 @@ show_unit(const VarList &varList) constexpr int maxOut = 10; int nout = 0; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { nout++; if (var.units.size()) fprintf(stdout, " %s", var.units.c_str()); @@ -246,7 +246,7 @@ show_param(const VarList &varList) int nout = 0; char paramstr[32]; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { nout++; cdiParamToString(var.param, paramstr, sizeof(paramstr)); @@ -263,7 +263,7 @@ show_name(const VarList &varList) constexpr int maxOut = 10; int nout = 0; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { nout++; fprintf(stdout, " %s", var.name.c_str()); @@ -278,7 +278,7 @@ show_stdname(const VarList &varList) constexpr int maxOut = 1; int nout = 0; - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { nout++; fprintf(stdout, " %s", var.stdname.size() ? var.stdname.c_str() : "unknown"); @@ -290,7 +290,7 @@ show_stdname(const VarList &varList) static void show_level(const VarList &varList) { - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { for (int levelID = 0; levelID < var.nlevels; ++levelID) fprintf(stdout, " %.9g", cdo_zaxis_inq_level(var.zaxisID, levelID)); fprintf(stdout, "\n"); @@ -321,7 +321,7 @@ show_filter(int vlistID, const VarList &varList) auto comptype = vlistInqVarCompType(vlistID, varID); if (comptype == CDI_COMPRESS_FILTER || comptype == CDI_COMPRESS_ZIP || comptype == CDI_COMPRESS_SZIP) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; int length = CDI_MAX_NAME; cdiInqKeyString(vlistID, varID, CDI_KEY_FILTERSPEC_IN, filterSpec, &length); if (length > 0) fprintf(stdout, "%s=\"%s\"\n", var.name.c_str(), filterSpec); @@ -335,7 +335,7 @@ show_chunks(int vlistID, const VarList &varList) auto numVars = varList.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; auto chunkSpecString = cdo::get_chunkspec_string(vlistID, varID); if (chunkSpecString.size() > 0) fprintf(stdout, "%s=\"%s\"\n", var.name.c_str(), chunkSpecString.c_str()); } diff --git a/src/Sinfo.cc b/src/Sinfo.cc index b3bcb7bcb..b7d788643 100644 --- a/src/Sinfo.cc +++ b/src/Sinfo.cc @@ -118,7 +118,7 @@ print_vars_info(int operfunc, bool ensembleInfo, const VarList &varList, int vli for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; auto tabnum = tableInqNum(vlistInqVarTable(vlistID, varID)); @@ -462,7 +462,7 @@ public: { for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; if (var.isConstant) numFieldsConst += var.nlevels; diff --git a/src/Smooth.cc b/src/Smooth.cc index ea16d7114..cd0092224 100644 --- a/src/Smooth.cc +++ b/src/Smooth.cc @@ -128,9 +128,9 @@ smooth(int gridID, double mv, const Varray<T1> &array1, Varray<T2> &array2, cons } static void -smooth(const Field &field1, Field &field2, const SmoothPoint &spoint) +smooth(Field const &field1, Field &field2, const SmoothPoint &spoint) { - auto func = [&](const auto &v1, auto &v2) { field2.numMissVals = smooth(field1.grid, field1.missval, v1, v2, spoint); }; + auto func = [&](auto const &v1, auto &v2) { field2.numMissVals = smooth(field1.grid, field1.missval, v1, v2, spoint); }; field_operation2(func, field1, field2); } @@ -227,9 +227,9 @@ smooth9(int gridID, double mv, const Varray<T1> &array1, Varray<T2> &array2) } static void -smooth9(const Field &field1, Field &field2) +smooth9(Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { field2.numMissVals = smooth9(field1.grid, field1.missval, v1, v2); }; + auto func = [&](auto const &v1, auto &v2) { field2.numMissVals = smooth9(field1.grid, field1.missval, v1, v2); }; field_operation2(func, field1, field2); } @@ -246,19 +246,19 @@ get_parameter(int &xnsmooth, SmoothPoint &spoint) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "nsmooth") xnsmooth = parameter_to_int(value); @@ -363,7 +363,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto gridID = var.gridID; auto gridtype = gridInqType(gridID); if (gridtype == GRID_GAUSSIAN || gridtype == GRID_LONLAT || gridtype == GRID_CURVILINEAR || gridtype == GRID_PROJECTION @@ -401,7 +401,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); field2.init(var); cdo_read_field(streamID1, field1); diff --git a/src/Sort.cc b/src/Sort.cc index 96bb4a518..9ffa4e770 100644 --- a/src/Sort.cc +++ b/src/Sort.cc @@ -128,7 +128,7 @@ public: varsInfo = std::vector<VarInfo>(nvars); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; varsInfo[varID].nlevels = var.nlevels; varsInfo[varID].levInfo.resize(var.nlevels); } @@ -136,7 +136,7 @@ public: vardata = Varray2D<double>(nvars); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; vardata[varID].resize(var.gridsize * var.nlevels); } } @@ -156,7 +156,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) { @@ -184,7 +184,7 @@ public: if (Options::cdoVerbose) for (int vindex = 0; vindex < nvars; vindex++) { - const auto &varInfo = varsInfo[vindex]; + auto const &varInfo = varsInfo[vindex]; for (int lindex = 0; lindex < varInfo.nlevels; ++lindex) printf("sort in: %d %s %d %d %g\n", vindex, varInfo.name.c_str(), varInfo.code, varInfo.nlevels, varInfo.levInfo[lindex].level); @@ -210,7 +210,7 @@ public: if (Options::cdoVerbose) for (int vindex = 0; vindex < nvars; vindex++) { - const auto &varInfo = varsInfo[vindex]; + auto const &varInfo = varsInfo[vindex]; for (int lindex = 0; lindex < varInfo.nlevels; ++lindex) printf("sort out: %d %s %d %d %g\n", vindex, varInfo.name.c_str(), varInfo.code, varInfo.nlevels, varInfo.levInfo[lindex].level); @@ -219,8 +219,8 @@ public: for (int vindex = 0; vindex < nvars; vindex++) { - const auto &varInfo = varsInfo[vindex]; - const auto &var = varList1.vars[varInfo.varID]; + auto const &varInfo = varsInfo[vindex]; + auto const &var = varList1.vars[varInfo.varID]; for (int lindex = 0; lindex < var.nlevels; ++lindex) { auto levelID = varInfo.levInfo[lindex].levelID; diff --git a/src/Sorttimestamp.cc b/src/Sorttimestamp.cc index f27af7930..a4e215344 100644 --- a/src/Sorttimestamp.cc +++ b/src/Sorttimestamp.cc @@ -169,8 +169,8 @@ public: { auto lskip = false; auto xtsID2 = timeinfo[lasttsID].index; - const auto &field1 = varsData[xtsID][0][0]; - const auto &field2 = varsData[xtsID2][0][0]; + auto const &field1 = varsData[xtsID][0][0]; + auto const &field2 = varsData[xtsID2][0][0]; if (field1.memType == MemType::Float) { if (field1.vec_f == field2.vec_f) lskip = true; diff --git a/src/Spectral.cc b/src/Spectral.cc index 67e472457..8cc29daab 100644 --- a/src/Spectral.cc +++ b/src/Spectral.cc @@ -163,7 +163,7 @@ public: auto paramArgc = cdo_operator_argc(); if ((lgp2sp || lsp2gp) && paramArgc == 1) { - const auto &parg = cdo_operator_argv(0); + auto const &parg = cdo_operator_argv(0); auto pos = parg.find('='); if (pos > 0 && parg.substr(0, pos) == "trunc") { defaultTrunc = parameter_to_int(parg.substr(pos + 1)); } else @@ -262,7 +262,7 @@ public: auto numVars = varList1.numVars(); processVars = std::vector<bool>(numVars); - for (const auto &var : varList1.vars) processVars[var.ID] = (gridID1 == var.gridID); + for (auto const &var : varList1.vars) processVars[var.ID] = (gridID1 == var.gridID); if (gridID1 != -1) vlistChangeGrid(vlistID2, gridID1, gridID2); diff --git a/src/Spectrum.cc b/src/Spectrum.cc index 6f6519b9c..61c12505d 100644 --- a/src/Spectrum.cc +++ b/src/Spectrum.cc @@ -196,7 +196,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto &varData = varsData[tsID][varID][levelID]; varData.resize(var.gridsize); cdo_read_field(streamID1, varData); @@ -270,7 +270,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { for (size_t i = 0; i < var.gridsize; ++i) @@ -293,7 +293,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { auto &varData2 = varsData2[tsID][varID][levelID]; diff --git a/src/Split.cc b/src/Split.cc index 0e951c646..7a0f20b19 100644 --- a/src/Split.cc +++ b/src/Split.cc @@ -29,7 +29,7 @@ #include <cassert> static void -gen_filename(std::string &fileName, bool swapObase, const std::string &obase, const std::string &suffix) +gen_filename(std::string &fileName, bool swapObase, std::string const &obase, std::string const &suffix) { if (swapObase) fileName += obase; if (suffix.size() > 0) fileName += suffix; @@ -38,7 +38,7 @@ gen_filename(std::string &fileName, bool swapObase, const std::string &obase, co class Split : public Process { int - split_code(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_code(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { auto numVars = varList1.numVars(); std::vector<int> codes(numVars); @@ -46,7 +46,7 @@ class Split : public Process int nsplit = 0; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; int index; for (index = 0; index < varID; ++index) if (var.code == varList1.vars[index].code) break; @@ -62,7 +62,7 @@ class Split : public Process vlistClearFlag(vlistID1); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (codes[index] == var.code) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -88,7 +88,7 @@ class Split : public Process } int - split_param(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_param(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { char paramstr[32]; auto numVars = varList1.numVars(); @@ -97,7 +97,7 @@ class Split : public Process int nsplit = 0; for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; int index; for (index = 0; index < varID; ++index) if (var.param == varList1.vars[index].param) break; @@ -113,7 +113,7 @@ class Split : public Process vlistClearFlag(vlistID1); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (params[index] == var.param) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -140,7 +140,7 @@ class Split : public Process } int - split_name(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_name(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { auto numVars = varList1.numVars(); auto nsplit = numVars; @@ -152,7 +152,7 @@ class Split : public Process { vlistClearFlag(vlistID1); int varID = index; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { vlistDefIndex(vlistID1, varID, levelID, index); @@ -173,7 +173,7 @@ class Split : public Process } int - split_level(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_level(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { auto numVars = varList1.numVars(); auto numZaxes = vlistNumZaxis(vlistID1); @@ -204,7 +204,7 @@ class Split : public Process vlistClearFlag(vlistID1); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { auto level = cdo_zaxis_inq_level(var.zaxisID, levelID); @@ -230,7 +230,7 @@ class Split : public Process } int - split_grid(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_grid(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { auto nsplit = vlistNumGrids(vlistID1); auto numVars = varList1.numVars(); @@ -245,7 +245,7 @@ class Split : public Process vlistClearFlag(vlistID1); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (gridIDs[index] == var.gridID) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -270,7 +270,7 @@ class Split : public Process } int - split_zaxis(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_zaxis(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { auto nsplit = vlistNumZaxis(vlistID1); auto numVars = varList1.numVars(); @@ -285,7 +285,7 @@ class Split : public Process vlistClearFlag(vlistID1); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (zaxisIDs[index] == var.zaxisID) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -310,7 +310,7 @@ class Split : public Process } int - split_tabnum(bool swapObase, const std::string &fileSuffix, const std::string &fileName) + split_tabnum(bool swapObase, std::string const &fileSuffix, std::string const &fileName) { auto numVars = varList1.numVars(); std::vector<int> tabnums(numVars); @@ -337,7 +337,7 @@ class Split : public Process auto tabnum = tableInqNum(vlistInqVarTable(vlistID1, varID)); if (tabnums[index] == tabnum) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { vlistDefIndex(vlistID1, varID, levelID, index); @@ -472,7 +472,7 @@ public: if (dataIsUnchanged) { cdo_copy_field(streamIDs[index], streamID1); } else { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field.init(var); cdo_read_field(streamID1, field); cdo_write_field(streamIDs[index], field); @@ -488,7 +488,7 @@ public: { cdo_stream_close(streamID1); - for (const auto &streamID : streamIDs) cdo_stream_close(streamID); - for (const auto &id : vlistIDs) vlistDestroy(id); + for (auto const &streamID : streamIDs) cdo_stream_close(streamID); + for (auto const &id : vlistIDs) vlistDestroy(id); } }; diff --git a/src/Splitdate.cc b/src/Splitdate.cc index cd0a9f3ff..58bf5fc59 100644 --- a/src/Splitdate.cc +++ b/src/Splitdate.cc @@ -89,7 +89,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { vars[varID].resize(var.nlevels); @@ -169,7 +169,7 @@ public: { for (int varID = 0; varID < varList1.numVars(); ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -195,7 +195,7 @@ public: if (tsID == 0 && haveConstVars) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { varray_copy(var.gridsize, array, vars[varID][levelID].vec_d); diff --git a/src/Splitsel.cc b/src/Splitsel.cc index b756dc911..a59be5405 100644 --- a/src/Splitsel.cc +++ b/src/Splitsel.cc @@ -106,7 +106,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { fields[varID].resize(var.nlevels); @@ -142,7 +142,7 @@ public: { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { cdo_read_field(streamID1, fields[varID][levelID]); } } } @@ -177,7 +177,7 @@ public: int numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -203,7 +203,7 @@ public: if (tsID == 0 && haveConstVars) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { auto &field = fields[varID][levelID]; diff --git a/src/Splittime.cc b/src/Splittime.cc index 0206794e5..b91ee9fe4 100644 --- a/src/Splittime.cc +++ b/src/Splittime.cc @@ -144,7 +144,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { vars[varID].resize(var.nlevels); @@ -223,7 +223,7 @@ public: { for (int varID = 0; varID < varList1.numVars(); ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -249,7 +249,7 @@ public: if (tsID == 0 && haveConstVars) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { varray_copy(var.gridsize, array, vars[varID][levelID].vec_d); diff --git a/src/Splityear.cc b/src/Splityear.cc index 4d5cbb92c..4cdaa3c7d 100644 --- a/src/Splityear.cc +++ b/src/Splityear.cc @@ -93,7 +93,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { vars[varID].resize(var.nlevels); @@ -186,7 +186,7 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -212,7 +212,7 @@ public: if (tsID == 0 && haveConstVars) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) { varray_copy(var.gridsize, array, vars[varID][levelID].vec_d); diff --git a/src/Timfillmiss.cc b/src/Timfillmiss.cc index 25a4cda34..8e0fb17db 100644 --- a/src/Timfillmiss.cc +++ b/src/Timfillmiss.cc @@ -21,7 +21,7 @@ #include "fill_1d.h" static double -julianDate_to_double(int calendar, const CdiDateTime &dateTime1, const CdiDateTime &datetime0) +julianDate_to_double(int calendar, CdiDateTime const &dateTime1, CdiDateTime const &datetime0) { return julianDate_to_seconds(julianDate_sub(julianDate_encode(calendar, dateTime1), julianDate_encode(calendar, datetime0))) / 86400.0; @@ -72,19 +72,19 @@ private: auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "method") method = convert<FillMethod>(value); @@ -125,7 +125,7 @@ public: void step(int varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto fieldMemType = var.memType; auto gridsize = var.gridsize; auto missval = var.missval; diff --git a/src/Timpctl.cc b/src/Timpctl.cc index d797d67bd..4cf13f1d4 100644 --- a/src/Timpctl.cc +++ b/src/Timpctl.cc @@ -117,7 +117,7 @@ public: hset = HistogramSet(numVars, numSteps); - for (const auto &var : varList1.vars) hset.createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hset.createVarLevels(var.ID, var.nlevels, var.gridsize); } void @@ -172,7 +172,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -202,7 +202,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (otsID && var1.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Timselpctl.cc b/src/Timselpctl.cc index 43fe09a23..fcb4ab55a 100644 --- a/src/Timselpctl.cc +++ b/src/Timselpctl.cc @@ -114,7 +114,7 @@ public: hset = HistogramSet(numVars, numSteps); - for (const auto &var : varList1.vars) hset.createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hset.createVarLevels(var.ID, var.nlevels, var.gridsize); } void @@ -187,7 +187,7 @@ public: if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (tsID == 0 && var1.isConstant) { constFields[fieldID].init(var1); @@ -213,7 +213,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (otsID && var1.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Timsort.cc b/src/Timsort.cc index 119bb8e15..6480be1a9 100644 --- a/src/Timsort.cc +++ b/src/Timsort.cc @@ -108,7 +108,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) continue; @@ -154,7 +154,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) { auto &field = varsData[tsID][varID][levelID]; diff --git a/src/Timstat.cc b/src/Timstat.cc index ad8c90886..55088b4cd 100644 --- a/src/Timstat.cc +++ b/src/Timstat.cc @@ -77,7 +77,7 @@ #include "pmlist.h" static void -vlist_set_frequency(int vlistID, const std::string &frequency) +vlist_set_frequency(int vlistID, std::string const &frequency) { if (frequency.size()) cdiDefAttTxt(vlistID, CDI_GLOBAL, "frequency", frequency.size(), frequency.c_str()); } @@ -98,19 +98,19 @@ get_parameter(double &vfraction, bool &completeOnly) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "vfraction") vfraction = parameter_to_double(value); @@ -399,7 +399,7 @@ public: add_fields2D(const FieldVector2D &fields2D, const std::vector<FieldInfo> &fieldInfoList, const VarList &varList1, cdo::StepStat2D &stepStat, int numSets) noexcept { - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); if (varList1.vars[varID].isConstant) continue; diff --git a/src/Timstat2.cc b/src/Timstat2.cc index d842a8713..fc688dfe2 100644 --- a/src/Timstat2.cc +++ b/src/Timstat2.cc @@ -72,11 +72,11 @@ correlation_init(const Varray<T1> &x, const Varray<T2> &y, double missval1, doub } static void -correlation_init(size_t gridsize, const Field &field1, const Field &field2, Varray<size_t> &nofvals, Varray2D<double> &work) +correlation_init(size_t gridsize, Field const &field1, Field const &field2, Varray<size_t> &nofvals, Varray2D<double> &work) { auto hasMissValues = (field1.numMissVals > 0 || field2.numMissVals > 0); - auto func = [&](const auto &v1, const auto &v2, double mv1, double mv2) { + auto func = [&](auto const &v1, auto const &v2, double mv1, double mv2) { correlation_init(v1, v2, mv1, mv2, hasMissValues, gridsize, nofvals, work); }; field_operation2(func, field1, field2, field1.missval, field2.missval); @@ -169,11 +169,11 @@ covariance_init(const Varray<T1> &x, const Varray<T2> &y, double missval1, doubl } static void -covariance_init(size_t gridsize, const Field &field1, const Field &field2, Varray<size_t> &nofvals, Varray2D<double> &work) +covariance_init(size_t gridsize, Field const &field1, Field const &field2, Varray<size_t> &nofvals, Varray2D<double> &work) { auto hasMissValues = (field1.numMissVals > 0 || field2.numMissVals > 0); - auto func = [&](const auto &v1, const auto &v2, double mv1, double mv2) { + auto func = [&](auto const &v1, auto const &v2, double mv1, double mv2) { covariance_init(v1, v2, mv1, mv2, hasMissValues, gridsize, nofvals, work); }; field_operation2(func, field1, field2, field1.missval, field2.missval); @@ -232,9 +232,9 @@ rmsd_init(const Varray<T1> &x, const Varray<T2> &y, double missval1, double miss } static void -rmsd_init(size_t gridsize, const Field &field1, const Field &field2, Varray<size_t> &nofvals, Varray<double> &rmsd) +rmsd_init(size_t gridsize, Field const &field1, Field const &field2, Varray<size_t> &nofvals, Varray<double> &rmsd) { - auto func = [&](const auto &v1, const auto &v2, double mv1, double mv2) { rmsd_init(v1, v2, mv1, mv2, gridsize, nofvals, rmsd); }; + auto func = [&](auto const &v1, auto const &v2, double mv1, double mv2) { rmsd_init(v1, v2, mv1, mv2, gridsize, nofvals, rmsd); }; field_operation2(func, field1, field2, field1.missval, field2.missval); } @@ -349,7 +349,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto gridsize = var.gridsize; auto nlevels = var.nlevels; @@ -412,7 +412,7 @@ public: auto missval = varList1.vars[varID].missval; auto &rwork = work[varID][levelID]; - const auto &rnofvals = nofvals[varID][levelID]; + auto const &rnofvals = nofvals[varID][levelID]; size_t numMissVals = 0; if (operfunc == FieldFunc_Cor) { numMissVals = correlation(gridsize, missval, rnofvals, rwork); } diff --git a/src/Transpose.cc b/src/Transpose.cc index d9ccac7af..e14d656a6 100644 --- a/src/Transpose.cc +++ b/src/Transpose.cc @@ -24,7 +24,7 @@ #include "process_int.h" void -transxy(int gridID, const Varray<double> &v1, Varray<double> &v2) +transxy(int gridID, Varray<double> const &v1, Varray<double> &v2) { auto nx = gridInqXsize(gridID); auto ny = gridInqYsize(gridID); diff --git a/src/Trend.cc b/src/Trend.cc index e7fee8791..9c9099163 100644 --- a/src/Trend.cc +++ b/src/Trend.cc @@ -33,19 +33,19 @@ get_parameter(bool &tstepIsEqual) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "equal") tstepIsEqual = parameter_to_bool(value); @@ -134,7 +134,7 @@ public: { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList2.vars[varID]; + auto const &var = varList2.vars[varID]; field2.init(var); field3.init(var); @@ -201,7 +201,7 @@ public: fields_calc_trend_sum(FieldVector3D &work, const FieldVector2D &fields2D, const std::vector<FieldInfo> &fieldInfoList, double zj) noexcept { - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); calc_trend_sum(work, fields2D[varID][levelID], zj, varID, levelID); diff --git a/src/Trendarith.cc b/src/Trendarith.cc index 83caee17b..158269cb9 100644 --- a/src/Trendarith.cc +++ b/src/Trendarith.cc @@ -26,7 +26,7 @@ template <typename T> static void -add_trend(double zj, Varray<T> &v1, const Varray<double> &v2, const Varray<double> &v3, size_t n, double mv) +add_trend(double zj, Varray<T> &v1, Varray<double> const &v2, Varray<double> const &v3, size_t n, double mv) { auto missval1 = mv; auto missval2 = mv; @@ -46,7 +46,7 @@ add_trend(double zj, Varray<T> &v1, const Varray<double> &v2, const Varray<doubl } static void -add_trend(double zj, Field &field1, const Field &field2, const Field &field3) +add_trend(double zj, Field &field1, Field const &field2, Field const &field3) { auto func = [&](auto &v1) { add_trend(zj, v1, field2.vec_d, field3.vec_d, field1.size, field1.missval); }; field_operation(func, field1); @@ -54,7 +54,7 @@ add_trend(double zj, Field &field1, const Field &field2, const Field &field3) template <typename T> static void -sub_trend(double zj, Varray<T> &v1, const Varray<double> &v2, const Varray<double> &v3, size_t n, double mv) +sub_trend(double zj, Varray<T> &v1, Varray<double> const &v2, Varray<double> const &v3, size_t n, double mv) { auto missval1 = mv; auto missval2 = mv; @@ -74,7 +74,7 @@ sub_trend(double zj, Varray<T> &v1, const Varray<double> &v2, const Varray<doubl } static void -sub_trend(double zj, Field &field1, const Field &field2, const Field &field3) +sub_trend(double zj, Field &field1, Field const &field2, Field const &field3) { auto func = [&](auto &v1) { sub_trend(zj, v1, field2.vec_d, field3.vec_d, field1.size, field1.missval); }; field_operation(func, field1); @@ -86,19 +86,19 @@ get_parameter(bool &tstepIsEqual) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "equal") tstepIsEqual = parameter_to_bool(value); @@ -228,7 +228,7 @@ public: if (numSteps > 0) progress.update(fstatus); auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field.init(var1); cdo_read_field(streamID1, field); diff --git a/src/Tstepcount.cc b/src/Tstepcount.cc index 35c76835e..c7e2fbf0a 100644 --- a/src/Tstepcount.cc +++ b/src/Tstepcount.cc @@ -21,7 +21,7 @@ template <typename T> static T -tstepcount(long nts, T missval, const Varray<T> &v, T refval) +tstepcount(long nts, T missval, Varray<T> const &v, T refval) { if (fp_is_equal(refval, missval)) return missval; @@ -124,7 +124,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto memType = var1.memType; auto missval = var1.missval; auto gridsize = var1.gridsize; diff --git a/src/Vargen.cc b/src/Vargen.cc index 7eeaa8301..e950fbc29 100644 --- a/src/Vargen.cc +++ b/src/Vargen.cc @@ -104,7 +104,7 @@ calc_index_jj(size_t ny, double yval) } static void -remap_nn_reg2d_to_reg2d(size_t nx, size_t ny, const Varray<float> &data, int gridID, Varray<float> &array) +remap_nn_reg2d_to_reg2d(size_t nx, size_t ny, Varray<float> const &data, int gridID, Varray<float> &array) { auto gridtype = gridInqType(gridID); if (gridtype != GRID_LONLAT && gridtype != GRID_GAUSSIAN) cdo_abort("Internal error, wrong grid type!"); @@ -135,7 +135,7 @@ remap_nn_reg2d_to_reg2d(size_t nx, size_t ny, const Varray<float> &data, int gri } static void -remap_nn_reg2d_to_nonreg2d(size_t nx, size_t ny, const Varray<float> &data, int gridID, Varray<float> &array) +remap_nn_reg2d_to_nonreg2d(size_t nx, size_t ny, Varray<float> const &data, int gridID, Varray<float> &array) { auto gridsize = gridInqSize(gridID); Varray<double> xvals(gridsize), yvals(gridsize); @@ -164,7 +164,7 @@ remap_nn_reg2d_to_nonreg2d(size_t nx, size_t ny, const Varray<float> &data, int } static void -remap_nn_reg2d_to_healpix(size_t nx, size_t ny, const Varray<float> &data, int gridID, Varray<float> &array) +remap_nn_reg2d_to_healpix(size_t nx, size_t ny, Varray<float> const &data, int gridID, Varray<float> &array) { auto gridID2 = gridID; auto gridsize = gridInqSize(gridID2); @@ -184,7 +184,7 @@ remap_nn_reg2d_to_healpix(size_t nx, size_t ny, const Varray<float> &data, int g } static void -remap_nn_reg2d(size_t nx, size_t ny, const Varray<float> &data, int gridID, Varray<float> &array) +remap_nn_reg2d(size_t nx, size_t ny, Varray<float> const &data, int gridID, Varray<float> &array) { auto gridtype = gridInqType(gridID); if (gridtype == GRID_LONLAT || gridtype == GRID_GAUSSIAN) diff --git a/src/Varrms.cc b/src/Varrms.cc index 3b63a531b..8b73fdafa 100644 --- a/src/Varrms.cc +++ b/src/Varrms.cc @@ -19,7 +19,7 @@ #include "field_functions.h" static void -var_rms(const Varray<double> &w, const FieldVector &field1, const FieldVector &field2, Field &field3) +var_rms(Varray<double> const &w, FieldVector const &field1, FieldVector const &field2, Field &field3) { auto is_EQ = fp_is_equal; auto grid1 = field1[0].grid; diff --git a/src/Varsstat.cc b/src/Varsstat.cc index 336e0aae5..e404d9dbf 100644 --- a/src/Varsstat.cc +++ b/src/Varsstat.cc @@ -38,7 +38,7 @@ check_unique_gridsize(int vlistID) static void set_attributes(const CdoVars &cdoVars1, int vlistID2, int varID2, int operatorID) { - const auto &var0 = cdoVars1[0]; + auto const &var0 = cdoVars1[0]; auto paramIsEqual = true; auto name = var0.name; auto param = var0.param; @@ -124,7 +124,7 @@ public: check_unique_gridsize(vlistID1); auto timetype = varList1.vars[0].timeType; - for (const auto &var : varList1.vars) + for (auto const &var : varList1.vars) { if (timetype != var.timeType) cdo_abort("Number of timesteps differ!"); } diff --git a/src/Verifygrid.cc b/src/Verifygrid.cc index a8b2173ed..fbc026927 100644 --- a/src/Verifygrid.cc +++ b/src/Verifygrid.cc @@ -279,7 +279,7 @@ are_polygon_vertices_arranged_in_clockwise_order(const Varray<Point> &cellCorner } static void -create_sorted_point_array(size_t gridsize, const Varray<double> &grid_center_lon, const Varray<double> &grid_center_lat, +create_sorted_point_array(size_t gridsize, Varray<double> const &grid_center_lon, Varray<double> const &grid_center_lat, Varray<double> ¢er_point_array) { for (size_t cell_no = 0; cell_no < gridsize; cell_no++) @@ -339,8 +339,8 @@ print_header(int gridtype, size_t gridsize, size_t nx, int gridno, int numGrids) } static size_t -get_no_unique_center_points(size_t gridsize, size_t nx, const Varray<double> &grid_center_lon, - const Varray<double> &grid_center_lat) +get_no_unique_center_points(size_t gridsize, size_t nx, Varray<double> const &grid_center_lon, + Varray<double> const &grid_center_lat) { (void) nx; // For performing the first test, an array of all center point coordinates is built. @@ -503,8 +503,8 @@ compute_cell_barycenter(size_t numCorners, const Varray<Point3D> &cellCorners3D, } static void -verify_grid(size_t gridsize, size_t nx, int ncorner, const Varray<double> &grid_center_lon, const Varray<double> &grid_center_lat, - const Varray<double> &grid_corner_lon, const Varray<double> &grid_corner_lat) +verify_grid(size_t gridsize, size_t nx, int ncorner, Varray<double> const &grid_center_lon, Varray<double> const &grid_center_lat, + Varray<double> const &grid_corner_lon, Varray<double> const &grid_corner_lat) { /* First, this function performs the following test: @@ -749,7 +749,7 @@ verify_grid(size_t gridsize, size_t nx, int ncorner, const Varray<double> &grid_ } static void -print_lonlat(int dig, int gridID, size_t gridsize, const Varray<double> &lon, const Varray<double> &lat) +print_lonlat(int dig, int gridID, size_t gridsize, Varray<double> const &lon, Varray<double> const &lat) { size_t num_lons_nan = 0; for (size_t i = 0; i < gridsize; ++i) diff --git a/src/Verifyweights.cc b/src/Verifyweights.cc index 3ddbcc849..22020bcf3 100644 --- a/src/Verifyweights.cc +++ b/src/Verifyweights.cc @@ -180,7 +180,7 @@ remapVarsWInit(RemapMethod mapType, int remapOrder, RemapVarsW &rv) } static NormOpt -remapGetNormOpt(const std::string &normOptStr) +remapGetNormOpt(std::string const &normOptStr) { NormOpt normOpt(NormOpt::NONE); // clang-format off @@ -203,7 +203,7 @@ RemapSwitches get_maptype(int ncfileid); KnnParams read_knn_params(int ncfileid); static void -read_remapgrid_scrip(int ncfileid, const std::string &prefix, bool lgridarea, RemapGridW &grid) +read_remapgrid_scrip(int ncfileid, std::string const &prefix, bool lgridarea, RemapGridW &grid) { // Read all variables of the grid cdf_read_var_size(ncfileid, (prefix + "_dims").c_str(), 2, grid.dims); @@ -235,7 +235,7 @@ read_remapweights_scrip(int ncfileid, RemapVarsW &rv) } static RemapSwitches -readRemapFileScrip(const std::string &remapFile, RemapAttributes &remapAtts, RemapGridW &srcGrid, RemapGridW &tgtGrid, +readRemapFileScrip(std::string const &remapFile, RemapAttributes &remapAtts, RemapGridW &srcGrid, RemapGridW &tgtGrid, RemapVarsW &rv) { // The routine reads a NetCDF file to extract remapping info in SCRIP format @@ -341,7 +341,7 @@ cdf_def_var(int ncfileid, const char *name, nc_type xtype, int ndims, const int } static void -cdfWriteAttText(int ncfileid, int ncvarid, const char *name, const std::string &text) +cdfWriteAttText(int ncfileid, int ncvarid, const char *name, std::string const &text) { if (text.size()) nce(nc_put_att_text(ncfileid, ncvarid, name, text.size(), text.c_str())); } @@ -430,7 +430,7 @@ struct CDFgrid }; static CDFgrid -define_remapgrid_scrip(int ncfileid, const std::string &prefix, nc_type sizetype, bool lgridarea, const RemapGridW &grid) +define_remapgrid_scrip(int ncfileid, std::string const &prefix, nc_type sizetype, bool lgridarea, const RemapGridW &grid) { CDFgrid cdfGrid; @@ -530,7 +530,7 @@ remap_set_mapmethod(const RemapSwitches &remapSwitches) } static void -write_remapfile_scrip(const std::string &remapFile, const RemapAttributes &remapAtts, const RemapSwitches &remapSwitches, +write_remapfile_scrip(std::string const &remapFile, const RemapAttributes &remapAtts, const RemapSwitches &remapSwitches, RemapGridW &srcGrid, RemapGridW &tgtGrid, RemapVarsW &rv) { // Writes remap data to a NetCDF file using SCRIP conventions @@ -627,8 +627,8 @@ write_remapfile_scrip(const std::string &remapFile, const RemapAttributes &remap } static void -check_areas(size_t n_a, const Varray<double> &area_a, const Varray<double> &area_b, size_t n_s, const Varray<size_t> &col, - const Varray<size_t> &row, const Varray<double> &S) +check_areas(size_t n_a, Varray<double> const &area_a, Varray<double> const &area_b, size_t n_s, const Varray<size_t> &col, + const Varray<size_t> &row, Varray<double> const &S) { if (area_a.size() == 0 || area_b.size() == 0) return; @@ -651,7 +651,7 @@ check_areas(size_t n_a, const Varray<double> &area_a, const Varray<double> &area } static void -verify_weights(const std::string &remapFile) +verify_weights(std::string const &remapFile) { RemapGridW srcGrid, tgtGrid; RemapVarsW remapVars; @@ -664,7 +664,7 @@ verify_weights(const std::string &remapFile) } static void -write_remap_scrip(const std::string &remapFileIn, const std::string &remapFileOut) +write_remap_scrip(std::string const &remapFileIn, std::string const &remapFileOut) { RemapGridW srcGrid, tgtGrid; RemapVarsW remapVars; diff --git a/src/Vertcum.cc b/src/Vertcum.cc index 8a627442f..99c20b12e 100644 --- a/src/Vertcum.cc +++ b/src/Vertcum.cc @@ -19,7 +19,7 @@ #define IS_SURFACE_LEVEL(zaxisID) (zaxisInqType(zaxisID) == ZAXIS_SURFACE && zaxisInqSize(zaxisID) == 1) static void -add_vars_mv(size_t gridsize, double missval, const Varray<double> &var1, const Varray<double> &var2, Varray<double> &var3) +add_vars_mv(size_t gridsize, double missval, Varray<double> const &var1, Varray<double> const &var2, Varray<double> &var3) { auto missval1 = missval; auto missval2 = missval; @@ -176,7 +176,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; auto missval = var2.missval; auto gridsize = var2.gridsize; auto nlevs2 = var2.nlevels; @@ -201,7 +201,7 @@ public: if (operatorID == VERTCUMHL && nlevs2 == nlevshl) { - const auto &var1data = vardata2[varID][nlevs2 - 1]; + auto const &var1data = vardata2[varID][nlevs2 - 1]; for (int levelID = 0; levelID < nlevs2; ++levelID) { auto &var2data = vardata2[varID][levelID]; @@ -218,7 +218,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var2 = varList2.vars[varID]; + auto const &var2 = varList2.vars[varID]; auto missval = var2.missval; auto gridsize = var2.gridsize; auto nlevs2 = var2.nlevels; diff --git a/src/Vertfillmiss.cc b/src/Vertfillmiss.cc index d15f56784..801b59cb1 100644 --- a/src/Vertfillmiss.cc +++ b/src/Vertfillmiss.cc @@ -53,19 +53,19 @@ private: auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "method") method = convert<FillMethod>(value); @@ -107,7 +107,7 @@ public: void fillmiss(int varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto fieldMemType = var.memType; auto gridsize = var.gridsize; auto numLevels = var.nlevels; diff --git a/src/Vertintap.cc b/src/Vertintap.cc index eeb8f2895..163ba0218 100644 --- a/src/Vertintap.cc +++ b/src/Vertintap.cc @@ -23,7 +23,7 @@ #include "vertint_util.h" static void -check_range_ps(int stepNum, const Field &psProg) +check_range_ps(int stepNum, Field const &psProg) { auto mm = field_min_max(psProg); if (mm.min < MIN_PS || mm.max > MAX_PS) @@ -46,7 +46,7 @@ is_height_axis(int zaxisID) template <typename T> static void -calc_half_press(size_t gridsize, int numFullLevels, const Varray<T> &fullPress, int numHalfLevels, Varray<T> &halfPress) +calc_half_press(size_t gridsize, int numFullLevels, Varray<T> const &fullPress, int numHalfLevels, Varray<T> &halfPress) { for (size_t i = 0; i < gridsize; ++i) halfPress[i] = 0; #ifdef _OPENMP @@ -275,7 +275,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto isHeightAxis = is_height_axis(var.zaxisID); if (gridInqType(var.gridID) == GRID_SPECTRAL) cdo_abort("Spectral data unsupported!"); @@ -331,7 +331,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { processVars[varID] = false; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) varnumMissVals[varID][levelID] = 0; } @@ -391,7 +391,7 @@ public: { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID > 0 && !interpVars[varID] && var.isConstant) continue; @@ -405,13 +405,13 @@ public: if (varnumMissVals[varID][levelID]) cdo_abort("Missing values unsupported for this operator!"); } - const auto &levels3D = (var.nlevels == numFullLevels) ? fullPress : halfPress; - const auto &vertIndex3D = (var.nlevels == numFullLevels) ? vertIndex_FL : vertIndex_HL; + auto const &levels3D = (var.nlevels == numFullLevels) ? fullPress : halfPress; + auto const &vertIndex3D = (var.nlevels == numFullLevels) ? vertIndex_FL : vertIndex_HL; vertical_interp_X(levels3D, vardata1[varID], vardata2[varID], vertIndex3D, levels, gridsize); if (!extrapolate) { - const auto &numMiss = (var.nlevels == numFullLevels) ? numMiss_FL : numMiss_HL; + auto const &numMiss = (var.nlevels == numFullLevels) ? numMiss_FL : numMiss_HL; varray_copy(numPL, numMiss, varnumMissVals[varID]); } } diff --git a/src/Vertintgh.cc b/src/Vertintgh.cc index d04ed1f5b..3247b9f0b 100644 --- a/src/Vertintgh.cc +++ b/src/Vertintgh.cc @@ -40,7 +40,7 @@ static int create_zaxis_height(Varray<double> &heightLevels) { int zaxisID = CDI_UNDEFID; - const auto &arg1 = cdo_operator_argv(0); + auto const &arg1 = cdo_operator_argv(0); if (cdo_operator_argc() == 1 && !std::isdigit(arg1[0])) { auto zfilename = arg1.c_str(); @@ -163,7 +163,7 @@ public: { for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto stdname = string_to_lower(var.stdname); if (stdname == "height" && var.units == "m") { @@ -218,7 +218,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto isHeightAxis = is_height_axis(var.zaxisID); if (gridInqType(var.gridID) == GRID_SPECTRAL) cdo_abort("Spectral data unsupported!"); @@ -251,7 +251,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (interpVars[varID] && var.isConstant) vlistDefVarTimetype(vlistID2, varID, TIME_VARYING); } @@ -273,7 +273,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { processVars[varID] = false; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) varnumMissVals[varID][levelID] = 0; } @@ -317,7 +317,7 @@ public: { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID > 0 && !interpVars[varID] && var.isConstant) continue; if (interpVars[varID]) @@ -330,8 +330,8 @@ public: if (varnumMissVals[varID][levelID]) cdo_abort("Missing values unsupported for this operator!"); } - const auto &height3D = (var.nlevels == numFullLevels) ? vardata1[heightID_FL] : vardata1[heightID_HL]; - const auto &vertIndex3D = (var.nlevels == numFullLevels) ? vertIndex_FL : vertIndex_HL; + auto const &height3D = (var.nlevels == numFullLevels) ? vardata1[heightID_FL] : vardata1[heightID_HL]; + auto const &vertIndex3D = (var.nlevels == numFullLevels) ? vertIndex_FL : vertIndex_HL; vertical_interp_X(height3D, vardata1[varID], vardata2[varID], vertIndex3D, heightLevels, gridsize); if (!extrapolate) diff --git a/src/Vertintml.cc b/src/Vertintml.cc index eb5958306..377325442 100644 --- a/src/Vertintml.cc +++ b/src/Vertintml.cc @@ -26,7 +26,7 @@ /* static void -field_copy_div_2d_to_3d(MemType memType, size_t gridsize, int nlevels, const Field &field2d, Field3D &field3d) +field_copy_div_2d_to_3d(MemType memType, size_t gridsize, int nlevels, Field const &field2d, Field3D &field3d) { if (memType == MemType::Float) for (size_t i = 0; i < gridsize; ++i) field3d.vec_f[gridsize * nlevels + i] = field2d.vec_f[i] / PlanetGrav; @@ -36,7 +36,7 @@ field_copy_div_2d_to_3d(MemType memType, size_t gridsize, int nlevels, const Fie */ template <typename T> static void -field_check_sgeopot(const Varray<T> &sgeopot, const T *gheightAtSurface) +field_check_sgeopot(Varray<T> const &sgeopot, const T *gheightAtSurface) { auto len = sgeopot.size(); double sumDiff = 0; @@ -48,7 +48,7 @@ field_check_sgeopot(const Varray<T> &sgeopot, const T *gheightAtSurface) } static void -field_check_sgeopot(MemType memType, size_t gridsize, int nlevels, const Field &field2d, const Field3D &field3d) +field_check_sgeopot(MemType memType, size_t gridsize, int nlevels, Field const &field2d, const Field3D &field3d) { if (memType == MemType::Float) field_check_sgeopot(field2d.vec_f, &field3d.vec_f[gridsize * (nlevels - 1)]); @@ -57,7 +57,7 @@ field_check_sgeopot(MemType memType, size_t gridsize, int nlevels, const Field & } static void -vct_to_hybrid_pressure(MemType memType, Field3D &pressure_FL, Field3D &pressure_HL, const Varray<double> &vct, const Field &ps, +vct_to_hybrid_pressure(MemType memType, Field3D &pressure_FL, Field3D &pressure_HL, Varray<double> const &vct, Field const &ps, long numHybridLevels, long ngp) { if (memType == MemType::Float) @@ -80,7 +80,7 @@ invert_vct(Varray<double> &vct) template <class ForwardIt> static void -check_range(double rmin, double rmax, ForwardIt first, ForwardIt last, const std::string &name) +check_range(double rmin, double rmax, ForwardIt first, ForwardIt last, std::string const &name) { const auto [min, max] = std::minmax_element(first, last); if (fabs(*max - *min) <= 1.0e-9 || (*min < rmin) || (*max > rmax)) @@ -88,14 +88,14 @@ check_range(double rmin, double rmax, ForwardIt first, ForwardIt last, const std } static void -check_vct(const Varray<double> &vct, int numHalfLevels) +check_vct(Varray<double> const &vct, int numHalfLevels) { check_range(0.0, 50000.0, vct.begin(), vct.begin() + numHalfLevels, "vct A"); check_range(0.0, 1.0, vct.begin() + numHalfLevels, vct.end(), "vct B"); } static void -check_range_ps(int stepNum, const Field &psProg) +check_range_ps(int stepNum, Field const &psProg) { auto mm = field_min_max(psProg); if (mm.min < MIN_PS || mm.max > MAX_PS) @@ -103,7 +103,7 @@ check_range_ps(int stepNum, const Field &psProg) } static void -check_range_sgeopot(int stepNum, const Field &sgeopot) +check_range_sgeopot(int stepNum, Field const &sgeopot) { auto mm = field_min_max(sgeopot); if (mm.min < MIN_FIS || mm.max > MAX_FIS) @@ -296,7 +296,7 @@ pressure_level_interpolation(Varray<double> &pressureLevels, bool useHeightLevel { if (interpVars[varID]) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; if (var1.nlevels == numHalfLevels && varID != varIDs.gheightID) needVertIndexHalf = true; } } @@ -370,7 +370,7 @@ pressure_level_interpolation(Varray<double> &pressureLevels, bool useHeightLevel for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (vctIsInverted && zaxisID_ML != -1 && var.zaxisID == zaxisID_ML) levelID = var.nlevels - 1 - levelID; @@ -416,7 +416,7 @@ pressure_level_interpolation(Varray<double> &pressureLevels, bool useHeightLevel { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID > 0 && var.isConstant) continue; @@ -447,8 +447,8 @@ pressure_level_interpolation(Varray<double> &pressureLevels, bool useHeightLevel } else { - const auto &levels3D = (var.nlevels == numFullLevels) ? pressure_FL : pressure_HL; - const auto &vertIndex3D = (var.nlevels == numFullLevels) ? vertIndex_FL : vertIndex_HL; + auto const &levels3D = (var.nlevels == numFullLevels) ? pressure_FL : pressure_HL; + auto const &vertIndex3D = (var.nlevels == numFullLevels) ? vertIndex_FL : vertIndex_HL; vertical_interp_X(levels3D, vardata1[varID], vardata2[varID], vertIndex3D, pressureLevels, gridsize); } @@ -555,7 +555,7 @@ height_level_interpolation(Varray<double> &heightLevels, bool extrapolate) for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; auto nlevels = var1.nlevels; if (var1.gridType == GRID_SPECTRAL && zaxis_is_hybrid(var1.zaxisType)) cdo_abort("Spectral data on model level unsupported!"); @@ -644,7 +644,7 @@ height_level_interpolation(Varray<double> &heightLevels, bool extrapolate) { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID > 0 && var.isConstant) continue; if (interpVars[varID]) @@ -657,7 +657,7 @@ height_level_interpolation(Varray<double> &heightLevels, bool extrapolate) if (varnumMissVals[varID][levelID]) cdo_abort("Missing values unsupported for this operator!"); } - const auto &levels3D = vardata1[varIDs.gheightID]; + auto const &levels3D = vardata1[varIDs.gheightID]; vertical_interp_X(levels3D, vardata1[varID], vardata2[varID], vertIndex, heightLevels, gridsize); if (!extrapolate) varray_copy(numHeightLevels, pnumMissVals, varnumMissVals[varID]); diff --git a/src/Vertintzs.cc b/src/Vertintzs.cc index da7c04550..883574b1e 100644 --- a/src/Vertintzs.cc +++ b/src/Vertintzs.cc @@ -179,7 +179,7 @@ public: for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (gridInqType(var.gridID) == GRID_SPECTRAL) cdo_abort("Spectral data unsupported!"); @@ -220,7 +220,7 @@ public: for (int varID = 0; varID < nvars; ++varID) { processVars[varID] = false; - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; for (int levelID = 0; levelID < var.nlevels; ++levelID) varnumMissVals[varID][levelID] = 0; } @@ -254,7 +254,7 @@ public: { if (processVars[varID]) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID > 0 && !interpVars[varID] && var.isConstant) continue; diff --git a/src/Vertstat.cc b/src/Vertstat.cc index 1d300d56b..f1a3d1f4c 100644 --- a/src/Vertstat.cc +++ b/src/Vertstat.cc @@ -72,19 +72,19 @@ vertstat_get_parameter(bool &weights, bool &genbounds) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "weights") weights = parameter_to_bool(value); @@ -242,7 +242,7 @@ public: { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto &rsamp1 = stepStat.samp(varID); auto &rvar1 = stepStat.var1(varID); diff --git a/src/Vertwind.cc b/src/Vertwind.cc index 0391372e5..2e317cbe4 100644 --- a/src/Vertwind.cc +++ b/src/Vertwind.cc @@ -116,7 +116,7 @@ public: missval_t = varList1.vars[tempID].missval; missval_sq = varList1.vars[sqID].missval; - const auto &varOmega = varList1.vars[omegaID]; + auto const &varOmega = varList1.vars[omegaID]; missval_wap = varOmega.missval; missval_out = missval_wap; diff --git a/src/Wind.cc b/src/Wind.cc index 1fdfee87d..ce1c1804d 100644 --- a/src/Wind.cc +++ b/src/Wind.cc @@ -154,7 +154,7 @@ public: auto nvars = vlistNvars(vlistID2); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; auto varname = string_to_lower(var.name); int pnum, pcat, pdis; cdiDecodeParam(var.param, &pnum, &pcat, &pdis); @@ -203,8 +203,8 @@ public: if (varID1 != -1 && varID2 != -1) { - const auto &var1 = varList1.vars[varID1]; - const auto &var2 = varList1.vars[varID2]; + auto const &var1 = varList1.vars[varID1]; + auto const &var2 = varList1.vars[varID2]; gridID1 = var1.gridID; if (var1.gridType != GRID_GAUSSIAN) cdo_abort("U-wind is not on Gaussian grid!"); @@ -246,8 +246,8 @@ public: if (varID1 != -1 && varID2 != -1) { - const auto &var1 = varList1.vars[varID1]; - const auto &var2 = varList1.vars[varID2]; + auto const &var1 = varList1.vars[varID1]; + auto const &var2 = varList1.vars[varID2]; gridID1 = var2.gridID; if (var2.gridType != GRID_SPECTRAL) cdo_abort("Vorticity is not on spectral grid!"); @@ -288,8 +288,8 @@ public: if (varID1 != -1 && varID2 != -1) { - const auto &var1 = varList1.vars[varID1]; - const auto &var2 = varList1.vars[varID2]; + auto const &var1 = varList1.vars[varID1]; + auto const &var2 = varList1.vars[varID2]; gridID1 = var2.gridID; if (var2.gridType != GRID_SPECTRAL) cdo_abort("Vorticity is not on spectral grid!"); @@ -308,7 +308,7 @@ public: if (varID1 != -1 && varID2 != -1) { - const auto &var1 = varList1.vars[varID1]; + auto const &var1 = varList1.vars[varID1]; nlev = var1.nlevels; auto gridsize = gridInqSize(gridID1); diff --git a/src/WindTrans.cc b/src/WindTrans.cc index b1130bdc2..f4821a74a 100644 --- a/src/WindTrans.cc +++ b/src/WindTrans.cc @@ -288,7 +288,7 @@ DestaggerUV() int nvars = vlistNvars(vlistID1); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; int pnum, pcat, pdis; cdiDecodeParam(var.param, &pnum, &pcat, &pdis); @@ -446,7 +446,7 @@ DestaggerUV() Debug(cdoDebugExt, "Last trial to find a reference grid for destaggered wind."); for (int varID = 0; varID < nvars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; gridID = var.gridID; Debug(cdoDebugExt, "Var.id %d has grid nr:%d", varID, gridID); @@ -504,7 +504,7 @@ DestaggerUV() { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; int pnum, pcat, pdis; cdiDecodeParam(var.param, &pnum, &pcat, &pdis); @@ -1206,7 +1206,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; cdiDecodeParam(var.param, &pnum, &pcat, &pdis); code = pnum; @@ -1333,7 +1333,7 @@ public: } else // This means that it is U or V. { - const auto &var2 = varList2.vars[varID2]; + auto const &var2 = varList2.vars[varID2]; code2 = var2.code; zaxisID2 = var2.zaxisID; ltype2 = zaxis_to_ltype(zaxisID2); diff --git a/src/Ydaypctl.cc b/src/Ydaypctl.cc index 88be7cb74..0449acfd5 100644 --- a/src/Ydaypctl.cc +++ b/src/Ydaypctl.cc @@ -137,13 +137,13 @@ public: vars1[dayOfYear] = true; hsets[dayOfYear].create(numVars, numSteps); - for (const auto &var : varList1.vars) hsets[dayOfYear].createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hsets[dayOfYear].createVarLevels(var.ID, var.nlevels, var.gridsize); } for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID2); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID2, field1); @@ -178,7 +178,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -214,7 +214,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (otsID && var.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Ydaystat.cc b/src/Ydaystat.cc index e30bb5fec..0fdedc457 100644 --- a/src/Ydaystat.cc +++ b/src/Ydaystat.cc @@ -45,19 +45,19 @@ setParameter(void) auto pargc = cdo_operator_argc(); if (pargc) { - const auto &pargv = cdo_get_oper_argv(); + auto const &pargv = cdo_get_oper_argv(); KVList kvlist; kvlist.name = cdo_module_name(); if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; if (key == "yearMode") params.yearMode = parameter_to_bool(value); @@ -208,7 +208,7 @@ public: if (rangeNumSets[stepIndex]) { auto numEntries = dtLists[stepIndex].get_size(); - const auto &dtInfo = dtLists[stepIndex].get_info(); + auto const &dtInfo = dtLists[stepIndex].get_info(); outyear = std::min(outyear, dtInfo[numEntries - 1].v.date.year); } } diff --git a/src/Ydrunpctl.cc b/src/Ydrunpctl.cc index 7018b13a5..59cf6b690 100644 --- a/src/Ydrunpctl.cc +++ b/src/Ydrunpctl.cc @@ -66,12 +66,12 @@ get_parameter() if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "nts") params.nts = parameter_to_int(value); @@ -230,13 +230,13 @@ public: vars2[dayOfYear] = true; hsets[dayOfYear].create(numVars, numSteps); - for (const auto &var : varList1.vars) hsets[dayOfYear].createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hsets[dayOfYear].createVarLevels(var.ID, var.nlevels, var.gridsize); } for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID2); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID2, field1); @@ -260,7 +260,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -289,7 +289,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -363,7 +363,7 @@ public: for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -418,7 +418,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (otsID && var.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Ydrunstat.cc b/src/Ydrunstat.cc index 0c751ccaa..685bd438d 100644 --- a/src/Ydrunstat.cc +++ b/src/Ydrunstat.cc @@ -68,7 +68,7 @@ ydstat_update(YdayStats &stats, CdiDateTime vDateTime, const FieldVector2D &vars auto numVars = stats.varList.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = stats.varList.vars[varID]; + auto const &var = stats.varList.vars[varID]; if (var.timeType == TIME_CONSTANT) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -109,7 +109,7 @@ ydstat_finalize(YdayStats &stats, int operfunc) auto numVars = stats.varList.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = stats.varList.vars[varID]; + auto const &var = stats.varList.vars[varID]; if (var.timeType == TIME_CONSTANT) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) @@ -120,7 +120,7 @@ ydstat_finalize(YdayStats &stats, int operfunc) if (lmean) { fieldc_div(rvars1, (double) numSets); } else if (lvarstd) { - const auto &rvars2 = stats.varsData2[dayOfYear][varID][levelID]; + auto const &rvars2 = stats.varsData2[dayOfYear][varID][levelID]; fieldc_stdvar_func(rvars1, rvars2, numSets, divisor); } } @@ -161,12 +161,12 @@ get_parameter() if (kvlist.parse_arguments(pargv) != 0) cdo_abort("Parse error!"); if (Options::cdoVerbose) kvlist.print(); - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; if (kv.nvalues > 1) cdo_abort("Too many values for parameter key >%s<!", key); if (kv.nvalues < 1) cdo_abort("Missing value for parameter key >%s<!", key); - const auto &value = kv.values[0]; + auto const &value = kv.values[0]; // clang-format off if (key == "nts") params.nts = parameter_to_int(value); diff --git a/src/Yearmonstat.cc b/src/Yearmonstat.cc index 1395321c5..7a049dd02 100644 --- a/src/Yearmonstat.cc +++ b/src/Yearmonstat.cc @@ -134,7 +134,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -182,11 +182,11 @@ public: auto numVars = varList1.numVars(); for (int varID = 0; varID < numVars; ++varID) { - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (var.isConstant) continue; for (int levelID = 0; levelID < var.nlevels; ++levelID) { - const auto &rsamp1 = samp1[varID][levelID]; + auto const &rsamp1 = samp1[varID][levelID]; auto &rvars1 = varsData1[varID][levelID]; if (!rsamp1.empty()) field2_div(rvars1, rsamp1); diff --git a/src/Ymoncomp.cc b/src/Ymoncomp.cc index 6cb9b2579..17b925dab 100644 --- a/src/Ymoncomp.cc +++ b/src/Ymoncomp.cc @@ -29,7 +29,7 @@ #include "process_int.h" #include "field_functions.h" -static auto func_comp = [](auto hasMissvals, auto n, auto mv1, auto mv2, auto &v1, const auto &v2, auto binary_operator) { +static auto func_comp = [](auto hasMissvals, auto n, auto mv1, auto mv2, auto &v1, auto const &v2, auto binary_operator) { if (hasMissvals) { if (std::isnan(mv1) || std::isnan(mv2)) @@ -62,11 +62,11 @@ comp_function(Varray<T1> &v1, const Varray<T2> &v2, double missval1, double miss } static void -comp_function(Field &f1, const Field &f2, int operFunc) +comp_function(Field &f1, Field const &f2, int operFunc) { auto hasMissvals = (f1.numMissVals > 0 || f2.numMissVals > 0); - auto func = [&](auto &v1, const auto &v2, double mv1, double mv2, size_t size) { + auto func = [&](auto &v1, auto const &v2, double mv1, double mv2, size_t size) { comp_function(v1, v2, mv1, mv2, size, operFunc, hasMissvals); }; field_operation2(func, f1, f2, f1.missval, f2.missval, f1.size); diff --git a/src/Ymonpctl.cc b/src/Ymonpctl.cc index 7da8670cc..8a9967c2e 100644 --- a/src/Ymonpctl.cc +++ b/src/Ymonpctl.cc @@ -136,13 +136,13 @@ public: { varsData1[month] = true; hsets[month].create(numVars, numSteps); - for (const auto &var : varList1.vars) hsets[month].createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hsets[month].createVarLevels(var.ID, var.nlevels, var.gridsize); } for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID2); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID2, field1); @@ -177,7 +177,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -213,7 +213,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (otsID && var.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Yseaspctl.cc b/src/Yseaspctl.cc index c8e9b19d2..b170da01d 100644 --- a/src/Yseaspctl.cc +++ b/src/Yseaspctl.cc @@ -141,13 +141,13 @@ public: { seasVars[seas] = true; hsets[seas].create(numVars, numSteps); - for (const auto &var : varList1.vars) hsets[seas].createVarLevels(var.ID, var.nlevels, var.gridsize); + for (auto const &var : varList1.vars) hsets[seas].createVarLevels(var.ID, var.nlevels, var.gridsize); } for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID2); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; field1.init(var); cdo_read_field(streamID2, field1); @@ -181,7 +181,7 @@ public: for (int fieldID = 0; fieldID < numFields; ++fieldID) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (tsID == 0) fieldInfoList[fieldID].set(varID, levelID); @@ -217,7 +217,7 @@ public: for (int fieldID = 0; fieldID < maxFields; ++fieldID) { auto [varID, levelID] = fieldInfoList[fieldID].get(); - const auto &var = varList1.vars[varID]; + auto const &var = varList1.vars[varID]; if (otsID && var.isConstant) continue; cdo_def_field(streamID4, varID, levelID); diff --git a/src/Zonstat.cc b/src/Zonstat.cc index 58f4e7f83..a4ed18e62 100644 --- a/src/Zonstat.cc +++ b/src/Zonstat.cc @@ -32,7 +32,7 @@ #include "field_functions.h" void remap_weights_zonal_mean(int gridID1, int gridID2, Varray2D<size_t> &remapIndices, Varray2D<double> &remapWeights); -void remap_zonal_mean(const Varray2D<size_t> &remapIndices, const Varray2D<double> &remapWeights, const Field &field1, +void remap_zonal_mean(const Varray2D<size_t> &remapIndices, const Varray2D<double> &remapWeights, Field const &field1, Field &field2); template <typename T> @@ -218,7 +218,7 @@ public: if (Options::cdoChunkType == CDI_UNDEFID) { - for (const auto &var : varList1.vars) cdiDefKeyInt(vlistID2, var.ID, CDI_KEY_CHUNKTYPE, CDI_CHUNK_AUTO); + for (auto const &var : varList1.vars) cdiDefKeyInt(vlistID2, var.ID, CDI_KEY_CHUNKTYPE, CDI_CHUNK_AUTO); } streamID2 = cdo_open_write(1); @@ -251,7 +251,7 @@ public: while (numFields--) { auto [varID, levelID] = cdo_inq_field(streamID1); - const auto &var1 = varList1.vars[varID]; + auto const &var1 = varList1.vars[varID]; field1.init(var1); cdo_read_field(streamID1, field1); field1.grid = gridID1; diff --git a/src/after_fctrans.cc b/src/after_fctrans.cc index 5af6193ff..d3a4cfcb0 100644 --- a/src/after_fctrans.cc +++ b/src/after_fctrans.cc @@ -2118,7 +2118,7 @@ fc2gp(const double *restrict trig, const long *restrict ifax, const double *rest } } - const auto &wpt = wfc; + auto const &wpt = wfc; #ifdef _OPENMP #pragma omp parallel for default(shared) diff --git a/src/afterburner.h b/src/afterburner.h index a35bc3711..fc2ca98ed 100644 --- a/src/afterburner.h +++ b/src/afterburner.h @@ -225,7 +225,7 @@ static bool afterReadAsync = true; template <typename... Args> void -afterAbort(const std::string &format, Args const &...args) +afterAbort(std::string const &format, Args const &...args) { if (afterReadAsync && afterWorkerThread) afterWorkerThread->wait(); cdo_abort(format, args...); diff --git a/src/afterburnerlib.cc b/src/afterburnerlib.cc index e690b67f1..094e1fbe3 100644 --- a/src/afterburnerlib.cc +++ b/src/afterburnerlib.cc @@ -1407,7 +1407,7 @@ after_EchamCompGP(const AfterControl &globs, struct Variable *vars) } static void -Derivate(double field[], double derilam[], long nlevels, long Waves, long Latitudes, const Varray<double> &derivationFactor) +Derivate(double field[], double derilam[], long nlevels, long Waves, long Latitudes, Varray<double> const &derivationFactor) { long i = 0; for (long lev = 0; lev < nlevels; lev++) diff --git a/src/cdo.cc b/src/cdo.cc index d1360a7ca..042d8bc7b 100644 --- a/src/cdo.cc +++ b/src/cdo.cc @@ -58,7 +58,7 @@ extern "C" void streamGrbDefDataScanningMode(int scanmode); #endif static void -cdo_display_syntax_help(const std::string &help, FILE *p_target) +cdo_display_syntax_help(std::string const &help, FILE *p_target) { set_text_color(p_target, BRIGHT, BLUE); std::string pad = CLIOptions::pad_size_terminal('='); @@ -72,7 +72,7 @@ cdo_display_syntax_help(const std::string &help, FILE *p_target) } static void -print_category(const std::string &p_category, FILE *p_target) +print_category(std::string const &p_category, FILE *p_target) { const auto options = CLIOptions::print_options_help(p_category); if (!options.empty()) @@ -148,13 +148,13 @@ static void get_env_vars() { CLIOptions::envvar("CDO_TEST") - ->add_effect([&](const std::string &envstr) { Options::test = parameter_to_bool(envstr); }) + ->add_effect([&](std::string const &envstr) { Options::test = parameter_to_bool(envstr); }) ->describe_argument("true|false") ->add_default("false") ->add_help("'true' test new features [default: false]."); CLIOptions::envvar("CDO_ASYNC_READ") - ->add_effect([&](const std::string &envstr) { + ->add_effect([&](std::string const &envstr) { Options::CDO_Async_Read = parameter_to_bool(envstr); Options::CDO_task = Options::CDO_Async_Read; }) @@ -163,22 +163,22 @@ get_env_vars() ->add_help("'true' asyncronous read of input files [default: true]."); CLIOptions::envvar("CDO_CORESIZE") - ->add_effect([&](const std::string &envstr) { Options::coresize = parameter_to_long(envstr); }) + ->add_effect([&](std::string const &envstr) { Options::coresize = parameter_to_long(envstr); }) ->describe_argument("max. core dump size") ->add_help("The largest size (in bytes) core file that may be created."); CLIOptions::envvar("CDO_DOWNLOAD_PATH") - ->add_effect([&](const std::string &downloadPath) { DownloadPath = downloadPath; }) + ->add_effect([&](std::string const &downloadPath) { DownloadPath = downloadPath; }) ->describe_argument("path") ->add_help("Path where CDO can store downloads."); CLIOptions::envvar("CDO_ICON_GRIDS") - ->add_effect([&](const std::string &iconGrid) { IconGrids = iconGrid; }) + ->add_effect([&](std::string const &iconGrid) { IconGrids = iconGrid; }) ->describe_argument("path") ->add_help("Root directory of the installed ICON grids (e.g. /pool/data/ICON)."); CLIOptions::envvar("CDO_DISABLE_HISTORY") - ->add_effect([&](const std::string &envstr) { + ->add_effect([&](std::string const &envstr) { if (parameter_to_bool(envstr) == true) { Options::CDO_Reset_History = true; @@ -189,33 +189,33 @@ get_env_vars() ->add_help("'true' disables history attribute."); CLIOptions::envvar("CDO_RESET_HISTORY") - ->add_effect([&](const std::string &envstr) { Options::CDO_Reset_History = parameter_to_bool(envstr); }) + ->add_effect([&](std::string const &envstr) { Options::CDO_Reset_History = parameter_to_bool(envstr); }) ->describe_argument("true|false") ->add_default("false") ->add_help("'true' resets the global history attribute [default: false]."); CLIOptions::envvar("CDO_HISTORY_INFO") - ->add_effect([&](const std::string &envstr) { Options::CDO_Append_History = parameter_to_bool(envstr); }) + ->add_effect([&](std::string const &envstr) { Options::CDO_Append_History = parameter_to_bool(envstr); }) ->describe_argument("true|false") ->add_default("true") ->add_help("'false' don't write information to the global history attribute [default: true]."); CLIOptions::envvar("CDO_FILE_SUFFIX") - ->add_effect([&](const std::string &envstr) { + ->add_effect([&](std::string const &envstr) { if (envstr.size()) cdo::FileSuffix = envstr; }) ->describe_argument("suffix") ->add_help("Default filename suffix."); CLIOptions::envvar("CDO_DISABLE_FILE_SUFFIX") - ->add_effect([&](const std::string &envstr) { + ->add_effect([&](std::string const &envstr) { if (parameter_to_bool(envstr)) cdo::FileSuffix = "NULL"; }) ->describe_argument("true|false") ->add_help("'true' disables file suffix."); CLIOptions::envvar("CDO_VERSION_INFO") - ->add_effect([&](const std::string &envstr) { Options::VersionInfo = parameter_to_bool(envstr); }) + ->add_effect([&](std::string const &envstr) { Options::VersionInfo = parameter_to_bool(envstr); }) ->describe_argument("true|false") ->add_default("true") ->add_help("'false' disables the global NetCDF attribute CDO [default: true]."); @@ -239,7 +239,7 @@ extern "C" void H5dont_atexit(void); #endif static void -print_operator_attributes(const std::string &argument) +print_operator_attributes(std::string const &argument) { ModListOptions local_modListOpt; local_modListOpt.parse_request(argument); @@ -277,7 +277,7 @@ setup_cli_options() ->describe_argument("arbitrary|filesOnly|onlyFirst|noOutput|obase") ->aborts_program(true) ->set_category("Info") - ->add_effect([&](const std::string &argument) { print_operator_attributes(argument); }) + ->add_effect([&](std::string const &argument) { print_operator_attributes(argument); }) ->add_help("Lists all operators with choosen features or the attributes of given operator(s)", "operator name or a combination of [arbitrary,filesOnly,onlyFirst,noOutput,obase]."); @@ -291,7 +291,7 @@ setup_cli_options() ->aborts_program(true) ->describe_argument("module name") ->set_category("Info") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto names = Factory::get_module_operator_names(argument); if (names.empty()) { @@ -301,7 +301,7 @@ setup_cli_options() else { std::string info_string = "\n" + argument + ":\n"; - for (const auto &name : names) { info_string += std::string(4, ' ') + name + "\n"; } + for (auto const &name : names) { info_string += std::string(4, ' ') + name + "\n"; } std::cerr << info_string + "\n"; } }) @@ -313,12 +313,12 @@ setup_cli_options() ->add_help("Prints all operators which produce no output."); CLIOptions::option("color", "C") ->describe_argument("auto|no|all") - ->add_effect([&](const std::string &argument) { cdo::evaluate_color_options(argument); }) + ->add_effect([&](std::string const &argument) { cdo::evaluate_color_options(argument); }) ->set_category("Output") ->add_help("Set behaviour of colorized output messages."); CLIOptions::option("help", "h") ->describe_argument("operator") - ->add_effect([&](const std::string &operator_name) { cdo_print_help(operator_name); }) + ->add_effect([&](std::string const &operator_name) { cdo_print_help(operator_name); }) ->on_empty_argument([]() { cdo_usage(stdout); }) ->aborts_program(true) ->set_category("Help") diff --git a/src/cdo_cdi_wrapper.cc b/src/cdo_cdi_wrapper.cc index 8702c59b9..9fac42461 100644 --- a/src/cdo_cdi_wrapper.cc +++ b/src/cdo_cdi_wrapper.cc @@ -64,7 +64,7 @@ datatype_to_cstr(int datatype) } int -str_to_datatype(const std::string &datatypeStr) +str_to_datatype(std::string const &datatypeStr) { if (datatypeStr.size() > 1) { @@ -161,7 +161,7 @@ namespace cdo { int -inq_att_int(int cdiID, int varID, const std::string &attname) +inq_att_int(int cdiID, int varID, std::string const &attname) { int attint = -1; cdiInqAttInt(cdiID, varID, attname.c_str(), 1, &attint); @@ -169,7 +169,7 @@ inq_att_int(int cdiID, int varID, const std::string &attname) } std::string -inq_att_string(int cdiID, int varID, const std::string &attname) +inq_att_string(int cdiID, int varID, std::string const &attname) { int attlen = cdiInqAttLen(cdiID, varID, attname.c_str()); std::vector<char> atttxt(1, 0); diff --git a/src/cdo_cdi_wrapper.h b/src/cdo_cdi_wrapper.h index d980ab181..fd056f8ad 100644 --- a/src/cdo_cdi_wrapper.h +++ b/src/cdo_cdi_wrapper.h @@ -14,7 +14,7 @@ const char *filetype_to_cstr(int filetype); // convert a CDI datatype to cstring const char *datatype_to_cstr(int datatype); -int str_to_datatype(const std::string &datatypeStr); +int str_to_datatype(std::string const &datatypeStr); const char *get_steptype_name(int tsteptype); @@ -35,8 +35,8 @@ size_t cdo_vlist_gridsizemax(int vlistID); namespace cdo { -int inq_att_int(int cdiID, int varID, const std::string &attname); -std::string inq_att_string(int cdiID, int varID, const std::string &attname); +int inq_att_int(int cdiID, int varID, std::string const &attname); +std::string inq_att_string(int cdiID, int varID, std::string const &attname); std::string inq_key_string(int cdiID, int varID, int key); std::string inq_var_name(int vlistID, int varID); diff --git a/src/cdo_data.cc b/src/cdo_data.cc index 9364ac05b..40655632a 100644 --- a/src/cdo_data.cc +++ b/src/cdo_data.cc @@ -57,7 +57,7 @@ fill_random(Varray<float> &varray) } void -fill_sincos(Varray<float> &varray, const Varray<double> &xvals, const Varray<double> &yvals) +fill_sincos(Varray<float> &varray, Varray<double> const &xvals, Varray<double> const &yvals) { auto len = varray.size(); #ifdef HAVE_OPENMP4 @@ -67,7 +67,7 @@ fill_sincos(Varray<float> &varray, const Varray<double> &xvals, const Varray<dou } void -fill_coshill(Varray<float> &varray, const Varray<double> &xvals, const Varray<double> &yvals) +fill_coshill(Varray<float> &varray, Varray<double> const &xvals, Varray<double> const &yvals) { auto len = varray.size(); #ifdef HAVE_OPENMP4 @@ -77,7 +77,7 @@ fill_coshill(Varray<float> &varray, const Varray<double> &xvals, const Varray<do } void -fill_testfield(Varray<float> &varray, const Varray<double> &xvals, const Varray<double> &yvals) +fill_testfield(Varray<float> &varray, Varray<double> const &xvals, Varray<double> const &yvals) { auto len = varray.size(); #ifdef HAVE_OPENMP4 diff --git a/src/cdo_data.h b/src/cdo_data.h index 278d113e3..608277af2 100644 --- a/src/cdo_data.h +++ b/src/cdo_data.h @@ -15,9 +15,9 @@ extern const PackedData maskData; Varray<float> unpack_data(const PackedData &packedData); void fill_random(Varray<float> &varray); -void fill_sincos(Varray<float> &varray, const Varray<double> &xvals, const Varray<double> &yvals); -void fill_coshill(Varray<float> &varray, const Varray<double> &xvals, const Varray<double> &yvals); -void fill_testfield(Varray<float> &varray, const Varray<double> &xvals, const Varray<double> &yvals); +void fill_sincos(Varray<float> &varray, Varray<double> const &xvals, Varray<double> const &yvals); +void fill_coshill(Varray<float> &varray, Varray<double> const &xvals, Varray<double> const &yvals); +void fill_testfield(Varray<float> &varray, Varray<double> const &xvals, Varray<double> const &yvals); double std_atm_temperatur(double height); double std_atm_pressure(double height); diff --git a/src/cdo_def_options.cc b/src/cdo_def_options.cc index 00b992d08..5884f029c 100644 --- a/src/cdo_def_options.cc +++ b/src/cdo_def_options.cc @@ -65,7 +65,7 @@ setup_options() print_debug_options(); exit(EXIT_SUCCESS); }) - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto tokens = split_string(argument, ","); if (tokens.empty()) { @@ -86,25 +86,25 @@ setup_options() CLIOptions::option("worker") ->describe_argument("num") - ->add_effect([&](const std::string &argument) { Options::numStreamWorker = parameter_to_int(argument); }) + ->add_effect([&](std::string const &argument) { Options::numStreamWorker = parameter_to_int(argument); }) ->set_category("Multi Threading") ->add_help("Number of worker to decode/decompress GRIB records."); CLIOptions::option("precision") ->describe_argument("float_digits[,double_digits]") - ->add_effect([&](const std::string &argument) { cdo::set_digits(argument); }) + ->add_effect([&](std::string const &argument) { cdo::set_digits(argument); }) ->set_category("Numeric") ->add_help("Precision to use in displaying floating-point data (default: 7,15)."); CLIOptions::option("percentile") ->describe_argument("method") ->set_category("Numeric") - ->add_effect([&](const std::string &argument) { percentile_set_method(argument); }) + ->add_effect([&](std::string const &argument) { percentile_set_method(argument); }) ->add_help("Methods: nrank, nist, rtype8, <NumPy method (linear|lower|higher|nearest|...)>"); CLIOptions::option("netcdf_hdr_pad") ->describe_argument("nbr") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { int netcdf_hdr_pad = parameter_to_bytes(argument); if (netcdf_hdr_pad >= 0) cdo::netcdf_hdr_pad = netcdf_hdr_pad; }) @@ -112,12 +112,12 @@ setup_options() CLIOptions::option("use_fftw") ->describe_argument("false|true") - ->add_effect([&](const std::string &argument) { Options::Use_FFTW = (int) parameter_to_bool(argument); }) + ->add_effect([&](std::string const &argument) { Options::Use_FFTW = (int) parameter_to_bool(argument); }) ->add_help("Sets fftw usage."); CLIOptions::option("config") ->describe_argument("all|all-json|<specific_feature_name>") - ->add_effect([&](const std::string &argument) { cdo::features::print_config(argument); }) + ->add_effect([&](std::string const &argument) { cdo::features::print_config(argument); }) ->on_empty_argument([&]() { cdo::features::print_argument_options(); }) ->aborts_program(true) ->set_category("Info") @@ -127,13 +127,13 @@ setup_options() ->set_internal(true) ->describe_argument("<kdtree|nanoflann|spherepart|full>") ->set_category("Search Methods") - ->add_effect([&](const std::string &argument) { set_pointsearch_method(argument); }) + ->add_effect([&](std::string const &argument) { set_pointsearch_method(argument); }) ->add_help("Sets the point search method."); CLIOptions::option("gridsearchradius") ->describe_argument("degrees[0..180]") ->set_category("Search Methods") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto fval = radius_str_to_deg(argument); if (fval < 0 || fval > 180) cdo_abort("%s=%g out of bounds (0-180 deg)!", "gridsearchradius", fval); cdo_set_search_radius(fval); @@ -142,7 +142,7 @@ setup_options() CLIOptions::option("remap_weights") ->describe_argument("false|true") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto intarg = parameter_to_bool(argument); if (intarg != 0 && intarg != 1) cdo_abort("Unsupported value for option --remap_weights %d [false|true]", intarg); Options::REMAP_genweights = intarg; @@ -156,7 +156,7 @@ setup_options() CLIOptions::option("enableexcept") ->describe_argument("except") ->set_category("Numeric") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto except = cdo::evaluate_except_options(argument); if (except < 0) cdo_abort("option --%s: unsupported argument: %s", "enableexcept", argument); cdo::set_feenableexcept(except); @@ -166,7 +166,7 @@ setup_options() CLIOptions::option("timestat_date") ->describe_argument("srcdate") - ->add_effect([&](const std::string &argument) { set_timestat_date(argument); }) + ->add_effect([&](std::string const &argument) { set_timestat_date(argument); }) ->add_help("Target timestamp (temporal statistics): ", "first, middle, midhigh or last source timestep."); CLIOptions::option("ignore_time_bounds") @@ -216,7 +216,7 @@ setup_options() CLIOptions::option("format", "f") ->describe_argument("grb1|grb2|nc1|nc2|nc4|nc4c|nc5|nczarr|srv|ext|ieg") - ->add_effect([&](const std::string &argument) { cdo::set_default_filetype(argument); }) + ->add_effect([&](std::string const &argument) { cdo::set_default_filetype(argument); }) ->add_help("Format of the output file."); CLIOptions::option("history") @@ -257,14 +257,14 @@ setup_options() CLIOptions::option("lazy_grid_load") ->set_internal(true) ->describe_argument("false|true") - ->add_effect([&](const std::string &argument) { Options::lazyGridLoad = parameter_to_bool(argument); }) + ->add_effect([&](std::string const &argument) { Options::lazyGridLoad = parameter_to_bool(argument); }) ->add_help("Enable/disable lazy grid load"); // clang-format off CLIOptions::option("default_datatype", "b") ->describe_argument("nbits") ->set_category("Numeric") - ->add_effect([&](const std::string &argument) { cdo::set_default_datatype(argument); }) + ->add_effect([&](std::string const &argument) { cdo::set_default_datatype(argument); }) ->add_help("Set the number of bits for the output precision", " I8|I16|I32|F32|F64 for nc1,nc2,nc4,nc4c,nc5,nczarr;", " U8|U16|U32 for nc4,nc4c,nc5;", @@ -278,25 +278,25 @@ setup_options() CLIOptions::option("grid", "g") ->describe_argument("grid") - ->add_effect([&](const std::string &argument) { cdo_set_grids(argument); }) + ->add_effect([&](std::string const &argument) { cdo_set_grids(argument); }) ->add_help("Set default grid name or file. Available grids: ", "global_<DXY>, zonal_<DY>, r<NX>x<NY>, lon=<LON>/lat=<LAT>, F<XXX>, gme<NI>, hpz<ZOOM>"); CLIOptions::option("institution", "i") ->describe_argument("institute_name") - ->add_effect([&](const std::string &argument) { define_institution(argument); }) + ->add_effect([&](std::string const &argument) { define_institution(argument); }) ->add_help("Sets institution name."); CLIOptions::option("chunktype", "k") ->describe_argument("auto|grid|lines") ->set_category("Format Specific") - ->add_effect([&](const std::string &argument) { cdo::set_chunktype(argument); }) + ->add_effect([&](std::string const &argument) { cdo::set_chunktype(argument); }) ->add_help("NetCDF4 chunk type (x/y dimension)."); CLIOptions::option("chunksize") ->describe_argument("size") ->set_category("Format Specific") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { int chunkSize = parameter_to_bytes(argument); if (chunkSize >= 0) Options::cdoChunkSize = chunkSize; }) @@ -305,7 +305,7 @@ setup_options() CLIOptions::option("chunkspec") ->describe_argument("spec") ->set_category("Format Specific") - ->add_effect([&](const std::string &argument) { set_chunkspec_parameter(argument); }) + ->add_effect([&](std::string const &argument) { set_chunkspec_parameter(argument); }) ->add_help("NetCDF4 specify chunking for dimensions (x/y/z/t)."); CLIOptions::option("copy_chunkspec") @@ -322,12 +322,12 @@ setup_options() CLIOptions::option("zaxis", "l") ->describe_argument("zaxis") - ->add_effect([&](const std::string &argument) { cdo_set_zaxes(argument); }) + ->add_effect([&](std::string const &argument) { cdo_set_zaxes(argument); }) ->add_help("Set default zaxis name or file."); CLIOptions::option("set_missval", "m") ->describe_argument("missval") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto [success, mv] = string_to_floating<double>(argument); if (success) { @@ -345,12 +345,12 @@ setup_options() CLIOptions::option("varnames", "n") ->set_internal(true) ->describe_argument("<varname| file>") - ->add_effect([&](const std::string &argument) { Options::cdoVarnames = split_string(argument, ","); }) + ->add_effect([&](std::string const &argument) { Options::cdoVarnames = split_string(argument, ","); }) ->add_help("Set default varnames or file."); CLIOptions::option("num_threads", "P") ->describe_argument("nthreads") - ->add_effect([&](const std::string &argument) { Threading::ompNumUserRequestedThreads = parameter_to_int(argument); }) + ->add_effect([&](std::string const &argument) { Threading::ompNumUserRequestedThreads = parameter_to_int(argument); }) ->set_category("Multi Threading") ->add_help("Set number of OpenMP threads."); @@ -371,7 +371,7 @@ setup_options() CLIOptions::option("seed") ->describe_argument("seed") ->set_category("Numeric") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { int intarg = parameter_to_int(argument); if (intarg < 0) cdo_abort("Unsupported value for option --seed %d [>=0]", intarg); Options::Random_Seed = intarg; @@ -412,7 +412,7 @@ setup_options() CLIOptions::option("table", "t") ->describe_argument("codetab") ->set_category("CGRIBEX") - ->add_effect([&](const std::string &argument) { CdoDefault::TableID = cdo::define_table(argument); }) + ->add_effect([&](std::string const &argument) { CdoDefault::TableID = cdo::define_table(argument); }) ->add_help("Set GRIB1 default parameter code table name or file (cgribex only).", cdo::predefined_tables(CLIOptions::padding)); @@ -456,21 +456,21 @@ setup_options() CLIOptions::option("filter", "F") ->describe_argument("filterspec") - ->add_effect([&](const std::string &argument) { cdo::set_filterspec(argument); }) + ->add_effect([&](std::string const &argument) { cdo::set_filterspec(argument); }) ->set_category("Compression") ->add_help("NetCDF4 filter specification"); CLIOptions::option("compression_type", "z") ->describe_argument("aec|jpeg|zip[_1-9]|zstd[1-19]") ->set_category("Compression") - ->add_effect([&](const std::string &argument) { cdo::set_compression_type(argument); }) + ->add_effect([&](std::string const &argument) { cdo::set_compression_type(argument); }) ->add_help("aec AEC compression of GRIB2 records", "jpeg JPEG compression of GRIB2 records", "zip[_1-9] Deflate compression of NetCDF4 variables", "zstd[_1-19] Zstandard compression of NetCDF4 variables"); CLIOptions::option("nsb") ->set_internal(true) ->describe_argument("1-23") - ->add_effect([&](const std::string &argument) { Options::nsb = parameter_to_int(argument); }) + ->add_effect([&](std::string const &argument) { Options::nsb = parameter_to_int(argument); }) ->set_category("Numeric") ->add_help("Number of significant bits used for bit-rounding."); @@ -485,7 +485,7 @@ setup_options() CLIOptions::option("Dkext") ->describe_argument("debLev") ->set_category("Hirlam Extension") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto extDebugVal = parameter_to_int(argument); if (extDebugVal > 0) { @@ -499,7 +499,7 @@ setup_options() CLIOptions::option("outputGribDataScanningMode") ->describe_argument("mode") ->set_category("Hirlam Extension") - ->add_effect([&](const std::string &argument) { + ->add_effect([&](std::string const &argument) { auto scanningModeValue = parameter_to_int(argument); if (cdoDebugExt) printf("scanningModeValue=%d\n", scanningModeValue); diff --git a/src/cdo_exception.h b/src/cdo_exception.h index 6b858720c..af1058a4b 100644 --- a/src/cdo_exception.h +++ b/src/cdo_exception.h @@ -6,7 +6,7 @@ struct CdoException : std::logic_error { - CdoException(const std::string &p_msg, const std::string &p_file, const std::string &p_line) + CdoException(std::string const &p_msg, std::string const &p_file, std::string const &p_line) : std::logic_error(p_msg), file(p_file), line(p_line) { } diff --git a/src/cdo_features.cc b/src/cdo_features.cc index d0885fa0b..e96e43c4e 100644 --- a/src/cdo_features.cc +++ b/src/cdo_features.cc @@ -370,12 +370,12 @@ print_argument_options() { fprintf(stdout, "Available config option:\n"); fprintf(stdout, "\n"); - for (const auto &entry : configMap) + for (auto const &entry : configMap) fprintf(stdout, " %-12s whether %s is enabled\n", entry.first.c_str(), entry.second.first.c_str()); } int -print_config(const std::string &option) +print_config(std::string const &option) { int status = EXIT_SUCCESS; @@ -383,7 +383,7 @@ print_config(const std::string &option) { std::cout << "{"; int i = 0; - for (const auto &entry : configMap) + for (auto const &entry : configMap) { if (i++) fprintf(stdout, ","); std::cout << "\"" << entry.first << "\":\"" << (entry.second.second ? "yes" : "no") << "\""; @@ -393,7 +393,7 @@ print_config(const std::string &option) else { auto foundOption = false; - for (const auto &entry : configMap) + for (auto const &entry : configMap) { if (entry.first == option) { @@ -607,7 +607,7 @@ print_filetypes(FILE *fp) fprintf(fp, "CDI file types: "); set_text_color(fp, BRIGHT, GREEN); - for (const auto &[type, name] : fileTypes) + for (auto const &[type, name] : fileTypes) if (cdiHaveFiletype(type)) fprintf(fp, "%s ", name.c_str()); reset_text_color(fp); fprintf(fp, "\n"); diff --git a/src/cdo_features.h b/src/cdo_features.h index dd21f9633..dcc010c7b 100644 --- a/src/cdo_features.h +++ b/src/cdo_features.h @@ -10,7 +10,7 @@ namespace features void activate_hdf5_diag(); -int print_config(const std::string &option); +int print_config(std::string const &option); void print_features(); void print_libraries(); void print_argument_options(); diff --git a/src/cdo_fftw3.cc b/src/cdo_fftw3.cc index 9bdec59a8..858e2b0d7 100644 --- a/src/cdo_fftw3.cc +++ b/src/cdo_fftw3.cc @@ -11,7 +11,7 @@ static std::mutex fftwMutex; #ifdef HAVE_LIBFFTW3 void -fourier2grid(int gridID1, const Varray<double> &array1, Varray<double> &array2) +fourier2grid(int gridID1, Varray<double> const &array1, Varray<double> &array2) { auto nlon = gridInqXsize(gridID1); auto nlat = gridInqYsize(gridID1); @@ -65,7 +65,7 @@ fourier2grid(int gridID1, const Varray<double> &array1, Varray<double> &array2) } void -grid2fourier(int gridID1, const Varray<double> &array1, int gridID2, Varray<double> &array2) +grid2fourier(int gridID1, Varray<double> const &array1, int gridID2, Varray<double> &array2) { (void) gridID2; auto nlon = gridInqXsize(gridID1); @@ -141,7 +141,7 @@ filter_fftw(int nts, const std::vector<int> &fmasc, fftw_complex *fft_out, fftw_ #include "cdo_output.h" void -fourier2grid(int gridID1, const Varray<double> &array1, Varray<double> &array2) +fourier2grid(int gridID1, Varray<double> const &array1, Varray<double> &array2) { (void) gridID1; (void) array1; @@ -150,7 +150,7 @@ fourier2grid(int gridID1, const Varray<double> &array1, Varray<double> &array2) } void -grid2fourier(int gridID1, const Varray<double> &array1, int gridID2, Varray<double> &array2) +grid2fourier(int gridID1, Varray<double> const &array1, int gridID2, Varray<double> &array2) { (void) gridID1; (void) gridID2; diff --git a/src/cdo_fftw3.h b/src/cdo_fftw3.h index 4e7a94fc5..c8ada24ba 100644 --- a/src/cdo_fftw3.h +++ b/src/cdo_fftw3.h @@ -7,9 +7,9 @@ #include "varray.h" -void fourier2grid(int gridID1, const Varray<double> &array1, Varray<double> &array2); +void fourier2grid(int gridID1, Varray<double> const &array1, Varray<double> &array2); -void grid2fourier(int gridID1, const Varray<double> &array1, int gridID2, Varray<double> &array2); +void grid2fourier(int gridID1, Varray<double> const &array1, int gridID2, Varray<double> &array2); #ifdef HAVE_LIBFFTW3 #include <fftw3.h> diff --git a/src/cdo_fill.cc b/src/cdo_fill.cc index c4eb232f2..2f2a5763f 100644 --- a/src/cdo_fill.cc +++ b/src/cdo_fill.cc @@ -14,7 +14,7 @@ cdo_fill_ts(int p_vlistID, Varray2D<double> &p_varData) { VarList varList(p_vlistID); p_varData.resize(varList.numVars()); - for (const auto &var : varList.vars) { p_varData[var.ID].resize(var.nlevels * var.gridsize); } + for (auto const &var : varList.vars) { p_varData[var.ID].resize(var.nlevels * var.gridsize); } } void @@ -23,7 +23,7 @@ cdo_fill_ts(int p_vlistID, Varray2D<double> &p_varData, Varray2D<size_t> &p_varN VarList varList(p_vlistID); p_varData.resize(varList.numVars()); p_varNmiss.resize(varList.numVars()); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { p_varData[var.ID].resize(var.nlevels * var.gridsize); p_varNmiss[var.ID].resize(var.nlevels); diff --git a/src/cdo_getopt.cc b/src/cdo_getopt.cc index cbde901a0..81f435bca 100644 --- a/src/cdo_getopt.cc +++ b/src/cdo_getopt.cc @@ -55,7 +55,7 @@ get_width() } std::string -CLIOptions::pad_size_terminal(char padWith, const std::string &sourround) +CLIOptions::pad_size_terminal(char padWith, std::string const &sourround) { int terminal_width = get_width(); @@ -168,19 +168,19 @@ CLIOptions::get_env_vars() void CLIOptions::print_registry(const std::vector<std::shared_ptr<cdo_option_2>> &p_registry) { - for (const auto &it : p_registry) + for (auto const &it : p_registry) { if (it->argument.value.size() > 0) fprintf(stderr, "%s = %s\n", it->name.c_str(), it->argument.value.c_str()); } } std::shared_ptr<cdo_option_2> & -CLIOptions::envvar(const std::string &p_name) +CLIOptions::envvar(std::string const &p_name) { if (envvarMap.find(p_name) == envvarMap.end()) { envvarRegistry.push_back(std::make_shared<cdo_option_2>()); - const auto &newEnvVar = envvarRegistry.back(); + auto const &newEnvVar = envvarRegistry.back(); envvarMap[p_name] = newEnvVar; newEnvVar->name = p_name; } @@ -189,7 +189,7 @@ CLIOptions::envvar(const std::string &p_name) } std::shared_ptr<cdo_option_2> & -CLIOptions::option(const std::string &p_name, const std::string &p_shortForm) +CLIOptions::option(std::string const &p_name, std::string const &p_shortForm) { std::string name = "--" + p_name; std::string shortForm = p_shortForm; @@ -217,7 +217,7 @@ std::string CLIOptions::print_envvar_help() { std::stringstream helpString; - for (const auto &it : envvarMap) + for (auto const &it : envvarMap) { if (!it.second->isInternal) { @@ -227,14 +227,14 @@ CLIOptions::print_envvar_help() if (it.second->hasArgument) helpString << " <" + it.second->argument.description + "> "; int spaceLeft = padding - helpString.str().size() + len0; if (spaceLeft < 0) spaceLeft = 0; - for (const auto &line : it.second->description) { helpString << std::string(spaceLeft, ' ') + line + "\n"; } + for (auto const &line : it.second->description) { helpString << std::string(spaceLeft, ' ') + line + "\n"; } } } return helpString.str(); } std::string -CLIOptions::print_options_help(const std::string &p_category) +CLIOptions::print_options_help(std::string const &p_category) { std::stringstream help; for (auto &iter : optionMap) @@ -258,7 +258,7 @@ CLIOptions::print_options_help(const std::string &p_category) helpString += "\n"; spaceLeft = padding; } - for (const auto &line : option->description) + for (auto const &line : option->description) { helpString += std::string(spaceLeft, ' ') + line + "\n"; spaceLeft = padding; @@ -273,7 +273,7 @@ CLIOptions::print_options_help(const std::string &p_category) #include <algorithm> cdo_option_2 * -CLIOptions::option_from_envvar(const std::string &p_envvarName) +CLIOptions::option_from_envvar(std::string const &p_envvarName) { if (envvarMap.find(p_envvarName) == envvarMap.end()) { cdo_abort("Error envvar %s does not exist", p_envvarName); } std::string ENVVAR_SUFFIX = "CDO_"; @@ -306,7 +306,7 @@ CLIOptions::option_from_envvar(const std::string &p_envvarName) void CLIOptions::print_available_options() { - for (const auto &iter : optionMap) { std::cerr << iter.first << std::endl; } + for (auto const &iter : optionMap) { std::cerr << iter.first << std::endl; } std::cerr << "_---------------------------------_" << std::endl; for (auto &iter : optionMap) { diff --git a/src/cdo_getopt.h b/src/cdo_getopt.h index ff921754b..3108cda6a 100644 --- a/src/cdo_getopt.h +++ b/src/cdo_getopt.h @@ -45,7 +45,7 @@ struct cdo_option_2 std::string category = DEFAULT_CATEGORY; cdo_option_2 * - set_category(const std::string &p_category) + set_category(std::string const &p_category) { category = p_category; return this; @@ -88,14 +88,14 @@ struct cdo_option_2 } cdo_option_2 * - add_default(const std::string &p_default_value) + add_default(std::string const &p_default_value) { argument.default_value = p_default_value; return this; } cdo_option_2 * - describe_argument(const std::string &desc) + describe_argument(std::string const &desc) { hasArgument = true; argument.description = desc; @@ -117,7 +117,7 @@ struct cdo_option_2 template <typename... T> cdo_option_2 * - add_help(const std::string &arg, T... args) + add_help(std::string const &arg, T... args) { add_help(arg); add_help(args...); @@ -144,7 +144,7 @@ struct cdo_option_2 } cdo_option_2 * - add_env_var(const std::string &p_envVarName) + add_env_var(std::string const &p_envVarName) { linkedEnvironmentVariable = p_envVarName; return this; @@ -186,7 +186,7 @@ public: { return envvarMap; } - static std::string pad_size_terminal(char padWith, const std::string &sourround = std::string()); + static std::string pad_size_terminal(char padWith, std::string const &sourround = std::string()); const static int EXIT_REQUESTED; const static int ABORT_REQUESTED; const static int padding; @@ -196,12 +196,12 @@ public: static int parse(std::vector<std::string> p_argv); static void get_env_vars(); - static std::shared_ptr<cdo_option_2> &option(const std::string &p_name, const std::string &p_short_form = std::string()); - static std::shared_ptr<cdo_option_2> &envvar(const std::string &p_name); - static cdo_option_2 *option_from_envvar(const std::string &p_envvarName); + static std::shared_ptr<cdo_option_2> &option(std::string const &p_name, std::string const &p_short_form = std::string()); + static std::shared_ptr<cdo_option_2> &envvar(std::string const &p_name); + static cdo_option_2 *option_from_envvar(std::string const &p_envvarName); static void print_available_options(); - static std::string print_options_help(const std::string &p_category = DEFAULT_CATEGORY); + static std::string print_options_help(std::string const &p_category = DEFAULT_CATEGORY); static std::string print_envvar_help(); static void print_registry(const std::vector<std::shared_ptr<cdo_option_2>> &p_registry); }; diff --git a/src/cdo_module.cc b/src/cdo_module.cc index 0e47953d7..ace553af2 100644 --- a/src/cdo_module.cc +++ b/src/cdo_module.cc @@ -27,7 +27,7 @@ oper_t::oper_t(const char *_name) : name(_name), help(default_help) {} oper_t::oper_t(const char *_name, const CdoHelp &p_help) : name(_name), enter(nullptr), help(p_help) {} int -CdoModule::get_id(const std::string &oper) const +CdoModule::get_id(std::string const &oper) const { for (size_t i = 0; i < operators.size(); i++) { @@ -84,7 +84,7 @@ CdoModule::get_pos_restriction() const } int -CdoModule::is_alias(const std::string &subject) const +CdoModule::is_alias(std::string const &subject) const { for (size_t i = 0; i < aliases.size(); i++) { @@ -94,7 +94,7 @@ CdoModule::is_alias(const std::string &subject) const } std::vector<oper_t>::const_iterator -CdoModule::find_operator(const std::string &p_operatorName) const +CdoModule::find_operator(std::string const &p_operatorName) const { auto res = std::find_if(begin(operators), end(operators), [&p_operatorName](const oper_t &o) { return o.name == p_operatorName; }); @@ -102,7 +102,7 @@ CdoModule::find_operator(const std::string &p_operatorName) const } const CdoHelp & -CdoModule::get_help(const std::string &p_operatorName) const +CdoModule::get_help(std::string const &p_operatorName) const { auto oper_iter = find_operator(p_operatorName); if (oper_iter == operators.end()) cdo_abort("Help for %s in module %s not found", p_operatorName, name); diff --git a/src/cdo_module.h b/src/cdo_module.h index 2cf067b02..261a9b135 100644 --- a/src/cdo_module.h +++ b/src/cdo_module.h @@ -20,7 +20,7 @@ struct Alias { - Alias(const std::string &_alias, const std::string &_original) : alias(_alias), original(_original) {} + Alias(std::string const &_alias, std::string const &_original) : alias(_alias), original(_original) {} std::string alias; std::string original; }; @@ -78,7 +78,7 @@ public: std::string toString() const; - int get_id(const std::string &oper) const; + int get_id(std::string const &oper) const; int get_stream_in_cnt() const; int get_stream_out_cnt() const; int get_number() const; @@ -86,10 +86,10 @@ public: int get_pos_restriction() const; // returns the alias id or if not found1 - int is_alias(const std::string &subject) const; + int is_alias(std::string const &subject) const; - std::vector<oper_t>::const_iterator find_operator(const std::string &p_operatorName) const; - const CdoHelp &get_help(const std::string &p_operatorName) const; + std::vector<oper_t>::const_iterator find_operator(std::string const &p_operatorName) const; + const CdoHelp &get_help(std::string const &p_operatorName) const; }; #endif diff --git a/src/cdo_node_attach_exception.h b/src/cdo_node_attach_exception.h index 9d22c2350..e33a0bedd 100644 --- a/src/cdo_node_attach_exception.h +++ b/src/cdo_node_attach_exception.h @@ -10,11 +10,11 @@ struct NodeAttachException : public CdoException { std::vector<std::string>::const_iterator iter; - NodeAttachException(std::shared_ptr<Node> p_node, const std::string &p_msg, const std::string &p_file = "?", - const std::string &p_line = "?") + NodeAttachException(std::shared_ptr<Node> p_node, std::string const &p_msg, std::string const &p_file = "?", + std::string const &p_line = "?") : CdoException(p_msg, p_file, p_line), iter(p_node->iter){}; - NodeAttachException(std::vector<std::string>::const_iterator p_iter, const std::string &p_msg, const std::string &p_file = "?", - const std::string &p_line = "?") + NodeAttachException(std::vector<std::string>::const_iterator p_iter, std::string const &p_msg, std::string const &p_file = "?", + std::string const &p_line = "?") : CdoException(p_msg, p_file, p_line), iter(p_iter){}; }; diff --git a/src/cdo_output.cc b/src/cdo_output.cc index 5c4e70ed0..dba4424ae 100644 --- a/src/cdo_output.cc +++ b/src/cdo_output.cc @@ -72,7 +72,7 @@ namespace cdo void parse_debug_arguments(const std::vector<std::string> &tokens, unsigned &cdoDebugLevel, unsigned &cdiDebugLevel) { - for (const auto &t : tokens) + for (auto const &t : tokens) { if (t.substr(0, 4).compare("ext=") == 0) { @@ -249,7 +249,7 @@ checkForMissingLib(int filetype) } void -cdi_open_error(int cdiErrno, const std::string &format, const char *path) +cdi_open_error(int cdiErrno, std::string const &format, const char *path) { std::string context = cdo::getContext(); MpMO::PrintCerr(Red("%s: ") + format + "\n" + std::string(context.size() + 2, ' ') + "%s", context, path, @@ -267,7 +267,7 @@ cdi_open_error(int cdiErrno, const std::string &format, const char *path) } void -query_user_exit(const std::string &argument) +query_user_exit(std::string const &argument) { // modified code from NCO #define USR_RPL_MAX_LNG 10 /* Maximum length for user reply */ @@ -322,6 +322,6 @@ std::string cdo_argv_to_string(const std::vector<std::string> &argv) { std::string s_argv = ""; - for (const auto &x : argv) { s_argv += x + " "; } + for (auto const &x : argv) { s_argv += x + " "; } return s_argv; } diff --git a/src/cdo_output.h b/src/cdo_output.h index a608a28f4..494ac2386 100644 --- a/src/cdo_output.h +++ b/src/cdo_output.h @@ -27,7 +27,7 @@ extern unsigned ARGUMENTS; extern std::string debug_option_string; void print_debug_options(); -void query_user_exit(const std::string &argument); +void query_user_exit(std::string const &argument); namespace cdo { @@ -41,12 +41,12 @@ void set_exit_function(void (*func)(std::string msg)); void set_context_function(const char *(*func)(void) ); } // namespace cdo -void cdi_open_error(int cdiErrno, const std::string &format, const char *path); +void cdi_open_error(int cdiErrno, std::string const &format, const char *path); std::string cdo_argv_to_string(const std::vector<std::string> &argv); template <typename... Args> void -cdo_abort(const std::string &format, Args const &...args) +cdo_abort(std::string const &format, Args const &...args) { fflush(stdout); std::string errmsg = MpMO::PrintCerr(Red("\n%s (Abort): ") + format, cdo::getContext(), args...); @@ -55,7 +55,7 @@ cdo_abort(const std::string &format, Args const &...args) template <typename... Args> void -cdo_error(const std::string &format, Args const &...args) noexcept +cdo_error(std::string const &format, Args const &...args) noexcept { fflush(stdout); MpMO::PrintCerr(Red("\n%s (Abort): ") + format, cdo::getContext(), args...); @@ -64,7 +64,7 @@ cdo_error(const std::string &format, Args const &...args) noexcept template <typename... Args> void -cdo_warning(const std::string &format, Args const &...args) noexcept +cdo_warning(std::string const &format, Args const &...args) noexcept { if (MpMO::warningsEnabled) { @@ -79,14 +79,14 @@ cdo_warning(const std::string &format, Args const &...args) noexcept template <typename... Args> void -cdo_verbose(const std::string &format, Args const &...args) noexcept +cdo_verbose(std::string const &format, Args const &...args) noexcept { MpMO::PrintCerr(Green("%s: ") + format, cdo::getContext(), args...); } template <typename... Args> void -cdo_print(const std::string &format, Args const &...args) noexcept +cdo_print(std::string const &format, Args const &...args) noexcept { if (!MpMO::silentMode) MpMO::Print(Green("%s: ") + format, cdo::getContext(), args...); } diff --git a/src/cdo_query.cc b/src/cdo_query.cc index f366284e2..b1425e8ca 100644 --- a/src/cdo_query.cc +++ b/src/cdo_query.cc @@ -5,7 +5,7 @@ #include "util_string.h" static std::vector<int> -decode_int_parameter(const std::string ¶m) +decode_int_parameter(std::string const ¶m) { const std::string separator("/to/"); @@ -26,7 +26,7 @@ decode_int_parameter(const std::string ¶m) } static std::vector<size_t> -decode_cell_parameter(const std::string ¶m) +decode_cell_parameter(std::string const ¶m) { const std::string separator("/to/"); @@ -51,9 +51,9 @@ set_query_parameter(const KVList &kvlist, CdiQuery *query) { std::string path; - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { - const auto &key = kv.key; + auto const &key = kv.key; int numValues = kv.nvalues; if (numValues < 1) cdo_abort("Missing value for parameter key >%s<!", key); @@ -98,7 +98,7 @@ set_query_parameter(const KVList &kvlist, CdiQuery *query) } std::string -set_query_parameter(const std::string ¶ms, CdiQuery *query) +set_query_parameter(std::string const ¶ms, CdiQuery *query) { auto paramsArgv = split_string(params, ","); diff --git a/src/cdo_query.h b/src/cdo_query.h index 152cccd39..1fb9de5f2 100644 --- a/src/cdo_query.h +++ b/src/cdo_query.h @@ -8,6 +8,6 @@ #include "pmlist.h" std::string set_query_parameter(const KVList &kvlist, CdiQuery *query); -std::string set_query_parameter(const std::string ¶ms, CdiQuery *query); +std::string set_query_parameter(std::string const ¶ms, CdiQuery *query); #endif diff --git a/src/cdo_read.cc b/src/cdo_read.cc index d29f58b8a..7385c638b 100644 --- a/src/cdo_read.cc +++ b/src/cdo_read.cc @@ -15,12 +15,12 @@ #include "varray.h" int -cdo_read_timestepmask(const std::string &maskfile, std::vector<bool> &imask) +cdo_read_timestepmask(std::string const &maskfile, std::vector<bool> &imask) { auto streamID = stream_open_read_locked(maskfile.c_str()); auto vlistID = streamInqVlist(streamID); VarList varList(vlistID); - const auto &var0 = varList.vars[0]; + auto const &var0 = varList.vars[0]; if (varList.numVars() > 1) cdo_abort("timestepmask %s contains more than one variable!", maskfile); if (var0.nlevels > 1) cdo_abort("timestepmask %s has more than one level!", maskfile); @@ -72,7 +72,7 @@ read_one_field(const char *text, const char *filename, Varray<double> &array) auto streamID = stream_open_read_locked(filename); auto vlistID = streamInqVlist(streamID); VarList varList(vlistID); - const auto &var0 = varList.vars[0]; + auto const &var0 = varList.vars[0]; if (varList.numVars() > 1) cdo_abort("%s file %s contains more than one variable!", text, filename); if (var0.nlevels > 1) cdo_abort("%s file %s has more than one level!", text, filename); diff --git a/src/cdo_settings.cc b/src/cdo_settings.cc index 49775bd6b..847113608 100644 --- a/src/cdo_settings.cc +++ b/src/cdo_settings.cc @@ -46,7 +46,7 @@ namespace cdo int netcdf_hdr_pad = 0; int -evaluate_except_options(const std::string &arg) +evaluate_except_options(std::string const &arg) { int except = -1; // clang-format off @@ -144,7 +144,7 @@ signal_handler(int signo) } void -set_digits(const std::string &arg) +set_digits(std::string const &arg) { const char *carg = arg.c_str(); @@ -208,7 +208,7 @@ set_default_filetype(std::string filetypeString) #define IsBigendian() (u_byteorder.c[sizeof(long) - 1]) void -set_default_datatype(const std::string &datatypeString) +set_default_datatype(std::string const &datatypeString) { static const union { @@ -309,7 +309,7 @@ set_default_datatype(const std::string &datatypeString) } void -set_filterspec(const std::string &arg) +set_filterspec(std::string const &arg) { if (arg.size() > 0) { @@ -321,7 +321,7 @@ set_filterspec(const std::string &arg) } void -set_compression_type(const std::string &arg) +set_compression_type(std::string const &arg) { size_t len = arg.size(); @@ -356,7 +356,7 @@ set_compression_type(const std::string &arg) } void -set_chunktype(const std::string &arg) +set_chunktype(std::string const &arg) { // clang-format off if ("auto" == arg) Options::cdoChunkType = CDI_CHUNK_AUTO; @@ -367,7 +367,7 @@ set_chunktype(const std::string &arg) } void -evaluate_color_options(const std::string &arg) +evaluate_color_options(std::string const &arg) { // clang-format off if ("all" == arg) mpmo_color_set(All); diff --git a/src/cdo_settings.h b/src/cdo_settings.h index f89e8d147..70684800c 100644 --- a/src/cdo_settings.h +++ b/src/cdo_settings.h @@ -8,7 +8,7 @@ namespace cdo extern int netcdf_hdr_pad; -int evaluate_except_options(const std::string &arg); +int evaluate_except_options(std::string const &arg); int set_feenableexcept(int excepts); void set_cdi_options(); @@ -16,14 +16,14 @@ void set_external_proj_func(); void signal_handler(int signo); -void set_digits(const std::string &arg); +void set_digits(std::string const &arg); void set_default_filetype(std::string filetypeString); -void set_default_datatype(const std::string &datatypeString); -void set_filterspec(const std::string &arg); -void set_compression_type(const std::string &arg); -void set_chunktype(const std::string &arg); +void set_default_datatype(std::string const &datatypeString); +void set_filterspec(std::string const &arg); +void set_compression_type(std::string const &arg); +void set_chunktype(std::string const &arg); -void evaluate_color_options(const std::string &arg); +void evaluate_color_options(std::string const &arg); void setup_openMP(int ompNumUserRequestedThreads); diff --git a/src/cdo_stepstat.h b/src/cdo_stepstat.h index e73e0282c..93eb5fd11 100644 --- a/src/cdo_stepstat.h +++ b/src/cdo_stepstat.h @@ -37,7 +37,7 @@ public: } void - add_field_kernel(const Field &field, Field &sampData, Field &varData1, Field &varData2, int numSets) + add_field_kernel(Field const &field, Field &sampData, Field &varData1, Field &varData2, int numSets) { if (numSets == 0) { @@ -75,7 +75,7 @@ public: } void - process_kernel(const Field &sampData, Field &varData1, const Field &varData2, int numSets) + process_kernel(Field const &sampData, Field &varData1, Field const &varData2, int numSets) { auto field2_stdvar_func = lstd ? field2_std : field2_var; auto fieldc_stdvar_func = lstd ? fieldc_std : fieldc_var; @@ -164,7 +164,7 @@ public: } void - add_field(const Field &field, int levelID, int numSets) + add_field(Field const &field, int levelID, int numSets) { auto &sampData = sampsData[levelID]; auto &varData1 = varsData1[levelID]; @@ -197,7 +197,7 @@ private: FieldVector2D varsData2; static void - set_missval(Field &field, const Field &sampData, int numSets, double vfraction) + set_missval(Field &field, Field const &sampData, int numSets, double vfraction) { auto fieldsize = field.size; auto missval = field.missval; @@ -234,8 +234,8 @@ public: Varray<double> & samp(int varID, int levelID, int numSets) { - const auto &sampData = sampsData[varID][levelID]; - const auto &varData1 = varsData1[varID][levelID]; + auto const &sampData = sampsData[varID][levelID]; + auto const &varData1 = varsData1[varID][levelID]; vsamp.resize(varData1.size); if (!sampData.empty()) @@ -247,7 +247,7 @@ public: } void - add_field(const Field &field, int varID, int levelID, int numSets) + add_field(Field const &field, int varID, int levelID, int numSets) { auto &sampData = sampsData[varID][levelID]; auto &varData1 = varsData1[varID][levelID]; @@ -259,7 +259,7 @@ public: void set_missval(int varID, int levelID, int numSets, double vfraction) { - const auto &sampData = sampsData[varID][levelID]; + auto const &sampData = sampsData[varID][levelID]; if (!sampData.empty()) set_missval(varsData2[varID][levelID], sampData, numSets, vfraction); } @@ -334,7 +334,7 @@ public: } void - add_field(const Field &field, int dim0, int varID, int levelID, int numSets) + add_field(Field const &field, int dim0, int varID, int levelID, int numSets) { auto &sampData = sampsData[dim0][varID][levelID]; auto &varData1 = varsData1[dim0][varID][levelID]; @@ -354,7 +354,7 @@ const auto write_out_stream = [](CdoStreamID streamID2, const std::vector<FieldI cdo::StepStat2D &stepStat, int otsID) noexcept { cdo_def_timestep(streamID2, otsID); - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); if (otsID && varList1.vars[varID].isConstant) continue; @@ -368,7 +368,7 @@ const auto write_diag_stream = [](CdoStreamID streamID3, const std::vector<Field cdo::StepStat2D &stepStat, int otsID, int numSets) noexcept { cdo_def_timestep(streamID3, otsID); - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); if (otsID && varList1.vars[varID].isConstant) continue; @@ -382,7 +382,7 @@ const auto write_diag_stream = [](CdoStreamID streamID3, const std::vector<Field const auto fields_process = [](const std::vector<FieldInfo> &fieldInfoList, const VarList &varList1, cdo::StepStat2D &stepStat, int numSets) noexcept { - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); if (varList1.vars[varID].isConstant) continue; @@ -393,7 +393,7 @@ const auto fields_process const auto fields_set_missval = [](const std::vector<FieldInfo> &fieldInfoList, const VarList &varList1, cdo::StepStat2D &stepStat, int numSets, double vfraction) noexcept { - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); if (varList1.vars[varID].isConstant) continue; @@ -404,7 +404,7 @@ const auto fields_set_missval = [](const std::vector<FieldInfo> &fieldInfoList, const auto fields_process_3D = [](int dim0, const std::vector<FieldInfo> &fieldInfoList, const VarList &varList1, cdo::StepStat3D &stepStat, int numSets) noexcept { - for (const auto &fieldInfo : fieldInfoList) + for (auto const &fieldInfo : fieldInfoList) { auto [varID, levelID] = fieldInfo.get(); if (varList1.vars[varID].isConstant) continue; diff --git a/src/cdo_syntax_error.cc b/src/cdo_syntax_error.cc index f1499abcb..41e20364b 100644 --- a/src/cdo_syntax_error.cc +++ b/src/cdo_syntax_error.cc @@ -3,8 +3,8 @@ #include "cdo_syntax_error.h" #include "mpmo_color.h" -InternalCdoSyntaxError::InternalCdoSyntaxError(std::vector<std::string>::const_iterator p_iter, const std::string &p_msg, - const std::string &p_file, const std::string &p_line) +InternalCdoSyntaxError::InternalCdoSyntaxError(std::vector<std::string>::const_iterator p_iter, std::string const &p_msg, + std::string const &p_file, std::string const &p_line) : CdoException(p_msg, p_file, p_line), iter(p_iter) { } diff --git a/src/cdo_syntax_error.h b/src/cdo_syntax_error.h index 00766f492..543829f41 100644 --- a/src/cdo_syntax_error.h +++ b/src/cdo_syntax_error.h @@ -9,8 +9,8 @@ struct InternalCdoSyntaxError : CdoException { std::vector<std::string>::const_iterator iter; std::string message; - InternalCdoSyntaxError(std::vector<std::string>::const_iterator p_iter, const std::string &p_msg, const std::string &p_file = "?", - const std::string &p_line = "?"); + InternalCdoSyntaxError(std::vector<std::string>::const_iterator p_iter, std::string const &p_msg, std::string const &p_file = "?", + std::string const &p_line = "?"); }; struct CdoSyntaxError : InternalCdoSyntaxError diff --git a/src/cdo_timer.h b/src/cdo_timer.h index 6c1f320f1..fc4820c2c 100644 --- a/src/cdo_timer.h +++ b/src/cdo_timer.h @@ -92,7 +92,7 @@ public: { if (timerNeedInit) timer_init(); } - explicit iTimer(const std::string &_name) : name(_name) + explicit iTimer(std::string const &_name) : name(_name) { if (timerNeedInit) timer_init(); } diff --git a/src/cdo_varlist.cc b/src/cdo_varlist.cc index 4bf83cfc8..17d70a911 100644 --- a/src/cdo_varlist.cc +++ b/src/cdo_varlist.cc @@ -93,7 +93,7 @@ void VarList::set_num_const_vars(const CdoVars &cdoVars) { m_numConstVars = 0; - for (const auto &var : cdoVars) + for (auto const &var : cdoVars) { if (var.timeType == TIME_CONSTANT) m_numConstVars++; } @@ -103,7 +103,7 @@ void VarList::set_num_varying_vars(const CdoVars &cdoVars) { m_numVaryingVars = 0; - for (const auto &var : cdoVars) + for (auto const &var : cdoVars) { if (var.timeType == TIME_VARYING) m_numVaryingVars++; } @@ -212,7 +212,7 @@ varList_map(const VarList &varList1, const VarList &varList2, MapFlag mapFlag, s if (mapFlag == MapFlag::Right) { - for (const auto &var2 : varList2.vars) + for (auto const &var2 : varList2.vars) { int varID1; for (varID1 = 0; varID1 < numVars1; ++varID1) @@ -225,7 +225,7 @@ varList_map(const VarList &varList1, const VarList &varList2, MapFlag mapFlag, s } else { - for (const auto &var1 : varList1.vars) + for (auto const &var1 : varList1.vars) { auto numVars2 = varList2.numVars(); int varID2; @@ -247,8 +247,8 @@ varList_map(const VarList &varList1, const VarList &varList2, MapFlag mapFlag, s if (Options::cdoVerbose) for (int varID1 = 0; varID1 < numVars1; ++varID1) { - const auto &var1 = varList1.vars[varID1]; - const auto &it = mapOfVarIDs.find(varID1); + auto const &var1 = varList1.vars[varID1]; + auto const &it = mapOfVarIDs.find(varID1); if (it != mapOfVarIDs.end()) cdo_print("Variable %d:%s mapped to %d:%s", varID1, var1.name, it->second, varList2.vars[it->second].name); } @@ -269,8 +269,8 @@ varList_map(const VarList &varList1, const VarList &varList2, MapFlag mapFlag, s { auto varID1 = it->first; auto varID2 = it->second; - const auto &var1 = varList1.vars[varID1]; - const auto &var2 = varList2.vars[varID2]; + auto const &var1 = varList1.vars[varID1]; + auto const &var2 = varList2.vars[varID2]; if (cmpFlag & CmpVarList::GridSize) { @@ -292,7 +292,7 @@ varList_get_psvarid(const VarList &varList, int zaxisID) auto psname = cdo::inq_key_string(zaxisID, CDI_GLOBAL, CDI_KEY_PSNAME); if (psname.size()) { - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { if (var.name == psname) return var.ID; } @@ -375,8 +375,8 @@ varList_compare(const VarList &varList1, const VarList &varList2, int cmpFlag) for (int varID = 0; varID < numVars; ++varID) { - const auto &var1 = varList1.vars[varID]; - const auto &var2 = varList2.vars[varID]; + auto const &var1 = varList1.vars[varID]; + auto const &var2 = varList2.vars[varID]; if (numVars > 1) { if (cmpFlag & CmpVarList::Name) diff --git a/src/cdo_vlist.cc b/src/cdo_vlist.cc index 1740c3ed8..4cdcfaa9c 100644 --- a/src/cdo_vlist.cc +++ b/src/cdo_vlist.cc @@ -488,7 +488,7 @@ vlist_get_first_fourier_grid(int vlistID) } void -cdo_check_missval(double missval, const std::string &varname) +cdo_check_missval(double missval, std::string const &varname) { if (fp_is_equal(0.0, missval) || fp_is_equal(1.0, missval)) { diff --git a/src/cdo_vlist.h b/src/cdo_vlist.h index 792282d36..23ea12d6d 100644 --- a/src/cdo_vlist.h +++ b/src/cdo_vlist.h @@ -23,7 +23,7 @@ int vlist_get_first_gaussian_grid(int vlistID); int vlist_get_first_spectral_grid(int vlistID); int vlist_get_first_fourier_grid(int vlistID); -void cdo_check_missval(double missval, const std::string &varname); +void cdo_check_missval(double missval, std::string const &varname); void vlist_unpack(int vlistID); diff --git a/src/cdo_zaxis.cc b/src/cdo_zaxis.cc index 9f43f085d..049b60cc0 100644 --- a/src/cdo_zaxis.cc +++ b/src/cdo_zaxis.cc @@ -86,11 +86,11 @@ zaxis_read_data(const std::vector<KVMap> &kvmap, ZaxisDesciption &zaxis, size_t if (!kvmap[ik].isValid) continue; auto kv = kvmap[ik].kv; - const auto &key = kv->key; + auto const &key = kv->key; size_t nvalues = kv->nvalues; if (nvalues == 0) continue; - const auto &values = kv->values; - const auto &value = kv->values[0]; + auto const &values = kv->values; + auto const &value = kv->values[0]; // clang-format off if (key == "zaxistype") @@ -172,17 +172,17 @@ zaxis_read_attributes(size_t natts, const std::vector<KVMap> &kvmap, int zaxisID if (!kvmap[ik].isValid) continue; const auto kv = kvmap[ik].kv; - const auto &key = kv->key; + auto const &key = kv->key; size_t nvalues = kv->nvalues; if (nvalues == 0) continue; - const auto &values = kv->values; - const auto &value = kv->values[0]; + auto const &values = kv->values; + auto const &value = kv->values[0]; if (ik == natts) attkey0 = key.c_str(); else { - for (const auto &reservedKey : reservedKeys) + for (auto const &reservedKey : reservedKeys) if (key == reservedKey) cdo_abort("Found reserved keyword >%s< in attribute names! Check name or position of >%s<.", key, attkey0); } @@ -250,7 +250,7 @@ zaxis_from_file(FILE *zfp, const char *filename) } static void -gen_zaxis_height(ZaxisDesciption &zaxis, const std::string &zaxisname) +gen_zaxis_height(ZaxisDesciption &zaxis, std::string const &zaxisname) { int zaxistype = ZAXIS_HEIGHT; @@ -281,7 +281,7 @@ gen_zaxis_height(ZaxisDesciption &zaxis, const std::string &zaxisname) } int -zaxis_from_name(const std::string &zaxisname) +zaxis_from_name(std::string const &zaxisname) { int zaxisID = CDI_UNDEFID; @@ -373,16 +373,16 @@ cdo_define_zaxis(const char *pzaxisfile) } int -cdo_define_zaxis(const std::string &zaxisfile) +cdo_define_zaxis(std::string const &zaxisfile) { return cdo_define_zaxis(zaxisfile.c_str()); } void -cdo_set_zaxes(const std::string &zaxisarg) +cdo_set_zaxes(std::string const &zaxisarg) { auto zaxisNames = split_string(zaxisarg, ","); - for (const auto &zaxisName : zaxisNames) cdo_define_zaxis(zaxisName); + for (auto const &zaxisName : zaxisNames) cdo_define_zaxis(zaxisName); } static int @@ -417,7 +417,7 @@ zaxis_to_ltype(int zaxisID) } void -gen_layer_bounds(int nlev, const Varray<double> &levels, Varray<double> &lbounds, Varray<double> &ubounds) +gen_layer_bounds(int nlev, Varray<double> const &levels, Varray<double> &lbounds, Varray<double> &ubounds) { if (nlev == 1) { diff --git a/src/cdo_zaxis.h b/src/cdo_zaxis.h index da6e140fe..cc5a39d92 100644 --- a/src/cdo_zaxis.h +++ b/src/cdo_zaxis.h @@ -5,15 +5,15 @@ #include "varray.h" #include "cdi.h" -int cdo_define_zaxis(const std::string &zaxisfile); -void cdo_set_zaxes(const std::string &zaxisarg); -int zaxis_from_name(const std::string &zaxisname); +int cdo_define_zaxis(std::string const &zaxisfile); +void cdo_set_zaxes(std::string const &zaxisarg); +int zaxis_from_name(std::string const &zaxisname); int zaxis_from_file(FILE *zfp, const char *filename); int zaxis_to_ltype(int zaxisID); double cdo_zaxis_inq_level(int zaxisID, int levelID); int cdo_zaxis_inq_levels(int zaxisID, double *levels); -void gen_layer_bounds(int nlev, const Varray<double> &levels, Varray<double> &lbounds, Varray<double> &ubounds); +void gen_layer_bounds(int nlev, Varray<double> const &levels, Varray<double> &lbounds, Varray<double> &ubounds); int get_layer_thickness(bool useWeights, bool genBounds, int index, int zaxisID, int nlev, Varray<double> &thickness, Varray<double> &weights); diff --git a/src/cellsearch_reg2d.cc b/src/cellsearch_reg2d.cc index 91099d7b8..d57e534d4 100644 --- a/src/cellsearch_reg2d.cc +++ b/src/cellsearch_reg2d.cc @@ -9,7 +9,7 @@ #include "cellsearch_reg2d.h" void -grid_boundbox_reg2d(size_t nx, size_t ny, const Varray<double> &cornerLonsReg2d, const Varray<double> &cornerLatsReg2d, +grid_boundbox_reg2d(size_t nx, size_t ny, Varray<double> const &cornerLonsReg2d, Varray<double> const &cornerLatsReg2d, double *gridBoundBox) { gridBoundBox[0] = cornerLatsReg2d[0]; @@ -23,7 +23,7 @@ grid_boundbox_reg2d(size_t nx, size_t ny, const Varray<double> &cornerLonsReg2d, gridBoundBox[3] = cornerLonsReg2d[nx]; } -bool rect_grid_search2(long &imin, long &imax, double xmin, double xmax, long nxm, const Varray<double> &xm); +bool rect_grid_search2(long &imin, long &imax, double xmin, double xmax, long nxm, Varray<double> const &xm); static long set_srch_indices(size_t numSearchCells, long nx, long imin, long imax, long jmin, long jmax, Varray<size_t> &srchIndices) @@ -46,14 +46,14 @@ check_lon_bounds(double offset, double lonMin, double lonMax, double &boundLon1, } /* static void -debug_message(const char *txt, long imin, long imax, long jmin, long jmax, const Varray<double> &srcCornersLons) +debug_message(const char *txt, long imin, long imax, long jmin, long jmax, Varray<double> const &srcCornersLons) { printf("%s: lonMin=%g lonMax=%g iMin=%ld iMax=%ld jMin=%ld jMax %ld numCells=%ld\n", txt, RAD2DEG * srcCornersLons[imin], RAD2DEG * srcCornersLons[imax + 1], imin, imax, jmin, jmax, (jmax - jmin + 1) * (imax - imin + 1)); } */ static size_t -get_search_cells_reg2d(long nx, long ny, const Varray<double> &srcCornersLats, const Varray<double> &srcCornersLons, +get_search_cells_reg2d(long nx, long ny, Varray<double> const &srcCornersLats, Varray<double> const &srcCornersLons, const double *tgtCellBoundBox, Varray<size_t> &srchIndices) { auto debug{ false }; diff --git a/src/cellsearch_reg2d.h b/src/cellsearch_reg2d.h index 673a73c68..97e4cf322 100644 --- a/src/cellsearch_reg2d.h +++ b/src/cellsearch_reg2d.h @@ -11,13 +11,13 @@ #include "cellsearch_utils.h" #include "varray.h" -void grid_boundbox_reg2d(size_t nx, size_t ny, const Varray<double> &cornerLonsReg2d, const Varray<double> &cornerLatsReg2d, +void grid_boundbox_reg2d(size_t nx, size_t ny, Varray<double> const &cornerLonsReg2d, Varray<double> const &cornerLatsReg2d, double *gridBoundBox); class CellsearchReg2d { public: - CellsearchReg2d(const Varray<double> &cornerLonsReg2d, const Varray<double> &cornerLatsReg2d, const CellsearchParams ¶ms) + CellsearchReg2d(Varray<double> const &cornerLonsReg2d, Varray<double> const &cornerLatsReg2d, const CellsearchParams ¶ms) { m_nx = params.dims[0]; m_ny = params.dims[1]; @@ -28,7 +28,7 @@ public: size_t do_cellsearch(bool isReg2dCell, const GridCell &gridCell, Varray<size_t> &searchIndices); void - create(const Varray<double> &cornerLonsReg2d, const Varray<double> &cornerLatsReg2d) + create(Varray<double> const &cornerLonsReg2d, Varray<double> const &cornerLatsReg2d) { auto nxp1 = m_nx + 1; auto nyp1 = m_ny + 1; diff --git a/src/cellsearch_spherepart.h b/src/cellsearch_spherepart.h index 9315937e4..da3f43936 100644 --- a/src/cellsearch_spherepart.h +++ b/src/cellsearch_spherepart.h @@ -23,7 +23,7 @@ extern "C" class CellsearchSpherepart : public CellsearchStrategy { public: - CellsearchSpherepart(size_t numCells, size_t numCorners, const Varray<double> &cornerLons, const Varray<double> &cornerLats, + CellsearchSpherepart(size_t numCells, size_t numCorners, Varray<double> const &cornerLons, Varray<double> const &cornerLats, const CellsearchParams ¶ms) : m_params(params) { @@ -38,7 +38,7 @@ public: size_t do_cellsearch(bool isReg2dCell, const GridCell &gridCell, Varray<size_t> &searchIndices) { - const auto &yacGridCell = gridCell.yacGridCell; + auto const &yacGridCell = gridCell.yacGridCell; size_t numCorners = yacGridCell.num_corners; bounding_circle bndCircle; auto xyz = yacGridCell.coordinates_xyz; @@ -74,7 +74,7 @@ private: const CellsearchParams &m_params; void - create(size_t numCells, size_t numCorners, const Varray<double> &cornerLons, const Varray<double> &cornerLats) + create(size_t numCells, size_t numCorners, Varray<double> const &cornerLons, Varray<double> const &cornerLats) { Varray<enum yac_edge_type> edgeTypes(numCorners, YAC_GREAT_CIRCLE_EDGE); Varray<yac_grid_cell> cells(Threading::ompNumMaxThreads); diff --git a/src/convert_units.cc b/src/convert_units.cc index ce01df2b6..539028a7d 100644 --- a/src/convert_units.cc +++ b/src/convert_units.cc @@ -130,7 +130,7 @@ convert_destroy() namespace cdo { void -convert_units(void **ut_converter, bool *changeunits, char *units, char *unitsOld, const std::string &name) +convert_units(void **ut_converter, bool *changeunits, char *units, char *unitsOld, std::string const &name) { (void) ut_converter; // removes wrong warning, caused by ifdef diff --git a/src/convert_units.h b/src/convert_units.h index d77daee21..994969711 100644 --- a/src/convert_units.h +++ b/src/convert_units.h @@ -27,6 +27,6 @@ void convert_destroy(); namespace cdo { -void convert_units(void **ut_converter, bool *changeunits, char *units, char *units_old, const std::string &name); +void convert_units(void **ut_converter, bool *changeunits, char *units, char *units_old, std::string const &name); } #endif // CONVERT_UNITS_H diff --git a/src/custom_modules.cc b/src/custom_modules.cc index 6896d3e20..90d37d079 100644 --- a/src/custom_modules.cc +++ b/src/custom_modules.cc @@ -4,7 +4,7 @@ @param folder_path custom modules folder */ void -load_custom_modules(const std::string &folder_path) +load_custom_modules(std::string const &folder_path) { DIR *dir = opendir(folder_path.c_str()); std::string file_path; @@ -32,7 +32,7 @@ load_custom_modules(const std::string &folder_path) * @param module file path */ void -load_custom_module(const std::string &file_path) +load_custom_module(std::string const &file_path) { void (*init_custom_module)(); void *lib_handle = dlopen(file_path.c_str(), RTLD_LAZY); diff --git a/src/datetime.cc b/src/datetime.cc index 58620b45f..81a62e415 100644 --- a/src/datetime.cc +++ b/src/datetime.cc @@ -36,7 +36,7 @@ time_units_cstr(TimeUnits timeUnit) } void -set_timestat_date(const std::string &p_optarg) +set_timestat_date(std::string const &p_optarg) { TimeStat timestatdate = TimeStat::UNDEF; @@ -257,7 +257,7 @@ adjust_month_and_year(int &month, int &year) } double -delta_time_step_0(int tsID, int calendar, const CdiDateTime &vDateTime, JulianDate &julianDate0, double &deltat1) +delta_time_step_0(int tsID, int calendar, CdiDateTime const &vDateTime, JulianDate &julianDate0, double &deltat1) { double zj = 0.0; @@ -316,7 +316,7 @@ get_time_increment(double jdelta, CdiDate vDate0, CdiDate vDate1) } void -check_time_increment(int tsID, int calendar, const CdiDateTime &vDateTime, CheckTimeIncr &checkTimeIncr) +check_time_increment(int tsID, int calendar, CdiDateTime const &vDateTime, CheckTimeIncr &checkTimeIncr) { auto julianDate = julianDate_encode(calendar, vDateTime); @@ -374,7 +374,7 @@ decode_day_of_year(const CdiDate &date) } int -decode_hour_of_year(const CdiDateTime &cdiDateTime, int maxHours) +decode_hour_of_year(CdiDateTime const &cdiDateTime, int maxHours) { int year, month, day; int hour, minute, second, ms; @@ -392,7 +392,7 @@ decode_hour_of_year(const CdiDateTime &cdiDateTime, int maxHours) } int -decode_hour_of_day(const CdiDateTime &cdiDateTime, int maxHours) +decode_hour_of_day(CdiDateTime const &cdiDateTime, int maxHours) { int year, month, day; int hour, minute, second, ms; @@ -409,7 +409,7 @@ decode_hour_of_day(const CdiDateTime &cdiDateTime, int maxHours) } int -decode_minute_of_day(const CdiDateTime &cdiDateTime, int maxMinutes) +decode_minute_of_day(CdiDateTime const &cdiDateTime, int maxMinutes) { int year, month, day; int hour, minute, second, ms; @@ -437,7 +437,7 @@ set_date_time(CdiDateTime &datetime1, CdiDateTime datetime2) } static void -get_timeunits(const std::string &unitsStr, int &incrPeriod, int &incrUnits, int &timeUnits) +get_timeunits(std::string const &unitsStr, int &incrPeriod, int &incrUnits, int &timeUnits) { // clang-format off static std::unordered_map<std::string, std::pair<int, int>> unitsMap @@ -449,7 +449,7 @@ get_timeunits(const std::string &unitsStr, int &incrPeriod, int &incrUnits, int { "years", { 12, TUNIT_YEAR } } }; // clang-format on - for (const auto &entry : unitsMap) + for (auto const &entry : unitsMap) { if (entry.first.starts_with(unitsStr)) { @@ -472,7 +472,7 @@ get_timeunits(const std::string &unitsStr, int &incrPeriod, int &incrUnits, int } CdiDate -decode_datestring(const std::string &dateString) +decode_datestring(std::string const &dateString) { if (std::strchr(dateString.c_str() + 1, '-')) { @@ -484,7 +484,7 @@ decode_datestring(const std::string &dateString) } CdiTime -decode_timestring(const std::string &timeString) +decode_timestring(std::string const &timeString) { if (std::strchr(timeString.c_str(), ':')) { @@ -499,7 +499,7 @@ decode_timestring(const std::string &timeString) } void -decode_timeunits(const std::string &timeUnitsString, int &incrPeriod, int &incrUnits, int &timeUnits) +decode_timeunits(std::string const &timeUnitsString, int &incrPeriod, int &incrUnits, int &timeUnits) { incrPeriod = 0; incrUnits = 0; diff --git a/src/datetime.h b/src/datetime.h index dada6825e..e19184ec7 100644 --- a/src/datetime.h +++ b/src/datetime.h @@ -111,31 +111,31 @@ private: }; CdiDateTime datetime_avg(int calendar, int ndates, const std::vector<CdiDateTime> &cdiDateTimes); -void set_timestat_date(const std::string &p_optarg); +void set_timestat_date(std::string const &p_optarg); void adjust_month_and_year(int &month, int &year); -double delta_time_step_0(int tsID, int calendar, const CdiDateTime &vDateTime, JulianDate &juldate0, double &deltat1); +double delta_time_step_0(int tsID, int calendar, CdiDateTime const &vDateTime, JulianDate &juldate0, double &deltat1); TimeIncrement get_time_increment(double jdelta, CdiDate vDate0, CdiDate vDate1); -void check_time_increment(int tsID, int calendar, const CdiDateTime &vDateTime, CheckTimeIncr &checkTimeIncr); +void check_time_increment(int tsID, int calendar, CdiDateTime const &vDateTime, CheckTimeIncr &checkTimeIncr); int decode_month(const CdiDate &date); int decode_month_and_day(const CdiDate &date); int decode_day_of_year(const CdiDate &date); -int decode_hour_of_year(const CdiDateTime &cdiDateTime, int maxHours); -int decode_hour_of_day(const CdiDateTime &cdiDateTime, int maxHours); -int decode_minute_of_day(const CdiDateTime &cdiDateTime, int maxMinutes); +int decode_hour_of_year(CdiDateTime const &cdiDateTime, int maxHours); +int decode_hour_of_day(CdiDateTime const &cdiDateTime, int maxHours); +int decode_minute_of_day(CdiDateTime const &cdiDateTime, int maxMinutes); void set_date_time(CdiDateTime &datetime1, CdiDateTime datetime2); const char *time_units_cstr(TimeUnits timeUnit); -CdiDate decode_datestring(const std::string &dateString); -CdiTime decode_timestring(const std::string &timeString); -void decode_timeunits(const std::string &timeUnitsString, int &incrPeriod, int &incrUnits, int &timeUnits); +CdiDate decode_datestring(std::string const &dateString); +CdiTime decode_timestring(std::string const &timeString); +void decode_timeunits(std::string const &timeUnitsString, int &incrPeriod, int &incrUnits, int &timeUnits); int day_of_year(int calendar, int64_t date); diff --git a/src/dcw_reader.cc b/src/dcw_reader.cc index ab21d4b45..2cdd5f2ea 100644 --- a/src/dcw_reader.cc +++ b/src/dcw_reader.cc @@ -161,7 +161,7 @@ dcw_load_lists(DCW_Lists &dcw_lists) } static int -dcw_find_country(const std::string &code, const std::vector<DCW_Country> &list) +dcw_find_country(std::string const &code, const std::vector<DCW_Country> &list) { int low = 0, high = (int) list.size() - 1; @@ -184,7 +184,7 @@ dcw_find_country(const std::string &code, const std::vector<DCW_Country> &list) } static int -dcw_find_state(const std::string &code, const std::vector<DCW_State> &list) +dcw_find_state(std::string const &code, const std::vector<DCW_State> &list) { auto country = code.substr(0, 2); auto state = code.substr(2); @@ -199,7 +199,7 @@ dcw_find_state(const std::string &code, const std::vector<DCW_State> &list) #ifdef HAVE_LIBNETCDF static int -nc_get_minmax(int ncid, const std::string &name, double &minval, double &maxval) +nc_get_minmax(int ncid, std::string const &name, double &minval, double &maxval) { int varid; if (nc_inq_varid(ncid, name.c_str(), &varid)) return 1; @@ -332,7 +332,7 @@ nc_get_data(int ncid, const char *name, std::vector<double> &data) */ #ifdef HAVE_LIBNETCDF static int -nc_get_lonlat(int ncid, const std::string &xname, const std::string &yname, std::vector<double> &x, std::vector<double> &y) +nc_get_lonlat(int ncid, std::string const &xname, std::string const &yname, std::vector<double> &x, std::vector<double> &y) { int xvarid; double xscale, xmin; diff --git a/src/ecacore.cc b/src/ecacore.cc index fe15d3b35..e71e3eb97 100644 --- a/src/ecacore.cc +++ b/src/ecacore.cc @@ -64,7 +64,7 @@ eca1(const ECA_REQUEST_1 &request) auto ovlistID = vlistCreate(); VarList varList1(ivlistID); - const auto &varFirst = varList1.vars[FIRST_VAR_ID]; + auto const &varFirst = varList1.vars[FIRST_VAR_ID]; auto gridID = varFirst.gridID; auto zaxisID = varFirst.zaxisID; auto missval = varFirst.missval; @@ -245,7 +245,7 @@ eca1(const ECA_REQUEST_1 &request) if (request.var1.f2 == &vfarnum2) { auto &array1 = field3.vec_d; - const auto &array2 = var12[levelID].vec_d; + auto const &array2 = var12[levelID].vec_d; auto missval2 = field2.missval; auto len = field1.size; @@ -285,7 +285,7 @@ eca1(const ECA_REQUEST_1 &request) else { auto &array1 = var13[levelID].vec_d; - const auto &array2 = var12[levelID].vec_d; + auto const &array2 = var12[levelID].vec_d; auto missval2 = field2.missval; auto len = field1.size; @@ -380,8 +380,8 @@ eca2(const ECA_REQUEST_2 &request) VarList varList1(ivlistID1); VarList varList2(ivlistID2); - const auto &var1First = varList1.vars[FIRST_VAR_ID]; - const auto &var2First = varList2.vars[FIRST_VAR_ID]; + auto const &var1First = varList1.vars[FIRST_VAR_ID]; + auto const &var2First = varList2.vars[FIRST_VAR_ID]; varList_compare(varList1, varList2); @@ -588,7 +588,7 @@ eca2(const ECA_REQUEST_2 &request) if (request.var1.f4 == &vfarnum2) { auto &array1 = field3.vec_d; - const auto &array2 = var14[levelID].vec_d; + auto const &array2 = var14[levelID].vec_d; auto missvaltemp = field1.missval; auto len = field1.size; @@ -627,7 +627,7 @@ eca2(const ECA_REQUEST_2 &request) if (numFields == 0) { request.var1.f5(var15[levelID], var14[levelID], request.var1.f5arg); } else { - const auto &array2 = var14[levelID].vec_d; + auto const &array2 = var14[levelID].vec_d; auto &array1 = var15[levelID].vec_d; auto len = field1.size; auto missvaltemp = field1.missval; @@ -734,7 +734,7 @@ eca3(const ECA_REQUEST_3 &request) VarList varList1(ivlistID1); VarList varList2(ivlistID2); - const auto &var1First = varList1.vars[FIRST_VAR_ID]; + auto const &var1First = varList1.vars[FIRST_VAR_ID]; varList_compare(varList1, varList2); @@ -886,7 +886,7 @@ eca3(const ECA_REQUEST_3 &request) // check for non missval values static bool -fldhvs(const FieldVector &fieldVector, size_t nlevels) +fldhvs(FieldVector const &fieldVector, size_t nlevels) { for (size_t level = 0; level < nlevels; level++) { @@ -918,8 +918,8 @@ eca4(const ECA_REQUEST_4 &request) VarList varList1(ivlistID1); VarList varList2(ivlistID2); - const auto &var1First = varList1.vars[FIRST_VAR_ID]; - const auto &var2First = varList2.vars[FIRST_VAR_ID]; + auto const &var1First = varList1.vars[FIRST_VAR_ID]; + auto const &var2First = varList2.vars[FIRST_VAR_ID]; auto gridID = var1First.gridID; if (var1First.gridsize != var2First.gridsize) cdo_abort("Grid sizes of the input fields do not match!"); diff --git a/src/ecacore.h b/src/ecacore.h index d566b7f37..77a84f5d9 100644 --- a/src/ecacore.h +++ b/src/ecacore.h @@ -20,8 +20,8 @@ enum ECA_EPILOG }; using ECA_FUNC_1 = void (*)(Field &, double); -using ECA_FUNC_2 = void (*)(Field &, const Field &); -using ECA_FUNC_3 = void (*)(Field &, const Field &, double); +using ECA_FUNC_2 = void (*)(Field &, Field const &); +using ECA_FUNC_3 = void (*)(Field &, Field const &, double); /** * Structure describing a processing request of the form diff --git a/src/ecautil.cc b/src/ecautil.cc index f69f80fba..e7bfff10c 100644 --- a/src/ecautil.cc +++ b/src/ecautil.cc @@ -43,12 +43,12 @@ * @param mode the counting mode, must be an exact mathematical integer */ static void -count(Field &field1, const Field &field2, double mode) +count(Field &field1, Field const &field2, double mode) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -128,12 +128,12 @@ count(Field &field1, const Field &field2, double mode) * @param compare the comparator */ static void -selcomp(Field &field1, const Field &field2, int (*compare)(double, double)) +selcomp(Field &field1, Field const &field2, int (*compare)(double, double)) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -231,30 +231,30 @@ ne(double a, double b) } void -vfarnum(Field &field1, const Field &field2) +vfarnum(Field &field1, Field const &field2) { count(field1, field2, 0.0); } void -vfarnum2(Field &field1, const Field &field2) +vfarnum2(Field &field1, Field const &field2) { count(field1, field2, 1.0); } void -vfarnum3(Field &field1, const Field &field2, double n) +vfarnum3(Field &field1, Field const &field2, double n) { count(field1, field2, n); } void -vfarsel(Field &field1, const Field &field2) +vfarsel(Field &field1, Field const &field2) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different gridsize (%s)", __func__); @@ -274,37 +274,37 @@ vfarsel(Field &field1, const Field &field2) } void -vfarselle(Field &field1, const Field &field2) +vfarselle(Field &field1, Field const &field2) { selcomp(field1, field2, le); } void -vfarsellt(Field &field1, const Field &field2) +vfarsellt(Field &field1, Field const &field2) { selcomp(field1, field2, lt); } void -vfarselge(Field &field1, const Field &field2) +vfarselge(Field &field1, Field const &field2) { selcomp(field1, field2, ge); } void -vfarselgt(Field &field1, const Field &field2) +vfarselgt(Field &field1, Field const &field2) { selcomp(field1, field2, gt); } void -vfarseleq(Field &field1, const Field &field2) +vfarseleq(Field &field1, Field const &field2) { selcomp(field1, field2, eq); } void -vfarselne(Field &field1, const Field &field2) +vfarselne(Field &field1, Field const &field2) { selcomp(field1, field2, ne); } @@ -500,7 +500,7 @@ compute_gsl(int nlevels, size_t gridsize, std::vector<double> &yvals, double mis void write_gsl_stream(CdoStreamID ostreamID, int otaxisID, int otsID, int ovarID1, int ovarID2, int ivlistID1, int first_var_id, - FieldVector &gslDuration, FieldVector &gslFirstDay, const CdiDateTime &vDateTime, int nlevels) + FieldVector &gslDuration, FieldVector &gslFirstDay, CdiDateTime const &vDateTime, int nlevels) { (void) ivlistID1; (void) first_var_id; diff --git a/src/ecautil.h b/src/ecautil.h index b72a5d108..6350764e6 100644 --- a/src/ecautil.h +++ b/src/ecautil.h @@ -34,7 +34,7 @@ unsigned long day_of_year(int date); * @param field1 the 1st input field, also holds the result * @param field2 the 2nd input field */ -void vfarnum(Field &field1, const Field &field2); +void vfarnum(Field &field1, Field const &field2); /** * Counts the number of consecutive nonumMissValsing values in a field. @@ -50,7 +50,7 @@ void vfarnum(Field &field1, const Field &field2); * @param field1 the 1st input field, also holds the result * @param field2 the 2nd input field */ -void vfarnum2(Field &field1, const Field &field2); +void vfarnum2(Field &field1, Field const &field2); /** * Counts the number of values in series of at least n consecutive @@ -68,7 +68,7 @@ void vfarnum2(Field &field1, const Field &field2); * @param n the number of consecutive values, must be an exact * mathematical integer */ -void vfarnum3(Field &field1, const Field &field2, double n); +void vfarnum3(Field &field1, Field const &field2, double n); /** * Selects field elements according to a given mask. The result of @@ -83,7 +83,7 @@ void vfarnum3(Field &field1, const Field &field2, double n); * @param field1 the input field, also holds the result * @param field2 the mask */ -void vfarsel(Field &field1, const Field &field2); +void vfarsel(Field &field1, Field const &field2); /** * Selects all field elements that are less than or equal to the @@ -99,7 +99,7 @@ void vfarsel(Field &field1, const Field &field2); * @param field1 the input field, also holds the result * @param field2 the reference field */ -void vfarselle(Field &field1, const Field &field2); +void vfarselle(Field &field1, Field const &field2); /** * Selects all field elements that are less than the @@ -115,7 +115,7 @@ void vfarselle(Field &field1, const Field &field2); * @param field1 the input field, also holds the result * @param field2 the reference field */ -void vfarsellt(Field &field1, const Field &field2); +void vfarsellt(Field &field1, Field const &field2); /** * Selects all field elements that are greater than or equal to @@ -131,7 +131,7 @@ void vfarsellt(Field &field1, const Field &field2); * @param field1 the input field, also holds the result * @param field2 the reference field */ -void vfarselge(Field &field1, const Field &field2); +void vfarselge(Field &field1, Field const &field2); /** * Selects all field elements that are greater than the @@ -147,7 +147,7 @@ void vfarselge(Field &field1, const Field &field2); * @param field1 the input field, also holds the result * @param field2 the reference field */ -void vfarselgt(Field &field1, const Field &field2); +void vfarselgt(Field &field1, Field const &field2); /** * Selects all field elements that are equal to the @@ -163,7 +163,7 @@ void vfarselgt(Field &field1, const Field &field2); * @param field1 the input field, also holds the result * @param field2 the reference field */ -void vfarseleq(Field &field1, const Field &field2); +void vfarseleq(Field &field1, Field const &field2); /** * Selects all field elements that are not equal to the @@ -179,7 +179,7 @@ void vfarseleq(Field &field1, const Field &field2); * @param field1 the input field, also holds the result * @param field2 the reference field */ -void vfarselne(Field &field1, const Field &field2); +void vfarselne(Field &field1, Field const &field2); /** * Selects all field elements that are less than or equal to a @@ -328,5 +328,5 @@ void define_mid_of_time(int frequency, int taxisID, int year, int month, int Max * Write GSL related fields to an output stream */ void write_gsl_stream(CdoStreamID ostreamID, int otaxisID, int otsID, int ovarID1, int ovarID2, int ivlistID1, int first_var_id, - FieldVector &gslDuration, FieldVector &gslFirstDay, const CdiDateTime &vDateTime, int nlevels); + FieldVector &gslDuration, FieldVector &gslFirstDay, CdiDateTime const &vDateTime, int nlevels); #endif /*ECAUTIL_H_*/ diff --git a/src/expr.cc b/src/expr.cc index fee474360..5d422c108 100644 --- a/src/expr.cc +++ b/src/expr.cc @@ -231,7 +231,7 @@ node_delete(nodeType *p) } static int -get_funcID(const std::string &fun) +get_funcID(std::string const &fun) { constexpr int funcTableSize = sizeof(funcSymbolTable) / sizeof(funcSymbolTable[0]); for (int funcID = 0; funcID < funcTableSize; funcID++) @@ -812,7 +812,7 @@ ex_fun_var(int init, int funcID, nodeType *p1) field.weightv.resize(ngp); } - auto exprfunc = (double (*)(const Field &)) funcEntry.func; + auto exprfunc = (double (*)(Field const &)) funcEntry.func; for (size_t k = 0; k < nlev; ++k) { fld_field_init(field, numMissVals, missval, ngp, p1data + k * ngp, p1->param.weight); @@ -824,7 +824,7 @@ ex_fun_var(int init, int funcID, nodeType *p1) Field field1, field2; field1.resize(ngp); field2.resize(nlat); - auto exprfunc = (void (*)(const Field &, Field &)) funcEntry.func; + auto exprfunc = (void (*)(Field const &, Field &)) funcEntry.func; for (size_t k = 0; k < nlev; ++k) { fld_field_init(field1, numMissVals, missval, ngp, &p1data[k * ngp], nullptr); @@ -839,7 +839,7 @@ ex_fun_var(int init, int funcID, nodeType *p1) Field field; field.resize(nlev); if (funcflag == 1) vert_weights(p1->param.zaxisID, nlev, field.weightv); - auto exprfunc = (double (*)(const Field &)) funcEntry.func; + auto exprfunc = (double (*)(Field const &)) funcEntry.func; for (size_t i = 0; i < ngp; ++i) { for (size_t k = 0; k < nlev; ++k) field.vec_d[k] = p1data[k * ngp + i]; @@ -1163,7 +1163,7 @@ ex_remap(int init, int funcID, nodeType *p1, nodeType *p2) Field field1, field2; field1.resize(ngp); field2.resize(ngp2); - auto exprfunc = (void (*)(const Field &, Field &)) funcEntry.func; + auto exprfunc = (void (*)(Field const &, Field &)) funcEntry.func; for (size_t k = 0; k < nlev; ++k) { fld_field_init(field1, numMissVals, missval, ngp, &p1data[k * ngp], nullptr); @@ -1183,7 +1183,7 @@ ex_remap(int init, int funcID, nodeType *p1, nodeType *p2) } static size_t -get_levidx(size_t nlev, const double *data, double value, const std::string &funcname) +get_levidx(size_t nlev, const double *data, double value, std::string const &funcname) { size_t levidx; @@ -1195,7 +1195,7 @@ get_levidx(size_t nlev, const double *data, double value, const std::string &fun } static void -get_levidxrange(size_t nlev, const double *data, double value1, double value2, const std::string &funcname, size_t &levidx1, +get_levidxrange(size_t nlev, const double *data, double value1, double value2, std::string const &funcname, size_t &levidx1, size_t &levidx2) { long n = nlev; @@ -1811,7 +1811,7 @@ exNode(nodeType *p, ParseParamType &parseArg) */ static int -param_search_name(int nparam, const std::vector<ParamEntry> ¶ms, const std::string &name) +param_search_name(int nparam, const std::vector<ParamEntry> ¶ms, std::string const &name) { for (int varID = 0; varID < nparam; ++varID) { @@ -1822,7 +1822,7 @@ param_search_name(int nparam, const std::vector<ParamEntry> ¶ms, const std:: } static int -param_search_name_size(int nparam, std::vector<ParamEntry> ¶ms, const std::string &name, size_t ngp, size_t nlev) +param_search_name_size(int nparam, std::vector<ParamEntry> ¶ms, std::string const &name, size_t ngp, size_t nlev) { for (int varID = 0; varID < nparam; ++varID) { @@ -1841,7 +1841,7 @@ param_search_name_size(int nparam, std::vector<ParamEntry> ¶ms, const std::s } static void -param_print(const std::string &vname, const ParamEntry ¶m, long tsID) +param_print(std::string const &vname, const ParamEntry ¶m, long tsID) { constexpr size_t maxout = 100; const auto data = param.data; @@ -1861,7 +1861,7 @@ param_print(const std::string &vname, const ParamEntry ¶m, long tsID) } static void -add_new_constant(const std::string &varname, ParseParamType &parseArg, std::vector<ParamEntry> ¶ms, const ParamEntry ¶m) +add_new_constant(std::string const &varname, ParseParamType &parseArg, std::vector<ParamEntry> ¶ms, const ParamEntry ¶m) { auto varID = parseArg.numParams; if (varID >= parseArg.maxParams) cdo_abort("Too many parameter (limit=%d)", parseArg.maxParams); @@ -1879,7 +1879,7 @@ add_new_constant(const std::string &varname, ParseParamType &parseArg, std::vect } static void -add_new_param(const std::string &varname, ParseParamType &parseArg, std::vector<ParamEntry> ¶ms, const ParamEntry ¶m) +add_new_param(std::string const &varname, ParseParamType &parseArg, std::vector<ParamEntry> ¶ms, const ParamEntry ¶m) { auto varID = parseArg.numParams; if (varID >= parseArg.maxParams) cdo_abort("Too many parameter (limit=%d)", parseArg.maxParams); @@ -1900,8 +1900,8 @@ expr_run_cmd(nodeType *p, ParseParamType &parseArg) auto init = parseArg.init; auto ¶ms = parseArg.params; - const auto &cmdName = p->cmd().cmdName; - const auto &varName = p->cmd().varName; + auto const &cmdName = p->cmd().cmdName; + auto const &varName = p->cmd().varName; if (parseArg.debug) cdo_print("\tstatement\t\t%s(%s)", cmdName, varName); auto varID = param_search_name(parseArg.numParams, params, varName); @@ -1927,7 +1927,7 @@ expr_run_con(nodeType *p, const ParseParamType &parseArg) } static int -expr_run_var_grid(const std::string &vnm, int coord, ParseParamType &parseArg) +expr_run_var_grid(std::string const &vnm, int coord, ParseParamType &parseArg) { auto ¶ms = parseArg.params; @@ -1940,8 +1940,8 @@ expr_run_var_grid(const std::string &vnm, int coord, ParseParamType &parseArg) auto coordID = params_get_coord_ID(parseArg, coord, params[varID].gridID); parseArg.coords[coordID].needed = true; - const auto &units = parseArg.coords[coordID].units; - const auto &longname = parseArg.coords[coordID].longname; + auto const &units = parseArg.coords[coordID].units; + auto const &longname = parseArg.coords[coordID].longname; params[nvarID].isValid = true; params[nvarID].coord = coord; @@ -1962,7 +1962,7 @@ expr_run_var_grid(const std::string &vnm, int coord, ParseParamType &parseArg) } static int -expr_run_var_zaxis(const std::string &vnm, int coord, ParseParamType &parseArg) +expr_run_var_zaxis(std::string const &vnm, int coord, ParseParamType &parseArg) { auto ¶ms = parseArg.params; @@ -1975,8 +1975,8 @@ expr_run_var_zaxis(const std::string &vnm, int coord, ParseParamType &parseArg) auto coordID = params_get_coord_ID(parseArg, coord, params[varID].zaxisID); parseArg.coords[coordID].needed = true; - const auto &units = parseArg.coords[coordID].units; - const auto &longname = parseArg.coords[coordID].longname; + auto const &units = parseArg.coords[coordID].units; + auto const &longname = parseArg.coords[coordID].longname; params[nvarID].isValid = true; params[nvarID].coord = coord; @@ -1999,9 +1999,9 @@ static nodeType * expr_run_var(nodeType *p, ParseParamType &parseArg) { auto init = parseArg.init; - const auto ¶ms = parseArg.params; + auto const ¶ms = parseArg.params; - const auto &vnm = p->var().name; + auto const &vnm = p->var().name; auto varID = param_search_name(parseArg.numParams, params, vnm); if (varID == -1 && init) { @@ -2054,7 +2054,7 @@ expr_run_fun2(nodeType *p, ParseParamType &parseArg) auto init = parseArg.init; auto funcID = get_funcID(p->fun().name); - const auto &funcEntry = funcSymbolTable[funcID]; + auto const &funcEntry = funcSymbolTable[funcID]; auto fnode1 = expr_run(p->fun().op[0], parseArg); auto fnode2 = expr_run(p->fun().op[1], parseArg); @@ -2073,7 +2073,7 @@ expr_run_fun3(nodeType *p, ParseParamType &parseArg) auto init = parseArg.init; auto funcID = get_funcID(p->fun().name); - const auto &funcEntry = funcSymbolTable[funcID]; + auto const &funcEntry = funcSymbolTable[funcID]; auto fnode1 = expr_run(p->fun().op[0], parseArg); auto fnode2 = expr_run(p->fun().op[1], parseArg); @@ -2089,7 +2089,7 @@ static nodeType * expr_run_fun(nodeType *p, ParseParamType &parseArg) { auto init = parseArg.init; - const auto ¶ms = parseArg.params; + auto const ¶ms = parseArg.params; auto funcID = get_funcID(p->fun().name); auto &funcEntry = funcSymbolTable[funcID]; @@ -2145,7 +2145,7 @@ expr_run_opr(nodeType *p, ParseParamType &parseArg) { auto rnode = expr_run(p->opr().op[1], parseArg); - const auto &varname2 = p->opr().op[0]->var().name; + auto const &varname2 = p->opr().op[0]->var().name; auto isVar = (rnode && rnode->type == NodeEnum::typeVar && rnode->param.ngp > 0 && rnode->param.nlev > 0); if (parseArg.debug) diff --git a/src/expr.h b/src/expr.h index eb4a9b679..4fc3b42a3 100644 --- a/src/expr.h +++ b/src/expr.h @@ -77,7 +77,7 @@ struct funNodeType int nops; // number of operands std::vector<struct nodeType *> op; // operands - funNodeType(const std::string &fname, int _nops, va_list args) : name(fname), nops(_nops) + funNodeType(std::string const &fname, int _nops, va_list args) : name(fname), nops(_nops) { op.resize(nops); for (int i = 0; i < nops; i++) op[i] = va_arg(args, nodeType *); diff --git a/src/expr_fun.cc b/src/expr_fun.cc index 0cd20390c..0114c73ca 100644 --- a/src/expr_fun.cc +++ b/src/expr_fun.cc @@ -14,7 +14,7 @@ #include "expr_yacc.hh" // clang-format off -auto expr_func_con_var = [](auto hasMV, auto n, auto mv, auto cVal, const auto &vIn, auto &vOut, auto binary_operator) +auto expr_func_con_var = [](auto hasMV, auto n, auto mv, auto cVal, auto const &vIn, auto &vOut, auto binary_operator) { if (hasMV) { @@ -38,7 +38,7 @@ auto expr_func_con_var = [](auto hasMV, auto n, auto mv, auto cVal, const auto & } }; -auto expr_mul_con_var = [](auto hasMV, auto n, auto mv, auto cVal, const auto &vIn, auto &vOut) +auto expr_mul_con_var = [](auto hasMV, auto n, auto mv, auto cVal, auto const &vIn, auto &vOut) { if (hasMV) { @@ -62,7 +62,7 @@ auto expr_mul_con_var = [](auto hasMV, auto n, auto mv, auto cVal, const auto &v } }; -auto expr_div_con_var = [](auto hasMV, auto n, auto mv, auto cVal, const auto &vIn, auto &vOut) +auto expr_div_con_var = [](auto hasMV, auto n, auto mv, auto cVal, auto const &vIn, auto &vOut) { if (hasMV) { @@ -86,7 +86,7 @@ auto expr_div_con_var = [](auto hasMV, auto n, auto mv, auto cVal, const auto &v } }; -auto expr_func_var_con = [](auto hasMV, auto n, auto mv, const auto &vIn, auto cVal, auto &vOut, auto binary_operator) +auto expr_func_var_con = [](auto hasMV, auto n, auto mv, auto const &vIn, auto cVal, auto &vOut, auto binary_operator) { if (hasMV) { @@ -110,7 +110,7 @@ auto expr_func_var_con = [](auto hasMV, auto n, auto mv, const auto &vIn, auto c } }; -auto expr_mul_var_con = [](auto hasMV, auto n, auto mv, const auto &vIn, auto cVal, auto &vOut) +auto expr_mul_var_con = [](auto hasMV, auto n, auto mv, auto const &vIn, auto cVal, auto &vOut) { if (hasMV) { @@ -134,7 +134,7 @@ auto expr_mul_var_con = [](auto hasMV, auto n, auto mv, const auto &vIn, auto cV } }; -auto expr_div_var_con = [](auto hasMV, auto n, auto mv, const auto &vIn, auto cVal, auto &vOut) +auto expr_div_var_con = [](auto hasMV, auto n, auto mv, auto const &vIn, auto cVal, auto &vOut) { if (hasMV) { @@ -158,7 +158,7 @@ auto expr_div_var_con = [](auto hasMV, auto n, auto mv, const auto &vIn, auto cV } }; -auto expr_func_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, const auto &vIn1, const auto &vIn2, auto &vOut, auto binary_operator) +auto expr_func_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, auto const &vIn1, auto const &vIn2, auto &vOut, auto binary_operator) { if (hasMV) { @@ -182,7 +182,7 @@ auto expr_func_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, const auto & } }; -auto expr_mul_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, const auto &vIn1, const auto &vIn2, auto &vOut) +auto expr_mul_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, auto const &vIn1, auto const &vIn2, auto &vOut) { if (hasMV) { @@ -212,7 +212,7 @@ auto expr_mul_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, const auto &v } }; -auto expr_div_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, const auto &vIn1, const auto &vIn2, auto &vOut) +auto expr_div_var_var = [](auto hasMV, auto n, auto mv1, auto mv2, auto const &vIn1, auto const &vIn2, auto &vOut) { if (hasMV) { diff --git a/src/factory.cc b/src/factory.cc index 5f85c285f..0c18b1cde 100644 --- a/src/factory.cc +++ b/src/factory.cc @@ -16,7 +16,7 @@ namespace Factory { std::string -err_msg_oper_not_found(const std::string &operatorName) +err_msg_oper_not_found(std::string const &operatorName) { // Checking if the operatorname is an existing file name auto fp = std::fopen(operatorName.c_str(), "r"); @@ -67,13 +67,13 @@ get() } OperatorMap::iterator -find(const std::string &p_operName) +find(std::string const &p_operName) { return find(p_operName, [&p_operName]() { cdo_abort("Operator >%s< not found!", p_operName); }); } OperatorMap::iterator -find(const std::string &p_operName, std::function<void()> p_onError) +find(std::string const &p_operName, std::function<void()> p_onError) { auto &operator_map = get(); auto it = operator_map.find(p_operName); @@ -90,7 +90,7 @@ exists(const std::string arg) } const CdoModule & -get_module(const std::string &p_operName) +get_module(std::string const &p_operName) { auto it = find(p_operName); return it->second.module; @@ -102,7 +102,7 @@ get_module(const OperatorMap::iterator &it) } ModuleConstructor -get_constructor(const std::string &p_operName) +get_constructor(std::string const &p_operName) { auto it = find(p_operName); return it->second.constructor; @@ -115,7 +115,7 @@ get_constructor(const OperatorMap::iterator it) } const CdoHelp & -get_help(const std::string &p_operName) +get_help(std::string const &p_operName) { auto it = find(p_operName, [&p_operName]() { cdo_abort("%s", err_msg_oper_not_found(p_operName)); }); return get_help(it); @@ -169,7 +169,7 @@ similar(const char *a, const char *b, unsigned long alen, unsigned long blen) * Wrapper function for #similar() to parse c++ strings to c strings */ static bool -similar(const std::string &original, const std::string &other) +similar(std::string const &original, std::string const &other) { return (similar(original.c_str(), other.c_str(), original.size(), other.size())); } @@ -181,7 +181,7 @@ similar(const std::string &original, const std::string &other) * with a max length of 75 characters */ std::string -find_similar_operators(const std::string &operatorName) +find_similar_operators(std::string const &operatorName) { std::string found_similar_operators = ""; size_t lines = 1; @@ -190,7 +190,7 @@ find_similar_operators(const std::string &operatorName) if (operatorName != "") { // Searching for similar operator names in operator to module map - for (const auto &str : Factory::get()) + for (auto const &str : Factory::get()) { if (similar(string_to_lower(operatorName), str.first)) { @@ -221,7 +221,7 @@ get_sorted_operator_name_list() auto &factory = Factory::get(); - for (const auto &factory_entry : factory) + for (auto const &factory_entry : factory) { auto &module = factory_entry.second.module; if (module.mode == 1) { names.push_back(factory_entry.first); } @@ -233,7 +233,7 @@ get_sorted_operator_name_list() } std::string -get_original(const std::string &operator_name) +get_original(std::string const &operator_name) { auto module = Factory::get_module(operator_name); auto index = module.is_alias(operator_name); @@ -250,13 +250,13 @@ get_original(const std::string &operator_name) */ OperatorMap::iterator -find_module(const std::string &operator_name) +find_module(std::string const &operator_name) { return Factory::find(operator_name); } std::vector<std::string> -get_module_operator_names(const std::string &module_name) +get_module_operator_names(std::string const &module_name) { std::vector<std::string> operator_names; diff --git a/src/factory.h b/src/factory.h index 9eb4803e0..27bdd6f7e 100644 --- a/src/factory.h +++ b/src/factory.h @@ -20,7 +20,7 @@ namespace Factory { // string -> pair(CdoModule,std::function) -typedef std::function<std::shared_ptr<Process>(int, const std::string &, const std::vector<std::string> &)> ModuleConstructor; +typedef std::function<std::shared_ptr<Process>(int, std::string const &, const std::vector<std::string> &)> ModuleConstructor; struct FactoryEntry { @@ -36,30 +36,30 @@ struct FactoryEntry typedef std::map<std::string, FactoryEntry> OperatorMap; -std::string err_msg_oper_not_found(const std::string &operatorname); +std::string err_msg_oper_not_found(std::string const &operatorname); -std::string find_similar_operators(const std::string &operatorName); +std::string find_similar_operators(std::string const &operatorName); -std::vector<std::string> get_module_operator_names(const std::string &module_name); +std::vector<std::string> get_module_operator_names(std::string const &module_name); -std::string get_original(const std::string &operatorName); +std::string get_original(std::string const &operatorName); std::vector<std::string> get_sorted_operator_name_list(); bool exists(const std::string arg); OperatorMap &get(); // Factory::get() -OperatorMap::iterator find_module(const std::string &operatorName); -OperatorMap::iterator find(const std::string &p_opername); -OperatorMap::iterator find(const std::string &p_opername, std::function<void()> p_onError); +OperatorMap::iterator find_module(std::string const &operatorName); +OperatorMap::iterator find(std::string const &p_opername); +OperatorMap::iterator find(std::string const &p_opername, std::function<void()> p_onError); -const CdoModule &get_module(const std::string &p_operName); +const CdoModule &get_module(std::string const &p_operName); const CdoModule &get_module(const OperatorMap::iterator &it); -ModuleConstructor get_constructor(const std::string &p_operName); +ModuleConstructor get_constructor(std::string const &p_operName); ModuleConstructor get_constructor(const OperatorMap::iterator it); -const CdoHelp &get_help(const std::string &p_operName); +const CdoHelp &get_help(std::string const &p_operName); const CdoHelp &get_help(OperatorMap::iterator p_it); }; // namespace Factory @@ -70,14 +70,14 @@ struct RegisterEntry create_constructor(const CdoModule &mod) { return - [&mod](int p_ID, const std::string &p_operName, const std::vector<std::string> &p_operatorArguments) -> std::shared_ptr<T> { + [&mod](int p_ID, std::string const &p_operName, const std::vector<std::string> &p_operatorArguments) -> std::shared_ptr<T> { Debug(FACTORY, "Creating process via factory function, %d = ID, %s = name, %s = mod_name", p_ID, p_operName, mod.name); auto new_process = std::make_shared<T>(p_ID, p_operName, p_operatorArguments, mod); return new_process; }; } void - register_operator(const CdoModule &mod, const std::string &p_oper_name, ArgumentHandler &arghandler) + register_operator(const CdoModule &mod, std::string const &p_oper_name, ArgumentHandler &arghandler) { Factory::get().insert(std::make_pair(p_oper_name, Factory::FactoryEntry(mod, create_constructor(mod), arghandler))); } diff --git a/src/field.cc b/src/field.cc index 51a7a229c..5a55b47d4 100644 --- a/src/field.cc +++ b/src/field.cc @@ -110,19 +110,19 @@ field_fill(Field &field, double value) } void -field_ncopy(size_t n, const Field &fieldIn, Field &fieldOut) +field_ncopy(size_t n, Field const &fieldIn, Field &fieldOut) { if (n > fieldIn.size) cdo_abort("Source field to small (%s)", __func__); if (n > fieldOut.size) cdo_abort("Target field to small (%s)", __func__); fieldOut.numMissVals = fieldIn.numMissVals; - auto func = [&](const auto &v1, auto &v2) { varray_copy(n, v1, v2); }; + auto func = [&](auto const &v1, auto &v2) { varray_copy(n, v1, v2); }; field_operation2(func, fieldIn, fieldOut); } void -field_copy(const Field &fieldIn, Field &fieldOut) +field_copy(Field const &fieldIn, Field &fieldOut) { field_ncopy(fieldIn.size, fieldIn, fieldOut); } @@ -152,7 +152,7 @@ field_add(Field &field1, const Field3D &field2, int levelID) { auto size = field1.gridsize * field1.nwpv; auto offset = levelID * size; - auto func = [&](auto &v1, const auto &v2) { + auto func = [&](auto &v1, auto const &v2) { for (size_t i = 0; i < size; ++i) v1[i] += v2[offset + i]; }; field_operation2(func, field1, field2); @@ -187,9 +187,9 @@ public: }; size_t -field_num_NANs(const Field &field) +field_num_NANs(Field const &field) { - auto func = [&](const auto &v, auto n) { + auto func = [&](auto const &v, auto n) { size_t numNANs = 0; #ifdef HAVE_OPENMP4 #pragma omp parallel for simd if (n > cdoMinLoopSize) default(shared) schedule(static) reduction(+ : numNANs) @@ -203,140 +203,140 @@ field_num_NANs(const Field &field) size_t field_num_mv(Field &field) { - auto func = [](const auto &v, auto n, auto mv) { return varray_num_mv(n, v, mv); }; + auto func = [](auto const &v, auto n, auto mv) { return varray_num_mv(n, v, mv); }; field.numMissVals = field_operation(func, field, field.size, field.missval); return field.numMissVals; } MinMax -field_min_max(const Field &field) +field_min_max(Field const &field) { - auto func = [](const auto &v) { return varray_min_max(v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_min_max_mv(n, v, mv); }; + auto func = [](auto const &v) { return varray_min_max(v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_min_max_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field); } double -field_min(const Field &field) +field_min(Field const &field) { - auto func = [](const auto &v, auto n) { return varray_min(n, v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_min_mv(n, v, mv); }; + auto func = [](auto const &v, auto n) { return varray_min(n, v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_min_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field, field.size); } double -field_max(const Field &field) +field_max(Field const &field) { - auto func = [](const auto &v, auto n) { return varray_max(n, v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_max_mv(n, v, mv); }; + auto func = [](auto const &v, auto n) { return varray_max(n, v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_max_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field, field.size); } double -field_range(const Field &field) +field_range(Field const &field) { - auto func = [](const auto &v, auto n) { return varray_range(n, v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_range_mv(n, v, mv); }; + auto func = [](auto const &v, auto n) { return varray_range(n, v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_range_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field, field.size); } double -field_sum(const Field &field) +field_sum(Field const &field) { - auto func = [](const auto &v, auto n) { return varray_sum(n, v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_sum_mv(n, v, mv); }; + auto func = [](auto const &v, auto n) { return varray_sum(n, v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_sum_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field, field.size); } double -field_mean(const Field &field) +field_mean(Field const &field) { - auto func = [](const auto &v, auto n) { return varray_mean(n, v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_mean_mv(n, v, mv); }; + auto func = [](auto const &v, auto n) { return varray_mean(n, v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_mean_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field, field.size); } double -field_meanw(const Field &field) +field_meanw(Field const &field) { - auto func = [](const auto &v, auto n, auto mv, const auto &w) { return varray_weighted_mean(n, v, w, mv); }; - auto func_mv = [](const auto &v, auto n, auto mv, const auto &w) { return varray_weighted_mean_mv(n, v, w, mv); }; + auto func = [](auto const &v, auto n, auto mv, auto const &w) { return varray_weighted_mean(n, v, w, mv); }; + auto func_mv = [](auto const &v, auto n, auto mv, auto const &w) { return varray_weighted_mean_mv(n, v, w, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval, field.weightv) : field_operation(func, field, field.size, field.missval, field.weightv); } double -field_avg(const Field &field) +field_avg(Field const &field) { - auto func = [](const auto &v, auto n) { return varray_mean(n, v); }; - auto func_mv = [](const auto &v, auto n, auto mv) { return varray_avg_mv(n, v, mv); }; + auto func = [](auto const &v, auto n) { return varray_mean(n, v); }; + auto func_mv = [](auto const &v, auto n, auto mv) { return varray_avg_mv(n, v, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval) : field_operation(func, field, field.size); } double -field_avgw(const Field &field) +field_avgw(Field const &field) { - auto func = [](const auto &v, auto n, auto mv, const auto &w) { return varray_weighted_mean(n, v, w, mv); }; - auto func_mv = [](const auto &v, auto n, auto mv, const auto &w) { return varray_weighted_avg_mv(n, v, w, mv); }; + auto func = [](auto const &v, auto n, auto mv, auto const &w) { return varray_weighted_mean(n, v, w, mv); }; + auto func_mv = [](auto const &v, auto n, auto mv, auto const &w) { return varray_weighted_avg_mv(n, v, w, mv); }; return field.numMissVals ? field_operation(func_mv, field, field.size, field.missval, field.weightv) : field_operation(func, field, field.size, field.missval, field.weightv); } double -field_var(const Field &field) +field_var(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv) { return varray_var(n, v, numMissVals, mv); }; + auto func = [](auto const &v, auto n, auto numMissVals, auto mv) { return varray_var(n, v, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval); } double -field_var1(const Field &field) +field_var1(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv) { return varray_var_1(n, v, numMissVals, mv); }; + auto func = [](auto const &v, auto n, auto numMissVals, auto mv) { return varray_var_1(n, v, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval); } double -field_skew(const Field &field) +field_skew(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv) { return varray_skew(n, v, numMissVals, mv); }; + auto func = [](auto const &v, auto n, auto numMissVals, auto mv) { return varray_skew(n, v, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval); } double -field_kurt(const Field &field) +field_kurt(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv) { return varray_kurt(n, v, numMissVals, mv); }; + auto func = [](auto const &v, auto n, auto numMissVals, auto mv) { return varray_kurt(n, v, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval); } double -field_median(const Field &field) +field_median(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv) { return varray_median(n, v, numMissVals, mv); }; + auto func = [](auto const &v, auto n, auto numMissVals, auto mv) { return varray_median(n, v, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval); } double -field_count(const Field &field) +field_count(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv) { return varray_count(n, v, numMissVals, mv); }; + auto func = [](auto const &v, auto n, auto numMissVals, auto mv) { return varray_count(n, v, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval); } double -field_varw(const Field &field) +field_varw(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv, const auto &w) { + auto func = [](auto const &v, auto n, auto numMissVals, auto mv, auto const &w) { return varray_weighted_var(n, v, w, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval, field.weightv); } double -field_var1w(const Field &field) +field_var1w(Field const &field) { - auto func = [](const auto &v, auto n, auto numMissVals, auto mv, const auto &w) { + auto func = [](auto const &v, auto n, auto numMissVals, auto mv, auto const &w) { return varray_weighted_var_1(n, v, w, numMissVals, mv); }; return field_operation(func, field, field.size, field.numMissVals, field.missval, field.weightv); @@ -351,31 +351,31 @@ var_to_std(double rvar, double missval) } double -field_std(const Field &field) +field_std(Field const &field) { return var_to_std(field_var(field), field.missval); } double -field_std1(const Field &field) +field_std1(Field const &field) { return var_to_std(field_var1(field), field.missval); } double -field_stdw(const Field &field) +field_stdw(Field const &field) { return var_to_std(field_varw(field), field.missval); } double -field_std1w(const Field &field) +field_std1w(Field const &field) { return var_to_std(field_var1w(field), field.missval); } void -field_rms(const Field &field, const Field &field2, Field &field3) +field_rms(Field const &field, Field const &field2, Field &field3) { size_t rnumMissVals = 0; auto grid1 = field.grid; @@ -386,7 +386,7 @@ field_rms(const Field &field, const Field &field2, Field &field3) const auto array2 = field2.vec_d.data(); auto missval1 = field.missval; auto missval2 = field2.missval; - const auto &w = field.weightv; + auto const &w = field.weightv; auto rsum = 0.0, rsumw = 0.0; auto is_NE = fp_is_not_equal; auto is_EQ = fp_is_equal; @@ -493,7 +493,7 @@ field_rank(Field &field) } double -field_function(const Field &field, int function) +field_function(Field const &field, int function) { // clang-format off switch (function) diff --git a/src/field.h b/src/field.h index efde597f4..c2fa4dc5c 100644 --- a/src/field.h +++ b/src/field.h @@ -174,18 +174,18 @@ using FieldVector3D = std::vector<FieldVector2D>; using Field3DVector = std::vector<Field3D>; void field_fill(Field &field, double value); -void field_ncopy(size_t n, const Field &fieldIn, Field &fieldOut); -void field_copy(const Field &fieldIn, Field &fieldOut); +void field_ncopy(size_t n, Field const &fieldIn, Field &fieldOut); +void field_copy(Field const &fieldIn, Field &fieldOut); void field_copy(const Field3D &fieldIn, Field3D &fieldOut); void field_copy(const Field3D &fieldIn, int levelID, Field &fieldOut); void field_add(Field &field1, const Field3D &field2, int levelID); -size_t field_num_NANs(const Field &field); +size_t field_num_NANs(Field const &field); size_t field_num_mv(Field &field); -MinMax field_min_max(const Field &field); +MinMax field_min_max(Field const &field); template <class UnaryOperation> void -field_transform(const Field &fieldIn, Field &fieldOut, UnaryOperation unary_op) +field_transform(Field const &fieldIn, Field &fieldOut, UnaryOperation unary_op) { if (fieldIn.memType == MemType::Float && fieldOut.memType == MemType::Float) varray_transform(fieldIn.vec_f, fieldOut.vec_f, unary_op); diff --git a/src/field2.cc b/src/field2.cc index 1f271594d..8f10cc98c 100644 --- a/src/field2.cc +++ b/src/field2.cc @@ -82,7 +82,7 @@ varray2_arith(Varray<T1> &v1, const Varray<T2> &v2, size_t n, FUNC func) for (size_t i = 0; i < n; ++i) { v1[i] = func(v1[i], v2[i]); } } -auto varray2_func = [](auto &v1, const auto &v2, size_t n, auto arith_func) { varray2_arith(v1, v2, n, arith_func); }; +auto varray2_func = [](auto &v1, auto const &v2, size_t n, auto arith_func) { varray2_arith(v1, v2, n, arith_func); }; template <typename T1, typename T2, typename FUNC> static void @@ -113,13 +113,13 @@ varray2_arith_mv(Varray<T1> &v1, const Varray<T2> &v2, size_t n, double missval1 } } -auto varray2_func_mv = [](auto &v1, const auto &v2, size_t n, double mv1, double mv2, auto arith_mv_func) { +auto varray2_func_mv = [](auto &v1, auto const &v2, size_t n, double mv1, double mv2, auto arith_mv_func) { varray2_arith_mv(v1, v2, n, mv1, mv2, arith_mv_func); }; // init valid values void -field2_vinit(Field &field1, const Field &field2) +field2_vinit(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -129,7 +129,7 @@ field2_vinit(Field &field1, const Field &field2) // increment valid values void -field2_vincr(Field &field1, const Field &field2) +field2_vincr(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -147,7 +147,7 @@ field2_vinit(Varray<T1> &v1, const Varray<T2> &v2, size_t len, double mv, int vi } void -field2_vinit(Field &field1, const Field &field2, int vinit) +field2_vinit(Field &field1, Field const &field2, int vinit) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); /* @@ -156,7 +156,7 @@ field2_vinit(Field &field1, const Field &field2, int vinit) for (size_t i = 0; i < n; ++i) v1[i] = (fp_is_equal(v2[i], missval)) ? 0 : vinit; }; */ - auto func = [&](auto &v1, const auto &v2, size_t n, double mv) { field2_vinit(v1, v2, n, mv, vinit); }; + auto func = [&](auto &v1, auto const &v2, size_t n, double mv) { field2_vinit(v1, v2, n, mv, vinit); }; field_operation2(func, field1, field2, field2.size, field2.missval); field1.numMissVals = field2.numMissVals; @@ -173,18 +173,18 @@ field2_vincr(Varray<T1> &v1, const Varray<T2> &v2, size_t len, double mv, int vi } void -field2_vincr(Field &field1, const Field &field2, int vincr) +field2_vincr(Field &field1, Field const &field2, int vincr) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); - auto func = [&](auto &v1, const auto &v2, size_t n, double mv) { field2_vincr(v1, v2, n, mv, vincr); }; + auto func = [&](auto &v1, auto const &v2, size_t n, double mv) { field2_vincr(v1, v2, n, mv, vincr); }; field_operation2(func, field1, field2, field2.size, field2.missval); field1.numMissVals = field2.numMissVals; } void -field2_add(Field &field1, const Field &field2) +field2_add(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -197,7 +197,7 @@ field2_add(Field &field1, const Field &field2) } void -field2_sum(Field &field1, const Field &field2) +field2_sum(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -210,12 +210,12 @@ field2_sum(Field &field1, const Field &field2) } void -field2_sumw(Field &field1, const Field &field2, double w) +field2_sumw(Field &field1, Field const &field2, double w) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -253,12 +253,12 @@ field2_sumw(Field &field1, const Field &field2, double w) * change anything (they do not start a non-period by setting occurrence to zero). */ void -field2_sumtr(Field &occur, const Field &field, double refval) +field2_sumtr(Field &occur, Field const &field, double refval) { auto omissval = occur.missval; auto fmissval = field.missval; auto &oarray = occur.vec_d; - const auto &farray = field.vec_d; + auto const &farray = field.vec_d; auto len = occur.size; if (len != field.size) cdo_abort("Fields have different size (%s)", __func__); @@ -293,7 +293,7 @@ field2_sumtr(Field &occur, const Field &field, double refval) } void -field2_sumq(Field &field1, const Field &field2) +field2_sumq(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -306,19 +306,19 @@ field2_sumq(Field &field1, const Field &field2) } void -field2_sumsumq(Field &field1, Field &field2, const Field &field3) +field2_sumsumq(Field &field1, Field &field2, Field const &field3) { field2_sumq(field2, field3); field2_sum(field1, field3); } void -field2_sumqw(Field &field1, const Field &field2, double w) +field2_sumqw(Field &field1, Field const &field2, double w) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -349,7 +349,7 @@ field2_sumqw(Field &field1, const Field &field2, double w) } void -field2_sub(Field &field1, const Field &field2) +field2_sub(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -362,7 +362,7 @@ field2_sub(Field &field1, const Field &field2) } void -field2_mul(Field &field1, const Field &field2) +field2_mul(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -375,7 +375,7 @@ field2_mul(Field &field1, const Field &field2) } void -field2_div(Field &field1, const Field &field2) +field2_div(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -386,14 +386,14 @@ field2_div(Field &field1, const Field &field2) } else { - auto func = [](auto &v1, const auto &v2, size_t n, double mv) { varray2_div(v1, v2, n, mv); }; + auto func = [](auto &v1, auto const &v2, size_t n, double mv) { varray2_div(v1, v2, n, mv); }; field_operation2(func, field1, field2, field1.size, field1.missval); field_num_mv(field1); } } void -field2_atan2(Field &field1, const Field &field2) +field2_atan2(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -402,7 +402,7 @@ field2_atan2(Field &field1, const Field &field2) } void -field2_set_miss(Field &field1, const Field &field2) +field2_set_miss(Field &field1, Field const &field2) { auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -411,7 +411,7 @@ field2_set_miss(Field &field1, const Field &field2) { auto missval1 = field1.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; for (size_t i = 0; i < len; ++i) array1[i] = fp_is_equal(array1[i], missval1) ? array2[i] : array1[i]; @@ -420,7 +420,7 @@ field2_set_miss(Field &field1, const Field &field2) } void -field2_min(Field &field1, const Field &field2) +field2_min(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -433,7 +433,7 @@ field2_min(Field &field1, const Field &field2) } void -field2_max(Field &field1, const Field &field2) +field2_max(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -446,7 +446,7 @@ field2_max(Field &field1, const Field &field2) } void -field2_maxmin(Field &field1, Field &field2, const Field &field3) +field2_maxmin(Field &field1, Field &field2, Field const &field3) { field2_min(field2, field3); field2_max(field1, field3); @@ -459,7 +459,7 @@ auto field2_set_index = [](auto &v1, auto &v2, auto v3, auto idx) { template <typename T> void -field2_minidx(size_t numMissVals3, size_t len, double mv3, Field &field1, Field &field2, const Varray<T> &v3, int idx) +field2_minidx(size_t numMissVals3, size_t len, double mv3, Field &field1, Field &field2, Varray<T> const &v3, int idx) { T missval3 = mv3; auto missval1 = field1.missval; @@ -491,17 +491,17 @@ field2_minidx(size_t numMissVals3, size_t len, double mv3, Field &field1, Field } void -field2_minidx(Field &field1, Field &field2, const Field &field3, int idx) +field2_minidx(Field &field1, Field &field2, Field const &field3, int idx) { if (field1.size != field3.size) cdo_abort("Fields have different size (%s)", __func__); if (field2.size != field3.size) cdo_abort("Fields have different size (%s)", __func__); - auto func = [&](const auto &v3) { field2_minidx(field3.numMissVals, field3.size, field3.missval, field1, field2, v3, idx); }; + auto func = [&](auto const &v3) { field2_minidx(field3.numMissVals, field3.size, field3.missval, field1, field2, v3, idx); }; field_operation(func, field3); } template <typename T> void -field2_maxidx(size_t numMissVals3, size_t len, double mv3, Field &field1, Field &field2, const Varray<T> &v3, int idx) +field2_maxidx(size_t numMissVals3, size_t len, double mv3, Field &field1, Field &field2, Varray<T> const &v3, int idx) { T missval3 = mv3; auto missval1 = field1.missval; @@ -533,11 +533,11 @@ field2_maxidx(size_t numMissVals3, size_t len, double mv3, Field &field1, Field } void -field2_maxidx(Field &field1, Field &field2, const Field &field3, int idx) +field2_maxidx(Field &field1, Field &field2, Field const &field3, int idx) { if (field1.size != field3.size) cdo_abort("Fields have different size (%s)", __func__); if (field2.size != field3.size) cdo_abort("Fields have different size (%s)", __func__); - auto func = [&](const auto &v3) { field2_maxidx(field3.numMissVals, field3.size, field3.missval, field1, field2, v3, idx); }; + auto func = [&](auto const &v3) { field2_maxidx(field3.numMissVals, field3.size, field3.missval, field1, field2, v3, idx); }; field_operation(func, field3); } @@ -569,13 +569,13 @@ field_set_numMissVals(size_t len, Varray<double> &v, double missval) } void -field2_var(Field &field1, const Field &field2, const Field &field3, int divisor) +field2_var(Field &field1, Field const &field2, Field const &field3, int divisor) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; - const auto &array3 = field3.vec_d; + auto const &array2 = field2.vec_d; + auto const &array3 = field3.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -605,7 +605,7 @@ field2_var(Field &field1, const Field &field2, const Field &field3, int divisor) } void -field2_std(Field &field1, const Field &field2, const Field &field3, int divisor) +field2_std(Field &field1, Field const &field2, Field const &field3, int divisor) { auto missval1 = field1.missval; auto &array1 = field1.vec_d; @@ -627,13 +627,13 @@ field2_std(Field &field1, const Field &field2, const Field &field3, int divisor) } void -fieldc_var(Field &field1, const Field &field2, int numSets, int divisor) +fieldc_var(Field &field1, Field const &field2, int numSets, int divisor) { auto nsetx = numSets - divisor; auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -666,7 +666,7 @@ fieldc_var(Field &field1, const Field &field2, int numSets, int divisor) } void -fieldc_std(Field &field1, const Field &field2, int numSets, int divisor) +fieldc_std(Field &field1, Field const &field2, int numSets, int divisor) { auto missval1 = field1.missval; auto &array1 = field1.vec_d; @@ -689,12 +689,12 @@ fieldc_std(Field &field1, const Field &field2, int numSets, int divisor) } void -field2_moq(Field &field1, const Field &field2) +field2_moq(Field &field1, Field const &field2) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -716,12 +716,12 @@ field2_moq(Field &field1, const Field &field2) } void -field2_moqw(Field &field1, const Field &field2, double w) +field2_moqw(Field &field1, Field const &field2, double w) { auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; auto len = field1.size; if (len != field2.size) cdo_abort("Fields have different size (%s)", __func__); @@ -784,13 +784,13 @@ varray_count(Varray<T> &v, size_t len) } void -field2_count(Field &field1, const Field &field2) +field2_count(Field &field1, Field const &field2) { if (field1.size != field2.size) cdo_abort("Fields have different size (%s)", __func__); if (field1.numMissVals || field2.numMissVals) { - auto func = [](auto &v1, const auto &v2, size_t n, double mv1, double mv2) { varray2_count_mv(v1, v2, n, mv1, mv2); }; + auto func = [](auto &v1, auto const &v2, size_t n, double mv1, double mv2) { varray2_count_mv(v1, v2, n, mv1, mv2); }; field_operation2(func, field1, field2, field1.size, field1.missval, field2.missval); field_num_mv(field1); } @@ -802,7 +802,7 @@ field2_count(Field &field1, const Field &field2) } void -field2_function(Field &field1, const Field &field2, int function) +field2_function(Field &field1, Field const &field2, int function) { // clang-format off switch (function) diff --git a/src/field2_complex.cc b/src/field2_complex.cc index e811ce5b9..c91a19d78 100644 --- a/src/field2_complex.cc +++ b/src/field2_complex.cc @@ -12,13 +12,13 @@ #include "cdo_output.h" static void -field2_add_complex(Field &field1, const Field &field2) +field2_add_complex(Field &field1, Field const &field2) { auto is_EQ = fp_is_equal; auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; if (field1.nwpv != 2) cdo_abort("Field1 is not complex!"); if (field2.nwpv != 2) cdo_abort("Field2 is not complex!"); @@ -34,13 +34,13 @@ field2_add_complex(Field &field1, const Field &field2) } static void -field2_sub_complex(Field &field1, const Field &field2) +field2_sub_complex(Field &field1, Field const &field2) { auto is_EQ = fp_is_equal; auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; if (field1.nwpv != 2) cdo_abort("Field1 is not complex!"); if (field2.nwpv != 2) cdo_abort("Field2 is not complex!"); @@ -56,13 +56,13 @@ field2_sub_complex(Field &field1, const Field &field2) } static void -field2_mul_complex(Field &field1, const Field &field2) +field2_mul_complex(Field &field1, Field const &field2) { auto is_EQ = fp_is_equal; auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; if (field1.nwpv != 2) cdo_abort("Field1 is not complex!"); if (field2.nwpv != 2) cdo_abort("Field2 is not complex!"); @@ -81,13 +81,13 @@ field2_mul_complex(Field &field1, const Field &field2) } static void -field2_div_complex(Field &field1, const Field &field2) +field2_div_complex(Field &field1, Field const &field2) { auto is_EQ = fp_is_equal; auto missval1 = field1.missval; auto missval2 = field2.missval; auto &array1 = field1.vec_d; - const auto &array2 = field2.vec_d; + auto const &array2 = field2.vec_d; if (field1.nwpv != 2) cdo_abort("Field1 is not complex!"); if (field2.nwpv != 2) cdo_abort("Field2 is not complex!"); @@ -107,7 +107,7 @@ field2_div_complex(Field &field1, const Field &field2) } void -field2_function_complex(Field &field1, const Field &field2, int function) +field2_function_complex(Field &field1, Field const &field2, int function) { // clang-format off switch (function) diff --git a/src/field_functions.h b/src/field_functions.h index a4db6fd18..b6bf9b0fa 100644 --- a/src/field_functions.h +++ b/src/field_functions.h @@ -75,28 +75,28 @@ void field1Dlevels_init(FieldVector &field1D, const VarList &varList); void field1Dlevels_init(FieldVector &field1D, const VarList &varList, int ptype); // field.cc -double field_function(const Field &field, int function); - -double field_min(const Field &field); -double field_range(const Field &field); -double field_max(const Field &field); -double field_sum(const Field &field); -double field_mean(const Field &field); -double field_meanw(const Field &field); -double field_avg(const Field &field); -double field_avgw(const Field &field); -double field_std(const Field &field); -double field_std1(const Field &field); -double field_var(const Field &field); -double field_var1(const Field &field); -double field_stdw(const Field &field); -double field_std1w(const Field &field); -double field_varw(const Field &field); -double field_var1w(const Field &field); -double field_skew(const Field &field); -double field_kurt(const Field &field); -double field_median(const Field &field); -double field_count(const Field &field); +double field_function(Field const &field, int function); + +double field_min(Field const &field); +double field_range(Field const &field); +double field_max(Field const &field); +double field_sum(Field const &field); +double field_mean(Field const &field); +double field_meanw(Field const &field); +double field_avg(Field const &field); +double field_avgw(Field const &field); +double field_std(Field const &field); +double field_std1(Field const &field); +double field_var(Field const &field); +double field_var1(Field const &field); +double field_stdw(Field const &field); +double field_std1w(Field const &field); +double field_varw(Field const &field); +double field_var1w(Field const &field); +double field_skew(Field const &field); +double field_kurt(Field const &field); +double field_median(Field const &field); +double field_count(Field const &field); // ENS validation double field_rank(Field &field); @@ -104,27 +104,27 @@ double field_rank(Field &field); double field_pctl(Field &field, double pn); // field_zonal.cc -void zonal_function(const Field &field1, Field &field2, int function); -void zonal_min(const Field &field1, Field &field2); -void zonal_max(const Field &field1, Field &field2); -void zonal_range(const Field &field1, Field &field2); -void zonal_sum(const Field &field1, Field &field2); -void zonal_avg(const Field &field1, Field &field2); -void zonal_mean(const Field &field1, Field &field2); -void zonal_std(const Field &field1, Field &field2); -void zonal_std1(const Field &field1, Field &field2); -void zonal_var(const Field &field1, Field &field2); -void zonal_var1(const Field &field1, Field &field2); -void zonal_skew(const Field &field1, Field &field2); -void zonal_kurt(const Field &field1, Field &field2); -void zonal_median(const Field &field1, Field &field2); -void zonal_pctl(const Field &field1, Field &field2, double pn); +void zonal_function(Field const &field1, Field &field2, int function); +void zonal_min(Field const &field1, Field &field2); +void zonal_max(Field const &field1, Field &field2); +void zonal_range(Field const &field1, Field &field2); +void zonal_sum(Field const &field1, Field &field2); +void zonal_avg(Field const &field1, Field &field2); +void zonal_mean(Field const &field1, Field &field2); +void zonal_std(Field const &field1, Field &field2); +void zonal_std1(Field const &field1, Field &field2); +void zonal_var(Field const &field1, Field &field2); +void zonal_var1(Field const &field1, Field &field2); +void zonal_skew(Field const &field1, Field &field2); +void zonal_kurt(Field const &field1, Field &field2); +void zonal_median(Field const &field1, Field &field2); +void zonal_pctl(Field const &field1, Field &field2, double pn); // field_meridional.cc -void meridional_function(const Field &field1, Field &field2, int function); -void meridional_pctl(const Field &field1, Field &field2, double pn); +void meridional_function(Field const &field1, Field &field2, int function); +void meridional_pctl(Field const &field1, Field &field2, double pn); -void field_rms(const Field &field1, const Field &field2, Field &field3); +void field_rms(Field const &field1, Field const &field2, Field &field3); // fieldc.cc void fieldc_function(Field &field, double rconst, int function); @@ -141,40 +141,40 @@ void fieldc_mod(Field &field, double divisor); void fieldc_function_complex(Field &field, const double rconstcplx[2], int function); // field2.cc -void field2_function(Field &field1, const Field &field2, int function); - -void field2_add(Field &field1, const Field &field2); -void field2_sum(Field &field1, const Field &field2); -void field2_sub(Field &field1, const Field &field2); -void field2_mul(Field &field1, const Field &field2); -void field2_div(Field &field1, const Field &field2); -void field2_min(Field &field1, const Field &field2); -void field2_max(Field &field1, const Field &field2); -void field2_atan2(Field &field1, const Field &field2); - -void field2_sumq(Field &field1, const Field &field2); -void field2_sumw(Field &field1, const Field &field2, double w); -void field2_sumqw(Field &field1, const Field &field2, double w); -void field2_sumtr(Field &field1, const Field &field2, double refval); -void field2_vinit(Field &field1, const Field &field2); -void field2_vincr(Field &field1, const Field &field2); -void field2_vinit(Field &field1, const Field &field2, int vinit); -void field2_vincr(Field &field1, const Field &field2, int vincr); - -void field2_sumsumq(Field &field1, Field &field2, const Field &field3); -void field2_maxmin(Field &field1, Field &field2, const Field &field3); -void field2_minidx(Field &field1, Field &field2, const Field &field3, int idx); -void field2_maxidx(Field &field1, Field &field2, const Field &field3, int idx); -void field2_var(Field &field1, const Field &field2, const Field &field3, int divisor); -void field2_std(Field &field1, const Field &field2, const Field &field3, int divisor); -void fieldc_var(Field &field1, const Field &field2, int numSets, int divisor); -void fieldc_std(Field &field1, const Field &field2, int numSets, int divisor); -void field2_moq(Field &field1, const Field &field2); -void field2_moqw(Field &field1, const Field &field2, double w); - -void field2_count(Field &field1, const Field &field2); +void field2_function(Field &field1, Field const &field2, int function); + +void field2_add(Field &field1, Field const &field2); +void field2_sum(Field &field1, Field const &field2); +void field2_sub(Field &field1, Field const &field2); +void field2_mul(Field &field1, Field const &field2); +void field2_div(Field &field1, Field const &field2); +void field2_min(Field &field1, Field const &field2); +void field2_max(Field &field1, Field const &field2); +void field2_atan2(Field &field1, Field const &field2); + +void field2_sumq(Field &field1, Field const &field2); +void field2_sumw(Field &field1, Field const &field2, double w); +void field2_sumqw(Field &field1, Field const &field2, double w); +void field2_sumtr(Field &field1, Field const &field2, double refval); +void field2_vinit(Field &field1, Field const &field2); +void field2_vincr(Field &field1, Field const &field2); +void field2_vinit(Field &field1, Field const &field2, int vinit); +void field2_vincr(Field &field1, Field const &field2, int vincr); + +void field2_sumsumq(Field &field1, Field &field2, Field const &field3); +void field2_maxmin(Field &field1, Field &field2, Field const &field3); +void field2_minidx(Field &field1, Field &field2, Field const &field3, int idx); +void field2_maxidx(Field &field1, Field &field2, Field const &field3, int idx); +void field2_var(Field &field1, Field const &field2, Field const &field3, int divisor); +void field2_std(Field &field1, Field const &field2, Field const &field3, int divisor); +void fieldc_var(Field &field1, Field const &field2, int numSets, int divisor); +void fieldc_std(Field &field1, Field const &field2, int numSets, int divisor); +void field2_moq(Field &field1, Field const &field2); +void field2_moqw(Field &field1, Field const &field2, double w); + +void field2_count(Field &field1, Field const &field2); // field2_complex.cc -void field2_function_complex(Field &field1, const Field &field2, int function); +void field2_function_complex(Field &field1, Field const &field2, int function); #endif /* FIELD_FUNCTIONS_H */ diff --git a/src/field_memory.cc b/src/field_memory.cc index 6de4f594f..f25e780db 100644 --- a/src/field_memory.cc +++ b/src/field_memory.cc @@ -17,7 +17,7 @@ field2D_init_kernel(FieldVector2D &field2D, const VarList &varList, int ptype, b auto numVars = varList.numVars(); field2D.resize(numVars); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { auto gridSize = var.gridsize; auto size = gridSize * var.nwpv; @@ -89,7 +89,7 @@ field1Dvars_init_kernel(FieldVector &field1D, const VarList &varList, int ptype, auto numVars = varList.numVars(); field1D.resize(numVars); - for (const auto &var : varList.vars) + for (auto const &var : varList.vars) { auto gridSize = var.gridsize; auto size = gridSize * var.nwpv; @@ -148,7 +148,7 @@ field1Dlevels_init_kernel(FieldVector &field1D, const VarList &varList, int ptyp { auto allocateData = (ptype & FIELD_VEC); - const auto &var = varList.vars[0]; + auto const &var = varList.vars[0]; auto gridSize = var.gridsize; auto size = gridSize * var.nwpv; auto numLevels = var.nlevels; diff --git a/src/field_meridional.cc b/src/field_meridional.cc index 06d03927f..c76829e09 100644 --- a/src/field_meridional.cc +++ b/src/field_meridional.cc @@ -11,22 +11,22 @@ #include "field_functions.h" #include "cdo_output.h" -using funcType1 = double(size_t, const Varray<double> &); -using funcTypeMV1 = double(size_t, const Varray<double> &, double); -using funcType2 = double(size_t, const Varray<double> &, const Varray<double> &, double); -using funcTypeMV2 = double(size_t, const Varray<double> &, const Varray<double> &, double); -using funcType3 = double(size_t, const Varray<double> &, const Varray<double> &, size_t, double); -using funcType4 = double(size_t, const Varray<double> &, size_t, double); +using funcType1 = double(size_t, Varray<double> const &); +using funcTypeMV1 = double(size_t, Varray<double> const &, double); +using funcType2 = double(size_t, Varray<double> const &, Varray<double> const &, double); +using funcTypeMV2 = double(size_t, Varray<double> const &, Varray<double> const &, double); +using funcType3 = double(size_t, Varray<double> const &, Varray<double> const &, size_t, double); +using funcType4 = double(size_t, Varray<double> const &, size_t, double); template <typename T> static void -varray_copy_meridional(size_t i, size_t nx, size_t ny, const Varray<T> &v1, Varray<double> &v2) +varray_copy_meridional(size_t i, size_t nx, size_t ny, Varray<T> const &v1, Varray<double> &v2) { for (size_t j = 0; j < ny; ++j) v2[j] = v1[j * nx + i]; } static void -meridional_kernel_1(const Field &field1, Field &field2, funcType1 func, funcTypeMV1 funcMV) +meridional_kernel_1(Field const &field1, Field &field2, funcType1 func, funcTypeMV1 funcMV) { size_t rnumMissVals = 0; auto numMissVals = field1.numMissVals; @@ -38,7 +38,7 @@ meridional_kernel_1(const Field &field1, Field &field2, funcType1 func, funcType for (size_t i = 0; i < nx; ++i) { - auto func_copy_meridional = [&](const auto &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; + auto func_copy_meridional = [&](auto const &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; field_operation(func_copy_meridional, field1); auto result = numMissVals ? funcMV(ny, v, missval) : func(ny, v); @@ -50,7 +50,7 @@ meridional_kernel_1(const Field &field1, Field &field2, funcType1 func, funcType } static void -meridional_kernel_2(const Field &field1, Field &field2, funcType2 func, funcTypeMV2 funcMV) +meridional_kernel_2(Field const &field1, Field &field2, funcType2 func, funcTypeMV2 funcMV) { size_t rnumMissVals = 0; auto numMissVals = field1.numMissVals; @@ -63,7 +63,7 @@ meridional_kernel_2(const Field &field1, Field &field2, funcType2 func, funcType for (size_t i = 0; i < nx; ++i) { varray_copy_meridional(i, nx, ny, field1.weightv, w); - auto func_copy_meridional = [&](const auto &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; + auto func_copy_meridional = [&](auto const &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; field_operation(func_copy_meridional, field1); auto result = numMissVals ? funcMV(ny, v, w, missval) : func(ny, v, w, missval); @@ -75,7 +75,7 @@ meridional_kernel_2(const Field &field1, Field &field2, funcType2 func, funcType } static void -meridional_kernel_3(const Field &field1, Field &field2, funcType3 func) +meridional_kernel_3(Field const &field1, Field &field2, funcType3 func) { size_t rnumMissVals = 0; auto numMissVals = field1.numMissVals; @@ -88,7 +88,7 @@ meridional_kernel_3(const Field &field1, Field &field2, funcType3 func) for (size_t i = 0; i < nx; ++i) { varray_copy_meridional(i, nx, ny, field1.weightv, w); - auto func_copy_meridional = [&](const auto &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; + auto func_copy_meridional = [&](auto const &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; field_operation(func_copy_meridional, field1); auto result = func(ny, v, w, numMissVals, missval); @@ -100,7 +100,7 @@ meridional_kernel_3(const Field &field1, Field &field2, funcType3 func) } static void -meridional_kernel_4(const Field &field1, Field &field2, funcType4 func) +meridional_kernel_4(Field const &field1, Field &field2, funcType4 func) { size_t rnumMissVals = 0; auto numMissVals = field1.numMissVals; @@ -112,7 +112,7 @@ meridional_kernel_4(const Field &field1, Field &field2, funcType4 func) for (size_t i = 0; i < nx; ++i) { - auto func_copy_meridional = [&](const auto &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; + auto func_copy_meridional = [&](auto const &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; field_operation(func_copy_meridional, field1); auto numMissval = ny - varray_count(ny, v, numMissVals, missval); @@ -125,55 +125,55 @@ meridional_kernel_4(const Field &field1, Field &field2, funcType4 func) } static void -meridional_min(const Field &field1, Field &field2) +meridional_min(Field const &field1, Field &field2) { meridional_kernel_1(field1, field2, varray_min, varray_min_mv); } static void -meridional_max(const Field &field1, Field &field2) +meridional_max(Field const &field1, Field &field2) { meridional_kernel_1(field1, field2, varray_max, varray_max_mv); } static void -meridional_range(const Field &field1, Field &field2) +meridional_range(Field const &field1, Field &field2) { meridional_kernel_1(field1, field2, varray_range, varray_range_mv); } static void -meridional_sum(const Field &field1, Field &field2) +meridional_sum(Field const &field1, Field &field2) { meridional_kernel_1(field1, field2, varray_sum, varray_sum_mv); } static void -meridional_meanw(const Field &field1, Field &field2) +meridional_meanw(Field const &field1, Field &field2) { meridional_kernel_2(field1, field2, varray_weighted_mean, varray_weighted_mean_mv); } static void -meridional_avgw(const Field &field1, Field &field2) +meridional_avgw(Field const &field1, Field &field2) { meridional_kernel_2(field1, field2, varray_weighted_mean, varray_weighted_avg_mv); } static void -meridional_varw(const Field &field1, Field &field2) +meridional_varw(Field const &field1, Field &field2) { meridional_kernel_3(field1, field2, varray_weighted_var); } static void -meridional_var1w(const Field &field1, Field &field2) +meridional_var1w(Field const &field1, Field &field2) { meridional_kernel_3(field1, field2, varray_weighted_var_1); } static void -meridional_stdw(const Field &field1, Field &field2) +meridional_stdw(Field const &field1, Field &field2) { size_t rnumMissVals = 0; auto missval = field1.missval; @@ -193,7 +193,7 @@ meridional_stdw(const Field &field1, Field &field2) } static void -meridional_std1w(const Field &field1, Field &field2) +meridional_std1w(Field const &field1, Field &field2) { size_t rnumMissVals = 0; auto missval = field1.missval; @@ -213,25 +213,25 @@ meridional_std1w(const Field &field1, Field &field2) } static void -meridional_skew(const Field &field1, Field &field2) +meridional_skew(Field const &field1, Field &field2) { meridional_kernel_4(field1, field2, varray_skew); } static void -meridional_kurt(const Field &field1, Field &field2) +meridional_kurt(Field const &field1, Field &field2) { meridional_kernel_4(field1, field2, varray_kurt); } static void -meridional_median(const Field &field1, Field &field2) +meridional_median(Field const &field1, Field &field2) { meridional_kernel_4(field1, field2, varray_median); } void -meridional_pctl(const Field &field1, Field &field2, double pn) +meridional_pctl(Field const &field1, Field &field2, double pn) { size_t rnumMissVals = 0; auto missval = field1.missval; @@ -266,7 +266,7 @@ meridional_pctl(const Field &field1, Field &field2, double pn) { if (ny > 0) { - auto func_copy_meridional = [&](const auto &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; + auto func_copy_meridional = [&](auto const &v1) { varray_copy_meridional(i, nx, ny, v1, v); }; field_operation(func_copy_meridional, field1); field2.vec_d[i] = percentile(v.data(), ny, pn); @@ -283,7 +283,7 @@ meridional_pctl(const Field &field1, Field &field2, double pn) } void -meridional_function(const Field &field1, Field &field2, int function) +meridional_function(Field const &field1, Field &field2, int function) { // clang-format off switch (function) diff --git a/src/field_trend.cc b/src/field_trend.cc index e2cac1fd3..9155952d0 100644 --- a/src/field_trend.cc +++ b/src/field_trend.cc @@ -5,7 +5,7 @@ template <typename T> static void -calc_trend_sum(FieldVector3D &work, bool hasMissvals, size_t len, const Varray<T> &varray, double mv, double zj, int varID, +calc_trend_sum(FieldVector3D &work, bool hasMissvals, size_t len, Varray<T> const &varray, double mv, double zj, int varID, int levelID) { T missval = mv; @@ -50,16 +50,16 @@ calc_trend_sum(FieldVector3D &work, bool hasMissvals, size_t len, const Varray<T } void -calc_trend_sum(FieldVector3D &work, const Field &field, double zj, int varID, int levelID) +calc_trend_sum(FieldVector3D &work, Field const &field, double zj, int varID, int levelID) { auto hasMissvals = (field.numMissVals > 0); - auto func = [&](const auto &v) { calc_trend_sum(work, hasMissvals, field.size, v, field.missval, zj, varID, levelID); }; + auto func = [&](auto const &v) { calc_trend_sum(work, hasMissvals, field.size, v, field.missval, zj, varID, levelID); }; field_operation(func, field); } template <typename T> static void -sub_trend(double zj, Varray<T> &v1, const Varray<double> &v2, const Varray<double> &v3, size_t len, double mv) +sub_trend(double zj, Varray<T> &v1, Varray<double> const &v2, Varray<double> const &v3, size_t len, double mv) { auto missval1 = mv; auto missval2 = mv; @@ -79,7 +79,7 @@ sub_trend(double zj, Varray<T> &v1, const Varray<double> &v2, const Varray<doubl } void -sub_trend(double zj, Field &field1, const Field &field2, const Field &field3) +sub_trend(double zj, Field &field1, Field const &field2, Field const &field3) { auto func = [&](auto &v1) { sub_trend(zj, v1, field2.vec_d, field3.vec_d, field1.size, field1.missval); }; field_operation(func, field1); @@ -92,11 +92,11 @@ calc_trend_param(const FieldVector3D &work, Field ¶mA, Field ¶mB, int va auto missval1 = paramA.missval; auto missval2 = paramA.missval; - const auto &sumj = work[0][varID][levelID].vec_d; - const auto &sumjj = work[1][varID][levelID].vec_d; - const auto &sumjx = work[2][varID][levelID].vec_d; - const auto &sumx = work[3][varID][levelID].vec_d; - const auto &zn = work[4][varID][levelID].vec_d; + auto const &sumj = work[0][varID][levelID].vec_d; + auto const &sumjj = work[1][varID][levelID].vec_d; + auto const &sumjx = work[2][varID][levelID].vec_d; + auto const &sumx = work[3][varID][levelID].vec_d; + auto const &zn = work[4][varID][levelID].vec_d; auto trend_kernel = [&](auto i, auto is_EQ) { auto temp1 = SUBM(sumjx[i], DIVM(MULM(sumj[i], sumx[i]), zn[i])); diff --git a/src/field_trend.h b/src/field_trend.h index 72cea72f9..c614d37c7 100644 --- a/src/field_trend.h +++ b/src/field_trend.h @@ -9,8 +9,8 @@ #include "field.h" -void calc_trend_sum(FieldVector3D &work, const Field &field, double zj, int varID, int levelID); -void sub_trend(double zj, Field &field1, const Field &field2, const Field &field3); +void calc_trend_sum(FieldVector3D &work, Field const &field, double zj, int varID, int levelID); +void sub_trend(double zj, Field &field1, Field const &field2, Field const &field3); void calc_trend_param(const FieldVector3D &work, Field &field2, Field &field3, int varID, int levelID); #endif diff --git a/src/field_vinterp.cc b/src/field_vinterp.cc index faaa2804b..aa0fd869e 100644 --- a/src/field_vinterp.cc +++ b/src/field_vinterp.cc @@ -57,7 +57,7 @@ vertical_interp_Z(size_t nlevels, Field3D &fullLevel, Field3D &halfLevel, Field3 void vertical_interp_X(const Field3D &levels3D, const Field3D &field1, Field3D &field2, const std::vector<int> &vertIndex3D, - const Varray<double> &levels2, size_t gridsize) + Varray<double> const &levels2, size_t gridsize) { auto numLevels2 = levels2.size(); auto missval = field1.missval; diff --git a/src/field_vinterp.h b/src/field_vinterp.h index 7c0416b34..aa09657d2 100644 --- a/src/field_vinterp.h +++ b/src/field_vinterp.h @@ -22,6 +22,6 @@ void vertical_interp_Z(size_t nlevels, Field3D &full_level, Field3D &half_level, Field &sgeopot, std::vector<int> &vertIndex, Varray<double> &plev, size_t gridsize); void vertical_interp_X(const Field3D &levels3D, const Field3D &field1, Field3D &field2, const std::vector<int> &vertIndex3D, - const Varray<double> &levels2, size_t gridsize); + Varray<double> const &levels2, size_t gridsize); #endif diff --git a/src/field_zonal.cc b/src/field_zonal.cc index e039f2bc6..0c491c412 100644 --- a/src/field_zonal.cc +++ b/src/field_zonal.cc @@ -16,15 +16,15 @@ template <typename T> static void -varray_copy_zonal(size_t offset, size_t nx, const Varray<T> &v1, Varray<double> &v2) +varray_copy_zonal(size_t offset, size_t nx, Varray<T> const &v1, Varray<double> &v2) { std::copy(v1.begin() + offset, v1.begin() + offset + nx, v2.begin()); } static void -copy_latitude_row(size_t offset, size_t nx, const Field &field1, Varray<double> &v) +copy_latitude_row(size_t offset, size_t nx, Field const &field1, Varray<double> &v) { - auto func = [&](const auto &v1) { varray_copy_zonal(offset, nx, v1, v); }; + auto func = [&](auto const &v1) { varray_copy_zonal(offset, nx, v1, v); }; field_operation(func, field1); } @@ -42,12 +42,12 @@ fill_reduced_points(int gridID, size_t ny, std::vector<int> &reducedPoints, std: return nx; } -using funcType = double(size_t, const Varray<double> &); -using funcTypeMV = double(size_t, const Varray<double> &, double); -using funcTypeNmissMV = double(size_t, const Varray<double> &, size_t, double); +using funcType = double(size_t, Varray<double> const &); +using funcTypeMV = double(size_t, Varray<double> const &, double); +using funcTypeNmissMV = double(size_t, Varray<double> const &, size_t, double); static void -zonal_kernel_1(const Field &field1, Field &field2, funcTypeNmissMV funcNmissMV) +zonal_kernel_1(Field const &field1, Field &field2, funcTypeNmissMV funcNmissMV) { size_t rnumMissVals = 0; auto numMissVals = field1.numMissVals; @@ -76,7 +76,7 @@ zonal_kernel_1(const Field &field1, Field &field2, funcTypeNmissMV funcNmissMV) } static void -zonal_kernel_2(const Field &field1, Field &field2, funcType func, funcTypeMV funcMV) +zonal_kernel_2(Field const &field1, Field &field2, funcType func, funcTypeMV funcMV) { size_t rnumMissVals = 0; auto numMissVals = field1.numMissVals; @@ -104,55 +104,55 @@ zonal_kernel_2(const Field &field1, Field &field2, funcType func, funcTypeMV fun } void -zonal_min(const Field &field1, Field &field2) +zonal_min(Field const &field1, Field &field2) { zonal_kernel_2(field1, field2, varray_min, varray_min_mv); } void -zonal_max(const Field &field1, Field &field2) +zonal_max(Field const &field1, Field &field2) { zonal_kernel_2(field1, field2, varray_max, varray_max_mv); } void -zonal_range(const Field &field1, Field &field2) +zonal_range(Field const &field1, Field &field2) { zonal_kernel_2(field1, field2, varray_range, varray_range_mv); } void -zonal_sum(const Field &field1, Field &field2) +zonal_sum(Field const &field1, Field &field2) { zonal_kernel_2(field1, field2, varray_sum, varray_sum_mv); } void -zonal_mean(const Field &field1, Field &field2) +zonal_mean(Field const &field1, Field &field2) { zonal_kernel_2(field1, field2, varray_mean, varray_mean_mv); } void -zonal_avg(const Field &field1, Field &field2) +zonal_avg(Field const &field1, Field &field2) { zonal_kernel_2(field1, field2, varray_mean, varray_avg_mv); } void -zonal_var(const Field &field1, Field &field2) +zonal_var(Field const &field1, Field &field2) { zonal_kernel_1(field1, field2, varray_var); } void -zonal_var1(const Field &field1, Field &field2) +zonal_var1(Field const &field1, Field &field2) { zonal_kernel_1(field1, field2, varray_var_1); } void -zonal_std(const Field &field1, Field &field2) +zonal_std(Field const &field1, Field &field2) { size_t rnumMissVals = 0; auto missval = field2.missval; @@ -171,7 +171,7 @@ zonal_std(const Field &field1, Field &field2) } void -zonal_std1(const Field &field1, Field &field2) +zonal_std1(Field const &field1, Field &field2) { size_t rnumMissVals = 0; auto missval = field2.missval; @@ -190,25 +190,25 @@ zonal_std1(const Field &field1, Field &field2) } void -zonal_skew(const Field &field1, Field &field2) +zonal_skew(Field const &field1, Field &field2) { zonal_kernel_1(field1, field2, varray_skew); } void -zonal_kurt(const Field &field1, Field &field2) +zonal_kurt(Field const &field1, Field &field2) { zonal_kernel_1(field1, field2, varray_kurt); } void -zonal_median(const Field &field1, Field &field2) +zonal_median(Field const &field1, Field &field2) { zonal_kernel_1(field1, field2, varray_median); } void -zonal_pctl(const Field &field1, Field &field2, double pn) +zonal_pctl(Field const &field1, Field &field2, double pn) { size_t rnumMissVals = 0; auto missval = field2.missval; @@ -261,7 +261,7 @@ zonal_pctl(const Field &field1, Field &field2, double pn) } void -zonal_function(const Field &field1, Field &field2, int function) +zonal_function(Field const &field1, Field &field2, int function) { // clang-format off switch (function) diff --git a/src/fileStream.cc b/src/fileStream.cc index 43e5f3812..845932f3d 100644 --- a/src/fileStream.cc +++ b/src/fileStream.cc @@ -29,7 +29,7 @@ bool FileStream::TimerEnabled = false; static auto inputFileTypeIsNetCDF4 = false; #endif -FileStream::FileStream(const std::string &p_fileName) : m_filename(p_fileName) +FileStream::FileStream(std::string const &p_fileName) : m_filename(p_fileName) { m_name = p_fileName; m_fileID = CDI_UNDEFID; diff --git a/src/fileStream.h b/src/fileStream.h index db9e781a0..b9cffbcee 100644 --- a/src/fileStream.h +++ b/src/fileStream.h @@ -8,7 +8,7 @@ class FileStream : public CdoStream { public: // Constructors - explicit FileStream(const std::string &p_fileStream); + explicit FileStream(std::string const &p_fileStream); // --- // CdoStream Interface functions diff --git a/src/fill_1d.cc b/src/fill_1d.cc index 7d207af05..7699d0f26 100644 --- a/src/fill_1d.cc +++ b/src/fill_1d.cc @@ -11,7 +11,7 @@ #include "interpol.h" FillMethod -string_to_fillmethod(const std::string &methodStr) +string_to_fillmethod(std::string const &methodStr) { // clang-format off if (methodStr == "nearest") return FillMethod::Nearest; @@ -24,7 +24,7 @@ string_to_fillmethod(const std::string &methodStr) } static void -nearest_neighbour_with_lowest_delta(const Varray<double> &xValues, Varray<double> &yValues, int firstIndex, int lastIndex, +nearest_neighbour_with_lowest_delta(Varray<double> const &xValues, Varray<double> &yValues, int firstIndex, int lastIndex, int limit) { auto startIndex = firstIndex + 1; @@ -41,7 +41,7 @@ nearest_neighbour_with_lowest_delta(const Varray<double> &xValues, Varray<double constexpr int UndefIndex = -1; void -fill_1d_nearest(int numValues, const Varray<double> &timeValues, Varray<double> &dataValues, double missval, int limit, int maxGaps) +fill_1d_nearest(int numValues, Varray<double> const &timeValues, Varray<double> &dataValues, double missval, int limit, int maxGaps) { int numGaps = 0; int firstIndex = UndefIndex; @@ -97,7 +97,7 @@ fill_1d_nearest(int numValues, const Varray<double> &timeValues, Varray<double> } static void -fill_linear(const Varray<double> &xValues, Varray<double> &yValues, int firstIndex, int lastIndex, int limit) +fill_linear(Varray<double> const &xValues, Varray<double> &yValues, int firstIndex, int lastIndex, int limit) { auto startIndex = firstIndex + 1; auto endIndex = (limit > 0) ? std::min(lastIndex, startIndex + limit) : lastIndex; @@ -108,7 +108,7 @@ fill_linear(const Varray<double> &xValues, Varray<double> &yValues, int firstInd } void -fill_1d_linear(int numValues, const Varray<double> &timeValues, Varray<double> &dataValues, double missval, int limit, int maxGaps) +fill_1d_linear(int numValues, Varray<double> const &timeValues, Varray<double> &dataValues, double missval, int limit, int maxGaps) { int numGaps = 0; int firstIndex = UndefIndex; diff --git a/src/fill_1d.h b/src/fill_1d.h index 1d273655d..1210a9618 100644 --- a/src/fill_1d.h +++ b/src/fill_1d.h @@ -18,11 +18,11 @@ enum struct FillMethod Backward }; -FillMethod string_to_fillmethod(const std::string &methodStr); +FillMethod string_to_fillmethod(std::string const &methodStr); -void fill_1d_nearest(int numValues, const Varray<double> &timeValues, Varray<double> &dataValues, double missval, int limit, +void fill_1d_nearest(int numValues, Varray<double> const &timeValues, Varray<double> &dataValues, double missval, int limit, int maxGaps); -void fill_1d_linear(int numValues, const Varray<double> &timeValues, Varray<double> &dataValues, double missval, int limit, +void fill_1d_linear(int numValues, Varray<double> const &timeValues, Varray<double> &dataValues, double missval, int limit, int maxGaps); void fill_1d_forward(int numValues, Varray<double> &dataValues, double missval, int limit, int maxGaps); void fill_1d_backward(int numValues, Varray<double> &dataValues, double missval, int limit, int maxGaps); diff --git a/src/grid_cellsearch.cc b/src/grid_cellsearch.cc index 9b40e631d..279869a7c 100644 --- a/src/grid_cellsearch.cc +++ b/src/grid_cellsearch.cc @@ -31,8 +31,8 @@ grid_cellsearch_create_unstruct(GridCellsearch &gcs, const RemapGrid &remapGrid) { auto numCells = remapGrid.size; auto numCorners = remapGrid.numCorners; - const auto &cornerLons = remapGrid.cornerLons; - const auto &cornerLats = remapGrid.cornerLats; + auto const &cornerLons = remapGrid.cornerLons; + auto const &cornerLats = remapGrid.cornerLats; gcs.method = cellSearchMethod; diff --git a/src/grid_from_name.cc b/src/grid_from_name.cc index c4fa67614..4fa537de9 100644 --- a/src/grid_from_name.cc +++ b/src/grid_from_name.cc @@ -19,7 +19,7 @@ size_t gen_icosphere_coords(int subdivisions, bool withBounds, std::vector<doubl std::vector<double> &xbounds, std::vector<double> &ybounds); static void -generate_grid_icosphere(GridDesciption &grid, const std::string &gridname) +generate_grid_icosphere(GridDesciption &grid, std::string const &gridname) { int gridtype = GRID_UNSTRUCTURED; @@ -47,7 +47,7 @@ generate_grid_icosphere(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_zonal(GridDesciption &grid, const std::string &gridname, double inc, double lon1, double lon2, double lat1, +generate_grid_zonal(GridDesciption &grid, std::string const &gridname, double inc, double lon1, double lon2, double lat1, double lat2) { int gridtype = GRID_LONLAT; @@ -93,7 +93,7 @@ generate_grid_zonal(GridDesciption &grid, const std::string &gridname, double in } static void -generate_grid_lonlat(GridDesciption &grid, const std::string &gridname, double inc, double lon1, double lon2, double lat1, +generate_grid_lonlat(GridDesciption &grid, std::string const &gridname, double inc, double lon1, double lon2, double lat1, double lat2) { int gridtype = GRID_LONLAT; @@ -200,7 +200,7 @@ generate_grid_lonlat(GridDesciption &grid, const std::string &gridname, double i } static void -generate_grid_dcw(GridDesciption &grid, const std::string &gridname, double inc) +generate_grid_dcw(GridDesciption &grid, std::string const &gridname, double inc) { auto param1 = gridname.c_str(); auto param2 = std::strstr(param1, "_"); @@ -242,7 +242,7 @@ generate_grid_dcw(GridDesciption &grid, const std::string &gridname, double inc) } static void -generate_grid_gme(GridDesciption &grid, const std::string &gridname) +generate_grid_gme(GridDesciption &grid, std::string const &gridname) { if (gridname.size()) { @@ -264,7 +264,7 @@ generate_grid_gme(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_healpix(GridDesciption &grid, const std::string &gridname, bool isZoom = false) +generate_grid_healpix(GridDesciption &grid, std::string const &gridname, bool isZoom = false) { if (gridname.size()) { @@ -319,7 +319,7 @@ gaussian_latitudes_in_degrees(std::vector<double> &lats, std::vector<double> &la } static void -generate_grid_gea(GridDesciption &grid, const std::string &gridname) +generate_grid_gea(GridDesciption &grid, std::string const &gridname) { char endChar = '?'; double dx = 0.0; @@ -390,7 +390,7 @@ generate_grid_gea(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_zonal(GridDesciption &grid, const std::string &gridname) +generate_grid_zonal(GridDesciption &grid, std::string const &gridname) { char endChar = '?'; int intVal = 0; @@ -455,7 +455,7 @@ generate_grid_zonal(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_reg2d(GridDesciption &grid, const std::string &gridname) +generate_grid_reg2d(GridDesciption &grid, std::string const &gridname) { char endChar = '?'; char sepChar = '?'; @@ -473,7 +473,7 @@ generate_grid_reg2d(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_point(GridDesciption &grid, const std::string &gridname) +generate_grid_point(GridDesciption &grid, std::string const &gridname) { char endChar = '?'; char sepChar = '?'; @@ -493,7 +493,7 @@ generate_grid_point(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_generic(GridDesciption &grid, const std::string &gridname) +generate_grid_generic(GridDesciption &grid, std::string const &gridname) { char endChar = '?'; char sepChar = '?'; @@ -581,7 +581,7 @@ generate_grid_gaussian(GridDesciption &grid, std::string gridname) } static void -generate_grid_gaussian_full(GridDesciption &grid, const std::string &gridname) +generate_grid_gaussian_full(GridDesciption &grid, std::string const &gridname) { if (gridname.size()) { @@ -637,7 +637,7 @@ generate_grid_gaussian_full(GridDesciption &grid, const std::string &gridname) } static void -generate_grid_gaussian_o(GridDesciption &grid, const std::string &gridname) +generate_grid_gaussian_o(GridDesciption &grid, std::string const &gridname) { // FXXX - full (regular) Gaussian grid with XXX latitude lines between the pole and equator int intVal = 0; @@ -678,7 +678,7 @@ generate_grid_gaussian_o(GridDesciption &grid, const std::string &gridname) } int -grid_from_name(const std::string &gridname) +grid_from_name(std::string const &gridname) { int gridID = CDI_UNDEFID; if (gridname.size() < 2) return gridID; diff --git a/src/grid_icosphere.cc b/src/grid_icosphere.cc index 00caeb9ee..2b5855226 100644 --- a/src/grid_icosphere.cc +++ b/src/grid_icosphere.cc @@ -92,7 +92,7 @@ subdivide(VertexList &vertices, const TriangleList &triangles) TriangleList result(4 * n); for (size_t i = 0; i < n; ++i) { - const auto &each = triangles[i]; + auto const &each = triangles[i]; for (int edge = 0; edge < 3; edge++) { mid[edge] = vertex_for_edge(lookup, vertices, each[edge], each[(edge + 1) % 3]); } result[i * 4 + 0] = { each[0], mid[0], mid[2] }; @@ -139,7 +139,7 @@ gen_icosphere_coords(int subdivisions, bool withBounds, std::vector<double> &xva #endif for (size_t i = 0; i < numCells; ++i) { - const auto &t = triangles[i]; + auto const &t = triangles[i]; auto center = circum_center_mean(vertices[t[0]], vertices[t[1]], vertices[t[2]]); xvals[i] = center.longitude(); yvals[i] = center.latitude(); diff --git a/src/grid_pointsearch.cc b/src/grid_pointsearch.cc index 4e03db32c..715ac8e82 100644 --- a/src/grid_pointsearch.cc +++ b/src/grid_pointsearch.cc @@ -19,7 +19,7 @@ UnstructMethod unstructMethod(UnstructMethod::undefined); void -set_pointsearch_method(const std::string &methodStr) +set_pointsearch_method(std::string const &methodStr) { // clang-format off if (methodStr == "kdtree") unstructMethod = UnstructMethod::kdtree; @@ -56,7 +56,7 @@ grid_pointsearch_create_reg2d(GridPointsearch &gps, const RemapGrid &remapGrid) } static void -pointsearch_create_unstruct(GridPointsearch &gps, const Varray<double> &lons, const Varray<double> &lats) +pointsearch_create_unstruct(GridPointsearch &gps, Varray<double> const &lons, Varray<double> const &lats) { auto numPoints = lons.size(); if (numPoints == 0) return; @@ -106,7 +106,7 @@ grid_pointsearch_create(GridPointsearch &gps, const RemapGrid &remapGrid) } void -grid_pointsearch_create_unstruct(GridPointsearch &gps, const Varray<double> &lons, const Varray<double> &lats, bool useBoundBox) +grid_pointsearch_create_unstruct(GridPointsearch &gps, Varray<double> const &lons, Varray<double> const &lats, bool useBoundBox) { auto ¶ms = gps.params; params.dims[0] = lons.size(); @@ -117,7 +117,7 @@ grid_pointsearch_create_unstruct(GridPointsearch &gps, const Varray<double> &lon } static size_t -llindex_in_quad(size_t nx, size_t ny, size_t index, const PointLonLat &pointLL, const double *centerLons, const double *centerLats, +llindex_in_quad(size_t nx, size_t ny, size_t index, PointLonLat const &pointLL, const double *centerLons, const double *centerLats, bool isCyclic) { if (index != GPS_NOT_FOUND) @@ -140,7 +140,7 @@ llindex_in_quad(size_t nx, size_t ny, size_t index, const PointLonLat &pointLL, } size_t -grid_pointsearch_nearest(GridPointsearch &gps, const PointLonLat &pointLL, size_t *index, double *dist) +grid_pointsearch_nearest(GridPointsearch &gps, PointLonLat const &pointLL, size_t *index, double *dist) { auto numIndices = gps.unstruct.search_nearest(pointLL, index, dist); if (numIndices > 0) @@ -156,7 +156,7 @@ grid_pointsearch_nearest(GridPointsearch &gps, const PointLonLat &pointLL, size_ } static void -select_points_in_cell(GridPointsearch &gps, const PointLonLat &pointLL, size_t *indices, double *dist, size_t &numIndices) +select_points_in_cell(GridPointsearch &gps, PointLonLat const &pointLL, size_t *indices, double *dist, size_t &numIndices) { auto maxIndices = numIndices; numIndices = 0; @@ -174,7 +174,7 @@ select_points_in_cell(GridPointsearch &gps, const PointLonLat &pointLL, size_t * } size_t -grid_pointsearch_qnearest(GridPointsearch &gps, const PointLonLat &pointLL, size_t nnn, size_t *indices, double *dist) +grid_pointsearch_qnearest(GridPointsearch &gps, PointLonLat const &pointLL, size_t nnn, size_t *indices, double *dist) { auto numIndices = gps.unstruct.search_qnearest(pointLL, nnn, indices, dist); diff --git a/src/grid_pointsearch.h b/src/grid_pointsearch.h index f56b15b14..03d2f8daa 100644 --- a/src/grid_pointsearch.h +++ b/src/grid_pointsearch.h @@ -56,16 +56,16 @@ public: }; -void set_pointsearch_method(const std::string &methodStr); +void set_pointsearch_method(std::string const &methodStr); -void grid_search_point_unstruct(GridPointsearch &gps, const PointLonLat &pointLL, KnnData &knnData); -void grid_search_point_smooth(GridPointsearch &gps, const PointLonLat &pointLL, KnnData &knnData); +void grid_search_point_unstruct(GridPointsearch &gps, PointLonLat const &pointLL, KnnData &knnData); +void grid_search_point_smooth(GridPointsearch &gps, PointLonLat const &pointLL, KnnData &knnData); -void grid_pointsearch_create_unstruct(GridPointsearch &gps, const Varray<double> &lons, const Varray<double> &lats, +void grid_pointsearch_create_unstruct(GridPointsearch &gps, Varray<double> const &lons, Varray<double> const &lats, bool useBoundBox = false); void grid_pointsearch_create(GridPointsearch &gps, const RemapGrid &remapGrid); -size_t grid_pointsearch_nearest(GridPointsearch &gps, const PointLonLat &pointLL, size_t *index, double *dist); -size_t grid_pointsearch_qnearest(GridPointsearch &gps, const PointLonLat &pointLL, size_t nnn, size_t *indices, double *dist); +size_t grid_pointsearch_nearest(GridPointsearch &gps, PointLonLat const &pointLL, size_t *index, double *dist); +size_t grid_pointsearch_qnearest(GridPointsearch &gps, PointLonLat const &pointLL, size_t nnn, size_t *indices, double *dist); struct SquareCorners { diff --git a/src/grid_read.cc b/src/grid_read.cc index a3ed9bcb3..28d116af5 100644 --- a/src/grid_read.cc +++ b/src/grid_read.cc @@ -32,11 +32,11 @@ grid_read_data(size_t ikv, size_t nkv, const std::vector<KVMap> &kvmap, GridDesc if (!kvmap[ik].isValid) continue; const auto kv = kvmap[ik].kv; - const auto &key = kv->key; + auto const &key = kv->key; size_t nvalues = kv->nvalues; if (nvalues == 0) continue; - const auto &values = kv->values; - const auto &value = kv->values[0]; + auto const &values = kv->values; + auto const &value = kv->values[0]; // clang-format off if (key == "gridtype") @@ -255,11 +255,11 @@ grid_read_mapping(size_t igmap, size_t nkv, const std::vector<KVMap> &kvmap, int if (!kvmap[ik].isValid) continue; const auto kv = kvmap[ik].kv; - const auto &key = kv->key; + auto const &key = kv->key; size_t nvalues = kv->nvalues; if (nvalues == 0) continue; - const auto &values = kv->values; - const auto &value = kv->values[0]; + auto const &values = kv->values; + auto const &value = kv->values[0]; if (key == "grid_mapping") { diff --git a/src/griddes.cc b/src/griddes.cc index 2050cc5b5..35f792c34 100644 --- a/src/griddes.cc +++ b/src/griddes.cc @@ -296,7 +296,7 @@ gridFromMPAS(const char *filename) int latVertexID = -1, lonVertexID = -1, verticesOnCellID = -1; for (int varID = 0; varID < varList.numVars(); ++varID) { - const auto &var = varList.vars[varID]; + auto const &var = varList.vars[varID]; // clang-format off if (var.name == "latCell") latCellID = varID; else if (var.name == "lonCell") lonCellID = varID; @@ -519,14 +519,14 @@ cdo_define_grid(const char *pgridfile) } int -cdo_define_grid(const std::string &gridfile) +cdo_define_grid(std::string const &gridfile) { return cdo_define_grid(gridfile.c_str()); } void -cdo_set_grids(const std::string &gridarg) +cdo_set_grids(std::string const &gridarg) { auto gridNames = split_string(gridarg, ","); - for (const auto &gridName : gridNames) cdo_define_grid(gridName); + for (auto const &gridName : gridNames) cdo_define_grid(gridName); } diff --git a/src/griddes.h b/src/griddes.h index c08c0fd85..3b0f98b96 100644 --- a/src/griddes.h +++ b/src/griddes.h @@ -76,17 +76,17 @@ int grid_define(GridDesciption &grid); int grid_from_nc_file(const char *gridfile); int grid_from_h5_file(const char *gridfile); -int grid_from_name(const std::string &gridname); +int grid_from_name(std::string const &gridname); void write_nc_grid(const char *gridfile, int gridID, int *imask); -int cdo_define_grid(const std::string &gridfile); +int cdo_define_grid(std::string const &gridfile); int grid_read(FILE *gfp, const char *dname); // TODO: Find better place for this int cdo_cdf_openread(const char *filename); void cdo_cdf_close(int nc_file_id); -void cdo_set_grids(const std::string &gridarg); +void cdo_set_grids(std::string const &gridarg); void gaussian_latitudes_in_degrees(std::vector<double> &lats, std::vector<double> &lat_bounds, size_t nlat); diff --git a/src/hetaeta.cc b/src/hetaeta.cc index 838699807..1d41b48a8 100644 --- a/src/hetaeta.cc +++ b/src/hetaeta.cc @@ -32,7 +32,7 @@ static FILE *fpold, *fpnew; #endif static long -int_index(long n, const Varray<double> &x1, const double x2) +int_index(long n, Varray<double> const &x1, const double x2) { long k; long klo = 0; @@ -70,11 +70,11 @@ esat(double temperature) template <typename T> static void -hetaeta_sc(bool ltq, int lpsmod, long ij, long ngp, long nlev1, long nlev2, long nvars, const Varray<double> &af1, - const Varray<double> &bf1, const Varray<double> &etah2, const Varray<double> &af2, const Varray<double> &bf2, - const Varray<double> &w1, const Varray<double> &w2, const Varray<long> &jl1, const Varray<long> &jl2, const double *ah1, - const double *bh1, const Varray<double> &ps1, double epsm1i, const Varray<T> &q1, const Varray<T> &t1, - const Varray<double> &fis1, const Varray<double> &fis2, Varray<double> &ps2, const double *ah2, const double *bh2, +hetaeta_sc(bool ltq, int lpsmod, long ij, long ngp, long nlev1, long nlev2, long nvars, Varray<double> const &af1, + Varray<double> const &bf1, Varray<double> const &etah2, Varray<double> const &af2, Varray<double> const &bf2, + Varray<double> const &w1, Varray<double> const &w2, const Varray<long> &jl1, const Varray<long> &jl2, const double *ah1, + const double *bh1, Varray<double> const &ps1, double epsm1i, Varray<T> const &q1, Varray<T> const &t1, + Varray<double> const &fis1, Varray<double> const &fis2, Varray<double> &ps2, const double *ah2, const double *bh2, const Varray2D<T> &vars1, Varray2D<T> &vars2, Varray<T> &t2, Varray<T> &q2, Varray<double> &tscor, Varray<double> &pscor, Varray<double> &secor, long jblt, Varray<double> &ph1, Varray<double> &lnph1, Varray<double> &fi1, Varray<double> &pf1, Varray<double> &lnpf1, Varray<double> &tv1, Varray<double> &theta1, Varray<double> &rh1, Varray<double> &zvar, @@ -408,9 +408,9 @@ hetaeta_sc(bool ltq, int lpsmod, long ij, long ngp, long nlev1, long nlev2, long template <typename T> void -hetaeta(bool ltq, int ngp, const Vmask &imiss, int nlev1, const double *ah1, const double *bh1, const Varray<double> &fis1, - const Varray<double> &ps1, const Varray<T> &t1, const Varray<T> &q1, int nlev2, const double *ah2, const double *bh2, - const Varray<double> &fis2, Varray<double> &ps2, Varray<T> &t2, Varray<T> &q2, int nvars, const Varray2D<T> &vars1, +hetaeta(bool ltq, int ngp, Vmask const &imiss, int nlev1, const double *ah1, const double *bh1, Varray<double> const &fis1, + Varray<double> const &ps1, Varray<T> const &t1, Varray<T> const &q1, int nlev2, const double *ah2, const double *bh2, + Varray<double> const &fis2, Varray<double> &ps2, Varray<T> &t2, Varray<T> &q2, int nvars, const Varray2D<T> &vars1, Varray2D<T> &vars2, Varray<double> &tscor, Varray<double> &pscor, Varray<double> &secor) { long jlev = 0; @@ -562,14 +562,14 @@ hetaeta(bool ltq, int ngp, const Vmask &imiss, int nlev1, const double *ah1, con } // Explicit instantiation -template void hetaeta(bool ltq, int ngp, const Vmask &imiss, int nlev1, const double *ah1, const double *bh1, - const Varray<double> &fis1, const Varray<double> &ps1, const Varray<float> &t1, const Varray<float> &q1, - int nlev2, const double *ah2, const double *bh2, const Varray<double> &fis2, Varray<double> &ps2, +template void hetaeta(bool ltq, int ngp, Vmask const &imiss, int nlev1, const double *ah1, const double *bh1, + Varray<double> const &fis1, Varray<double> const &ps1, Varray<float> const &t1, Varray<float> const &q1, + int nlev2, const double *ah2, const double *bh2, Varray<double> const &fis2, Varray<double> &ps2, Varray<float> &t2, Varray<float> &q2, int nvars, const Varray2D<float> &vars1, Varray2D<float> &vars2, Varray<double> &scor, Varray<double> &pscor, Varray<double> &secor); -template void hetaeta(bool ltq, int ngp, const Vmask &imiss, int nlev1, const double *ah1, const double *bh1, - const Varray<double> &fis1, const Varray<double> &ps1, const Varray<double> &t1, const Varray<double> &q1, - int nlev2, const double *ah2, const double *bh2, const Varray<double> &fis2, Varray<double> &ps2, +template void hetaeta(bool ltq, int ngp, Vmask const &imiss, int nlev1, const double *ah1, const double *bh1, + Varray<double> const &fis1, Varray<double> const &ps1, Varray<double> const &t1, Varray<double> const &q1, + int nlev2, const double *ah2, const double *bh2, Varray<double> const &fis2, Varray<double> &ps2, Varray<double> &t2, Varray<double> &q2, int nvars, const Varray2D<double> &vars1, Varray2D<double> &vars2, Varray<double> &scor, Varray<double> &pscor, Varray<double> &secor); diff --git a/src/hetaeta.h b/src/hetaeta.h index a7847c58e..079175452 100644 --- a/src/hetaeta.h +++ b/src/hetaeta.h @@ -4,9 +4,9 @@ #include "varray.h" template <typename T> -void hetaeta(bool ltq, int ngp, const Vmask &imiss, int nlev1, const double *ah1, const double *bh1, - const Varray<double> &fis1, const Varray<double> &ps1, const Varray<T> &t1, const Varray<T> &q1, int nlev2, - const double *ah2, const double *bh2, const Varray<double> &fis2, Varray<double> &ps2, Varray<T> &t2, Varray<T> &q2, +void hetaeta(bool ltq, int ngp, Vmask const &imiss, int nlev1, const double *ah1, const double *bh1, + Varray<double> const &fis1, Varray<double> const &ps1, Varray<T> const &t1, Varray<T> const &q1, int nlev2, + const double *ah2, const double *bh2, Varray<double> const &fis2, Varray<double> &ps2, Varray<T> &t2, Varray<T> &q2, int nvars, const Varray2D<T> &vars1, Varray2D<T> &vars2, Varray<double> &scor, Varray<double> &pscor, Varray<double> &secor); diff --git a/src/institution.cc b/src/institution.cc index b23914a10..99bfc0e02 100644 --- a/src/institution.cc +++ b/src/institution.cc @@ -13,7 +13,7 @@ #include "cdo_default_values.h" static int -read_institution(const std::string &filename) +read_institution(std::string const &filename) { int lnr = 0; int nvar = 0, maxvar = 4; @@ -57,7 +57,7 @@ read_institution(const std::string &filename) } void -define_institution(const std::string &instString) +define_institution(std::string const &instString) { int instID = read_institution(instString); diff --git a/src/institution.h b/src/institution.h index 3c27a3163..f4a2bd534 100644 --- a/src/institution.h +++ b/src/institution.h @@ -3,6 +3,6 @@ #include <string> -void define_institution(const std::string &instString); +void define_institution(std::string const &instString); #endif diff --git a/src/interpol.cc b/src/interpol.cc index 0300238d7..93c20f6e3 100644 --- a/src/interpol.cc +++ b/src/interpol.cc @@ -29,7 +29,7 @@ * @param x the element to find a position for */ static long -find_element(double x, long nelem, const Varray<double> &v) +find_element(double x, long nelem, Varray<double> const &v) { long ii; long mid = 0; @@ -87,8 +87,8 @@ find_element(double x, long nelem, const Varray<double> &v) } bool -rect_grid_search(size_t &ii, size_t &jj, double x, double y, size_t nxm, size_t nym, const Varray<double> &xm, - const Varray<double> &ym) +rect_grid_search(size_t &ii, size_t &jj, double x, double y, size_t nxm, size_t nym, Varray<double> const &xm, + Varray<double> const &ym) { constexpr double rtol = 1.e-12; auto pointFound{ false }; @@ -108,7 +108,7 @@ rect_grid_search(size_t &ii, size_t &jj, double x, double y, size_t nxm, size_t } bool -rect_grid_search2(long &imin, long &imax, double xmin, double xmax, long nxm, const Varray<double> &xm) +rect_grid_search2(long &imin, long &imax, double xmin, double xmax, long nxm, Varray<double> const &xm) { auto pointFound{ false }; imin = nxm; @@ -159,7 +159,7 @@ rect_grid_search2(long &imin, long &imax, double xmin, double xmax, long nxm, co } /* double -intlinarr2p(long nxm, long nym, double **fieldm, const Varray<double> &xm, const Varray<double> &ym, double x, double y) +intlinarr2p(long nxm, long nym, double **fieldm, Varray<double> const &xm, Varray<double> const &ym, double x, double y) { long ii, jj; double value = 0; @@ -184,15 +184,15 @@ intlinarr2p(long nxm, long nym, double **fieldm, const Varray<double> &xm, const template <typename T> static inline T -bilinear_remap(const Varray<T> &srcArray, const double (&wgt)[4], const size_t (&ind)[4]) +bilinear_remap(Varray<T> const &srcArray, const double (&wgt)[4], const size_t (&ind)[4]) { return srcArray[ind[0]] * wgt[0] + srcArray[ind[1]] * wgt[1] + srcArray[ind[2]] * wgt[2] + srcArray[ind[3]] * wgt[3]; } template <typename T1, typename T2> static void -intlinarr2(double mv, int lonIsCircular, size_t nxm, size_t nym, const Varray<T1> &varray1, const Varray<double> &xm, - const Varray<double> &ym, size_t gridsize2, Varray<T2> &varray2, const Varray<double> &x, const Varray<double> &y) +intlinarr2(double mv, int lonIsCircular, size_t nxm, size_t nym, const Varray<T1> &varray1, Varray<double> const &xm, + Varray<double> const &ym, size_t gridsize2, Varray<T2> &varray2, Varray<double> const &x, Varray<double> const &y) { T1 missval = mv; auto nlon1 = nxm; @@ -262,7 +262,7 @@ intlinarr(long nxm, double *ym, double *xm, int nx, double *y, double *x) } void -intgrid_bil(const Field &field1, Field &field2) +intgrid_bil(Field const &field1, Field &field2) { auto gridID1 = field1.grid; auto gridID2 = field2.grid; diff --git a/src/interpol.h b/src/interpol.h index 72a07a571..4da0ce066 100644 --- a/src/interpol.h +++ b/src/interpol.h @@ -11,10 +11,10 @@ class Field; -void interpolate(const Field &field1, Field &field2); -void intgrid_bil(const Field &field1, Field &field2); -void intgrid_1nn(const Field &field1, Field &field2); -void intgrid_knn(const KnnParams &knnParams, const Field &field1, Field &field2); +void interpolate(Field const &field1, Field &field2); +void intgrid_bil(Field const &field1, Field &field2); +void intgrid_1nn(Field const &field1, Field &field2); +void intgrid_knn(KnnParams const &knnParams, Field const &field1, Field &field2); constexpr double intlin(double x, double y1, double x1, double y2, double x2) diff --git a/src/knndata.cc b/src/knndata.cc index a056a6a71..1759b509d 100644 --- a/src/knndata.cc +++ b/src/knndata.cc @@ -17,7 +17,7 @@ weightingMethod_to_string(WeightingMethod method) } WeightingMethod -string_to_weightingMethod(const std::string &methodStr) +string_to_weightingMethod(std::string const &methodStr) { if (methodStr == "avg") return WeightingMethod::arithmeticAverage; if (methodStr == "dist") return WeightingMethod::distanceWeighted; @@ -31,7 +31,7 @@ string_to_weightingMethod(const std::string &methodStr) } void -KnnData::apply_mask(const Vmask &gridMask) +KnnData::apply_mask(Vmask const &gridMask) { size_t n = 0; for (size_t i = 0; i < m_numNeighbors; ++i) diff --git a/src/knndata.h b/src/knndata.h index 9f4f55632..450acc202 100644 --- a/src/knndata.h +++ b/src/knndata.h @@ -30,7 +30,7 @@ enum struct WeightingMethod }; std::string weightingMethod_to_string(WeightingMethod method); -WeightingMethod string_to_weightingMethod(const std::string &methodStr); +WeightingMethod string_to_weightingMethod(std::string const &methodStr); struct KnnParams { @@ -60,7 +60,7 @@ private: double m_weight0{ 1.0 }; double m_weightR{ 1.0 }; - void apply_mask(const Vmask &gridMask); + void apply_mask(Vmask const &gridMask); size_t compute_weights_avg(); size_t compute_weights_dist(); @@ -183,7 +183,7 @@ public: } size_t - compute_weights(const Vmask &gridMask) + compute_weights(Vmask const &gridMask) { // Compute weights if grid mask is false, eliminate those points apply_mask(gridMask); @@ -192,7 +192,7 @@ public: template <typename T> double - array_weights_sum(const Varray<T> &array) const + array_weights_sum(Varray<T> const &array) const { double sum = 0.0; for (size_t i = 0; i < m_numNeighbors; ++i) sum += array[m_indices[i]] * m_dist[i]; diff --git a/src/module_info.cc b/src/module_info.cc index 63285a065..620245ea7 100644 --- a/src/module_info.cc +++ b/src/module_info.cc @@ -12,7 +12,7 @@ typedef std::function<bool(const CdoModule &mod)> ModuleQuery; bool -ModListOptions::requested(const std::string &name) +ModListOptions::requested(std::string const &name) { return opt[name]; } @@ -25,7 +25,7 @@ ModListOptions::mod_info_requested() } bool -ModListOptions::parse_request(const std::string &requestString) +ModListOptions::parse_request(std::string const &requestString) { auto all = true; const auto splitString = split_string(requestString, ","); @@ -128,7 +128,7 @@ create_help_sections(const CdoHelp &p_help) } std::map<std::string, std::pair<std::string, std::vector<std::string>>> oper_syn_map; - for (const auto &op : operators) + for (auto const &op : operators) { std::string syn = ""; auto it = oper_synopsis.find(op.first); @@ -146,20 +146,20 @@ create_help_sections(const CdoHelp &p_help) } std::string -get_operator_description(const std::string &p_current_op_name, const CdoHelp &p_help) +get_operator_description(std::string const &p_current_op_name, const CdoHelp &p_help) { std::string description = ""; if (p_help.empty()) return description; // search for operator section - auto it = std::find_if(begin(p_help), end(p_help), [&](const auto &l) { return l.find("OPERATORS") != std::string::npos; }); + auto it = std::find_if(begin(p_help), end(p_help), [&](auto const &l) { return l.find("OPERATORS") != std::string::npos; }); // if no operator section is found if (it == end(p_help)) { std::string name_section = std::string(p_help[0]); it = std::find_if(begin(p_help), end(p_help), - [&](const auto &l) { return l.find(" " + p_current_op_name) != std::string::npos; }); + [&](auto const &l) { return l.find(" " + p_current_op_name) != std::string::npos; }); if (it != end(p_help)) { @@ -170,7 +170,7 @@ get_operator_description(const std::string &p_current_op_name, const CdoHelp &p_ else { it = std::find_if(++it, end(p_help), - [&](const auto &l) { return l.find(" " + p_current_op_name + " ") != std::string::npos; }); + [&](auto const &l) { return l.find(" " + p_current_op_name + " ") != std::string::npos; }); if (it != p_help.end()) { std::string line = std::string(*it); @@ -189,7 +189,7 @@ get_operator_description(const std::string &p_current_op_name, const CdoHelp &p_ // helper function for setting the spacing in operator_print_list static std::string -get_spacing_for(int p_space, const std::string &str) +get_spacing_for(int p_space, std::string const &str) { std::string spacing = ""; for (int i = str.size(); i <= p_space; ++i) spacing += " "; @@ -228,7 +228,7 @@ operator_print_list(std::function<bool(const CdoModule &)> selectionCriteria) if (selectionCriteria(current_module)) { output_list.push_back(operatorGetShortInfoString(current_op_name, current_module)); } } // print generated output list - for (const std::string &str : output_list) { std::cout << str << std::endl; } + for (std::string const &str : output_list) { std::cout << str << std::endl; } } void @@ -289,7 +289,7 @@ operatorPrintAll(void) std::vector<std::string> sorted_operator_names = Factory::get_sorted_operator_name_list(); std::cout << tab; - for (const auto &operatorName : sorted_operator_names) + for (auto const &operatorName : sorted_operator_names) { if (number_of_chars > 85) { @@ -332,11 +332,11 @@ operator_print_list(bool print_no_output) output_list[out_list_idx] += get_spacing_for(90, output_list[out_list_idx]) + in_out_info; } // print generated output list - for (const std::string &str : output_list) { std::cout << str << std::endl; } + for (std::string const &str : output_list) { std::cout << str << std::endl; } } void -cdo_print_help(const std::string &p_operator_name) +cdo_print_help(std::string const &p_operator_name) { auto it = Factory::find(p_operator_name, [&p_operator_name]() { cdo_abort("%s", Factory::err_msg_oper_not_found(p_operator_name)); }); diff --git a/src/module_info.h b/src/module_info.h index d117e831f..aba83d6c4 100644 --- a/src/module_info.h +++ b/src/module_info.h @@ -20,17 +20,17 @@ struct ModListOptions std::map<const std::string, int> opt = { { s_obase, false }, { s_arbIn, false }, { s_filesOnly, false }, { s_onlyFirst, false }, { s_noOutput, false } }; - bool requested(const std::string &name); + bool requested(std::string const &name); bool mod_info_requested(); - bool parse_request(const std::string &requestString); + bool parse_request(std::string const &requestString); }; -std::string get_operator_description(const std::string &p_current_op_name, const std::vector<std::string> &p_help); +std::string get_operator_description(std::string const &p_current_op_name, const std::vector<std::string> &p_help); void operator_print_list(ModListOptions &p_modListOpt); std::pair<std::map<std::string, std::vector<std::string>>, std::map<std::string, std::pair<std::string, std::vector<std::string>>>> create_help_sections(const CdoHelp &p_help); void cdo_print_help(const char **help); -void cdo_print_help(const std::string &help); +void cdo_print_help(std::string const &help); void cdo_print_help(const CdoHelp &p_help); #endif diff --git a/src/mpmo.cc b/src/mpmo.cc index 221c8eb32..ab4636830 100644 --- a/src/mpmo.cc +++ b/src/mpmo.cc @@ -27,7 +27,7 @@ Debug_(const char *p_file, const char *p_func, int p_line, const char *context, * is permanently increased! */ std::string -get_padding(const std::string &debug_scope_string, int &p_padding_width) +get_padding(std::string const &debug_scope_string, int &p_padding_width) { int len = debug_scope_string.size(); while (p_padding_width - len <= 0) { p_padding_width += 5; } diff --git a/src/mpmo.h b/src/mpmo.h index 0f45216d0..e226a25d5 100644 --- a/src/mpmo.h +++ b/src/mpmo.h @@ -53,7 +53,7 @@ Argument(std::basic_string<T> const &value) noexcept template <typename... Args> void -Print(const std::string &format, Args const &...args) noexcept +Print(std::string const &format, Args const &...args) noexcept { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" @@ -64,7 +64,7 @@ Print(const std::string &format, Args const &...args) noexcept template <typename... Args> std::string -PrintCerr(const std::string &format, Args const &...args) +PrintCerr(std::string const &format, Args const &...args) { int cx; cx = snprintf(nullptr, 0, format.c_str(), Argument(args)...); @@ -82,7 +82,7 @@ void Debug_(const char *p_file, const char *p_func, int p_line, const char *cont template <typename... Args> void -Debug_(const char *p_file, const char *p_func, int p_line, const char *context, int p_debugScope, const std::string &format, +Debug_(const char *p_file, const char *p_func, int p_line, const char *context, int p_debugScope, std::string const &format, Args const &...args) { #pragma GCC diagnostic push @@ -97,14 +97,14 @@ Debug_(const char *p_file, const char *p_func, int p_line, const char *context, template <typename... Args> void -Debug_(const char *p_file, const char *p_func, int p_line, const char *context, const std::string &format, Args const &...args) +Debug_(const char *p_file, const char *p_func, int p_line, const char *context, std::string const &format, Args const &...args) { Debug_(p_file, p_func, p_line, context, DebugLevel, format, args...); } template <typename... Args> void -Error_(const char *caller, const std::string &format, Args const &...args) noexcept +Error_(const char *caller, std::string const &format, Args const &...args) noexcept { PrintCerr(Red("Error:") + "(%s)" + format, caller, Argument(args)...); if (exitOnError) exit(EXIT_FAILURE); @@ -114,14 +114,14 @@ void Verbose_(std::function<void()> p_function) noexcept; template <typename... Args> void -Verbose_(const std::string &format, Args const &...args) noexcept +Verbose_(std::string const &format, Args const &...args) noexcept { if (verbose) PrintCerr(format, Argument(args)...); } template <typename... Args> void -Warning_(const char *caller, const std::string &format, Args const &...args) noexcept +Warning_(const char *caller, std::string const &format, Args const &...args) noexcept { (void) caller; // quell warning if WITH_CALLER_NAME is not defined if (warningsEnabled) @@ -137,7 +137,7 @@ Warning_(const char *caller, const std::string &format, Args const &...args) noe template <typename... Args> [[noreturn]] void -SysError_(const char *func, const std::string &format, Args const &...args) noexcept +SysError_(const char *func, std::string const &format, Args const &...args) noexcept { int saved_errno = errno; PrintCerr(Red("SysError: %s ") + format, func, Argument(args)...); diff --git a/src/node.cc b/src/node.cc index edc976c7c..fa02e1b47 100644 --- a/src/node.cc +++ b/src/node.cc @@ -2,7 +2,7 @@ #include "cdo_output.h" #include "cdo_node_attach_exception.h" -Node::Node(std::vector<std::string>::const_iterator p_iter, const std::string &p_oper, const std::string &args, +Node::Node(std::vector<std::string>::const_iterator p_iter, std::string const &p_oper, std::string const &args, module_constraints p_constraints) : iter(p_iter), oper(p_oper), arguments(args), constraints(p_constraints), type(OPERATOR) { @@ -27,7 +27,7 @@ Node::Node(int p_ncid, NodeType p_type) { } -Node::Node(const std::string &p_operName, const std::string &p_args, module_constraints p_constraints) +Node::Node(std::string const &p_operName, std::string const &p_args, module_constraints p_constraints) : oper(p_operName), arguments(p_args), constraints(p_constraints), type(OPERATOR) { } diff --git a/src/node.h b/src/node.h index 3e49b05d3..b35c77d5d 100644 --- a/src/node.h +++ b/src/node.h @@ -32,9 +32,9 @@ public: module_constraints constraints; std::vector<std::shared_ptr<Node>> children = {}; - Node(std::vector<std::string>::const_iterator p_iter, const std::string &p_operName, const std::string &p_args, + Node(std::vector<std::string>::const_iterator p_iter, std::string const &p_operName, std::string const &p_args, module_constraints p_constraints); - Node(const std::string &p_operName, const std::string &p_args, module_constraints p_constraints); + Node(std::string const &p_operName, std::string const &p_args, module_constraints p_constraints); Node(std::vector<std::string>::const_iterator p_iter, NodeType nodeType); Node(std::string p_filename, NodeType nodeType); Node(int ncid, NodeType type); diff --git a/src/oper_args.cc b/src/oper_args.cc index bd2b06bac..f4aa10268 100644 --- a/src/oper_args.cc +++ b/src/oper_args.cc @@ -35,7 +35,7 @@ ArgumentHandler::parse(const std::vector<std::string> &argv) return -1; } - for (const std::string &arg : argv) + for (std::string const &arg : argv) { auto current = keyValuePairs.end(); equalPos = arg.find('='); @@ -72,19 +72,19 @@ ArgumentHandler::parse(const std::vector<std::string> &argv) } OperArg -optional(const std::string &key, std::function<std::any(const std::string)> p_func, std::string mut_exclusive) +optional(std::string const &key, std::function<std::any(const std::string)> p_func, std::string mut_exclusive) { return OperArg(key, p_func, { mut_exclusive }); } OperArg -optional(const std::string &key, std::function<std::any(const std::string)> p_func, const std::vector<std::string> &mut_exclusive) +optional(std::string const &key, std::function<std::any(const std::string)> p_func, const std::vector<std::string> &mut_exclusive) { return OperArg(key, p_func, mut_exclusive); } OperArg -required(const std::string &key, std::function<std::any(const std::string)> p_func, std::string mut_exclusive) +required(std::string const &key, std::function<std::any(const std::string)> p_func, std::string mut_exclusive) { auto operarg = OperArg(key, p_func, { mut_exclusive }); operarg.required = true; @@ -92,7 +92,7 @@ required(const std::string &key, std::function<std::any(const std::string)> p_fu } OperArg -required(const std::string &key, std::function<std::any(const std::string)> p_func, const std::vector<std::string> &mut_exclusive) +required(std::string const &key, std::function<std::any(const std::string)> p_func, const std::vector<std::string> &mut_exclusive) { auto operarg = OperArg(key, p_func, mut_exclusive); operarg.required = true; diff --git a/src/oper_args.h b/src/oper_args.h index 7088d0aa5..9288448f4 100644 --- a/src/oper_args.h +++ b/src/oper_args.h @@ -12,7 +12,7 @@ class OperArg { public: - OperArg(const std::string &p_key, std::function<std::any(const std::string)> p_func, + OperArg(std::string const &p_key, std::function<std::any(const std::string)> p_func, const std::vector<std::string> &p_exclusive_with) : key(p_key), func([p_func](const std::string l_key) { return p_func(l_key); }), exclusive_with(p_exclusive_with) { @@ -54,7 +54,7 @@ public: // Templates template <typename T> bool - get(const std::string &key, T &value) + get(std::string const &key, T &value) { Debug(false, "getting arg %s", key); @@ -74,7 +74,7 @@ public: template <class T, template <class, class Allocator = std::allocator<T>> class V> bool - get(const std::string &key, V<T> &values) + get(std::string const &key, V<T> &values) { Debug(false, "getting arg %s", key); diff --git a/src/param_conversion.cc b/src/param_conversion.cc index 60a9fcc2e..d5057ad7a 100644 --- a/src/param_conversion.cc +++ b/src/param_conversion.cc @@ -45,7 +45,7 @@ parameter_error(const char *name, const char *cstring, const char *endptr) } long -parameter_to_bytes(const std::string &string) +parameter_to_bytes(std::string const &string) { char *endptr = nullptr; auto numBytes = strtoimax(string.c_str(), &endptr, 10); @@ -125,8 +125,8 @@ parameter_to_intlist(const char *const cstring) return ival; } -const std::string & -parameter_to_word(const std::string &string) +std::string const & +parameter_to_word(std::string const &string) { auto len = string.size(); @@ -142,7 +142,7 @@ parameter_to_word(const std::string &string) } bool -parameter_to_bool(const std::string &string) +parameter_to_bool(std::string const &string) { auto lstring = string_to_lower(string); @@ -155,37 +155,37 @@ parameter_to_bool(const std::string &string) } double -parameter_to_double(const std::string &string) +parameter_to_double(std::string const &string) { return parameter_to_double(string.c_str()); } int -parameter_to_int(const std::string &string) +parameter_to_int(std::string const &string) { return parameter_to_int(string.c_str()); } long -parameter_to_long(const std::string &string) +parameter_to_long(std::string const &string) { return parameter_to_long(string.c_str()); } size_t -parameter_to_size_t(const std::string &string) +parameter_to_size_t(std::string const &string) { return parameter_to_size_t(string.c_str()); } int -parameter_to_intlist(const std::string &string) +parameter_to_intlist(std::string const &string) { return parameter_to_intlist(string.c_str()); } double -radius_str_to_meter(const std::string &string) +radius_str_to_meter(std::string const &string) { char *endptr = nullptr; auto radius = strtod(string.c_str(), &endptr); @@ -204,7 +204,7 @@ radius_str_to_meter(const std::string &string) } double -radius_str_to_deg(const std::string &string) +radius_str_to_deg(std::string const &string) { char *endptr = nullptr; auto radius = strtod(string.c_str(), &endptr); @@ -238,7 +238,7 @@ string_to_param(const char *const paramstr) } int -string_to_param(const std::string ¶mstr) +string_to_param(std::string const ¶mstr) { return string_to_param(paramstr.c_str()); } @@ -267,7 +267,7 @@ param_to_string(int param) /* time/date/season converisons */ /* =================================================================================== */ void -season_to_months(const std::string &season, int *imonths) +season_to_months(std::string const &season, int *imonths) { const char *const smons = "JFMAMJJASONDJFMAMJJASOND"; const int imons[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; @@ -296,7 +296,7 @@ season_to_months(const std::string &season, int *imonths) } double -datestr_to_double(const std::string &datestr, int opt) +datestr_to_double(std::string const &datestr, int opt) { for (size_t i = 0, n = datestr.size(); i < n; ++i) { @@ -345,7 +345,7 @@ cdo_argv_to_intarr(const std::vector<std::string> &argv) { std::vector<int> v; - for (const auto &argument : argv) + for (auto const &argument : argv) { int first, last, inc; split_intstring(argument, first, last, inc); @@ -368,7 +368,7 @@ cdo_argv_to_fltarr(const std::vector<std::string> &argv) { std::vector<double> v; - for (const auto &argument : argv) + for (auto const &argument : argv) { auto len = (int) argument.size(); int i; @@ -427,7 +427,7 @@ split_intstring(const char *const intstr, int &first, int &last, int &inc) } void -split_intstring(const std::string &intstr, int &first, int &last, int &inc) +split_intstring(std::string const &intstr, int &first, int &last, int &inc) { split_intstring(intstr.c_str(), first, last, inc); } @@ -464,56 +464,56 @@ split_fltstring(const char *const intstr, double &first, double &last, double &i } void -split_fltstring(const std::string &fltstr, double &first, double &last, double &inc) +split_fltstring(std::string const &fltstr, double &first, double &last, double &inc) { split_fltstring(fltstr.c_str(), first, last, inc); } template <> int -convert(const std::string &str_value) +convert(std::string const &str_value) { return parameter_to_int(str_value.c_str()); } template <> double -convert(const std::string &str_value) +convert(std::string const &str_value) { return parameter_to_double(str_value.c_str()); } template <> bool -convert(const std::string &str_value) +convert(std::string const &str_value) { return parameter_to_bool(str_value); } template <> long -convert(const std::string &str_value) +convert(std::string const &str_value) { return parameter_to_long(str_value.c_str()); } template <> size_t -convert(const std::string &str_value) +convert(std::string const &str_value) { return parameter_to_size_t(str_value.c_str()); } template <> std::string -convert(const std::string &str_value) +convert(std::string const &str_value) { return parameter_to_word(str_value.c_str()); } template <> FillMethod -convert(const std::string &str_value) +convert(std::string const &str_value) { auto fillMethod = string_to_fillmethod(parameter_to_word(str_value)); diff --git a/src/param_conversion.h b/src/param_conversion.h index 88603e5e4..270ec4da8 100644 --- a/src/param_conversion.h +++ b/src/param_conversion.h @@ -4,7 +4,7 @@ #include <string> #include <vector> -long parameter_to_bytes(const std::string &string); +long parameter_to_bytes(std::string const &string); const char *parameter_to_word(const char *cstring); double parameter_to_double(const char *cstring); @@ -13,33 +13,33 @@ long parameter_to_long(const char *cstring); size_t parameter_to_size_t(const char *cstring); int parameter_to_intlist(const char *cstring); -const std::string ¶meter_to_word(const std::string &string); -double parameter_to_double(const std::string &string); -bool parameter_to_bool(const std::string &string); -int parameter_to_int(const std::string &string); -long parameter_to_long(const std::string &string); -size_t parameter_to_size_t(const std::string &string); -int parameter_to_intlist(const std::string &string); +std::string const ¶meter_to_word(std::string const &string); +double parameter_to_double(std::string const &string); +bool parameter_to_bool(std::string const &string); +int parameter_to_int(std::string const &string); +long parameter_to_long(std::string const &string); +size_t parameter_to_size_t(std::string const &string); +int parameter_to_intlist(std::string const &string); -double radius_str_to_meter(const std::string &string); -double radius_str_to_deg(const std::string &string); +double radius_str_to_meter(std::string const &string); +double radius_str_to_deg(std::string const &string); -int string_to_param(const std::string ¶mstr); +int string_to_param(std::string const ¶mstr); std::string param_to_string(int param); /* time/date/season converisons */ /* =================================================================================== */ -void season_to_months(const std::string &season, int *imonths); -double datestr_to_double(const std::string &datestr, int opt); +void season_to_months(std::string const &season, int *imonths); +double datestr_to_double(std::string const &datestr, int opt); /* argv conversions */ std::vector<int> cdo_argv_to_intarr(const std::vector<std::string> &argv); std::vector<double> cdo_argv_to_fltarr(const std::vector<std::string> &argv); -void split_intstring(const std::string &intstr, int &first, int &last, int &inc); -void split_fltstring(const std::string &fltstr, double &first, double &last, double &inc); +void split_intstring(std::string const &intstr, int &first, int &last, int &inc); +void split_fltstring(std::string const &fltstr, double &first, double &last, double &inc); template <typename T> -T convert(const std::string &str_value); +T convert(std::string const &str_value); #endif diff --git a/src/parse_literals.cc b/src/parse_literals.cc index 3621ec121..d66ef064e 100644 --- a/src/parse_literals.cc +++ b/src/parse_literals.cc @@ -14,7 +14,7 @@ #include "parse_literals.h" int -literal_get_datatype(const std::string &literal) +literal_get_datatype(std::string const &literal) { if (!literal.empty()) { @@ -73,7 +73,7 @@ literals_find_datatype(int n, const std::vector<std::string> &literals) } int -literal_to_int(const std::string &literal) +literal_to_int(std::string const &literal) { int ival = INT_MAX; @@ -87,7 +87,7 @@ literal_to_int(const std::string &literal) } double -literal_to_double(const std::string &literal) +literal_to_double(std::string const &literal) { double dval = DBL_MAX; diff --git a/src/parse_literals.h b/src/parse_literals.h index d7bf28390..4b7dfaeba 100644 --- a/src/parse_literals.h +++ b/src/parse_literals.h @@ -5,8 +5,8 @@ #include <string> int literals_find_datatype(int n, const std::vector<std::string> &literals); -int literal_get_datatype(const std::string &literal); -int literal_to_int(const std::string &literal); -double literal_to_double(const std::string &literal); +int literal_get_datatype(std::string const &literal); +int literal_to_int(std::string const &literal); +double literal_to_double(std::string const &literal); #endif diff --git a/src/parser.cc b/src/parser.cc index d25e103ab..4f9cd9f06 100644 --- a/src/parser.cc +++ b/src/parser.cc @@ -28,7 +28,7 @@ namespace Util { void -extract_name_and_argument(const std::string &command, std::string &operatorName, std::string &operatorArgument) +extract_name_and_argument(std::string const &command, std::string &operatorName, std::string &operatorArgument) { constexpr char delimiter = ','; @@ -52,7 +52,7 @@ tab() } std::vector<std::string> -generate_tokens(const std::string &p_oper) +generate_tokens(std::string const &p_oper) { std::vector<std::string> result = {}; @@ -184,7 +184,7 @@ public: void pop() { - const auto &node = stack.back(); + auto const &node = stack.back(); debug_parser("poping node: %s", node->oper); if (node->constraints.streamInCnt == -1) { cntVariableInputs--; } debug_parser("poping node: %s", node->oper); @@ -397,7 +397,7 @@ handle_sub_group_end(ARGV_ITERATOR &p_cur_arg, PARSER_STACK &p_parser_stack) { // passing on all root to roots of next parser in case of variable input operators, apply and too many brackets // This also allows to ignore double brackets e.g -merge [ [ -topo -topo ] ] - for (const auto &node : finished_group.get_roots()) { cur_parser.add_root(node); } + for (auto const &node : finished_group.get_roots()) { cur_parser.add_root(node); } } else { diff --git a/src/parser.h b/src/parser.h index 20d215fde..089aa5722 100644 --- a/src/parser.h +++ b/src/parser.h @@ -75,17 +75,17 @@ std::vector<std::shared_ptr<Node>> _parse(std::vector<std::string> p_argv); namespace Util { -void extract_name_and_argument(const std::string &command, std::string &operatorName, std::string &operatorArgument); +void extract_name_and_argument(std::string const &command, std::string &operatorName, std::string &operatorArgument); std::string result_to_string(std::vector<std::shared_ptr<Node>> p_roots, std::string p_text = "returning: "); std::string build_err_msg(std::vector<std::string> &p_argv, const std::vector<std::string>::const_iterator &iter, - const std::string &prompt, int cdo_abort_prompt_spacing = 10); + std::string const &prompt, int cdo_abort_prompt_spacing = 10); } // namespace Util struct MissingOutFileException : public std::invalid_argument { - explicit MissingOutFileException(const std::string &p_msg) : std::invalid_argument(p_msg) {} + explicit MissingOutFileException(std::string const &p_msg) : std::invalid_argument(p_msg) {} }; } // namespace Parser diff --git a/src/percentiles.cc b/src/percentiles.cc index b28b56f16..2fd9db8e2 100644 --- a/src/percentiles.cc +++ b/src/percentiles.cc @@ -274,7 +274,7 @@ set_numpy_method(NumpyMethod npMethod) } void -percentile_set_method(const std::string &methodStr) +percentile_set_method(std::string const &methodStr) { auto methodName = string_to_lower(methodStr); diff --git a/src/percentiles.h b/src/percentiles.h index 3b5db4e00..e6860e9f0 100644 --- a/src/percentiles.h +++ b/src/percentiles.h @@ -9,7 +9,7 @@ #include <string> -void percentile_set_method(const std::string &methodstr); +void percentile_set_method(std::string const &methodstr); template <typename T> double percentile(T *array, size_t len, double pn); diff --git a/src/percentiles_hist.cc b/src/percentiles_hist.cc index ca410d8c1..8705ee1de 100644 --- a/src/percentiles_hist.cc +++ b/src/percentiles_hist.cc @@ -304,7 +304,7 @@ def_bounds(size_t nhists, std::vector<HistogramEntry> &hists, const Varray<T1> & } void -HistogramSet::defVarLevelBounds(int varID, int levelID, const Field &field1, const Field &field2) +HistogramSet::defVarLevelBounds(int varID, int levelID, Field const &field1, Field const &field2) { if (varID < 0 || varID >= nvars) cdo_abort("Illegal argument: varID %d is undefined (%s)", varID, __func__); @@ -319,13 +319,13 @@ HistogramSet::defVarLevelBounds(int varID, int levelID, const Field &field1, con float mv1 = (float) field1.missval; float mv2 = (float) field2.missval; - auto func = [&](const auto &v1, const auto &v2) { def_bounds(nhists, hists, v1, v2, mv1, mv2); }; + auto func = [&](auto const &v1, auto const &v2) { def_bounds(nhists, hists, v1, v2, mv1, mv2); }; field_operation2(func, field1, field2); } template <typename T> static int -histAddVarLevelValues(size_t nhists, std::vector<HistogramEntry> &hists, const Varray<T> &v, size_t numMissVals, double missval) +histAddVarLevelValues(size_t nhists, std::vector<HistogramEntry> &hists, Varray<T> const &v, size_t numMissVals, double missval) { T mv = missval; assert(!v.empty()); @@ -346,7 +346,7 @@ histAddVarLevelValues(size_t nhists, std::vector<HistogramEntry> &hists, const V template <typename T> static int -histSubVarLevelValues(size_t nhists, std::vector<HistogramEntry> &hists, const Varray<T> &v, size_t numMissVals, double missval) +histSubVarLevelValues(size_t nhists, std::vector<HistogramEntry> &hists, Varray<T> const &v, size_t numMissVals, double missval) { T mv = missval; assert(!v.empty()); @@ -366,7 +366,7 @@ histSubVarLevelValues(size_t nhists, std::vector<HistogramEntry> &hists, const V } int -HistogramSet::addVarLevelValues(int varID, int levelID, const Field &field) +HistogramSet::addVarLevelValues(int varID, int levelID, Field const &field) { if (varID < 0 || varID >= nvars) cdo_abort("Illegal argument: varID %d is undefined (%s)", varID, __func__); @@ -390,7 +390,7 @@ HistogramSet::addVarLevelValues(int varID, int levelID, const Field &field) } int -HistogramSet::subVarLevelValues(int varID, int levelID, const Field &field) +HistogramSet::subVarLevelValues(int varID, int levelID, Field const &field) { if (varID < 0 || varID >= nvars) cdo_abort("Illegal argument: varID %d is undefined (%s)", varID, __func__); @@ -466,7 +466,7 @@ HistogramSet::getVarLevelPercentiles(Field &field, int varID, int levelID, doubl auto nhists = this->var_nhists[varID]; if (nhists != gridInqSize(field.grid)) cdo_abort("Grids are different (%s)", __func__); - const auto &hists = this->histograms[varID][levelID]; + auto const &hists = this->histograms[varID][levelID]; auto func = [&](auto &v, double mv) { return calcPercentile(nhists, hists, p, v, mv); }; field.numMissVals = field_operation(func, field, field.missval); diff --git a/src/percentiles_hist.h b/src/percentiles_hist.h index a63c023d9..4f9a444c5 100644 --- a/src/percentiles_hist.h +++ b/src/percentiles_hist.h @@ -78,9 +78,9 @@ public: } void createVarLevels(int varID, int nlevels, size_t nhists); - void defVarLevelBounds(int varID, int levelID, const Field &field1, const Field &field2); - int addVarLevelValues(int varID, int levelID, const Field &field); - int subVarLevelValues(int varID, int levelID, const Field &field); + void defVarLevelBounds(int varID, int levelID, Field const &field1, Field const &field2); + int addVarLevelValues(int varID, int levelID, Field const &field); + int subVarLevelValues(int varID, int levelID, Field const &field); void getVarLevelPercentiles(Field &field, int varID, int levelID, double p); // void reset(int varID, int levelID); // unused }; diff --git a/src/pmlist.cc b/src/pmlist.cc index 74013b0c5..7dc364667 100644 --- a/src/pmlist.cc +++ b/src/pmlist.cc @@ -26,7 +26,7 @@ keyValuesPrint(FILE *fp, const KeyValues &keyValues) void KVList::print(FILE *fp) const { - for (const auto &keyValues : *this) keyValuesPrint(fp, keyValues); + for (auto const &keyValues : *this) keyValuesPrint(fp, keyValues); } int @@ -79,9 +79,9 @@ KVList::parse_arguments(const std::vector<std::string> &argv) } const KeyValues * -KVList::search(const std::string &key) const +KVList::search(std::string const &key) const { - for (const auto &kv : *this) + for (auto const &kv : *this) { if (kv.key == key) return &kv; } @@ -90,7 +90,7 @@ KVList::search(const std::string &key) const } const std::string -KVList::get_first_value(const std::string &key, const std::string &replacer) +KVList::get_first_value(std::string const &key, std::string const &replacer) { auto kv = this->search(key); if (kv && kv->nvalues > 0) return kv->values[0]; @@ -98,7 +98,7 @@ KVList::get_first_value(const std::string &key, const std::string &replacer) } void -KVList::append(const std::string &key, const std::vector<std::string> &values, int nvalues) +KVList::append(std::string const &key, const std::vector<std::string> &values, int nvalues) { KeyValues kv; kv.key = key; @@ -110,7 +110,7 @@ KVList::append(const std::string &key, const std::vector<std::string> &values, i // Remove only one list item void -KVList::remove(const std::string &inkey) +KVList::remove(std::string const &inkey) { std::list<KeyValues>::iterator i; for (i = this->begin(); i != this->end(); ++i) @@ -119,11 +119,11 @@ KVList::remove(const std::string &inkey) } const KVList * -PMList::searchKVListVentry(const std::string &key, const std::string &value, const std::vector<std::string> &entry) +PMList::searchKVListVentry(std::string const &key, std::string const &value, const std::vector<std::string> &entry) { - for (const auto &kvlist : *this) + for (auto const &kvlist : *this) { - for (const auto &s : entry) + for (auto const &s : entry) if (kvlist.name == s) { auto kv = kvlist.search(key); @@ -137,9 +137,9 @@ PMList::searchKVListVentry(const std::string &key, const std::string &value, con const KVList * PMList::getKVListVentry(const std::vector<std::string> &entry) { - for (const auto &kvlist : *this) + for (auto const &kvlist : *this) { - for (const auto &s : entry) + for (auto const &s : entry) if (kvlist.name == s) return &kvlist; } @@ -226,7 +226,7 @@ parse_namelist(PMList &pmlist, NamelistParser &parser, char *buf, bool cdocmor) for (unsigned long it = 0; it < ntok; ++it) { - const auto &t = tokens[it]; + auto const &t = tokens[it]; // printf("Token %u", it+1); if (t.type == NamelistType::OBJECT) { @@ -234,7 +234,7 @@ parse_namelist(PMList &pmlist, NamelistParser &parser, char *buf, bool cdocmor) if (it + 1 < ntok && tokens[it + 1].type == NamelistType::WORD) { it++; - const auto &t2 = tokens[it]; + auto const &t2 = tokens[it]; std::snprintf(name, sizeof(name), "%.*s", (int) (t2.end - t2.start), buf + t2.start); name[sizeof(name) - 1] = 0; } @@ -330,7 +330,7 @@ PMList::read_namelist(FILE *fp, const char *name) void PMList::print(FILE *fp) { - for (const auto &kvlist : *this) + for (auto const &kvlist : *this) { fprintf(fp, "\nFound %s list with %zu key/values: \n", kvlist.name.c_str(), kvlist.size()); kvlist.print(fp); diff --git a/src/pmlist.h b/src/pmlist.h index bf40f0994..56787c4fd 100644 --- a/src/pmlist.h +++ b/src/pmlist.h @@ -35,10 +35,10 @@ public: void print(FILE *fp = stderr) const; int parse_arguments(const std::vector<std::string> &argv); - const KeyValues *search(const std::string &key) const; - void remove(const std::string &inkey); - void append(const std::string &key, const std::vector<std::string> &values, int nvalues); - const std::string get_first_value(const std::string &key, const std::string &replacer); + const KeyValues *search(std::string const &key) const; + void remove(std::string const &inkey); + void append(std::string const &key, const std::vector<std::string> &values, int nvalues); + const std::string get_first_value(std::string const &key, std::string const &replacer); }; // clang-format off @@ -50,7 +50,7 @@ PMList : public std::list<KVList> // clang-format on { public: - const KVList *searchKVListVentry(const std::string &key, const std::string &value, const std::vector<std::string> &entry); + const KVList *searchKVListVentry(std::string const &key, std::string const &value, const std::vector<std::string> &entry); const KVList *getKVListVentry(const std::vector<std::string> &entry); void print(FILE *fp = stderr); void read_namelist(FILE *fp, const char *name); diff --git a/src/pointsearch_full.h b/src/pointsearch_full.h index e7f661e54..caa7142ac 100644 --- a/src/pointsearch_full.h +++ b/src/pointsearch_full.h @@ -20,14 +20,14 @@ class PointsearchFull : public PointsearchStrategy { public: - PointsearchFull(const Varray<double> &lons, const Varray<double> &lats, const PointsearchParams ¶ms) : m_params{ params } + PointsearchFull(Varray<double> const &lons, Varray<double> const &lats, const PointsearchParams ¶ms) : m_params{ params } { create(lons, lats); } ~PointsearchFull() {} size_t - search_nearest(const PointLonLat &pointLL, size_t *index, double *dist) override + search_nearest(PointLonLat const &pointLL, size_t *index, double *dist) override { if (m_pointsXYZ == nullptr) return 0; @@ -59,7 +59,7 @@ public: } size_t - search_qnearest(const PointLonLat &pointLL, size_t nnn, size_t *indices, double *dist) override + search_qnearest(PointLonLat const &pointLL, size_t nnn, size_t *indices, double *dist) override { (void) pointLL; (void) nnn; @@ -86,7 +86,7 @@ private: const PointsearchParams &m_params; void - create(const Varray<double> &lons, const Varray<double> &lats) + create(Varray<double> const &lons, Varray<double> const &lats) { auto n = lons.size(); m_pointsXYZ = std::make_unique<double[][3]>(n); diff --git a/src/pointsearch_healpix.h b/src/pointsearch_healpix.h index 59462247a..8751201b7 100644 --- a/src/pointsearch_healpix.h +++ b/src/pointsearch_healpix.h @@ -22,7 +22,7 @@ public: /* not used because result differ from search() and unstruct::search() void - search_1nn(const PointLonLat &pointLL, knnDataType &knnData, double searchRadius) + search_1nn(PointLonLat const &pointLL, knnDataType &knnData, double searchRadius) { size_t index = (size_t) hp_lonlat_to_index(m_hpParams, pointLL.get_lon(), pointLL.get_lat()); @@ -37,7 +37,7 @@ public: */ void - search(const PointLonLat &pointLL, KnnData &knnData, double searchRadius) + search(PointLonLat const &pointLL, KnnData &knnData, double searchRadius) { auto index = hp_lonlat_to_index(m_hpParams, pointLL.get_lon(), pointLL.get_lat()); @@ -72,7 +72,7 @@ private: HpParams m_hpParams; void - store_distance_healpix(double searchRadius, const PointLonLat &pointLL, KnnData &knnData, size_t numIndices, size_t *indices, + store_distance_healpix(double searchRadius, PointLonLat const &pointLL, KnnData &knnData, size_t numIndices, size_t *indices, double *lons, double *lats) { double tgtCoord[3]; diff --git a/src/pointsearch_kdtree.h b/src/pointsearch_kdtree.h index 498abbc69..98240edb1 100644 --- a/src/pointsearch_kdtree.h +++ b/src/pointsearch_kdtree.h @@ -20,7 +20,7 @@ class PointsearchKDtree : public PointsearchStrategy { public: - PointsearchKDtree(const Varray<double> &lons, const Varray<double> &lats, const PointsearchParams ¶ms) : m_params{ params } + PointsearchKDtree(Varray<double> const &lons, Varray<double> const &lats, const PointsearchParams ¶ms) : m_params{ params } { create(lons, lats); } @@ -30,7 +30,7 @@ public: } size_t - search_nearest(const PointLonLat &pointLL, size_t *index, double *dist) override + search_nearest(PointLonLat const &pointLL, size_t *index, double *dist) override { if (m_kdtree == nullptr) return 0; @@ -56,7 +56,7 @@ public: } size_t - search_qnearest(const PointLonLat &pointLL, size_t nnn, size_t *indices, double *dist) override + search_qnearest(PointLonLat const &pointLL, size_t nnn, size_t *indices, double *dist) override { size_t numIndices = 0; @@ -101,7 +101,7 @@ private: const PointsearchParams &m_params; void - create(const Varray<double> &lons, const Varray<double> &lats) + create(Varray<double> const &lons, Varray<double> const &lats) { auto n = lons.size(); std::vector<kd_point> pointlist(n); diff --git a/src/pointsearch_nanoflann.h b/src/pointsearch_nanoflann.h index d2563e369..23cbd19cb 100644 --- a/src/pointsearch_nanoflann.h +++ b/src/pointsearch_nanoflann.h @@ -69,14 +69,14 @@ using nfTree_t class PointsearchNanoflann : public PointsearchStrategy { public: - PointsearchNanoflann(const Varray<double> &lons, const Varray<double> &lats, const PointsearchParams ¶ms) : m_params(params) + PointsearchNanoflann(Varray<double> const &lons, Varray<double> const &lats, const PointsearchParams ¶ms) : m_params(params) { create(lons, lats); } ~PointsearchNanoflann() {} size_t - search_nearest(const PointLonLat &pointLL, size_t *index, double *dist) override + search_nearest(PointLonLat const &pointLL, size_t *index, double *dist) override { if (m_nfTree == nullptr) return 0; @@ -108,7 +108,7 @@ public: } size_t - search_qnearest(const PointLonLat &pointLL, size_t nnn, size_t *indices, double *dist) override + search_qnearest(PointLonLat const &pointLL, size_t nnn, size_t *indices, double *dist) override { size_t numIndices = 0; @@ -137,7 +137,7 @@ private: const PointsearchParams &m_params; void - create(const Varray<double> &lons, const Varray<double> &lats) + create(Varray<double> const &lons, Varray<double> const &lats) { auto n = lons.size(); m_pointCloud = std::make_unique<PointCloud<double>>(); diff --git a/src/pointsearch_reg2d.h b/src/pointsearch_reg2d.h index 55fd37781..5bd0b5929 100644 --- a/src/pointsearch_reg2d.h +++ b/src/pointsearch_reg2d.h @@ -14,13 +14,13 @@ #include "grid_convert.h" #include "varray.h" -bool rect_grid_search(size_t &ii, size_t &jj, double x, double y, size_t nxm, size_t nym, const Varray<double> &xm, - const Varray<double> &ym); +bool rect_grid_search(size_t &ii, size_t &jj, double x, double y, size_t nxm, size_t nym, Varray<double> const &xm, + Varray<double> const &ym); class PointsearchReg2d { public: - PointsearchReg2d(const Varray<double> &lons, const Varray<double> &lats, const PointsearchParams ¶ms) + PointsearchReg2d(Varray<double> const &lons, Varray<double> const &lats, const PointsearchParams ¶ms) { m_nx = params.dims[0]; m_ny = params.dims[1]; @@ -29,7 +29,7 @@ public: ~PointsearchReg2d() {} void - create(const Varray<double> &lons, const Varray<double> &lats, bool isCyclic) + create(Varray<double> const &lons, Varray<double> const &lats, bool isCyclic) { auto nxm = isCyclic ? m_nx + 1 : m_nx; diff --git a/src/pointsearch_spherepart.h b/src/pointsearch_spherepart.h index c3ea40eec..9808a1316 100644 --- a/src/pointsearch_spherepart.h +++ b/src/pointsearch_spherepart.h @@ -22,7 +22,7 @@ extern "C" class PointsearchSpherepart : public PointsearchStrategy { public: - PointsearchSpherepart(const Varray<double> &lons, const Varray<double> &lats, const PointsearchParams ¶ms) : m_params(params) + PointsearchSpherepart(Varray<double> const &lons, Varray<double> const &lats, const PointsearchParams ¶ms) : m_params(params) { create(lons, lats); } @@ -32,7 +32,7 @@ public: } size_t - search_nearest(const PointLonLat &pointLL, size_t *index, double *dist) override + search_nearest(PointLonLat const &pointLL, size_t *index, double *dist) override { if (m_yacPointSearch == nullptr) return 0; @@ -72,7 +72,7 @@ public: } size_t - search_qnearest(const PointLonLat &pointLL, size_t nnn, size_t *indices, double *dist) override + search_qnearest(PointLonLat const &pointLL, size_t nnn, size_t *indices, double *dist) override { size_t numIndices = 0; @@ -128,7 +128,7 @@ private: const PointsearchParams &m_params; void - create(const Varray<double> &lons, const Varray<double> &lats) + create(Varray<double> const &lons, Varray<double> const &lats) { auto n = lons.size(); m_pointsXYZ = std::make_unique<double[][3]>(n); diff --git a/src/pointsearch_unstruct.h b/src/pointsearch_unstruct.h index 1155133d1..277ee4eb2 100644 --- a/src/pointsearch_unstruct.h +++ b/src/pointsearch_unstruct.h @@ -25,8 +25,8 @@ class PointsearchStrategy { public: virtual ~PointsearchStrategy() = default; - virtual size_t search_nearest(const PointLonLat &pointLL, size_t *index, double *dist) = 0; - virtual size_t search_qnearest(const PointLonLat &pointLL, size_t nnn, size_t *index, double *dist) = 0; + virtual size_t search_nearest(PointLonLat const &pointLL, size_t *index, double *dist) = 0; + virtual size_t search_qnearest(PointLonLat const &pointLL, size_t nnn, size_t *index, double *dist) = 0; }; class PointsearchUnstruct @@ -54,7 +54,7 @@ public: } size_t - search_nearest(const PointLonLat &pointLL, size_t *index, double *dist) + search_nearest(PointLonLat const &pointLL, size_t *index, double *dist) { if (m_strategy) { return m_strategy->search_nearest(pointLL, index, dist); } fprintf(stderr, "PointsearchUnstruct::search_nearest: PointsearchStrategy not initialized!\n"); @@ -62,7 +62,7 @@ public: } size_t - search_qnearest(const PointLonLat &pointLL, size_t nnn, size_t *index, double *dist) + search_qnearest(PointLonLat const &pointLL, size_t nnn, size_t *index, double *dist) { if (m_strategy) { return m_strategy->search_qnearest(pointLL, nnn, index, dist); } fprintf(stderr, "PointsearchUnstruct::search_qnearest: PointsearchStrategy not initialized!\n"); diff --git a/src/printinfo.cc b/src/printinfo.cc index c818f68e4..13e17dbc8 100644 --- a/src/printinfo.cc +++ b/src/printinfo.cc @@ -476,7 +476,7 @@ print_grid_info(int vlistID) } static void -printZaxisBoundsInfo(int zaxisID, int dig, int levelsize, double zinc, const std::string &zunits) +printZaxisBoundsInfo(int zaxisID, int dig, int levelsize, double zinc, std::string const &zunits) { auto level1 = zaxisInqLbound(zaxisID, 0); auto level2 = zaxisInqUbound(zaxisID, 0); @@ -520,8 +520,8 @@ zaxisTypeIsSingleLayer(int zaxistype) } static void -printZaxisLevelInfo(int levelsize, int zaxisID, int zaxistype, double &zinc, int dig, const std::string &zname, - const std::string &zunits) +printZaxisLevelInfo(int levelsize, int zaxisID, int zaxistype, double &zinc, int dig, std::string const &zname, + std::string const &zunits) { Varray<double> levels(levelsize); zaxisInqLevels(zaxisID, levels.data()); diff --git a/src/process.cc b/src/process.cc index d3555a61f..03d8742b9 100644 --- a/src/process.cc +++ b/src/process.cc @@ -53,7 +53,7 @@ set_process_num(int p_num) } std::string -Process::replace_alias(const std::string &p_calledBy, const CdoModule &p_module) +Process::replace_alias(std::string const &p_calledBy, const CdoModule &p_module) { std::string originalName = p_calledBy; int aliasID = p_module.is_alias(p_calledBy); @@ -61,7 +61,7 @@ Process::replace_alias(const std::string &p_calledBy, const CdoModule &p_module) return originalName; } -Process::Process(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, +Process::Process(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module) : arguments(p_module.arguments), m_ID(p_ID), m_module(p_module), m_oargv(p_arguments) { @@ -86,7 +86,7 @@ Process::get_stream_cnt_out() } void -Process::def_prompt(const std::string &name) +Process::def_prompt(std::string const &name) { if (m_ID == 0) std::snprintf(prompt, sizeof(prompt), "%s %s", cdo::progname, name.c_str()); @@ -118,7 +118,7 @@ Process::get_operator_id() } void -Process::add_file_in_stream(const std::string &file) +Process::add_file_in_stream(std::string const &file) { inputStreams.push_back(std::make_shared<FileStream>(file)); m_streamCnt++; @@ -134,20 +134,20 @@ Process::add_mem_in_stream(int ncid) } void -Process::add_mem_out_stream(const int &ncid) +Process::add_mem_out_stream(int const &ncid) { outputStreams.push_back(std::make_shared<MemoryStream>(ncid)); m_streamCnt++; } void -Process::add_mem_out_stream(const int &ncid, const int &file_id) +Process::add_mem_out_stream(int const &ncid, int const &file_id) { outputStreams.push_back(std::make_shared<MemoryStream>(ncid, file_id)); m_streamCnt++; } void -Process::add_file_out_stream(const std::string &file) +Process::add_file_out_stream(std::string const &file) { if (file[0] == '-') { cdo_abort("Missing output file. Found an operator instead of filename: %s", file); } outputStreams.push_back(std::make_shared<FileStream>(file)); @@ -245,7 +245,7 @@ Process::start_thread() bool Process::has_out_stream(CdoStreamID p_streamID) { - for (const auto &streamID : outputStreams) + for (auto const &streamID : outputStreams) { if (streamID == p_streamID) return true; } @@ -255,7 +255,7 @@ Process::has_out_stream(CdoStreamID p_streamID) bool Process::has_in_stream(CdoStreamID p_streamID) { - for (const auto &streamID : inputStreams) + for (auto const &streamID : inputStreams) { if (streamID == p_streamID) return true; } @@ -324,7 +324,7 @@ Process::create_output() } CdoStreamID -Process::open_write(const std::string &p_filename, int filetype) +Process::open_write(std::string const &p_filename, int filetype) { if (filetype == CDI_UNDEFID) filetype = cdo_filetype(); @@ -342,12 +342,12 @@ Process::open_write(const std::string &p_filename, int filetype) } void -Process::set_obase(const std::string &obase) +Process::set_obase(std::string const &obase) { m_obase = obase; } // TODO into cc -const std::string & +std::string const & Process::get_obase() { return m_obase; diff --git a/src/process.h b/src/process.h index 2ffd187ba..bfc6c840f 100644 --- a/src/process.h +++ b/src/process.h @@ -68,7 +68,7 @@ public: #endif /* Member Functions */ - Process(int p_ID, const std::string &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module); + Process(int p_ID, std::string const &p_operatorName, const std::vector<std::string> &p_arguments, const CdoModule &p_module); virtual ~Process() {Debug(PROCESS,"destruction of %s",operatorName);} pthread_t start_thread(); @@ -78,7 +78,7 @@ public: std::tuple<int, int> create_output(); - CdoStreamID open_write(const std::string &p_filename, int filetype = CDI_UNDEFID); + CdoStreamID open_write(std::string const &p_filename, int filetype = CDI_UNDEFID); void parse_arguments() { @@ -87,7 +87,7 @@ public: template <typename T> void - get_argument(const std::string &key, T &destination) + get_argument(std::string const &key, T &destination) { arguments.get(key, destination); } @@ -111,15 +111,15 @@ public: /** * Adds and creates a new file pstream to the in streams */ - void add_file_in_stream(const std::string &file); + void add_file_in_stream(std::string const &file); /** * Adds and creates a new file pstream to the out streams */ - void add_file_out_stream(const std::string &file); + void add_file_out_stream(std::string const &file); /** * Adds ands creates a memory stream to the out streams vector*/ - void add_mem_out_stream(const int &ncid); - void add_mem_out_stream(const int &ncid, const int &file_id); + void add_mem_out_stream(int const &ncid); + void add_mem_out_stream(int const &ncid, int const &file_id); /** * Adds a already created memory region to the process as input */ @@ -149,15 +149,15 @@ public: size_t get_oper_argc(); std::string get_argv(int idx); - const std::string &get_obase(); - void set_obase(const std::string &obase); + std::string const &get_obase(); + void set_obase(std::string const &obase); int get_id(); void close_streams(); - std::string replace_alias(const std::string &p_calledBy, const CdoModule &p_module); - void def_prompt(const std::string &name); + std::string replace_alias(std::string const &p_calledBy, const CdoModule &p_module); + void def_prompt(std::string const &name); void cdo_initialize(); void cdo_finish(void); diff --git a/src/processManager.cc b/src/processManager.cc index 900e7a50e..c5cf2a9f8 100644 --- a/src/processManager.cc +++ b/src/processManager.cc @@ -136,7 +136,7 @@ ProcessManager::buildProcessTree(std::vector<std::shared_ptr<Node>> roots) } else if (node->numOut() > 0) { - for (const auto &n : roots) + for (auto const &n : roots) { Debug(PROCESS, "adding out files to %s", node->oper); Debug(PROCESS, "node type = %d", n->type); @@ -144,7 +144,7 @@ ProcessManager::buildProcessTree(std::vector<std::shared_ptr<Node>> roots) } } - for (const auto &c : node->children) { handle_child_construction(first_process, c); } + for (auto const &c : node->children) { handle_child_construction(first_process, c); } set_process_num(m_processes.size()); } @@ -210,7 +210,7 @@ ProcessManager::clear_processes() } const std::shared_ptr<Process> -ProcessManager::create_process(const std::string &operatorName, const std::vector<std::string> &arguments) +ProcessManager::create_process(std::string const &operatorName, const std::vector<std::string> &arguments) { std::shared_ptr<Process> new_process; if ((m_numProcesses + 1) >= MAX_PROCESS) { cdo_abort("Limit of %d processes reached!", MAX_PROCESS); } diff --git a/src/processManager.h b/src/processManager.h index 6d2e53f38..5d4c0a5d1 100644 --- a/src/processManager.h +++ b/src/processManager.h @@ -39,7 +39,7 @@ private: int m_numProcesses = 0; int m_numProcessesActive = 0; - const std::shared_ptr<Process> create_process(const std::string &operatorName, const std::vector<std::string> &arguments); + const std::shared_ptr<Process> create_process(std::string const &operatorName, const std::vector<std::string> &arguments); void handle_child_construction(std::shared_ptr<Process> &parent, const std::shared_ptr<Node> &child); public: diff --git a/src/process_int.cc b/src/process_int.cc index b394a2311..bd447125d 100644 --- a/src/process_int.cc +++ b/src/process_int.cc @@ -75,7 +75,7 @@ cdo_operator_argc(void) return localProcess->get_oper_argc(); } -const std::string & +std::string const & cdo_operator_argv(size_t idx) { auto argc = localProcess->get_oper_argc(); diff --git a/src/process_int.h b/src/process_int.h index abc62bb4a..f6b1811b4 100644 --- a/src/process_int.h +++ b/src/process_int.h @@ -17,7 +17,7 @@ bool cdo_assert_files_only(); bool cdo_stream_is_pipe(CdoStreamID streamID); bool this_is_the_only_process(); bool data_is_unchanged(); -const std::string &cdo_operator_argv(size_t p_idx); +std::string const &cdo_operator_argv(size_t p_idx); const std::vector<std::string> &cdo_get_oper_argv(); std::string cdo_get_obase(); const char *cdo_get_stream_name(int p_streamIndex); diff --git a/src/region.cc b/src/region.cc index 899f47d0e..a7712d8ff 100644 --- a/src/region.cc +++ b/src/region.cc @@ -15,7 +15,7 @@ #include "region.h" static int -read_coords(size_t segmentNo, Varray<double> &xvals, Varray<double> &yvals, const std::string &polyfile, std::ifstream &file) +read_coords(size_t segmentNo, Varray<double> &xvals, Varray<double> &yvals, std::string const &polyfile, std::ifstream &file) { auto maxVals = xvals.size(); @@ -62,7 +62,7 @@ read_coords(size_t segmentNo, Varray<double> &xvals, Varray<double> &yvals, cons } void -read_regions_from_file(const std::string &filename, Regions ®ions) +read_regions_from_file(std::string const &filename, Regions ®ions) { std::ifstream file(filename); if (!file.is_open()) cdo_abort("Open failed on: %s\n", filename); diff --git a/src/region.h b/src/region.h index 5891fa6e6..9a29304a5 100644 --- a/src/region.h +++ b/src/region.h @@ -19,7 +19,7 @@ struct Regions size_t numSegments = 0; }; -void read_regions_from_file(const std::string &filename, Regions ®ions); +void read_regions_from_file(std::string const &filename, Regions ®ions); void read_regions_from_dcw(const char *codeNames, Regions ®ions); #endif // REGION_H diff --git a/src/remap.h b/src/remap.h index ba9ca82c9..3e876477c 100644 --- a/src/remap.h +++ b/src/remap.h @@ -63,7 +63,7 @@ RemapType #define REMAP_MAX_ITER 3 #define REMAP_GENWEIGHTS 5 -int remap_check_mask_indices(const size_t (&indices)[4], const Vmask &mask); +int remap_check_mask_indices(const size_t (&indices)[4], Vmask const &mask); void remap_set_int(int remapvar, int value); @@ -73,49 +73,49 @@ void remap_grid_free(RemapGrid &grid, bool removeMask = true); void remap_grid_alloc(RemapMethod mapType, RemapGrid &grid); void remap_search_init(RemapMethod mapType, RemapSearch &search, RemapGrid &srcGrid, RemapGrid &tgtGrid); -void remap_search_points(RemapSearch &rsearch, const PointLonLat &pointLL, KnnData &knnData); -int remap_search_square(RemapSearch &rsearch, const PointLonLat &pointLL, SquareCorners &squareCorners); +void remap_search_points(RemapSearch &rsearch, PointLonLat const &pointLL, KnnData &knnData); +int remap_search_square(RemapSearch &rsearch, PointLonLat const &pointLL, SquareCorners &squareCorners); void remap_bilinear_weights(RemapSearch &rsearch, RemapVars &rv); void remap_bicubic_weights(RemapSearch &rsearch, RemapVars &rv); -void remap_knn_weights(const KnnParams &knnParams, RemapSearch &rsearch, RemapVars &rv); +void remap_knn_weights(KnnParams const &knnParams, RemapSearch &rsearch, RemapVars &rv); void remap_conserv_weights(RemapSearch &rsearch, RemapVars &rv); -void remap_bilinear(RemapSearch &rsearch, const Field &field1, Field &field2); -void remap_bicubic(RemapSearch &rsearch, const Field &field1, Field &field2); -void remap_knn(const KnnParams &knnParams, RemapSearch &rsearch, const Field &field1, Field &field2); -void remap_conserv(NormOpt normOpt, RemapSearch &rsearch, const Field &field1, Field &field2); +void remap_bilinear(RemapSearch &rsearch, Field const &field1, Field &field2); +void remap_bicubic(RemapSearch &rsearch, Field const &field1, Field &field2); +void remap_knn(KnnParams const &knnParams, RemapSearch &rsearch, Field const &field1, Field &field2); +void remap_conserv(NormOpt normOpt, RemapSearch &rsearch, Field const &field1, Field &field2); namespace remap { template <typename T> -void gradients(const Varray<T> &array, RemapGrid &grid, const Vmask &mask, RemapGradients &gradients); -void gradients(const Field &field, RemapGrid &grid, RemapGradients &gradients); +void gradients(Varray<T> const &array, RemapGrid &grid, Vmask const &mask, RemapGradients &gradients); +void gradients(Field const &field, RemapGrid &grid, RemapGradients &gradients); -void stat(int remapOrder, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv, const Field &field1, const Field &field2); +void stat(int remapOrder, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv, Field const &field1, Field const &field2); }; // namespace remap -void remap_write_data_scrip(const std::string &weightsfile, const KnnParams &knnParams, const RemapSwitches &remapSwitches, +void remap_write_data_scrip(std::string const &weightsfile, KnnParams const &knnParams, const RemapSwitches &remapSwitches, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv); -RemapSwitches remap_read_data_scrip(const std::string &weightsfile, int gridID1, int gridID2, RemapGrid &srcGrid, +RemapSwitches remap_read_data_scrip(std::string const &weightsfile, int gridID1, int gridID2, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv, KnnParams &knnParams); int grid_search_square_reg2d_NN(size_t nx, size_t ny, size_t *nbrIndices, double *nbrDistance, double plat, double plon, - const Varray<double> &src_center_lat, const Varray<double> &src_center_lon); + Varray<double> const &src_center_lat, Varray<double> const &src_center_lon); int grid_search_square_reg2d(RemapGrid *srcGrid, SquareCorners &squareCorners, double plat, double plon); -std::pair<double, double> remap_find_weights(const PointLonLat &pointLL, const SquareCorners &squareCorners); +std::pair<double, double> remap_find_weights(PointLonLat const &pointLL, const SquareCorners &squareCorners); PointLonLat remapgrid_get_lonlat(const RemapGrid *grid, size_t index); -void remap_check_area(size_t grid_size, const Varray<double> &cell_area, const char *name); +void remap_check_area(size_t grid_size, Varray<double> const &cell_area, const char *name); template <typename T> -void remap_set_mask(const Varray<T> &v, size_t gridsize, size_t numMissVals, double mv, Vmask &mask); +void remap_set_mask(Varray<T> const &v, size_t gridsize, size_t numMissVals, double mv, Vmask &mask); -void remap_set_mask(const Field &field1, size_t gridsize, size_t numMissVals, double missval, Vmask &imask); +void remap_set_mask(Field const &field1, size_t gridsize, size_t numMissVals, double missval, Vmask &imask); #endif /* REMAP_H */ diff --git a/src/remap_bicubic.cc b/src/remap_bicubic.cc index 0dca581f0..f57690210 100644 --- a/src/remap_bicubic.cc +++ b/src/remap_bicubic.cc @@ -48,7 +48,7 @@ bicubic_set_weights(double xfrac, double yfrac, double (&weights)[4][4]) // clang-format on } -int num_src_points(const Vmask &mask, const size_t (&indices)[4], double (&lats)[4]); +int num_src_points(Vmask const &mask, const size_t (&indices)[4], double (&lats)[4]); static void renormalize_weights(const double (&lats)[4], double (&weights)[4][4]) @@ -221,11 +221,11 @@ remap_bicubic_weights(RemapSearch &rsearch, RemapVars &rv) // ----------------------------------------------------------------------- template <typename T> static T -bicubic_remap(const Varray<T> &srcArray, const double (&wgt)[4][4], const size_t (&ind)[4], const RemapGradients &gradients) +bicubic_remap(Varray<T> const &srcArray, const double (&wgt)[4][4], const size_t (&ind)[4], const RemapGradients &gradients) { - const auto &glat = gradients.lat; - const auto &glon = gradients.lon; - const auto &glatlon = gradients.latLon; + auto const &glat = gradients.lat; + auto const &glon = gradients.lon; + auto const &glatlon = gradients.latLon; double tgtPoint = 0.0; for (int i = 0; i < 4; ++i) @@ -323,8 +323,8 @@ remap_bicubic(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMissva } // remap_bicubic void -remap_bicubic(RemapSearch &remapSearch, const Field &field1, Field &field2) +remap_bicubic(RemapSearch &remapSearch, Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { remap_bicubic(v1, v2, field1.missval, field1.numMissVals, remapSearch); }; + auto func = [&](auto const &v1, auto &v2) { remap_bicubic(v1, v2, field1.missval, field1.numMissVals, remapSearch); }; field_operation2(func, field1, field2); } diff --git a/src/remap_bilinear.cc b/src/remap_bilinear.cc index ad68d1d44..4985eadc4 100644 --- a/src/remap_bilinear.cc +++ b/src/remap_bilinear.cc @@ -27,13 +27,13 @@ limit_dphi_bounds(double &dphi) } std::pair<double, double> -remap_find_weights(const PointLonLat &pointLL, const SquareCorners &squareCorners) +remap_find_weights(PointLonLat const &pointLL, const SquareCorners &squareCorners) { constexpr double converge = 1.0e-10; // Convergence criterion extern long RemapMaxIteration; - const auto &lons = squareCorners.lons; - const auto &lats = squareCorners.lats; + auto const &lons = squareCorners.lons; + auto const &lats = squareCorners.lats; // Iterate to find xfrac,yfrac for bilinear approximation @@ -100,7 +100,7 @@ bilinear_set_weights(double xfrac, double yfrac, double (&weights)[4]) } int -num_src_points(const Vmask &mask, const size_t (&indices)[4], double (&lats)[4]) +num_src_points(Vmask const &mask, const size_t (&indices)[4], double (&lats)[4]) { int num = 4; @@ -191,7 +191,7 @@ bilinear_warning() } static void -remap_bilinear_weights_regular(RemapSearch &rsearch, const Vmask &srcGridMask, const PointLonLat &pointLL, double &tgtCellFrac, +remap_bilinear_weights_regular(RemapSearch &rsearch, Vmask const &srcGridMask, PointLonLat const &pointLL, double &tgtCellFrac, size_t tgtCellIndex, std::vector<WeightLinks> &weightLinks) { SquareCorners squareCorners; @@ -236,7 +236,7 @@ remap_bilinear_weights_regular(RemapSearch &rsearch, const Vmask &srcGridMask, c } static void -remap_bilinear_weights_healpix(const RemapSearch &rsearch, const Vmask &srcGridMask, const PointLonLat &pointLL, +remap_bilinear_weights_healpix(const RemapSearch &rsearch, Vmask const &srcGridMask, PointLonLat const &pointLL, double &tgtCellFrac, size_t tgtCellIndex, std::vector<WeightLinks> &weightLinks) { double weights[4]; // bilinear weights for four corners @@ -315,14 +315,14 @@ remap_bilinear_weights(RemapSearch &rsearch, RemapVars &rv) template <typename T> static inline T -bilinear_remap(const Varray<T> &srcArray, const double (&wgt)[4], const size_t (&ind)[4]) +bilinear_remap(Varray<T> const &srcArray, const double (&wgt)[4], const size_t (&ind)[4]) { return srcArray[ind[0]] * wgt[0] + srcArray[ind[1]] * wgt[1] + srcArray[ind[2]] * wgt[2] + srcArray[ind[3]] * wgt[3]; } template <typename T1, typename T2> static void -remap_bilinear_regular(RemapSearch &rsearch, const Varray<T1> &srcArray, const Vmask &srcGridMask, const PointLonLat &pointLL, +remap_bilinear_regular(RemapSearch &rsearch, const Varray<T1> &srcArray, Vmask const &srcGridMask, PointLonLat const &pointLL, T2 &tgtValue) { SquareCorners squareCorners; @@ -367,7 +367,7 @@ remap_bilinear_regular(RemapSearch &rsearch, const Varray<T1> &srcArray, const V template <typename T1, typename T2> static void -remap_bilinear_healpix(const RemapSearch &rsearch, const Varray<T1> &srcArray, const Vmask &srcGridMask, const PointLonLat &pointLL, +remap_bilinear_healpix(const RemapSearch &rsearch, const Varray<T1> &srcArray, Vmask const &srcGridMask, PointLonLat const &pointLL, T2 &tgtValue) { double weights[4]; // bilinear weights for four corners @@ -442,8 +442,8 @@ remap_bilinear(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMissv } // remap_bilinear void -remap_bilinear(RemapSearch &remapSearch, const Field &field1, Field &field2) +remap_bilinear(RemapSearch &remapSearch, Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { remap_bilinear(v1, v2, field1.missval, field1.numMissVals, remapSearch); }; + auto func = [&](auto const &v1, auto &v2) { remap_bilinear(v1, v2, field1.missval, field1.numMissVals, remapSearch); }; field_operation2(func, field1, field2); } diff --git a/src/remap_conserv.cc b/src/remap_conserv.cc index 7f045eeec..379656b7b 100644 --- a/src/remap_conserv.cc +++ b/src/remap_conserv.cc @@ -123,8 +123,8 @@ gridcell_free_yac(const GridCell &gridCell) } static int -get_lonlat_circle_index(RemapGridType remapGridType, size_t gridsize, size_t numCorners, const Varray<double> &clon, - const Varray<double> &clat) +get_lonlat_circle_index(RemapGridType remapGridType, size_t gridsize, size_t numCorners, Varray<double> const &clon, + Varray<double> const &clat) { int lonlatCircleIndex = -1; @@ -169,8 +169,8 @@ get_lonlat_circle_index(const RemapGrid *remapGrid) { auto gridsize = remapGrid->size; auto numCorners = remapGrid->numCorners; - const auto &clon = remapGrid->cornerLons; - const auto &clat = remapGrid->cornerLats; + auto const &clon = remapGrid->cornerLons; + auto const &clat = remapGrid->cornerLats; return get_lonlat_circle_index(remapGrid->type, gridsize, numCorners, clon, clat); } @@ -183,7 +183,7 @@ normalize_weights(RemapGrid *tgtGrid, RemapVars &rv) if (rv.normOpt == NormOpt::DESTAREA) { - const auto &cellArea = tgtGrid->cellArea; + auto const &cellArea = tgtGrid->cellArea; #ifdef _OPENMP #pragma omp parallel for default(shared) schedule(static) #endif @@ -196,7 +196,7 @@ normalize_weights(RemapGrid *tgtGrid, RemapVars &rv) } else if (rv.normOpt == NormOpt::FRACAREA) { - const auto &cellFrac = tgtGrid->cellFrac; + auto const &cellFrac = tgtGrid->cellFrac; #ifdef _OPENMP #pragma omp parallel for default(shared) schedule(static) #endif @@ -301,8 +301,8 @@ reg2d_bound_box(RemapGrid *remapGrid, double *gridBoundBox) { auto nx = remapGrid->dims[0]; auto ny = remapGrid->dims[1]; - const auto ®2d_corner_lon = remapGrid->reg2d_corner_lon; - const auto ®2d_corner_lat = remapGrid->reg2d_corner_lat; + auto const ®2d_corner_lon = remapGrid->reg2d_corner_lon; + auto const ®2d_corner_lat = remapGrid->reg2d_corner_lat; gridBoundBox[0] = reg2d_corner_lat[0]; gridBoundBox[1] = reg2d_corner_lat[ny]; @@ -317,14 +317,14 @@ reg2d_bound_box(RemapGrid *remapGrid, double *gridBoundBox) */ static void -scale_cellfrac(size_t numCells, Varray<double> &cellFrac, const Varray<double> &cellArea) +scale_cellfrac(size_t numCells, Varray<double> &cellFrac, Varray<double> const &cellArea) { for (size_t i = 0; i < numCells; ++i) if (is_not_equal(cellArea[i], 0)) cellFrac[i] /= cellArea[i]; } static void -vec_index_weights(Varray<double> &vec, size_t numWeights, const Varray<double> &weights, const Varray<size_t> &indices) +vec_index_weights(Varray<double> &vec, size_t numWeights, Varray<double> const &weights, const Varray<size_t> &indices) { for (size_t i = 0; i < numWeights; ++i) { @@ -375,7 +375,7 @@ remove_invalid_weights(size_t gridSize, size_t numWeights, Varray<double> &weigh } static size_t -remove_unmask_weights(const Vmask &gridMask, size_t numWeights, Varray<double> &weights, Varray<size_t> &indices) +remove_unmask_weights(Vmask const &gridMask, size_t numWeights, Varray<double> &weights, Varray<size_t> &indices) { size_t n = 0; for (size_t i = 0; i < numWeights; ++i) @@ -599,7 +599,7 @@ remap_conserv_weights(RemapSearch &remapSearch, RemapVars &rv) template <typename T> static double -conserv_remap(const Varray<T> &srcArray, size_t numWeights, const Varray<double> &weights, const Varray<size_t> &srcIndices) +conserv_remap(Varray<T> const &srcArray, size_t numWeights, Varray<double> const &weights, const Varray<size_t> &srcIndices) { double tgtPoint = 0.0; for (size_t i = 0; i < numWeights; ++i) tgtPoint += srcArray[srcIndices[i]] * weights[i]; @@ -773,15 +773,15 @@ remap_conserv(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMissva } // remap_conserv void -remap_conserv(NormOpt normOpt, RemapSearch &remapSearch, const Field &field1, Field &field2) +remap_conserv(NormOpt normOpt, RemapSearch &remapSearch, Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { remap_conserv(v1, v2, field1.missval, field1.numMissVals, normOpt, remapSearch); }; + auto func = [&](auto const &v1, auto &v2) { remap_conserv(v1, v2, field1.missval, field1.numMissVals, normOpt, remapSearch); }; field_operation2(func, field1, field2); } template <typename T> static size_t -remove_missing_weights(const Varray<T> &srcArray, T missval, size_t numWeights, Varray<double> &partialWeights, +remove_missing_weights(Varray<T> const &srcArray, T missval, size_t numWeights, Varray<double> &partialWeights, Varray<size_t> &indices) { size_t n = 0; @@ -812,7 +812,7 @@ latitude_area(double latMin, double latMax) } static void -calc_remap_indices(size_t gridsize1, size_t nv1, const Varray<double> &ybounds1, size_t ysize2, const Varray<double> &ybounds2, +calc_remap_indices(size_t gridsize1, size_t nv1, Varray<double> const &ybounds1, size_t ysize2, Varray<double> const &ybounds2, Varray2D<size_t> &remapIndices) { constexpr double scaleFactor = 1000000000.0; @@ -992,8 +992,8 @@ remap_zonal_mean(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMis } void -remap_zonal_mean(const Varray2D<size_t> &remapIndices, const Varray2D<double> &remapWeights, const Field &field1, Field &field2) +remap_zonal_mean(const Varray2D<size_t> &remapIndices, const Varray2D<double> &remapWeights, Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { remap_zonal_mean(v1, v2, field1.missval, remapIndices, remapWeights); }; + auto func = [&](auto const &v1, auto &v2) { remap_zonal_mean(v1, v2, field1.missval, remapIndices, remapWeights); }; field_operation2(func, field1, field2); } diff --git a/src/remap_gradients.cc b/src/remap_gradients.cc index 7c48eda56..6a453f460 100644 --- a/src/remap_gradients.cc +++ b/src/remap_gradients.cc @@ -14,7 +14,7 @@ namespace remap template <typename T> void -gradients(const Varray<T> &array, RemapGrid &grid, const Vmask &mask, RemapGradients &gradients) +gradients(Varray<T> const &array, RemapGrid &grid, Vmask const &mask, RemapGradients &gradients) { if (grid.rank != 2) cdo_abort("Internal problem (remap_gradients), grid rank = %d!", grid.rank); @@ -180,11 +180,11 @@ gradients(const Varray<T> &array, RemapGrid &grid, const Vmask &mask, RemapGradi } // remap_gradients // Explicit instantiation -template void gradients(const Varray<float> &array, RemapGrid &grid, const Vmask &mask, RemapGradients &gradients); -template void gradients(const Varray<double> &array, RemapGrid &grid, const Vmask &mask, RemapGradients &gradients); +template void gradients(Varray<float> const &array, RemapGrid &grid, Vmask const &mask, RemapGradients &gradients); +template void gradients(Varray<double> const &array, RemapGrid &grid, Vmask const &mask, RemapGradients &gradients); void -gradients(const Field &field, RemapGrid &grid, RemapGradients &gradients) +gradients(Field const &field, RemapGrid &grid, RemapGradients &gradients) { auto len = grid.size; Vmask mask(len); @@ -193,7 +193,7 @@ gradients(const Field &field, RemapGrid &grid, RemapGradients &gradients) #endif for (size_t i = 0; i < len; ++i) mask[i] = (grid.mask[i] > 0); - auto func = [&](const auto &v) { remap::gradients(v, grid, mask, gradients); }; + auto func = [&](auto const &v) { remap::gradients(v, grid, mask, gradients); }; field_operation(func, field); } diff --git a/src/remap_knn.cc b/src/remap_knn.cc index 80f3b1ea5..f82cb88fa 100644 --- a/src/remap_knn.cc +++ b/src/remap_knn.cc @@ -19,7 +19,7 @@ // This routine computes the weights for a k-nearest-neighbor interpolation // ----------------------------------------------------------------------- void -remap_knn_weights(const KnnParams &knnParams, RemapSearch &rsearch, RemapVars &rv) +remap_knn_weights(KnnParams const &knnParams, RemapSearch &rsearch, RemapVars &rv) { auto srcGrid = rsearch.srcGrid; auto tgtGrid = rsearch.tgtGrid; @@ -96,7 +96,7 @@ remap_knn_weights(const KnnParams &knnParams, RemapSearch &rsearch, RemapVars &r // ----------------------------------------------------------------------- template <typename T1, typename T2> static void -remap_knn(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMissval, size_t numMissVals, const KnnParams &knnParams, +remap_knn(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMissval, size_t numMissVals, KnnParams const &knnParams, RemapSearch &rsearch) { T1 missval = srcMissval; @@ -153,16 +153,16 @@ remap_knn(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double srcMissval, s } // remap_knn void -remap_knn(const KnnParams &knnParams, RemapSearch &remapSearch, const Field &field1, Field &field2) +remap_knn(KnnParams const &knnParams, RemapSearch &remapSearch, Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { remap_knn(v1, v2, field1.missval, field1.numMissVals, knnParams, remapSearch); }; + auto func = [&](auto const &v1, auto &v2) { remap_knn(v1, v2, field1.missval, field1.numMissVals, knnParams, remapSearch); }; field_operation2(func, field1, field2); } template <typename T1, typename T2> void intgrid_knn(const Varray<T1> &srcArray, Varray<T2> &tgtArray, int gridID1, int gridID2, double srcMissval, size_t numMissVals, - const KnnParams &knnParams) + KnnParams const &knnParams) { auto mapType = RemapMethod::KNN; @@ -180,9 +180,9 @@ intgrid_knn(const Varray<T1> &srcArray, Varray<T2> &tgtArray, int gridID1, int g } // intgrid_knn void -intgrid_knn(const KnnParams &knnParams, const Field &field1, Field &field2) +intgrid_knn(KnnParams const &knnParams, Field const &field1, Field &field2) { - auto func = [&](const auto &v1, auto &v2) { + auto func = [&](auto const &v1, auto &v2) { intgrid_knn(v1, v2, field1.grid, field2.grid, field1.missval, field1.numMissVals, knnParams); }; field_operation2(func, field1, field2); @@ -191,7 +191,7 @@ intgrid_knn(const KnnParams &knnParams, const Field &field1, Field &field2) } void -intgrid_1nn(const Field &field1, Field &field2) +intgrid_1nn(Field const &field1, Field &field2) { KnnParams knnParams; knnParams.k = 1; diff --git a/src/remap_point_search.cc b/src/remap_point_search.cc index d15d665dc..188353fea 100644 --- a/src/remap_point_search.cc +++ b/src/remap_point_search.cc @@ -11,7 +11,7 @@ #include "cdo_output.h" static void -grid_search_point_healpix(GridPointsearch &gps, const PointLonLat &pointLL, KnnData &knnData) +grid_search_point_healpix(GridPointsearch &gps, PointLonLat const &pointLL, KnnData &knnData) { /* Input variables: @@ -36,7 +36,7 @@ grid_search_point_healpix(GridPointsearch &gps, const PointLonLat &pointLL, KnnD // This routine finds the closest numNeighbor points to a search point and computes a distance to each of the neighbors static void -grid_search_point_reg2d(GridPointsearch &gps, const PointLonLat &pointLL, KnnData &knnData) +grid_search_point_reg2d(GridPointsearch &gps, PointLonLat const &pointLL, KnnData &knnData) { /* Input variables: @@ -56,8 +56,8 @@ grid_search_point_reg2d(GridPointsearch &gps, const PointLonLat &pointLL, KnnDat knnData.init_indices(); knnData.init_dist(); - const auto &lons = gps.reg2d->m_lonsReg2d; - const auto &lats = gps.reg2d->m_latsReg2d; + auto const &lons = gps.reg2d->m_lonsReg2d; + auto const &lats = gps.reg2d->m_latsReg2d; auto ¶ms = gps.params; long nx = params.dims[0]; @@ -94,7 +94,7 @@ grid_search_point_reg2d(GridPointsearch &gps, const PointLonLat &pointLL, KnnDat } void -grid_search_point_unstruct(GridPointsearch &gps, const PointLonLat &pointLL, KnnData &knnData) +grid_search_point_unstruct(GridPointsearch &gps, PointLonLat const &pointLL, KnnData &knnData) { /* Input variables: @@ -143,7 +143,7 @@ grid_search_point_unstruct(GridPointsearch &gps, const PointLonLat &pointLL, Knn } void -grid_search_point_smooth(GridPointsearch &gps, const PointLonLat &pointLL, KnnData &knnData) +grid_search_point_smooth(GridPointsearch &gps, PointLonLat const &pointLL, KnnData &knnData) { /* Input variables: @@ -203,7 +203,7 @@ grid_search_point_smooth(GridPointsearch &gps, const PointLonLat &pointLL, KnnDa } void -remap_search_points(RemapSearch &rsearch, const PointLonLat &pointLL, KnnData &knnData) +remap_search_points(RemapSearch &rsearch, PointLonLat const &pointLL, KnnData &knnData) { // clang-format off if (rsearch.srcGrid->type == RemapGridType::Reg2D) grid_search_point_reg2d(rsearch.gps, pointLL, knnData); @@ -308,7 +308,7 @@ point_in_quad(bool isCyclic, size_t nx, size_t ny, size_t i, size_t j, SquareCor } static int -grid_search_square_curv2d(GridPointsearch &gps, RemapGrid *rgrid, SquareCorners &squareCorners, const PointLonLat &pointLL) +grid_search_square_curv2d(GridPointsearch &gps, RemapGrid *rgrid, SquareCorners &squareCorners, PointLonLat const &pointLL) { /* Input variables: @@ -373,7 +373,7 @@ grid_search_square_curv2d(GridPointsearch &gps, RemapGrid *rgrid, SquareCorners } int -remap_search_square(RemapSearch &rsearch, const PointLonLat &pointLL, SquareCorners &squareCorners) +remap_search_square(RemapSearch &rsearch, PointLonLat const &pointLL, SquareCorners &squareCorners) { if (rsearch.srcGrid->type == RemapGridType::Reg2D) return grid_search_square_reg2d(rsearch.srcGrid, squareCorners, pointLL.get_lat(), pointLL.get_lon()); diff --git a/src/remap_scrip_io.cc b/src/remap_scrip_io.cc index 1ab4c89bc..6991f27fd 100644 --- a/src/remap_scrip_io.cc +++ b/src/remap_scrip_io.cc @@ -229,7 +229,7 @@ inq_dimlen(int ncId, const char *name) #endif void -remap_write_data_scrip(const std::string &weightsfile, const KnnParams &knnParams, const RemapSwitches &remapSwitches, +remap_write_data_scrip(std::string const &weightsfile, KnnParams const &knnParams, const RemapSwitches &remapSwitches, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv) { // Writes remap data to a NetCDF file using SCRIP conventions @@ -590,7 +590,7 @@ get_maptype(int ncId) #endif RemapSwitches -remap_read_data_scrip(const std::string &weightsfile, int gridID1, int gridID2, RemapGrid &srcGrid, RemapGrid &tgtGrid, +remap_read_data_scrip(std::string const &weightsfile, int gridID1, int gridID2, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv, KnnParams &knnParams) { RemapSwitches remapSwitches; diff --git a/src/remap_search_reg2d.cc b/src/remap_search_reg2d.cc index 98841ef72..2d3a506db 100644 --- a/src/remap_search_reg2d.cc +++ b/src/remap_search_reg2d.cc @@ -30,7 +30,7 @@ nbr_indices_and_distance(int &searchResult, size_t index, double &distMin, doubl int grid_search_square_reg2d_NN(size_t nx, size_t ny, size_t *nbrIndices, double *nbrDistance, double plat, double plon, - const Varray<double> &lats, const Varray<double> &lons) + Varray<double> const &lats, Varray<double> const &lons) { // nbrIndices and nbrDistance must have memory for four values! int searchResult = 0; diff --git a/src/remap_stat.cc b/src/remap_stat.cc index 1ab8091d8..ca622d484 100644 --- a/src/remap_stat.cc +++ b/src/remap_stat.cc @@ -100,9 +100,9 @@ namespace remap { void -stat(int remapOrder, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv, const Field &field1, const Field &field2) +stat(int remapOrder, RemapGrid &srcGrid, RemapGrid &tgtGrid, RemapVars &rv, Field const &field1, Field const &field2) { - auto func = [&](const auto &v1, const auto &v2, double mv1) { remap_stat(v1, v2, mv1, remapOrder, srcGrid, tgtGrid, rv); }; + auto func = [&](auto const &v1, auto const &v2, double mv1) { remap_stat(v1, v2, mv1, remapOrder, srcGrid, tgtGrid, rv); }; field_operation2(func, field1, field2, field1.missval); } diff --git a/src/remap_store_link.cc b/src/remap_store_link.cc index 3d02d7a9a..f61088fd2 100644 --- a/src/remap_store_link.cc +++ b/src/remap_store_link.cc @@ -24,16 +24,16 @@ is_sorted_list(size_t n, const size_t *list) static int qcompare_index(const void *a, const void *b) { - const auto &x = static_cast<const IndexWeight *>(a)->index; - const auto &y = static_cast<const IndexWeight *>(b)->index; + auto const &x = static_cast<const IndexWeight *>(a)->index; + auto const &y = static_cast<const IndexWeight *>(b)->index; return (x < y) ? -1 : (x > y); } static int qcompare_index4(const void *a, const void *b) { - const auto &x = static_cast<const IndexWeight4 *>(a)->index; - const auto &y = static_cast<const IndexWeight4 *>(b)->index; + auto const &x = static_cast<const IndexWeight4 *>(a)->index; + auto const &y = static_cast<const IndexWeight4 *>(b)->index; return (x < y) ? -1 : (x > y); } diff --git a/src/remap_utils.cc b/src/remap_utils.cc index c31a125d6..d1154c957 100644 --- a/src/remap_utils.cc +++ b/src/remap_utils.cc @@ -13,7 +13,7 @@ void remap_print_info(int operfunc, bool remap_genweights, const RemapGrid &srcGrid, const RemapGrid &tgtGrid, size_t numMissVals, - const KnnParams &knnParams) + KnnParams const &knnParams) { std::string outStr; // clang-format off @@ -51,7 +51,7 @@ remap_print_info(int operfunc, bool remap_genweights, const RemapGrid &srcGrid, } void -remap_print_warning(const std::string &remapWeightsFile, int operfunc, const RemapGrid &srcGrid, size_t numMissVals) +remap_print_warning(std::string const &remapWeightsFile, int operfunc, const RemapGrid &srcGrid, size_t numMissVals) { (void) operfunc; @@ -257,7 +257,7 @@ remap_get_normOpt(void) } void -remap_gen_weights(RemapMethod mapType, const KnnParams &knnParams, RemapType &remap) +remap_gen_weights(RemapMethod mapType, KnnParams const &knnParams, RemapType &remap) { // clang-format off if (mapType == RemapMethod::BILINEAR) remap_bilinear_weights(remap.search, remap.vars); diff --git a/src/remap_utils.h b/src/remap_utils.h index dafee5be9..9a7ebfd70 100644 --- a/src/remap_utils.h +++ b/src/remap_utils.h @@ -47,8 +47,8 @@ remap_func_is_dist(int operfunc) } void remap_print_info(int operfunc, bool remap_genweights, const RemapGrid &srcGrid, const RemapGrid &tgtGrid, size_t numMissVals, - const KnnParams &knnParams); -void remap_print_warning(const std::string &remapWeightsFile, int operfunc, const RemapGrid &srcGrid, size_t numMissVals); + KnnParams const &knnParams); +void remap_print_warning(std::string const &remapWeightsFile, int operfunc, const RemapGrid &srcGrid, size_t numMissVals); RemapDefaults remap_get_params(); void remap_set_params(const RemapDefaults &remapDefaults); @@ -57,7 +57,7 @@ RemapSwitches remap_operfunc_to_maptype(int operfunc); NormOpt remap_get_normOpt(void); -void remap_gen_weights(RemapMethod mapType, const KnnParams &knnParams, RemapType &remap); +void remap_gen_weights(RemapMethod mapType, KnnParams const &knnParams, RemapType &remap); std::vector<bool> remap_set_grids(int vlistID, const VarList &varList); diff --git a/src/remap_vars.cc b/src/remap_vars.cc index c155eb06e..0cc2ad3c8 100644 --- a/src/remap_vars.cc +++ b/src/remap_vars.cc @@ -22,13 +22,13 @@ template <typename T1, typename T2> static void -remap_first_order(Varray<T2> &tgtArray, const RemapVars &rv, const Varray<T1> &srcArray) +remap_first_order(Varray<T2> &tgtArray, RemapVars const &rv, const Varray<T1> &srcArray) { auto numLinks = rv.numLinks; auto numWeights = rv.numWeights; - const auto &weights = rv.weights; - const auto &tgtIndices = rv.tgtCellIndices; - const auto &srcIndices = rv.srcCellIndices; + auto const &weights = rv.weights; + auto const &tgtIndices = rv.tgtCellIndices; + auto const &srcIndices = rv.srcCellIndices; auto numLinksPerValue = rv.numLinksPerValue; if (numLinksPerValue > 0 && numWeights == 1) @@ -104,8 +104,8 @@ remap_first_order(Varray<T2> &tgtArray, const RemapVars &rv, const Varray<T1> &s { if (numWeights == 1 && rv.linksOffset.size() > 0 && rv.linksPerValue.size() > 0) { - const auto &linksOffset = rv.linksOffset; - const auto &linksPerValue = rv.linksPerValue; + auto const &linksOffset = rv.linksOffset; + auto const &linksPerValue = rv.linksPerValue; auto tgtGridSize = tgtArray.size(); #ifdef _OPENMP #pragma omp parallel for if (tgtGridSize > cdoMinLoopSize) default(shared) schedule(static) @@ -131,17 +131,17 @@ remap_first_order(Varray<T2> &tgtArray, const RemapVars &rv, const Varray<T1> &s template <typename T1, typename T2> static void -remap_second_order(Varray<T2> &tgtArray, const RemapVars &rv, const Varray<T1> &srcArray, RemapGradients &gradients) +remap_second_order(Varray<T2> &tgtArray, RemapVars const &rv, const Varray<T1> &srcArray, RemapGradients &gradients) { - const auto &grad1 = gradients.lat; - const auto &grad2 = gradients.lon; - const auto &grad3 = gradients.latLon; + auto const &grad1 = gradients.lat; + auto const &grad2 = gradients.lon; + auto const &grad3 = gradients.latLon; auto numLinks = rv.numLinks; auto numWeights = rv.numWeights; - const auto &weights = rv.weights; - const auto &tgtIndices = rv.tgtCellIndices; - const auto &srcIndices = rv.srcCellIndices; + auto const &weights = rv.weights; + auto const &tgtIndices = rv.tgtCellIndices; + auto const &srcIndices = rv.srcCellIndices; auto numLinksPerValue = rv.numLinksPerValue; if (numWeights == 3) @@ -191,7 +191,7 @@ remap_second_order(Varray<T2> &tgtArray, const RemapVars &rv, const Varray<T1> & template <typename T1, typename T2> static void -remap(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_t tgtSize, const RemapVars &rv, +remap(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_t tgtSize, RemapVars const &rv, RemapGradients &gradients) { T2 missval = tgtMissval; @@ -238,9 +238,9 @@ remap(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_ } void -remap_field(Field &field2, double missval, size_t gridsize2, const RemapVars &rv, const Field &field1, RemapGradients &gradients) +remap_field(Field &field2, double missval, size_t gridsize2, RemapVars const &rv, Field const &field1, RemapGradients &gradients) { - auto func = [&](const auto &v1, auto &v2) { remap(v1, v2, missval, gridsize2, rv, gradients); }; + auto func = [&](auto const &v1, auto &v2) { remap(v1, v2, missval, gridsize2, rv, gradients); }; field_operation2(func, field1, field2); } @@ -282,7 +282,7 @@ binary_search_int(const Varray<size_t> &array, size_t len, size_t value) template <typename T1, typename T2> static void -remap_laf(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_t tgtSize, const RemapVars &rv) +remap_laf(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_t tgtSize, RemapVars const &rv) { T2 missval = tgtMissval; /* @@ -294,9 +294,9 @@ remap_laf(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, s */ auto numLinks = rv.numLinks; auto numWeights = rv.numWeights; // num of weights used in remapping - const auto &weights = rv.weights; // remapping weights for each link - const auto &tgtIndices = rv.tgtCellIndices; // target indices for each link - const auto &srcIndices = rv.srcCellIndices; // source indices for each link + auto const &weights = rv.weights; // remapping weights for each link + auto const &tgtIndices = rv.tgtCellIndices; // target indices for each link + auto const &srcIndices = rv.srcCellIndices; // source indices for each link ranges::fill(tgtArray, missval); @@ -391,22 +391,22 @@ remap_laf(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, s } void -remap_laf(Field &field2, double missval, size_t gridsize2, const RemapVars &rv, const Field &field1) +remap_laf(Field &field2, double missval, size_t gridsize2, RemapVars const &rv, Field const &field1) { - auto func = [&](const auto &v1, auto &v2) { remap_laf(v1, v2, missval, gridsize2, rv); }; + auto func = [&](auto const &v1, auto &v2) { remap_laf(v1, v2, missval, gridsize2, rv); }; field_operation2(func, field1, field2); } template <typename T1, typename T2> static void -remap_avg(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_t tgtSize, const RemapVars &rv) +remap_avg(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, size_t tgtSize, RemapVars const &rv) { T2 missval = tgtMissval; auto numLinks = rv.numLinks; auto numWeights = rv.numWeights; // num of weights used in remapping - const auto &weights = rv.weights; // remapping weights for each link - const auto &tgtIndices = rv.tgtCellIndices; // target indices for each link - const auto &srcIndices = rv.srcCellIndices; // source indices for each link + auto const &weights = rv.weights; // remapping weights for each link + auto const &tgtIndices = rv.tgtCellIndices; // target indices for each link + auto const &srcIndices = rv.srcCellIndices; // source indices for each link /* for (size_t n = 0; n < tgtSize; ++n) tgtArray[n] = missval; @@ -490,9 +490,9 @@ remap_avg(const Varray<T1> &srcArray, Varray<T2> &tgtArray, double tgtMissval, s } void -remap_avg(Field &field2, double missval, size_t gridsize2, const RemapVars &rv, const Field &field1) +remap_avg(Field &field2, double missval, size_t gridsize2, RemapVars const &rv, Field const &field1) { - auto func = [&](const auto &v1, auto &v2) { remap_avg(v1, v2, missval, gridsize2, rv); }; + auto func = [&](auto const &v1, auto &v2) { remap_avg(v1, v2, missval, gridsize2, rv); }; field_operation2(func, field1, field2); } @@ -515,14 +515,14 @@ remap_vars_free(RemapVars &rv) } void -remap_vars_check_weights(const RemapVars &rv) +remap_vars_check_weights(RemapVars const &rv) { auto numLinks = rv.numLinks; auto numWeights = rv.numWeights; auto normOpt = rv.normOpt; - const auto &srcIndices = rv.srcCellIndices; - const auto &tgtIndices = rv.tgtCellIndices; - const auto &weights = rv.weights; + auto const &srcIndices = rv.srcCellIndices; + auto const &tgtIndices = rv.tgtCellIndices; + auto const &weights = rv.weights; for (size_t n = 0; n < numLinks; ++n) { diff --git a/src/remap_vars.h b/src/remap_vars.h index 67f40c460..150a48252 100644 --- a/src/remap_vars.h +++ b/src/remap_vars.h @@ -73,12 +73,12 @@ struct RemapVars Varray<double> weights; // map weights for each link [maxLinks*numWeights] }; -void remap_field(Field &field2, double missval, size_t gridsize2, const RemapVars &rv, const Field &field1, +void remap_field(Field &field2, double missval, size_t gridsize2, RemapVars const &rv, Field const &field1, RemapGradients &gradients); -void remap_laf(Field &field2, double missval, size_t gridsize2, const RemapVars &rv, const Field &field1); -void remap_avg(Field &field2, double missval, size_t gridsize2, const RemapVars &rv, const Field &field1); +void remap_laf(Field &field2, double missval, size_t gridsize2, RemapVars const &rv, Field const &field1); +void remap_avg(Field &field2, double missval, size_t gridsize2, RemapVars const &rv, Field const &field1); void remap_vars_init(RemapMethod mapType, int remapOrder, RemapVars &rv); void remap_vars_free(RemapVars &rv); -void remap_vars_check_weights(const RemapVars &rv); +void remap_vars_check_weights(RemapVars const &rv); #endif /* REMAP_VARS_H */ diff --git a/src/remaplib.cc b/src/remaplib.cc index 00d310dcb..af4fe30df 100644 --- a/src/remaplib.cc +++ b/src/remaplib.cc @@ -30,7 +30,7 @@ print_healpix_warning_and_abort(void) } int -remap_check_mask_indices(const size_t (&indices)[4], const Vmask &mask) +remap_check_mask_indices(const size_t (&indices)[4], Vmask const &mask) { int searchResult = 1; if (mask.size() > 0) @@ -183,7 +183,7 @@ grid_check_lat_borders_rad(size_t n, Varray<double> &ybounds) } static void -convert_bounds_reg2d(size_t n, const Varray<double> &boundsIn, Varray<double> &boundsOut) +convert_bounds_reg2d(size_t n, Varray<double> const &boundsIn, Varray<double> &boundsOut) { auto lrev = (boundsIn[0] > boundsIn[2 * n - 1]); if (boundsIn[0] > boundsIn[1]) lrev = !lrev; @@ -595,7 +595,7 @@ remap_init_grids(RemapMethod mapType, bool doExtrapolate, int gridID1, RemapGrid /*****************************************************************************/ void -remap_check_area(size_t gridSize, const Varray<double> &cell_area, const char *name) +remap_check_area(size_t gridSize, Varray<double> const &cell_area, const char *name) { for (size_t i = 0; i < gridSize; ++i) { @@ -605,7 +605,7 @@ remap_check_area(size_t gridSize, const Varray<double> &cell_area, const char *n template <typename T> void -remap_set_mask(const Varray<T> &v, size_t len, size_t numMissVals, double mv, Vmask &mask) +remap_set_mask(Varray<T> const &v, size_t len, size_t numMissVals, double mv, Vmask &mask) { mask.resize(len); @@ -637,12 +637,12 @@ remap_set_mask(const Varray<T> &v, size_t len, size_t numMissVals, double mv, Vm } // Explicit instantiation -template void remap_set_mask(const Varray<float> &v, size_t gridsize, size_t numMissVals, double mv, Vmask &mask); -template void remap_set_mask(const Varray<double> &v, size_t gridsize, size_t numMissVals, double mv, Vmask &mask); +template void remap_set_mask(Varray<float> const &v, size_t gridsize, size_t numMissVals, double mv, Vmask &mask); +template void remap_set_mask(Varray<double> const &v, size_t gridsize, size_t numMissVals, double mv, Vmask &mask); void -remap_set_mask(const Field &field1, size_t gridsize, size_t numMissVals, double missval, Vmask &imask) +remap_set_mask(Field const &field1, size_t gridsize, size_t numMissVals, double missval, Vmask &imask) { - auto func = [&](const auto &v) { remap_set_mask(v, gridsize, numMissVals, missval, imask); }; + auto func = [&](auto const &v) { remap_set_mask(v, gridsize, numMissVals, missval, imask); }; field_operation(func, field1); } diff --git a/src/sellist.cc b/src/sellist.cc index de182fde2..6e6adcae3 100644 --- a/src/sellist.cc +++ b/src/sellist.cc @@ -22,7 +22,7 @@ SelectInfo::init(const KVList &kvlist) selList.resize(kvlist.size()); int i = 0; - for (const auto &kv : kvlist) + for (auto const &kv : kvlist) { auto &e = selList[i]; e.type = SelType::UNDEF; @@ -32,17 +32,17 @@ SelectInfo::init(const KVList &kvlist) for (int k = 0; k < kv.nvalues; ++k) e.values[k] = kv.values[k]; #ifdef SELDEBUG printf("%s =", e.key.c_str()); - for (const auto &value : e.values) printf(" '%s'", value.c_str()); + for (auto const &value : e.values) printf(" '%s'", value.c_str()); printf("\n"); #endif ++i; } #ifdef SELDEBUG - for (const auto &e : selList) + for (auto const &e : selList) { printf("%s =", e.key.c_str()); - for (const auto &value : e.values) printf(" '%s'", value.c_str()); + for (auto const &value : e.values) printf(" '%s'", value.c_str()); printf("\n"); } #endif @@ -51,12 +51,12 @@ SelectInfo::init(const KVList &kvlist) void SelectInfo::verify() const { - for (const auto &e : selList) + for (auto const &e : selList) if (e.type == SelType::UNDEF) cdo_abort("Unsupported selection keyword: '%s'!", e.key); } int -selinfo_add(SelectInfo &selInfo, const std::string &description, const std::string &name, SelType type) +selinfo_add(SelectInfo &selInfo, std::string const &description, std::string const &name, SelType type) { auto &selList = selInfo.selList; int listIdx = -1; @@ -147,15 +147,15 @@ SelectInfo::nvalues(int listIdx) const } void -selinfo_check_flag(const SelectInfo &selInfo, int listIdx) +selinfo_check_flag(SelectInfo const &selInfo, int listIdx) { - const auto &selList = selInfo.selList; + auto const &selList = selInfo.selList; if (!selInfo.isValidListIdx(listIdx)) return; auto nvalues = selInfo.nvalues(listIdx); if (nvalues) { - const auto &e = selList[listIdx]; + auto const &e = selList[listIdx]; for (int i = 0; i < nvalues; ++i) if (!e.flag[i]) switch (e.type) { @@ -168,15 +168,15 @@ selinfo_check_flag(const SelectInfo &selInfo, int listIdx) } void -selinfo_check_range_flag(const SelectInfo &selInfo, int listIdx) +selinfo_check_range_flag(SelectInfo const &selInfo, int listIdx) { - const auto &selList = selInfo.selList; + auto const &selList = selInfo.selList; if (!selInfo.isValidListIdx(listIdx)) return; auto nvalues = selInfo.nvalues(listIdx); if (nvalues == 2) { - const auto &e = selList[listIdx]; + auto const &e = selList[listIdx]; if (!e.flag[0] && e.type == SelType::FLT) cdo_warning("%s %g to %g not found!", e.description, e.dvalues[0], e.dvalues[1]); } } @@ -379,15 +379,15 @@ selinfo_def_flag(SelectInfo &selInfo, int listIdx, int valIdx, bool flag) } void -selinfo_get_val(const SelectInfo &selInfo, int listIdx, int valIdx, void *val) +selinfo_get_val(SelectInfo const &selInfo, int listIdx, int valIdx, void *val) { - const auto &selList = selInfo.selList; + auto const &selList = selInfo.selList; if (!selInfo.isValidListIdx(listIdx)) return; auto nvalues = selInfo.nvalues(listIdx); if (nvalues && valIdx >= 0 && valIdx < nvalues) { - const auto &e = selList[listIdx]; + auto const &e = selList[listIdx]; switch (e.type) { case SelType::INT: *static_cast<int *>(val) = e.ivalues[valIdx]; break; @@ -438,7 +438,7 @@ SelectInfo::print() const printf("Num Name Type Size Entries\n"); for (int listIdx = 0, n = selList.size(); listIdx < n; ++listIdx) { - const auto &e = selList[listIdx]; + auto const &e = selList[listIdx]; printf("%3d %-16s %4d %4d ", listIdx + 1, e.key.c_str(), (int) e.type, e.nvalues); auto numValues = e.nvalues; if (numValues > 12) numValues = 11; diff --git a/src/sellist.h b/src/sellist.h index c3b7b35db..2b12d1562 100644 --- a/src/sellist.h +++ b/src/sellist.h @@ -71,16 +71,16 @@ public: #define SELINFO_GET_VAL(name, valIdx, val) selinfo_get_val(selInfo, listIdx_##name, valIdx, val) #define SELINFO_DEF_VAL(name, valIdx, val) selinfo_def_val(selInfo, listIdx_##name, valIdx, val) -int selinfo_add(SelectInfo &selInfo, const std::string &description, const std::string &name, SelType type); -void selinfo_check_flag(const SelectInfo &selInfo, int listIdx); -void selinfo_check_range_flag(const SelectInfo &selInfo, int listIdx); +int selinfo_add(SelectInfo &selInfo, std::string const &description, std::string const &name, SelType type); +void selinfo_check_flag(SelectInfo const &selInfo, int listIdx); +void selinfo_check_range_flag(SelectInfo const &selInfo, int listIdx); bool selinfo_check(SelectInfo &selInfo, int listIdx, void *par); bool selinfo_check_index(SelectInfo &selInfo, int listIdx, int par, int maxValues); bool selinfo_check_date(SelectInfo &selInfo, int listIdx, const char *par); bool selinfo_check_season(SelectInfo &selInfo, int listIdx, int month); bool selinfo_check_range(SelectInfo &selInfo, int listIdx, double value); void selinfo_def_flag(SelectInfo &selInfo, int listIdx, int valIdx, bool flag); -void selinfo_get_val(const SelectInfo &selInfo, int listIdx, int valIdx, void *val); +void selinfo_get_val(SelectInfo const &selInfo, int listIdx, int valIdx, void *val); void selinfo_def_val(SelectInfo &selInfo, int listIdx, int valIdx, void *val); #endif diff --git a/src/specspace.cc b/src/specspace.cc index 790d7f3ce..f7cff7469 100644 --- a/src/specspace.cc +++ b/src/specspace.cc @@ -13,9 +13,9 @@ #include <mpim_grid.h> void -grid2spec(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +grid2spec(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { - const auto &fcTrans = spTrans.fcTrans; + auto const &fcTrans = spTrans.fcTrans; long nlev = 1; long ntr = gridInqTrunc(gridIDout); long nlon = gridInqXsize(gridIDin); @@ -34,9 +34,9 @@ grid2spec(const SP_Transformation &spTrans, int gridIDin, const Varray<double> & } void -spec2grid(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +spec2grid(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { - const auto &fcTrans = spTrans.fcTrans; + auto const &fcTrans = spTrans.fcTrans; long nlev = 1; long ntr = gridInqTrunc(gridIDin); long nlon = gridInqXsize(gridIDout); @@ -55,7 +55,7 @@ spec2grid(const SP_Transformation &spTrans, int gridIDin, const Varray<double> & } void -four2spec(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +four2spec(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { (void) gridIDin; long nlev = 1; @@ -68,7 +68,7 @@ four2spec(const SP_Transformation &spTrans, int gridIDin, const Varray<double> & } void -spec2four(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +spec2four(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { long nlev = 1; long ntr = gridInqTrunc(gridIDin); @@ -81,7 +81,7 @@ spec2four(const SP_Transformation &spTrans, int gridIDin, const Varray<double> & } void -four2grid(const FC_Transformation &fcTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +four2grid(const FC_Transformation &fcTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { long nlev = 1; long ntr = gridInqTrunc(gridIDin); @@ -97,7 +97,7 @@ four2grid(const FC_Transformation &fcTrans, int gridIDin, const Varray<double> & } void -grid2four(const FC_Transformation &fcTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +grid2four(const FC_Transformation &fcTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { long nlev = 1; long ntr = gridInqTrunc(gridIDout); @@ -113,7 +113,7 @@ grid2four(const FC_Transformation &fcTrans, int gridIDin, const Varray<double> & } void -spec2spec(int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut) +spec2spec(int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut) { long ntrIn = gridInqTrunc(gridIDin); long ntrOut = gridInqTrunc(gridIDout); @@ -122,7 +122,7 @@ spec2spec(int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<dou } void -speccut(int gridIDin, const Varray<double> &arrayIn, Varray<double> &arrayOut, const Varray<int> &waves) +speccut(int gridIDin, Varray<double> const &arrayIn, Varray<double> &arrayOut, const Varray<int> &waves) { long ntr = gridInqTrunc(gridIDin); @@ -130,7 +130,7 @@ speccut(int gridIDin, const Varray<double> &arrayIn, Varray<double> &arrayOut, c } void -trans_uv2dv(const SP_Transformation &spTrans, long nlev, int gridID1, const Varray<double> &gu, const Varray<double> &gv, +trans_uv2dv(const SP_Transformation &spTrans, long nlev, int gridID1, Varray<double> const &gu, Varray<double> const &gv, int gridID2, Varray<double> &sd, Varray<double> &svo) { if (gridInqType(gridID1) != GRID_GAUSSIAN) @@ -139,7 +139,7 @@ trans_uv2dv(const SP_Transformation &spTrans, long nlev, int gridID1, const Varr if (gridInqType(gridID2) != GRID_SPECTRAL) cdo_abort("unexpected grid2 type: %s instead of spectral", gridNamePtr(gridInqType(gridID2))); - const auto &fcTrans = spTrans.fcTrans; + auto const &fcTrans = spTrans.fcTrans; long ntr = gridInqTrunc(gridID2); long nlon = gridInqXsize(gridID1); long nlat = gridInqYsize(gridID1); @@ -167,15 +167,15 @@ trans_uv2dv(const SP_Transformation &spTrans, long nlev, int gridID1, const Varr } void -trans_dv2uv(const SP_Transformation &spTrans, const DV_Transformation &dvTrans, long nlev, int gridID1, const Varray<double> &sd, - const Varray<double> &svo, int gridID2, Varray<double> &gu, Varray<double> &gv) +trans_dv2uv(const SP_Transformation &spTrans, const DV_Transformation &dvTrans, long nlev, int gridID1, Varray<double> const &sd, + Varray<double> const &svo, int gridID2, Varray<double> &gu, Varray<double> &gv) { if (gridInqType(gridID1) != GRID_SPECTRAL) cdo_warning("unexpected grid1 type: %s instead of spectral", gridNamePtr(gridInqType(gridID1))); if (gridInqType(gridID2) != GRID_GAUSSIAN) cdo_warning("unexpected grid2 type: %s instead of Gaussian", gridNamePtr(gridInqType(gridID2))); - const auto &fcTrans = spTrans.fcTrans; + auto const &fcTrans = spTrans.fcTrans; long ntr = gridInqTrunc(gridID1); long nlon = gridInqXsize(gridID2); long nlat = gridInqYsize(gridID2); diff --git a/src/specspace.h b/src/specspace.h index 741472c09..f362f4cd6 100644 --- a/src/specspace.h +++ b/src/specspace.h @@ -177,27 +177,27 @@ public: void dv2ps(const double *div, double *pot, long nlev, long ntr); -void trans_uv2dv(const SP_Transformation &spTrans, long nlev, int gridID1, const Varray<double> &gu, const Varray<double> &gv, +void trans_uv2dv(const SP_Transformation &spTrans, long nlev, int gridID1, Varray<double> const &gu, Varray<double> const &gv, int gridID2, Varray<double> &sd, Varray<double> &svo); void trans_dv2uv(const SP_Transformation &spTrans, const DV_Transformation &dvTrans, long nlev, int gridID1, - const Varray<double> &sd, const Varray<double> &svo, int gridID2, Varray<double> &gu, Varray<double> &gv); + Varray<double> const &sd, Varray<double> const &svo, int gridID2, Varray<double> &gu, Varray<double> &gv); -void grid2spec(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, +void grid2spec(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); -void spec2grid(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, +void spec2grid(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); -void four2spec(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, +void four2spec(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); -void spec2four(const SP_Transformation &spTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, +void spec2four(const SP_Transformation &spTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); -void four2grid(const FC_Transformation &fcTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, +void four2grid(const FC_Transformation &fcTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); -void grid2four(const FC_Transformation &fcTrans, int gridIDin, const Varray<double> &arrayIn, int gridIDout, +void grid2four(const FC_Transformation &fcTrans, int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); -void spec2spec(int gridIDin, const Varray<double> &arrayIn, int gridIDout, Varray<double> &arrayOut); -void speccut(int gridIDin, const Varray<double> &arrayIn, Varray<double> &arrayOut, const Varray<int> &waves); +void spec2spec(int gridIDin, Varray<double> const &arrayIn, int gridIDout, Varray<double> &arrayOut); +void speccut(int gridIDin, Varray<double> const &arrayIn, Varray<double> &arrayOut, const Varray<int> &waves); void spcut(const double *arrayIn, double *arrayOut, long ntr, const int *waves); diff --git a/src/stdnametable.cc b/src/stdnametable.cc index 1c4ae853e..a668ffc45 100644 --- a/src/stdnametable.cc +++ b/src/stdnametable.cc @@ -75,7 +75,7 @@ var_units(int varid) } int -stdname_to_echamcode(const std::string &stdname) +stdname_to_echamcode(std::string const &stdname) { int code = -1; diff --git a/src/stdnametable.h b/src/stdnametable.h index 8c7f8ec04..e2f1e2ffc 100644 --- a/src/stdnametable.h +++ b/src/stdnametable.h @@ -30,7 +30,7 @@ const char *var_name(int varid); const char *var_stdname(int varid); const char *var_units(int varid); -int stdname_to_echamcode(const std::string &stdname); +int stdname_to_echamcode(std::string const &stdname); struct gribcode_t { diff --git a/src/table.cc b/src/table.cc index 7c48d2be3..a4d631395 100644 --- a/src/table.cc +++ b/src/table.cc @@ -17,7 +17,7 @@ namespace cdo { int -define_table(const std::string &tablearg) +define_table(std::string const &tablearg) { auto tablename = tablearg.c_str(); @@ -25,7 +25,7 @@ define_table(const std::string &tablearg) if (tableID == CDI_UNDEFID) { - const auto &tablepath = getenv_string("CD_TABLEPATH"); + auto const &tablepath = getenv_string("CD_TABLEPATH"); if (tablepath.size()) { std::string tablefile = tablepath + "/" + tablename; diff --git a/src/table.h b/src/table.h index 07d53b8da..0d9a15478 100644 --- a/src/table.h +++ b/src/table.h @@ -6,7 +6,7 @@ namespace cdo { -int define_table(const std::string &tablearg); +int define_table(std::string const &tablearg); std::string predefined_tables(int p_padding); } // namespace cdo diff --git a/src/util_date.h b/src/util_date.h index 5949763b2..a835ddfe2 100644 --- a/src/util_date.h +++ b/src/util_date.h @@ -18,7 +18,7 @@ enum #define SET_DATE(dtstr, date, time) (snprintf(dtstr, sizeof(dtstr), "%*ld%*d", CMP_DATE - 6, (long) date, 6, time)) inline bool -date_is_neq(const CdiDateTime &dateTime1, const CdiDateTime &dateTime2, int compareDate) +date_is_neq(CdiDateTime const &dateTime1, CdiDateTime const &dateTime2, int compareDate) { char dateStr1[CMP_DATE + 1], dateStr2[CMP_DATE + 1]; SET_DATE(dateStr1, cdiDate_get(dateTime1.date), cdiTime_get(dateTime1.time)); diff --git a/src/util_files.cc b/src/util_files.cc index 2dd07f22c..d265ed117 100644 --- a/src/util_files.cc +++ b/src/util_files.cc @@ -13,7 +13,7 @@ #include "cdo_default_values.h" bool -FileUtils::file_exists(const std::string &fileName) +FileUtils::file_exists(std::string const &fileName) { /* auto isZarr = (fileName.starts_with("file://") && fileName.find("zarr", 6) != std::string::npos); @@ -38,7 +38,7 @@ FileUtils::file_exists(const std::string &fileName) } bool -FileUtils::user_file_overwrite(const std::string &fileName) +FileUtils::user_file_overwrite(std::string const &fileName) { auto status = false; @@ -76,7 +76,7 @@ FileUtils::size(const char *filename) } static std::string -gen_filesuffix(int filetype, const std::string &referenceName, int vlistID) +gen_filesuffix(int filetype, std::string const &referenceName, int vlistID) { std::string suffix; auto foundSuffix = false; @@ -140,7 +140,7 @@ gen_filesuffix(int filetype, const std::string &referenceName, int vlistID) } std::string -FileUtils::gen_suffix(int filetype, int vlistID, const std::string &referenceName) +FileUtils::gen_suffix(int filetype, int vlistID, std::string const &referenceName) { std::string suffix; if (cdo::FileSuffix != "NULL") diff --git a/src/util_files.h b/src/util_files.h index ec7773bfb..1b0f3cc6b 100644 --- a/src/util_files.h +++ b/src/util_files.h @@ -6,10 +6,10 @@ namespace FileUtils { -bool file_exists(const std::string &fileName); -bool user_file_overwrite(const std::string &fileName); +bool file_exists(std::string const &fileName); +bool user_file_overwrite(std::string const &fileName); off_t size(const char *filename); -std::string gen_suffix(int filetype, int vlistID, const std::string &refenceName); +std::string gen_suffix(int filetype, int vlistID, std::string const &refenceName); } // namespace FileUtils #endif diff --git a/src/util_string.cc b/src/util_string.cc index 463c4f8a8..bda781a8f 100644 --- a/src/util_string.cc +++ b/src/util_string.cc @@ -79,7 +79,7 @@ split_args(std::string operatorArguments) } std::string -getenv_string(const std::string &envVar) +getenv_string(std::string const &envVar) { std::string envString; auto envCstring = getenv(envVar.c_str()); @@ -88,7 +88,7 @@ getenv_string(const std::string &envVar) } std::vector<std::string> -split_string(const std::string &str, const std::string &delimiter) +split_string(std::string const &str, std::string const &delimiter) { std::regex regex(delimiter); return { std::sregex_token_iterator(str.begin(), str.end(), regex, -1), std::sregex_token_iterator() }; @@ -191,7 +191,7 @@ calendar_to_cstr(int calendar) } bool -string_is_float(const std::string &str) +string_is_float(std::string const &str) { if (str.empty() || std::isspace(str[0])) return 0; @@ -201,7 +201,7 @@ string_is_float(const std::string &str) } bool -string_is_int(const std::string &str) +string_is_int(std::string const &str) { if (str.empty() || std::isspace(str[0])) return 0; @@ -218,11 +218,11 @@ string_is_int(const std::string &str) * list is returned with the result boolean. **/ std::tuple<bool, std::vector<std::string>> -tokenize_comma_seperated_int_list(const std::string &args) +tokenize_comma_seperated_int_list(std::string const &args) { auto tokens = split_string(args, ","); bool res = true; - for (const auto &t : tokens) + for (auto const &t : tokens) { if (!string_is_int(t)) { diff --git a/src/util_string.h b/src/util_string.h index 878dc06de..2fd4362f9 100644 --- a/src/util_string.h +++ b/src/util_string.h @@ -22,9 +22,9 @@ std::vector<std::string> get_operator_argv(std::string operatorArguments); std::vector<std::string> split_args(std::string operatorArguments); -std::string getenv_string(const std::string &envVar); +std::string getenv_string(std::string const &envVar); -std::vector<std::string> split_string(const std::string &str, const std::string ®ex_str); +std::vector<std::string> split_string(std::string const &str, std::string const ®ex_str); std::string string_to_upper(std::string str); std::string string_to_lower(std::string str); @@ -38,15 +38,15 @@ const char *calendar_to_cstr(int calendar); std::string get_scientific(double p_float_string); -bool string_is_float(const std::string &str); -bool string_is_int(const std::string &str); +bool string_is_float(std::string const &str); +bool string_is_int(std::string const &str); void cstr_replace_char(char *str_in, char orig_char, char rep_char); -std::tuple<bool, std::vector<std::string>> tokenize_comma_seperated_int_list(const std::string &args); +std::tuple<bool, std::vector<std::string>> tokenize_comma_seperated_int_list(std::string const &args); template <typename... Args> std::string -string_format(const std::string &format, Args... args) +string_format(std::string const &format, Args... args) { auto size_s = std::snprintf(nullptr, 0, format.c_str(), args...) + 1; // Extra space for '\0' if (size_s <= 0) { throw std::runtime_error("Error during formatting."); } @@ -57,14 +57,14 @@ string_format(const std::string &format, Args... args) } inline bool -string_contains(const std::string &s, unsigned char ch) +string_contains(std::string const &s, unsigned char ch) { return (s.find(ch) != std::string::npos); } template <typename Precission> Precission -string_to_number(const std::string &str) +string_to_number(std::string const &str) { static_assert(std::is_arithmetic<Precission>::value, "Only arithmetic types allowed"); if (str.empty()) { throw std::invalid_argument("Error, conversion of " + str + " not possible, string empty"); } @@ -78,7 +78,7 @@ string_to_number(const std::string &str) template <typename Precission> std::tuple<bool, Precission> -string_to_integral(const std::string &str) +string_to_integral(std::string const &str) { static_assert(std::is_integral<Precission>::value, "Only integral number types allowed"); Precission number; @@ -94,7 +94,7 @@ string_to_integral(const std::string &str) template <typename Precission> std::tuple<bool, Precission> -string_to_floating(const std::string &str) +string_to_floating(std::string const &str) { static_assert(std::is_floating_point<Precission>::value, "Only floating point number types allowed"); Precission number; diff --git a/src/util_wildcards.cc b/src/util_wildcards.cc index 5b26adea2..c08ae1d86 100644 --- a/src/util_wildcards.cc +++ b/src/util_wildcards.cc @@ -242,7 +242,7 @@ wildcardmatch(const char *w, const char *s) #endif int -wildcardmatch(const std::string &pattern, const std::string &string) +wildcardmatch(std::string const &pattern, std::string const &string) { return wildcardmatch(pattern.c_str(), string.c_str()); } diff --git a/src/util_wildcards.h b/src/util_wildcards.h index 76caaa04c..d2d8fdcb1 100644 --- a/src/util_wildcards.h +++ b/src/util_wildcards.h @@ -17,6 +17,6 @@ std::vector<std::string> expand_path_names(std::vector<std::string> argv); std::vector<std::string> expand_wild_cards(std::vector<std::string> argv); int wildcardmatch(const char *w, const char *s); -int wildcardmatch(const std::string &w, const std::string &s); +int wildcardmatch(std::string const &w, std::string const &s); #endif diff --git a/src/varray.cc b/src/varray.cc index 32ecab6e7..c277f43c0 100644 --- a/src/varray.cc +++ b/src/varray.cc @@ -59,18 +59,18 @@ template MinMax varray_min_max_mv(size_t len, const double *array, double missva template <typename T> MinMax -varray_min_max_mv(size_t len, const Varray<T> &v, double missval) +varray_min_max_mv(size_t len, Varray<T> const &v, double missval) { return varray_min_max_mv(len, v.data(), missval); } // Explicit instantiation -template MinMax varray_min_max_mv(size_t len, const Varray<float> &v, double missval); -template MinMax varray_min_max_mv(size_t len, const Varray<double> &v, double missval); +template MinMax varray_min_max_mv(size_t len, Varray<float> const &v, double missval); +template MinMax varray_min_max_mv(size_t len, Varray<double> const &v, double missval); template <typename T> MinMaxSum -varray_min_max_sum(const Varray<T> &v, size_t len, const MinMaxSum &mms) +varray_min_max_sum(Varray<T> const &v, size_t len, const MinMaxSum &mms) { auto f_minmaxsum = [](auto val, auto &vmin, auto &vmax, auto &vsum) { vmin = min_value(vmin, val); @@ -105,12 +105,12 @@ varray_min_max_sum(const Varray<T> &v, size_t len, const MinMaxSum &mms) } // Explicit instantiation -template MinMaxSum varray_min_max_sum(const Varray<float> &v, size_t len, const MinMaxSum &mms); -template MinMaxSum varray_min_max_sum(const Varray<double> &v, size_t len, const MinMaxSum &mms); +template MinMaxSum varray_min_max_sum(Varray<float> const &v, size_t len, const MinMaxSum &mms); +template MinMaxSum varray_min_max_sum(Varray<double> const &v, size_t len, const MinMaxSum &mms); template <typename T> MinMaxSum -varray_min_max_sum_mv(const Varray<T> &v, size_t len, const MinMaxSum &mms, double missval) +varray_min_max_sum_mv(Varray<T> const &v, size_t len, const MinMaxSum &mms, double missval) { auto f_minmaxsum_mv = [](auto val, auto mv, auto &vmin, auto &vmax, auto &vsum, auto &nvals, auto is_NE) { if (is_NE(val, mv)) @@ -156,12 +156,12 @@ varray_min_max_sum_mv(const Varray<T> &v, size_t len, const MinMaxSum &mms, doub } // Explicit instantiation -template MinMaxSum varray_min_max_sum_mv(const Varray<float> &v, size_t len, const MinMaxSum &mms, double missval); -template MinMaxSum varray_min_max_sum_mv(const Varray<double> &v, size_t len, const MinMaxSum &mms, double missval); +template MinMaxSum varray_min_max_sum_mv(Varray<float> const &v, size_t len, const MinMaxSum &mms, double missval); +template MinMaxSum varray_min_max_sum_mv(Varray<double> const &v, size_t len, const MinMaxSum &mms, double missval); template <typename T> MinMaxMean -varray_min_max_mean(const Varray<T> &v, size_t len) +varray_min_max_mean(Varray<T> const &v, size_t len) { auto mms = varray_min_max_sum(v, len, MinMaxSum()); auto rmean = (len != 0) ? mms.sum / static_cast<double>(len) : 0.0; @@ -169,12 +169,12 @@ varray_min_max_mean(const Varray<T> &v, size_t len) } // Explicit instantiation -template MinMaxMean varray_min_max_mean(const Varray<float> &v, size_t len); -template MinMaxMean varray_min_max_mean(const Varray<double> &v, size_t len); +template MinMaxMean varray_min_max_mean(Varray<float> const &v, size_t len); +template MinMaxMean varray_min_max_mean(Varray<double> const &v, size_t len); template <typename T> MinMaxMean -varray_min_max_mean_mv(const Varray<T> &v, size_t len, T missval) +varray_min_max_mean_mv(Varray<T> const &v, size_t len, T missval) { auto mms = varray_min_max_sum_mv(v, len, MinMaxSum(), missval); auto rmean = (mms.n != 0) ? mms.sum / static_cast<double>(mms.n) : missval; @@ -182,12 +182,12 @@ varray_min_max_mean_mv(const Varray<T> &v, size_t len, T missval) } // Explicit instantiation -template MinMaxMean varray_min_max_mean_mv(const Varray<float> &v, size_t len, float missval); -template MinMaxMean varray_min_max_mean_mv(const Varray<double> &v, size_t len, double missval); +template MinMaxMean varray_min_max_mean_mv(Varray<float> const &v, size_t len, float missval); +template MinMaxMean varray_min_max_mean_mv(Varray<double> const &v, size_t len, double missval); template <typename T> MinMax -array_min_max_mask(const T *const array, size_t len, const Vmask &mask) +array_min_max_mask(const T *const array, size_t len, Vmask const &mask) { T rmin = std::numeric_limits<T>::max(); T rmax = -std::numeric_limits<T>::max(); @@ -216,8 +216,8 @@ array_min_max_mask(const T *const array, size_t len, const Vmask &mask) } // Explicit instantiation -template MinMax array_min_max_mask(const float *const array, size_t len, const Vmask &mask); -template MinMax array_min_max_mask(const double *const array, size_t len, const Vmask &mask); +template MinMax array_min_max_mask(const float *const array, size_t len, Vmask const &mask); +template MinMax array_min_max_mask(const double *const array, size_t len, Vmask const &mask); void array_add_array(size_t len, double *array1, const double *array2) @@ -272,7 +272,7 @@ template size_t array_num_mv(size_t len, const double *array, double missval); template <typename T> size_t -varray_num_mv(size_t len, const Varray<T> &v, double mv) +varray_num_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -295,8 +295,8 @@ varray_num_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template size_t varray_num_mv(size_t len, const Varray<float> &v, double missval); -template size_t varray_num_mv(size_t len, const Varray<double> &v, double missval); +template size_t varray_num_mv(size_t len, Varray<float> const &v, double missval); +template size_t varray_num_mv(size_t len, Varray<double> const &v, double missval); template <typename T> MinMax @@ -325,18 +325,18 @@ template MinMax varray_min_max(size_t len, const double *array); template <typename T> MinMax -varray_min_max(size_t len, const Varray<T> &v) +varray_min_max(size_t len, Varray<T> const &v) { return varray_min_max(len, v.data()); } // Explicit instantiation -template MinMax varray_min_max(size_t len, const Varray<float> &v); -template MinMax varray_min_max(size_t len, const Varray<double> &v); +template MinMax varray_min_max(size_t len, Varray<float> const &v); +template MinMax varray_min_max(size_t len, Varray<double> const &v); template <typename T> MinMax -varray_min_max(const Varray<T> &v) +varray_min_max(Varray<T> const &v) { T vmin = std::numeric_limits<T>::max(); T vmax = -std::numeric_limits<T>::max(); @@ -357,12 +357,12 @@ varray_min_max(const Varray<T> &v) } // Explicit instantiation -template MinMax varray_min_max(const Varray<float> &v); -template MinMax varray_min_max(const Varray<double> &v); +template MinMax varray_min_max(Varray<float> const &v); +template MinMax varray_min_max(Varray<double> const &v); template <typename T> T -varray_min(size_t len, const Varray<T> &v) +varray_min(size_t len, Varray<T> const &v) { assert(len > 0); assert(v.size() > 0); @@ -388,12 +388,12 @@ varray_min(size_t len, const Varray<T> &v) } // Explicit instantiation -template float varray_min(size_t len, const Varray<float> &v); -template double varray_min(size_t len, const Varray<double> &v); +template float varray_min(size_t len, Varray<float> const &v); +template double varray_min(size_t len, Varray<double> const &v); template <typename T> T -varray_max(size_t len, const Varray<T> &v) +varray_max(size_t len, Varray<T> const &v) { assert(len > 0); assert(v.size() > 0); @@ -419,12 +419,12 @@ varray_max(size_t len, const Varray<T> &v) } // Explicit instantiation -template float varray_max(size_t len, const Varray<float> &v); -template double varray_max(size_t len, const Varray<double> &v); +template float varray_max(size_t len, Varray<float> const &v); +template double varray_max(size_t len, Varray<double> const &v); template <typename T> T -varray_range(size_t len, const Varray<T> &v) +varray_range(size_t len, Varray<T> const &v) { assert(len > 0); assert(v.size() > 0); @@ -459,12 +459,12 @@ varray_range(size_t len, const Varray<T> &v) } // Explicit instantiation -template float varray_range(size_t len, const Varray<float> &v); -template double varray_range(size_t len, const Varray<double> &v); +template float varray_range(size_t len, Varray<float> const &v); +template double varray_range(size_t len, Varray<double> const &v); template <typename T> T -varray_min_mv(size_t len, const Varray<T> &v, double mv) +varray_min_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -527,12 +527,12 @@ varray_min_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template float varray_min_mv(size_t len, const Varray<float> &v, double missval); -template double varray_min_mv(size_t len, const Varray<double> &v, double missval); +template float varray_min_mv(size_t len, Varray<float> const &v, double missval); +template double varray_min_mv(size_t len, Varray<double> const &v, double missval); template <typename T> T -varray_max_mv(size_t len, const Varray<T> &v, double mv) +varray_max_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -595,12 +595,12 @@ varray_max_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template float varray_max_mv(size_t len, const Varray<float> &v, double missval); -template double varray_max_mv(size_t len, const Varray<double> &v, double missval); +template float varray_max_mv(size_t len, Varray<float> const &v, double missval); +template double varray_max_mv(size_t len, Varray<double> const &v, double missval); template <typename T> T -varray_range_mv(size_t len, const Varray<T> &v, double mv) +varray_range_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -666,8 +666,8 @@ varray_range_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template float varray_range_mv(size_t len, const Varray<float> &v, double missval); -template double varray_range_mv(size_t len, const Varray<double> &v, double missval); +template float varray_range_mv(size_t len, Varray<float> const &v, double missval); +template double varray_range_mv(size_t len, Varray<double> const &v, double missval); double array_sum(size_t len, const double *array) @@ -680,7 +680,7 @@ array_sum(size_t len, const double *array) template <typename T> double -varray_sum(size_t len, const Varray<T> &v) +varray_sum(size_t len, Varray<T> const &v) { // assert(len > 0); // failed in remapcon assert(v.size() > 0); @@ -706,12 +706,12 @@ varray_sum(size_t len, const Varray<T> &v) } // Explicit instantiation -template double varray_sum(size_t len, const Varray<float> &v); -template double varray_sum(size_t len, const Varray<double> &v); +template double varray_sum(size_t len, Varray<float> const &v); +template double varray_sum(size_t len, Varray<double> const &v); template <typename T> double -varray_sum_mv(size_t len, const Varray<T> &v, double mv) +varray_sum_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -779,12 +779,12 @@ varray_sum_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template double varray_sum_mv(size_t len, const Varray<float> &v, double missval); -template double varray_sum_mv(size_t len, const Varray<double> &v, double missval); +template double varray_sum_mv(size_t len, Varray<float> const &v, double missval); +template double varray_sum_mv(size_t len, Varray<double> const &v, double missval); template <typename T> double -varray_mean(size_t len, const Varray<T> &v) +varray_mean(size_t len, Varray<T> const &v) { assert(len > 0); assert(v.size() > 0); @@ -796,12 +796,12 @@ varray_mean(size_t len, const Varray<T> &v) } // Explicit instantiation -template double varray_mean(size_t len, const Varray<float> &v); -template double varray_mean(size_t len, const Varray<double> &v); +template double varray_mean(size_t len, Varray<float> const &v); +template double varray_mean(size_t len, Varray<double> const &v); template <typename T> double -varray_mean_mv(size_t len, const Varray<T> &v, double mv) +varray_mean_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -825,12 +825,12 @@ varray_mean_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template double varray_mean_mv(size_t len, const Varray<float> &v, double missval); -template double varray_mean_mv(size_t len, const Varray<double> &v, double missval); +template double varray_mean_mv(size_t len, Varray<float> const &v, double missval); +template double varray_mean_mv(size_t len, Varray<double> const &v, double missval); template <typename T> double -varray_weighted_mean(size_t len, const Varray<T> &v, const Varray<double> &w, double mv) +varray_weighted_mean(size_t len, Varray<T> const &v, Varray<double> const &w, double mv) { T missval = mv; @@ -868,12 +868,12 @@ varray_weighted_mean(size_t len, const Varray<T> &v, const Varray<double> &w, do } // Explicit instantiation -template double varray_weighted_mean(size_t len, const Varray<float> &v, const Varray<double> &w, double missval); -template double varray_weighted_mean(size_t len, const Varray<double> &v, const Varray<double> &w, double missval); +template double varray_weighted_mean(size_t len, Varray<float> const &v, Varray<double> const &w, double missval); +template double varray_weighted_mean(size_t len, Varray<double> const &v, Varray<double> const &w, double missval); template <typename T> double -varray_weighted_mean_mv(size_t len, const Varray<T> &v, const Varray<double> &w, double mv) +varray_weighted_mean_mv(size_t len, Varray<T> const &v, Varray<double> const &w, double mv) { T missval = mv; @@ -947,12 +947,12 @@ varray_weighted_mean_mv(size_t len, const Varray<T> &v, const Varray<double> &w, } // Explicit instantiation -template double varray_weighted_mean_mv(size_t len, const Varray<float> &v, const Varray<double> &w, double missval); -template double varray_weighted_mean_mv(size_t len, const Varray<double> &v, const Varray<double> &w, double missval); +template double varray_weighted_mean_mv(size_t len, Varray<float> const &v, Varray<double> const &w, double missval); +template double varray_weighted_mean_mv(size_t len, Varray<double> const &v, Varray<double> const &w, double missval); template <typename T> double -varray_avg_mv(size_t len, const Varray<T> &v, double mv) +varray_avg_mv(size_t len, Varray<T> const &v, double mv) { T missval = mv; @@ -974,12 +974,12 @@ varray_avg_mv(size_t len, const Varray<T> &v, double mv) } // Explicit instantiation -template double varray_avg_mv(size_t len, const Varray<float> &v, double missval); -template double varray_avg_mv(size_t len, const Varray<double> &v, double missval); +template double varray_avg_mv(size_t len, Varray<float> const &v, double missval); +template double varray_avg_mv(size_t len, Varray<double> const &v, double missval); template <typename T> double -varray_weighted_avg_mv(size_t len, const Varray<T> &v, const Varray<double> &w, double mv) +varray_weighted_avg_mv(size_t len, Varray<T> const &v, Varray<double> const &w, double mv) { T missval = mv; @@ -1003,12 +1003,12 @@ varray_weighted_avg_mv(size_t len, const Varray<T> &v, const Varray<double> &w, } // Explicit instantiation -template double varray_weighted_avg_mv(size_t len, const Varray<float> &v, const Varray<double> &w, double missval); -template double varray_weighted_avg_mv(size_t len, const Varray<double> &v, const Varray<double> &w, double missval); +template double varray_weighted_avg_mv(size_t len, Varray<float> const &v, Varray<double> const &w, double missval); +template double varray_weighted_avg_mv(size_t len, Varray<double> const &v, Varray<double> const &w, double missval); template <typename T> static void -varray_prevarsum0(size_t len, const Varray<T> &v, double &rsum, double &rsumw) +varray_prevarsum0(size_t len, Varray<T> const &v, double &rsum, double &rsumw) { rsum = 0.0; if (len > cdoMinLoopSize) @@ -1030,7 +1030,7 @@ varray_prevarsum0(size_t len, const Varray<T> &v, double &rsum, double &rsumw) template <typename T> static void -varray_prevarsum0_mv(size_t len, const Varray<T> &v, double missval, double &rsum, double &rsumw) +varray_prevarsum0_mv(size_t len, Varray<T> const &v, double missval, double &rsum, double &rsumw) { auto f_prevarsum0_mv = [](auto a, auto mv_a, auto &sum, auto &sumw) { if (fp_is_not_equal(a, mv_a)) @@ -1064,7 +1064,7 @@ varray_prevarsum0_mv(size_t len, const Varray<T> &v, double missval, double &rsu template <typename T> static void -varray_prevarsum(size_t len, const Varray<T> &v, double &rsum, double &rsumw, double &rsumq, double &rsumwq) +varray_prevarsum(size_t len, Varray<T> const &v, double &rsum, double &rsumw, double &rsumq, double &rsumwq) { auto f_prevarsum = [](auto a, auto &sum, auto &sumq) { sum += a; @@ -1098,7 +1098,7 @@ varray_prevarsum(size_t len, const Varray<T> &v, double &rsum, double &rsumw, do template <typename T> static void -varray_prevarsum_mv(size_t len, const Varray<T> &v, T missval, double &rsum, double &rsumw, double &rsumq, double &rsumwq) +varray_prevarsum_mv(size_t len, Varray<T> const &v, T missval, double &rsum, double &rsumw, double &rsumq, double &rsumwq) { auto f_prevarsum = [](auto a, auto mv_a, auto &sum, auto &sumq, auto &sumw, auto &sumwq) { if (fp_is_not_equal(a, mv_a)) @@ -1123,7 +1123,7 @@ varray_prevarsum_mv(size_t len, const Varray<T> &v, T missval, double &rsum, dou template <typename T> double -varray_var(size_t len, const Varray<T> &v, size_t numMissVals, double mv) +varray_var(size_t len, Varray<T> const &v, size_t numMissVals, double mv) { T missval = mv; @@ -1140,12 +1140,12 @@ varray_var(size_t len, const Varray<T> &v, size_t numMissVals, double mv) } // Explicit instantiation -template double varray_var(size_t len, const Varray<float> &v, size_t numMissVals, double missval); -template double varray_var(size_t len, const Varray<double> &v, size_t numMissVals, double missval); +template double varray_var(size_t len, Varray<float> const &v, size_t numMissVals, double missval); +template double varray_var(size_t len, Varray<double> const &v, size_t numMissVals, double missval); template <typename T> double -varray_var_1(size_t len, const Varray<T> &v, size_t numMissVals, double mv) +varray_var_1(size_t len, Varray<T> const &v, size_t numMissVals, double mv) { T missval = mv; @@ -1162,12 +1162,12 @@ varray_var_1(size_t len, const Varray<T> &v, size_t numMissVals, double mv) } // Explicit instantiation -template double varray_var_1(size_t len, const Varray<float> &v, size_t numMissVals, double missval); -template double varray_var_1(size_t len, const Varray<double> &v, size_t numMissVals, double missval); +template double varray_var_1(size_t len, Varray<float> const &v, size_t numMissVals, double missval); +template double varray_var_1(size_t len, Varray<double> const &v, size_t numMissVals, double missval); template <typename T> static void -varray_weighted_prevarsum(size_t len, const Varray<T> &v, const Varray<double> &w, double &rsum, double &rsumw, double &rsumq, +varray_weighted_prevarsum(size_t len, Varray<T> const &v, Varray<double> const &w, double &rsum, double &rsumw, double &rsumq, double &rsumwq) { auto f_weighted_prevarsum = [](auto aw, auto a, auto &sum, auto &sumq, auto &sumw, auto &sumwq) { @@ -1201,7 +1201,7 @@ varray_weighted_prevarsum(size_t len, const Varray<T> &v, const Varray<double> & template <typename T> static void -varray_weighted_prevarsum_mv(size_t len, const Varray<T> &v, const Varray<double> &w, double missval, double &rsum, double &rsumw, +varray_weighted_prevarsum_mv(size_t len, Varray<T> const &v, Varray<double> const &w, double missval, double &rsum, double &rsumw, double &rsumq, double &rsumwq) { auto f_weighted_prevarsum_mv = [](auto aw, auto a, auto mv_a, auto &sum, auto &sumq, auto &sumw, auto &sumwq) { @@ -1238,7 +1238,7 @@ varray_weighted_prevarsum_mv(size_t len, const Varray<T> &v, const Varray<double template <typename T> double -varray_weighted_var(size_t len, const Varray<T> &v, const Varray<double> &w, size_t numMissVals, double mv) +varray_weighted_var(size_t len, Varray<T> const &v, Varray<double> const &w, size_t numMissVals, double mv) { T missval = mv; @@ -1255,14 +1255,14 @@ varray_weighted_var(size_t len, const Varray<T> &v, const Varray<double> &w, siz } // Explicit instantiation -template double varray_weighted_var(size_t len, const Varray<float> &v, const Varray<double> &w, size_t numMissVals, +template double varray_weighted_var(size_t len, Varray<float> const &v, Varray<double> const &w, size_t numMissVals, double missval); -template double varray_weighted_var(size_t len, const Varray<double> &v, const Varray<double> &w, size_t numMissVals, +template double varray_weighted_var(size_t len, Varray<double> const &v, Varray<double> const &w, size_t numMissVals, double missval); template <typename T> double -varray_weighted_var_1(size_t len, const Varray<T> &v, const Varray<double> &w, size_t numMissVals, double mv) +varray_weighted_var_1(size_t len, Varray<T> const &v, Varray<double> const &w, size_t numMissVals, double mv) { T missval = mv; @@ -1279,14 +1279,14 @@ varray_weighted_var_1(size_t len, const Varray<T> &v, const Varray<double> &w, s } // Explicit instantiation -template double varray_weighted_var_1(size_t len, const Varray<float> &v, const Varray<double> &w, size_t numMissVals, +template double varray_weighted_var_1(size_t len, Varray<float> const &v, Varray<double> const &w, size_t numMissVals, double missval); -template double varray_weighted_var_1(size_t len, const Varray<double> &v, const Varray<double> &w, size_t numMissVals, +template double varray_weighted_var_1(size_t len, Varray<double> const &v, Varray<double> const &w, size_t numMissVals, double missval); template <typename T> static void -varray_prekurtsum(size_t len, const Varray<T> &v, double mean, double &rsum3w, double &rsum2diff, double &rsum4diff) +varray_prekurtsum(size_t len, Varray<T> const &v, double mean, double &rsum3w, double &rsum2diff, double &rsum4diff) { auto f_prekurtsum = [](auto vdiff, auto &sum2diff, auto &sum4diff) { sum2diff += vdiff * vdiff; @@ -1319,7 +1319,7 @@ varray_prekurtsum(size_t len, const Varray<T> &v, double mean, double &rsum3w, d template <typename T> static void -varray_prekurtsum_mv(size_t len, const Varray<T> &v, T missval, double mean, double &rsum3w, double &rsum2diff, double &rsum4diff) +varray_prekurtsum_mv(size_t len, Varray<T> const &v, T missval, double mean, double &rsum3w, double &rsum2diff, double &rsum4diff) { auto f_prekurtsum_mv = [](auto a, auto mv_a, auto meanval, auto &sum2diff, auto &sum4diff, auto &sum3w) { if (fp_is_not_equal(a, mv_a)) @@ -1355,7 +1355,7 @@ varray_prekurtsum_mv(size_t len, const Varray<T> &v, T missval, double mean, dou template <typename T> double -varray_kurt(size_t len, const Varray<T> &v, size_t numMissVals, double mv) +varray_kurt(size_t len, Varray<T> const &v, size_t numMissVals, double mv) { T missval = mv; @@ -1383,12 +1383,12 @@ varray_kurt(size_t len, const Varray<T> &v, size_t numMissVals, double mv) } // Explicit instantiation -template double varray_kurt(size_t len, const Varray<float> &v, size_t numMissVals, double missval); -template double varray_kurt(size_t len, const Varray<double> &v, size_t numMissVals, double missval); +template double varray_kurt(size_t len, Varray<float> const &v, size_t numMissVals, double missval); +template double varray_kurt(size_t len, Varray<double> const &v, size_t numMissVals, double missval); template <typename T> static void -varray_preskewsum(size_t len, const Varray<T> &v, double mean, double &rsum3w, double &rsum3diff, double &rsum2diff) +varray_preskewsum(size_t len, Varray<T> const &v, double mean, double &rsum3w, double &rsum3diff, double &rsum2diff) { auto f_preskewsum = [](auto vdiff, auto &sum3diff, auto &sum2diff) { sum3diff += vdiff * vdiff * vdiff; @@ -1422,7 +1422,7 @@ varray_preskewsum(size_t len, const Varray<T> &v, double mean, double &rsum3w, d template <typename T> static void -varray_preskewsum_mv(size_t len, const Varray<T> &v, T missval, double mean, double &rsum3w, double &rsum3diff, double &rsum2diff) +varray_preskewsum_mv(size_t len, Varray<T> const &v, T missval, double mean, double &rsum3w, double &rsum3diff, double &rsum2diff) { auto f_preskewsum_mv = [](auto a, auto mv_a, auto meanval, auto &sum3diff, auto &sum2diff, auto &sum3w) { if (fp_is_not_equal(a, mv_a)) @@ -1458,7 +1458,7 @@ varray_preskewsum_mv(size_t len, const Varray<T> &v, T missval, double mean, dou template <typename T> double -varray_skew(size_t len, const Varray<T> &v, size_t numMissVals, double mv) +varray_skew(size_t len, Varray<T> const &v, size_t numMissVals, double mv) { T missval = mv; @@ -1486,8 +1486,8 @@ varray_skew(size_t len, const Varray<T> &v, size_t numMissVals, double mv) } // Explicit instantiation -template double varray_skew(size_t len, const Varray<float> &v, size_t numMissVals, double missval); -template double varray_skew(size_t len, const Varray<double> &v, size_t numMissVals, double missval); +template double varray_skew(size_t len, Varray<float> const &v, size_t numMissVals, double missval); +template double varray_skew(size_t len, Varray<double> const &v, size_t numMissVals, double missval); #include <algorithm> @@ -1519,7 +1519,7 @@ f_median(size_t len, Varray<T> &v) template <typename T> double -varray_median(size_t len, const Varray<T> &v, size_t numMissVals, double mv) +varray_median(size_t len, Varray<T> const &v, size_t numMissVals, double mv) { T missval = mv; @@ -1547,12 +1547,12 @@ varray_median(size_t len, const Varray<T> &v, size_t numMissVals, double mv) } // Explicit instantiation -template double varray_median(size_t len, const Varray<float> &v, size_t numMissVals, double missval); -template double varray_median(size_t len, const Varray<double> &v, size_t numMissVals, double missval); +template double varray_median(size_t len, Varray<float> const &v, size_t numMissVals, double missval); +template double varray_median(size_t len, Varray<double> const &v, size_t numMissVals, double missval); template <typename T> double -varray_count(size_t len, const Varray<T> &v, size_t numMissVals, double mv) +varray_count(size_t len, Varray<T> const &v, size_t numMissVals, double mv) { T missval = mv; @@ -1575,5 +1575,5 @@ varray_count(size_t len, const Varray<T> &v, size_t numMissVals, double mv) } // Explicit instantiation -template double varray_count(size_t len, const Varray<float> &v, size_t numMissVals, double missval); -template double varray_count(size_t len, const Varray<double> &v, size_t numMissVals, double missval); +template double varray_count(size_t len, Varray<float> const &v, size_t numMissVals, double missval); +template double varray_count(size_t len, Varray<double> const &v, size_t numMissVals, double missval); diff --git a/src/varray.h b/src/varray.h index c8b98a440..e2ab5c7ad 100644 --- a/src/varray.h +++ b/src/varray.h @@ -216,19 +216,19 @@ using Matrix = std::array<std::array<T, COL>, ROW>; */ template <typename T> -MinMaxSum varray_min_max_sum(const Varray<T> &v, size_t len, const MinMaxSum &mms); +MinMaxSum varray_min_max_sum(Varray<T> const &v, size_t len, const MinMaxSum &mms); template <typename T> -MinMaxSum varray_min_max_sum_mv(const Varray<T> &v, size_t len, const MinMaxSum &mms, double missval); +MinMaxSum varray_min_max_sum_mv(Varray<T> const &v, size_t len, const MinMaxSum &mms, double missval); template <typename T> -MinMaxMean varray_min_max_mean(const Varray<T> &v, size_t len); +MinMaxMean varray_min_max_mean(Varray<T> const &v, size_t len); template <typename T> -MinMaxMean varray_min_max_mean_mv(const Varray<T> &v, size_t len, T missval); +MinMaxMean varray_min_max_mean_mv(Varray<T> const &v, size_t len, T missval); template <typename T> -MinMax array_min_max_mask(const T *array, size_t len, const Vmask &mask); +MinMax array_min_max_mask(const T *array, size_t len, Vmask const &mask); void array_add_array(size_t len, double *array1, const double *array2); void array_add_array_mv(size_t len, double *array1, const double *array2, double missval); @@ -257,7 +257,7 @@ varray_divc(size_t len, Varray<T1> &v, T2 value) template <typename T, class UnaryOperation> void -varray_transform(const Varray<T> &vIn, Varray<T> &vOut, UnaryOperation unary_op) +varray_transform(Varray<T> const &vIn, Varray<T> &vOut, UnaryOperation unary_op) { assert(vIn.size() > 0); assert(vOut.size() > 0); @@ -271,89 +271,89 @@ template <typename T> size_t array_num_mv(size_t len, const T *array, double missval); template <typename T> -size_t varray_num_mv(size_t len, const Varray<T> &v, double missval); +size_t varray_num_mv(size_t len, Varray<T> const &v, double missval); template <typename T> -MinMax varray_min_max(size_t len, const Varray<T> &v); +MinMax varray_min_max(size_t len, Varray<T> const &v); template <typename T> MinMax varray_min_max(size_t len, const T *array); template <typename T> -MinMax varray_min_max(const Varray<T> &v); +MinMax varray_min_max(Varray<T> const &v); template <typename T> -MinMax varray_min_max_mv(size_t len, const Varray<T> &v, double missval); +MinMax varray_min_max_mv(size_t len, Varray<T> const &v, double missval); template <typename T> MinMax varray_min_max_mv(size_t len, const T *array, double missval); template <typename T> -T varray_min(size_t len, const Varray<T> &v); +T varray_min(size_t len, Varray<T> const &v); template <typename T> -T varray_max(size_t len, const Varray<T> &v); +T varray_max(size_t len, Varray<T> const &v); template <typename T> -T varray_range(size_t len, const Varray<T> &v); +T varray_range(size_t len, Varray<T> const &v); template <typename T> -T varray_min_mv(size_t len, const Varray<T> &v, double missval); +T varray_min_mv(size_t len, Varray<T> const &v, double missval); template <typename T> -T varray_max_mv(size_t len, const Varray<T> &v, double missval); +T varray_max_mv(size_t len, Varray<T> const &v, double missval); template <typename T> -T varray_range_mv(size_t len, const Varray<T> &v, double missval); +T varray_range_mv(size_t len, Varray<T> const &v, double missval); double array_sum(size_t len, const double *array); template <typename T> -double varray_sum(size_t len, const Varray<T> &v); +double varray_sum(size_t len, Varray<T> const &v); template <typename T> -double varray_sum_mv(size_t len, const Varray<T> &v, double missval); +double varray_sum_mv(size_t len, Varray<T> const &v, double missval); template <typename T> -double varray_mean(size_t len, const Varray<T> &v); +double varray_mean(size_t len, Varray<T> const &v); template <typename T> -double varray_mean_mv(size_t len, const Varray<T> &v, double missval); +double varray_mean_mv(size_t len, Varray<T> const &v, double missval); template <typename T> -double varray_weighted_mean(size_t len, const Varray<T> &v, const Varray<double> &w, double missval); +double varray_weighted_mean(size_t len, Varray<T> const &v, Varray<double> const &w, double missval); template <typename T> -double varray_weighted_mean_mv(size_t len, const Varray<T> &v, const Varray<double> &w, double missval); +double varray_weighted_mean_mv(size_t len, Varray<T> const &v, Varray<double> const &w, double missval); template <typename T> -double varray_avg_mv(size_t len, const Varray<T> &v, double missval); +double varray_avg_mv(size_t len, Varray<T> const &v, double missval); template <typename T> -double varray_weighted_avg_mv(size_t len, const Varray<T> &v, const Varray<double> &w, double missval); +double varray_weighted_avg_mv(size_t len, Varray<T> const &v, Varray<double> const &w, double missval); template <typename T> -double varray_var(size_t len, const Varray<T> &v, size_t numMissVals, double missval); +double varray_var(size_t len, Varray<T> const &v, size_t numMissVals, double missval); template <typename T> -double varray_var_1(size_t len, const Varray<T> &v, size_t numMissVals, double missval); +double varray_var_1(size_t len, Varray<T> const &v, size_t numMissVals, double missval); template <typename T> -double varray_weighted_var(size_t len, const Varray<T> &v, const Varray<double> &w, size_t numMissVals, double missval); +double varray_weighted_var(size_t len, Varray<T> const &v, Varray<double> const &w, size_t numMissVals, double missval); template <typename T> -double varray_weighted_var_1(size_t len, const Varray<T> &v, const Varray<double> &w, size_t numMissVals, double missval); +double varray_weighted_var_1(size_t len, Varray<T> const &v, Varray<double> const &w, size_t numMissVals, double missval); template <typename T> -double varray_skew(size_t len, const Varray<T> &v, size_t numMissVals, double missval); +double varray_skew(size_t len, Varray<T> const &v, size_t numMissVals, double missval); template <typename T> -double varray_kurt(size_t len, const Varray<T> &v, size_t numMissVals, double missval); +double varray_kurt(size_t len, Varray<T> const &v, size_t numMissVals, double missval); template <typename T> -double varray_median(size_t len, const Varray<T> &v, size_t numMissVals, double missval); +double varray_median(size_t len, Varray<T> const &v, size_t numMissVals, double missval); template <typename T> -double varray_count(size_t len, const Varray<T> &v, size_t numMissVals, double missval); +double varray_count(size_t len, Varray<T> const &v, size_t numMissVals, double missval); #endif // VARRAY_H diff --git a/src/vector3d.h b/src/vector3d.h index b5309847f..507a0c332 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -43,13 +43,13 @@ public: } Vector3d - operator+(const Vector3d &other) const noexcept + operator+(Vector3d const &other) const noexcept { return Vector3d(X + other.X, Y + other.Y, Z + other.Z); } Vector3d - operator-(const Vector3d &other) const noexcept + operator-(Vector3d const &other) const noexcept { return Vector3d(X - other.X, Y - other.Y, Z - other.Z); } @@ -62,7 +62,7 @@ public: // Calculate the cross/outer/vector product Vector3d - operator%(const Vector3d &other) const noexcept + operator%(Vector3d const &other) const noexcept { return Vector3d(Y * other.Z - Z * other.Y, Z * other.X - X * other.Z, X * other.Y - Y * other.X); } @@ -82,7 +82,7 @@ public: // Calculate the dot/inner/scalar product double - operator*(const Vector3d &other) const noexcept + operator*(Vector3d const &other) const noexcept { return (X * other.X) + (Y * other.Y) + (Z * other.Z); } @@ -120,7 +120,7 @@ public: }; static inline Vector3d -vector_product(const Vector3d &v0, const Vector3d &v1, const Vector3d &v2) +vector_product(Vector3d const &v0, Vector3d const &v1, Vector3d const &v2) { // e1, e2: edges of the underlying planar triangle: v1-v0 ands v2-v0, respectively auto e1 = v1 - v0; @@ -132,7 +132,7 @@ vector_product(const Vector3d &v0, const Vector3d &v1, const Vector3d &v2) } static inline Vector3d -circum_center_mean(const Vector3d &v0, const Vector3d &v1, const Vector3d &v2) +circum_center_mean(Vector3d const &v0, Vector3d const &v1, Vector3d const &v2) { /* v0, v1, v2: the coordinates of the three triangle vertices (_dmo,nit vectors) in diff --git a/src/vertical_interp.cc b/src/vertical_interp.cc index 824fc007a..13a266fa7 100644 --- a/src/vertical_interp.cc +++ b/src/vertical_interp.cc @@ -38,7 +38,7 @@ pressure_to_height(const double *pressureLevels, double *heightLevels, int numLe */ template <typename T> void -vct_to_hybrid_pressure(T *restrict fullPress, T *halfPress, const Varray<double> &vct, const T *restrict ps, long nhlev, long ngp) +vct_to_hybrid_pressure(T *restrict fullPress, T *halfPress, Varray<double> const &vct, const T *restrict ps, long nhlev, long ngp) { assert(ps != nullptr); @@ -59,9 +59,9 @@ vct_to_hybrid_pressure(T *restrict fullPress, T *halfPress, const Varray<double> } } -template void vct_to_hybrid_pressure(float *fullPress, float *halfPress, const Varray<double> &vct, const float *ps, long nhlev, +template void vct_to_hybrid_pressure(float *fullPress, float *halfPress, Varray<double> const &vct, const float *ps, long nhlev, long ngp); -template void vct_to_hybrid_pressure(double *fullPress, double *halfPress, const Varray<double> &vct, const double *ps, long nhlev, +template void vct_to_hybrid_pressure(double *fullPress, double *halfPress, Varray<double> const &vct, const double *ps, long nhlev, long ngp); void diff --git a/src/vertical_interp.h b/src/vertical_interp.h index ae544ce2e..3f9e33080 100644 --- a/src/vertical_interp.h +++ b/src/vertical_interp.h @@ -13,7 +13,7 @@ void height_to_pressure(const double *heightLevels, double *pressureLevels, int numLevels); template <typename T> -void vct_to_hybrid_pressure(T *fullPress, T *halfPress, const Varray<double> &vct, const T *ps, long nhlev, long ngp); +void vct_to_hybrid_pressure(T *fullPress, T *halfPress, Varray<double> const &vct, const T *ps, long nhlev, long ngp); void extrapolate_P(double *slp, const double *halfPress, const double *fullPress, const double *geop, const double *temp, long ngp); -- GitLab