add mo_dag based on daglib by Jacob Williams
This MR adds a Directed Acyclic Graph implementation motivated by the routing module of mHM.
All other changes beside mo_dag are related to the new routing routines.
-
add
mo_dag: Directed Acyclic Graph implementation- derived from https://github.com/jacobwilliams/daglib
- added
dependentsarray tonodes - simple graph traverse handler
- level sorting based on Kahn's algorithm
-
order_ttype to store level based ordering
-
mo_datetimeupdates- add
<step>_start,next_new_<step>andprevious_new_<step>where step can be year/month/week/day/hour/minute - add
addandsubfor in-place addition and subtraction oftimedelta - faster date/time comparison (no intermediate type instances)
- add
-
mo_gridupdates- added
dist_latlon,is_lat_coordandis_lon_coordto public routines - added
id_matrix(full matrix of cell ids),cell_id(cell id from indices) andclosest_cell_id(cell id closest to given coordinates) to grid class - better aux-coord finding when creating grid from netcdf
- added
-
mo_grid_ioupdates- add
t_boundstoinput_datasetto store values of the consecutive time bounds - faster time-stamp comparison
- add
time_indexmethod toinput_datasetto find index containing the given time-stamp (start time excluding, end time including in the bounds) - add
grid_init_vartoinput_dataset%initto initialize grid directly from a given variable (shortcut) - add coordinates to output variables when writing (was missing before)
- add
-
mo_grid_scalerupdates- renamed
regriddertoscaler_tto be consistent with naming - added
no_scalingmode when source and target grid have the same resolution (only do flipping and masking if required) - fixed 2d downscale methods (where using wrong grid for indices in data before)
- renamed
-
mo_ioupdates- use plain
read(u,*)inloadtxtto read floats
- use plain
-
mo_utilsupdates- add
optvalas helper function for most data types to set default values from optional values (internal_val = optval(val, default)) - add support for
i8integers in swap - use
i8integers for indices inflipandflippedto support big arrays
- add
-
CI/CMake updates
- added language
Cto CMake project to catch error when NetCDF is linked against HDF5 (e.g. libnetcdf 4.9.3 on conda forge (Pull Request)) and triggers the FindHDF5 script of CMake which tries to compile a test C program - cleaned up compile flags in CMake
- added explicit support for IntelLLVM
- add debug jobs for all intel compilers in CI
- added language
Edited by Sebastian Müller