This code provides some utility routines for atmospheric tracers in the FMS framework.
fms_mod
time_manager_mod
diag_manager_mod
tracer_manager_mod
field_manager_mod
horiz_interp_mod
monin_obukhov_mod
constants_mod
interpolator_mod
call atmos_tracer_utilities_init (lonb,latb, mass_axes, Time)
lonb | The longitudes for the local domain. [real, dimension(:)] |
latb | The latitudes for the local domain. [real, dimension(:)] |
mass_axes | The axes relating to the tracer array. [integer, dimension(3)] |
Time | Model time. [type(time_type)] |
call dry_deposition ( n, is, js, u, v, T, pwt, pfull, dz, u_star, landmask, dsinku, tracer, Time, drydep_data)
R = Ra + Rb resisa = aerodynamic resistance resisb = surface resistance (laminar layer + uptake) = 5/u* [s/cm] for neutral stability Vd = 1/RFor the fixed dry deposition velocity, there is no change in the deposition velocity but the variation of the depth of the surface layer implies that there is variation in the amount deposited.
"dry_deposition","wind_driven","surfr=XXX" where XXX is the total resistance defined above. "dry_deposition","fixed","land=XXX, sea=YYY" where XXX is the dry deposition velocity (m/s) over land and YYY is the dry deposition velocity (m/s) over sea. "dry_deposition","file","FILENAME.NC" where FILENAME.NC is the NetCDF file name.
n | The tracer number. [integer] |
is, js | Start indices for array (computational indices). [integer] |
u | U wind field. [real, dimension(:,:)] |
v | V wind field. [real, dimension(:,:)] |
T | Temperature. [real, dimension(:,:)] |
pwt | Pressure differential of half levels. [real, dimension(:,:)] |
pfull | Full pressure levels. [real, dimension(:,:)] |
u_star | Friction velocity. [real, dimension(:,:)] |
landmask | Land - sea mask. [logical] |
drydep_data | Dry deposition data interpolated from input file. [interpolate_type] |
dsinku | The amount of tracer in the surface layer which is dry deposited per second. [real, dimension(:,:)] |
call wet_deposition ( n, T, pfull, phalf, zfull, zhalf, & rain, snow, qdt, cloud, rain3d, snow3d, & tracer, tracer_dt, Time, cloud_param, is, js, dt )
"wet_deposition","henry","henry=XXX, dependence=YYY" where XXX is the Henry's constant for the tracer in question and YYY is the temperature dependence of the Henry's Law constant. "wet_deposition","fraction","lslwc=XXX, convlwc=YYY" where XXX is the liquid water content of a standard large scale cloud and YYY is the liquid water content of a standard convective cloud.
n | Tracer number [integer] |
is, js | start indices for array (computational indices) [integer] |
T | Temperature [real, dimension(:,:,:)] |
pfull | Full level pressure field (Pa) [real, dimension(:,:,:)] |
phalf | Half level pressure field (Pa) [real, dimension(:,:,:)] |
zfull | Full level height field (m) [real, dimension(:,:,:)] |
zhalf | Half level height field (m) [real, dimension(:,:,:)] |
rain | Precipitation in the form of rain [real, dimension(:,:)] |
snow | Precipitation in the form of snow [real, dimension(:,:)] |
qdt | The tendency of the specific humidity (+ condenstate) due to the cloud parametrization (kg/kg/s) [real, dimension(:,:,:)] |
cloud | Cloud amount (liquid + ice) (kg/kg) [real, dimension(:,:,:)] |
rain3d | Precipitation in the form of rain (kg/m2/s) [real, dimension(:,:,:)] |
snow3d | Precipitation in the form of snow (kg/m2/s) [real, dimension(:,:,:)] |
tracer | The tracer field [real, dimension(:,:,:)] |
Time | The time structure for submitting wet deposition as a diagnostic [type(time_type)] |
cloud_param | Is this a convective (convect) or large scale (lscale) cloud parametrization? [character] |
dt | The model timestep (in seconds) [real] |
tracer_dt | The tendency of the tracer field due to wet deposition [real, dimension(:,:,:)] |
call get_wetdep_param (text_in_scheme, text_in_param, scheme,& henry_constant, henry_temp, & frac_in_cloud, alpha_r, alpha_s)
text_in_scheme | Text read from the tracer table which provides information on which
wet deposition scheme to use. [character] |
text_in_param | Parameters associated with the wet deposition scheme. These will be
parsed in this routine. [character] |
scheme | Wet deposition scheme to use.
Choices are: None, Fraction, Henry, Henry_below, Aerosol, Aerosol_below [character] |
henry_constant | Henry's Law constant for the tracer (see wet_deposition for explanation of Henry's Law) [real] |
henry_temp | The temperature dependence of the Henry's Law constant. [real] |
call interp_emiss (global_source, start_lon, start_lat, & lon_resol, lat_resol, data_out)
global_source | Global emission field. [real, dimension(:,:)] |
start_lon | Longitude of starting point of emission field
(in radians). This is the westernmost boundary of the
global field. [real] |
start_lat | Latitude of starting point of emission field
(in radians). This is the southern boundary of the
global field. [real] |
lon_resol | Longitudinal resolution of the emission data (in radians). [real] |
lat_resol | Latitudinal resolution of the emission data (in radians). [real] |
data_out | Interpolated emission field on the local PE. [real, dimension(:,:)] |