FV3DYCORE  Version 2.0.0
external_ic_mod Module Reference

The module 'external_ic_mod' contains routines that read in and remap initial conditions. More...

Functions/Subroutines

subroutine, public get_external_ic (Atm, fv_domain, cold_start, dt_atmos)
 
subroutine, public get_cubed_sphere_terrain (Atm, fv_domain)
 
subroutine get_nggps_ic (Atm, fv_domain, dt_atmos)
 The subroutine 'get_nggps_ic' reads in data after it has been preprocessed with NCEP/EMC orography maker and 'global_chgres', and has been horiztontally interpolated to the current cubed-sphere grid. More...
 
subroutine get_ncep_ic (Atm, fv_domain, nq)
 The subroutine 'get_ncep_ic' reads in the specified NCEP analysis or reanalysis dataset. More...
 
subroutine get_ecmwf_ic (Atm, fv_domain)
 The subroutine 'get_ecmwf_ic' reads in initial conditions from ECMWF analyses (EXPERIMENTAL: contact Jan-Huey Chen jan-h.nosp@m.uey..nosp@m.chen@.nosp@m.noaa.nosp@m..gov for support) More...
 
subroutine get_fv_ic (Atm, fv_domain, nq)
 
subroutine ncep2fms (im, jm, lon, lat, wk)
 
subroutine remap_coef (is, ie, js, je, isd, ied, jsd, jed, im, jm, lon, lat, id1, id2, jdc, s2c, agrid)
 
subroutine, public remap_scalar (Atm, km, npz, ncnst, ak0, bk0, psc, qa, zh, omga, t_in)
 
subroutine remap_scalar_single (Atm, km, npz, ak0, bk0, psc, qa, zh, iq)
 
subroutine mp_auto_conversion (ql, qr, qi, qs)
 
subroutine, public remap_dwinds (km, npz, ak0, bk0, psc, ud, vd, Atm)
 
subroutine remap_winds (im, jm, km, npz, ak0, bk0, psc, ua, va, Atm)
 
subroutine remap_xyz (im, jbeg, jend, jm, km, npz, nq, ncnst, lon, lat, ak0, bk0, ps0, gz0, ua, va, ta, qa, Atm)
 
subroutine cubed_a2d (npx, npy, npz, ua, va, u, v, gridstruct, fv_domain, bd)
 The subroutine 'cubed_a2d' transforms the wind from the A Grid to the D Grid. More...
 
subroutine d2a3d (u, v, ua, va, im, jm, km, lon)
 
subroutine pmaxmin (qname, a, im, jm, fac)
 
subroutine pmaxmn (qname, q, is, ie, js, je, km, fac, area, domain)
 
subroutine p_maxmin (qname, q, is, ie, js, je, km, fac)
 
subroutine fillq (im, km, nq, q, dp)
 
subroutine compute_zh (im, jm, levp, ak0, bk0, ps, zs, t, q, nq, zh)
 
subroutine get_staggered_grid (is, ie, js, je, isd, ied, jsd, jed, pt_b, pt_c, pt_d)
 

Variables

real, parameter zvir = rvgas/rdgas - 1.
 
real(kind=r_grid), parameter cnst_0p20 =0.20d0
 
real, parameter deg2rad = pi/180.
 
character(len=80), public source
 
character(len=27), parameter source_fv3gfs = 'FV3GFS GAUSSIAN NEMSIO FILE'
 

Detailed Description

The module 'external_ic_mod' contains routines that read in and remap initial conditions.

Function/Subroutine Documentation

◆ compute_zh()

subroutine external_ic_mod::compute_zh ( integer, intent(in)  im,
integer, intent(in)  jm,
integer, intent(in)  levp,
real, dimension(levp+1), intent(in)  ak0,
real, dimension(levp+1), intent(in)  bk0,
real(kind=4), dimension(im,jm), intent(in)  ps,
real(kind=4), dimension(im,jm), intent(in)  zs,
real(kind=4), dimension(im,jm,levp), intent(in)  t,
real(kind=4), dimension(im,jm,levp,nq), intent(in)  q,
integer, intent(in)  nq,
real(kind=4), dimension(im,jm,levp+1), intent(out)  zh 
)
private

Definition at line 3817 of file external_ic.F90.

◆ cubed_a2d()

subroutine external_ic_mod::cubed_a2d ( integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  ua,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  va,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed+1,npz), intent(out)  u,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed ,npz), intent(out)  v,
type(fv_grid_type), intent(in), target  gridstruct,
type(domain2d), intent(inout)  fv_domain,
type(fv_grid_bounds_type), intent(in)  bd 
)
private

The subroutine 'cubed_a2d' transforms the wind from the A Grid to the D Grid.

Definition at line 3425 of file external_ic.F90.

◆ d2a3d()

subroutine external_ic_mod::d2a3d ( real, dimension(im,jm,km), intent(in)  u,
real, dimension(im,jm,km), intent(in)  v,
real, dimension(im,jm,km), intent(out)  ua,
real, dimension(im,jm,km), intent(out)  va,
integer, intent(in)  im,
integer, intent(in)  jm,
integer, intent(in)  km,
real, dimension(im), intent(in)  lon 
)

Definition at line 3609 of file external_ic.F90.

◆ fillq()

subroutine external_ic_mod::fillq ( integer, intent(in)  im,
integer, intent(in)  km,
integer, intent(in)  nq,
real, dimension(im,km,nq), intent(inout)  q,
real, dimension(im,km), intent(in)  dp 
)
private
Parameters
[in]imNo. of longitudes
[in]kmNo. of levels
[in]nqTotal number of tracers
[in]dppressure thickness
[in,out]qtracer mixing ratio

Definition at line 3782 of file external_ic.F90.

◆ get_cubed_sphere_terrain()

subroutine, public external_ic_mod::get_cubed_sphere_terrain ( type(fv_atmos_type), intent(inout), target  Atm,
type(domain2d), intent(inout)  fv_domain 
)

Definition at line 377 of file external_ic.F90.

◆ get_ecmwf_ic()

subroutine external_ic_mod::get_ecmwf_ic ( type(fv_atmos_type), intent(inout)  Atm,
type(domain2d), intent(inout)  fv_domain 
)
private

The subroutine 'get_ecmwf_ic' reads in initial conditions from ECMWF analyses (EXPERIMENTAL: contact Jan-Huey Chen jan-h.nosp@m.uey..nosp@m.chen@.nosp@m.noaa.nosp@m..gov for support)

Authors
Jan-Huey Chen, Xi Chen, Shian-Jiann Lin

Definition at line 1393 of file external_ic.F90.

◆ get_external_ic()

subroutine, public external_ic_mod::get_external_ic ( type(fv_atmos_type), intent(inout), target  Atm,
type(domain2d), intent(inout)  fv_domain,
logical, intent(in)  cold_start,
real, intent(in)  dt_atmos 
)

Definition at line 213 of file external_ic.F90.

◆ get_fv_ic()

subroutine external_ic_mod::get_fv_ic ( type(fv_atmos_type), intent(inout)  Atm,
type(domain2d), intent(inout)  fv_domain,
integer, intent(in)  nq 
)
private

Definition at line 2131 of file external_ic.F90.

◆ get_ncep_ic()

subroutine external_ic_mod::get_ncep_ic ( type(fv_atmos_type), intent(inout)  Atm,
type(domain2d), intent(inout)  fv_domain,
integer, intent(in)  nq 
)

The subroutine 'get_ncep_ic' reads in the specified NCEP analysis or reanalysis dataset.

Definition at line 933 of file external_ic.F90.

◆ get_nggps_ic()

subroutine external_ic_mod::get_nggps_ic ( type(fv_atmos_type), intent(inout)  Atm,
type(domain2d), intent(inout)  fv_domain,
real, intent(in)  dt_atmos 
)
private

The subroutine 'get_nggps_ic' reads in data after it has been preprocessed with NCEP/EMC orography maker and 'global_chgres', and has been horiztontally interpolated to the current cubed-sphere grid.

Parameters
[in,out]atmvariables read in from 'gfs_ctrl.nc' VCOORD - level information maps to 'ak & bk' variables read in from 'sfc_data.nc' land_frac - land-sea-ice mask (L:0 / S:1) maps to 'oro' TSEA - surface skin temperature (k) maps to 'ts' variables read in from 'gfs_data.nc' ZH - GFS grid height at edges (m) PS - surface pressure (Pa) U_W - D-grid west face tangential wind component (m/s) V_W - D-grid west face normal wind component (m/s) U_S - D-grid south face tangential wind component (m/s) V_S - D-grid south face normal wind component (m/s) OMGA- vertical velocity 'omega' (Pa/s) Q - prognostic tracer fields Namelist variables filtered_terrain - use orography maker filtered terrain mapping

Definition at line 445 of file external_ic.F90.

◆ get_staggered_grid()

subroutine external_ic_mod::get_staggered_grid ( 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+1,jsd:jed+1,2), intent(in)  pt_b,
real, dimension(isd:ied+1,jsd:jed ,2), intent(out)  pt_c,
real, dimension(isd:ied ,jsd:jed+1,2), intent(out)  pt_d 
)
private

Definition at line 3859 of file external_ic.F90.

◆ mp_auto_conversion()

subroutine external_ic_mod::mp_auto_conversion ( real, intent(inout)  ql,
real, intent(inout)  qr,
real, intent(inout)  qi,
real, intent(inout)  qs 
)
private

Definition at line 2945 of file external_ic.F90.

◆ ncep2fms()

subroutine external_ic_mod::ncep2fms ( integer, intent(in)  im,
integer, intent(in)  jm,
real, dimension(im), intent(in)  lon,
real, dimension(jm), intent(in)  lat,
real(kind=4), dimension(im,jm), intent(in)  wk 
)
private

Definition at line 2276 of file external_ic.F90.

◆ p_maxmin()

subroutine external_ic_mod::p_maxmin ( character(len=*), intent(in)  qname,
real, dimension(is:ie, js:je, km), intent(in)  q,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  km,
real, intent(in)  fac 
)
private

Definition at line 3755 of file external_ic.F90.

◆ pmaxmin()

subroutine external_ic_mod::pmaxmin ( character(len=*)  qname,
real, dimension(im,jm)  a,
integer, intent(in)  im,
integer, intent(in)  jm,
real  fac 
)
private

Definition at line 3684 of file external_ic.F90.

◆ pmaxmn()

subroutine external_ic_mod::pmaxmn ( character(len=*), intent(in)  qname,
real, dimension(is:ie, js:je, km), intent(in)  q,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  km,
real, intent(in)  fac,
real(kind=r_grid), dimension(is-3:ie+3, js-3:je+3), intent(in)  area,
type(domain2d), intent(inout)  domain 
)
private

Definition at line 3719 of file external_ic.F90.

◆ remap_coef()

subroutine external_ic_mod::remap_coef ( 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,
integer, intent(in)  im,
integer, intent(in)  jm,
real, dimension(im), intent(in)  lon,
real, dimension(jm), intent(in)  lat,
integer, dimension(is:ie,js:je), intent(out)  id1,
integer, dimension(is:ie,js:je), intent(out)  id2,
integer, dimension(is:ie,js:je), intent(out)  jdc,
real, dimension(is:ie,js:je,4), intent(out)  s2c,
real, dimension(isd:ied,jsd:jed,2), intent(in)  agrid 
)
private

Definition at line 2368 of file external_ic.F90.

◆ remap_dwinds()

subroutine, public external_ic_mod::remap_dwinds ( integer, intent(in)  km,
integer, intent(in)  npz,
real, dimension(km+1), intent(in)  ak0,
real, dimension(km+1), intent(in)  bk0,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je), intent(in)  psc,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je+1,km), intent(in)  ud,
real, dimension(atm%bd%is:atm%bd%ie+1,atm%bd%js:atm%bd%je,km), intent(in)  vd,
type(fv_atmos_type), intent(inout)  Atm 
)

Definition at line 2964 of file external_ic.F90.

◆ remap_scalar()

subroutine, public external_ic_mod::remap_scalar ( type(fv_atmos_type), intent(inout)  Atm,
integer, intent(in)  km,
integer, intent(in)  npz,
integer, intent(in)  ncnst,
real, dimension(km+1), intent(in)  ak0,
real, dimension(km+1), intent(in)  bk0,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je), intent(in)  psc,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km,ncnst), intent(in)  qa,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km+1), intent(in)  zh,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km), intent(in), optional  omga,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km), intent(in), optional  t_in 
)

Definition at line 2447 of file external_ic.F90.

◆ remap_scalar_single()

subroutine external_ic_mod::remap_scalar_single ( type(fv_atmos_type), intent(inout)  Atm,
integer, intent(in)  km,
integer, intent(in)  npz,
real, dimension(km+1), intent(in)  ak0,
real, dimension(km+1), intent(in)  bk0,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je), intent(in)  psc,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km), intent(in)  qa,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km+1), intent(in)  zh,
integer, intent(in)  iq 
)
private

Definition at line 2837 of file external_ic.F90.

◆ remap_winds()

subroutine external_ic_mod::remap_winds ( integer, intent(in)  im,
integer, intent(in)  jm,
integer, intent(in)  km,
integer, intent(in)  npz,
real, dimension(km+1), intent(in)  ak0,
real, dimension(km+1), intent(in)  bk0,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je), intent(in)  psc,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km), intent(in)  ua,
real, dimension(atm%bd%is:atm%bd%ie,atm%bd%js:atm%bd%je,km), intent(in)  va,
type(fv_atmos_type), intent(inout)  Atm 
)
private

Definition at line 3061 of file external_ic.F90.

◆ remap_xyz()

subroutine external_ic_mod::remap_xyz ( integer, intent(in)  im,
integer, intent(in)  jbeg,
integer, intent(in)  jend,
integer, intent(in)  jm,
integer, intent(in)  km,
integer, intent(in)  npz,
integer, intent(in)  nq,
integer, intent(in)  ncnst,
real, dimension(im), intent(in)  lon,
real, dimension(jm), intent(in)  lat,
real, dimension(km+1), intent(in)  ak0,
real, dimension(km+1), intent(in)  bk0,
real, dimension(im,jbeg:jend), intent(in)  ps0,
real, dimension(im,jbeg:jend), intent(in)  gz0,
real, dimension(im,jbeg:jend,km), intent(in)  ua,
real, dimension(im,jbeg:jend,km), intent(in)  va,
real, dimension(im,jbeg:jend,km), intent(in)  ta,
real, dimension(im,jbeg:jend,km,ncnst), intent(in)  qa,
type(fv_atmos_type), intent(inout), target  Atm 
)
private

Definition at line 3138 of file external_ic.F90.

Variable Documentation

◆ cnst_0p20

real(kind=r_grid), parameter external_ic_mod::cnst_0p20 =0.20d0
private

Definition at line 199 of file external_ic.F90.

◆ deg2rad

real, parameter external_ic_mod::deg2rad = pi/180.
private

Definition at line 200 of file external_ic.F90.

◆ source

character (len = 80), public external_ic_mod::source

Definition at line 201 of file external_ic.F90.

◆ source_fv3gfs

character(len=27), parameter external_ic_mod::source_fv3gfs = 'FV3GFS GAUSSIAN NEMSIO FILE'
private

Definition at line 202 of file external_ic.F90.

◆ zvir

real, parameter external_ic_mod::zvir = rvgas/rdgas - 1.
private

Definition at line 198 of file external_ic.F90.