FV3 Bundle
fv_surf_map_nlm_mod Module Reference

Functions/Subroutines

subroutine, public surfdrv (npx, npy, grid, agrid, area, dx, dy, dxa, dya, dxc, dyc, sin_sg, phis, stretch_fac, nested, npx_global, domain, grid_number, bd)
 
subroutine, public fv3_zs_filter (bd, isd, ied, jsd, jed, npx, npy, npx_global, stretch_fac, nested, domain, area, dxa, dya, dx, dy, dxc, dyc, grid, agrid, sin_sg, phis, oro)
 
subroutine two_delta_filter (npx, npy, q, area, dx, dy, dxa, dya, dxc, dyc, sin_sg, cd, zero_ocean, check_slope, filter_type, oro, nested, domain, bd, ntmax)
 
subroutine, public del2_cubed_sphere (npx, npy, q, area, dx, dy, dxc, dyc, sin_sg, nmax, cd, zero_ocean, oro, nested, domain, bd)
 
subroutine, public del4_cubed_sphere (npx, npy, q, area, dx, dy, dxc, dyc, sin_sg, nmax, zero_ocean, oro, nested, domain, bd)
 
subroutine map_to_cubed_raw (igh, im, jt, lat1, lon1, zs, ft, grid, agrid, q2, f2, h2, npx, npy, jstart, jend, stretch_fac, nested, npx_global, bd)
 
logical function inside_p4 (p1, p2, p3, p4, pp, th0)
 
subroutine handle_err (status)
 
subroutine remove_ice_sheets (lon, lat, lfrac, bd)
 
subroutine read_namelist
 
subroutine zonal_mean (im, p, zmean)
 

Variables

logical zs_filter = .true.
 
logical zero_ocean = .true.
 
integer nlon = 21600
 
integer nlat = 10800
 
real cd4 = 0.15
 
real cd2 = -1.
 
real peak_fac = 1.05
 
real max_slope = 0.15
 
integer n_del2_weak = 12
 
integer n_del2_strong = -1
 
integer n_del4 = -1
 
character(len=128) surf_file = "INPUT/topo1min.nc"
 
character(len=6) surf_format = 'netcdf'
 
logical namelist_read = .false.
 
real(kind=r_grid) da_min
 
real cos_grid
 
character(len=3) grid_string = ''
 
real, dimension(:,:), allocatable, public zs_g
 
real, dimension(:,:), allocatable, public sgh_g
 
real, dimension(:,:), allocatable, public oro_g
 

Function/Subroutine Documentation

◆ del2_cubed_sphere()

subroutine, public fv_surf_map_nlm_mod::del2_cubed_sphere ( integer, intent(in)  npx,
integer, intent(in)  npy,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng), intent(inout)  q,
real(kind=r_grid), dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  area,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1), intent(in)  dx,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed), intent(in)  dy,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed), intent(in)  dxc,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1), intent(in)  dyc,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,9), intent(in)  sin_sg,
integer, intent(in)  nmax,
real(kind=r_grid), intent(in)  cd,
logical, intent(in)  zero_ocean,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  oro,
logical, intent(in)  nested,
type(domain2d), intent(inout)  domain,
type(fv_grid_bounds_type), intent(in)  bd 
)

Definition at line 816 of file fv_surf_map_nlm.F90.

Here is the caller graph for this function:

◆ del4_cubed_sphere()

subroutine, public fv_surf_map_nlm_mod::del4_cubed_sphere ( integer, intent(in)  npx,
integer, intent(in)  npy,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng), intent(inout)  q,
real(kind=r_grid), dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  area,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1), intent(in)  dx,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed), intent(in)  dy,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed), intent(in)  dxc,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1), intent(in)  dyc,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,9), intent(in)  sin_sg,
integer, intent(in)  nmax,
logical, intent(in)  zero_ocean,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  oro,
logical, intent(in)  nested,
type(domain2d), intent(inout)  domain,
type(fv_grid_bounds_type), intent(in)  bd 
)

Definition at line 918 of file fv_surf_map_nlm.F90.

Here is the caller graph for this function:

◆ fv3_zs_filter()

subroutine, public fv_surf_map_nlm_mod::fv3_zs_filter ( type(fv_grid_bounds_type), intent(in)  bd,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npx_global,
real(kind=r_grid), intent(in)  stretch_fac,
logical, intent(in)  nested,
type(domain2d), intent(inout)  domain,
real(kind=r_grid), dimension(isd:ied,jsd:jed), intent(in)  area,
real, dimension(isd:ied,jsd:jed), intent(in)  dxa,
real, dimension(isd:ied,jsd:jed), intent(in)  dya,
real, dimension(isd:ied, jsd:jed+1), intent(in)  dx,
real, dimension(isd:ied+1,jsd:jed), intent(in)  dy,
real, dimension(isd:ied+1,jsd:jed), intent(in)  dxc,
real, dimension(isd:ied, jsd:jed+1), intent(in)  dyc,
real(kind=r_grid), dimension(isd:ied+1, jsd:jed+1,2), intent(in)  grid,
real(kind=r_grid), dimension(isd:ied, jsd:jed, 2), intent(in)  agrid,
real, dimension(9,isd:ied,jsd:jed), intent(in)  sin_sg,
real, dimension(isd:ied,jsd,jed), intent(inout)  phis,
real, dimension(isd:ied,jsd,jed), intent(inout)  oro 
)

Definition at line 470 of file fv_surf_map_nlm.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ handle_err()

subroutine fv_surf_map_nlm_mod::handle_err ( integer  status)
private

Definition at line 1488 of file fv_surf_map_nlm.F90.

Here is the caller graph for this function:

◆ inside_p4()

logical function fv_surf_map_nlm_mod::inside_p4 ( real, dimension(3), intent(in)  p1,
real, dimension(3), intent(in)  p2,
real, dimension(3), intent(in)  p3,
real, dimension(3), intent(in)  p4,
real, dimension(3), intent(in)  pp,
real, intent(in)  th0 
)
private

Definition at line 1446 of file fv_surf_map_nlm.F90.

Here is the call graph for this function:

◆ map_to_cubed_raw()

subroutine fv_surf_map_nlm_mod::map_to_cubed_raw ( integer, intent(in)  igh,
integer, intent(in)  im,
integer, intent(in)  jt,
real, dimension(jt+1), intent(in)  lat1,
real, dimension(im+1), intent(in)  lon1,
real(kind=4), dimension(-igh:im+igh,jt), intent(in)  zs,
real(kind=4), dimension(-igh:im+igh,jt), intent(in)  ft,
real(kind=r_grid), dimension(bd%isd:bd%ied+1, bd%jsd:bd%jed+1,2), intent(in)  grid,
real(kind=r_grid), dimension(bd%isd:bd%ied, bd%jsd:bd%jed, 2), intent(in)  agrid,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(out)  q2,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(out)  f2,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(out)  h2,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  jstart,
integer, intent(in)  jend,
real(kind=r_grid), intent(in)  stretch_fac,
logical, intent(in)  nested,
integer, intent(in)  npx_global,
type(fv_grid_bounds_type), intent(in)  bd 
)
private

Definition at line 1154 of file fv_surf_map_nlm.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ read_namelist()

subroutine fv_surf_map_nlm_mod::read_namelist ( )
private

Definition at line 1554 of file fv_surf_map_nlm.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_ice_sheets()

subroutine fv_surf_map_nlm_mod::remove_ice_sheets ( real(kind=r_grid), dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(in)  lon,
real(kind=r_grid), dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(in)  lat,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(inout)  lfrac,
type(fv_grid_bounds_type), intent(in)  bd 
)
private

Definition at line 1499 of file fv_surf_map_nlm.F90.

◆ surfdrv()

subroutine, public fv_surf_map_nlm_mod::surfdrv ( integer, intent(in)  npx,
integer, intent(in)  npy,
real(kind=r_grid), dimension(bd%is-ng:bd%ie+ng+1, bd%js-ng:bd%je+ng+1,2), intent(in)  grid,
real(kind=r_grid), dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng,2), intent(in)  agrid,
real(kind=r_grid), dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng), intent(in)  area,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng+1), intent(in)  dx,
real, dimension(bd%is-ng:bd%ie+ng+1, bd%js-ng:bd%je+ng), intent(in)  dy,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng), intent(in)  dxa,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng), intent(in)  dya,
real, dimension(bd%is-ng:bd%ie+ng+1, bd%js-ng:bd%je+ng), intent(in)  dxc,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng+1), intent(in)  dyc,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,9), intent(in)  sin_sg,
real, dimension(bd%is-ng:bd%ie+ng, bd%js-ng:bd%je+ng), intent(out)  phis,
real(kind=r_grid), intent(in)  stretch_fac,
logical, intent(in)  nested,
integer, intent(in)  npx_global,
type(domain2d), intent(inout)  domain,
integer, intent(in)  grid_number,
type(fv_grid_bounds_type), intent(in)  bd 
)

Definition at line 91 of file fv_surf_map_nlm.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ two_delta_filter()

subroutine fv_surf_map_nlm_mod::two_delta_filter ( integer, intent(in)  npx,
integer, intent(in)  npy,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(inout)  q,
real(kind=r_grid), dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  area,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1), intent(in)  dx,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed), intent(in)  dy,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  dxa,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  dya,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed), intent(in)  dxc,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1), intent(in)  dyc,
real, dimension(9,bd%isd:bd%ied,bd%jsd:bd%jed), intent(in)  sin_sg,
real, intent(in)  cd,
logical, intent(in)  zero_ocean,
logical, intent(in)  check_slope,
integer, intent(in)  filter_type,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed), intent(in)  oro,
logical, intent(in)  nested,
type(domain2d), intent(inout)  domain,
type(fv_grid_bounds_type), intent(in)  bd,
integer, intent(in)  ntmax 
)
private

Definition at line 534 of file fv_surf_map_nlm.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zonal_mean()

subroutine fv_surf_map_nlm_mod::zonal_mean ( integer, intent(in)  im,
real(kind=4), dimension(im), intent(inout)  p,
real, intent(out)  zmean 
)
private

Definition at line 1587 of file fv_surf_map_nlm.F90.

Variable Documentation

◆ cd2

real fv_surf_map_nlm_mod::cd2 = -1.
private

Definition at line 61 of file fv_surf_map_nlm.F90.

◆ cd4

real fv_surf_map_nlm_mod::cd4 = 0.15
private

Definition at line 60 of file fv_surf_map_nlm.F90.

◆ cos_grid

real fv_surf_map_nlm_mod::cos_grid
private

Definition at line 75 of file fv_surf_map_nlm.F90.

◆ da_min

real(kind=r_grid) fv_surf_map_nlm_mod::da_min
private

Definition at line 74 of file fv_surf_map_nlm.F90.

◆ grid_string

character(len=3) fv_surf_map_nlm_mod::grid_string = ''
private

Definition at line 76 of file fv_surf_map_nlm.F90.

◆ max_slope

real fv_surf_map_nlm_mod::max_slope = 0.15
private

Definition at line 63 of file fv_surf_map_nlm.F90.

◆ n_del2_strong

integer fv_surf_map_nlm_mod::n_del2_strong = -1
private

Definition at line 66 of file fv_surf_map_nlm.F90.

◆ n_del2_weak

integer fv_surf_map_nlm_mod::n_del2_weak = 12
private

Definition at line 65 of file fv_surf_map_nlm.F90.

◆ n_del4

integer fv_surf_map_nlm_mod::n_del4 = -1
private

Definition at line 67 of file fv_surf_map_nlm.F90.

◆ namelist_read

logical fv_surf_map_nlm_mod::namelist_read = .false.
private

Definition at line 72 of file fv_surf_map_nlm.F90.

◆ nlat

integer fv_surf_map_nlm_mod::nlat = 10800
private

Definition at line 59 of file fv_surf_map_nlm.F90.

◆ nlon

integer fv_surf_map_nlm_mod::nlon = 21600
private

Definition at line 58 of file fv_surf_map_nlm.F90.

◆ oro_g

real, dimension(:,:), allocatable, public fv_surf_map_nlm_mod::oro_g

Definition at line 81 of file fv_surf_map_nlm.F90.

◆ peak_fac

real fv_surf_map_nlm_mod::peak_fac = 1.05
private

Definition at line 62 of file fv_surf_map_nlm.F90.

◆ sgh_g

real, dimension(:,:), allocatable, public fv_surf_map_nlm_mod::sgh_g

Definition at line 81 of file fv_surf_map_nlm.F90.

◆ surf_file

character(len=128) fv_surf_map_nlm_mod::surf_file = "INPUT/topo1min.nc"
private

Definition at line 70 of file fv_surf_map_nlm.F90.

◆ surf_format

character(len=6) fv_surf_map_nlm_mod::surf_format = 'netcdf'
private

Definition at line 71 of file fv_surf_map_nlm.F90.

◆ zero_ocean

logical fv_surf_map_nlm_mod::zero_ocean = .true.
private

Definition at line 57 of file fv_surf_map_nlm.F90.

◆ zs_filter

logical fv_surf_map_nlm_mod::zs_filter = .true.
private

Definition at line 56 of file fv_surf_map_nlm.F90.

◆ zs_g

real, dimension(:,:), allocatable, public fv_surf_map_nlm_mod::zs_g

Definition at line 81 of file fv_surf_map_nlm.F90.