FMS  2024.03
Flexible Modeling System
coupler_types_mod

This module contains type declarations for the coupler. More...

Data Types

type  coupler_1d_bc_type
 Coupler data for 1D boundary conditions. More...
 
type  coupler_1d_real4_field_type
 Coupler data for 1D fields. More...
 
type  coupler_1d_real4_values_type
 Coupler data for 1D values. More...
 
type  coupler_1d_real8_field_type
 Coupler data for 1D fields. More...
 
type  coupler_1d_real8_values_type
 Coupler data for 1D values. More...
 
type  coupler_2d_bc_type
 Coupler data for 2D boundary conditions. More...
 
type  coupler_2d_real4_field_type
 Coupler data for 2D fields. More...
 
type  coupler_2d_real4_values_type
 Coupler data for 2D values. More...
 
type  coupler_2d_real8_field_type
 Coupler data for 2D fields. More...
 
type  coupler_2d_real8_values_type
 Coupler data for 2D values. More...
 
type  coupler_3d_bc_type
 Coupler data for 3D boundary conditions. More...
 
type  coupler_3d_real4_field_type
 Coupler data for 3D fields. More...
 
type  coupler_3d_real4_values_type
 Coupler data for 3D values. More...
 
type  coupler_3d_real8_field_type
 Coupler data for 3D fields. More...
 
type  coupler_3d_real8_values_type
 Coupler data for 3D values. More...
 
interface  coupler_type_copy
 This is the interface to spawn one coupler_bc_type into another and then register diagnostics associated with the new type. More...
 
interface  coupler_type_copy_data
 This is the interface to copy the field data from one coupler_bc_type to another of the same rank, size and decomposition. More...
 
interface  coupler_type_data_override
 This is the interface to override the values of the arrays in a coupler_bc_type. More...
 
interface  coupler_type_destructor
 This is the interface to deallocate any data associated with a coupler_bc_type. More...
 
interface  coupler_type_extract_data
 This is the interface to extract a field in a coupler_bc_type into an array. More...
 
interface  coupler_type_increment_data
 This is the interface to increment the field data from one coupler_bc_type with the data from another. Both must have the same horizontal size and decomposition, but a 2d type may be incremented by a 2d or 3d type. More...
 
interface  coupler_type_initialized
 This function interface indicates whether a coupler_bc_type has been initialized. More...
 
interface  coupler_type_redistribute_data
 This is the interface to redistribute the field data from one coupler_bc_type to another of the same rank and global size, but a different decomposition. More...
 
interface  coupler_type_register_restarts
 This is the interface to register the fields in a coupler_bc_type to be saved in restart files. More...
 
interface  coupler_type_rescale_data
 This is the interface to rescale the field data in a coupler_bc_type. More...
 
interface  coupler_type_restore_state
 This is the interface to read in the fields in a coupler_bc_type that have been saved in restart files. More...
 
interface  coupler_type_send_data
 This is the interface to write out diagnostics of the arrays in a coupler_bc_type. More...
 
interface  coupler_type_set_data
 This is the interface to set a field in a coupler_bc_type from an array. More...
 
interface  coupler_type_set_diags
 This is the interface to set diagnostics for the arrays in a coupler_bc_type. More...
 
interface  coupler_type_spawn
 This is the interface to spawn one coupler_bc_type into another. More...
 
interface  coupler_type_write_chksums
 This is the interface to write out checksums for the elements of a coupler_bc_type. More...
 

Functions/Subroutines

subroutine, public coupler_type_copy_1d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 1-D to 2-D version for generic coupler_type_copy. More...
 
subroutine, public coupler_type_copy_1d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 1-D to 3-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_2d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 2-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_2d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 2-D to 3-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_3d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 3-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_3d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 3-D to 3-D version for generic coupler_type_copy. More...
 
subroutine, public coupler_types_init
 Initialize the coupler types.
 
subroutine ct_copy_data_2d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Copy all elements of coupler_2d_bc_type. Do a direct copy of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes. More...
 
subroutine ct_copy_data_2d_3d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice, ind3_start, ind3_end)
 Copy all elements of coupler_2d_bc_type to coupler_3d_bc_type. More...
 
subroutine ct_copy_data_3d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Copy all elements of coupler_3d_bc_type. More...
 
subroutine ct_data_override_2d (gridname, var, Time)
 Potentially override the values in a coupler_2d_bc_type. More...
 
subroutine ct_data_override_3d (gridname, var, Time)
 Potentially override the values in a coupler_3d_bc_type. More...
 
subroutine ct_destructor_1d (var)
 Deallocate all data associated with a coupler_1d_bc_type. More...
 
subroutine ct_destructor_2d (var)
 Deallocate all data associated with a coupler_2d_bc_type. More...
 
subroutine ct_destructor_3d (var)
 Deallocate all data associated with a coupler_3d_bc_type. More...
 
subroutine ct_extract_data_2d_ (var_in, bc_index, field_index, array_out, scale_factor, halo_size, idim, jdim)
 Extract a 2d field from a coupler_2d_bc_type. More...
 
subroutine ct_extract_data_3d_ (var_in, bc_index, field_index, array_out, scale_factor, halo_size, idim, jdim)
 Extract single 3d field from a coupler_3d_bc_type. More...
 
subroutine ct_extract_data_3d_2d_ (var_in, bc_index, field_index, k_in, array_out, scale_factor, halo_size, idim, jdim)
 Extract a single k-level of a 3d field from a coupler_3d_bc_type. More...
 
subroutine ct_increment_data_2d_2d (var_in, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 Increment data in all elements of one coupler_2d_bc_type. More...
 
subroutine ct_increment_data_2d_3d_ (var_in, weights, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 Increment data in the elements of a coupler_2d_bc_type with weighted averages of elements of a coupler_3d_bc_type. More...
 
subroutine ct_increment_data_3d_3d (var_in, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 Increment data in all elements of one coupler_3d_bc_type. More...
 
logical function ct_initialized_1d (var)
 Indicate whether a coupler_1d_bc_type has been initialized. More...
 
logical function ct_initialized_2d (var)
 Indicate whether a coupler_2d_bc_type has been initialized. More...
 
logical function ct_initialized_3d (var)
 Indicate whether a coupler_3d_bc_type has been initialized. More...
 
subroutine ct_redistribute_data_2d (var_in, domain_in, var_out, domain_out, complete)
 Redistribute the data in all elements of a coupler_2d_bc_type. More...
 
subroutine ct_redistribute_data_3d (var_in, domain_in, var_out, domain_out, complete)
 Redistributes the data in all elements of one coupler_2d_bc_type. More...
 
subroutine ct_register_restarts_2d (var, bc_rest_files, num_rest_files, mpp_domain, to_read, ocean_restart, directory)
 
subroutine ct_register_restarts_3d (var, bc_rest_files, num_rest_files, mpp_domain, to_read, ocean_restart, directory)
 
subroutine ct_rescale_data_2d_ (var, scale, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Rescales the fields in the fields in the elements of a coupler_2d_bc_type. More...
 
subroutine ct_rescale_data_3d_ (var, scale, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Rescales the fields in the elements of a coupler_3d_bc_type. More...
 
subroutine ct_restore_state_2d (var, use_fms2_io, directory, all_or_nothing, all_required, test_by_field)
 
subroutine ct_restore_state_3d (var, use_fms2_io, directory, all_or_nothing, all_required, test_by_field)
 Read in fields from restart files into a coupler_3d_bc_type. More...
 
subroutine ct_send_data_2d (var, Time, return_statuses)
 Write out all diagnostics of elements of a coupler_2d_bc_type. More...
 
subroutine ct_send_data_3d (var, Time, return_statuses)
 Write out all diagnostics of elements of a coupler_3d_bc_type. More...
 
subroutine ct_set_data_2d_ (array_in, bc_index, field_index, var, scale_factor, halo_size, idim, jdim)
 Set single 2d field in coupler_3d_bc_type. More...
 
subroutine ct_set_data_2d_3d_ (array_in, bc_index, field_index, k_out, var, scale_factor, halo_size, idim, jdim)
 Set one k-level of a single 3d field in a coupler_3d_bc_type. More...
 
subroutine ct_set_data_3d_ (array_in, bc_index, field_index, var, scale_factor, halo_size, idim, jdim)
 Set a single 3d field in a coupler_3d_bc_type. More...
 
subroutine ct_set_diags_2d (var, diag_name, axes, time)
 
subroutine ct_set_diags_3d (var, diag_name, axes, time)
 Register the diagnostics of a coupler_3d_bc_type. More...
 
subroutine ct_spawn_1d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 1-D to 2-D version for generic coupler_type_spawn. More...
 
subroutine ct_spawn_1d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 1-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_spawn_2d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 2-D to 2-D version for generic CT_spawn. More...
 
subroutine ct_spawn_2d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 2-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_spawn_3d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 3-D to 2-D version for generic CT_spawn. More...
 
subroutine ct_spawn_3d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 3-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_write_chksums_2d (var, outunit, name_lead)
 Write out checksums for the elements of a coupler_2d_bc_type. More...
 
subroutine ct_write_chksums_3d (var, outunit, name_lead)
 Write out checksums for the elements of a coupler_3d_bc_type. More...
 
subroutine register_axis_wrapper (fileobj, to_read, nz)
 
subroutine register_axis_wrapper_read (fileobj)
 
subroutine register_axis_wrapper_write (fileobj, nz)
 

Variables

integer, public ind_alpha = 1
 The index of the solubility array for a tracer.
 
integer, public ind_csurf = 2
 The index of the ocean surface concentration.
 
integer, public ind_deltap = 2
 The index for ocean-air gas partial pressure change.
 
integer, public ind_deposition = 1
 The index for the atmospheric deposition flux.
 
integer, public ind_flux = 1
 The index for the tracer flux.
 
integer, public ind_flux0 = 4
 The index for the piston velocity.
 
integer, public ind_kw = 3
 The index for the piston velocity.
 
integer, public ind_pcair = 1
 The index of the atmospheric concentration.
 
integer, public ind_psurf = 3
 The index of the surface atmospheric pressure.
 
integer, public ind_runoff = 1
 The index for a runoff flux.
 
integer, public ind_sc_no = 3
 The index for the Schmidt number for a tracer flux.
 
integer, public ind_u10 = 2
 The index of the 10 m wind speed.
 

Detailed Description

This module contains type declarations for the coupler.

Author
Richard Slater, John Dunne

Data Type Documentation

◆ coupler_types_mod::coupler_1d_bc_type

type coupler_types_mod::coupler_1d_bc_type

Coupler data for 1D boundary conditions.

Definition at line 365 of file coupler_types.F90.

Collaboration diagram for coupler_1d_bc_type:
[legend]

Public Attributes

type(coupler_1d_real8_field_type), dimension(:), pointer bc => NULL()
 A pointer to the array of boundary condition fields.
 
type(coupler_1d_real4_field_type), dimension(:), pointer bc_r4 => NULL()
 A pointer to the array of boundary condition fields.
 
integer num_bcs = 0
 The number of boundary condition fields.
 
logical set = .false.
 If true, this type has been initialized.
 

◆ coupler_types_mod::coupler_1d_real4_field_type

type coupler_types_mod::coupler_1d_real4_field_type

Coupler data for 1D fields.

Definition at line 341 of file coupler_types.F90.

Collaboration diagram for coupler_1d_real4_field_type:
[legend]

Public Attributes

integer atm_tr_index = 0
 atm_tr_index
 
type(coupler_1d_real4_values_type), dimension(:), pointer field => NULL()
 field
 
logical, dimension(:), pointer flag => NULL()
 flag
 
character(len=128) flux_type = ' '
 flux_type
 
character(len=fms_file_len) ice_restart_file = ' '
 ice_restart_file
 
character(len=128) implementation = ' '
 implementation
 
real(r8_kind) mol_wt = 0.0_r8_kind
 This is also read in r8 from the field manager, but since its not a pointer the conversion is allowed. More...
 
character(len=48) name = ' '
 name
 
integer num_fields = 0
 num_fields
 
character(len=fms_file_len) ocean_restart_file = ' '
 ocean_restart_file
 
real(r8_kind), dimension(:), pointer param => NULL()
 precision needs to be r8_kind since this array is retrieved from the field_manager routine fm_util_get_real_array which only returns a r8_kind Might be able to change to allocatable(?) to do a conversion More...
 
logical pass_through_ice
 pass_through_ice
 
logical use_10m_wind_speed
 use_10m_wind_speed
 
logical use_atm_pressure
 use_atm_pressure
 

Member Data Documentation

◆ mol_wt

real(r8_kind) mol_wt = 0.0_r8_kind

This is also read in r8 from the field manager, but since its not a pointer the conversion is allowed.

mol_wt

Definition at line 359 of file coupler_types.F90.

◆ param

real(r8_kind), dimension(:), pointer param => NULL()

precision needs to be r8_kind since this array is retrieved from the field_manager routine fm_util_get_real_array which only returns a r8_kind Might be able to change to allocatable(?) to do a conversion

param

Definition at line 350 of file coupler_types.F90.

◆ coupler_types_mod::coupler_1d_real4_values_type

type coupler_types_mod::coupler_1d_real4_values_type

Coupler data for 1D values.

Definition at line 326 of file coupler_types.F90.

Collaboration diagram for coupler_1d_real4_values_type:
[legend]

Public Attributes

integer id_diag = 0
 The diagnostic id for this array.
 
character(len=128) long_name = ' '
 The diagnostic long_name for this array.
 
logical may_init = .true.
 If true, there is an internal method that can be used to initialize this field if it can not be read from a restart file.
 
logical mean = .true.
 mean
 
character(len=48) name = ' '
 The diagnostic name for this array.
 
logical override = .false.
 override
 
character(len=128) units = ' '
 The units for this array.
 
real(r4_kind), dimension(:), pointer values => NULL()
 The pointer to the array of values.
 

◆ coupler_types_mod::coupler_1d_real8_field_type

type coupler_types_mod::coupler_1d_real8_field_type

Coupler data for 1D fields.

Definition at line 300 of file coupler_types.F90.

Collaboration diagram for coupler_1d_real8_field_type:
[legend]

Public Attributes

integer atm_tr_index = 0
 atm_tr_index
 
type(coupler_1d_real8_values_type), dimension(:), pointer field => NULL()
 field
 
logical, dimension(:), pointer flag => NULL()
 flag
 
character(len=128) flux_type = ' '
 flux_type
 
character(len=fms_file_len) ice_restart_file = ' '
 ice_restart_file
 
character(len=128) implementation = ' '
 implementation
 
real(r8_kind) mol_wt = 0.0_r8_kind
 precision has been explicitly defined to be r8_kind during mixedmode update to field_manager this explicit definition can be removed during the coupler update and be made into FMS_CP_KIND_ More...
 
character(len=48) name = ' '
 name
 
integer num_fields = 0
 num_fields
 
character(len=fms_file_len) ocean_restart_file = ' '
 ocean_restart_file
 
real(r8_kind), dimension(:), pointer param => NULL()
 precision has been explicitly defined to be r8_kind during mixedmode update to field_manager this explicit definition can be removed during the coupler update and be made into FMS_CP_KIND_ More...
 
logical pass_through_ice
 pass_through_ice
 
logical use_10m_wind_speed
 use_10m_wind_speed
 
logical use_atm_pressure
 use_atm_pressure
 

Member Data Documentation

◆ mol_wt

real(r8_kind) mol_wt = 0.0_r8_kind

precision has been explicitly defined to be r8_kind during mixedmode update to field_manager this explicit definition can be removed during the coupler update and be made into FMS_CP_KIND_

mol_wt

Definition at line 320 of file coupler_types.F90.

◆ param

real(r8_kind), dimension(:), pointer param => NULL()

precision has been explicitly defined to be r8_kind during mixedmode update to field_manager this explicit definition can be removed during the coupler update and be made into FMS_CP_KIND_

param

Definition at line 309 of file coupler_types.F90.

◆ coupler_types_mod::coupler_1d_real8_values_type

type coupler_types_mod::coupler_1d_real8_values_type

Coupler data for 1D values.

Definition at line 285 of file coupler_types.F90.

Collaboration diagram for coupler_1d_real8_values_type:
[legend]

Public Attributes

integer id_diag = 0
 The diagnostic id for this array.
 
character(len=128) long_name = ' '
 The diagnostic long_name for this array.
 
logical may_init = .true.
 If true, there is an internal method that can be used to initialize this field if it can not be read from a restart file.
 
logical mean = .true.
 mean
 
character(len=48) name = ' '
 The diagnostic name for this array.
 
logical override = .false.
 override
 
character(len=128) units = ' '
 The units for this array.
 
real(r8_kind), dimension(:), pointer values => NULL()
 The pointer to the array of values.
 

◆ coupler_types_mod::coupler_2d_bc_type

type coupler_types_mod::coupler_2d_bc_type

Coupler data for 2D boundary conditions.

Definition at line 272 of file coupler_types.F90.

Collaboration diagram for coupler_2d_bc_type:
[legend]

Public Attributes

type(coupler_2d_real8_field_type), dimension(:), pointer bc => NULL()
 A pointer to the array of boundary condition fields.
 
type(coupler_2d_real4_field_type), dimension(:), pointer bc_r4 => NULL()
 A pointer to the array of boundary condition fields.
 
integer iec
 
integer ied
 The i-direction data and computational domain index ranges for this type.
 
integer isc
 
integer isd
 
integer jec
 
integer jed
 The j-direction data and computational domain index ranges for this type.
 
integer jsc
 
integer jsd
 
integer num_bcs = 0
 The number of boundary condition fields.
 
logical set = .false.
 If true, this type has been initialized.
 

◆ coupler_types_mod::coupler_2d_real4_field_type

type coupler_types_mod::coupler_2d_real4_field_type

Coupler data for 2D fields.

Definition at line 244 of file coupler_types.F90.

Collaboration diagram for coupler_2d_real4_field_type:
[legend]

Public Attributes

integer atm_tr_index = 0
 atm_tr_index
 
type(coupler_2d_real4_values_type), dimension(:), pointer field => NULL()
 field
 
logical, dimension(:), pointer flag => NULL()
 flag
 
character(len=124) flux_type = ' '
 flux_type
 
type(fmsnetcdfdomainfile_t), pointer fms2_io_rest_type => NULL()
 A pointer to the restart_file_type That is used for this field.
 
character(len=fms_file_len) ice_restart_file = ' '
 ice_restart_file
 
character(len=124) implementation = ' '
 implementation
 
real(r8_kind) mol_wt = 0.0_r8_kind
 mol_wt
 
character(len=44) name = ' '
 name
 
integer num_fields = 0
 num_fields
 
character(len=fms_file_len) ocean_restart_file = ' '
 ocean_restart_file
 
real(r8_kind), dimension(:), pointer param => NULL()
 precision needs to be r8_kind since this array is retrieved from the field_manager routine fm_util_get_real_array which only returns a r8_kind Might be able to change to allocatable(?) to do a conversion More...
 
logical pass_through_ice
 pass_through_ice
 
logical use_10m_wind_speed
 use_10m_wind_speed
 
logical use_atm_pressure
 use_atm_pressure
 

Member Data Documentation

◆ param

real(r8_kind), dimension(:), pointer param => NULL()

precision needs to be r8_kind since this array is retrieved from the field_manager routine fm_util_get_real_array which only returns a r8_kind Might be able to change to allocatable(?) to do a conversion

param

Definition at line 253 of file coupler_types.F90.

◆ coupler_types_mod::coupler_2d_real4_values_type

type coupler_types_mod::coupler_2d_real4_values_type

Coupler data for 2D values.

Definition at line 226 of file coupler_types.F90.

Collaboration diagram for coupler_2d_real4_values_type:
[legend]

Public Attributes

integer id_diag = 0
 The diagnostic id for this array.
 
integer id_rest = 0
 The id of this array in the restart field.
 
character(len=124) long_name = ' '
 The diagnostic long_name for this array.
 
logical may_init = .true.
 If true, there is an internal method that can be used to initialize this field if it can not be read from a restart file.
 
logical mean = .true.
 mean
 
character(len=44) name = ' '
 The diagnostic name for this array.
 
logical override = .false.
 override
 
character(len=124) units = ' '
 The units for this array.
 
real(r4_kind), dimension(:,:), pointer, contiguous values => NULL()
 The pointer to the array of values for this field; this should be changed to allocatable.
 

◆ coupler_types_mod::coupler_2d_real8_field_type

type coupler_types_mod::coupler_2d_real8_field_type

Coupler data for 2D fields.

Definition at line 201 of file coupler_types.F90.

Collaboration diagram for coupler_2d_real8_field_type:
[legend]

Public Attributes

integer atm_tr_index = 0
 atm_tr_index
 
type(coupler_2d_real8_values_type), dimension(:), pointer field => NULL()
 field
 
logical, dimension(:), pointer flag => NULL()
 flag
 
character(len=128) flux_type = ' '
 flux_type
 
type(fmsnetcdfdomainfile_t), pointer fms2_io_rest_type => NULL()
 A pointer to the restart_file_type That is used for this field.
 
character(len=fms_file_len) ice_restart_file = ' '
 ice_restart_file
 
character(len=128) implementation = ' '
 implementation
 
real(r8_kind) mol_wt = 0.0_r8_kind
 mol_wt
 
character(len=48) name = ' '
 name
 
integer num_fields = 0
 num_fields
 
character(len=fms_file_len) ocean_restart_file = ' '
 ocean_restart_file
 
real(r8_kind), dimension(:), pointer param => NULL()
 param
 
logical pass_through_ice
 pass_through_ice
 
logical use_10m_wind_speed
 use_10m_wind_speed
 
logical use_atm_pressure
 use_atm_pressure
 

◆ coupler_types_mod::coupler_2d_real8_values_type

type coupler_types_mod::coupler_2d_real8_values_type

Coupler data for 2D values.

Definition at line 183 of file coupler_types.F90.

Collaboration diagram for coupler_2d_real8_values_type:
[legend]

Public Attributes

integer id_diag = 0
 The diagnostic id for this array.
 
integer id_rest = 0
 The id of this array in the restart field.
 
character(len=128) long_name = ' '
 The diagnostic long_name for this array.
 
logical may_init = .true.
 If true, there is an internal method that can be used to initialize this field if it can not be read from a restart file.
 
logical mean = .true.
 mean
 
character(len=48) name = ' '
 The diagnostic name for this array.
 
logical override = .false.
 override
 
character(len=128) units = ' '
 The units for this array.
 
real(r8_kind), dimension(:,:), pointer, contiguous values => NULL()
 The pointer to the array of values for this field; this should be changed to allocatable.
 

◆ coupler_types_mod::coupler_3d_bc_type

type coupler_types_mod::coupler_3d_bc_type

Coupler data for 3D boundary conditions.

Definition at line 169 of file coupler_types.F90.

Collaboration diagram for coupler_3d_bc_type:
[legend]

Public Attributes

type(coupler_3d_real8_field_type), dimension(:), pointer bc => NULL()
 A pointer to the array of boundary TODO above should be renamed eventually to indicate kind=8.
 
type(coupler_3d_real4_field_type), dimension(:), pointer bc_r4 => NULL()
 A pointer to the array of boundary.
 
integer iec
 
integer ied
 The i-direction data and computational domain index ranges for this type.
 
integer isc
 
integer isd
 
integer jec
 
integer jed
 The j-direction data and computational domain index ranges for this type.
 
integer jsc
 
integer jsd
 
integer ke
 The k-direction index ranges for this type.
 
integer ks
 
integer num_bcs = 0
 The number of boundary condition fields.
 
logical set = .false.
 If true, this type has been initialized.
 

◆ coupler_types_mod::coupler_3d_real4_field_type

type coupler_types_mod::coupler_3d_real4_field_type

Coupler data for 3D fields.

Definition at line 141 of file coupler_types.F90.

Collaboration diagram for coupler_3d_real4_field_type:
[legend]

Public Attributes

integer atm_tr_index = 0
 atm_tr_index
 
type(coupler_3d_real4_values_type), dimension(:), pointer field => NULL()
 field
 
logical, dimension(:), pointer flag => NULL()
 flag
 
character(len=128) flux_type = ' '
 flux_type
 
type(fmsnetcdfdomainfile_t), pointer fms2_io_rest_type => NULL()
 A pointer to the restart_file_type That is used for this field.
 
character(len=fms_file_len) ice_restart_file = ' '
 ice_restart_file
 
character(len=128) implementation = ' '
 implementation
 
real(r8_kind) mol_wt = 0.0_r8_kind
 mol_wt
 
character(len=48) name = ' '
 name
 
integer num_fields = 0
 num_fields
 
character(len=fms_file_len) ocean_restart_file = ' '
 ocean_restart_file
 
real(r8_kind), dimension(:), pointer param => NULL()
 precision needs to be r8_kind since this array is retrieved from the field_manager routine fm_util_get_real_array which only returns a r8_kind Might be able to change to allocatable(?) to do a conversion More...
 
logical pass_through_ice
 pass_through_ice
 
logical use_10m_wind_speed
 use_10m_wind_speed
 
logical use_atm_pressure
 use_atm_pressure
 

Member Data Documentation

◆ param

real(r8_kind), dimension(:), pointer param => NULL()

precision needs to be r8_kind since this array is retrieved from the field_manager routine fm_util_get_real_array which only returns a r8_kind Might be able to change to allocatable(?) to do a conversion

param

Definition at line 163 of file coupler_types.F90.

◆ coupler_types_mod::coupler_3d_real4_values_type

type coupler_types_mod::coupler_3d_real4_values_type

Coupler data for 3D values.

Definition at line 123 of file coupler_types.F90.

Collaboration diagram for coupler_3d_real4_values_type:
[legend]

Public Attributes

integer id_diag = 0
 The diagnostic id for this array.
 
integer id_rest = 0
 The id of this array in the restart field.
 
character(len=128) long_name = ' '
 The diagnostic long_name for this array.
 
logical may_init = .true.
 If true, there is an internal method that can be used to initialize this field if it can not be read from a restart file.
 
logical mean = .true.
 mean
 
character(len=48) name = ' '
 The diagnostic name for this array.
 
logical override = .false.
 override
 
character(len=128) units = ' '
 The units for this array.
 
real(r4_kind), dimension(:,:,:), pointer, contiguous values => NULL()
 The pointer to the array of values for this field; this should be changed to allocatable.
 

◆ coupler_types_mod::coupler_3d_real8_field_type

type coupler_types_mod::coupler_3d_real8_field_type

Coupler data for 3D fields.

Definition at line 98 of file coupler_types.F90.

Collaboration diagram for coupler_3d_real8_field_type:
[legend]

Public Attributes

integer atm_tr_index = 0
 atm_tr_index
 
type(coupler_3d_real8_values_type), dimension(:), pointer field => NULL()
 field
 
logical, dimension(:), pointer flag => NULL()
 flag
 
character(len=128) flux_type = ' '
 flux_type
 
type(fmsnetcdfdomainfile_t), pointer fms2_io_rest_type => NULL()
 A pointer to the restart_file_type That is used for this field.
 
character(len=fms_file_len) ice_restart_file = ' '
 ice_restart_file
 
character(len=128) implementation = ' '
 implementation
 
real(r8_kind) mol_wt = 0.0_r8_kind
 mol_wt
 
character(len=48) name = ' '
 name
 
integer num_fields = 0
 num_fields
 
character(len=fms_file_len) ocean_restart_file = ' '
 ocean_restart_file
 
real(r8_kind), dimension(:), pointer param => NULL()
 param
 
logical pass_through_ice
 pass_through_ice
 
logical use_10m_wind_speed
 use_10m_wind_speed
 
logical use_atm_pressure
 use_atm_pressure
 

◆ coupler_types_mod::coupler_3d_real8_values_type

type coupler_types_mod::coupler_3d_real8_values_type

Coupler data for 3D values.

Definition at line 80 of file coupler_types.F90.

Collaboration diagram for coupler_3d_real8_values_type:
[legend]

Public Attributes

integer id_diag = 0
 The diagnostic id for this array.
 
integer id_rest = 0
 The id of this array in the restart field.
 
character(len=128) long_name = ' '
 The diagnostic long_name for this array.
 
logical may_init = .true.
 If true, there is an internal method that can be used to initialize this field if it can not be read from a restart file.
 
logical mean = .true.
 mean
 
character(len=48) name = ' '
 The diagnostic name for this array.
 
logical override = .false.
 override
 
character(len=128) units = ' '
 The units for this array.
 
real(r8_kind), dimension(:,:,:), pointer, contiguous values => NULL()
 The pointer to the array of values for this field; this should be changed to allocatable.
 

◆ coupler_types_mod::coupler_type_copy

interface coupler_types_mod::coupler_type_copy

This is the interface to spawn one coupler_bc_type into another and then register diagnostics associated with the new type.

Definition at line 399 of file coupler_types.F90.

Private Member Functions

subroutine coupler_type_copy_1d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 1-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_1d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 1-D to 3-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_2d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 2-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_2d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 2-D to 3-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_3d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 3-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_3d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 3-D to 3-D version for generic coupler_type_copy. More...
 

Member Function/Subroutine Documentation

◆ coupler_type_copy_1d_2d()

subroutine coupler_type_copy_1d_2d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 1-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 541 of file coupler_types.F90.

◆ coupler_type_copy_1d_3d()

subroutine coupler_type_copy_1d_3d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 1-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 575 of file coupler_types.F90.

◆ coupler_type_copy_2d_2d()

subroutine coupler_type_copy_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 2-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 609 of file coupler_types.F90.

◆ coupler_type_copy_2d_3d()

subroutine coupler_type_copy_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 2-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 642 of file coupler_types.F90.

◆ coupler_type_copy_3d_2d()

subroutine coupler_type_copy_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 3-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 676 of file coupler_types.F90.

◆ coupler_type_copy_3d_3d()

subroutine coupler_type_copy_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 3-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 709 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_copy_data

interface coupler_types_mod::coupler_type_copy_data

This is the interface to copy the field data from one coupler_bc_type to another of the same rank, size and decomposition.

Definition at line 415 of file coupler_types.F90.

Private Member Functions

subroutine ct_copy_data_2d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Copy all elements of coupler_2d_bc_type. Do a direct copy of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes. More...
 
subroutine ct_copy_data_2d_3d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice, ind3_start, ind3_end)
 Copy all elements of coupler_2d_bc_type to coupler_3d_bc_type. More...
 
subroutine ct_copy_data_3d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Copy all elements of coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_copy_data_2d()

subroutine ct_copy_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Copy all elements of coupler_2d_bc_type. Do a direct copy of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1703 of file coupler_types.F90.

◆ ct_copy_data_2d_3d()

subroutine ct_copy_data_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice,
integer, intent(in), optional  ind3_start,
integer, intent(in), optional  ind3_end 
)
private

Copy all elements of coupler_2d_bc_type to coupler_3d_bc_type.

Do a direct copy of the data in all elements of one coupler_2d_bc_type into a coupler_3d_bc_type. Both must have the same array sizes for the first two dimensions, while the extend of the 3rd dimension that is being filled may be specified via optional arguments..

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this
[in]ind3_startThe starting value of the 3rd index of the 3d type to fill in.
[in]ind3_endThe ending value of the 3rd index of the 3d type to fill in.

Definition at line 2002 of file coupler_types.F90.

◆ ct_copy_data_3d()

subroutine ct_copy_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Copy all elements of coupler_3d_bc_type.

Do a direct copy of the data in all elements of one coupler_3d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,There is an k-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive k-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1850 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_data_override

interface coupler_types_mod::coupler_type_data_override

This is the interface to override the values of the arrays in a coupler_bc_type.

Definition at line 477 of file coupler_types.F90.

Private Member Functions

subroutine ct_data_override_2d (gridname, var, Time)
 Potentially override the values in a coupler_2d_bc_type. More...
 
subroutine ct_data_override_3d (gridname, var, Time)
 Potentially override the values in a coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_data_override_2d()

subroutine ct_data_override_2d ( character(len=3), intent(in)  gridname,
type(coupler_2d_bc_type), intent(inout)  var,
type(time_type), intent(in)  Time 
)
private

Potentially override the values in a coupler_2d_bc_type.

Parameters
[in]gridname3-character long model grid ID
[in,out]varBC_type structure to override
[in]timeThe current model time

Definition at line 3759 of file coupler_types.F90.

◆ ct_data_override_3d()

subroutine ct_data_override_3d ( character(len=3), intent(in)  gridname,
type(coupler_3d_bc_type), intent(inout)  var,
type(time_type), intent(in)  Time 
)
private

Potentially override the values in a coupler_3d_bc_type.

Parameters
[in]gridname3-character long model grid ID
[in,out]varBC_type structure to override
[in]timeThe current model time TODO remove this when data_override is merged in

Definition at line 3796 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_destructor

interface coupler_types_mod::coupler_type_destructor

This is the interface to deallocate any data associated with a coupler_bc_type.

Definition at line 510 of file coupler_types.F90.

Private Member Functions

subroutine ct_destructor_1d (var)
 Deallocate all data associated with a coupler_1d_bc_type. More...
 
subroutine ct_destructor_2d (var)
 Deallocate all data associated with a coupler_2d_bc_type. More...
 
subroutine ct_destructor_3d (var)
 Deallocate all data associated with a coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_destructor_1d()

subroutine ct_destructor_1d ( type(coupler_1d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_1d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 3967 of file coupler_types.F90.

◆ ct_destructor_2d()

subroutine ct_destructor_2d ( type(coupler_2d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_2d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 4000 of file coupler_types.F90.

◆ ct_destructor_3d()

subroutine ct_destructor_3d ( type(coupler_3d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_3d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 4033 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_extract_data

interface coupler_types_mod::coupler_type_extract_data

This is the interface to extract a field in a coupler_bc_type into an array.

Definition at line 444 of file coupler_types.F90.

Private Member Functions

 ct_extract_data_2d_r4
 
 ct_extract_data_2d_r8
 
 ct_extract_data_3d_2d_r4
 
 ct_extract_data_3d_2d_r8
 
 ct_extract_data_3d_r4
 
 ct_extract_data_3d_r8
 

◆ coupler_types_mod::coupler_type_increment_data

interface coupler_types_mod::coupler_type_increment_data

This is the interface to increment the field data from one coupler_bc_type with the data from another. Both must have the same horizontal size and decomposition, but a 2d type may be incremented by a 2d or 3d type.

Definition at line 437 of file coupler_types.F90.

Private Member Functions

subroutine ct_increment_data_2d_2d (var_in, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 Increment data in all elements of one coupler_2d_bc_type. More...
 
 ct_increment_data_2d_3d_r4
 
 ct_increment_data_2d_3d_r8
 
subroutine ct_increment_data_3d_3d (var_in, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 Increment data in all elements of one coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_increment_data_2d_2d()

subroutine ct_increment_data_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real(r8_kind), intent(in), optional  scale_factor,
real(r8_kind), intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Increment data in all elements of one coupler_2d_bc_type.

Do a direct increment of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to increment; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 2525 of file coupler_types.F90.

◆ ct_increment_data_3d_3d()

subroutine ct_increment_data_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real(r8_kind), intent(in), optional  scale_factor,
real(r8_kind), intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Increment data in all elements of one coupler_3d_bc_type.

Do a direct increment of the data in all elements of one coupler_3d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,There is an k-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive k-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 2684 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_initialized

interface coupler_types_mod::coupler_type_initialized

This function interface indicates whether a coupler_bc_type has been initialized.

Definition at line 504 of file coupler_types.F90.

Private Member Functions

logical function ct_initialized_1d (var)
 Indicate whether a coupler_1d_bc_type has been initialized. More...
 
logical function ct_initialized_2d (var)
 Indicate whether a coupler_2d_bc_type has been initialized. More...
 
logical function ct_initialized_3d (var)
 Indicate whether a coupler_3d_bc_type has been initialized. More...
 

Member Function/Subroutine Documentation

◆ ct_initialized_1d()

logical function ct_initialized_1d ( type(coupler_1d_bc_type), intent(in)  var)
private

Indicate whether a coupler_1d_bc_type has been initialized.

Returns
Logical
Parameters
[in]varBC_type structure to check initialization

Definition at line 3944 of file coupler_types.F90.

◆ ct_initialized_2d()

logical function ct_initialized_2d ( type(coupler_2d_bc_type), intent(in)  var)
private

Indicate whether a coupler_2d_bc_type has been initialized.

Returns
Logical
Parameters
[in]varBC_type structure to check initialization

Definition at line 3952 of file coupler_types.F90.

◆ ct_initialized_3d()

logical function ct_initialized_3d ( type(coupler_3d_bc_type), intent(in)  var)
private

Indicate whether a coupler_3d_bc_type has been initialized.

Returns
Logical
Parameters
[in]varBC_type structure to check initialization

Definition at line 3960 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_redistribute_data

interface coupler_types_mod::coupler_type_redistribute_data

This is the interface to redistribute the field data from one coupler_bc_type to another of the same rank and global size, but a different decomposition.

Definition at line 422 of file coupler_types.F90.

Private Member Functions

subroutine ct_redistribute_data_2d (var_in, domain_in, var_out, domain_out, complete)
 Redistribute the data in all elements of a coupler_2d_bc_type. More...
 
subroutine ct_redistribute_data_3d (var_in, domain_in, var_out, domain_out, complete)
 Redistributes the data in all elements of one coupler_2d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_redistribute_data_2d()

subroutine ct_redistribute_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(domain2d), intent(in)  domain_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
type(domain2d), intent(in)  domain_out,
logical, intent(in), optional  complete 
)
private

Redistribute the data in all elements of a coupler_2d_bc_type.

Redistributes the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

Exceptions
FATAL,Mismatch in num_bcs in CT_copy_data_2d.
FATAL,Mismatch in the total number of fields in CT_redistribute_data_2d.
Parameters
[in]var_inBC_type structure with the data to copy (intent in)
[in]domain_inThe FMS domain for the input structure
[in,out]var_outThe recipient BC_type structure (data intent out)
[in]domain_outThe FMS domain for the output structure
[in]completeIf true, complete the updates

Definition at line 2155 of file coupler_types.F90.

◆ ct_redistribute_data_3d()

subroutine ct_redistribute_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(domain2d), intent(in)  domain_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
type(domain2d), intent(in)  domain_out,
logical, intent(in), optional  complete 
)
private

Redistributes the data in all elements of one coupler_2d_bc_type.

Redistributes the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

Parameters
[in]var_inBC_type structure with the data to copy (intent in)
[in]domain_inThe FMS domain for the input structure
[in,out]var_outThe recipient BC_type structure (data intent out)
[in]domain_outThe FMS domain for the output structure
[in]completeIf true, complete the updates

Definition at line 2334 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_register_restarts

interface coupler_types_mod::coupler_type_register_restarts

This is the interface to register the fields in a coupler_bc_type to be saved in restart files.

Definition at line 484 of file coupler_types.F90.

Private Member Functions

subroutine ct_register_restarts_2d (var, bc_rest_files, num_rest_files, mpp_domain, to_read, ocean_restart, directory)
 
subroutine ct_register_restarts_3d (var, bc_rest_files, num_rest_files, mpp_domain, to_read, ocean_restart, directory)
 

Member Function/Subroutine Documentation

◆ ct_register_restarts_2d()

subroutine ct_register_restarts_2d ( type(coupler_2d_bc_type), intent(inout)  var,
type(fmsnetcdfdomainfile_t), dimension(:), pointer  bc_rest_files,
integer, intent(out)  num_rest_files,
type(domain2d), intent(in)  mpp_domain,
logical, intent(in)  to_read,
logical, intent(in), optional  ocean_restart,
character(len=*), intent(in), optional  directory 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
bc_rest_filesStructures describing the restart files
[out]num_rest_filesThe number of restart files to use
[in]mpp_domainThe FMS domain to use for this registration call
[in]to_readFlag indicating if reading/writing a file
[in]ocean_restartIf true, use the ocean restart file name.
[in]directoryDirectory where to open the file

Definition at line 3070 of file coupler_types.F90.

◆ ct_register_restarts_3d()

subroutine ct_register_restarts_3d ( type(coupler_3d_bc_type), intent(inout)  var,
type(fmsnetcdfdomainfile_t), dimension(:), pointer  bc_rest_files,
integer, intent(out)  num_rest_files,
type(domain2d), intent(in)  mpp_domain,
logical, intent(in)  to_read,
logical, intent(in), optional  ocean_restart,
character(len=*), intent(in), optional  directory 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
bc_rest_filesStructures describing the restart files
[out]num_rest_filesThe number of restart files to use
[in]mpp_domainThe FMS domain to use for this registration call
[in]to_readFlag indicating if reading/writing a file
[in]ocean_restartIf true, use the ocean restart file name.
[in]directoryDirectory where to open the file

Definition at line 3352 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_rescale_data

interface coupler_types_mod::coupler_type_rescale_data

This is the interface to rescale the field data in a coupler_bc_type.

Definition at line 428 of file coupler_types.F90.

Private Member Functions

 ct_rescale_data_2d_r4
 
 ct_rescale_data_2d_r8
 
 ct_rescale_data_3d_r4
 
 ct_rescale_data_3d_r8
 

◆ coupler_types_mod::coupler_type_restore_state

interface coupler_types_mod::coupler_type_restore_state

This is the interface to read in the fields in a coupler_bc_type that have been saved in restart files.

Definition at line 495 of file coupler_types.F90.

Private Member Functions

subroutine ct_restore_state_2d (var, use_fms2_io, directory, all_or_nothing, all_required, test_by_field)
 
subroutine ct_restore_state_3d (var, use_fms2_io, directory, all_or_nothing, all_required, test_by_field)
 Read in fields from restart files into a coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_restore_state_2d()

subroutine ct_restore_state_2d ( type(coupler_2d_bc_type), intent(inout)  var,
logical, intent(in)  use_fms2_io,
character(len=*), intent(in), optional  directory,
logical, intent(in), optional  all_or_nothing,
logical, intent(in), optional  all_required,
logical, intent(in), optional  test_by_field 
)
private
Parameters
[in,out]varBC_type structure to restore from restart files
[in]directoryA directory where the restart files should be found. The default for FMS is 'INPUT'.
[in]all_or_nothingIf true and there are non-mandatory restart fields, it is still an error if some fields are read successfully but others are not.
[in]all_requiredIf true, all fields must be successfully read from the restart file, even if they were registered as not mandatory.
[in]test_by_fieldIf true, all or none of the variables in a single field must be read successfully.
[in]use_fms2_ioThis is just to distinguish the interfaces

Definition at line 3542 of file coupler_types.F90.

◆ ct_restore_state_3d()

subroutine ct_restore_state_3d ( type(coupler_3d_bc_type), intent(inout)  var,
logical, intent(in)  use_fms2_io,
character(len=*), intent(in), optional  directory,
logical, intent(in), optional  all_or_nothing,
logical, intent(in), optional  all_required,
logical, intent(in), optional  test_by_field 
)
private

Read in fields from restart files into a coupler_3d_bc_type.

This subroutine reads in the fields in a coupler_3d_bc_type that have been saved in restart files.

Parameters
[in,out]varBC_type structure to restore from restart files
[in]directoryA directory where the restart files should be found. The default for FMS is 'INPUT'.
[in]use_fms2_ioThis is just to distinguish the interfaces
[in]all_or_nothingIf true and there are non-mandatory restart fields, it is still an error if some fields are read successfully but others are not.
[in]all_requiredIf true, all fields must be successfully read from the restart file, even if they were registered as not mandatory.
[in]test_by_fieldIf true, all or none of the variables in a single field must be read successfully.

Definition at line 3650 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_send_data

interface coupler_types_mod::coupler_type_send_data

This is the interface to write out diagnostics of the arrays in a coupler_bc_type.

Definition at line 471 of file coupler_types.F90.

Private Member Functions

subroutine ct_send_data_2d (var, Time, return_statuses)
 Write out all diagnostics of elements of a coupler_2d_bc_type. More...
 
subroutine ct_send_data_3d (var, Time, return_statuses)
 Write out all diagnostics of elements of a coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_send_data_2d()

subroutine ct_send_data_2d ( type(coupler_2d_bc_type), intent(in)  var,
type(time_type), intent(in)  Time,
logical, dimension(:,:), intent(out), optional, allocatable  return_statuses 
)
private

Write out all diagnostics of elements of a coupler_2d_bc_type.

Parameters
[in]varBC_type structure with the diagnostics to write
[in]timeThe current model time
[out]return_statusesReturn status of send data calls first index is index of boundary condition second index is field/value within that boundary condition

Definition at line 2947 of file coupler_types.F90.

◆ ct_send_data_3d()

subroutine ct_send_data_3d ( type(coupler_3d_bc_type), intent(in)  var,
type(time_type), intent(in)  Time,
logical, dimension(:,:), intent(out), optional, allocatable  return_statuses 
)
private

Write out all diagnostics of elements of a coupler_3d_bc_type.

Parameters
[in]varBC_type structure with the diagnostics to write
[in]timeThe current model time
[out]return_statusesReturn status of send data calls first index is index of boundary condition second index is field/value within that boundary condition

Definition at line 3008 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_set_data

interface coupler_types_mod::coupler_type_set_data

This is the interface to set a field in a coupler_bc_type from an array.

Definition at line 452 of file coupler_types.F90.

Private Member Functions

 ct_set_data_2d_3d_r4
 
 ct_set_data_2d_3d_r8
 
 ct_set_data_2d_r4
 
 ct_set_data_2d_r8
 
 ct_set_data_3d_r4
 
 ct_set_data_3d_r8
 

◆ coupler_types_mod::coupler_type_set_diags

interface coupler_types_mod::coupler_type_set_diags

This is the interface to set diagnostics for the arrays in a coupler_bc_type.

Definition at line 459 of file coupler_types.F90.

Private Member Functions

subroutine ct_set_diags_2d (var, diag_name, axes, time)
 
subroutine ct_set_diags_3d (var, diag_name, axes, time)
 Register the diagnostics of a coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_set_diags_2d()

subroutine ct_set_diags_2d ( type(coupler_2d_bc_type), intent(inout)  var,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time 
)
private
Parameters
[in,out]varBC_type structure for which to register diagnostics
[in]diag_nameModule name for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field

Definition at line 2838 of file coupler_types.F90.

◆ ct_set_diags_3d()

subroutine ct_set_diags_3d ( type(coupler_3d_bc_type), intent(inout)  var,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time 
)
private

Register the diagnostics of a coupler_3d_bc_type.

Exceptions
FATAL,axes has less than 3 elements
Parameters
[in,out]varBC_type structure for which to register diagnostics
[in]diag_nameModule name for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field

Definition at line 2894 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_spawn

interface coupler_types_mod::coupler_type_spawn

This is the interface to spawn one coupler_bc_type into another.

Definition at line 407 of file coupler_types.F90.

Private Member Functions

subroutine ct_spawn_1d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 1-D to 2-D version for generic coupler_type_spawn. More...
 
subroutine ct_spawn_1d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 1-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_spawn_2d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 2-D to 2-D version for generic CT_spawn. More...
 
subroutine ct_spawn_2d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 2-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_spawn_3d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 3-D to 2-D version for generic CT_spawn. More...
 
subroutine ct_spawn_3d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 3-D to 3-D version for generic CT_spawn. More...
 

Member Function/Subroutine Documentation

◆ ct_spawn_1d_2d()

subroutine ct_spawn_1d_2d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 1-D to 2-D version for generic coupler_type_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 750 of file coupler_types.F90.

◆ ct_spawn_1d_3d()

subroutine ct_spawn_1d_3d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 1-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 905 of file coupler_types.F90.

◆ ct_spawn_2d_2d()

subroutine ct_spawn_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 2-D to 2-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1067 of file coupler_types.F90.

◆ ct_spawn_2d_3d()

subroutine ct_spawn_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 2-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,Disordered k-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1221 of file coupler_types.F90.

◆ ct_spawn_3d_2d()

subroutine ct_spawn_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 3-D to 2-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1382 of file coupler_types.F90.

◆ ct_spawn_3d_3d()

subroutine ct_spawn_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 3-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,Disordered k-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1538 of file coupler_types.F90.

◆ coupler_types_mod::coupler_type_write_chksums

interface coupler_types_mod::coupler_type_write_chksums

This is the interface to write out checksums for the elements of a coupler_bc_type.

Definition at line 465 of file coupler_types.F90.

Private Member Functions

subroutine ct_write_chksums_2d (var, outunit, name_lead)
 Write out checksums for the elements of a coupler_2d_bc_type. More...
 
subroutine ct_write_chksums_3d (var, outunit, name_lead)
 Write out checksums for the elements of a coupler_3d_bc_type. More...
 

Member Function/Subroutine Documentation

◆ ct_write_chksums_2d()

subroutine ct_write_chksums_2d ( type(coupler_2d_bc_type), intent(in)  var,
integer, intent(in)  outunit,
character(len=*), intent(in), optional  name_lead 
)
private

Write out checksums for the elements of a coupler_2d_bc_type.

Parameters
[in]varBC_type structure for which to register diagnostics
[in]outunitThe index of a open output file
[in]name_leadAn optional prefix for the variable names

Definition at line 3838 of file coupler_types.F90.

◆ ct_write_chksums_3d()

subroutine ct_write_chksums_3d ( type(coupler_3d_bc_type), intent(in)  var,
integer, intent(in)  outunit,
character(len=*), intent(in), optional  name_lead 
)
private

Write out checksums for the elements of a coupler_3d_bc_type.

Parameters
[in]varBC_type structure for which to register diagnostics
[in]outunitThe index of a open output file
[in]name_leadAn optional prefix for the variable names

Definition at line 3890 of file coupler_types.F90.

Function/Subroutine Documentation

◆ coupler_type_copy_1d_2d()

subroutine, public coupler_types_mod::coupler_type_copy_1d_2d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)

Copy fields from one coupler type to another. 1-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 541 of file coupler_types.F90.

◆ coupler_type_copy_1d_3d()

subroutine, public coupler_types_mod::coupler_type_copy_1d_3d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)

Copy fields from one coupler type to another. 1-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 575 of file coupler_types.F90.

◆ coupler_type_copy_2d_2d()

subroutine coupler_types_mod::coupler_type_copy_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 2-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 609 of file coupler_types.F90.

◆ coupler_type_copy_2d_3d()

subroutine coupler_types_mod::coupler_type_copy_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 2-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 642 of file coupler_types.F90.

◆ coupler_type_copy_3d_2d()

subroutine coupler_types_mod::coupler_type_copy_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 3-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 676 of file coupler_types.F90.

◆ coupler_type_copy_3d_3d()

subroutine coupler_types_mod::coupler_type_copy_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 3-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 709 of file coupler_types.F90.

◆ ct_copy_data_2d()

subroutine coupler_types_mod::ct_copy_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Copy all elements of coupler_2d_bc_type. Do a direct copy of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1703 of file coupler_types.F90.

◆ ct_copy_data_2d_3d()

subroutine coupler_types_mod::ct_copy_data_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice,
integer, intent(in), optional  ind3_start,
integer, intent(in), optional  ind3_end 
)
private

Copy all elements of coupler_2d_bc_type to coupler_3d_bc_type.

Do a direct copy of the data in all elements of one coupler_2d_bc_type into a coupler_3d_bc_type. Both must have the same array sizes for the first two dimensions, while the extend of the 3rd dimension that is being filled may be specified via optional arguments..

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this
[in]ind3_startThe starting value of the 3rd index of the 3d type to fill in.
[in]ind3_endThe ending value of the 3rd index of the 3d type to fill in.

Definition at line 2002 of file coupler_types.F90.

◆ ct_copy_data_3d()

subroutine coupler_types_mod::ct_copy_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Copy all elements of coupler_3d_bc_type.

Do a direct copy of the data in all elements of one coupler_3d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,There is an k-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive k-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1850 of file coupler_types.F90.

◆ ct_data_override_2d()

subroutine coupler_types_mod::ct_data_override_2d ( character(len=3), intent(in)  gridname,
type(coupler_2d_bc_type), intent(inout)  var,
type(time_type), intent(in)  Time 
)
private

Potentially override the values in a coupler_2d_bc_type.

Parameters
[in]gridname3-character long model grid ID
[in,out]varBC_type structure to override
[in]timeThe current model time

Definition at line 3759 of file coupler_types.F90.

◆ ct_data_override_3d()

subroutine coupler_types_mod::ct_data_override_3d ( character(len=3), intent(in)  gridname,
type(coupler_3d_bc_type), intent(inout)  var,
type(time_type), intent(in)  Time 
)
private

Potentially override the values in a coupler_3d_bc_type.

Parameters
[in]gridname3-character long model grid ID
[in,out]varBC_type structure to override
[in]timeThe current model time TODO remove this when data_override is merged in

Definition at line 3796 of file coupler_types.F90.

◆ ct_destructor_1d()

subroutine coupler_types_mod::ct_destructor_1d ( type(coupler_1d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_1d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 3967 of file coupler_types.F90.

◆ ct_destructor_2d()

subroutine coupler_types_mod::ct_destructor_2d ( type(coupler_2d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_2d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 4000 of file coupler_types.F90.

◆ ct_destructor_3d()

subroutine coupler_types_mod::ct_destructor_3d ( type(coupler_3d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_3d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 4033 of file coupler_types.F90.

◆ ct_extract_data_2d_()

subroutine ct_extract_data_2d_ ( type(coupler_2d_bc_type), intent(in)  var_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
real(fms_cp_kind_), dimension(1:,1:), intent(out)  array_out,
real(fms_cp_kind_), intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)

Extract a 2d field from a coupler_2d_bc_type.

Extract a single 2-d field from a coupler_2d_bc_type into a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
Parameters
[in]var_inBC_type structure with the data to extract
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[out]array_outThe recipient array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 379 of file coupler_types.inc.

◆ ct_extract_data_3d_()

subroutine ct_extract_data_3d_ ( type(coupler_3d_bc_type), intent(in)  var_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
real(fms_cp_kind_), dimension(1:,1:,1:), intent(out)  array_out,
real(fms_cp_kind_), intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)

Extract single 3d field from a coupler_3d_bc_type.

Extract a single 3-d field from a coupler_3d_bc_type into a three-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with k-dimension size 'n' does not match the data of size 'd'
Parameters
[in]var_inBC_type structure with the data to extract
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[out]array_outThe recipient array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 661 of file coupler_types.inc.

◆ ct_extract_data_3d_2d_()

subroutine ct_extract_data_3d_2d_ ( type(coupler_3d_bc_type), intent(in)  var_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
integer, intent(in)  k_in,
real(fms_cp_kind_), dimension(1:,1:), intent(out)  array_out,
real(fms_cp_kind_), intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)

Extract a single k-level of a 3d field from a coupler_3d_bc_type.

Extract a single k-level of a 3-d field from a coupler_3d_bc_type into a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The extracted k-index of 'k' is outside of the valid range of 'ks' to 'ke'
Parameters
[in]var_inBC_type structure with the data to extract
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]k_inThe k-index to extract
[out]array_outThe recipient array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 517 of file coupler_types.inc.

◆ ct_increment_data_2d_2d()

subroutine coupler_types_mod::ct_increment_data_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real(r8_kind), intent(in), optional  scale_factor,
real(r8_kind), intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Increment data in all elements of one coupler_2d_bc_type.

Do a direct increment of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to increment; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 2525 of file coupler_types.F90.

◆ ct_increment_data_2d_3d_()

subroutine ct_increment_data_2d_3d_ ( type(coupler_3d_bc_type), intent(in)  var_in,
real(fms_cp_kind_), dimension(:,:,:), intent(in)  weights,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real(fms_cp_kind_), intent(in), optional  scale_factor,
real(fms_cp_kind_), intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)

Increment data in the elements of a coupler_2d_bc_type with weighted averages of elements of a coupler_3d_bc_type.

Increments the data in the elements of a coupler_2d_bc_type with the weighed average of the elements of a coupler_3d_bc_type. Both must have the same horizontal array sizes and the normalized weight array must match the array sizes of the coupler_3d_bc_type.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,There is an k-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,weights array must be the i-size of a computational or data domain.
FATAL,weights array must be the j-size of a computational or data domain.
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in]weightsAn array of normalized weights for the 3d-data to increment the 2d-data. There is no renormalization, so if the weights do not sum to 1 in the 3rd dimension there may be adverse consequences!
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here and is being added
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 233 of file coupler_types.inc.

◆ ct_increment_data_3d_3d()

subroutine coupler_types_mod::ct_increment_data_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real(r8_kind), intent(in), optional  scale_factor,
real(r8_kind), intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Increment data in all elements of one coupler_3d_bc_type.

Do a direct increment of the data in all elements of one coupler_3d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,There is an k-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive k-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 2684 of file coupler_types.F90.

◆ ct_initialized_1d()

logical function coupler_types_mod::ct_initialized_1d ( type(coupler_1d_bc_type), intent(in)  var)
private

Indicate whether a coupler_1d_bc_type has been initialized.

Returns
Logical
Parameters
[in]varBC_type structure to check initialization

Definition at line 3944 of file coupler_types.F90.

◆ ct_initialized_2d()

logical function coupler_types_mod::ct_initialized_2d ( type(coupler_2d_bc_type), intent(in)  var)
private

Indicate whether a coupler_2d_bc_type has been initialized.

Returns
Logical
Parameters
[in]varBC_type structure to check initialization

Definition at line 3952 of file coupler_types.F90.

◆ ct_initialized_3d()

logical function coupler_types_mod::ct_initialized_3d ( type(coupler_3d_bc_type), intent(in)  var)
private

Indicate whether a coupler_3d_bc_type has been initialized.

Returns
Logical
Parameters
[in]varBC_type structure to check initialization

Definition at line 3960 of file coupler_types.F90.

◆ ct_redistribute_data_2d()

subroutine coupler_types_mod::ct_redistribute_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(domain2d), intent(in)  domain_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
type(domain2d), intent(in)  domain_out,
logical, intent(in), optional  complete 
)
private

Redistribute the data in all elements of a coupler_2d_bc_type.

Redistributes the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

Exceptions
FATAL,Mismatch in num_bcs in CT_copy_data_2d.
FATAL,Mismatch in the total number of fields in CT_redistribute_data_2d.
Parameters
[in]var_inBC_type structure with the data to copy (intent in)
[in]domain_inThe FMS domain for the input structure
[in,out]var_outThe recipient BC_type structure (data intent out)
[in]domain_outThe FMS domain for the output structure
[in]completeIf true, complete the updates

Definition at line 2155 of file coupler_types.F90.

◆ ct_redistribute_data_3d()

subroutine coupler_types_mod::ct_redistribute_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(domain2d), intent(in)  domain_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
type(domain2d), intent(in)  domain_out,
logical, intent(in), optional  complete 
)
private

Redistributes the data in all elements of one coupler_2d_bc_type.

Redistributes the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

Parameters
[in]var_inBC_type structure with the data to copy (intent in)
[in]domain_inThe FMS domain for the input structure
[in,out]var_outThe recipient BC_type structure (data intent out)
[in]domain_outThe FMS domain for the output structure
[in]completeIf true, complete the updates

Definition at line 2334 of file coupler_types.F90.

◆ ct_register_restarts_2d()

subroutine coupler_types_mod::ct_register_restarts_2d ( type(coupler_2d_bc_type), intent(inout)  var,
type(fmsnetcdfdomainfile_t), dimension(:), pointer  bc_rest_files,
integer, intent(out)  num_rest_files,
type(domain2d), intent(in)  mpp_domain,
logical, intent(in)  to_read,
logical, intent(in), optional  ocean_restart,
character(len=*), intent(in), optional  directory 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
bc_rest_filesStructures describing the restart files
[out]num_rest_filesThe number of restart files to use
[in]mpp_domainThe FMS domain to use for this registration call
[in]to_readFlag indicating if reading/writing a file
[in]ocean_restartIf true, use the ocean restart file name.
[in]directoryDirectory where to open the file

Definition at line 3070 of file coupler_types.F90.

◆ ct_register_restarts_3d()

subroutine coupler_types_mod::ct_register_restarts_3d ( type(coupler_3d_bc_type), intent(inout)  var,
type(fmsnetcdfdomainfile_t), dimension(:), pointer  bc_rest_files,
integer, intent(out)  num_rest_files,
type(domain2d), intent(in)  mpp_domain,
logical, intent(in)  to_read,
logical, intent(in), optional  ocean_restart,
character(len=*), intent(in), optional  directory 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
bc_rest_filesStructures describing the restart files
[out]num_rest_filesThe number of restart files to use
[in]mpp_domainThe FMS domain to use for this registration call
[in]to_readFlag indicating if reading/writing a file
[in]ocean_restartIf true, use the ocean restart file name.
[in]directoryDirectory where to open the file

Definition at line 3352 of file coupler_types.F90.

◆ ct_rescale_data_2d_()

subroutine ct_rescale_data_2d_ ( type(coupler_2d_bc_type), intent(inout)  var,
real(fms_cp_kind_), intent(in)  scale,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)

Rescales the fields in the fields in the elements of a coupler_2d_bc_type.

Rescales the fields in the elements of a coupler_2d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist.

Parameters
[in,out]varThe BC_type structure whose fields are being rescaled
[in]scaleA scaling factor to multiply fields by
[in]halo_sizeThe extent of the halo to copy; 0 by default or the full arrays if scale is 0.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 34 of file coupler_types.inc.

◆ ct_rescale_data_3d_()

subroutine ct_rescale_data_3d_ ( type(coupler_3d_bc_type), intent(inout)  var,
real(fms_cp_kind_), intent(in)  scale,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)

Rescales the fields in the elements of a coupler_3d_bc_type.

This subroutine rescales the fields in the elements of a coupler_3d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist.

Parameters
[in,out]varThe BC_type structure whose fields are being rescaled
[in]scaleA scaling factor to multiply fields by
[in]halo_sizeThe extent of the halo to copy; 0 by default or the full arrays if scale is 0.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 125 of file coupler_types.inc.

◆ ct_restore_state_2d()

subroutine coupler_types_mod::ct_restore_state_2d ( type(coupler_2d_bc_type), intent(inout)  var,
logical, intent(in)  use_fms2_io,
character(len=*), intent(in), optional  directory,
logical, intent(in), optional  all_or_nothing,
logical, intent(in), optional  all_required,
logical, intent(in), optional  test_by_field 
)
private
Parameters
[in,out]varBC_type structure to restore from restart files
[in]directoryA directory where the restart files should be found. The default for FMS is 'INPUT'.
[in]all_or_nothingIf true and there are non-mandatory restart fields, it is still an error if some fields are read successfully but others are not.
[in]all_requiredIf true, all fields must be successfully read from the restart file, even if they were registered as not mandatory.
[in]test_by_fieldIf true, all or none of the variables in a single field must be read successfully.
[in]use_fms2_ioThis is just to distinguish the interfaces

Definition at line 3542 of file coupler_types.F90.

◆ ct_restore_state_3d()

subroutine coupler_types_mod::ct_restore_state_3d ( type(coupler_3d_bc_type), intent(inout)  var,
logical, intent(in)  use_fms2_io,
character(len=*), intent(in), optional  directory,
logical, intent(in), optional  all_or_nothing,
logical, intent(in), optional  all_required,
logical, intent(in), optional  test_by_field 
)
private

Read in fields from restart files into a coupler_3d_bc_type.

This subroutine reads in the fields in a coupler_3d_bc_type that have been saved in restart files.

Parameters
[in,out]varBC_type structure to restore from restart files
[in]directoryA directory where the restart files should be found. The default for FMS is 'INPUT'.
[in]use_fms2_ioThis is just to distinguish the interfaces
[in]all_or_nothingIf true and there are non-mandatory restart fields, it is still an error if some fields are read successfully but others are not.
[in]all_requiredIf true, all fields must be successfully read from the restart file, even if they were registered as not mandatory.
[in]test_by_fieldIf true, all or none of the variables in a single field must be read successfully.

Definition at line 3650 of file coupler_types.F90.

◆ ct_send_data_2d()

subroutine coupler_types_mod::ct_send_data_2d ( type(coupler_2d_bc_type), intent(in)  var,
type(time_type), intent(in)  Time,
logical, dimension(:,:), intent(out), optional, allocatable  return_statuses 
)
private

Write out all diagnostics of elements of a coupler_2d_bc_type.

Parameters
[in]varBC_type structure with the diagnostics to write
[in]timeThe current model time
[out]return_statusesReturn status of send data calls first index is index of boundary condition second index is field/value within that boundary condition

Definition at line 2947 of file coupler_types.F90.

◆ ct_send_data_3d()

subroutine coupler_types_mod::ct_send_data_3d ( type(coupler_3d_bc_type), intent(in)  var,
type(time_type), intent(in)  Time,
logical, dimension(:,:), intent(out), optional, allocatable  return_statuses 
)
private

Write out all diagnostics of elements of a coupler_3d_bc_type.

Parameters
[in]varBC_type structure with the diagnostics to write
[in]timeThe current model time
[out]return_statusesReturn status of send data calls first index is index of boundary condition second index is field/value within that boundary condition

Definition at line 3008 of file coupler_types.F90.

◆ ct_set_data_2d_()

subroutine ct_set_data_2d_ ( real(fms_cp_kind_), dimension(1:,1:), intent(in)  array_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
type(coupler_2d_bc_type), intent(inout)  var,
real(fms_cp_kind_), intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)

Set single 2d field in coupler_3d_bc_type.

Set a single 2-d field in a coupler_3d_bc_type from a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
Parameters
[in]array_inThe source array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in,out]varBC_type structure with the data to set
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 808 of file coupler_types.inc.

◆ ct_set_data_2d_3d_()

subroutine ct_set_data_2d_3d_ ( real(fms_cp_kind_), dimension(1:,1:), intent(in)  array_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
integer, intent(in)  k_out,
type(coupler_3d_bc_type), intent(inout)  var,
real(fms_cp_kind_), intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)

Set one k-level of a single 3d field in a coupler_3d_bc_type.

This subroutine sets a one k-level of a single 3-d field in a coupler_3d_bc_type from a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The k-index of 'k' is outside of the valid range of 'ks' to 'ke'
Parameters
[in]array_inThe source array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]k_outThe k-index to set
[in,out]varBC_type structure with the data to be set
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 943 of file coupler_types.inc.

◆ ct_set_data_3d_()

subroutine ct_set_data_3d_ ( real(fms_cp_kind_), dimension(1:,1:,1:), intent(in)  array_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
type(coupler_3d_bc_type), intent(inout)  var,
real(fms_cp_kind_), intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)

Set a single 3d field in a coupler_3d_bc_type.

This subroutine sets a single 3-d field in a coupler_3d_bc_type from a three-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%FMS_CP_BC_TYPE_(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with K-dimension size 'n' is too small to match the data of size 'd'
Parameters
[in]array_inThe source array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in,out]varBC_type structure with the data to be set
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 1085 of file coupler_types.inc.

◆ ct_set_diags_2d()

subroutine coupler_types_mod::ct_set_diags_2d ( type(coupler_2d_bc_type), intent(inout)  var,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time 
)
private
Parameters
[in,out]varBC_type structure for which to register diagnostics
[in]diag_nameModule name for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field

Definition at line 2838 of file coupler_types.F90.

◆ ct_set_diags_3d()

subroutine coupler_types_mod::ct_set_diags_3d ( type(coupler_3d_bc_type), intent(inout)  var,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time 
)
private

Register the diagnostics of a coupler_3d_bc_type.

Exceptions
FATAL,axes has less than 3 elements
Parameters
[in,out]varBC_type structure for which to register diagnostics
[in]diag_nameModule name for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field

Definition at line 2894 of file coupler_types.F90.

◆ ct_spawn_1d_2d()

subroutine coupler_types_mod::ct_spawn_1d_2d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 1-D to 2-D version for generic coupler_type_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 750 of file coupler_types.F90.

◆ ct_spawn_1d_3d()

subroutine coupler_types_mod::ct_spawn_1d_3d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 1-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 905 of file coupler_types.F90.

◆ ct_spawn_2d_2d()

subroutine coupler_types_mod::ct_spawn_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 2-D to 2-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1067 of file coupler_types.F90.

◆ ct_spawn_2d_3d()

subroutine coupler_types_mod::ct_spawn_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 2-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,Disordered k-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1221 of file coupler_types.F90.

◆ ct_spawn_3d_2d()

subroutine coupler_types_mod::ct_spawn_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 3-D to 2-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1382 of file coupler_types.F90.

◆ ct_spawn_3d_3d()

subroutine coupler_types_mod::ct_spawn_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 3-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,Disordered k-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1538 of file coupler_types.F90.

◆ ct_write_chksums_2d()

subroutine coupler_types_mod::ct_write_chksums_2d ( type(coupler_2d_bc_type), intent(in)  var,
integer, intent(in)  outunit,
character(len=*), intent(in), optional  name_lead 
)
private

Write out checksums for the elements of a coupler_2d_bc_type.

Parameters
[in]varBC_type structure for which to register diagnostics
[in]outunitThe index of a open output file
[in]name_leadAn optional prefix for the variable names

Definition at line 3838 of file coupler_types.F90.

◆ ct_write_chksums_3d()

subroutine coupler_types_mod::ct_write_chksums_3d ( type(coupler_3d_bc_type), intent(in)  var,
integer, intent(in)  outunit,
character(len=*), intent(in), optional  name_lead 
)
private

Write out checksums for the elements of a coupler_3d_bc_type.

Parameters
[in]varBC_type structure for which to register diagnostics
[in]outunitThe index of a open output file
[in]name_leadAn optional prefix for the variable names

Definition at line 3890 of file coupler_types.F90.

◆ register_axis_wrapper()

subroutine coupler_types_mod::register_axis_wrapper ( type(fmsnetcdfdomainfile_t), intent(inout)  fileobj,
logical, intent(in)  to_read,
integer, intent(in), optional  nz 
)
private
Parameters
[in,out]fileobjDomain decomposed fileobj
[in]to_readFlag indicating if reading file
[in]nzlength of the z dimension

Definition at line 3336 of file coupler_types.F90.

◆ register_axis_wrapper_read()

subroutine coupler_types_mod::register_axis_wrapper_read ( type(fmsnetcdfdomainfile_t), intent(inout)  fileobj)
private
Parameters
[in,out]fileobjDomain decomposed fileobj

Definition at line 3250 of file coupler_types.F90.

◆ register_axis_wrapper_write()

subroutine coupler_types_mod::register_axis_wrapper_write ( type(fmsnetcdfdomainfile_t), intent(inout)  fileobj,
integer, intent(in), optional  nz 
)
private
Parameters
[in,out]fileobjDomain decomposed fileobj
[in]nzlength of the z dimension

Definition at line 3303 of file coupler_types.F90.