CAM
vertical_se.F90 File Reference

Data Types

type  vertical_se::velem_t
 
type  vertical_se::solver_args
 

Modules

module  vertical_se
 

Functions/Subroutines

type(solver_args) function vertical_se::pack_solver_args (np1, nm1, n0, qn0, dt, hvcoord, hybrid, deriv, nets, nete, compute_diagnostics, eta_ave_w)
 
real(rl) elemental function vertical_se::s2eta (s_coord, eta_t, eta_b)
 
real(dd) elemental function vertical_se::eta2s (eta_coord, eta_t, eta_b)
 
real(rl) function, dimension(n, n) vertical_se::mass_matrix (gll, n)
 
real(rl) function, dimension(n) vertical_se::barycentric_weights (gll, n)
 
real(rl) function, dimension(n, n) vertical_se::first_derivative_matrix (gll, n)
 
real(rl) function, dimension(np, np) vertical_se::column_sum (f)
 
real(rl) function, dimension(n_unique) vertical_se::compress (f)
 
real(rl) function, dimension(nlev) vertical_se::decompress (f)
 
subroutine vertical_se::precompute_lu ()
 
real(rl) function, dimension(npv, nrhs) vertical_se::solve_lu (B, LU, ipiv, NRHS)
 
real(rl) function, dimension(mvertical_se::least_squares_integral (B, A)
 
real(rl) function, dimension(mvertical_se::solve (A, B, M)
 
real(rl) function, dimension(np, np, nlev) vertical_se::eta_integral_from_1 (f, bc_1)
 
real(rl) function, dimension(np, np, nlev) vertical_se::eta_integral_from_n (f, bc_n)
 
real(rl) function, dimension(nlev) vertical_se::eta_derivative_1d (f)
 
real(rl) function, dimension(np, np, nlev) vertical_se::eta_derivative (f)
 
real(rl) function, dimension(np, np, nlev) vertical_se::eta_derivative_pow (f, x)
 
real(rl) function, dimension(ni) vertical_se::evenly_spaced_eta_coords (ni)
 
real(rl) function, dimension(np, np, nlev) vertical_se::advection (f, u, v, eta_dot, a, elem)
 
real(rl) function, dimension(np, np, nlev) vertical_se::advection2 (f, df_deta, u, v, eta_dot, a, elem)
 
real(rl) function, dimension(np, np, 2, nlev) vertical_se::self_advection (u, v, eta_dot, a, elem)
 
real(rl) function, dimension(np, np, 2, nlev) vertical_se::self_advection2 (u, v, du_dn, dv_dn, eta_dot, a, elem)
 
subroutine vertical_se::vertical_dss (f)
 
subroutine vertical_se::vertical_dss_1d (f)
 
real(rl) function, dimension(size(s)) vertical_se::lagrange_polynomial (s, j, gll)
 
subroutine vertical_se::init_vertical_interp (levels, ni)
 
real(rl) function, dimension(ni) vertical_se::v_interpolate (f, ni)
 
real(rl) function, dimension(ni, nlev) vertical_se::vertical_interp_matrix (s, ni)
 
subroutine vertical_se::neumann_bcs_bottom_elem (f, dfdn)
 
subroutine vertical_se::neumann_bcs_top_elem (f, dfdn)
 
subroutine vertical_se::neumann_bcs_bottom (f, dfdn)
 
subroutine vertical_se::neumann_bcs_top (f, dfdn)
 
subroutine vertical_se::neumann_bcs_top_bottom (f, dfdn_t, dfdn_b)
 
subroutine vertical_se::set_hvcoeffs_from_etai (hvcoord, hybrid)
 
subroutine vertical_se::append_scalar_to_file (filename, scalar, erase)
 
subroutine vertical_se::write_scalar_field_1d (filename, field)
 
subroutine vertical_se::write_scalar_field_2d (filename, field)
 
subroutine vertical_se::write_scalar_field_3d (filename, field)
 
subroutine vertical_se::make_vertical_mesh (hybrid, hvcoord)
 
subroutine vertical_se::test_vertical_operators (hybrid)
 

Variables

integer, parameter, public vertical_se::npv = 5
 
integer, parameter, public vertical_se::nev = nlev/npv
 
integer, parameter, public vertical_se::n_unique = nev*(npv-1)+1
 
real(rl), dimension(npv, npv) vertical_se::ddn
 
real(rl), dimension(npv, npv) vertical_se::ddn2
 
real(rl), dimension(npv, npv) vertical_se::ddn3
 
real(rl), dimension(npv, npv) vertical_se::ddn4
 
real(rl), dimension(npv, npv) vertical_se::ddn_1
 
real(rl), dimension(npv, npv) vertical_se::ddn_n
 
real(rl), dimension(npv, npv) vertical_se::m
 
real(rl), dimension(npv, npv) vertical_se::lu_1
 
real(rl), dimension(npv, npv) vertical_se::lu_n
 
type(quadrature_t) vertical_se::gll
 
real(rl) vertical_se::eta_t
 
real(rl) vertical_se::eta_b
 
real(rl) vertical_se::ds_deta
 
real(rl) vertical_se::deta_ds
 
real(rl), dimension(nlev) vertical_se::eta
 
real(rl), dimension(nlev) vertical_se::ddn_hyam
 
real(rl), dimension(nlev) vertical_se::ddn_hybm
 
real(rl), dimension(nlevp) vertical_se::ddn_hyai
 
real(rl), dimension(nlevp) vertical_se::ddn_hybi
 
integer, dimension(npv) vertical_se::ipiv_1
 
integer, dimension(npv) vertical_se::ipiv_n
 
type(velem_t), dimension(:), allocatable vertical_se::ev
 
real(rl) vertical_se::elem_height
 
real(rl), dimension(:,:), allocatable vertical_se::m_interp
 
real(rl), dimension(:), allocatable vertical_se::l_interp