CAM
|
Data Types | |
type | solver_args |
type | velem_t |
Functions/Subroutines | |
type(solver_args) function | pack_solver_args (np1, nm1, n0, qn0, dt, hvcoord, hybrid, deriv, nets, nete, compute_diagnostics, eta_ave_w) |
real(rl) elemental function | s2eta (s_coord, eta_t, eta_b) |
real(dd) elemental function | eta2s (eta_coord, eta_t, eta_b) |
real(rl) function, dimension(n, n) | mass_matrix (gll, n) |
real(rl) function, dimension(n) | barycentric_weights (gll, n) |
real(rl) function, dimension(n, n) | first_derivative_matrix (gll, n) |
real(rl) function, dimension(np, np) | column_sum (f) |
real(rl) function, dimension(n_unique) | compress (f) |
real(rl) function, dimension(nlev) | decompress (f) |
subroutine | precompute_lu () |
real(rl) function, dimension(npv, nrhs) | solve_lu (B, LU, ipiv, NRHS) |
real(rl) function, dimension(m) | least_squares_integral (B, A) |
real(rl) function, dimension(m) | solve (A, B, M) |
real(rl) function, dimension(np, np, nlev) | eta_integral_from_1 (f, bc_1) |
real(rl) function, dimension(np, np, nlev) | eta_integral_from_n (f, bc_n) |
real(rl) function, dimension(nlev) | eta_derivative_1d (f) |
real(rl) function, dimension(np, np, nlev) | eta_derivative (f) |
real(rl) function, dimension(np, np, nlev) | eta_derivative_pow (f, x) |
real(rl) function, dimension(ni) | evenly_spaced_eta_coords (ni) |
real(rl) function, dimension(np, np, nlev) | advection (f, u, v, eta_dot, a, elem) |
real(rl) function, dimension(np, np, nlev) | advection2 (f, df_deta, u, v, eta_dot, a, elem) |
real(rl) function, dimension(np, np, 2, nlev) | self_advection (u, v, eta_dot, a, elem) |
real(rl) function, dimension(np, np, 2, nlev) | self_advection2 (u, v, du_dn, dv_dn, eta_dot, a, elem) |
subroutine | vertical_dss (f) |
subroutine | vertical_dss_1d (f) |
real(rl) function, dimension(size(s)) | lagrange_polynomial (s, j, gll) |
subroutine | init_vertical_interp (levels, ni) |
real(rl) function, dimension(ni) | v_interpolate (f, ni) |
real(rl) function, dimension(ni, nlev) | vertical_interp_matrix (s, ni) |
subroutine | neumann_bcs_bottom_elem (f, dfdn) |
subroutine | neumann_bcs_top_elem (f, dfdn) |
subroutine | neumann_bcs_bottom (f, dfdn) |
subroutine | neumann_bcs_top (f, dfdn) |
subroutine | neumann_bcs_top_bottom (f, dfdn_t, dfdn_b) |
subroutine | set_hvcoeffs_from_etai (hvcoord, hybrid) |
subroutine | append_scalar_to_file (filename, scalar, erase) |
subroutine | write_scalar_field_1d (filename, field) |
subroutine | write_scalar_field_2d (filename, field) |
subroutine | write_scalar_field_3d (filename, field) |
subroutine | make_vertical_mesh (hybrid, hvcoord) |
subroutine | test_vertical_operators (hybrid) |
Variables | |
integer, parameter, public | npv = 5 |
integer, parameter, public | nev = nlev/npv |
integer, parameter, public | n_unique = nev*(npv-1)+1 |
real(rl), dimension(npv, npv) | ddn |
real(rl), dimension(npv, npv) | ddn2 |
real(rl), dimension(npv, npv) | ddn3 |
real(rl), dimension(npv, npv) | ddn4 |
real(rl), dimension(npv, npv) | ddn_1 |
real(rl), dimension(npv, npv) | ddn_n |
real(rl), dimension(npv, npv) | m |
real(rl), dimension(npv, npv) | lu_1 |
real(rl), dimension(npv, npv) | lu_n |
type(quadrature_t) | gll |
real(rl) | eta_t |
real(rl) | eta_b |
real(rl) | ds_deta |
real(rl) | deta_ds |
real(rl), dimension(nlev) | eta |
real(rl), dimension(nlev) | ddn_hyam |
real(rl), dimension(nlev) | ddn_hybm |
real(rl), dimension(nlevp) | ddn_hyai |
real(rl), dimension(nlevp) | ddn_hybi |
integer, dimension(npv) | ipiv_1 |
integer, dimension(npv) | ipiv_n |
type(velem_t), dimension(:), allocatable | ev |
real(rl) | elem_height |
real(rl), dimension(:,:), allocatable | m_interp |
real(rl), dimension(:), allocatable | l_interp |
real(rl) function, dimension (np,np,nlev) vertical_se::advection | ( | real(rl), dimension(np,np,nlev), intent(in) | f, |
real(rl), dimension(np,np,nlev), intent(in) | u, | ||
real(rl), dimension(np,np,nlev), intent(in) | v, | ||
real(rl), dimension(np,np,nlev), intent(in) | eta_dot, | ||
type(solver_args), intent(in) | a, | ||
type (element_t), intent(in), target | elem | ||
) |
real(rl) function, dimension (np,np,nlev) vertical_se::advection2 | ( | real(rl), dimension(np,np,nlev), intent(in) | f, |
real(rl), dimension(np,np,nlev), intent(in) | df_deta, | ||
real(rl), dimension(np,np,nlev), intent(in) | u, | ||
real(rl), dimension(np,np,nlev), intent(in) | v, | ||
real(rl), dimension(np,np,nlev), intent(in) | eta_dot, | ||
type(solver_args), intent(in) | a, | ||
type (element_t), intent(in), target | elem | ||
) |
subroutine vertical_se::append_scalar_to_file | ( | character*(*), intent(in) | filename, |
real(rl), intent(in) | scalar, | ||
logical, intent(in) | erase | ||
) |
real(rl) function, dimension(n) vertical_se::barycentric_weights | ( | type (quadrature_t), intent(in) | gll, |
integer, intent(in) | n | ||
) |
real (rl) function, dimension(np,np) vertical_se::column_sum | ( | real (rl), dimension(np,np,nlev), intent(in) | f | ) |
real(rl) function, dimension(n_unique) vertical_se::compress | ( | real(rl), dimension(nlev), intent(in) | f | ) |
real(rl) function, dimension(nlev) vertical_se::decompress | ( | real(rl), dimension(n_unique), intent(in) | f | ) |
real(dd) elemental function vertical_se::eta2s | ( | real(rl), intent(in) | eta_coord, |
real(rl), intent(in) | eta_t, | ||
real(rl), intent(in) | eta_b | ||
) |
real (rl) function, dimension(np,np,nlev) vertical_se::eta_derivative | ( | real (rl), dimension(np,np,nlev), intent(in) | f | ) |
real (rl) function, dimension(nlev) vertical_se::eta_derivative_1d | ( | real (rl), dimension(nlev), intent(in) | f | ) |
real (rl) function, dimension(np,np,nlev) vertical_se::eta_derivative_pow | ( | real (rl), dimension(np,np,nlev), intent(in) | f, |
integer, intent(in) | x | ||
) |
real (rl) function, dimension(np,np,nlev) vertical_se::eta_integral_from_1 | ( | real (rl), dimension(np,np,nlev), intent(in) | f, |
real (rl), dimension(np,np), intent(in) | bc_1 | ||
) |
real (rl) function, dimension(np,np,nlev) vertical_se::eta_integral_from_n | ( | real (rl), dimension(np,np,nlev), intent(in) | f, |
real (rl), dimension(np,np), intent(in) | bc_n | ||
) |
real(rl) function, dimension(ni) vertical_se::evenly_spaced_eta_coords | ( | integer | ni | ) |
real(rl) function, dimension(n,n) vertical_se::first_derivative_matrix | ( | type (quadrature_t), intent(in) | gll, |
integer, intent(in) | n | ||
) |
subroutine vertical_se::init_vertical_interp | ( | real(rl), dimension(ni), intent(in) | levels, |
integer, intent(in) | ni | ||
) |
real(rl) function, dimension(size(s)) vertical_se::lagrange_polynomial | ( | real(rl), dimension(:), intent(in) | s, |
integer, intent(in) | j, | ||
type (quadrature_t), intent(in) | gll | ||
) |
real(rl) function, dimension(m) vertical_se::least_squares_integral | ( | real(rl), dimension(npv), intent(in) | B, |
real(rl), dimension(npv,npv), intent(in) | A | ||
) |
subroutine vertical_se::make_vertical_mesh | ( | type (hybrid_t), intent(in) | hybrid, |
type (hvcoord_t), intent(inout) | hvcoord | ||
) |
real(rl) function, dimension(n,n) vertical_se::mass_matrix | ( | type (quadrature_t), intent(in) | gll, |
integer, intent(in) | n | ||
) |
subroutine vertical_se::neumann_bcs_bottom | ( | real(rl), dimension(np,np,nlev), intent(inout) | f, |
real(rl), dimension(np,np), intent(in) | dfdn | ||
) |
subroutine vertical_se::neumann_bcs_bottom_elem | ( | real(rl), dimension(np,np,npv), intent(inout) | f, |
real(rl), dimension(np,np), intent(in) | dfdn | ||
) |
subroutine vertical_se::neumann_bcs_top | ( | real(rl), dimension(np,np,nlev), intent(inout) | f, |
real(rl), dimension(np,np), intent(in) | dfdn | ||
) |
subroutine vertical_se::neumann_bcs_top_bottom | ( | real(rl), dimension(np,np,nlev), intent(inout) | f, |
real(rl), dimension(np,np), intent(in) | dfdn_t, | ||
real(rl), dimension(np,np), intent(in) | dfdn_b | ||
) |
subroutine vertical_se::neumann_bcs_top_elem | ( | real(rl), dimension(np,np,npv), intent(inout) | f, |
real(rl), dimension(np,np), intent(in) | dfdn | ||
) |
type(solver_args) function vertical_se::pack_solver_args | ( | integer, intent(in) | np1, |
integer, intent(in) | nm1, | ||
integer, intent(in) | n0, | ||
integer, intent(in) | qn0, | ||
real*8, intent(in) | dt, | ||
type (hvcoord_t), intent(in) | hvcoord, | ||
type (hybrid_t), intent(in) | hybrid, | ||
type (derivative_t), intent(in) | deriv, | ||
integer, intent(in) | nets, | ||
integer, intent(in) | nete, | ||
logical, intent(in) | compute_diagnostics, | ||
real (rl), intent(in) | eta_ave_w | ||
) |
subroutine vertical_se::precompute_lu | ( | ) |
real(rl) elemental function vertical_se::s2eta | ( | real(dd), intent(in) | s_coord, |
real(rl), intent(in) | eta_t, | ||
real(rl), intent(in) | eta_b | ||
) |
real(rl) function, dimension(np,np,2,nlev) vertical_se::self_advection | ( | real(rl), dimension(np,np,nlev), intent(in) | u, |
real(rl), dimension(np,np,nlev), intent(in) | v, | ||
real(rl), dimension(np,np,nlev), intent(in) | eta_dot, | ||
type(solver_args), intent(in) | a, | ||
type (element_t), intent(in), target | elem | ||
) |
real(rl) function, dimension(np,np,2,nlev) vertical_se::self_advection2 | ( | real(rl), dimension(np,np,nlev), intent(in) | u, |
real(rl), dimension(np,np,nlev), intent(in) | v, | ||
real(rl), dimension(np,np,nlev), intent(in) | du_dn, | ||
real(rl), dimension(np,np,nlev), intent(in) | dv_dn, | ||
real(rl), dimension(np,np,nlev), intent(in) | eta_dot, | ||
type(solver_args), intent(in) | a, | ||
type (element_t), intent(in), target | elem | ||
) |
subroutine vertical_se::set_hvcoeffs_from_etai | ( | type(hvcoord_t), intent(inout) | hvcoord, |
type(hybrid_t), intent(in) | hybrid | ||
) |
real(rl) function, dimension(m) vertical_se::solve | ( | real(rl), dimension(m,m), intent(in) | A, |
real(rl), dimension(m), intent(in) | B, | ||
integer, intent(in) | M | ||
) |
real(rl) function, dimension(npv,nrhs) vertical_se::solve_lu | ( | real(rl), dimension(npv,nrhs), intent(in) | B, |
real(rl), dimension(npv,npv), intent(in) | LU, | ||
integer, dimension(npv), intent(in) | ipiv, | ||
integer, intent(in) | NRHS | ||
) |
subroutine vertical_se::test_vertical_operators | ( | type (hybrid_t), intent(in) | hybrid | ) |
real(rl) function, dimension(ni) vertical_se::v_interpolate | ( | real(rl), dimension(nlev), intent(in) | f, |
integer, intent(in) | ni | ||
) |
subroutine vertical_se::vertical_dss | ( | real(rl), dimension(np,np,nlev), intent(inout) | f | ) |
subroutine vertical_se::vertical_dss_1d | ( | real(rl), dimension(nlev), intent(inout) | f | ) |
real(rl) function, dimension(ni,nlev ) vertical_se::vertical_interp_matrix | ( | real(rl), dimension(:), intent(in) | s, |
integer | ni | ||
) |
subroutine vertical_se::write_scalar_field_1d | ( | character*(*), intent(in) | filename, |
real(rl), dimension(:), intent(in) | field | ||
) |
subroutine vertical_se::write_scalar_field_2d | ( | character*(*), intent(in) | filename, |
real(rl), dimension(:,:), intent(in) | field | ||
) |
subroutine vertical_se::write_scalar_field_3d | ( | character*(*), intent(in) | filename, |
real(rl), dimension(:,:,:), intent(in) | field | ||
) |
real(rl), dimension(nlevp) vertical_se::ddn_hyai |
real(rl), dimension(nlev) vertical_se::ddn_hyam |
real(rl), dimension(nlevp) vertical_se::ddn_hybi |
real(rl), dimension(nlev) vertical_se::ddn_hybm |
real(rl) vertical_se::deta_ds |
real(rl) vertical_se::ds_deta |
real(rl) vertical_se::elem_height |
real(rl), dimension(nlev) vertical_se::eta |
real(rl) vertical_se::eta_b |
real(rl) vertical_se::eta_t |
type(velem_t), dimension(:), allocatable vertical_se::ev |
type (quadrature_t) vertical_se::gll |
integer, dimension(npv) vertical_se::ipiv_1 |
integer, dimension(npv) vertical_se::ipiv_n |
real(rl), dimension(:), allocatable vertical_se::l_interp |
real(rl), dimension(:,:), allocatable vertical_se::m_interp |
integer, parameter, public vertical_se::nev = nlev/npv |
integer, parameter, public vertical_se::npv = 5 |