Driver for the atmospheric model, contains routines to advance the atmospheric model state by one time step.
mpp_mod
mpp_domains_mod
fms_mod
fms_io_mod
time_manager_mod
field_manager_mod
tracer_manager_mod
diag_integral_mod
atmosphere_mod
coupler_types_mod
call update_atmos_model_down ( Surface_boundary, Atmos )
Surface_boundary | Derived-type variable that contains quantities going from land+ice to atmos. [type(land_ice_atmos_boundary_type)] |
Atmos | Derived-type variable that contains fields needed by the flux exchange module.
These fields describe the atmospheric grid and are needed to
compute/exchange fluxes with other component models. All fields in this
variable type are allocated for the global grid (without halo regions). [type(atmos_data_type)] |
call update_atmos_model_up ( Surface_boundary, Atmos )
Surface_boundary | Derived-type variable that contains quantities going from land+ice to atmos. [type(land_ice_atmos_boundary_type)] |
Atmos | Derived-type variable that contains fields needed by the flux exchange module.
These fields describe the atmospheric grid and are needed to
compute/exchange fluxes with other component models. All fields in this
variable type are allocated for the global grid (without halo regions). [type(atmos_data_type)] |
call atmos_model_init (Atmos, Time_init, Time, Time_step)
Time_init | The base (or initial) time of the experiment. [type(time_type)] |
Time | The current time. [type(time_type)] |
Time_step | The atmospheric model/physics time step. [type(time_type)] |
Atmos | Derived-type variable that contains fields needed by the flux exchange module. [type(atmos_data_type)] |
call atmos_model_end (Atmos)
Atmos | Derived-type variable that contains fields needed by the flux exchange module. [type(atmos_data_type)] |
type atmos_data_type type (domain2d) :: domain ! domain decomposition integer :: axes(4) ! axis indices (returned by diag_manager) for the atmospheric grid ! (they correspond to the x, y, pfull, phalf axes) real, pointer, dimension(:) :: glon_bnd => NULL() ! global longitude axis grid box boundaries in radians. real, pointer, dimension(:) :: glat_bnd => NULL() ! global latitude axis grid box boundaries in radians. real, pointer, dimension(:) :: lon_bnd => NULL() ! local longitude axis grid box boundaries in radians. real, pointer, dimension(:) :: lat_bnd => NULL() ! local latitude axis grid box boundaries in radians. real, pointer, dimension(:,:) :: t_bot => NULL() ! temperature at lowest model level real, pointer, dimension(:,:,:) :: tr_bot => NULL() ! tracers at lowest model level real, pointer, dimension(:,:) :: z_bot => NULL() ! height above the surface for the lowest model level real, pointer, dimension(:,:) :: p_bot => NULL() ! pressure at lowest model level real, pointer, dimension(:,:) :: u_bot => NULL() ! zonal wind component at lowest model level real, pointer, dimension(:,:) :: v_bot => NULL() ! meridional wind component at lowest model level real, pointer, dimension(:,:) :: p_surf => NULL() ! surface pressure real, pointer, dimension(:,:) :: gust => NULL() ! gustiness factor real, pointer, dimension(:,:) :: coszen => NULL() ! cosine of the zenith angle real, pointer, dimension(:,:) :: flux_sw => NULL() ! net shortwave flux (W/m2) at the surface real, pointer, dimension(:,:) :: flux_sw_dir =>NULL() real, pointer, dimension(:,:) :: flux_sw_dif =>NULL() real, pointer, dimension(:,:) :: flux_sw_down_vis_dir =>NULL() real, pointer, dimension(:,:) :: flux_sw_down_vis_dif =>NULL() real, pointer, dimension(:,:) :: flux_sw_down_total_dir =>NULL() real, pointer, dimension(:,:) :: flux_sw_down_total_dif =>NULL() real, pointer, dimension(:,:) :: flux_sw_vis =>NULL() real, pointer, dimension(:,:) :: flux_sw_vis_dir =>NULL() real, pointer, dimension(:,:) :: flux_sw_vis_dif =>NULL() real, pointer, dimension(:,:) :: flux_lw => NULL() ! net longwave flux (W/m2) at the surface real, pointer, dimension(:,:) :: lprec => NULL() ! mass of liquid precipitation since last time step (Kg/m2) real, pointer, dimension(:,:) :: fprec => NULL() ! ass of frozen precipitation since last time step (Kg/m2) logical, pointer, dimension(:,:) :: maskmap =>NULL()! A pointer to an array indicating which ! logical processors are actually used for ! the ocean code. The other logical ! processors would be all land points and ! are not assigned to actual processors. ! This need not be assigned if all logical ! processors are used. This variable is dummy and need ! not to be set, but it is needed to pass compilation. type (surf_diff_type) :: Surf_diff ! store data needed by the multi-step version of the diffusion algorithm type (time_type) :: Time ! current time type (time_type) :: Time_step ! atmospheric time step. type (time_type) :: Time_init ! reference time. integer, pointer :: pelist(:) =>NULL() ! pelist where atmosphere is running. logical :: pe ! current pe. type(coupler_2d_bc_type) :: fields ! array of fields used for additional tracers end type |
type land_ice_atmos_boundary_type ! variables of this type are declared by coupler_main, allocated by flux_exchange_init. !quantities going from land+ice to atmos real, dimension(:,:), pointer :: t =>NULL() ! surface temperature for radiation calculations real, dimension(:,:), pointer :: albedo =>NULL() ! surface albedo for radiation calculations real, dimension(:,:), pointer :: albedo_vis_dir =>NULL() real, dimension(:,:), pointer :: albedo_nir_dir =>NULL() real, dimension(:,:), pointer :: albedo_vis_dif =>NULL() real, dimension(:,:), pointer :: albedo_nir_dif =>NULL() real, dimension(:,:), pointer :: land_frac =>NULL() ! fraction amount of land in a grid box real, dimension(:,:), pointer :: dt_t =>NULL() ! temperature tendency at the lowest level real, dimension(:,:,:), pointer :: dt_tr =>NULL() ! tracer tendency at the lowest level real, dimension(:,:), pointer :: u_flux =>NULL() ! zonal wind stress real, dimension(:,:), pointer :: v_flux =>NULL() ! meridional wind stress real, dimension(:,:), pointer :: dtaudu =>NULL() ! derivative of zonal wind stress w.r.t. the lowest zonal level wind speed real, dimension(:,:), pointer :: dtaudv =>NULL() ! derivative of meridional wind stress w.r.t. the lowest meridional level wind speed real, dimension(:,:), pointer :: u_star =>NULL() ! friction velocity real, dimension(:,:), pointer :: b_star =>NULL() ! bouyancy scale real, dimension(:,:), pointer :: q_star =>NULL() ! moisture scale real, dimension(:,:), pointer :: rough_mom =>NULL() ! surface roughness (used for momentum) real, dimension(:,:,:), pointer :: data =>NULL() !collective field for "named" fields above integer :: xtype !REGRID, REDIST or DIRECT end type land_ice_atmos_boundary_type |
type :: land_atmos_boundary_type real, dimension(:,:), pointer :: data =>NULL() ! quantities going from land alone to atmos (none at present) end type land_atmos_boundary_type |
!quantities going from ice alone to atmos (none at present) type :: ice_atmos_boundary_type real, dimension(:,:), pointer :: data =>NULL() ! quantities going from ice alone to atmos (none at present) end type ice_atmos_boundary_type |