interface for spherical grid dynamical core and physics for the energy balance model (EBM)
mpp_mod
fms_mod
constants_mod
transforms_mod
time_manager_mod
ebm_diagnostics_mod
astronomy_mod
sat_vapor_pres_mod
mpp_domains_mod
tracer_manager_mod
call atmosphere_init (Time_init, Time_in, Time_step_in, Surf_diff)
Time_init | The base (or initial) time of the experiment. [type(time_type)] |
Time_in | The current time. [type(time_type)] |
Time_step_in | The atmospheric model/physics time step. [type(time_type)] |
Surf_diff | The surface terms for vertical diffusion that are exchanged
with other component models. On input fields have not been
allocated, on output all arrays are allocated. [type(surf_diff_type)] |
call atmosphere_down (Time, frac_land, t_surf, albedo, rough_mom, & u_star, b_star, q_star, dtau_du, dtau_dv, tau_x, tau_y, & gust, coszen, net_surf_sw_down, surf_lw_down, & Surf_diff)
Time | time at the current time level (tau) [type(time_type)] |
frac_land | fraction (0. to 1.) of underlying surface which covered by land [real, dimension(is:ie,js:je)] |
t_surf | surface (skin) temperature (in deg k) [real, dimension(is:ie,js:je)] |
albedo | surface albedo [real, dimension(is:ie,js:je)] |
rough_mom | momentum roughness length (units=m) [real, dimension(is:ie,js:je)] |
u_star | friction velocity [ real, dimension(is:ie,js:je)] |
b_star | buoyancy scale [real, dimension(is:ie,js:je) ] |
q_star | moisture scale [real, dimension(is:ie,js:je) ] |
dtau_du | derivative of zonal wind stress w.r.t. the lowest level wind speed [ real, dimension(is:ie,js:je)] |
dtau_dv | derivative of meridional wind stress w.r.t. the lowest level wind speed [ real, dimension(is:ie,js:je)] |
Surf_diff | Surface diffusion terms computed by the vertical diffusion scheme [type(surf_diff_type)] |
gust | wind gustiness [real, dimension(is:ie,js:je)] |
coszen | cosine of the zenith angle [real, dimension(is:ie,js:je)] |
net_surf_sw_down | net shortwave surface flux (down minus up) (in watts/m**2) [real, dimension(is:ie,js:je)] |
surf_lw_down | downward longwave surface flux (in watts/m**2) [real, dimension(is:ie,js:je)] |
call atmosphere_up (Time, frac_land, Surf_diff, lprec, fprec, gust)
Time | time at the current time level (tau) [type(time_type)] |
frac_land | fraction (0. to 1.) of underlying surface which covered by land [real, dimension(is:ie,js:je)] |
Surf_diff | urface diffusion terms computed by the vertical diffusion scheme [type(surf_diff_type)] |
lprec | liquid precipitation rate (rain) in kg/m2/s [real, dimension(is:ie,js:je)] |
fprec | frozen precipitation rate (snow) in kg/m2/s [real, dimension(is:ie,js:je)] |
gust | wind gustiness [real, dimension(is:ie,js:je)] |
call radiation (Time, t_surf, albedo, coszen, net_surf_sw_down, surf_lw_down)
Time | time at the current time level (tau) [type(time_type)] |
t_surf | surface (skin) temperature (in deg k) [real, dimension(is:ie,js:je)] |
albedo | surface albedo [real, dimension(is:ie,js:je)] |
coszen | cosine of the zenith angle [real, dimension(is:ie,js:je)] |
net_surf_sw_down | net shortwave surface flux (down minus up) (in watts/m**2) [real, dimension(is:ie,js:je)] |
surf_lw_down | downward longwave surface flux (in watts/m**2) [real, dimension(is:ie,js:je)] |
call precipitation (lprec, fprec)
lprec | liquid precipitation rate (rain) in kg/m2/s [real, dimension(is:ie,js:je)] |
fprec | frozen precipitation rate (snow) in kg/m2/s [real, dimension(is:ie,js:je)] |
call diffusion ()
d = diffusivity ()
q = sat_mixing_ratio (t)
q = deriv_sat_mixing_ratio (t)
call get_bottom_mass (t_bot_out, q_bot_out, p_bot, z_bot, p_surf)
t_bot_out | near surface temperature in degrees Kelvin [real] |
q_bot_out | near surface mixing ratio [real] |
p_bot | pressure at which atmos near usrface values are assumed to be defined [real] |
z_bot | height at which atmos near usrface values are assumed to be defined [real] |
p_surf | surface pressure [real] |
call get_bottom_wind (u_bot_out, v_bot_out)
u_bot | near surface zonal wind [real] |
v_bot | near surface meridional wind [real] |
call atmosphere_resolution (num_lon_out, num_lat_out, global)
global | Flag that specifies whether the returned compute domain size is
for the global grid (TRUE) or for the current processor (FALSE). [logical,optional] |
num_lon_out | The number of longitude points in the compute domain. [integer] |
num_lat_out | The number of latitude points in the compute domain. [integer] |
call get_atmosphere_axes (axes_out)
axes_out | The axis identifiers for the atmospheric grids.
The size of axes must be least 1 but not greater than 4.
The axes are returned in the order (/ x, y, p_full, p_half /) [integer,dimension(:)] |
call atmosphere_boundary (lon_boundaries, lat_boundaries, global)
global | Flag that specifies whether the returned grid box edges are
for the global grid (TRUE) or for the current processor (FALSE). [logical, optional] |
lon_boundaries | The west-to-east longitude edges of grid boxes (in radians). [real,dimension(:)] |
lat_boundaries | The south-to-north latitude edges of grid boxes (in radians). [real,dimension(:)] |
call atmosphere_domain (domain)
domain | The domain2d variable describing the grid used for coupling.
For the B-grid, this corresponds to the temperature grid
without halos. [type (domain2d)] |
call atmosphere_end (Time)
Time | time at the current time level (tau) [type(time_type)] |
type surf_diff_type real, pointer, dimension(:,:) :: dtmass => NULL() ! dt/mass, where dt = atmospheric time step (sec) ! mass = mass of lowest atmospheric layer (Kg/m2) real, pointer, dimension(:,:) :: dflux_t => NULL() ! derivative of the temperature flux at the top of the lowest ! atmospheric layer with respect to the temperature ! of that layer (J/(m2 K)) real, pointer, dimension(:,:,:) :: dflux_tr => NULL() ! derivative of the flux of specific humidity ! at the top of the lowest atmospheric layer with respect to ! the specific humidity of that layer (--/(m2 K)) real, pointer, dimension(:,:) :: delta_t => NULL() ! the increment in temperature in the lowest atmospheric ! layer (((i+1)-(i-1) if atmos model is leapfrog) (K) ! (defined in gcm_vert_diff_down as the increment computed up ! to this point in model, including effect of vertical ! diffusive flux at top of lowest model level, presumed ! to be modified to include effects of surface fluxes ! outside of this module, then used to start upward ! tridiagonal sweep, real, pointer, dimension(:,:,:):: delta_tr => NULL() ! similarly for the increment in specific humidity ! (non-dimensional = Kg/Kg) real, pointer, dimension(:,:) :: delta_u => NULL() real, pointer, dimension(:,:) :: delta_v => NULL() end type surf_diff_type |