orog_mask_tools
1.13.0
|
Calculates large-scale GWD orographic stats for FV3GFS grids. More...
Go to the source code of this file.
Functions/Subroutines | |
subroutine | gsl_oro_data_lg_scale::calc_gsl_oro_data_lg_scale (tile_num, res_indx, halo) |
Subroutine to compute orographic statistics needed for large-scale orograhic drag (gravity wave and blocking) schemes. More... | |
subroutine | gsl_oro_data_lg_scale::calc_mean_hgt (s_ii, e_ii, s_jj, e_jj, HGT) |
Calculates average terrain height within coarse grid cell ("block") More... | |
subroutine | gsl_oro_data_lg_scale::hgt_interpolate (lat, lon_in, lat_blk, lon_blk, HGT_coarse, HGT_coarse_on_fine) |
Interpolates height from coarse grid on to fine grid points. More... | |
real(kind=real_kind) function | gsl_oro_data_lg_scale::interp_1d (x, x1, x2, y1, y2) |
Interpolates (or extrapolates) linear function y = y(x) More... | |
integer function | gsl_oro_data_lg_scale::nearest_i_east (lon_in) |
Finds nearest fine-grid i index to the east of a given longitude. More... | |
integer function | gsl_oro_data_lg_scale::nearest_i_west (lon_in) |
Finds nearest fine-grid i index to the west of a given longitude. More... | |
integer function | gsl_oro_data_lg_scale::nearest_j_north (lat_in) |
Calculates nearest fine-grid j index to the north of a given latitude. More... | |
integer function | gsl_oro_data_lg_scale::nearest_j_south (lat_in) |
Calculates nearest fine-grid j index to the south of a given latitude. More... | |
subroutine | gsl_oro_data_lg_scale::netcdf_err (err, string) |
Returns netCDF error given input err code. More... | |
Variables | |
integer, parameter | gsl_oro_data_lg_scale::dbl_kind = selected_real_kind(13) |
double precision More... | |
integer | gsl_oro_data_lg_scale::dimx_fine |
x-dimension of fine grid More... | |
integer | gsl_oro_data_lg_scale::dimy_fine |
y-dimension of fine grid More... | |
real(kind=real_kind), dimension(:,:), allocatable | gsl_oro_data_lg_scale::hgt_m_fine |
Height of fine grid pts (m) More... | |
real(kind=real_kind), parameter | gsl_oro_data_lg_scale::hgt_missing = 1.E+10 |
Flag for missing data. More... | |
real(kind=real_kind), dimension(:), allocatable | gsl_oro_data_lg_scale::lat1d_fine |
latitude of fine grid pts More... | |
real(kind=real_kind), dimension(:), allocatable | gsl_oro_data_lg_scale::lon1d_fine |
longitude of fine grid pts More... | |
real(kind=real_kind), parameter | gsl_oro_data_lg_scale::p5 = 0.5_real_kind |
one half More... | |
real, parameter | gsl_oro_data_lg_scale::pi = 3.1415926535897_real_kind |
pi More... | |
integer, parameter | gsl_oro_data_lg_scale::real_kind = selected_real_kind(6) |
single precision More... | |
Calculates large-scale GWD orographic stats for FV3GFS grids.
This module calculates the parameters required for the subgrid- scale orographic gravity-wave drag (GWDO) scheme on the FV3 grid. These parameters are for the large-scale GWDO and blocking schemes of the GSL drag suite. 2.5minute (~5km) global topography is used. The topographic data comes from the 'fix' file geo_em.d01.lat-lon.2.5m.HGT_M.nc. The output fields are:
Based on code by Michael Duda provided by NCAR/MMM
Definition in file module_gsl_oro_data_lg_scale.f90.
subroutine gsl_oro_data_lg_scale::calc_gsl_oro_data_lg_scale | ( | character(len=2), intent(in) | tile_num, |
character(len=7), intent(in) | res_indx, | ||
character(len=4), intent(in) | halo | ||
) |
Subroutine to compute orographic statistics needed for large-scale orograhic drag (gravity wave and blocking) schemes.
[in] | tile_num | (tile number) |
[in] | res_indx | (resolution) |
[in] | halo | (halo number) |
Definition at line 51 of file module_gsl_oro_data_lg_scale.f90.
subroutine gsl_oro_data_lg_scale::calc_mean_hgt | ( | integer | s_ii, |
integer | e_ii, | ||
integer | s_jj, | ||
integer | e_jj, | ||
real (kind=real_kind), intent(out) | HGT | ||
) |
Calculates average terrain height within coarse grid cell ("block")
[in] | s_ii | Fine grid starting i-index |
[in] | e_ii | Fine grid ending i-index |
[in] | s_jj | Fine grid starting j-index |
[in] | e_jj | Fine grid ending j-index |
[out] | hgt | Fine grid height (m) |
Definition at line 999 of file module_gsl_oro_data_lg_scale.f90.
subroutine gsl_oro_data_lg_scale::hgt_interpolate | ( | real (kind = real_kind), intent(in) | lat, |
real (kind = real_kind), intent(in) | lon_in, | ||
real (kind = real_kind), dimension(3), intent(in) | lat_blk, | ||
real (kind = real_kind), dimension(3), intent(in) | lon_blk, | ||
real (kind = real_kind), dimension(3,3), intent(in) | HGT_coarse, | ||
real (kind = real_kind), intent(out) | HGT_coarse_on_fine | ||
) |
Interpolates height from coarse grid on to fine grid points.
[in] | lat | Latitude of fine grid point. |
[in] | lon_in | Longitude of fine grid point. |
[in] | lat_blk | Latitudes of neighboring coarse grid points. |
[in] | lon_blk | Longitudes of neighboring coarse grid points. |
[in] | hgt_coarse | Topographic heights on coarse grid |
[out] | hgt_coarse_on_fine | Coarse grid heights interpolated on to fine grid |
Definition at line 1061 of file module_gsl_oro_data_lg_scale.f90.
real (kind=real_kind) function gsl_oro_data_lg_scale::interp_1d | ( | real (kind=real_kind), intent(in) | x, |
real (kind=real_kind), intent(in) | x1, | ||
real (kind=real_kind), intent(in) | x2, | ||
real (kind=real_kind), intent(in) | y1, | ||
real (kind=real_kind), intent(in) | y2 | ||
) |
Interpolates (or extrapolates) linear function y = y(x)
[in] | x | Input "x" value |
[in] | x1 | Known point 1 |
[in] | x2 | Known point 2 |
[in] | y1 | Known y(x1) |
[in] | y2 | Known y(x2) |
Definition at line 1321 of file module_gsl_oro_data_lg_scale.f90.
integer function gsl_oro_data_lg_scale::nearest_i_east | ( | real (kind=real_kind), intent(in) | lon_in | ) |
Finds nearest fine-grid i index to the east of a given longitude.
[in] | lon_in | longitude (radians) |
Definition at line 1191 of file module_gsl_oro_data_lg_scale.f90.
integer function gsl_oro_data_lg_scale::nearest_i_west | ( | real (kind=real_kind), intent(in) | lon_in | ) |
Finds nearest fine-grid i index to the west of a given longitude.
[in] | lon_in | longitude (radians) |
Definition at line 1224 of file module_gsl_oro_data_lg_scale.f90.
integer function gsl_oro_data_lg_scale::nearest_j_north | ( | real (kind=real_kind), intent(in) | lat_in | ) |
Calculates nearest fine-grid j index to the north of a given latitude.
[in] | lat_in | Latitude (radians) |
Definition at line 1257 of file module_gsl_oro_data_lg_scale.f90.
integer function gsl_oro_data_lg_scale::nearest_j_south | ( | real (kind=real_kind), intent(in) | lat_in | ) |
Calculates nearest fine-grid j index to the south of a given latitude.
[in] | lat_in | Latitude (radians) |
Definition at line 1286 of file module_gsl_oro_data_lg_scale.f90.
subroutine gsl_oro_data_lg_scale::netcdf_err | ( | integer, intent(in) | err, |
character(len=*), intent(in) | string | ||
) |
Returns netCDF error given input err code.
[in] | err | Error code from netCDF routine |
[in] | string | Portion of error message |
Definition at line 1341 of file module_gsl_oro_data_lg_scale.f90.
integer, parameter gsl_oro_data_lg_scale::dbl_kind = selected_real_kind(13) |
double precision
Definition at line 27 of file module_gsl_oro_data_lg_scale.f90.
integer gsl_oro_data_lg_scale::dimx_fine |
x-dimension of fine grid
Definition at line 30 of file module_gsl_oro_data_lg_scale.f90.
integer gsl_oro_data_lg_scale::dimy_fine |
y-dimension of fine grid
Definition at line 31 of file module_gsl_oro_data_lg_scale.f90.
real (kind = real_kind), dimension(:,:), allocatable gsl_oro_data_lg_scale::hgt_m_fine |
Height of fine grid pts (m)
Definition at line 38 of file module_gsl_oro_data_lg_scale.f90.
real (kind = real_kind), parameter gsl_oro_data_lg_scale::hgt_missing = 1.E+10 |
Flag for missing data.
Definition at line 39 of file module_gsl_oro_data_lg_scale.f90.
real (kind = real_kind), dimension(:), allocatable gsl_oro_data_lg_scale::lat1d_fine |
latitude of fine grid pts
Definition at line 33 of file module_gsl_oro_data_lg_scale.f90.
real (kind = real_kind), dimension(:), allocatable gsl_oro_data_lg_scale::lon1d_fine |
longitude of fine grid pts
Definition at line 34 of file module_gsl_oro_data_lg_scale.f90.
real (kind = real_kind), parameter gsl_oro_data_lg_scale::p5 = 0.5_real_kind |
one half
Definition at line 36 of file module_gsl_oro_data_lg_scale.f90.
real, parameter gsl_oro_data_lg_scale::pi = 3.1415926535897_real_kind |
pi
Definition at line 29 of file module_gsl_oro_data_lg_scale.f90.
integer, parameter gsl_oro_data_lg_scale::real_kind = selected_real_kind(6) |
single precision
Definition at line 26 of file module_gsl_oro_data_lg_scale.f90.