Skip to content
Snippets Groups Projects
Commit aa27ec95 authored by Evgeny Mortikov's avatar Evgeny Mortikov
Browse files

scm dynamics implementation minor update

parent 5ddc1309
No related branches found
No related tags found
No related merge requests found
......@@ -130,49 +130,61 @@ module obl_scm
end subroutine advance_dynamics_eq_scm
subroutine set_temperature_eq_rhs(Theta_rhs, nz)
! --------------------------------------------------------------------------------
subroutine set_temperature_eq_rhs(Theta_rhs, cz)
!< @brief set RHS for Theta equation
integer, intent(in) :: nz !< number of z-steps
real, intent(out) :: Theta_rhs(nz) !< RHS
integer :: k !< counter
! --------------------------------------------------------------------------------
integer, intent(in) :: cz !< grid size
real, intent(out) :: Theta_rhs(cz) !< RHS
integer :: k
! --------------------------------------------------------------------------------
do k = 1, nz
do k = 1, cz
Theta_rhs(k) = 0
end do
end subroutine
subroutine set_salinity_eq_rhs(Salin_rhs, nz)
! --------------------------------------------------------------------------------
subroutine set_salinity_eq_rhs(Salin_rhs, cz)
!< @brief set RHS for Salinity equation
integer, intent(in) :: nz !< number of z-steps
real, intent(out) :: Salin_rhs(nz) !< RHS
integer :: k !< counter
! --------------------------------------------------------------------------------
integer, intent(in) :: cz !< grid size
real, intent(out) :: Salin_rhs(cz) !< RHS
integer :: k
! --------------------------------------------------------------------------------
do k = 1, nz
do k = 1, cz
Salin_rhs(k) = 0
end do
end subroutine
subroutine set_dynamics_eq_rhs(U_rhs, V_rhs, U, V, f, nz)
!< @brief set RHS for U equation
integer, intent(in) :: nz !< number of z-steps
real, intent(in) :: U(nz) !< V, [m/s]
real, intent(in) :: V(nz) !< V, [m/s]
real, intent(in) :: f
real, intent(out) :: U_rhs(nz) !< RHS
real, intent(out) :: V_rhs(nz) !< RHS
integer :: k !< counter
! --------------------------------------------------------------------------------
subroutine set_dynamics_eq_rhs(U_rhs, V_rhs, U, V, f, cz)
!< @brief set RHS for U, V equations
! --------------------------------------------------------------------------------
integer, intent(in) :: cz !< grid size
real, intent(out) :: U_rhs(cz), V_rhs(cz) !< RHS
real, intent(in) :: U(cz) !< U, [m/s]
real, intent(in) :: V(cz) !< V, [m/s]
real, intent(in) :: f !< coriolis frequency [1/s]
do k = 1, nz
integer :: k
! --------------------------------------------------------------------------------
do k = 1, cz
U_rhs(k) = - f * (V(k) - Vg)
V_rhs(k) = - f * (U(k) - Vg)
end do
end subroutine
! --------------------------------------------------------------------------------
subroutine solve_scalar_eq (Field, Kvisc, nz, dz, dt, flux_surf, flux_bot, f_right)
!< @brief solver for equation for scalar fields (temperature and salinity)
! --------------------------------------------------------------------------------
integer, intent (in) :: nz !< number of steps in z (depth), [m]
real, intent (in) :: dt !< time step [s]
......@@ -239,6 +251,7 @@ module obl_scm
subroutine solve_vector_eq (Field, Kvisc, nz, dz, dt, flux_surf, flux_bot, f_right)
!< @brief solver for equation for vectors (components of current velocity)
! --------------------------------------------------------------------------------
integer, intent (in) :: nz !< number of steps in z (depth), [m]
real, intent (in) :: dt !< time step [s]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment