new feature - tracer
Goal: to enable to trace DOC/DON (or other constituents) from land models
Urgency: months to a year
Background: Use advection-dispersion equation dC/dt = -UdC/dx + Dd2C/dx2 + source + in-stream_process where C = concentration [M/L3], U = velocity [L/T], D=dispersion coefficient [L2/T] 1st term in LHS = advection 2nd term in LHS = dispersion
Tasks:
-
[ ] Receive/process DOC/DNC variables from NUOPC coupler (for cesm coupling)
-
[ ] create (copy and paste) constituent input routine
-
[ ] copy current numerical routine used dfw_route.f90 into new module Currently U and D are wave celerity and diffusivity computed for diffusive wave equation. Currently this use fully implicit method (but can be easily changed to Crank–Nicolson (discretization weight ==0.5) or explicit (discretization weights ==0).
-
[ ] Create abstract class (call base_advect_diffusion subroutine) U and D are input argument. discretization weights are optional arguments
-
[ ] implement advection routine
-
[ ] implement diffusion routine
-
[ ] implement advection-diffusion routine
-
[ ] insert and test this routine in dfw_route.f90 Check if the new routine reproduces the current routine.
-
[ ] Create tracer.f90 (similar to dfw_routine.f90)
Relevant issues: #153 ESCOMP/CTSM#1216
Note another desired use of this capability is for water isotope tracers needed for example in Paleo work.