FV3 Bundle
fv_nwp_nudge_nlm_mod Module Reference

Functions/Subroutines

subroutine, public 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)
 
subroutine 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 ps_bias_correction (ps_dt, is, ie, js, je, isd, ied, jsd, jed, area)
 
real function g0_sum (p, ifirst, ilast, jfirst, jlast, mode, reproduce, isd, ied, jsd, jed, area)
 
subroutine compute_slp (isc, iec, jsc, jec, tm, ps, gz, slp)
 
subroutine 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_init (time, axes, npz, zvir, ak, bk, ts, phis, gridstruct, ks, npx, neststruct, bd)
 
subroutine get_ncep_analysis (ps, u, v, t, q, zvir, ts, nfile, fname, bd)
 
subroutine remap_coef (agrid)
 
subroutine ncep2fms (sst)
 
subroutine get_int_hght (npz, ak, bk, ps, delp, ps0, tv)
 
subroutine remap_tq (npz, ak, bk, ps, delp, t, q, kmd, ps0, ta, qa, zvir, ptop)
 
subroutine remap_uv (npz, ak, bk, ps, delp, u, v, kmd, ps0, u0, v0, ptop)
 
subroutine, public fv_nwp_nudge_end
 
subroutine get_tc_mask (time, mask, agrid)
 
subroutine, public 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)
 
subroutine breed_srf_w10 (time, dt, npz, ak, bk, ps, phis, slp, delp, u, v, gridstruct)
 
subroutine 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)
 
subroutine tangent_wind (elon, elat, speed, po, pp, ut, vt)
 
subroutine 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 slp_obs_init
 
real function calday (year, month, day, hour, minute, sec)
 
logical function leap_year (ny)
 
subroutine pmaxmin (qname, a, imax, jmax, fac)
 
subroutine del2_uv (du, dv, cd, kmd, ntimes, bd, npx, npy, gridstruct, domain)
 
subroutine del2_scalar (qdt, cd, kmd, nmax, bd, npx, npy, gridstruct, domain)
 
subroutine rmse_bias (a, rms, bias, area)
 
subroutine corr (a, b, co, area)
 
subroutine std (a, mean, stdv, area)
 

Variables

real(kind=r_grid), parameter radius = cnst_radius
 
character(len=128) version = ''
 
character(len=128) tagname = ''
 
logical, public do_adiabatic_init
 
integer im
 
integer jm
 
integer km
 
real, dimension(:), allocatable ak0
 
real, dimension(:), allocatable bk0
 
real, dimension(:), allocatable lat
 
real, dimension(:), allocatable lon
 
logical module_is_initialized = .false.
 
logical master
 
logical no_obs
 
real deg2rad
 
real rad2deg
 
real time_nudge = 0.
 
integer time_interval = 6*3600
 
integer, parameter nfile_max = 29280
 
integer nfile
 
integer k_breed = 0
 
integer k_trop = 0
 
real p_trop = 950.E2
 
real dps_min = 50.
 
real del2_cd = 0.16
 
real, dimension(:,:,:), allocatable s2c
 
integer, dimension(:,:), allocatable id1
 
integer, dimension(:,:), allocatable id2
 
integer, dimension(:,:), allocatable jdc
 
real, dimension(:,:,:), allocatable ps_dat
 
real(kind=4), dimension(:,:,:,:), allocatable u_dat
 
real(kind=4), dimension(:,:,:,:), allocatable v_dat
 
real(kind=4), dimension(:,:,:,:), allocatable t_dat
 
real(kind=4), dimension(:,:,:,:), allocatable q_dat
 
real(kind=4), dimension(:,:,:), allocatable gz3
 
real, dimension(:,:), allocatable gz0
 
character(len=128) input_fname_list =""
 
character(len=128) analysis_file_first =""
 
character(len=128) analysis_file_last =""
 
real p_relax = 30.E2
 
real p_norelax = 0.0
 
character(len=128), dimension(nfile_maxfile_names
 
character(len=128) track_file_name
 
integer nfile_total = 0
 
real p_wvp = 100.E2
 
integer kord_data = 8
 
real mask_fac = 0.25
 
logical, public t_is_tv = .false.
 
logical use_pt_inc = .false.
 
logical use_high_top = .false.
 
logical add_bg_wind = .true.
 
logical conserve_mom = .true.
 
logical conserve_hgt = .true.
 
logical tc_mask = .false.
 
logical strong_mask = .false.
 
logical ibtrack = .true.
 
logical nudge_debug = .false.
 
logical do_ps_bias = .false.
 
logical nudge_ps = .false.
 
logical nudge_q = .false.
 
logical nudge_winds = .true.
 
logical nudge_virt = .true.
 
logical nudge_hght = .true.
 
logical time_varying = .true.
 
logical print_end_breed = .true.
 
logical print_end_nudge = .true.
 
real tau_ps = 21600.
 
real tau_q = 86400.
 
real tau_winds = 21600.
 
real tau_virt = 43200.
 
real tau_hght = 43200.
 
real q_min = 1.E-8
 
integer jbeg
 
integer jend
 
integer nf_uv = 0
 
integer nf_ps = 0
 
integer nf_t = 2
 
integer nf_ht = 1
 
integer kstart = 2
 
integer kbot_winds = 0
 
integer kbot_t = 0
 
integer kbot_q = 0
 
logical analysis_time
 
logical breed_srf_w = .false.
 
real grid_size = 28.E3
 
real tau_vt_slp = 1200.
 
real tau_vt_wind = 1200.
 
real tau_vt_rad = 4.0
 
real pt_lim = 0.2
 
real slp_env = 101010.
 
real pre0_env = 100000.
 
real, parameter tm_max = 315.
 
real r_lo = 2.0
 
real r_hi = 5.0
 
real r_fac = 1.2
 
real r_min = 200.E3
 
real r_inc = 25.E3
 
real, parameter del_r = 50.E3
 
real elapsed_time = 0.0
 
real nudged_time = 1.E12
 
integer year_track_data
 
integer, parameter max_storm = 140
 
integer, parameter nobs_max = 125
 
integer nstorms = 0
 
integer, dimension(max_stormnobs_tc
 
integer min_nobs = 16
 
real min_mslp = 1009.E2
 
real(kind=4), dimension(nobs_max, max_stormx_obs
 
real(kind=4), dimension(nobs_max, max_stormy_obs
 
real(kind=4), dimension(nobs_max, max_stormwind_obs
 
real(kind=4), dimension(nobs_max, max_stormmslp_obs
 
real(kind=4), dimension(nobs_max, max_stormmslp_out
 
real(kind=4), dimension(nobs_max, max_stormrad_out
 
real(kind=4), dimension(nobs_max, max_stormtime_tc
 
integer id_ht_err
 
integer is
 
integer ie
 
integer js
 
integer je
 
integer isd
 
integer ied
 
integer jsd
 
integer jed
 

Function/Subroutine Documentation

◆ breed_slp_inline()

subroutine, public fv_nwp_nudge_nlm_mod::breed_slp_inline ( integer, intent(in)  nstep,
real, intent(in)  dt,
integer, intent(in)  npz,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(isd:ied,jsd:jed), intent(in)  phis,
real, dimension(is-1:ie+1, npz+1,js-1:je+1), intent(inout)  pe,
real, dimension(is:ie,js:je, npz+1), intent(inout)  pk,
real, dimension(is:ie,npz+1,js:je), intent(out)  peln,
real, dimension(is:ie,js:je,npz), intent(inout)  pkz,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(isd:ied,jsd:jed+1,npz), intent(inout)  u,
real, dimension(isd:ied+1,jsd:jed,npz), intent(inout)  v,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  pt,
real, dimension(isd:ied,jsd:jed,npz,*), intent(inout)  q,
integer, intent(in)  nwat,
real, intent(in)  zvir,
type(fv_grid_type), target  gridstruct,
integer, intent(in)  ks,
type(domain2d), intent(inout)  domain_local,
type(fv_grid_bounds_type), intent(in)  bd,
logical, intent(in)  hydrostatic 
)

Definition at line 2019 of file fv_nudge_nlm.F90.

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

◆ breed_srf_w10()

subroutine fv_nwp_nudge_nlm_mod::breed_srf_w10 ( type(time_type), intent(in)  time,
real, intent(in)  dt,
integer, intent(in)  npz,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(isd:ied,jsd:jed), intent(in)  ps,
real, dimension(isd:ied,jsd:jed), intent(in)  phis,
real, dimension(is:ie,js:je), intent(in)  slp,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(isd:ied,jsd:jed+1,npz), intent(inout)  u,
real, dimension(isd:ied+1,jsd:jed,npz), intent(inout)  v,
type(fv_grid_type), intent(in), target  gridstruct 
)
private

Definition at line 2495 of file fv_nudge_nlm.F90.

Here is the call graph for this function:

◆ breed_srf_winds()

subroutine fv_nwp_nudge_nlm_mod::breed_srf_winds ( type(time_type), intent(in)  time,
real, intent(in)  dt,
integer, intent(in)  npz,
real, dimension(is:ie,js:je,npz), intent(in)  u_obs,
real, dimension(is:ie,js:je,npz), intent(in)  v_obs,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(isd:ied,jsd:jed), intent(in)  ps,
real, dimension(isd:ied,jsd:jed), intent(in)  phis,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  va,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  u_dt,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  v_dt,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  pt,
real, dimension(isd:ied,jsd:jed,npz,nwat), intent(inout)  q,
integer, intent(in)  nwat,
real, intent(in)  zvir,
type(fv_grid_type), intent(in), target  gridstruct 
)
private

Definition at line 2777 of file fv_nudge_nlm.F90.

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

◆ calday()

real function fv_nwp_nudge_nlm_mod::calday ( integer, intent(in)  year,
integer, intent(in)  month,
integer, intent(in)  day,
integer, intent(in)  hour,
integer, intent(in)  minute,
integer, intent(in)  sec 
)
private

Definition at line 3260 of file fv_nudge_nlm.F90.

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

◆ compute_slp()

subroutine fv_nwp_nudge_nlm_mod::compute_slp ( integer, intent(in)  isc,
integer, intent(in)  iec,
integer, intent(in)  jsc,
integer, intent(in)  jec,
real, dimension(isc:iec,jsc:jec), intent(in)  tm,
real, dimension(isc:iec,jsc:jec), intent(in)  ps,
real, dimension(isc:iec,jsc:jec), intent(in)  gz,
real, dimension(isc:iec,jsc:jec), intent(out)  slp 
)
private

Definition at line 943 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ corr()

subroutine fv_nwp_nudge_nlm_mod::corr ( real, dimension(is:ie,js:je), intent(in)  a,
real, dimension(is:ie,js:je), intent(in)  b,
real, intent(out)  co,
real, dimension(isd:ied,jsd:jed), intent(in)  area 
)
private

Definition at line 3548 of file fv_nudge_nlm.F90.

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

◆ del2_scalar()

subroutine fv_nwp_nudge_nlm_mod::del2_scalar ( real, dimension(is:ie,js:je,kmd), intent(inout)  qdt,
real, intent(in)  cd,
integer, intent(in)  kmd,
integer, intent(in)  nmax,
type(fv_grid_bounds_type), intent(in)  bd,
integer, intent(in)  npx,
integer, intent(in)  npy,
type(fv_grid_type), intent(in), target  gridstruct,
type(domain2d), intent(inout)  domain 
)
private

Definition at line 3404 of file fv_nudge_nlm.F90.

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

◆ del2_uv()

subroutine fv_nwp_nudge_nlm_mod::del2_uv ( real, dimension(is:ie,js:je,kmd), intent(inout)  du,
real, dimension(is:ie,js:je,kmd), intent(inout)  dv,
real, intent(in)  cd,
integer, intent(in)  kmd,
integer, intent(in)  ntimes,
type(fv_grid_bounds_type), intent(in)  bd,
integer, intent(in)  npx,
integer, intent(in)  npy,
type(fv_grid_type), intent(in), target  gridstruct,
type(domain2d), intent(inout)  domain 
)
private

Definition at line 3356 of file fv_nudge_nlm.F90.

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

◆ fv_nwp_nudge()

subroutine, public fv_nwp_nudge_nlm_mod::fv_nwp_nudge ( type(time_type), intent(in)  Time,
real, intent(in)  dt,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
real, dimension(is:ie,js:je), intent(out)  ps_dt,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  u_dt,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  v_dt,
real, dimension(is:ie,js:je,npz), intent(out)  t_dt,
real, dimension(is:ie,js:je,npz), intent(out)  q_dt,
real, intent(in)  zvir,
real, intent(in)  ptop,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(is:ie,js:je), intent(out)  ts,
real, dimension(isd:ied,jsd:jed), intent(inout)  ps,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  va,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  pt,
integer, intent(in)  nwat,
real, dimension(isd:ied,jsd:jed,npz,nwat), intent(inout)  q,
real, dimension(isd:ied,jsd:jed ), intent(in)  phis,
type(fv_grid_type), intent(inout), target  gridstruct,
type(fv_grid_bounds_type), intent(in)  bd,
type(domain2d), intent(inout), target  domain 
)

Definition at line 224 of file fv_nudge_nlm.F90.

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

◆ fv_nwp_nudge_end()

subroutine, public fv_nwp_nudge_nlm_mod::fv_nwp_nudge_end ( )

Definition at line 1950 of file fv_nudge_nlm.F90.

◆ fv_nwp_nudge_init()

subroutine, public fv_nwp_nudge_nlm_mod::fv_nwp_nudge_init ( type(time_type), intent(in)  time,
integer, dimension(4), intent(in)  axes,
integer, intent(in)  npz,
real, intent(in)  zvir,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(bd%is:bd%ie,bd%js:bd%je), intent(out)  ts,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(in)  phis,
type(fv_grid_type), target  gridstruct,
integer, intent(in)  ks,
integer, intent(in)  npx,
type(fv_nest_type neststruct,
type(fv_grid_bounds_type), intent(in)  bd 
)

Definition at line 1121 of file fv_nudge_nlm.F90.

Here is the call graph for this function:

◆ g0_sum()

real function fv_nwp_nudge_nlm_mod::g0_sum ( real, dimension(ifirst:ilast,jfirst:jlast), intent(in)  p,
integer, intent(in)  ifirst,
integer, intent(in)  ilast,
integer, intent(in)  jfirst,
integer, intent(in)  jlast,
integer, intent(in)  mode,
logical, intent(in)  reproduce,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
real, dimension(isd:ied,jsd:jed), intent(in)  area 
)
private

Definition at line 910 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ get_int_hght()

subroutine fv_nwp_nudge_nlm_mod::get_int_hght ( integer, intent(in)  npz,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(is:ie,js:je), intent(in)  ps,
real, dimension(isd:ied,jsd:jed,npz), intent(in)  delp,
real, dimension(is:ie,js:je), intent(in)  ps0,
real(kind=4), dimension(is:ie,js:je,km), intent(in)  tv 
)
private

Definition at line 1759 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ get_ncep_analysis()

subroutine fv_nwp_nudge_nlm_mod::get_ncep_analysis ( real, dimension(is:ie,js:je), intent(out)  ps,
real(kind=4), dimension(is:ie,js:je,km), intent(out)  u,
real(kind=4), dimension(is:ie,js:je,km), intent(out)  v,
real(kind=4), dimension(is:ie,js:je,km), intent(out)  t,
real(kind=4), dimension(is:ie,js:je,km), intent(out)  q,
real, intent(in)  zvir,
real, dimension(is:ie,js:je), intent(out)  ts,
integer, intent(inout)  nfile,
character(len=128), intent(in)  fname,
type(fv_grid_bounds_type), intent(in)  bd 
)
private

Definition at line 1350 of file fv_nudge_nlm.F90.

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

◆ get_obs()

subroutine fv_nwp_nudge_nlm_mod::get_obs ( type(time_type), intent(in)  Time,
real, intent(in)  dt,
real, intent(in)  zvir,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(isd:ied,jsd:jed), intent(inout)  ps,
real, dimension(is:ie,js:je), intent(out)  ts,
real, dimension(is:ie,js:je), intent(out)  ps_obs,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  pt,
integer, intent(in)  nwat,
real, dimension(isd:ied,jsd:jed,npz,*), intent(inout)  q,
real, dimension(is:ie,js:je,npz), intent(out)  u_obs,
real, dimension(is:ie,js:je,npz), intent(out)  v_obs,
real, dimension(is:ie,js:je,npz), intent(out)  t_obs,
real, dimension(is:ie,js:je,npz), intent(out)  q_obs,
real, dimension(isd:ied,jsd:jed), intent(in)  phis,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  va,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  u_dt,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  v_dt,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
real, intent(in)  factor,
real, dimension(is:ie,js:je), intent(in)  mask,
real, intent(in)  ptop,
type(fv_grid_bounds_type), intent(in)  bd,
type(fv_grid_type), intent(in)  gridstruct,
type(domain2d), intent(inout)  domain 
)
private

Definition at line 960 of file fv_nudge_nlm.F90.

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

◆ get_slp_obs()

subroutine fv_nwp_nudge_nlm_mod::get_slp_obs ( type(time_type), intent(in)  time,
integer, intent(in)  nobs,
real(kind=4), dimension(nobs), intent(in)  lon_obs,
real(kind=4), dimension(nobs), intent(in)  lat_obs,
real(kind=4), dimension(nobs), intent(in)  w10,
real(kind=4), dimension(nobs), intent(in)  mslp,
real(kind=4), dimension(nobs), intent(in)  slp_out,
real(kind=4), dimension(nobs), intent(in)  r_out,
real(kind=4), dimension(nobs), intent(in)  time_obs,
real(kind=r_grid), intent(out)  x_o,
real(kind=r_grid), intent(out)  y_o,
real, intent(out)  w10_o,
real, intent(out)  slp_o,
real, intent(out)  r_vor,
real, intent(out)  p_vor,
real, intent(in), optional  stime,
real, intent(out), optional  fact 
)
private

Definition at line 3039 of file fv_nudge_nlm.F90.

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

◆ get_tc_mask()

subroutine fv_nwp_nudge_nlm_mod::get_tc_mask ( type(time_type), intent(in)  time,
real, dimension(is:ie,js:je), intent(inout)  mask,
real(kind=r_grid), dimension(isd:ied,jsd:jed,2), intent(in)  agrid 
)
private

Definition at line 1977 of file fv_nudge_nlm.F90.

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

◆ leap_year()

logical function fv_nwp_nudge_nlm_mod::leap_year ( integer, intent(in)  ny)
private

Definition at line 3294 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ ncep2fms()

subroutine fv_nwp_nudge_nlm_mod::ncep2fms ( real(kind=4), dimension(im,jm), intent(in)  sst)
private

Definition at line 1673 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ pmaxmin()

subroutine fv_nwp_nudge_nlm_mod::pmaxmin ( character(len=*)  qname,
real, dimension(imax,jmax)  a,
integer  imax,
integer  jmax,
real  fac 
)
private

Definition at line 3320 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ ps_bias_correction()

subroutine fv_nwp_nudge_nlm_mod::ps_bias_correction ( real, dimension(is:ie,js:je), intent(inout)  ps_dt,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
real, dimension(isd:ied,jsd:jed), intent(in)  area 
)
private

Definition at line 843 of file fv_nudge_nlm.F90.

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

◆ ps_nudging()

subroutine fv_nwp_nudge_nlm_mod::ps_nudging ( real, intent(in)  dt,
real, intent(in)  factor,
integer, intent(in)  npz,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(is:ie,js:je), intent(in)  ps_obs,
real, dimension(is:ie,js:je), intent(in)  mask,
real, dimension(is:ie,js:je), intent(in)  tm,
real, dimension(isd:ied,jsd:jed), intent(inout)  ps,
real, dimension(isd:ied,jsd:jed), intent(in)  phis,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  va,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  pt,
integer, intent(in)  nwat,
real, dimension(isd:ied,jsd:jed,npz,nwat), intent(inout)  q,
type(fv_grid_bounds_type), intent(in)  bd,
integer, intent(in)  npx,
integer, intent(in)  npy,
type(fv_grid_type), intent(in), target  gridstruct,
type(domain2d), intent(inout)  domain 
)
private

Definition at line 684 of file fv_nudge_nlm.F90.

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

◆ remap_coef()

subroutine fv_nwp_nudge_nlm_mod::remap_coef ( real, dimension(isd:ied,jsd:jed,2), intent(in)  agrid)
private

Definition at line 1597 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ remap_tq()

subroutine fv_nwp_nudge_nlm_mod::remap_tq ( integer, intent(in)  npz,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(is:ie,js:je), intent(inout)  ps,
real, dimension(isd:ied,jsd:jed,npz), intent(in)  delp,
real(kind=4), dimension(is:ie,js:je,npz), intent(out)  t,
real(kind=4), dimension(is:ie,js:je,npz), intent(out)  q,
integer, intent(in)  kmd,
real, dimension(is:ie,js:je), intent(in)  ps0,
real(kind=4), dimension(is:ie,js:je,kmd), intent(in)  ta,
real(kind=4), dimension(is:ie,js:je,kmd), intent(in)  qa,
real, intent(in)  zvir,
real, intent(in)  ptop 
)
private

Definition at line 1795 of file fv_nudge_nlm.F90.

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

◆ remap_uv()

subroutine fv_nwp_nudge_nlm_mod::remap_uv ( integer, intent(in)  npz,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(is:ie,js:je), intent(inout)  ps,
real, dimension(isd:ied,jsd:jed,npz), intent(in)  delp,
real(kind=4), dimension(is:ie,js:je,npz), intent(inout)  u,
real(kind=4), dimension(is:ie,js:je,npz), intent(inout)  v,
integer, intent(in)  kmd,
real, dimension(is:ie,js:je), intent(in)  ps0,
real(kind=4), dimension(is:ie,js:je,kmd), intent(in)  u0,
real(kind=4), dimension(is:ie,js:je,kmd), intent(in)  v0,
real, intent(in)  ptop 
)
private

Definition at line 1874 of file fv_nudge_nlm.F90.

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

◆ rmse_bias()

subroutine fv_nwp_nudge_nlm_mod::rmse_bias ( real, dimension(is:ie,js:je), intent(in)  a,
real, intent(out)  rms,
real, intent(out)  bias,
real, dimension(isd:ied,jsd:jed), intent(in)  area 
)
private

Definition at line 3522 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ slp_obs_init()

subroutine fv_nwp_nudge_nlm_mod::slp_obs_init ( )
private

Definition at line 3131 of file fv_nudge_nlm.F90.

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

◆ std()

subroutine fv_nwp_nudge_nlm_mod::std ( real, dimension(is:ie,js:je), intent(in)  a,
real, intent(out)  mean,
real, intent(out)  stdv,
real, dimension(isd:ied,jsd:jed), intent(in)  area 
)
private

Definition at line 3574 of file fv_nudge_nlm.F90.

Here is the caller graph for this function:

◆ tangent_wind()

subroutine fv_nwp_nudge_nlm_mod::tangent_wind ( real(kind=r_grid), dimension(3), intent(in)  elon,
real(kind=r_grid), dimension(3), intent(in)  elat,
real, intent(in)  speed,
real(kind=r_grid), dimension(2), intent(in)  po,
real(kind=r_grid), dimension(2), intent(in)  pp,
real, intent(out)  ut,
real, intent(out)  vt 
)
private

Definition at line 3010 of file fv_nudge_nlm.F90.

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

Variable Documentation

◆ add_bg_wind

logical fv_nwp_nudge_nlm_mod::add_bg_wind = .true.
private

Definition at line 117 of file fv_nudge_nlm.F90.

◆ ak0

real, dimension(:), allocatable fv_nwp_nudge_nlm_mod::ak0
private

Definition at line 64 of file fv_nudge_nlm.F90.

◆ analysis_file_first

character(len=128) fv_nwp_nudge_nlm_mod::analysis_file_first =""
private

Definition at line 95 of file fv_nudge_nlm.F90.

◆ analysis_file_last

character(len=128) fv_nwp_nudge_nlm_mod::analysis_file_last =""
private

Definition at line 97 of file fv_nudge_nlm.F90.

◆ analysis_time

logical fv_nwp_nudge_nlm_mod::analysis_time
private

Definition at line 158 of file fv_nudge_nlm.F90.

◆ bk0

real, dimension(:), allocatable fv_nwp_nudge_nlm_mod::bk0
private

Definition at line 64 of file fv_nudge_nlm.F90.

◆ breed_srf_w

logical fv_nwp_nudge_nlm_mod::breed_srf_w = .false.
private

Definition at line 164 of file fv_nudge_nlm.F90.

◆ conserve_hgt

logical fv_nwp_nudge_nlm_mod::conserve_hgt = .true.
private

Definition at line 119 of file fv_nudge_nlm.F90.

◆ conserve_mom

logical fv_nwp_nudge_nlm_mod::conserve_mom = .true.
private

Definition at line 118 of file fv_nudge_nlm.F90.

◆ deg2rad

real fv_nwp_nudge_nlm_mod::deg2rad
private

Definition at line 70 of file fv_nudge_nlm.F90.

◆ del2_cd

real fv_nwp_nudge_nlm_mod::del2_cd = 0.16
private

Definition at line 83 of file fv_nudge_nlm.F90.

◆ del_r

real, parameter fv_nwp_nudge_nlm_mod::del_r = 50.E3
private

Definition at line 181 of file fv_nudge_nlm.F90.

◆ do_adiabatic_init

logical, public fv_nwp_nudge_nlm_mod::do_adiabatic_init

Definition at line 57 of file fv_nudge_nlm.F90.

◆ do_ps_bias

logical fv_nwp_nudge_nlm_mod::do_ps_bias = .false.
private

Definition at line 124 of file fv_nudge_nlm.F90.

◆ dps_min

real fv_nwp_nudge_nlm_mod::dps_min = 50.
private

Definition at line 82 of file fv_nudge_nlm.F90.

◆ elapsed_time

real fv_nwp_nudge_nlm_mod::elapsed_time = 0.0
private

Definition at line 182 of file fv_nudge_nlm.F90.

◆ file_names

character(len=128), dimension(nfile_max) fv_nwp_nudge_nlm_mod::file_names
private

Definition at line 106 of file fv_nudge_nlm.F90.

◆ grid_size

real fv_nwp_nudge_nlm_mod::grid_size = 28.E3
private

Definition at line 165 of file fv_nudge_nlm.F90.

◆ gz0

real, dimension(:,:), allocatable fv_nwp_nudge_nlm_mod::gz0
private

Definition at line 90 of file fv_nudge_nlm.F90.

◆ gz3

real(kind=4), dimension(:,:,:), allocatable fv_nwp_nudge_nlm_mod::gz3
private

Definition at line 89 of file fv_nudge_nlm.F90.

◆ ibtrack

logical fv_nwp_nudge_nlm_mod::ibtrack = .true.
private

Definition at line 122 of file fv_nudge_nlm.F90.

◆ id1

integer, dimension(:,:), allocatable fv_nwp_nudge_nlm_mod::id1
private

Definition at line 86 of file fv_nudge_nlm.F90.

◆ id2

integer, dimension(:,:), allocatable fv_nwp_nudge_nlm_mod::id2
private

Definition at line 86 of file fv_nudge_nlm.F90.

◆ id_ht_err

integer fv_nwp_nudge_nlm_mod::id_ht_err
private

Definition at line 203 of file fv_nudge_nlm.F90.

◆ ie

integer fv_nwp_nudge_nlm_mod::ie
private

Definition at line 206 of file fv_nudge_nlm.F90.

◆ ied

integer fv_nwp_nudge_nlm_mod::ied
private

Definition at line 207 of file fv_nudge_nlm.F90.

◆ im

integer fv_nwp_nudge_nlm_mod::im
private

Definition at line 61 of file fv_nudge_nlm.F90.

◆ input_fname_list

character(len=128) fv_nwp_nudge_nlm_mod::input_fname_list =""
private

Definition at line 94 of file fv_nudge_nlm.F90.

◆ is

integer fv_nwp_nudge_nlm_mod::is
private

Definition at line 206 of file fv_nudge_nlm.F90.

◆ isd

integer fv_nwp_nudge_nlm_mod::isd
private

Definition at line 207 of file fv_nudge_nlm.F90.

◆ jbeg

integer fv_nwp_nudge_nlm_mod::jbeg
private

Definition at line 145 of file fv_nudge_nlm.F90.

◆ jdc

integer, dimension(:,:), allocatable fv_nwp_nudge_nlm_mod::jdc
private

Definition at line 86 of file fv_nudge_nlm.F90.

◆ je

integer fv_nwp_nudge_nlm_mod::je
private

Definition at line 206 of file fv_nudge_nlm.F90.

◆ jed

integer fv_nwp_nudge_nlm_mod::jed
private

Definition at line 207 of file fv_nudge_nlm.F90.

◆ jend

integer fv_nwp_nudge_nlm_mod::jend
private

Definition at line 145 of file fv_nudge_nlm.F90.

◆ jm

integer fv_nwp_nudge_nlm_mod::jm
private

Definition at line 62 of file fv_nudge_nlm.F90.

◆ js

integer fv_nwp_nudge_nlm_mod::js
private

Definition at line 206 of file fv_nudge_nlm.F90.

◆ jsd

integer fv_nwp_nudge_nlm_mod::jsd
private

Definition at line 207 of file fv_nudge_nlm.F90.

◆ k_breed

integer fv_nwp_nudge_nlm_mod::k_breed = 0
private

Definition at line 79 of file fv_nudge_nlm.F90.

◆ k_trop

integer fv_nwp_nudge_nlm_mod::k_trop = 0
private

Definition at line 80 of file fv_nudge_nlm.F90.

◆ kbot_q

integer fv_nwp_nudge_nlm_mod::kbot_q = 0
private

Definition at line 157 of file fv_nudge_nlm.F90.

◆ kbot_t

integer fv_nwp_nudge_nlm_mod::kbot_t = 0
private

Definition at line 156 of file fv_nudge_nlm.F90.

◆ kbot_winds

integer fv_nwp_nudge_nlm_mod::kbot_winds = 0
private

Definition at line 155 of file fv_nudge_nlm.F90.

◆ km

integer fv_nwp_nudge_nlm_mod::km
private

Definition at line 63 of file fv_nudge_nlm.F90.

◆ kord_data

integer fv_nwp_nudge_nlm_mod::kord_data = 8
private

Definition at line 110 of file fv_nudge_nlm.F90.

◆ kstart

integer fv_nwp_nudge_nlm_mod::kstart = 2
private

Definition at line 152 of file fv_nudge_nlm.F90.

◆ lat

real, dimension(:), allocatable fv_nwp_nudge_nlm_mod::lat
private

Definition at line 65 of file fv_nudge_nlm.F90.

◆ lon

real, dimension(:), allocatable fv_nwp_nudge_nlm_mod::lon
private

Definition at line 65 of file fv_nudge_nlm.F90.

◆ mask_fac

real fv_nwp_nudge_nlm_mod::mask_fac = 0.25
private

Definition at line 112 of file fv_nudge_nlm.F90.

◆ master

logical fv_nwp_nudge_nlm_mod::master
private

Definition at line 68 of file fv_nudge_nlm.F90.

◆ max_storm

integer, parameter fv_nwp_nudge_nlm_mod::max_storm = 140
private

Definition at line 188 of file fv_nudge_nlm.F90.

◆ min_mslp

real fv_nwp_nudge_nlm_mod::min_mslp = 1009.E2
private

Definition at line 194 of file fv_nudge_nlm.F90.

◆ min_nobs

integer fv_nwp_nudge_nlm_mod::min_nobs = 16
private

Definition at line 193 of file fv_nudge_nlm.F90.

◆ module_is_initialized

logical fv_nwp_nudge_nlm_mod::module_is_initialized = .false.
private

Definition at line 67 of file fv_nudge_nlm.F90.

◆ mslp_obs

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::mslp_obs
private

Definition at line 198 of file fv_nudge_nlm.F90.

◆ mslp_out

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::mslp_out
private

Definition at line 199 of file fv_nudge_nlm.F90.

◆ nf_ht

integer fv_nwp_nudge_nlm_mod::nf_ht = 1
private

Definition at line 149 of file fv_nudge_nlm.F90.

◆ nf_ps

integer fv_nwp_nudge_nlm_mod::nf_ps = 0
private

Definition at line 147 of file fv_nudge_nlm.F90.

◆ nf_t

integer fv_nwp_nudge_nlm_mod::nf_t = 2
private

Definition at line 148 of file fv_nudge_nlm.F90.

◆ nf_uv

integer fv_nwp_nudge_nlm_mod::nf_uv = 0
private

Definition at line 146 of file fv_nudge_nlm.F90.

◆ nfile

integer fv_nwp_nudge_nlm_mod::nfile
private

Definition at line 77 of file fv_nudge_nlm.F90.

◆ nfile_max

integer, parameter fv_nwp_nudge_nlm_mod::nfile_max = 29280
private

Definition at line 75 of file fv_nudge_nlm.F90.

◆ nfile_total

integer fv_nwp_nudge_nlm_mod::nfile_total = 0
private

Definition at line 108 of file fv_nudge_nlm.F90.

◆ no_obs

logical fv_nwp_nudge_nlm_mod::no_obs
private

Definition at line 69 of file fv_nudge_nlm.F90.

◆ nobs_max

integer, parameter fv_nwp_nudge_nlm_mod::nobs_max = 125
private

Definition at line 189 of file fv_nudge_nlm.F90.

◆ nobs_tc

integer, dimension(max_storm) fv_nwp_nudge_nlm_mod::nobs_tc
private

Definition at line 192 of file fv_nudge_nlm.F90.

◆ nstorms

integer fv_nwp_nudge_nlm_mod::nstorms = 0
private

Definition at line 191 of file fv_nudge_nlm.F90.

◆ nudge_debug

logical fv_nwp_nudge_nlm_mod::nudge_debug = .false.
private

Definition at line 123 of file fv_nudge_nlm.F90.

◆ nudge_hght

logical fv_nwp_nudge_nlm_mod::nudge_hght = .true.
private

Definition at line 129 of file fv_nudge_nlm.F90.

◆ nudge_ps

logical fv_nwp_nudge_nlm_mod::nudge_ps = .false.
private

Definition at line 125 of file fv_nudge_nlm.F90.

◆ nudge_q

logical fv_nwp_nudge_nlm_mod::nudge_q = .false.
private

Definition at line 126 of file fv_nudge_nlm.F90.

◆ nudge_virt

logical fv_nwp_nudge_nlm_mod::nudge_virt = .true.
private

Definition at line 128 of file fv_nudge_nlm.F90.

◆ nudge_winds

logical fv_nwp_nudge_nlm_mod::nudge_winds = .true.
private

Definition at line 127 of file fv_nudge_nlm.F90.

◆ nudged_time

real fv_nwp_nudge_nlm_mod::nudged_time = 1.E12
private

Definition at line 183 of file fv_nudge_nlm.F90.

◆ p_norelax

real fv_nwp_nudge_nlm_mod::p_norelax = 0.0
private

Definition at line 103 of file fv_nudge_nlm.F90.

◆ p_relax

real fv_nwp_nudge_nlm_mod::p_relax = 30.E2
private

Definition at line 100 of file fv_nudge_nlm.F90.

◆ p_trop

real fv_nwp_nudge_nlm_mod::p_trop = 950.E2
private

Definition at line 81 of file fv_nudge_nlm.F90.

◆ p_wvp

real fv_nwp_nudge_nlm_mod::p_wvp = 100.E2
private

Definition at line 109 of file fv_nudge_nlm.F90.

◆ pre0_env

real fv_nwp_nudge_nlm_mod::pre0_env = 100000.
private

Definition at line 172 of file fv_nudge_nlm.F90.

◆ print_end_breed

logical fv_nwp_nudge_nlm_mod::print_end_breed = .true.
private

Definition at line 131 of file fv_nudge_nlm.F90.

◆ print_end_nudge

logical fv_nwp_nudge_nlm_mod::print_end_nudge = .true.
private

Definition at line 132 of file fv_nudge_nlm.F90.

◆ ps_dat

real, dimension(:,:,:), allocatable fv_nwp_nudge_nlm_mod::ps_dat
private

Definition at line 87 of file fv_nudge_nlm.F90.

◆ pt_lim

real fv_nwp_nudge_nlm_mod::pt_lim = 0.2
private

Definition at line 170 of file fv_nudge_nlm.F90.

◆ q_dat

real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_nlm_mod::q_dat
private

Definition at line 88 of file fv_nudge_nlm.F90.

◆ q_min

real fv_nwp_nudge_nlm_mod::q_min = 1.E-8
private

Definition at line 143 of file fv_nudge_nlm.F90.

◆ r_fac

real fv_nwp_nudge_nlm_mod::r_fac = 1.2
private

Definition at line 178 of file fv_nudge_nlm.F90.

◆ r_hi

real fv_nwp_nudge_nlm_mod::r_hi = 5.0
private

Definition at line 176 of file fv_nudge_nlm.F90.

◆ r_inc

real fv_nwp_nudge_nlm_mod::r_inc = 25.E3
private

Definition at line 180 of file fv_nudge_nlm.F90.

◆ r_lo

real fv_nwp_nudge_nlm_mod::r_lo = 2.0
private

Definition at line 175 of file fv_nudge_nlm.F90.

◆ r_min

real fv_nwp_nudge_nlm_mod::r_min = 200.E3
private

Definition at line 179 of file fv_nudge_nlm.F90.

◆ rad2deg

real fv_nwp_nudge_nlm_mod::rad2deg
private

Definition at line 70 of file fv_nudge_nlm.F90.

◆ rad_out

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::rad_out
private

Definition at line 200 of file fv_nudge_nlm.F90.

◆ radius

real(kind=r_grid), parameter fv_nwp_nudge_nlm_mod::radius = cnst_radius
private

Definition at line 53 of file fv_nudge_nlm.F90.

◆ s2c

real, dimension(:,:,:), allocatable fv_nwp_nudge_nlm_mod::s2c
private

Definition at line 85 of file fv_nudge_nlm.F90.

◆ slp_env

real fv_nwp_nudge_nlm_mod::slp_env = 101010.
private

Definition at line 171 of file fv_nudge_nlm.F90.

◆ strong_mask

logical fv_nwp_nudge_nlm_mod::strong_mask = .false.
private

Definition at line 121 of file fv_nudge_nlm.F90.

◆ t_dat

real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_nlm_mod::t_dat
private

Definition at line 88 of file fv_nudge_nlm.F90.

◆ t_is_tv

logical, public fv_nwp_nudge_nlm_mod::t_is_tv = .false.

Definition at line 114 of file fv_nudge_nlm.F90.

◆ tagname

character(len=128) fv_nwp_nudge_nlm_mod::tagname = ''
private

Definition at line 56 of file fv_nudge_nlm.F90.

◆ tau_hght

real fv_nwp_nudge_nlm_mod::tau_hght = 43200.
private

Definition at line 141 of file fv_nudge_nlm.F90.

◆ tau_ps

real fv_nwp_nudge_nlm_mod::tau_ps = 21600.
private

Definition at line 137 of file fv_nudge_nlm.F90.

◆ tau_q

real fv_nwp_nudge_nlm_mod::tau_q = 86400.
private

Definition at line 138 of file fv_nudge_nlm.F90.

◆ tau_virt

real fv_nwp_nudge_nlm_mod::tau_virt = 43200.
private

Definition at line 140 of file fv_nudge_nlm.F90.

◆ tau_vt_rad

real fv_nwp_nudge_nlm_mod::tau_vt_rad = 4.0
private

Definition at line 168 of file fv_nudge_nlm.F90.

◆ tau_vt_slp

real fv_nwp_nudge_nlm_mod::tau_vt_slp = 1200.
private

Definition at line 166 of file fv_nudge_nlm.F90.

◆ tau_vt_wind

real fv_nwp_nudge_nlm_mod::tau_vt_wind = 1200.
private

Definition at line 167 of file fv_nudge_nlm.F90.

◆ tau_winds

real fv_nwp_nudge_nlm_mod::tau_winds = 21600.
private

Definition at line 139 of file fv_nudge_nlm.F90.

◆ tc_mask

logical fv_nwp_nudge_nlm_mod::tc_mask = .false.
private

Definition at line 120 of file fv_nudge_nlm.F90.

◆ time_interval

integer fv_nwp_nudge_nlm_mod::time_interval = 6*3600
private

Definition at line 72 of file fv_nudge_nlm.F90.

◆ time_nudge

real fv_nwp_nudge_nlm_mod::time_nudge = 0.
private

Definition at line 71 of file fv_nudge_nlm.F90.

◆ time_tc

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::time_tc
private

Definition at line 201 of file fv_nudge_nlm.F90.

◆ time_varying

logical fv_nwp_nudge_nlm_mod::time_varying = .true.
private

Definition at line 130 of file fv_nudge_nlm.F90.

◆ tm_max

real, parameter fv_nwp_nudge_nlm_mod::tm_max = 315.
private

Definition at line 173 of file fv_nudge_nlm.F90.

◆ track_file_name

character(len=128) fv_nwp_nudge_nlm_mod::track_file_name
private

Definition at line 107 of file fv_nudge_nlm.F90.

◆ u_dat

real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_nlm_mod::u_dat
private

Definition at line 88 of file fv_nudge_nlm.F90.

◆ use_high_top

logical fv_nwp_nudge_nlm_mod::use_high_top = .false.
private

Definition at line 116 of file fv_nudge_nlm.F90.

◆ use_pt_inc

logical fv_nwp_nudge_nlm_mod::use_pt_inc = .false.
private

Definition at line 115 of file fv_nudge_nlm.F90.

◆ v_dat

real(kind=4), dimension(:,:,:,:), allocatable fv_nwp_nudge_nlm_mod::v_dat
private

Definition at line 88 of file fv_nudge_nlm.F90.

◆ version

character(len=128) fv_nwp_nudge_nlm_mod::version = ''
private

Definition at line 55 of file fv_nudge_nlm.F90.

◆ wind_obs

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::wind_obs
private

Definition at line 197 of file fv_nudge_nlm.F90.

◆ x_obs

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::x_obs
private

Definition at line 195 of file fv_nudge_nlm.F90.

◆ y_obs

real(kind=4), dimension(nobs_max,max_storm) fv_nwp_nudge_nlm_mod::y_obs
private

Definition at line 196 of file fv_nudge_nlm.F90.

◆ year_track_data

integer fv_nwp_nudge_nlm_mod::year_track_data
private

Definition at line 187 of file fv_nudge_nlm.F90.