orog_mask_tools  1.13.0
module_gsl_oro_data_sm_scale.f90 File Reference

Calculates small-scale GWD orographic stats for FV3GFS grids. More...

Go to the source code of this file.

Functions/Subroutines

subroutine gsl_oro_data_sm_scale::calc_gsl_oro_data_sm_scale (tile_num, res_indx, halo, duplicate_oro_data_file)
 Subroutine to compute orographic statistics needed for small-scale orograhic drag (gravity wave and form drag) schemes. More...
 
real(kind=real_kind) function gsl_oro_data_sm_scale::interp_1d (x, x1, x2, y1, y2)
 Interpolates (or extrapolates) linear function y = y(x) More...
 
integer function gsl_oro_data_sm_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_sm_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_sm_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_sm_scale::nearest_j_south (lat_in)
 Calculates nearest fine-grid j index to the south of a given latitude. More...
 
subroutine gsl_oro_data_sm_scale::netcdf_err (err, string)
 Returns netCDF error given input err code. More...
 

Variables

integer, parameter gsl_oro_data_sm_scale::dbl_kind = selected_real_kind(13)
 double precision More...
 
integer gsl_oro_data_sm_scale::dimx_fine
 x-dimension of fine grid More...
 
integer gsl_oro_data_sm_scale::dimy_fine
 y-dimension of fine grid More...
 
real(kind=real_kind), dimension(:), allocatable gsl_oro_data_sm_scale::lat1d_fine
 latitude of fine grid pts More...
 
real(kind=real_kind), dimension(:), allocatable gsl_oro_data_sm_scale::lon1d_fine
 longitude of fine grid pts More...
 
real(kind=real_kind), parameter gsl_oro_data_sm_scale::p5 = 0.5_real_kind
 one half More...
 
real, parameter gsl_oro_data_sm_scale::pi = 3.1415926535897_real_kind
 pi More...
 
integer, parameter gsl_oro_data_sm_scale::real_kind = selected_real_kind(6)
 single precision More...
 

Detailed Description

Calculates small-scale GWD orographic stats for FV3GFS grids.

Author
Michael Toy, NOAA/GSL
Date
2021-03-12

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 small-scale GWD (Tsiringakis et al., 2017) and the turbulent orographic form drag (TOFD) (Beljaars, 2004) schemes of the GSL drag suite. 30 second (~1km) global topography is used. The topographic data comes from the 'fix' file HGT.Beljaars_filtered.lat-lon.30s_res.nc. The output fields are:

  • stddev standard deviation of subgrid-scale topograpy
  • convexity convexity (kurtosis) of subgrid-scale topography
  • ol{1,2,3,4} orographic effective lengths of subgrid-scale topography for 4 orientations: 1-westerly, 2-southerly, 3-southwesterly, 4-northwesterly
  • oa{1,2,3,4} orographic asymmetries of subgrid-scale topography for 4 orientations: 1-westerly, 2-southerly, 3-southwesterly, 4-northwesterly

Based on code by Michael Duda provided by NCAR/MMM

Definition in file module_gsl_oro_data_sm_scale.f90.

Function/Subroutine Documentation

◆ calc_gsl_oro_data_sm_scale()

subroutine gsl_oro_data_sm_scale::calc_gsl_oro_data_sm_scale ( character(len=2), intent(in)  tile_num,
character(len=7), intent(in)  res_indx,
character(len=4), intent(in)  halo,
logical, intent(out)  duplicate_oro_data_file 
)

Subroutine to compute orographic statistics needed for small-scale orograhic drag (gravity wave and form drag) schemes.

Parameters
[in]tile_num(tile number)
[in]res_indx(resolution)
[in]halo(halo number)
[out]duplicate_oro_data_file(equals .true. if min grid size <= 7.5km)
Author
Michael Toy, NOAA/GSL

Definition at line 51 of file module_gsl_oro_data_sm_scale.f90.

References netcdf_err().

◆ interp_1d()

real (kind=real_kind) function gsl_oro_data_sm_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)

Parameters
[in]xInput "x" value
[in]x1Known point 1
[in]x2Known point 2
[in]y1Known y(x1)
[in]y2Known y(x2)
Returns
interp_1d Interpolated y value at x
Author
Michael Toy, NOAA/GSL

Definition at line 1247 of file module_gsl_oro_data_sm_scale.f90.

◆ nearest_i_east()

integer function gsl_oro_data_sm_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.

Parameters
[in]lon_inlongitude (radians)
Returns
nearest_i_east Nearest grid point i-index east of selected point
Author
Michael Toy, NOAA/GSL

Definition at line 1117 of file module_gsl_oro_data_sm_scale.f90.

◆ nearest_i_west()

integer function gsl_oro_data_sm_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.

Parameters
[in]lon_inlongitude (radians)
Returns
nearest_i_west Nearest grid point i-index west of selected point
Author
Michael Toy, NOAA/GSL

Definition at line 1150 of file module_gsl_oro_data_sm_scale.f90.

◆ nearest_j_north()

integer function gsl_oro_data_sm_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.

Parameters
[in]lat_inLatitude (radians)
Returns
nearest_j_north Nearest fine-grid j index to the north of a given latitude
Author
Michael Toy, NOAA/GSL

Definition at line 1183 of file module_gsl_oro_data_sm_scale.f90.

◆ nearest_j_south()

integer function gsl_oro_data_sm_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.

Parameters
[in]lat_inLatitude (radians)
Returns
nearest_j_south Nearest fine-grid j index to the south of a given latitude
Author
Michael Toy, NOAA/GSL

Definition at line 1212 of file module_gsl_oro_data_sm_scale.f90.

◆ netcdf_err()

subroutine gsl_oro_data_sm_scale::netcdf_err ( integer, intent(in)  err,
character(len=*), intent(in)  string 
)

Returns netCDF error given input err code.

Parameters
[in]errError code from netCDF routine
[in]stringPortion of error message
Author
Michael Toy, NOAA/GSL

Definition at line 1267 of file module_gsl_oro_data_sm_scale.f90.

Variable Documentation

◆ dbl_kind

integer, parameter gsl_oro_data_sm_scale::dbl_kind = selected_real_kind(13)

double precision

Definition at line 28 of file module_gsl_oro_data_sm_scale.f90.

◆ dimx_fine

integer gsl_oro_data_sm_scale::dimx_fine

x-dimension of fine grid

Definition at line 31 of file module_gsl_oro_data_sm_scale.f90.

◆ dimy_fine

integer gsl_oro_data_sm_scale::dimy_fine

y-dimension of fine grid

Definition at line 32 of file module_gsl_oro_data_sm_scale.f90.

◆ lat1d_fine

real (kind = real_kind), dimension(:), allocatable gsl_oro_data_sm_scale::lat1d_fine

latitude of fine grid pts

Definition at line 34 of file module_gsl_oro_data_sm_scale.f90.

◆ lon1d_fine

real (kind = real_kind), dimension(:), allocatable gsl_oro_data_sm_scale::lon1d_fine

longitude of fine grid pts

Definition at line 35 of file module_gsl_oro_data_sm_scale.f90.

◆ p5

real (kind = real_kind), parameter gsl_oro_data_sm_scale::p5 = 0.5_real_kind

one half

Definition at line 37 of file module_gsl_oro_data_sm_scale.f90.

◆ pi

real, parameter gsl_oro_data_sm_scale::pi = 3.1415926535897_real_kind

pi

Definition at line 30 of file module_gsl_oro_data_sm_scale.f90.

◆ real_kind

integer, parameter gsl_oro_data_sm_scale::real_kind = selected_real_kind(6)

single precision

Definition at line 27 of file module_gsl_oro_data_sm_scale.f90.