The next core physics component to add from ICAR is the linear theory mountain wave solution... this is actually non-trivial as it requires FFTs over the full domain. However, these FFTs can be run at initialization to create a look up table and this LUT can be written/read from disk in the future.
Although the LT solution (LUT access) only needs to be computed once every IO forcing time step, with LARGE numbers of cores this could be a limiting step as some sort of more global communication becomes necessary. e.g. the LUT has to be stored on a master process and accessed by all, or (probably better because it can be very large) it has to be distributed among all processes and each process has to access another process's memory once for EVERY gridcell in its domain.
The next core physics component to add from ICAR is the linear theory mountain wave solution... this is actually non-trivial as it requires FFTs over the full domain. However, these FFTs can be run at initialization to create a look up table and this LUT can be written/read from disk in the future.
Although the LT solution (LUT access) only needs to be computed once every IO forcing time step, with LARGE numbers of cores this could be a limiting step as some sort of more global communication becomes necessary. e.g. the LUT has to be stored on a master process and accessed by all, or (probably better because it can be very large) it has to be distributed among all processes and each process has to access another process's memory once for EVERY gridcell in its domain.
Depends on #10