Commit ac2d7a5e authored by Ethan Coon's avatar Ethan Coon
Browse files

updates comments and adds more detail/work plan to README

parent f38bff08
......@@ -8,7 +8,7 @@ re-wrapped in a variety of drivers.
To build, see INSTALL.md in the top level directory.
ELM modules covered include:
ELM modules covered:
CanopyHydrologyMod
--------------------
......@@ -16,3 +16,59 @@ CanopyHydrologyMod
Kernels include:
* Interception: (rename me) partitions incoming precip into throughfall/precip
Work Plan
=================
Single kernel and single grid cell tests/questions:
-----------------------------------------------------------------------------
- how do write kernels such that they can be called by: (Ethan)
- fortran
- c
- Legion
- Kokkos
- how do we wrap a kernel for Legion (Himanshu)
- sequence of blocked tasks
- sequence of non-blocked tasks (based on futures)
Single kernel and multiple grid cell tests/questions: (Himanshu / Ethan)
-----------------------------------------------------------------------------
- work out how to use IndexSpace/FieldSpace
Multiple kernel and multiple grid cell tests (module test): (Ethan / Himanshu)
------------------------------------------------------------------------------
- IndexSpace/FieldSpace + actual task graph that isn't trivial
Module level part 2: (Dali / Ethan / Himanshu)
-----------------------------------------------------------------------------
- Implement driver with ACTUAL ELM data layout (with filter / lake PFTs / ???) (masking??)
- compare alternative data layouts
- ragged layouts (no filter)
- fixed layout with no filter (maybe better for threading models e.g. GPUs?)
automation...
-----------------------------------------------------------------------------
- automated kernel generation
- automated C kernel wrapper
- automated Legion wrappers?
and beyond...
-----------------------------------------------------------------------------
- integrate with ATS
......@@ -60,8 +60,6 @@ int main(int argc, char ** argv)
const int oldfflag = 0;
const double micro_sigma = 0.1;
const double min_h2osfc = 1.0e-8;
// FIXME: confusing parameters that need to be fixed --etc
const double n_melt = 0.7;
// phenology input
......@@ -159,10 +157,11 @@ int main(int argc, char ** argv)
//printf("%i %i %16.8g %16.8g %16.8g %16.8g %16.8g %16.8g\n", g, p, forc_rain(t,g), forc_snow(t,g), elai(g,p), esai(g,p), h2ocan(g,p), qflx_prec_intr[g]);
//
// Calculate fraction of ?LAI? that is wet vs dry.
// Calculate fraction of LAI that is wet vs dry.
//
// FIXME: this currently punts on what to do with the fwet/fdry variables.
// Surely they should be something, as such this is dead code.
// By the PFT?
// --etc
double fwet = 0., fdry = 0.;
ELM::CanopyHydrology_FracWet(frac_veg_nosno, h2ocan(g,p), elai(g,p), esai(g,p), dewmx, fwet, fdry);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment