FV3DYCORE  Version1.0.0
fv_nudge.F90 File Reference
#include <file_version.h>
#include <netcdf.inc>

Go to the source code of this file.

Modules

module  fv_nwp_nudge_mod
 The module fv_nwp_nudge contains routines for nudging to input analyses. note This module is currently not supported in fvGFS of FV3GFS.
 

Macros

#define _GET_VAR1   get_var1_double
 

Functions/Subroutines

subroutine, public fv_nwp_nudge_mod::fv_nwp_nudge (Time, dt, npx, npy, npz, ps_dt, u_dt, v_dt, t_dt, q_dt, zvir, ptop, ak, bk, ts, ps, delp, ua, va, pt, nwat, q, phis, gridstruct, bd, domain)
 Ths subroutine 'fv_nwp_nudge' computes and returns time tendencies for nudging to analysis. More...
 
subroutine fv_nwp_nudge_mod::ps_nudging (dt, factor, npz, ak, bk, ps_obs, mask, tm, ps, phis, delp, ua, va, pt, nwat, q, bd, npx, npy, gridstruct, domain)
 
subroutine fv_nwp_nudge_mod::ps_bias_correction (ps_dt, is, ie, js, je, isd, ied, jsd, jed, area)
 
real function fv_nwp_nudge_mod::g0_sum (p, ifirst, ilast, jfirst, jlast, mode, reproduce, isd, ied, jsd, jed, area)
 Fast version of global sum that is reproduced if the result is rounded to 4-byte. More...
 
subroutine fv_nwp_nudge_mod::compute_slp (isc, iec, jsc, jec, tm, ps, gz, slp)
 
subroutine fv_nwp_nudge_mod::get_obs (Time, dt, zvir, ak, bk, ps, ts, ps_obs, delp, pt, nwat, q, u_obs, v_obs, t_obs, q_obs, phis, ua, va, u_dt, v_dt, npx, npy, npz, factor, mask, ptop, bd, gridstruct, domain)
 
subroutine, public fv_nwp_nudge_mod::fv_nwp_nudge_init (time, axes, npz, zvir, ak, bk, ts, phis, gridstruct, ks, npx, neststruct, bd)
 The subroutine 'fv_nwp_nudge_init' initializes the nudging module. More...
 
subroutine fv_nwp_nudge_mod::get_ncep_analysis (ps, u, v, t, q, zvir, ts, nfile, fname, bd)
 
subroutine fv_nwp_nudge_mod::remap_coef (agrid)
 
subroutine fv_nwp_nudge_mod::ncep2fms (sst)
 
subroutine fv_nwp_nudge_mod::get_int_hght (npz, ak, bk, ps, delp, ps0, tv)
 
subroutine fv_nwp_nudge_mod::remap_tq (npz, ak, bk, ps, delp, t, q, kmd, ps0, ta, qa, zvir, ptop)
 
subroutine fv_nwp_nudge_mod::remap_uv (npz, ak, bk, ps, delp, u, v, kmd, ps0, u0, v0, ptop)
 
subroutine, public fv_nwp_nudge_mod::fv_nwp_nudge_end
 The subroutine 'fv_nwp_nudge_end' terminates the nudging module. More...
 
subroutine fv_nwp_nudge_mod::get_tc_mask (time, mask, agrid)
 
subroutine, public fv_nwp_nudge_mod::breed_slp_inline (nstep, dt, npz, ak, bk, phis, pe, pk, peln, pkz, delp, u, v, pt, q, nwat, zvir, gridstruct, ks, domain_local, bd, hydrostatic)
 The subroutine 'breed_slp_inline' performs vortex breeding by nudging sea level pressure toward single point observations. More...
 
subroutine fv_nwp_nudge_mod::breed_srf_w10 (time, dt, npz, ak, bk, ps, phis, slp, delp, u, v, gridstruct)
 The subroutine 'breed_srf_w10' performs vortex breeding by nudging 10-m winds. More...
 
subroutine fv_nwp_nudge_mod::breed_srf_winds (time, dt, npz, u_obs, v_obs, ak, bk, ps, phis, delp, ua, va, u_dt, v_dt, pt, q, nwat, zvir, gridstruct)
 The subroutine 'breed_srf_winds' performs vortex breeding by nudging 1-m winds. More...
 
subroutine fv_nwp_nudge_mod::tangent_wind (elon, elat, speed, po, pp, ut, vt)
 
subroutine fv_nwp_nudge_mod::get_slp_obs (time, nobs, lon_obs, lat_obs, w10, mslp, slp_out, r_out, time_obs, x_o, y_o, w10_o, slp_o, r_vor, p_vor, stime, fact)
 
subroutine fv_nwp_nudge_mod::slp_obs_init
 
real function fv_nwp_nudge_mod::calday (year, month, day, hour, minute, sec)
 The function 'calday' performs time interpolation: More...
 
logical function fv_nwp_nudge_mod::leap_year (ny)
 
subroutine fv_nwp_nudge_mod::pmaxmin (qname, a, imax, jmax, fac)
 
subroutine fv_nwp_nudge_mod::del2_uv (du, dv, cd, kmd, ntimes, bd, npx, npy, gridstruct, domain)
 The subroutine 'del2_uv' filters the wind tendency. More...
 
subroutine fv_nwp_nudge_mod::del2_scalar (qdt, cd, kmd, nmax, bd, npx, npy, gridstruct, domain)
 The subroutine 'del2_scalar' filters the physics tendency. More...
 
subroutine fv_nwp_nudge_mod::rmse_bias (a, rms, bias, area)
 
subroutine fv_nwp_nudge_mod::corr (a, b, co, area)
 
subroutine fv_nwp_nudge_mod::std (a, mean, stdv, area)
 

Variables

real(kind=r_grid), parameter fv_nwp_nudge_mod::radius = cnst_radius
 
logical, public fv_nwp_nudge_mod::do_adiabatic_init
 
integer fv_nwp_nudge_mod::im
 Data x-dimension. More...
 
integer fv_nwp_nudge_mod::jm
 Data y-dimension. More...
 
integer fv_nwp_nudge_mod::km
 Data z-dimension. More...
 
real, dimension(:), allocatable fv_nwp_nudge_mod::ak0
 
real, dimension(:), allocatable fv_nwp_nudge_mod::bk0
 
real, dimension(:), allocatable fv_nwp_nudge_mod::lat
 
real, dimension(:), allocatable fv_nwp_nudge_mod::lon
 
logical fv_nwp_nudge_mod::module_is_initialized = .false.
 
logical fv_nwp_nudge_mod::master
 
logical fv_nwp_nudge_mod::no_obs
 
real fv_nwp_nudge_mod::deg2rad
 
real fv_nwp_nudge_mod::rad2deg
 
real fv_nwp_nudge_mod::time_nudge = 0.
 
integer fv_nwp_nudge_mod::time_interval = 6*3600
 dataset time interval (seconds) More...
 
integer, parameter fv_nwp_nudge_mod::nfile_max = 29280
 maximum: 20-year analysis data, 4*366*20=29280 More...
 
integer fv_nwp_nudge_mod::nfile
 
integer fv_nwp_nudge_mod::k_breed = 0
 
integer fv_nwp_nudge_mod::k_trop = 0
 
real fv_nwp_nudge_mod::p_trop = 950.E2
 
real fv_nwp_nudge_mod::dps_min = 50.
 maximum PS increment (pa; each step) due to inline breeding More...
 
real fv_nwp_nudge_mod::del2_cd = 0.16
 
real, dimension(:,:,:), allocatable fv_nwp_nudge_mod::s2c
 
integer, dimension(:,:), allocatable fv_nwp_nudge_mod::id1
 
integer, dimension(:,:), allocatable fv_nwp_nudge_mod::id2
 
integer, dimension(:,:), allocatable fv_nwp_nudge_mod::jdc
 
real, dimension(:,:,:), allocatable fv_nwp_nudge_mod::ps_dat
 
real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_mod::u_dat
 
real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_mod::v_dat
 
real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_mod::t_dat
 
real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_mod::q_dat
 
real(kind=4), dimension(:,:,:), allocatable fv_nwp_nudge_mod::gz3
 work array More...
 
real, dimension(:,:), allocatable fv_nwp_nudge_mod::gz0
 
character(len=128) fv_nwp_nudge_mod::input_fname_list =""
 a file lists the input NCEP analysis data More...
 
character(len=128) fv_nwp_nudge_mod::analysis_file_first =""
 the first NCEP analysis file to be used for nudging, by default, the first file in the "input_fname_list" More...
 
character(len=128) fv_nwp_nudge_mod::analysis_file_last =""
 the last NCEP analysis file to be used for nudging by default, the last file in the "input_fname_list" More...
 
real fv_nwp_nudge_mod::p_relax = 30.E2
 from P_relax upwards, nudging is reduced linearly proportional to pfull/P_relax More...
 
real fv_nwp_nudge_mod::p_norelax = 0.0
 from P_norelax upwards, no nudging More...
 
character(len=128), dimension(nfile_max) fv_nwp_nudge_mod::file_names
 
character(len=128) fv_nwp_nudge_mod::track_file_name
 
integer fv_nwp_nudge_mod::nfile_total = 0
 =5 for 1-day (if datasets are 6-hr apart) More...
 
real fv_nwp_nudge_mod::p_wvp = 100.E2
 cutoff level for specific humidity nudging More...
 
integer fv_nwp_nudge_mod::kord_data = 8
 
real fv_nwp_nudge_mod::mask_fac = 0.25
 [0,1] 0: no mask; 1: full strength More...
 
logical, public fv_nwp_nudge_mod::t_is_tv = .false.
 
logical fv_nwp_nudge_mod::use_pt_inc = .false.
 
logical fv_nwp_nudge_mod::use_high_top = .false.
 
logical fv_nwp_nudge_mod::add_bg_wind = .true.
 
logical fv_nwp_nudge_mod::conserve_mom = .true.
 
logical fv_nwp_nudge_mod::conserve_hgt = .true.
 
logical fv_nwp_nudge_mod::tc_mask = .false.
 
logical fv_nwp_nudge_mod::strong_mask = .false.
 
logical fv_nwp_nudge_mod::ibtrack = .true.
 
logical fv_nwp_nudge_mod::nudge_debug = .false.
 
logical fv_nwp_nudge_mod::do_ps_bias = .false.
 
logical fv_nwp_nudge_mod::nudge_ps = .false.
 
logical fv_nwp_nudge_mod::nudge_q = .false.
 
logical fv_nwp_nudge_mod::nudge_winds = .true.
 
logical fv_nwp_nudge_mod::nudge_virt = .true.
 
logical fv_nwp_nudge_mod::nudge_hght = .true.
 
logical fv_nwp_nudge_mod::time_varying = .true.
 
logical fv_nwp_nudge_mod::print_end_breed = .true.
 
logical fv_nwp_nudge_mod::print_end_nudge = .true.
 
real fv_nwp_nudge_mod::tau_ps = 21600.
 1-day More...
 
real fv_nwp_nudge_mod::tau_q = 86400.
 1-day More...
 
real fv_nwp_nudge_mod::tau_winds = 21600.
 6-hr More...
 
real fv_nwp_nudge_mod::tau_virt = 43200.
 
real fv_nwp_nudge_mod::tau_hght = 43200.
 
real fv_nwp_nudge_mod::q_min = 1.E-8
 
integer fv_nwp_nudge_mod::jbeg
 
integer fv_nwp_nudge_mod::jend
 
integer fv_nwp_nudge_mod::nf_uv = 0
 
integer fv_nwp_nudge_mod::nf_ps = 0
 
integer fv_nwp_nudge_mod::nf_t = 2
 
integer fv_nwp_nudge_mod::nf_ht = 1
 
integer fv_nwp_nudge_mod::kstart = 2
 
integer fv_nwp_nudge_mod::kbot_winds = 0
 
integer fv_nwp_nudge_mod::kbot_t = 0
 
integer fv_nwp_nudge_mod::kbot_q = 0
 
logical fv_nwp_nudge_mod::analysis_time
 
logical fv_nwp_nudge_mod::breed_srf_w = .false.
 
real fv_nwp_nudge_mod::grid_size = 28.E3
 
real fv_nwp_nudge_mod::tau_vt_slp = 1200.
 
real fv_nwp_nudge_mod::tau_vt_wind = 1200.
 
real fv_nwp_nudge_mod::tau_vt_rad = 4.0
 
real fv_nwp_nudge_mod::pt_lim = 0.2
 
real fv_nwp_nudge_mod::slp_env = 101010.
 storm environment pressure (pa) More...
 
real fv_nwp_nudge_mod::pre0_env = 100000.
 critical storm environment pressure (pa) for size computation More...
 
real, parameter fv_nwp_nudge_mod::tm_max = 315.
 
real fv_nwp_nudge_mod::r_lo = 2.0
 
real fv_nwp_nudge_mod::r_hi = 5.0
 
real fv_nwp_nudge_mod::r_fac = 1.2
 
real fv_nwp_nudge_mod::r_min = 200.E3
 
real fv_nwp_nudge_mod::r_inc = 25.E3
 
real, parameter fv_nwp_nudge_mod::del_r = 50.E3
 
real fv_nwp_nudge_mod::elapsed_time = 0.0
 
real fv_nwp_nudge_mod::nudged_time = 1.E12
 seconds More...
 
integer fv_nwp_nudge_mod::year_track_data
 
integer, parameter fv_nwp_nudge_mod::max_storm = 140
 max # of storms to process More...
 
integer, parameter fv_nwp_nudge_mod::nobs_max = 125
 Max # of observations per storm. More...
 
integer fv_nwp_nudge_mod::nstorms = 0
 
integer, dimension(max_storm) fv_nwp_nudge_mod::nobs_tc
 
integer fv_nwp_nudge_mod::min_nobs = 16
 
real fv_nwp_nudge_mod::min_mslp = 1009.E2
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::x_obs
 longitude in degrees More...
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::y_obs
 latitude in degrees More...
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::wind_obs
 observed 10-m wind speed (m/s) More...
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::mslp_obs
 observed SLP in mb More...
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::mslp_out
 outer ring SLP in mb More...
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::rad_out
 outer ring radius in meters More...
 
real(kind=4), dimension(nobs_max, max_storm) fv_nwp_nudge_mod::time_tc
 start time of the track More...
 
integer fv_nwp_nudge_mod::id_ht_err
 
integer fv_nwp_nudge_mod::is
 
integer fv_nwp_nudge_mod::ie
 
integer fv_nwp_nudge_mod::js
 
integer fv_nwp_nudge_mod::je
 
integer fv_nwp_nudge_mod::isd
 
integer fv_nwp_nudge_mod::ied
 
integer fv_nwp_nudge_mod::jsd
 
integer fv_nwp_nudge_mod::jed
 

Macro Definition Documentation

◆ _GET_VAR1

#define _GET_VAR1   get_var1_double