Provides high level interfaces for calling the entire
FMS atmospheric physics package.
physics_driver_mod accesses the model's physics modules and
obtains tendencies and boundary fluxes due to the physical
processes that drive atmospheric time tendencies and supply
boundary forcing to the surface models.
time_manager_mod
field_manager_mod
tracer_manager_mod
atmos_tracer_driver_mod
fms_mod
fms_io_mod
rad_utilities_mod
moist_processes_mod
vert_turb_driver_mod
vert_diff_driver_mod
radiation_driver_mod
cloud_spec_mod
aerosol_mod
radiative_gases_mod
damping_driver_mod
Name | Type | Value | Units | Description |
---|---|---|---|---|
surf_diff_type | surf_diff_type, dimension | Defined in vert_diff_driver_mod, republished here. See vert_diff_mod for details. |
call physics_driver_init (Time, lonb, latb, axes, pref, & trs, Surf_diff, phalf, mask, kbot )
Time | current time [time_type] |
pref | reference prssure profiles [real] |
latb | array of model latitudes at cell boundaries [radians] [real] |
lonb | array of model longitudes at cell boundaries [radians] [real] |
axes | axis indices, (/x,y,pf,ph/)
(returned from diag axis manager) [integer] |
phalf | pressure at model interface levels [real] |
kbot | OPTIONAL: present when running eta vertical coordinate,
index of lowest model level above ground [integer] |
mask | OPTIONAL: present when running eta vertical coordinate,
mask to remove points below ground [real] |
trs | atmospheric tracer fields [real] |
Surf_diff | surface diffusion derived type [surf_diff_type] |
call physics_driver_down (is, ie, js, je, & Time_prev, Time, Time_next, & lat, lon, area, & p_half, p_full, z_half, z_full, & u, v, t, q, r, um, vm, tm, qm, rm, & frac_land, rough_mom, & albedo, t_surf_rad, & u_star, b_star, q_star, & dtau_du, dtau_dv, tau_x, tau_y, & udt, vdt, tdt, qdt, rdt, & flux_sw, flux_lw, coszen, gust, & Surf_diff, gavg_rrv, & mask, kbot
Time_prev | previous time, for variable um, vm, tm, qm, rm [time_type] |
Time | current time [time_type] |
Time_next | next time, used for diagnostics [time_type] |
lat | array of model latitudes at model points [radians] [real] |
lon | array of model longitudes at model points [radians] [real] |
area | grid box area - current not used [real] |
p_half | pressure at model interface levels (offset from t,q,u,v,r) [real] |
p_full | pressure at full levels |
z_half | height at model interface levels [real] |
z_full | height at full levels |
u | zonal wind at current time step [real] |
v | meridional wind at current time step [real] |
t | temperature at current time step [real] |
q | specific humidity at current time step [real] |
r | multiple 3d tracer fields at current time step |
um | zonal wind at previous time step [real] |
vm | meridional wind at previous time step [real] |
tm | temperature at previous time step [real] |
qm | specific humidity at previous time step [real] |
rm | multiple 3d tracer fields at previous time step |
frac_land | fraction of land coverage in a model grid point [real] |
rough_mom | boundary layer roughness [real] |
albedo | surface albedo [real] |
t_surf_rad | surface radiative temperature [real] |
u_star | boundary layer wind speed (frictional speed) [real] |
b_star | ??? [real] |
q_star | boundary layer specific humidity [real] |
dtau_du | derivative of zonal surface stress w.r.t zonal wind speed [real] |
dtau_dv | derivative of meridional surface stress w.r.t meridional wind speed [real] |
gavg_rrv | array containing global average of tracer volume mixing ratio [real] |
kbot | OPTIONAL: present when running eta vertical coordinate,
index of lowest model level above ground [integer] |
mask | OPTIONAL: present when running eta vertical coordinate,
mask to remove points below ground [real] |
diff_cum_mom | OPTIONAL: present when do_moist_processes=.false.
cu_mo_trans diffusion coefficients, which are passed through to vert_diff_down.
Should not be present when do_moist_processes=.true., since these
values are passed out from moist_processes. [real] |
moist_convect | OPTIONAL: present when do_moist_processes=.false.
Should not be present when do_moist_processes=.true., since these
values are passed out from moist_processes. [real] |
rd | multiple 3d diagnostic tracer fields [real] |
tau_x | boundary layer meridional component of wind shear [real] |
tau_y | boundary layer zonal component of wind shear [real] |
udt | zonal wind tendency [real] |
vdt | meridional wind tendency [real] |
tdt | temperature tendency [real] |
qdt | moisture tracer tendencies [real] |
rdt | multiple tracer tendencies [real] |
Surf_diff | Surface diffusion [surface_diffusion_type] |
flux_sw | Shortwave flux from radiation package [real] |
flux_lw | Longwave flux from radiation package [real] |
coszen | cosine of zenith angle [real] |
gust |
[real] |
call physics_driver_up (is, ie, js, je, & Time_prev, Time, Time_next, & lat, lon, area, & p_half, p_full, z_half, z_full, & omega, & u, v, t, q, r, um, vm, tm, qm, rm, & frac_land, & udt, vdt, tdt, qdt, rdt, & Surf_diff, & lprec, fprec, gust, & mask, kbot )
Time_prev | previous time, for variable um, vm, tm, qm, rm [time_type] |
Time | current time [time_type] |
Time_next | next time, used for diagnostics [time_type] |
lat | array of model latitudes at model points [radians] [real] |
lon | array of model longitudes at model points [radians] [real] |
area | grid box area - current not used [real] |
p_half | pressure at model interface levels (offset from t,q,u,v,r) [real] |
p_full | pressure at full levels |
z_half | height at model interface levels [real] |
z_full | height at full levels |
omega | Veritical pressure tendency [real] |
u | zonal wind at current time step [real] |
v | meridional wind at current time step [real] |
t | temperature at current time step [real] |
q | specific humidity at current time step [real] |
r | multiple 3d tracer fields at current time step |
um | zonal wind at previous time step [real] |
vm | meridional wind at previous time step [real] |
tm | temperature at previous time step [real] |
qm | specific humidity at previous time step [real] |
rm | multiple 3d tracer fields at previous time step |
frac_land | fraction of land coverage in a model grid point [real] |
kbot | OPTIONAL: present when running eta vertical coordinate,
index of lowest model level above ground [integer] |
mask | OPTIONAL: present when running eta vertical coordinate,
mask to remove points below ground [real] |
udt | zonal wind tendency [real] |
vdt | meridional wind tendency [real] |
tdt | temperature tendency [real] |
qdt | moisture tracer tendencies [real] |
rdt | multiple tracer tendencies [real] |
Surf_diff | Surface diffusion [surface_diffusion_type] |
lprec |
[real] |
fprec |
[real] |
gust |
[real] |
call physics_driver_end (Time)
Time | current time [time_type] |
logical = do_moist_in_phys_up ()
diff_t(:,:,:) = get_diff_t ()
radturbten(:,:,:) = get_radturbten ()
call zero_radturbten ()
call read_restart_file
call read_restart_nc
call check_args (lat, lon, area, p_half, p_full, z_half, z_full,& u, v, t, q, r, um, vm, tm, qm, rm, & udt, vdt, tdt, qdt, rdt, mask, kbot)
lat | array of model latitudes at model points [radians] [real] |
lon | array of model longitudes at model points [radians] [real] |
area | grid box area - current not used [real] |
p_half | pressure at model interface levels (offset from t,q,u,v,r) [real] |
p_full | pressure at full levels |
z_half | height at model interface levels [real] |
z_full | height at full levels |
u | zonal wind at current time step [real] |
v | meridional wind at current time step [real] |
t | temperature at current time step [real] |
q | specific humidity at current time step [real] |
r | multiple 3d tracer fields at current time step |
um | zonal wind at previous time step [real] |
vm | meridional wind at previous time step [real] |
tm | temperature at previous time step [real] |
qm | specific humidity at previous time step [real] |
rm | multiple 3d tracer fields at previous time step |
udt | zonal wind tendency [real] |
vdt | meridional wind tendency [real] |
tdt | temperature tendency [real] |
qdt | moisture tracer tendencies [real] |
rdt | multiple tracer tendencies [real] |
kbot | OPTIONAL: present when running eta vertical coordinate,
index of lowest model level above ground [integer] |
mask | OPTIONAL: present when running eta vertical coordinate,
mask to remove points below ground [real] |
check_dim_2d (data,name,id,jd) result (ierr)
data | array of data to be checked [real] |
name | name associated with array to be checked [character] |
id, jd | expected i and j dimensions [integer] |
check_dim_3d (data,name,id,jd, kd) result (ierr)
data | array of data to be checked [real] |
name | name associated with array to be checked [character] |
id, jd, kd | expected i, j and k dimensions [integer] |
check_dim_4d (data,name,id,jd, kd, nt) result (ierr)
data | array of data to be checked [real] |
name | name associated with array to be checked [character] |
id, jd, kd, nt | expected i, j, k and 4th dimensions [integer] |
Diagnostic fields for module name identifier:
Deal with conservation of total energy?