FMS Coupler
2022.03
|
Functions/Subroutines | |
subroutine, public | gas_exchange_init (gas_fields_atm, gas_fields_ice, gas_fluxes) |
Gas and tracer exchange initialization routine. More... | |
subroutine, public | flux_exchange_init (Time, Atm, Land, Ice, Ocean, Ocean_state, atmos_ice_boundary, land_ice_atmos_boundary, land_ice_boundary, ice_ocean_boundary, ocean_ice_boundary, do_ocean, slow_ice_ocean_pelist, dt_atmos, dt_cpld) |
Initialization routine. More... | |
subroutine, public | flux_check_stocks (Time, Atm, Lnd, Ice, Ocn_state) |
Check stock values. More... | |
subroutine, public | flux_init_stocks (Time, Atm, Lnd, Ice, Ocn_state) |
Initialize stock values. More... | |
subroutine | check_atm_grid (Atm, grid_file) |
subroutine, public | sfc_boundary_layer (dt, Time, Atm, Land, Ice, Boundary) |
subroutine, public | flux_down_from_atmos (Time, Atm, Land, Ice, Atmos_boundary, Land_boundary, Ice_boundary) |
subroutine, public | flux_up_to_atmos (Time, Land, Ice, Boundary) |
subroutine, public | flux_exchange_init (Time, Atm, Land, Ice, atmos_ice_boundary, land_ice_atmos_boundary) |
subroutine | read_namelist |
subroutine | diag_field_init (Time, atmos_axes) |
subroutine, public | flux_exchange_end (Atm) |
subroutine | surface_flux_2d (t_atm, q_atm_in, u_atm, v_atm, p_atm, z_atm, p_surf, t_surf, t_ca, q_surf, u_surf, v_surf, rough_mom, rough_heat, rough_moist, rough_scale, gust, flux_t, flux_q, flux_r, flux_u, flux_v, cd_m, cd_t, cd_q, w_atm, u_star, b_star, q_star, thv_atm, thv_surf, dhdt_surf, dedt_surf, dedq_surf, drdt_surf, dhdt_atm, dedq_atm, dtaudu_atm, dtaudv_atm, dt, land, seawater, avail) |
Variables | |
character(len=128) | version = '$Id$' |
character(len=128) | tag = '$Name$' |
logical | do_init = .true. |
real, parameter | bound_tol = 1e-7 |
real, parameter | d622 = rdgas/rvgas |
real, parameter | d378 = 1.0-d622 |
real | z_ref_heat = 2. |
Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q) More... | |
real | z_ref_mom = 10. |
Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m) More... | |
logical | do_area_weighted_flux = .FALSE. |
logical | debug_stocks = .FALSE. |
logical | divert_stocks_report = .FALSE. |
logical | do_runoff = .TRUE. |
Turns on/off the land runoff interpolation to the ocean. More... | |
logical | do_forecast = .false. |
integer | nblocks = 1 |
logical | partition_fprec_from_lprec = .FALSE. |
option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter More... | |
real, parameter | tfreeze = 273.15 |
logical | scale_precip_2d = .false. |
logical | gas_fluxes_initialized = .false. |
type(fmscoupler1dbc_type), target | ex_gas_fields_atm |
Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More... | |
type(fmscoupler1dbc_type), target | ex_gas_fields_ice |
Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. More... | |
type(fmscoupler1dbc_type), target | ex_gas_fluxes |
A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. More... | |
integer | ni_atm |
integer | nj_atm |
to do atmos diagnostic from flux_ocean_to_ice More... | |
real, dimension(3) | ccc |
for conservation checks More... | |
integer | cplclock |
real | dt_atm |
real | dt_cpl |
real | atm_precip_new |
character(len=14), parameter | mod_name = 'flux' |
integer | id_drag_moist |
integer | id_drag_heat |
integer | id_drag_mom |
integer | id_rough_moist |
integer | id_rough_heat |
integer | id_rough_mom |
integer | id_u_star |
integer | id_b_star |
integer | id_q_star |
integer | id_u_flux |
integer | id_v_flux |
integer | id_t_surf |
integer | id_t_flux |
integer | id_q_flux |
integer | id_r_flux |
integer | id_t_atm |
integer | id_u_atm |
integer | id_v_atm |
integer | id_wind |
integer | id_thv_atm |
integer | id_thv_surf |
integer | id_t_ref |
integer | id_rh_ref |
integer | id_u_ref |
integer | id_v_ref |
integer | id_q_ref |
integer | id_del_h |
integer | id_del_m |
integer | id_del_q |
integer | id_albedo |
integer | id_gust |
integer | id_t_ca |
integer | id_q_surf |
integer | id_q_atm |
integer | id_z_atm |
integer | id_p_atm |
integer | id_land_mask |
integer | id_ice_mask |
integer | id_rough_scale |
integer | id_albedo_vis_dir |
integer | id_albedo_nir_dir |
integer | id_albedo_vis_dif |
integer | id_albedo_nir_dif |
integer | id_tas |
integer | id_uas |
integer | id_vas |
integer | id_ts |
integer | id_psl |
integer | id_sfcwind |
integer | id_tauu |
integer | id_tauv |
integer | id_hurs |
integer | id_huss |
integer | id_evspsbl |
integer | id_hfls |
integer | id_hfss |
integer | id_height2m |
integer | id_height10m |
logical | first_static = .true. |
logical | do_read_nml = .true. |
integer | isphum |
integer | n_atm_tr_tot |
integer | n_atm_tr |
logical | use_existing_grid_spec = .false. |
logical | all_ocean = .true. |
logical | all_land = .false. |
integer | is |
integer | ie |
integer | js |
integer | je |
real, dimension(:,:), allocatable | t_surf |
real, dimension(:,:), allocatable | t_ca |
real, dimension(:,:), allocatable | q_surf |
real, dimension(:,:), allocatable | p_surf |
real, dimension(:,:), allocatable | e_t_n |
real, dimension(:,:), allocatable | f_t_delt_n |
real, dimension(:,:), allocatable | e_q_n |
real, dimension(:,:), allocatable | f_q_delt_n |
real, dimension(:,:), allocatable | dhdt_surf |
real, dimension(:,:), allocatable | dedt_surf |
real, dimension(:,:), allocatable | dedq_surf |
real, dimension(:,:), allocatable | drdt_surf |
real, dimension(:,:), allocatable | dhdt_atm |
real, dimension(:,:), allocatable | dedq_atm |
real, dimension(:,:), allocatable | flux_t |
real, dimension(:,:), allocatable | flux_q |
real, dimension(:,:), allocatable | flux_lw |
real, dimension(:,:), allocatable | flux_u |
real, dimension(:,:), allocatable | flux_v |
real, dimension(:,:), allocatable | drag_q |
real, dimension(:,:), allocatable | dtaudu_atm |
real, dimension(:,:), allocatable | dtaudv_atm |
real, dimension(:,:), allocatable | cd_t |
real, dimension(:,:), allocatable | cd_m |
real, dimension(:,:), allocatable | b_star |
real, dimension(:,:), allocatable | u_star |
real, dimension(:,:), allocatable | wind |
logical | used |
|
private |
|
private |
subroutine, public flux_exchange_mod::flux_check_stocks | ( | type(fmstime_type), intent(in) | Time, |
type(atmos_data_type), intent(inout), optional | Atm, | ||
type(land_data_type), intent(inout), optional | Lnd, | ||
type(ice_data_type), intent(inout), optional | Ice, | ||
type(ocean_state_type), intent(inout), optional, pointer | Ocn_state | ||
) |
Check stock values.
Will print out any difference between the integrated flux (in time and space) feeding into a component, and the stock stored in that component.
subroutine, public flux_exchange_mod::flux_down_from_atmos | ( | type (fmstime_type), intent(in) | Time, |
type (atmos_data_type), intent(in) | Atm, | ||
type (land_data_type), intent(in) | Land, | ||
type (ice_data_type), intent(in) | Ice, | ||
type(land_ice_atmos_boundary_type), intent(in) | Atmos_boundary, | ||
type(atmos_land_boundary_type), intent(inout) | Land_boundary, | ||
type(atmos_ice_boundary_type), intent(inout) | Ice_boundary | ||
) |
subroutine, public flux_exchange_mod::flux_exchange_end | ( | type (atmos_data_type), intent(in) | Atm | ) |
subroutine, public flux_exchange_mod::flux_exchange_init | ( | type (fmstime_type), intent(in) | Time, |
type (atmos_data_type), intent(in) | Atm, | ||
type (land_data_type), intent(in) | Land, | ||
type (ice_data_type), intent(in) | Ice, | ||
type(atmos_ice_boundary_type), intent(inout) | atmos_ice_boundary, | ||
type(land_ice_atmos_boundary_type), intent(inout) | land_ice_atmos_boundary | ||
) |
subroutine, public flux_exchange_mod::flux_exchange_init | ( | type(fmstime_type), intent(in) | Time, |
type(atmos_data_type), intent(inout) | Atm, | ||
type(land_data_type), intent(in) | Land, | ||
type(ice_data_type), intent(inout) | Ice, | ||
type(ocean_public_type), intent(inout) | Ocean, | ||
type(ocean_state_type), pointer | Ocean_state, | ||
type(atmos_ice_boundary_type), intent(inout) | atmos_ice_boundary, | ||
type(land_ice_atmos_boundary_type), intent(inout) | land_ice_atmos_boundary, | ||
type(land_ice_boundary_type), intent(inout) | land_ice_boundary, | ||
type(ice_ocean_boundary_type), intent(inout) | ice_ocean_boundary, | ||
type(ocean_ice_boundary_type), intent(inout) | ocean_ice_boundary, | ||
logical, intent(in) | do_ocean, | ||
integer, dimension(:), intent(in) | slow_ice_ocean_pelist, | ||
integer, intent(in), optional | dt_atmos, | ||
integer, intent(in), optional | dt_cpld | ||
) |
Initialization routine.
Initializes the interpolation routines,diagnostics and boundary data
FATAL,grid_spec.nc incompatible with atmosphere resolution | The atmosphere grid size from file grid_spec.nc is not compatible with the atmosphere resolution from atmosphere model. |
FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat) | The longitude from file grid_spec.nc ( from field yba ) is different from the longitude from atmosphere model. |
FATAL,grid_spec.nc incompatible with atmosphere longitudes (see xba.dat and yba.dat) | The longitude from file grid_spec.nc ( from field xba ) is different from the longitude from atmosphere model. |
FATAL,grid_spec.nc incompatible with atmosphere latitudes (see grid_spec.nc) | The latitude from file grid_spec.nc is different from the latitude from atmosphere model. |
[in] | time | The model's current time |
[in,out] | atm | A derived data type to specify atmosphere boundary data |
[in] | land | A derived data type to specify land boundary data |
[in,out] | ice | A derived data type to specify ice boundary data |
[in,out] | ocean | A derived data type to specify ocean boundary data |
[in,out] | atmos_ice_boundary | A derived data type to specify properties and fluxes passed from atmosphere to ice |
[in,out] | land_ice_atmos_boundary | A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, land and ice |
[in,out] | land_ice_boundary | A derived data type to specify properties and fluxes passed from land to ice |
[in,out] | ice_ocean_boundary | A derived data type to specify properties and fluxes passed from ice to ocean |
[in,out] | ocean_ice_boundary | A derived data type to specify properties and fluxes passed from ocean to ice |
[in] | dt_atmos | Atmosphere time step in seconds |
[in] | dt_cpld | Coupled time step in seconds |
subroutine, public flux_exchange_mod::flux_init_stocks | ( | type(fmstime_type), intent(in) | Time, |
type(atmos_data_type) | Atm, | ||
type(land_data_type) | Lnd, | ||
type(ice_data_type) | Ice, | ||
type(ocean_state_type), pointer | Ocn_state | ||
) |
Initialize stock values.
This will call the various component stock_pe routines to store the the initial stock values.
subroutine, public flux_exchange_mod::flux_up_to_atmos | ( | type(fmstime_type), intent(in) | Time, |
type(land_data_type), intent(inout) | Land, | ||
type(ice_data_type), intent(inout) | Ice, | ||
type(land_ice_atmos_boundary_type), intent(inout) | Boundary | ||
) |
subroutine, public flux_exchange_mod::gas_exchange_init | ( | type(fmscoupler1dbc_type), optional, pointer | gas_fields_atm, |
type(fmscoupler1dbc_type), optional, pointer | gas_fields_ice, | ||
type(fmscoupler1dbc_type), optional, pointer | gas_fluxes | ||
) |
Gas and tracer exchange initialization routine.
This routine causes the field table to be read to determine which fields will be needed for the exchanges of gasses and tracers between the atmosphere and ocean. The metadata for these fields are stored in the ex_gas_fluxes and ex_gas_fields arrays, although the data is not allocated yet. This is intended to be called (optionally) prior to flux_exchange_init.
gas_fields_atm | Pointer to a structure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. |
gas_fields_ice | Pointer to a structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes. |
gas_fluxes | Pointer to a s structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes. |
|
private |
subroutine, public flux_exchange_mod::sfc_boundary_layer | ( | real, intent(in) | dt, |
type (fmstime_type), intent(in) | Time, | ||
type (atmos_data_type), intent(in) | Atm, | ||
type(land_data_type), intent(inout) | Land, | ||
type(ice_data_type), intent(inout) | Ice, | ||
type(land_ice_atmos_boundary_type), intent(inout) | Boundary | ||
) |
[in] | dt | Time step |
[in] | time | Current time |
[in] | atm | A derived data type to specify atmospheric boundary data |
[in,out] | land | A derived data type to specify land boundary data |
[in,out] | ice | A derived data type to specify ice boundary data |
[in,out] | boundary | A derived data type to specify properties and fluxes passed from exchange grid to the atmosphere, |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
for conservation checks
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Turns on/off the land runoff interpolation to the ocean.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Structure containing atmospheric surfacevariables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.
|
private |
Structure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes, as well as parameters regulating these fluxes.
|
private |
A structure for exchanging gas or tracer fluxes between the atmosphere and ocean, defined by the field table, as well as a place holder of intermediate calculations, such as piston velocities, and parameters that impact the fluxes.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
to do atmos diagnostic from flux_ocean_to_ice
|
private |
|
private |
option for ATM override experiments where liquid+frozen precip are combined. This option will convert liquid precip to snow when t_ref is less than tfreeze parameter
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Reference height (meters) for temperature and relative humidity diagnostics (t_ref, rh_ref, del_h, del_q)
|
private |
Reference height (meters) for mementum diagnostics (u_ref, v_ref, del_m)