The module 'atmosphere' provides the interface for the Cubed-Sphere FV dynamical core. More...
Functions/Subroutines | |
subroutine, public | atmosphere_init (Time_init, Time, Time_step, Grid_box, area) |
The subroutine 'atmosphere_init' is an API to initialize the FV3 dynamical core, including the grid structures, memory, initial state (self-initialization or restart), and diagnostics. More... | |
subroutine | p_adi (km, ng, ifirst, ilast, jfirst, jlast, ptop, delp, pt, ps, pe, peln, pk, pkz, hydrostatic) |
The subroutine 'p_adi' computes (ps, pk, pe, peln, pkz) given (ptop, delp). More... | |
subroutine, public | atmosphere_dynamics (Time) |
The subroutine 'atmosphere_dynamics' is an API for the main driver of the FV3 dynamical core responsible for executing a "dynamics" step. More... | |
subroutine, public | atmosphere_end (Time, Grid_box) |
The subroutine 'atmosphere_end' is an API for the termination of the FV3 dynamical core responsible for writing out a restart and final diagnostic state. More... | |
subroutine, public | atmosphere_restart (timestamp) |
The subroutine 'atmosphere_restart' is an API to save restart information at a given timestamp. This API is used to provide intermediate restart capability to the atmospheric driver. More... | |
subroutine, public | atmosphere_resolution (i_size, j_size, global) |
The subroutine 'atmospehre_resolution' is an API to return the local extents of the current MPI-rank or the global extents of the current cubed-sphere tile. More... | |
subroutine, public | atmosphere_pref (p_ref) |
The subroutine 'atmosphere_pref' is an API to return the reference pressure. More... | |
subroutine, public | atmosphere_control_data (i1, i2, j1, j2, kt, p_hydro, hydro, tile_num) |
subroutine, public | atmosphere_grid_ctr (lon, lat) |
The subroutine 'atmosphere_grid_ctr' is an API that returns the longitude and latitude cell centers of the current MPI-rank. More... | |
subroutine, public | atmosphere_grid_bdry (blon, blat, global) |
The subroutine 'atmosphere_grid_bdry' is an API to returns the longitude and latitude finite volume edges (grid box) for the current MPI-rank. More... | |
subroutine, public | set_atmosphere_pelist () |
subroutine, public | atmosphere_domain (fv_domain, layout, regional, nested, pelist) |
The subroutine 'atmosphere_domain' is an API to return the "domain2d" variable associated with the coupling grid and the decomposition for the current cubed-sphere tile. Coupling is done using the mass/temperature grid with no halos. More... | |
subroutine, public | atmosphere_diag_axes (axes) |
The subroutine 'atmosphere_diag_axes' is an API to return the axis indices for the atmospheric (mass) grid. More... | |
subroutine, public | atmosphere_etalvls (ak, bk, flip) |
The subroutine 'atmosphere_etalvls' is an API to return the ak/bk pairs used to compute the eta or pressure levels. By default, the vertical dimension assumes the standard FV3 convention of TOA (k=1) to Surface (k=npz). More... | |
subroutine, public | atmosphere_hgt (hgt, position, relative, flip) |
The subroutine 'atmosphere_hgt' is an API to return the height coordinate. By default, the vertical dimension assumes the standard FV3 convention of TOA (k=1) to Surface (k=npz). There are options to choose location [level (interface) or layer] and absolute vs. relative height (zero-based). More... | |
subroutine, public | atmosphere_scalar_field_halo (data, halo, isize, jsize, ksize, data_p) |
The subroutine 'atmosphere_scalar_field_halo' is an API to return halo information of the current MPI_rank for an input scalar field. Up to three point haloes can be returned by this API which includes special handling for the cubed-sphere tile corners. Output will be in (i,j,k) while input can be in (i,j,k) or horizontally-packed form (ix,k). More... | |
subroutine, public | atmosphere_diss_est (npass) |
subroutine, public | atmosphere_nggps_diag (Time, init, ltavg, avg_max_length) |
The subroutine 'atmosphere_nggps_diag' is an API to trigger output of diagnostics in NCEP/EMC format. More... | |
subroutine | get_bottom_mass (t_bot, tr_bot, p_bot, z_bot, p_surf, slp) |
subroutine | get_bottom_wind (u_bot, v_bot) |
subroutine, public | atmosphere_get_bottom_layer (Atm_block, DYCORE_Data) |
The subroutine 'atmosphere_get_bottom_layer' is an API to provide the bottom layer quantities needed for coupling with other external components. The data will be provided in a DDT which is a packed, blocked structure. More... | |
subroutine | get_stock_pe (index, value) |
subroutine, public | atmosphere_state_update (Time, IPD_Data, IAU_Data, Atm_block, flip_vc) |
The subroutine 'atmosphere_state_update' is an API to apply tendencies and compute a consistent prognostic state. More... | |
subroutine | adiabatic_init (zvir, nudge_dz, time) |
The subroutine 'adiabatic_init' is an optional step during initialization to pre-condition a solution via backward-forward steps with capability for various nudgings. More... | |
subroutine, public | atmos_phys_driver_statein (IPD_Data, Atm_block, flip_vc) |
The subroutine 'atmos_phys_driver_statein' is an API to populate the IPD_DataStatein container with the prognostic state at the end of the advection (dynamics) step of integration. Performs a mass adjustment to be consistent with the GFS physics and if necessary, converts quantities to hydrostatic representation. More... | |
Variables | |
character(len=20) | mod_name = 'fvGFS/atmosphere_mod' |
type(time_type) | time_step_atmos |
real | dt_atmos |
real | zvir |
integer | npx |
integer | npy |
integer | npz |
integer | ncnst |
integer | pnats |
integer | isc |
integer | iec |
integer | jsc |
integer | jec |
integer | isd |
integer | ied |
integer | jsd |
integer | jed |
integer | nq |
integer | sec |
integer | seconds |
integer | days |
integer | id_dynam |
integer | id_fv_diag |
integer | id_subgridz |
logical | cold_start = .false. |
integer, dimension(:), allocatable | id_tracerdt_dyn |
integer | sphum |
integer | liq_wat |
integer | rainwat |
integer | ice_wat |
integer | snowwat |
integer | graupel |
integer, public | mytile = 1 |
integer | p_split = 1 |
integer, dimension(:), allocatable | pelist |
logical, dimension(:), allocatable | grids_on_this_pe |
type(fv_atmos_type), dimension(:), allocatable, target, public | atm |
integer | id_udt_dyn |
integer | id_vdt_dyn |
real, parameter | w0_big = 60. |
real, dimension(:,:,:), allocatable | u_dt |
real, dimension(:,:,:), allocatable | v_dt |
real, dimension(:,:,:), allocatable | t_dt |
real, dimension(:,:), allocatable | pref |
real, dimension(:), allocatable | dum1d |
logical | first_diag = .true. |
The module 'atmosphere' provides the interface for the Cubed-Sphere FV dynamical core.
|
private |
The subroutine 'adiabatic_init' is an optional step during initialization to pre-condition a solution via backward-forward steps with capability for various nudgings.
Definition at line 1609 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmos_phys_driver_statein | ( | type (ipd_data_type), dimension(:), intent(inout) | IPD_Data, |
type (block_control_type), intent(in) | Atm_block, | ||
logical, intent(in) | flip_vc | ||
) |
The subroutine 'atmos_phys_driver_statein' is an API to populate the IPD_DataStatein container with the prognostic state at the end of the advection (dynamics) step of integration. Performs a mass adjustment to be consistent with the GFS physics and if necessary, converts quantities to hydrostatic representation.
Definition at line 1897 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_control_data | ( | integer, intent(out) | i1, |
integer, intent(out) | i2, | ||
integer, intent(out) | j1, | ||
integer, intent(out) | j2, | ||
integer, intent(out) | kt, | ||
logical, intent(out), optional | p_hydro, | ||
logical, intent(out), optional | hydro, | ||
integer, intent(out), optional | tile_num | ||
) |
Definition at line 809 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_diag_axes | ( | integer, dimension (:), intent(out) | axes | ) |
The subroutine 'atmosphere_diag_axes' is an API to return the axis indices for the atmospheric (mass) grid.
Definition at line 896 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_diss_est | ( | integer, intent(in) | npass | ) |
Definition at line 1071 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_domain | ( | type(domain2d), intent(out) | fv_domain, |
integer, dimension(2), intent(out) | layout, | ||
logical, intent(out) | regional, | ||
logical, intent(out) | nested, | ||
integer, dimension(:), intent(out), pointer | pelist | ||
) |
The subroutine 'atmosphere_domain' is an API to return the "domain2d" variable associated with the coupling grid and the decomposition for the current cubed-sphere tile. Coupling is done using the mass/temperature grid with no halos.
Definition at line 875 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_dynamics | ( | type(time_type), intent(in) | Time | ) |
The subroutine 'atmosphere_dynamics' is an API for the main driver of the FV3 dynamical core responsible for executing a "dynamics" step.
Definition at line 604 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_end | ( | type (time_type), intent(in) | Time, |
type(grid_box_type), intent(inout) | Grid_box | ||
) |
The subroutine 'atmosphere_end' is an API for the termination of the FV3 dynamical core responsible for writing out a restart and final diagnostic state.
Definition at line 716 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_etalvls | ( | real(kind=kind_phys), dimension(:), intent(inout), pointer | ak, |
real(kind=kind_phys), dimension(:), intent(inout), pointer | bk, | ||
logical, intent(in) | flip | ||
) |
The subroutine 'atmosphere_etalvls' is an API to return the ak/bk pairs used to compute the eta or pressure levels. By default, the vertical dimension assumes the standard FV3 convention of TOA (k=1) to Surface (k=npz).
[in] | flip | control vertical index flipping |
Definition at line 913 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_get_bottom_layer | ( | type(block_control_type), intent(in) | Atm_block, |
type(dycore_data_type), dimension(:), intent(inout) | DYCORE_Data | ||
) |
The subroutine 'atmosphere_get_bottom_layer' is an API to provide the bottom layer quantities needed for coupling with other external components. The data will be provided in a DDT which is a packed, blocked structure.
Definition at line 1249 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_grid_bdry | ( | real, dimension(:,:), intent(out) | blon, |
real, dimension(:,:), intent(out) | blat, | ||
logical, intent(in), optional | global | ||
) |
The subroutine 'atmosphere_grid_bdry' is an API to returns the longitude and latitude finite volume edges (grid box) for the current MPI-rank.
[out] | blat | Unit: radian |
Definition at line 845 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_grid_ctr | ( | real(kind=kind_phys), dimension(:,:), intent(out) | lon, |
real(kind=kind_phys), dimension(:,:), intent(out) | lat | ||
) |
The subroutine 'atmosphere_grid_ctr' is an API that returns the longitude and latitude cell centers of the current MPI-rank.
[out] | lat | Unit: radian |
Definition at line 828 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_hgt | ( | real(kind=kind_phys), dimension(:,:,:), intent(inout), pointer | hgt, |
character(len=5), intent(in) | position, | ||
logical, intent(in) | relative, | ||
logical, intent(in) | flip | ||
) |
The subroutine 'atmosphere_hgt' is an API to return the height coordinate. By default, the vertical dimension assumes the standard FV3 convention of TOA (k=1) to Surface (k=npz). There are options to choose location [level (interface) or layer] and absolute vs. relative height (zero-based).
[in] | position | level (interface) vs layer |
[in] | relative | control absolute vs. relative height |
[in] | flip | control vertical index flipping |
Definition at line 935 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_init | ( | type (time_type), intent(in) | Time_init, |
type (time_type), intent(in) | Time, | ||
type (time_type), intent(in) | Time_step, | ||
type(grid_box_type), intent(inout) | Grid_box, | ||
real(kind=kind_phys), dimension(:,:), intent(inout), pointer | area | ||
) |
The subroutine 'atmosphere_init' is an API to initialize the FV3 dynamical core, including the grid structures, memory, initial state (self-initialization or restart), and diagnostics.
Definition at line 271 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_nggps_diag | ( | type(time_type), intent(in) | Time, |
logical, intent(in), optional | init, | ||
logical, intent(in), optional | ltavg, | ||
real, intent(in), optional | avg_max_length | ||
) |
The subroutine 'atmosphere_nggps_diag' is an API to trigger output of diagnostics in NCEP/EMC format.
If register is present and set to .true., will make the initialization call. Can output 3D prognostic fields via either NCEP 'write_component' or GFDL/FMS 'diag_manager'.
Definition at line 1101 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_pref | ( | real, dimension(:,:), intent(inout) | p_ref | ) |
The subroutine 'atmosphere_pref' is an API to return the reference pressure.
Definition at line 801 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_resolution | ( | integer, intent(out) | i_size, |
integer, intent(out) | j_size, | ||
logical, intent(in), optional | global | ||
) |
The subroutine 'atmospehre_resolution' is an API to return the local extents of the current MPI-rank or the global extents of the current cubed-sphere tile.
Definition at line 781 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_restart | ( | character(len=*), intent(in) | timestamp | ) |
The subroutine 'atmosphere_restart' is an API to save restart information at a given timestamp. This API is used to provide intermediate restart capability to the atmospheric driver.
Definition at line 770 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_scalar_field_halo | ( | real(kind=kind_phys), dimension(1:isize,1:jsize,ksize), intent(inout) | data, |
integer, intent(in) | halo, | ||
integer, intent(in) | isize, | ||
integer, intent(in) | jsize, | ||
integer, intent(in) | ksize, | ||
real(kind=kind_phys), dimension(:,:), intent(in), optional | data_p | ||
) |
The subroutine 'atmosphere_scalar_field_halo' is an API to return halo information of the current MPI_rank for an input scalar field. Up to three point haloes can be returned by this API which includes special handling for the cubed-sphere tile corners. Output will be in (i,j,k) while input can be in (i,j,k) or horizontally-packed form (ix,k).
[in,out] | data | output array to return the field with halo (i,j,k) optionally input for field already in (i,j,k) form sized to include the halo of the field (+ 2*halo) |
[in] | halo | size of the halo (must be less than 3) |
[in] | isize | horizontal resolution in i-dir with haloes |
[in] | jsize | horizontal resolution in j-dir with haloes |
[in] | ksize | vertical resolution |
[in] | data_p | optional input field in packed format (ix,k) |
Definition at line 995 of file atmosphere.F90.
subroutine, public atmosphere_mod::atmosphere_state_update | ( | type(time_type), intent(in) | Time, |
type(ipd_data_type), dimension(:), intent(in) | IPD_Data, | ||
type(iau_external_data_type), intent(in) | IAU_Data, | ||
type(block_control_type), intent(in) | Atm_block, | ||
logical, intent(in) | flip_vc | ||
) |
The subroutine 'atmosphere_state_update' is an API to apply tendencies and compute a consistent prognostic state.
Definition at line 1387 of file atmosphere.F90.
|
private |
Definition at line 1163 of file atmosphere.F90.
|
private |
Definition at line 1227 of file atmosphere.F90.
|
private |
Definition at line 1330 of file atmosphere.F90.
|
private |
The subroutine 'p_adi' computes (ps, pk, pe, peln, pkz) given (ptop, delp).
[in] | ilast | Longitude strip |
[in] | jlast | Latitude strip |
[out] | pe | Ghosted Edge pressure |
[out] | peln | Edge pressure |
Definition at line 547 of file atmosphere.F90.
subroutine, public atmosphere_mod::set_atmosphere_pelist | ( | ) |
Definition at line 866 of file atmosphere.F90.
type(fv_atmos_type), dimension(:), allocatable, target, public atmosphere_mod::atm |
Definition at line 252 of file atmosphere.F90.
|
private |
Definition at line 240 of file atmosphere.F90.
|
private |
Definition at line 238 of file atmosphere.F90.
|
private |
Definition at line 232 of file atmosphere.F90.
|
private |
Definition at line 260 of file atmosphere.F90.
|
private |
Definition at line 262 of file atmosphere.F90.
|
private |
Definition at line 243 of file atmosphere.F90.
|
private |
Definition at line 251 of file atmosphere.F90.
|
private |
Definition at line 243 of file atmosphere.F90.
|
private |
Definition at line 239 of file atmosphere.F90.
|
private |
Definition at line 239 of file atmosphere.F90.
|
private |
Definition at line 239 of file atmosphere.F90.
|
private |
Definition at line 242 of file atmosphere.F90.
|
private |
Definition at line 254 of file atmosphere.F90.
|
private |
Definition at line 254 of file atmosphere.F90.
|
private |
Definition at line 235 of file atmosphere.F90.
|
private |
Definition at line 236 of file atmosphere.F90.
|
private |
Definition at line 235 of file atmosphere.F90.
|
private |
Definition at line 236 of file atmosphere.F90.
|
private |
Definition at line 235 of file atmosphere.F90.
|
private |
Definition at line 236 of file atmosphere.F90.
|
private |
Definition at line 235 of file atmosphere.F90.
|
private |
Definition at line 236 of file atmosphere.F90.
|
private |
Definition at line 243 of file atmosphere.F90.
|
private |
Definition at line 225 of file atmosphere.F90.
integer, public atmosphere_mod::mytile = 1 |
Definition at line 248 of file atmosphere.F90.
|
private |
Definition at line 234 of file atmosphere.F90.
|
private |
Definition at line 234 of file atmosphere.F90.
|
private |
Definition at line 234 of file atmosphere.F90.
|
private |
Definition at line 234 of file atmosphere.F90.
|
private |
Definition at line 237 of file atmosphere.F90.
|
private |
Definition at line 249 of file atmosphere.F90.
|
private |
Definition at line 250 of file atmosphere.F90.
|
private |
Definition at line 234 of file atmosphere.F90.
|
private |
Definition at line 260 of file atmosphere.F90.
|
private |
Definition at line 243 of file atmosphere.F90.
|
private |
Definition at line 238 of file atmosphere.F90.
|
private |
Definition at line 238 of file atmosphere.F90.
|
private |
Definition at line 243 of file atmosphere.F90.
|
private |
Definition at line 243 of file atmosphere.F90.
|
private |
Definition at line 259 of file atmosphere.F90.
|
private |
Definition at line 228 of file atmosphere.F90.
|
private |
Definition at line 259 of file atmosphere.F90.
|
private |
Definition at line 259 of file atmosphere.F90.
|
private |
Definition at line 256 of file atmosphere.F90.
|
private |
Definition at line 233 of file atmosphere.F90.