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
[ ] 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)
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