Would normally solve, but for this static implementation of the plume it does nothing.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(static_plume), | intent(inout) | :: | this | |||
class(scalar_field), | intent(in) | :: | ice_thickness | Thickness of the ice above the basal surface |
||
real(kind=r8), | intent(in) | :: | ice_density | The density of the ice above the basal surface, assumed uniform |
||
real(kind=r8), | intent(in) | :: | ice_temperature | The temperature of the ice above the basal surface, assumed uniform |
||
real(kind=r8), | intent(in) | :: | time | The time to which the basal surface should be solved |
||
logical, | intent(out) | :: | success | True if the solver is successful, false otherwise |
subroutine static_plume_solve(this, ice_thickness, ice_density, ice_temperature, &
time, success)
!* Author: Chris MacMackin
! Date: March 2017
!
! Would normally solve, but for this static implementation of the
! plume it does nothing.
!
class(static_plume), intent(inout) :: this
class(scalar_field), intent(in) :: ice_thickness
!! Thickness of the ice above the basal surface
real(r8), intent(in) :: ice_density
!! The density of the ice above the basal surface, assumed uniform
real(r8), intent(in) :: ice_temperature
!! The temperature of the ice above the basal surface, assumed uniform
real(r8), intent(in) :: time
!! The time to which the basal surface should be solved
logical, intent(out) :: success
!! True if the solver is successful, false otherwise
call ice_thickness%guard_temp()
this%time = time
call this%melt_formulation%solve_for_melt(this%velocity, &
-ice_thickness/this%r_val, &
this%temperature, &
this%salinity, &
this%thickness, &
time)
success = .true.
call ice_thickness%clean_temp()
end subroutine static_plume_solve