Integrates a domain instance forward in time using a 1st order implicit backward Euler integration scheme.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(domain_type), | intent(in) | :: | initial | Initial spectrum instance |
||
type(domain_type), | intent(in) | :: | tendency | Spectrum tendency instance |
||
real(kind=rk), | intent(in) | :: | dt | Time step [s] |
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module.
pure elemental type(domain_type) function backward_euler_domain(initial,&
tendency,dt) result(domain)
!! Integrates a domain instance forward in time using a 1st order implicit
!! backward Euler integration scheme.
type(domain_type),intent(in) :: initial !! Initial spectrum instance
type(domain_type),intent(in) :: tendency !! Spectrum tendency instance
real(kind=rk),intent(in) :: dt !! Time step [s]
domain = initial
call domain % setSpectrum(backward_euler(initial % getSpectrum(),&
tendency % getSpectrum(),dt))
endfunction backward_euler_domain