Contact: Peter Phillipps Reviewers:
Produces regularized topography according to Lindberg and Broccoli, J. of Climate vol 9, no 11 pg. 2641-2659 (1996)
Smooths topography in such a way as to reduce Gibbs ripples that result from spectral truncation.
mpp_mod transforms_mod fms_mod global_integral_mod spec_mpp_mod mpp_domains_mod
use topog_regularization_mod [,only: compute_lambda, regularize] regularize - Performs regularization of topography. compute_lambda - Given a fractional smoothing over water, returns lambda, the smoothing constant which is input to subroutine regularize.
call regularize( lambda, ocean_mask, unsmoothed_field, smoothed_field, fraction_smoothed ) input: real :: lambda -- Determines degrees of smoothing (Smoothing increases with increasing lambda) logical, dimension(:,:) :: ocean_mask -- .true. over ocean, false over land real, dimension(:,:) :: unsmoothed_field -- The unsmoothed topography output: real, dimension(:,:) :: smoothed_field -- The smoothed topography real :: fraction_smoothed -- The fractional smoothing over water. --------------------------------------------------------------------- call compute_lambda( ocean_topog_smoothing, ocean_mask, & unsmoothed_field, lambda, actual_fraction_smoothed ) input real, ocean_topog_smoothing -- The desired fractional smoothing over water. logical, dimension(:,:) :: ocean_mask -- .true. over ocean, false over land real, dimension(:,:) :: unsmoothed_field -- The unsmoothed topography output real :: lambda -- Determines degrees of smoothing (Smoothing increases with increasing lambda) real :: actual_fraction_smoothed -- The actual fraction smoothed, which is within some tolerance of ocean_topog_smoothing.
There is no namelist.
Fatal errors : Input argument unsmoothed_field has incorrect dimensions. Iterative scheme for computing lambda may not work unless initial values of lambda_1 and lambda_2 are reduced. Iterative scheme for finding lambda failed. lambda went negative on iteration number ... Should never see this message, if you do there probably is a bug in the code. Cannot converge on a value of lambda. Perhaps more interations are needed. subroutine regularize is not yet coded for 2-d decomposition. It was assumed that it will never be needed. Failure to converge The iterative scheme for smoothing topography (subroutine regularize) did not converge after the maximum number of iterations is reached. Transforms are not initialized The spectral transform package must be initialized before calling any interface of this module. Input argument ocean_mask has incorrect dimensions.
Lindberg and Broccoli, J. of Climate vol 9, no 11 pg. 2641-2659 (1996)
There are no known bugs, but this is only the initial revision.